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, Eq, Hash, Ord, PartialEq, PartialOrd)]
15pub struct ProviderDatagramSocketDeprecatedResponse {
16    pub s: fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
17}
18
19impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
20    for ProviderDatagramSocketDeprecatedResponse
21{
22}
23
24#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
25pub struct ProviderStreamSocketWithOptionsResponse {
26    pub s: fidl::endpoints::ClientEnd<StreamSocketMarker>,
27}
28
29impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
30    for ProviderStreamSocketWithOptionsResponse
31{
32}
33
34#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
35pub struct ProviderStreamSocketResponse {
36    pub s: fidl::endpoints::ClientEnd<StreamSocketMarker>,
37}
38
39impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
40    for ProviderStreamSocketResponse
41{
42}
43
44#[derive(Debug, PartialEq)]
45pub struct StreamSocketAcceptResponse {
46    pub addr: Option<Box<fidl_fuchsia_net::SocketAddress>>,
47    pub s: fidl::endpoints::ClientEnd<StreamSocketMarker>,
48}
49
50impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
51    for StreamSocketAcceptResponse
52{
53}
54
55#[derive(Debug, Default, PartialEq)]
56pub struct DatagramSocketDescribeResponse {
57    /// `ZX_SOCKET_DATAGRAM` on which data is sent and received.
58    pub socket: Option<fidl::Socket>,
59    /// Size of the buffer used to receive Tx metadata.
60    pub tx_meta_buf_size: Option<u64>,
61    /// Size of the buffer used to receive Rx metadata.
62    pub rx_meta_buf_size: Option<u64>,
63    /// Identifies the version of the protocol used to encode and decode
64    /// metadata sent alongside payloads over the socket.
65    pub metadata_encoding_protocol_version: Option<UdpMetadataEncodingProtocolVersion>,
66    #[doc(hidden)]
67    pub __source_breaking: fidl::marker::SourceBreaking,
68}
69
70impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
71    for DatagramSocketDescribeResponse
72{
73}
74
75#[derive(Debug, Default, PartialEq)]
76pub struct DatagramSocketRecvMsgPostflightResponse {
77    /// Represents the validity of this structure.
78    ///
79    /// The structure is invalid if the peer is closed.
80    pub validity: Option<fidl::EventPair>,
81    /// Identifies whether the `SO_TIMESTAMP` or `SO_TIMESTAMPNS` control messages are
82    /// requested.
83    pub timestamp: Option<TimestampOption>,
84    /// Identifies the status (requested or not) of up to 32 control messages.
85    /// This set size should be large enough to signal the status of all cmsgs supported
86    /// by POSIX systems as of 2022. If that changes, the set can be extended by adding
87    /// additional bits fields.
88    pub requests: Option<CmsgRequests>,
89    #[doc(hidden)]
90    pub __source_breaking: fidl::marker::SourceBreaking,
91}
92
93impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
94    for DatagramSocketRecvMsgPostflightResponse
95{
96}
97
98#[derive(Debug, Default, PartialEq)]
99pub struct DatagramSocketSendMsgPreflightResponse {
100    /// The validated destination address.
101    ///
102    /// Present only in response to an unset `to` addreess.
103    pub to: Option<fidl_fuchsia_net::SocketAddress>,
104    /// Represents the validity of this structure.
105    ///
106    /// The structure is invalid if any of the elements' peer is closed.
107    /// Datagrams sent with the associated metadata after invalidation will be
108    /// silently dropped.
109    pub validity: Option<Vec<fidl::EventPair>>,
110    /// The maximum datagram size that can be sent.
111    ///
112    /// Datagrams exceeding this will be silently dropped.
113    pub maximum_size: Option<u32>,
114    #[doc(hidden)]
115    pub __source_breaking: fidl::marker::SourceBreaking,
116}
117
118impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
119    for DatagramSocketSendMsgPreflightResponse
120{
121}
122
123#[derive(Debug, Default, PartialEq)]
124pub struct StreamSocketDescribeResponse {
125    /// `ZX_SOCKET_STREAM` on which data is sent and received.
126    pub socket: Option<fidl::Socket>,
127    #[doc(hidden)]
128    pub __source_breaking: fidl::marker::SourceBreaking,
129}
130
131impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
132    for StreamSocketDescribeResponse
133{
134}
135
136#[derive(Debug, Default, PartialEq)]
137pub struct SynchronousDatagramSocketDescribeResponse {
138    /// Signals additional information about the state of the socket such as
139    /// readiness or shutdown-ness.
140    pub event: Option<fidl::EventPair>,
141    #[doc(hidden)]
142    pub __source_breaking: fidl::marker::SourceBreaking,
143}
144
145impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
146    for SynchronousDatagramSocketDescribeResponse
147{
148}
149
150#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
151pub enum ProviderDatagramSocketWithOptionsResponse {
152    DatagramSocket(fidl::endpoints::ClientEnd<DatagramSocketMarker>),
153    SynchronousDatagramSocket(fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>),
154}
155
156impl ProviderDatagramSocketWithOptionsResponse {
157    #[inline]
158    pub fn ordinal(&self) -> u64 {
159        match *self {
160            Self::DatagramSocket(_) => 1,
161            Self::SynchronousDatagramSocket(_) => 2,
162        }
163    }
164}
165
166impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
167    for ProviderDatagramSocketWithOptionsResponse
168{
169}
170
171#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
172pub enum ProviderDatagramSocketResponse {
173    DatagramSocket(fidl::endpoints::ClientEnd<DatagramSocketMarker>),
174    SynchronousDatagramSocket(fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>),
175}
176
177impl ProviderDatagramSocketResponse {
178    #[inline]
179    pub fn ordinal(&self) -> u64 {
180        match *self {
181            Self::DatagramSocket(_) => 1,
182            Self::SynchronousDatagramSocket(_) => 2,
183        }
184    }
185}
186
187impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
188    for ProviderDatagramSocketResponse
189{
190}
191
192#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
193pub struct BaseDatagramSocketMarker;
194
195impl fidl::endpoints::ProtocolMarker for BaseDatagramSocketMarker {
196    type Proxy = BaseDatagramSocketProxy;
197    type RequestStream = BaseDatagramSocketRequestStream;
198    #[cfg(target_os = "fuchsia")]
199    type SynchronousProxy = BaseDatagramSocketSynchronousProxy;
200
201    const DEBUG_NAME: &'static str = "(anonymous) BaseDatagramSocket";
202}
203pub type BaseDatagramSocketGetInfoResult =
204    Result<(Domain, DatagramSocketProtocol), fidl_fuchsia_posix::Errno>;
205
206pub trait BaseDatagramSocketProxyInterface: Send + Sync {
207    fn r#clone(
208        &self,
209        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
210    ) -> Result<(), fidl::Error>;
211    type CloseResponseFut: std::future::Future<
212            Output = Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error>,
213        > + Send;
214    fn r#close(&self) -> Self::CloseResponseFut;
215    type QueryResponseFut: std::future::Future<Output = Result<Vec<u8>, fidl::Error>> + Send;
216    fn r#query(&self) -> Self::QueryResponseFut;
217    type SetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketSetReuseAddressResult, fidl::Error>>
218        + Send;
219    fn r#set_reuse_address(&self, value: bool) -> Self::SetReuseAddressResponseFut;
220    type GetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketGetReuseAddressResult, fidl::Error>>
221        + Send;
222    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut;
223    type GetErrorResponseFut: std::future::Future<Output = Result<BaseSocketGetErrorResult, fidl::Error>>
224        + Send;
225    fn r#get_error(&self) -> Self::GetErrorResponseFut;
226    type SetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketSetBroadcastResult, fidl::Error>>
227        + Send;
228    fn r#set_broadcast(&self, value: bool) -> Self::SetBroadcastResponseFut;
229    type GetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketGetBroadcastResult, fidl::Error>>
230        + Send;
231    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut;
232    type SetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetSendBufferResult, fidl::Error>>
233        + Send;
234    fn r#set_send_buffer(&self, value_bytes: u64) -> Self::SetSendBufferResponseFut;
235    type GetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetSendBufferResult, fidl::Error>>
236        + Send;
237    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut;
238    type SetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetReceiveBufferResult, fidl::Error>>
239        + Send;
240    fn r#set_receive_buffer(&self, value_bytes: u64) -> Self::SetReceiveBufferResponseFut;
241    type GetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetReceiveBufferResult, fidl::Error>>
242        + Send;
243    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut;
244    type SetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketSetKeepAliveResult, fidl::Error>>
245        + Send;
246    fn r#set_keep_alive(&self, value: bool) -> Self::SetKeepAliveResponseFut;
247    type GetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketGetKeepAliveResult, fidl::Error>>
248        + Send;
249    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut;
250    type SetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketSetOutOfBandInlineResult, fidl::Error>>
251        + Send;
252    fn r#set_out_of_band_inline(&self, value: bool) -> Self::SetOutOfBandInlineResponseFut;
253    type GetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketGetOutOfBandInlineResult, fidl::Error>>
254        + Send;
255    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut;
256    type SetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketSetNoCheckResult, fidl::Error>>
257        + Send;
258    fn r#set_no_check(&self, value: bool) -> Self::SetNoCheckResponseFut;
259    type GetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketGetNoCheckResult, fidl::Error>>
260        + Send;
261    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut;
262    type SetLingerResponseFut: std::future::Future<Output = Result<BaseSocketSetLingerResult, fidl::Error>>
263        + Send;
264    fn r#set_linger(&self, linger: bool, length_secs: u32) -> Self::SetLingerResponseFut;
265    type GetLingerResponseFut: std::future::Future<Output = Result<BaseSocketGetLingerResult, fidl::Error>>
266        + Send;
267    fn r#get_linger(&self) -> Self::GetLingerResponseFut;
268    type SetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketSetReusePortResult, fidl::Error>>
269        + Send;
270    fn r#set_reuse_port(&self, value: bool) -> Self::SetReusePortResponseFut;
271    type GetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketGetReusePortResult, fidl::Error>>
272        + Send;
273    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut;
274    type GetAcceptConnResponseFut: std::future::Future<Output = Result<BaseSocketGetAcceptConnResult, fidl::Error>>
275        + Send;
276    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut;
277    type SetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToDeviceResult, fidl::Error>>
278        + Send;
279    fn r#set_bind_to_device(&self, value: &str) -> Self::SetBindToDeviceResponseFut;
280    type GetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToDeviceResult, fidl::Error>>
281        + Send;
282    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut;
283    type SetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error>>
284        + Send;
285    fn r#set_bind_to_interface_index(&self, value: u64)
286        -> Self::SetBindToInterfaceIndexResponseFut;
287    type GetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error>>
288        + Send;
289    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut;
290    type SetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketSetTimestampResult, fidl::Error>>
291        + Send;
292    fn r#set_timestamp(&self, value: TimestampOption) -> Self::SetTimestampResponseFut;
293    type GetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketGetTimestampResult, fidl::Error>>
294        + Send;
295    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut;
296    type SetMarkResponseFut: std::future::Future<Output = Result<BaseSocketSetMarkResult, fidl::Error>>
297        + Send;
298    fn r#set_mark(
299        &self,
300        domain: fidl_fuchsia_net::MarkDomain,
301        mark: &OptionalUint32,
302    ) -> Self::SetMarkResponseFut;
303    type GetMarkResponseFut: std::future::Future<Output = Result<BaseSocketGetMarkResult, fidl::Error>>
304        + Send;
305    fn r#get_mark(&self, domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut;
306    type GetCookieResponseFut: std::future::Future<Output = Result<BaseSocketGetCookieResult, fidl::Error>>
307        + Send;
308    fn r#get_cookie(&self) -> Self::GetCookieResponseFut;
309    type BindResponseFut: std::future::Future<Output = Result<BaseNetworkSocketBindResult, fidl::Error>>
310        + Send;
311    fn r#bind(&self, addr: &fidl_fuchsia_net::SocketAddress) -> Self::BindResponseFut;
312    type ConnectResponseFut: std::future::Future<Output = Result<BaseNetworkSocketConnectResult, fidl::Error>>
313        + Send;
314    fn r#connect(&self, addr: &fidl_fuchsia_net::SocketAddress) -> Self::ConnectResponseFut;
315    type DisconnectResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDisconnectResult, fidl::Error>>
316        + Send;
317    fn r#disconnect(&self) -> Self::DisconnectResponseFut;
318    type GetSockNameResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetSockNameResult, fidl::Error>>
319        + Send;
320    fn r#get_sock_name(&self) -> Self::GetSockNameResponseFut;
321    type GetPeerNameResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetPeerNameResult, fidl::Error>>
322        + Send;
323    fn r#get_peer_name(&self) -> Self::GetPeerNameResponseFut;
324    type ShutdownResponseFut: std::future::Future<Output = Result<BaseNetworkSocketShutdownResult, fidl::Error>>
325        + Send;
326    fn r#shutdown(&self, mode: ShutdownMode) -> Self::ShutdownResponseFut;
327    type SetIpTypeOfServiceResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error>>
328        + Send;
329    fn r#set_ip_type_of_service(&self, value: u8) -> Self::SetIpTypeOfServiceResponseFut;
330    type GetIpTypeOfServiceResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error>>
331        + Send;
332    fn r#get_ip_type_of_service(&self) -> Self::GetIpTypeOfServiceResponseFut;
333    type SetIpTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTtlResult, fidl::Error>>
334        + Send;
335    fn r#set_ip_ttl(&self, value: &OptionalUint8) -> Self::SetIpTtlResponseFut;
336    type GetIpTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTtlResult, fidl::Error>>
337        + Send;
338    fn r#get_ip_ttl(&self) -> Self::GetIpTtlResponseFut;
339    type SetIpPacketInfoResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error>>
340        + Send;
341    fn r#set_ip_packet_info(&self, value: bool) -> Self::SetIpPacketInfoResponseFut;
342    type GetIpPacketInfoResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error>>
343        + Send;
344    fn r#get_ip_packet_info(&self) -> Self::GetIpPacketInfoResponseFut;
345    type SetIpReceiveTypeOfServiceResponseFut: std::future::Future<
346            Output = Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error>,
347        > + Send;
348    fn r#set_ip_receive_type_of_service(
349        &self,
350        value: bool,
351    ) -> Self::SetIpReceiveTypeOfServiceResponseFut;
352    type GetIpReceiveTypeOfServiceResponseFut: std::future::Future<
353            Output = Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error>,
354        > + Send;
355    fn r#get_ip_receive_type_of_service(&self) -> Self::GetIpReceiveTypeOfServiceResponseFut;
356    type SetIpReceiveTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error>>
357        + Send;
358    fn r#set_ip_receive_ttl(&self, value: bool) -> Self::SetIpReceiveTtlResponseFut;
359    type GetIpReceiveTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error>>
360        + Send;
361    fn r#get_ip_receive_ttl(&self) -> Self::GetIpReceiveTtlResponseFut;
362    type SetIpMulticastInterfaceResponseFut: std::future::Future<
363            Output = Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error>,
364        > + Send;
365    fn r#set_ip_multicast_interface(
366        &self,
367        iface: u64,
368        address: &fidl_fuchsia_net::Ipv4Address,
369    ) -> Self::SetIpMulticastInterfaceResponseFut;
370    type GetIpMulticastInterfaceResponseFut: std::future::Future<
371            Output = Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error>,
372        > + Send;
373    fn r#get_ip_multicast_interface(&self) -> Self::GetIpMulticastInterfaceResponseFut;
374    type SetIpMulticastTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error>>
375        + Send;
376    fn r#set_ip_multicast_ttl(&self, value: &OptionalUint8) -> Self::SetIpMulticastTtlResponseFut;
377    type GetIpMulticastTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error>>
378        + Send;
379    fn r#get_ip_multicast_ttl(&self) -> Self::GetIpMulticastTtlResponseFut;
380    type SetIpMulticastLoopbackResponseFut: std::future::Future<
381            Output = Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error>,
382        > + Send;
383    fn r#set_ip_multicast_loopback(&self, value: bool) -> Self::SetIpMulticastLoopbackResponseFut;
384    type GetIpMulticastLoopbackResponseFut: std::future::Future<
385            Output = Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error>,
386        > + Send;
387    fn r#get_ip_multicast_loopback(&self) -> Self::GetIpMulticastLoopbackResponseFut;
388    type AddIpMembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error>>
389        + Send;
390    fn r#add_ip_membership(
391        &self,
392        membership: &IpMulticastMembership,
393    ) -> Self::AddIpMembershipResponseFut;
394    type DropIpMembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error>>
395        + Send;
396    fn r#drop_ip_membership(
397        &self,
398        membership: &IpMulticastMembership,
399    ) -> Self::DropIpMembershipResponseFut;
400    type SetIpTransparentResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error>>
401        + Send;
402    fn r#set_ip_transparent(&self, value: bool) -> Self::SetIpTransparentResponseFut;
403    type GetIpTransparentResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error>>
404        + Send;
405    fn r#get_ip_transparent(&self) -> Self::GetIpTransparentResponseFut;
406    type SetIpReceiveOriginalDestinationAddressResponseFut: std::future::Future<
407            Output = Result<
408                BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
409                fidl::Error,
410            >,
411        > + Send;
412    fn r#set_ip_receive_original_destination_address(
413        &self,
414        value: bool,
415    ) -> Self::SetIpReceiveOriginalDestinationAddressResponseFut;
416    type GetIpReceiveOriginalDestinationAddressResponseFut: std::future::Future<
417            Output = Result<
418                BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
419                fidl::Error,
420            >,
421        > + Send;
422    fn r#get_ip_receive_original_destination_address(
423        &self,
424    ) -> Self::GetIpReceiveOriginalDestinationAddressResponseFut;
425    type AddIpv6MembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error>>
426        + Send;
427    fn r#add_ipv6_membership(
428        &self,
429        membership: &Ipv6MulticastMembership,
430    ) -> Self::AddIpv6MembershipResponseFut;
431    type DropIpv6MembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error>>
432        + Send;
433    fn r#drop_ipv6_membership(
434        &self,
435        membership: &Ipv6MulticastMembership,
436    ) -> Self::DropIpv6MembershipResponseFut;
437    type SetIpv6MulticastInterfaceResponseFut: std::future::Future<
438            Output = Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error>,
439        > + Send;
440    fn r#set_ipv6_multicast_interface(
441        &self,
442        value: u64,
443    ) -> Self::SetIpv6MulticastInterfaceResponseFut;
444    type GetIpv6MulticastInterfaceResponseFut: std::future::Future<
445            Output = Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error>,
446        > + Send;
447    fn r#get_ipv6_multicast_interface(&self) -> Self::GetIpv6MulticastInterfaceResponseFut;
448    type SetIpv6UnicastHopsResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error>>
449        + Send;
450    fn r#set_ipv6_unicast_hops(&self, value: &OptionalUint8)
451        -> Self::SetIpv6UnicastHopsResponseFut;
452    type GetIpv6UnicastHopsResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error>>
453        + Send;
454    fn r#get_ipv6_unicast_hops(&self) -> Self::GetIpv6UnicastHopsResponseFut;
455    type SetIpv6ReceiveHopLimitResponseFut: std::future::Future<
456            Output = Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error>,
457        > + Send;
458    fn r#set_ipv6_receive_hop_limit(&self, value: bool) -> Self::SetIpv6ReceiveHopLimitResponseFut;
459    type GetIpv6ReceiveHopLimitResponseFut: std::future::Future<
460            Output = Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error>,
461        > + Send;
462    fn r#get_ipv6_receive_hop_limit(&self) -> Self::GetIpv6ReceiveHopLimitResponseFut;
463    type SetIpv6MulticastHopsResponseFut: std::future::Future<
464            Output = Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error>,
465        > + Send;
466    fn r#set_ipv6_multicast_hops(
467        &self,
468        value: &OptionalUint8,
469    ) -> Self::SetIpv6MulticastHopsResponseFut;
470    type GetIpv6MulticastHopsResponseFut: std::future::Future<
471            Output = Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error>,
472        > + Send;
473    fn r#get_ipv6_multicast_hops(&self) -> Self::GetIpv6MulticastHopsResponseFut;
474    type SetIpv6MulticastLoopbackResponseFut: std::future::Future<
475            Output = Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error>,
476        > + Send;
477    fn r#set_ipv6_multicast_loopback(
478        &self,
479        value: bool,
480    ) -> Self::SetIpv6MulticastLoopbackResponseFut;
481    type GetIpv6MulticastLoopbackResponseFut: std::future::Future<
482            Output = Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error>,
483        > + Send;
484    fn r#get_ipv6_multicast_loopback(&self) -> Self::GetIpv6MulticastLoopbackResponseFut;
485    type SetIpv6OnlyResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error>>
486        + Send;
487    fn r#set_ipv6_only(&self, value: bool) -> Self::SetIpv6OnlyResponseFut;
488    type GetIpv6OnlyResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error>>
489        + Send;
490    fn r#get_ipv6_only(&self) -> Self::GetIpv6OnlyResponseFut;
491    type SetIpv6ReceiveTrafficClassResponseFut: std::future::Future<
492            Output = Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error>,
493        > + Send;
494    fn r#set_ipv6_receive_traffic_class(
495        &self,
496        value: bool,
497    ) -> Self::SetIpv6ReceiveTrafficClassResponseFut;
498    type GetIpv6ReceiveTrafficClassResponseFut: std::future::Future<
499            Output = Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error>,
500        > + Send;
501    fn r#get_ipv6_receive_traffic_class(&self) -> Self::GetIpv6ReceiveTrafficClassResponseFut;
502    type SetIpv6TrafficClassResponseFut: std::future::Future<
503            Output = Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error>,
504        > + Send;
505    fn r#set_ipv6_traffic_class(
506        &self,
507        value: &OptionalUint8,
508    ) -> Self::SetIpv6TrafficClassResponseFut;
509    type GetIpv6TrafficClassResponseFut: std::future::Future<
510            Output = Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error>,
511        > + Send;
512    fn r#get_ipv6_traffic_class(&self) -> Self::GetIpv6TrafficClassResponseFut;
513    type SetIpv6ReceivePacketInfoResponseFut: std::future::Future<
514            Output = Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error>,
515        > + Send;
516    fn r#set_ipv6_receive_packet_info(
517        &self,
518        value: bool,
519    ) -> Self::SetIpv6ReceivePacketInfoResponseFut;
520    type GetIpv6ReceivePacketInfoResponseFut: std::future::Future<
521            Output = Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error>,
522        > + Send;
523    fn r#get_ipv6_receive_packet_info(&self) -> Self::GetIpv6ReceivePacketInfoResponseFut;
524    type GetOriginalDestinationResponseFut: std::future::Future<
525            Output = Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error>,
526        > + Send;
527    fn r#get_original_destination(&self) -> Self::GetOriginalDestinationResponseFut;
528    type GetInfoResponseFut: std::future::Future<Output = Result<BaseDatagramSocketGetInfoResult, fidl::Error>>
529        + Send;
530    fn r#get_info(&self) -> Self::GetInfoResponseFut;
531}
532#[derive(Debug)]
533#[cfg(target_os = "fuchsia")]
534pub struct BaseDatagramSocketSynchronousProxy {
535    client: fidl::client::sync::Client,
536}
537
538#[cfg(target_os = "fuchsia")]
539impl fidl::endpoints::SynchronousProxy for BaseDatagramSocketSynchronousProxy {
540    type Proxy = BaseDatagramSocketProxy;
541    type Protocol = BaseDatagramSocketMarker;
542
543    fn from_channel(inner: fidl::Channel) -> Self {
544        Self::new(inner)
545    }
546
547    fn into_channel(self) -> fidl::Channel {
548        self.client.into_channel()
549    }
550
551    fn as_channel(&self) -> &fidl::Channel {
552        self.client.as_channel()
553    }
554}
555
556#[cfg(target_os = "fuchsia")]
557impl BaseDatagramSocketSynchronousProxy {
558    pub fn new(channel: fidl::Channel) -> Self {
559        let protocol_name =
560            <BaseDatagramSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
561        Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
562    }
563
564    pub fn into_channel(self) -> fidl::Channel {
565        self.client.into_channel()
566    }
567
568    /// Waits until an event arrives and returns it. It is safe for other
569    /// threads to make concurrent requests while waiting for an event.
570    pub fn wait_for_event(
571        &self,
572        deadline: zx::MonotonicInstant,
573    ) -> Result<BaseDatagramSocketEvent, fidl::Error> {
574        BaseDatagramSocketEvent::decode(self.client.wait_for_event(deadline)?)
575    }
576
577    pub fn r#clone(
578        &self,
579        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
580    ) -> Result<(), fidl::Error> {
581        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
582            (request,),
583            0x20d8a7aba2168a79,
584            fidl::encoding::DynamicFlags::empty(),
585        )
586    }
587
588    /// Terminates the connection.
589    ///
590    /// After calling `Close`, the client must not send any other requests.
591    ///
592    /// Servers, after sending the status response, should close the connection
593    /// regardless of status and without sending an epitaph.
594    ///
595    /// Closing the client end of the channel should be semantically equivalent
596    /// to calling `Close` without knowing when the close has completed or its
597    /// status.
598    pub fn r#close(
599        &self,
600        ___deadline: zx::MonotonicInstant,
601    ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
602        let _response = self.client.send_query::<
603            fidl::encoding::EmptyPayload,
604            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
605        >(
606            (),
607            0x5ac5d459ad7f657e,
608            fidl::encoding::DynamicFlags::empty(),
609            ___deadline,
610        )?;
611        Ok(_response.map(|x| x))
612    }
613
614    pub fn r#query(&self, ___deadline: zx::MonotonicInstant) -> Result<Vec<u8>, fidl::Error> {
615        let _response = self.client.send_query::<
616            fidl::encoding::EmptyPayload,
617            fidl_fuchsia_unknown::QueryableQueryResponse,
618        >(
619            (),
620            0x2658edee9decfc06,
621            fidl::encoding::DynamicFlags::empty(),
622            ___deadline,
623        )?;
624        Ok(_response.protocol)
625    }
626
627    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
628    pub fn r#set_reuse_address(
629        &self,
630        mut value: bool,
631        ___deadline: zx::MonotonicInstant,
632    ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
633        let _response =
634            self.client.send_query::<BaseSocketSetReuseAddressRequest, fidl::encoding::ResultType<
635                fidl::encoding::EmptyStruct,
636                fidl_fuchsia_posix::Errno,
637            >>(
638                (value,),
639                0x1fd74ee8b9a4a876,
640                fidl::encoding::DynamicFlags::empty(),
641                ___deadline,
642            )?;
643        Ok(_response.map(|x| x))
644    }
645
646    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
647    pub fn r#get_reuse_address(
648        &self,
649        ___deadline: zx::MonotonicInstant,
650    ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
651        let _response = self
652            .client
653            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
654                BaseSocketGetReuseAddressResponse,
655                fidl_fuchsia_posix::Errno,
656            >>(
657                (), 0x67b7206b8d1bc0a5, fidl::encoding::DynamicFlags::empty(), ___deadline
658            )?;
659        Ok(_response.map(|x| x.value))
660    }
661
662    /// Get `SOL_SOCKET` -> `SO_ERROR`.
663    /// Returns the last error if there is an error set on the socket.
664    pub fn r#get_error(
665        &self,
666        ___deadline: zx::MonotonicInstant,
667    ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
668        let _response =
669            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
670                fidl::encoding::EmptyStruct,
671                fidl_fuchsia_posix::Errno,
672            >>(
673                (),
674                0x5aad39b33e5f6ebb,
675                fidl::encoding::DynamicFlags::empty(),
676                ___deadline,
677            )?;
678        Ok(_response.map(|x| x))
679    }
680
681    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
682    pub fn r#set_broadcast(
683        &self,
684        mut value: bool,
685        ___deadline: zx::MonotonicInstant,
686    ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
687        let _response =
688            self.client.send_query::<BaseSocketSetBroadcastRequest, fidl::encoding::ResultType<
689                fidl::encoding::EmptyStruct,
690                fidl_fuchsia_posix::Errno,
691            >>(
692                (value,),
693                0x6023e081ce3cd947,
694                fidl::encoding::DynamicFlags::empty(),
695                ___deadline,
696            )?;
697        Ok(_response.map(|x| x))
698    }
699
700    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
701    pub fn r#get_broadcast(
702        &self,
703        ___deadline: zx::MonotonicInstant,
704    ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
705        let _response =
706            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
707                BaseSocketGetBroadcastResponse,
708                fidl_fuchsia_posix::Errno,
709            >>(
710                (),
711                0x68796fc556f9780d,
712                fidl::encoding::DynamicFlags::empty(),
713                ___deadline,
714            )?;
715        Ok(_response.map(|x| x.value))
716    }
717
718    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
719    pub fn r#set_send_buffer(
720        &self,
721        mut value_bytes: u64,
722        ___deadline: zx::MonotonicInstant,
723    ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
724        let _response =
725            self.client.send_query::<BaseSocketSetSendBufferRequest, fidl::encoding::ResultType<
726                fidl::encoding::EmptyStruct,
727                fidl_fuchsia_posix::Errno,
728            >>(
729                (value_bytes,),
730                0x756eac32d73a7a70,
731                fidl::encoding::DynamicFlags::empty(),
732                ___deadline,
733            )?;
734        Ok(_response.map(|x| x))
735    }
736
737    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
738    pub fn r#get_send_buffer(
739        &self,
740        ___deadline: zx::MonotonicInstant,
741    ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
742        let _response = self
743            .client
744            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
745                BaseSocketGetSendBufferResponse,
746                fidl_fuchsia_posix::Errno,
747            >>(
748                (), 0x78a52fd9c7b2410b, fidl::encoding::DynamicFlags::empty(), ___deadline
749            )?;
750        Ok(_response.map(|x| x.value_bytes))
751    }
752
753    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
754    pub fn r#set_receive_buffer(
755        &self,
756        mut value_bytes: u64,
757        ___deadline: zx::MonotonicInstant,
758    ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
759        let _response =
760            self.client
761                .send_query::<BaseSocketSetReceiveBufferRequest, fidl::encoding::ResultType<
762                    fidl::encoding::EmptyStruct,
763                    fidl_fuchsia_posix::Errno,
764                >>(
765                    (value_bytes,),
766                    0x6b0cf2f1919c7001,
767                    fidl::encoding::DynamicFlags::empty(),
768                    ___deadline,
769                )?;
770        Ok(_response.map(|x| x))
771    }
772
773    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
774    pub fn r#get_receive_buffer(
775        &self,
776        ___deadline: zx::MonotonicInstant,
777    ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
778        let _response = self
779            .client
780            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
781                BaseSocketGetReceiveBufferResponse,
782                fidl_fuchsia_posix::Errno,
783            >>(
784                (), 0x14c1a4b64f709e5c, fidl::encoding::DynamicFlags::empty(), ___deadline
785            )?;
786        Ok(_response.map(|x| x.value_bytes))
787    }
788
789    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
790    pub fn r#set_keep_alive(
791        &self,
792        mut value: bool,
793        ___deadline: zx::MonotonicInstant,
794    ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
795        let _response =
796            self.client.send_query::<BaseSocketSetKeepAliveRequest, fidl::encoding::ResultType<
797                fidl::encoding::EmptyStruct,
798                fidl_fuchsia_posix::Errno,
799            >>(
800                (value,),
801                0x572df8f0b920d2c7,
802                fidl::encoding::DynamicFlags::empty(),
803                ___deadline,
804            )?;
805        Ok(_response.map(|x| x))
806    }
807
808    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
809    pub fn r#get_keep_alive(
810        &self,
811        ___deadline: zx::MonotonicInstant,
812    ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
813        let _response =
814            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
815                BaseSocketGetKeepAliveResponse,
816                fidl_fuchsia_posix::Errno,
817            >>(
818                (),
819                0x2dd29d3215f2c9d2,
820                fidl::encoding::DynamicFlags::empty(),
821                ___deadline,
822            )?;
823        Ok(_response.map(|x| x.value))
824    }
825
826    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
827    pub fn r#set_out_of_band_inline(
828        &self,
829        mut value: bool,
830        ___deadline: zx::MonotonicInstant,
831    ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
832        let _response =
833            self.client
834                .send_query::<BaseSocketSetOutOfBandInlineRequest, fidl::encoding::ResultType<
835                    fidl::encoding::EmptyStruct,
836                    fidl_fuchsia_posix::Errno,
837                >>(
838                    (value,),
839                    0x3ecb49968bee439,
840                    fidl::encoding::DynamicFlags::empty(),
841                    ___deadline,
842                )?;
843        Ok(_response.map(|x| x))
844    }
845
846    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
847    pub fn r#get_out_of_band_inline(
848        &self,
849        ___deadline: zx::MonotonicInstant,
850    ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
851        let _response = self
852            .client
853            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
854                BaseSocketGetOutOfBandInlineResponse,
855                fidl_fuchsia_posix::Errno,
856            >>(
857                (), 0x348c1ab3aeca1745, fidl::encoding::DynamicFlags::empty(), ___deadline
858            )?;
859        Ok(_response.map(|x| x.value))
860    }
861
862    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
863    pub fn r#set_no_check(
864        &self,
865        mut value: bool,
866        ___deadline: zx::MonotonicInstant,
867    ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
868        let _response =
869            self.client.send_query::<BaseSocketSetNoCheckRequest, fidl::encoding::ResultType<
870                fidl::encoding::EmptyStruct,
871                fidl_fuchsia_posix::Errno,
872            >>(
873                (value,),
874                0x6bbf00c53a4c78c2,
875                fidl::encoding::DynamicFlags::empty(),
876                ___deadline,
877            )?;
878        Ok(_response.map(|x| x))
879    }
880
881    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
882    pub fn r#get_no_check(
883        &self,
884        ___deadline: zx::MonotonicInstant,
885    ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
886        let _response =
887            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
888                BaseSocketGetNoCheckResponse,
889                fidl_fuchsia_posix::Errno,
890            >>(
891                (),
892                0x2cd4249286417694,
893                fidl::encoding::DynamicFlags::empty(),
894                ___deadline,
895            )?;
896        Ok(_response.map(|x| x.value))
897    }
898
899    /// Set `SOL_SOCKET` -> `SO_LINGER`.
900    pub fn r#set_linger(
901        &self,
902        mut linger: bool,
903        mut length_secs: u32,
904        ___deadline: zx::MonotonicInstant,
905    ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
906        let _response =
907            self.client.send_query::<BaseSocketSetLingerRequest, fidl::encoding::ResultType<
908                fidl::encoding::EmptyStruct,
909                fidl_fuchsia_posix::Errno,
910            >>(
911                (linger, length_secs),
912                0x45386351246e998e,
913                fidl::encoding::DynamicFlags::empty(),
914                ___deadline,
915            )?;
916        Ok(_response.map(|x| x))
917    }
918
919    /// Get `SOL_SOCKET` -> `SO_LINGER`.
920    pub fn r#get_linger(
921        &self,
922        ___deadline: zx::MonotonicInstant,
923    ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
924        let _response =
925            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
926                BaseSocketGetLingerResponse,
927                fidl_fuchsia_posix::Errno,
928            >>(
929                (),
930                0x48eb20fc5ccb0e45,
931                fidl::encoding::DynamicFlags::empty(),
932                ___deadline,
933            )?;
934        Ok(_response.map(|x| (x.linger, x.length_secs)))
935    }
936
937    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
938    pub fn r#set_reuse_port(
939        &self,
940        mut value: bool,
941        ___deadline: zx::MonotonicInstant,
942    ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
943        let _response =
944            self.client.send_query::<BaseSocketSetReusePortRequest, fidl::encoding::ResultType<
945                fidl::encoding::EmptyStruct,
946                fidl_fuchsia_posix::Errno,
947            >>(
948                (value,),
949                0x24dd3e5cb36d9ccb,
950                fidl::encoding::DynamicFlags::empty(),
951                ___deadline,
952            )?;
953        Ok(_response.map(|x| x))
954    }
955
956    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
957    pub fn r#get_reuse_port(
958        &self,
959        ___deadline: zx::MonotonicInstant,
960    ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
961        let _response =
962            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
963                BaseSocketGetReusePortResponse,
964                fidl_fuchsia_posix::Errno,
965            >>(
966                (),
967                0x7a112c1ab54ff828,
968                fidl::encoding::DynamicFlags::empty(),
969                ___deadline,
970            )?;
971        Ok(_response.map(|x| x.value))
972    }
973
974    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
975    pub fn r#get_accept_conn(
976        &self,
977        ___deadline: zx::MonotonicInstant,
978    ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
979        let _response = self
980            .client
981            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
982                BaseSocketGetAcceptConnResponse,
983                fidl_fuchsia_posix::Errno,
984            >>(
985                (), 0x67ce6db6c2ec8966, fidl::encoding::DynamicFlags::empty(), ___deadline
986            )?;
987        Ok(_response.map(|x| x.value))
988    }
989
990    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
991    pub fn r#set_bind_to_device(
992        &self,
993        mut value: &str,
994        ___deadline: zx::MonotonicInstant,
995    ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
996        let _response =
997            self.client.send_query::<BaseSocketSetBindToDeviceRequest, fidl::encoding::ResultType<
998                fidl::encoding::EmptyStruct,
999                fidl_fuchsia_posix::Errno,
1000            >>(
1001                (value,),
1002                0x2118b483f28aafc4,
1003                fidl::encoding::DynamicFlags::empty(),
1004                ___deadline,
1005            )?;
1006        Ok(_response.map(|x| x))
1007    }
1008
1009    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
1010    pub fn r#get_bind_to_device(
1011        &self,
1012        ___deadline: zx::MonotonicInstant,
1013    ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
1014        let _response = self
1015            .client
1016            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1017                BaseSocketGetBindToDeviceResponse,
1018                fidl_fuchsia_posix::Errno,
1019            >>(
1020                (), 0x1ab1fbf0ef7906c8, fidl::encoding::DynamicFlags::empty(), ___deadline
1021            )?;
1022        Ok(_response.map(|x| x.value))
1023    }
1024
1025    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
1026    /// If `value` is 0, this clears the bound interface.
1027    pub fn r#set_bind_to_interface_index(
1028        &self,
1029        mut value: u64,
1030        ___deadline: zx::MonotonicInstant,
1031    ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
1032        let _response =
1033            self.client
1034                .send_query::<BaseSocketSetBindToInterfaceIndexRequest, fidl::encoding::ResultType<
1035                    fidl::encoding::EmptyStruct,
1036                    fidl_fuchsia_posix::Errno,
1037                >>(
1038                    (value,),
1039                    0x6e387a0def00821,
1040                    fidl::encoding::DynamicFlags::empty(),
1041                    ___deadline,
1042                )?;
1043        Ok(_response.map(|x| x))
1044    }
1045
1046    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
1047    pub fn r#get_bind_to_interface_index(
1048        &self,
1049        ___deadline: zx::MonotonicInstant,
1050    ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
1051        let _response = self
1052            .client
1053            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1054                BaseSocketGetBindToInterfaceIndexResponse,
1055                fidl_fuchsia_posix::Errno,
1056            >>(
1057                (), 0x59c31dd3e3078295, fidl::encoding::DynamicFlags::empty(), ___deadline
1058            )?;
1059        Ok(_response.map(|x| x.value))
1060    }
1061
1062    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
1063    pub fn r#set_timestamp(
1064        &self,
1065        mut value: TimestampOption,
1066        ___deadline: zx::MonotonicInstant,
1067    ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
1068        let _response =
1069            self.client.send_query::<BaseSocketSetTimestampRequest, fidl::encoding::ResultType<
1070                fidl::encoding::EmptyStruct,
1071                fidl_fuchsia_posix::Errno,
1072            >>(
1073                (value,),
1074                0x285d6516c263d839,
1075                fidl::encoding::DynamicFlags::empty(),
1076                ___deadline,
1077            )?;
1078        Ok(_response.map(|x| x))
1079    }
1080
1081    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
1082    pub fn r#get_timestamp(
1083        &self,
1084        ___deadline: zx::MonotonicInstant,
1085    ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
1086        let _response =
1087            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1088                BaseSocketGetTimestampResponse,
1089                fidl_fuchsia_posix::Errno,
1090            >>(
1091                (),
1092                0x49f2fffbbcc2bd27,
1093                fidl::encoding::DynamicFlags::empty(),
1094                ___deadline,
1095            )?;
1096        Ok(_response.map(|x| x.value))
1097    }
1098
1099    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
1100    /// unlike the standard SO_MARK, this API has multiple mark domains and each
1101    /// mark can be set independently in each domain.
1102    pub fn r#set_mark(
1103        &self,
1104        mut domain: fidl_fuchsia_net::MarkDomain,
1105        mut mark: &OptionalUint32,
1106        ___deadline: zx::MonotonicInstant,
1107    ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
1108        let _response =
1109            self.client.send_query::<BaseSocketSetMarkRequest, fidl::encoding::ResultType<
1110                fidl::encoding::EmptyStruct,
1111                fidl_fuchsia_posix::Errno,
1112            >>(
1113                (domain, mark),
1114                0x6ead6de09f653236,
1115                fidl::encoding::DynamicFlags::empty(),
1116                ___deadline,
1117            )?;
1118        Ok(_response.map(|x| x))
1119    }
1120
1121    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
1122    /// unlike the standard SO_MARK, this API has multiple mark domains and each
1123    /// mark can be retrieved independently in each domain.
1124    pub fn r#get_mark(
1125        &self,
1126        mut domain: fidl_fuchsia_net::MarkDomain,
1127        ___deadline: zx::MonotonicInstant,
1128    ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
1129        let _response =
1130            self.client.send_query::<BaseSocketGetMarkRequest, fidl::encoding::ResultType<
1131                BaseSocketGetMarkResponse,
1132                fidl_fuchsia_posix::Errno,
1133            >>(
1134                (domain,),
1135                0x57a2752c61d93d47,
1136                fidl::encoding::DynamicFlags::empty(),
1137                ___deadline,
1138            )?;
1139        Ok(_response.map(|x| x.mark))
1140    }
1141
1142    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
1143    pub fn r#get_cookie(
1144        &self,
1145        ___deadline: zx::MonotonicInstant,
1146    ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
1147        let _response =
1148            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1149                BaseSocketGetCookieResponse,
1150                fidl_fuchsia_posix::Errno,
1151            >>(
1152                (),
1153                0x2c2f47fd8f924e52,
1154                fidl::encoding::DynamicFlags::empty(),
1155                ___deadline,
1156            )?;
1157        Ok(_response.map(|x| x.value))
1158    }
1159
1160    /// Sets the local address used for the socket.
1161    pub fn r#bind(
1162        &self,
1163        mut addr: &fidl_fuchsia_net::SocketAddress,
1164        ___deadline: zx::MonotonicInstant,
1165    ) -> Result<BaseNetworkSocketBindResult, fidl::Error> {
1166        let _response =
1167            self.client.send_query::<BaseNetworkSocketBindRequest, fidl::encoding::ResultType<
1168                fidl::encoding::EmptyStruct,
1169                fidl_fuchsia_posix::Errno,
1170            >>(
1171                (addr,),
1172                0x4bc6400ae92125d,
1173                fidl::encoding::DynamicFlags::empty(),
1174                ___deadline,
1175            )?;
1176        Ok(_response.map(|x| x))
1177    }
1178
1179    /// Initiates a connection to a remote address.
1180    pub fn r#connect(
1181        &self,
1182        mut addr: &fidl_fuchsia_net::SocketAddress,
1183        ___deadline: zx::MonotonicInstant,
1184    ) -> Result<BaseNetworkSocketConnectResult, fidl::Error> {
1185        let _response =
1186            self.client.send_query::<BaseNetworkSocketConnectRequest, fidl::encoding::ResultType<
1187                fidl::encoding::EmptyStruct,
1188                fidl_fuchsia_posix::Errno,
1189            >>(
1190                (addr,),
1191                0x5f05f19bfdd38871,
1192                fidl::encoding::DynamicFlags::empty(),
1193                ___deadline,
1194            )?;
1195        Ok(_response.map(|x| x))
1196    }
1197
1198    /// Clears connection information from this socket.
1199    pub fn r#disconnect(
1200        &self,
1201        ___deadline: zx::MonotonicInstant,
1202    ) -> Result<BaseNetworkSocketDisconnectResult, fidl::Error> {
1203        let _response =
1204            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1205                fidl::encoding::EmptyStruct,
1206                fidl_fuchsia_posix::Errno,
1207            >>(
1208                (),
1209                0x74e63b91f7b29b2,
1210                fidl::encoding::DynamicFlags::empty(),
1211                ___deadline,
1212            )?;
1213        Ok(_response.map(|x| x))
1214    }
1215
1216    /// Retrieves the local socket address.
1217    pub fn r#get_sock_name(
1218        &self,
1219        ___deadline: zx::MonotonicInstant,
1220    ) -> Result<BaseNetworkSocketGetSockNameResult, fidl::Error> {
1221        let _response = self
1222            .client
1223            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1224                BaseNetworkSocketGetSockNameResponse,
1225                fidl_fuchsia_posix::Errno,
1226            >>(
1227                (), 0x475f23f84a1a4f85, fidl::encoding::DynamicFlags::empty(), ___deadline
1228            )?;
1229        Ok(_response.map(|x| x.addr))
1230    }
1231
1232    /// Retrieves the remote socket address.
1233    pub fn r#get_peer_name(
1234        &self,
1235        ___deadline: zx::MonotonicInstant,
1236    ) -> Result<BaseNetworkSocketGetPeerNameResult, fidl::Error> {
1237        let _response = self
1238            .client
1239            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1240                BaseNetworkSocketGetPeerNameResponse,
1241                fidl_fuchsia_posix::Errno,
1242            >>(
1243                (), 0x1ffecf4bd5b6432e, fidl::encoding::DynamicFlags::empty(), ___deadline
1244            )?;
1245        Ok(_response.map(|x| x.addr))
1246    }
1247
1248    /// Shuts down part of the socket.
1249    pub fn r#shutdown(
1250        &self,
1251        mut mode: ShutdownMode,
1252        ___deadline: zx::MonotonicInstant,
1253    ) -> Result<BaseNetworkSocketShutdownResult, fidl::Error> {
1254        let _response =
1255            self.client.send_query::<BaseNetworkSocketShutdownRequest, fidl::encoding::ResultType<
1256                fidl::encoding::EmptyStruct,
1257                fidl_fuchsia_posix::Errno,
1258            >>(
1259                (mode,),
1260                0x247f38b6db68c336,
1261                fidl::encoding::DynamicFlags::empty(),
1262                ___deadline,
1263            )?;
1264        Ok(_response.map(|x| x))
1265    }
1266
1267    /// Set `SOL_IP` -> `IP_TOS`.
1268    pub fn r#set_ip_type_of_service(
1269        &self,
1270        mut value: u8,
1271        ___deadline: zx::MonotonicInstant,
1272    ) -> Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error> {
1273        let _response = self.client.send_query::<
1274            BaseNetworkSocketSetIpTypeOfServiceRequest,
1275            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1276        >(
1277            (value,),
1278            0x995c600475b6d46,
1279            fidl::encoding::DynamicFlags::empty(),
1280            ___deadline,
1281        )?;
1282        Ok(_response.map(|x| x))
1283    }
1284
1285    /// Get `SOL_IP` -> `IP_TOS`.
1286    pub fn r#get_ip_type_of_service(
1287        &self,
1288        ___deadline: zx::MonotonicInstant,
1289    ) -> Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error> {
1290        let _response = self
1291            .client
1292            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1293                BaseNetworkSocketGetIpTypeOfServiceResponse,
1294                fidl_fuchsia_posix::Errno,
1295            >>(
1296                (), 0x3814a04259f75fcb, fidl::encoding::DynamicFlags::empty(), ___deadline
1297            )?;
1298        Ok(_response.map(|x| x.value))
1299    }
1300
1301    /// Set `SOL_IP` -> `IP_TTL`.
1302    pub fn r#set_ip_ttl(
1303        &self,
1304        mut value: &OptionalUint8,
1305        ___deadline: zx::MonotonicInstant,
1306    ) -> Result<BaseNetworkSocketSetIpTtlResult, fidl::Error> {
1307        let _response =
1308            self.client.send_query::<BaseNetworkSocketSetIpTtlRequest, fidl::encoding::ResultType<
1309                fidl::encoding::EmptyStruct,
1310                fidl_fuchsia_posix::Errno,
1311            >>(
1312                (value,),
1313                0x29e2424b433ae1ef,
1314                fidl::encoding::DynamicFlags::empty(),
1315                ___deadline,
1316            )?;
1317        Ok(_response.map(|x| x))
1318    }
1319
1320    /// Get `SOL_IP` -> `IP_TTL`.
1321    pub fn r#get_ip_ttl(
1322        &self,
1323        ___deadline: zx::MonotonicInstant,
1324    ) -> Result<BaseNetworkSocketGetIpTtlResult, fidl::Error> {
1325        let _response = self
1326            .client
1327            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1328                BaseNetworkSocketGetIpTtlResponse,
1329                fidl_fuchsia_posix::Errno,
1330            >>(
1331                (), 0x47e47fa1f24da471, fidl::encoding::DynamicFlags::empty(), ___deadline
1332            )?;
1333        Ok(_response.map(|x| x.value))
1334    }
1335
1336    /// Set `SOL_IP` -> `IP_PKTINFO`.
1337    pub fn r#set_ip_packet_info(
1338        &self,
1339        mut value: bool,
1340        ___deadline: zx::MonotonicInstant,
1341    ) -> Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error> {
1342        let _response =
1343            self.client
1344                .send_query::<BaseNetworkSocketSetIpPacketInfoRequest, fidl::encoding::ResultType<
1345                    fidl::encoding::EmptyStruct,
1346                    fidl_fuchsia_posix::Errno,
1347                >>(
1348                    (value,),
1349                    0x392d16bee20c0e16,
1350                    fidl::encoding::DynamicFlags::empty(),
1351                    ___deadline,
1352                )?;
1353        Ok(_response.map(|x| x))
1354    }
1355
1356    /// Get `SOL_IP` -> `IP_PKTINFO`.
1357    pub fn r#get_ip_packet_info(
1358        &self,
1359        ___deadline: zx::MonotonicInstant,
1360    ) -> Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error> {
1361        let _response = self
1362            .client
1363            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1364                BaseNetworkSocketGetIpPacketInfoResponse,
1365                fidl_fuchsia_posix::Errno,
1366            >>(
1367                (), 0x54b505f242280740, fidl::encoding::DynamicFlags::empty(), ___deadline
1368            )?;
1369        Ok(_response.map(|x| x.value))
1370    }
1371
1372    /// Set `SOL_IP` -> `IP_RECVTOS`.
1373    pub fn r#set_ip_receive_type_of_service(
1374        &self,
1375        mut value: bool,
1376        ___deadline: zx::MonotonicInstant,
1377    ) -> Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error> {
1378        let _response = self.client.send_query::<
1379            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
1380            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1381        >(
1382            (value,),
1383            0x6c4f6714995f84ef,
1384            fidl::encoding::DynamicFlags::empty(),
1385            ___deadline,
1386        )?;
1387        Ok(_response.map(|x| x))
1388    }
1389
1390    /// Get `SOL_IP` -> `IP_RECVTOS`.
1391    pub fn r#get_ip_receive_type_of_service(
1392        &self,
1393        ___deadline: zx::MonotonicInstant,
1394    ) -> Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error> {
1395        let _response = self
1396            .client
1397            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1398                BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
1399                fidl_fuchsia_posix::Errno,
1400            >>(
1401                (), 0x4158ba7dc2795960, fidl::encoding::DynamicFlags::empty(), ___deadline
1402            )?;
1403        Ok(_response.map(|x| x.value))
1404    }
1405
1406    /// Set `SOL_IP` -> `IP_RECVTTL`.
1407    pub fn r#set_ip_receive_ttl(
1408        &self,
1409        mut value: bool,
1410        ___deadline: zx::MonotonicInstant,
1411    ) -> Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error> {
1412        let _response =
1413            self.client
1414                .send_query::<BaseNetworkSocketSetIpReceiveTtlRequest, fidl::encoding::ResultType<
1415                    fidl::encoding::EmptyStruct,
1416                    fidl_fuchsia_posix::Errno,
1417                >>(
1418                    (value,),
1419                    0x46f15be0ce0ab82b,
1420                    fidl::encoding::DynamicFlags::empty(),
1421                    ___deadline,
1422                )?;
1423        Ok(_response.map(|x| x))
1424    }
1425
1426    /// Get `SOL_IP` -> `IP_RECVTTL`.
1427    pub fn r#get_ip_receive_ttl(
1428        &self,
1429        ___deadline: zx::MonotonicInstant,
1430    ) -> Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error> {
1431        let _response = self
1432            .client
1433            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1434                BaseNetworkSocketGetIpReceiveTtlResponse,
1435                fidl_fuchsia_posix::Errno,
1436            >>(
1437                (), 0x678ddd5a5dfa2eb5, fidl::encoding::DynamicFlags::empty(), ___deadline
1438            )?;
1439        Ok(_response.map(|x| x.value))
1440    }
1441
1442    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
1443    pub fn r#set_ip_multicast_interface(
1444        &self,
1445        mut iface: u64,
1446        mut address: &fidl_fuchsia_net::Ipv4Address,
1447        ___deadline: zx::MonotonicInstant,
1448    ) -> Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error> {
1449        let _response = self.client.send_query::<
1450            BaseNetworkSocketSetIpMulticastInterfaceRequest,
1451            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1452        >(
1453            (iface, address,),
1454            0x752fbfa9b12befe,
1455            fidl::encoding::DynamicFlags::empty(),
1456            ___deadline,
1457        )?;
1458        Ok(_response.map(|x| x))
1459    }
1460
1461    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
1462    pub fn r#get_ip_multicast_interface(
1463        &self,
1464        ___deadline: zx::MonotonicInstant,
1465    ) -> Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error> {
1466        let _response = self
1467            .client
1468            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1469                BaseNetworkSocketGetIpMulticastInterfaceResponse,
1470                fidl_fuchsia_posix::Errno,
1471            >>(
1472                (), 0x320bd14c4df046c4, fidl::encoding::DynamicFlags::empty(), ___deadline
1473            )?;
1474        Ok(_response.map(|x| x.value))
1475    }
1476
1477    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
1478    pub fn r#set_ip_multicast_ttl(
1479        &self,
1480        mut value: &OptionalUint8,
1481        ___deadline: zx::MonotonicInstant,
1482    ) -> Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error> {
1483        let _response =
1484            self.client
1485                .send_query::<BaseNetworkSocketSetIpMulticastTtlRequest, fidl::encoding::ResultType<
1486                    fidl::encoding::EmptyStruct,
1487                    fidl_fuchsia_posix::Errno,
1488                >>(
1489                    (value,),
1490                    0x63134d53772916a1,
1491                    fidl::encoding::DynamicFlags::empty(),
1492                    ___deadline,
1493                )?;
1494        Ok(_response.map(|x| x))
1495    }
1496
1497    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
1498    pub fn r#get_ip_multicast_ttl(
1499        &self,
1500        ___deadline: zx::MonotonicInstant,
1501    ) -> Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error> {
1502        let _response = self
1503            .client
1504            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1505                BaseNetworkSocketGetIpMulticastTtlResponse,
1506                fidl_fuchsia_posix::Errno,
1507            >>(
1508                (), 0x4665cd378f39e1a, fidl::encoding::DynamicFlags::empty(), ___deadline
1509            )?;
1510        Ok(_response.map(|x| x.value))
1511    }
1512
1513    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
1514    pub fn r#set_ip_multicast_loopback(
1515        &self,
1516        mut value: bool,
1517        ___deadline: zx::MonotonicInstant,
1518    ) -> Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error> {
1519        let _response = self.client.send_query::<
1520            BaseNetworkSocketSetIpMulticastLoopbackRequest,
1521            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1522        >(
1523            (value,),
1524            0x20c55c11f00943ea,
1525            fidl::encoding::DynamicFlags::empty(),
1526            ___deadline,
1527        )?;
1528        Ok(_response.map(|x| x))
1529    }
1530
1531    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
1532    pub fn r#get_ip_multicast_loopback(
1533        &self,
1534        ___deadline: zx::MonotonicInstant,
1535    ) -> Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error> {
1536        let _response = self
1537            .client
1538            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1539                BaseNetworkSocketGetIpMulticastLoopbackResponse,
1540                fidl_fuchsia_posix::Errno,
1541            >>(
1542                (), 0x3b6b26ff558298f2, fidl::encoding::DynamicFlags::empty(), ___deadline
1543            )?;
1544        Ok(_response.map(|x| x.value))
1545    }
1546
1547    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
1548    pub fn r#add_ip_membership(
1549        &self,
1550        mut membership: &IpMulticastMembership,
1551        ___deadline: zx::MonotonicInstant,
1552    ) -> Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error> {
1553        let _response =
1554            self.client
1555                .send_query::<BaseNetworkSocketAddIpMembershipRequest, fidl::encoding::ResultType<
1556                    fidl::encoding::EmptyStruct,
1557                    fidl_fuchsia_posix::Errno,
1558                >>(
1559                    (membership,),
1560                    0x76bc7df115a3b4d0,
1561                    fidl::encoding::DynamicFlags::empty(),
1562                    ___deadline,
1563                )?;
1564        Ok(_response.map(|x| x))
1565    }
1566
1567    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
1568    pub fn r#drop_ip_membership(
1569        &self,
1570        mut membership: &IpMulticastMembership,
1571        ___deadline: zx::MonotonicInstant,
1572    ) -> Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error> {
1573        let _response =
1574            self.client
1575                .send_query::<BaseNetworkSocketDropIpMembershipRequest, fidl::encoding::ResultType<
1576                    fidl::encoding::EmptyStruct,
1577                    fidl_fuchsia_posix::Errno,
1578                >>(
1579                    (membership,),
1580                    0x2888f3099188d03,
1581                    fidl::encoding::DynamicFlags::empty(),
1582                    ___deadline,
1583                )?;
1584        Ok(_response.map(|x| x))
1585    }
1586
1587    /// Set `SOL_IP` -> `IP_TRANSPARENT`
1588    pub fn r#set_ip_transparent(
1589        &self,
1590        mut value: bool,
1591        ___deadline: zx::MonotonicInstant,
1592    ) -> Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error> {
1593        let _response =
1594            self.client
1595                .send_query::<BaseNetworkSocketSetIpTransparentRequest, fidl::encoding::ResultType<
1596                    fidl::encoding::EmptyStruct,
1597                    fidl_fuchsia_posix::Errno,
1598                >>(
1599                    (value,),
1600                    0x1ae532b0c066e3a0,
1601                    fidl::encoding::DynamicFlags::empty(),
1602                    ___deadline,
1603                )?;
1604        Ok(_response.map(|x| x))
1605    }
1606
1607    /// Get `SOL_IP` -> `IP_TRANSPARENT`
1608    pub fn r#get_ip_transparent(
1609        &self,
1610        ___deadline: zx::MonotonicInstant,
1611    ) -> Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error> {
1612        let _response = self
1613            .client
1614            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1615                BaseNetworkSocketGetIpTransparentResponse,
1616                fidl_fuchsia_posix::Errno,
1617            >>(
1618                (), 0x51d43695962ebfb5, fidl::encoding::DynamicFlags::empty(), ___deadline
1619            )?;
1620        Ok(_response.map(|x| x.value))
1621    }
1622
1623    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
1624    pub fn r#set_ip_receive_original_destination_address(
1625        &self,
1626        mut value: bool,
1627        ___deadline: zx::MonotonicInstant,
1628    ) -> Result<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult, fidl::Error> {
1629        let _response = self.client.send_query::<
1630            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
1631            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1632        >(
1633            (value,),
1634            0x4722b4ce52f7840,
1635            fidl::encoding::DynamicFlags::empty(),
1636            ___deadline,
1637        )?;
1638        Ok(_response.map(|x| x))
1639    }
1640
1641    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
1642    pub fn r#get_ip_receive_original_destination_address(
1643        &self,
1644        ___deadline: zx::MonotonicInstant,
1645    ) -> Result<BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult, fidl::Error> {
1646        let _response = self
1647            .client
1648            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1649                BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
1650                fidl_fuchsia_posix::Errno,
1651            >>(
1652                (), 0x2a0e7dc5d6bfdfe9, fidl::encoding::DynamicFlags::empty(), ___deadline
1653            )?;
1654        Ok(_response.map(|x| x.value))
1655    }
1656
1657    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
1658    pub fn r#add_ipv6_membership(
1659        &self,
1660        mut membership: &Ipv6MulticastMembership,
1661        ___deadline: zx::MonotonicInstant,
1662    ) -> Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error> {
1663        let _response =
1664            self.client
1665                .send_query::<BaseNetworkSocketAddIpv6MembershipRequest, fidl::encoding::ResultType<
1666                    fidl::encoding::EmptyStruct,
1667                    fidl_fuchsia_posix::Errno,
1668                >>(
1669                    (membership,),
1670                    0x7c94727acb4ea4b3,
1671                    fidl::encoding::DynamicFlags::empty(),
1672                    ___deadline,
1673                )?;
1674        Ok(_response.map(|x| x))
1675    }
1676
1677    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
1678    pub fn r#drop_ipv6_membership(
1679        &self,
1680        mut membership: &Ipv6MulticastMembership,
1681        ___deadline: zx::MonotonicInstant,
1682    ) -> Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error> {
1683        let _response = self.client.send_query::<
1684            BaseNetworkSocketDropIpv6MembershipRequest,
1685            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1686        >(
1687            (membership,),
1688            0x42104c70ccaba304,
1689            fidl::encoding::DynamicFlags::empty(),
1690            ___deadline,
1691        )?;
1692        Ok(_response.map(|x| x))
1693    }
1694
1695    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
1696    pub fn r#set_ipv6_multicast_interface(
1697        &self,
1698        mut value: u64,
1699        ___deadline: zx::MonotonicInstant,
1700    ) -> Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error> {
1701        let _response = self.client.send_query::<
1702            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
1703            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1704        >(
1705            (value,),
1706            0x135f76db3774ab3b,
1707            fidl::encoding::DynamicFlags::empty(),
1708            ___deadline,
1709        )?;
1710        Ok(_response.map(|x| x))
1711    }
1712
1713    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
1714    pub fn r#get_ipv6_multicast_interface(
1715        &self,
1716        ___deadline: zx::MonotonicInstant,
1717    ) -> Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error> {
1718        let _response = self
1719            .client
1720            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1721                BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
1722                fidl_fuchsia_posix::Errno,
1723            >>(
1724                (), 0x1f26fcdd348f1882, fidl::encoding::DynamicFlags::empty(), ___deadline
1725            )?;
1726        Ok(_response.map(|x| x.value))
1727    }
1728
1729    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
1730    pub fn r#set_ipv6_unicast_hops(
1731        &self,
1732        mut value: &OptionalUint8,
1733        ___deadline: zx::MonotonicInstant,
1734    ) -> Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error> {
1735        let _response = self.client.send_query::<
1736            BaseNetworkSocketSetIpv6UnicastHopsRequest,
1737            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1738        >(
1739            (value,),
1740            0x157d51e98f462859,
1741            fidl::encoding::DynamicFlags::empty(),
1742            ___deadline,
1743        )?;
1744        Ok(_response.map(|x| x))
1745    }
1746
1747    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
1748    pub fn r#get_ipv6_unicast_hops(
1749        &self,
1750        ___deadline: zx::MonotonicInstant,
1751    ) -> Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error> {
1752        let _response = self
1753            .client
1754            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1755                BaseNetworkSocketGetIpv6UnicastHopsResponse,
1756                fidl_fuchsia_posix::Errno,
1757            >>(
1758                (), 0x21f4641cad8bd8d2, fidl::encoding::DynamicFlags::empty(), ___deadline
1759            )?;
1760        Ok(_response.map(|x| x.value))
1761    }
1762
1763    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
1764    pub fn r#set_ipv6_receive_hop_limit(
1765        &self,
1766        mut value: bool,
1767        ___deadline: zx::MonotonicInstant,
1768    ) -> Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error> {
1769        let _response = self.client.send_query::<
1770            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
1771            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1772        >(
1773            (value,),
1774            0x5c24808ed2e84a1e,
1775            fidl::encoding::DynamicFlags::empty(),
1776            ___deadline,
1777        )?;
1778        Ok(_response.map(|x| x))
1779    }
1780
1781    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
1782    pub fn r#get_ipv6_receive_hop_limit(
1783        &self,
1784        ___deadline: zx::MonotonicInstant,
1785    ) -> Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error> {
1786        let _response = self
1787            .client
1788            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1789                BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
1790                fidl_fuchsia_posix::Errno,
1791            >>(
1792                (), 0x341e06689885b4c0, fidl::encoding::DynamicFlags::empty(), ___deadline
1793            )?;
1794        Ok(_response.map(|x| x.value))
1795    }
1796
1797    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
1798    pub fn r#set_ipv6_multicast_hops(
1799        &self,
1800        mut value: &OptionalUint8,
1801        ___deadline: zx::MonotonicInstant,
1802    ) -> Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error> {
1803        let _response = self.client.send_query::<
1804            BaseNetworkSocketSetIpv6MulticastHopsRequest,
1805            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1806        >(
1807            (value,),
1808            0x25b9cd4d181f82c1,
1809            fidl::encoding::DynamicFlags::empty(),
1810            ___deadline,
1811        )?;
1812        Ok(_response.map(|x| x))
1813    }
1814
1815    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
1816    pub fn r#get_ipv6_multicast_hops(
1817        &self,
1818        ___deadline: zx::MonotonicInstant,
1819    ) -> Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error> {
1820        let _response = self
1821            .client
1822            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1823                BaseNetworkSocketGetIpv6MulticastHopsResponse,
1824                fidl_fuchsia_posix::Errno,
1825            >>(
1826                (), 0x52916948a365012a, fidl::encoding::DynamicFlags::empty(), ___deadline
1827            )?;
1828        Ok(_response.map(|x| x.value))
1829    }
1830
1831    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
1832    pub fn r#set_ipv6_multicast_loopback(
1833        &self,
1834        mut value: bool,
1835        ___deadline: zx::MonotonicInstant,
1836    ) -> Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error> {
1837        let _response = self.client.send_query::<
1838            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
1839            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1840        >(
1841            (value,),
1842            0x55701c409ff41b40,
1843            fidl::encoding::DynamicFlags::empty(),
1844            ___deadline,
1845        )?;
1846        Ok(_response.map(|x| x))
1847    }
1848
1849    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
1850    pub fn r#get_ipv6_multicast_loopback(
1851        &self,
1852        ___deadline: zx::MonotonicInstant,
1853    ) -> Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error> {
1854        let _response = self
1855            .client
1856            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1857                BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
1858                fidl_fuchsia_posix::Errno,
1859            >>(
1860                (), 0x4415b701fde319c3, fidl::encoding::DynamicFlags::empty(), ___deadline
1861            )?;
1862        Ok(_response.map(|x| x.value))
1863    }
1864
1865    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
1866    pub fn r#set_ipv6_only(
1867        &self,
1868        mut value: bool,
1869        ___deadline: zx::MonotonicInstant,
1870    ) -> Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error> {
1871        let _response =
1872            self.client
1873                .send_query::<BaseNetworkSocketSetIpv6OnlyRequest, fidl::encoding::ResultType<
1874                    fidl::encoding::EmptyStruct,
1875                    fidl_fuchsia_posix::Errno,
1876                >>(
1877                    (value,),
1878                    0x4873f1364758cbba,
1879                    fidl::encoding::DynamicFlags::empty(),
1880                    ___deadline,
1881                )?;
1882        Ok(_response.map(|x| x))
1883    }
1884
1885    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
1886    pub fn r#get_ipv6_only(
1887        &self,
1888        ___deadline: zx::MonotonicInstant,
1889    ) -> Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error> {
1890        let _response = self
1891            .client
1892            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1893                BaseNetworkSocketGetIpv6OnlyResponse,
1894                fidl_fuchsia_posix::Errno,
1895            >>(
1896                (), 0x4aa3340a1a26b89c, fidl::encoding::DynamicFlags::empty(), ___deadline
1897            )?;
1898        Ok(_response.map(|x| x.value))
1899    }
1900
1901    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
1902    pub fn r#set_ipv6_receive_traffic_class(
1903        &self,
1904        mut value: bool,
1905        ___deadline: zx::MonotonicInstant,
1906    ) -> Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error> {
1907        let _response = self.client.send_query::<
1908            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
1909            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1910        >(
1911            (value,),
1912            0x58f07c8788d099a0,
1913            fidl::encoding::DynamicFlags::empty(),
1914            ___deadline,
1915        )?;
1916        Ok(_response.map(|x| x))
1917    }
1918
1919    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
1920    pub fn r#get_ipv6_receive_traffic_class(
1921        &self,
1922        ___deadline: zx::MonotonicInstant,
1923    ) -> Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error> {
1924        let _response = self
1925            .client
1926            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1927                BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
1928                fidl_fuchsia_posix::Errno,
1929            >>(
1930                (), 0x2e334df1da553ffa, fidl::encoding::DynamicFlags::empty(), ___deadline
1931            )?;
1932        Ok(_response.map(|x| x.value))
1933    }
1934
1935    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
1936    pub fn r#set_ipv6_traffic_class(
1937        &self,
1938        mut value: &OptionalUint8,
1939        ___deadline: zx::MonotonicInstant,
1940    ) -> Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error> {
1941        let _response = self.client.send_query::<
1942            BaseNetworkSocketSetIpv6TrafficClassRequest,
1943            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1944        >(
1945            (value,),
1946            0x6af077800c5a0b4f,
1947            fidl::encoding::DynamicFlags::empty(),
1948            ___deadline,
1949        )?;
1950        Ok(_response.map(|x| x))
1951    }
1952
1953    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
1954    pub fn r#get_ipv6_traffic_class(
1955        &self,
1956        ___deadline: zx::MonotonicInstant,
1957    ) -> Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error> {
1958        let _response = self
1959            .client
1960            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1961                BaseNetworkSocketGetIpv6TrafficClassResponse,
1962                fidl_fuchsia_posix::Errno,
1963            >>(
1964                (), 0x6baf6eed8fc2f04, fidl::encoding::DynamicFlags::empty(), ___deadline
1965            )?;
1966        Ok(_response.map(|x| x.value))
1967    }
1968
1969    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
1970    pub fn r#set_ipv6_receive_packet_info(
1971        &self,
1972        mut value: bool,
1973        ___deadline: zx::MonotonicInstant,
1974    ) -> Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error> {
1975        let _response = self.client.send_query::<
1976            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
1977            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1978        >(
1979            (value,),
1980            0x19259775b1a92768,
1981            fidl::encoding::DynamicFlags::empty(),
1982            ___deadline,
1983        )?;
1984        Ok(_response.map(|x| x))
1985    }
1986
1987    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
1988    pub fn r#get_ipv6_receive_packet_info(
1989        &self,
1990        ___deadline: zx::MonotonicInstant,
1991    ) -> Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error> {
1992        let _response = self
1993            .client
1994            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1995                BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
1996                fidl_fuchsia_posix::Errno,
1997            >>(
1998                (), 0x7acd4a2775baec75, fidl::encoding::DynamicFlags::empty(), ___deadline
1999            )?;
2000        Ok(_response.map(|x| x.value))
2001    }
2002
2003    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
2004    pub fn r#get_original_destination(
2005        &self,
2006        ___deadline: zx::MonotonicInstant,
2007    ) -> Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error> {
2008        let _response = self
2009            .client
2010            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
2011                BaseNetworkSocketGetOriginalDestinationResponse,
2012                fidl_fuchsia_posix::Errno,
2013            >>(
2014                (), 0x38bf28f0dafdbac0, fidl::encoding::DynamicFlags::empty(), ___deadline
2015            )?;
2016        Ok(_response.map(|x| x.value))
2017    }
2018
2019    /// Retrieves creation information from the socket.
2020    ///
2021    /// - response `domain` the socket's associated domain.
2022    /// - response `proto` the socket's associated protocol.
2023    pub fn r#get_info(
2024        &self,
2025        ___deadline: zx::MonotonicInstant,
2026    ) -> Result<BaseDatagramSocketGetInfoResult, fidl::Error> {
2027        let _response = self
2028            .client
2029            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
2030                BaseDatagramSocketGetInfoResponse,
2031                fidl_fuchsia_posix::Errno,
2032            >>(
2033                (), 0x48aa0a1f6a32d2ed, fidl::encoding::DynamicFlags::empty(), ___deadline
2034            )?;
2035        Ok(_response.map(|x| (x.domain, x.proto)))
2036    }
2037}
2038
2039#[cfg(target_os = "fuchsia")]
2040impl From<BaseDatagramSocketSynchronousProxy> for zx::Handle {
2041    fn from(value: BaseDatagramSocketSynchronousProxy) -> Self {
2042        value.into_channel().into()
2043    }
2044}
2045
2046#[cfg(target_os = "fuchsia")]
2047impl From<fidl::Channel> for BaseDatagramSocketSynchronousProxy {
2048    fn from(value: fidl::Channel) -> Self {
2049        Self::new(value)
2050    }
2051}
2052
2053#[cfg(target_os = "fuchsia")]
2054impl fidl::endpoints::FromClient for BaseDatagramSocketSynchronousProxy {
2055    type Protocol = BaseDatagramSocketMarker;
2056
2057    fn from_client(value: fidl::endpoints::ClientEnd<BaseDatagramSocketMarker>) -> Self {
2058        Self::new(value.into_channel())
2059    }
2060}
2061
2062#[derive(Debug, Clone)]
2063pub struct BaseDatagramSocketProxy {
2064    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
2065}
2066
2067impl fidl::endpoints::Proxy for BaseDatagramSocketProxy {
2068    type Protocol = BaseDatagramSocketMarker;
2069
2070    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
2071        Self::new(inner)
2072    }
2073
2074    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
2075        self.client.into_channel().map_err(|client| Self { client })
2076    }
2077
2078    fn as_channel(&self) -> &::fidl::AsyncChannel {
2079        self.client.as_channel()
2080    }
2081}
2082
2083impl BaseDatagramSocketProxy {
2084    /// Create a new Proxy for fuchsia.posix.socket/BaseDatagramSocket.
2085    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
2086        let protocol_name =
2087            <BaseDatagramSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
2088        Self { client: fidl::client::Client::new(channel, protocol_name) }
2089    }
2090
2091    /// Get a Stream of events from the remote end of the protocol.
2092    ///
2093    /// # Panics
2094    ///
2095    /// Panics if the event stream was already taken.
2096    pub fn take_event_stream(&self) -> BaseDatagramSocketEventStream {
2097        BaseDatagramSocketEventStream { event_receiver: self.client.take_event_receiver() }
2098    }
2099
2100    pub fn r#clone(
2101        &self,
2102        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
2103    ) -> Result<(), fidl::Error> {
2104        BaseDatagramSocketProxyInterface::r#clone(self, request)
2105    }
2106
2107    /// Terminates the connection.
2108    ///
2109    /// After calling `Close`, the client must not send any other requests.
2110    ///
2111    /// Servers, after sending the status response, should close the connection
2112    /// regardless of status and without sending an epitaph.
2113    ///
2114    /// Closing the client end of the channel should be semantically equivalent
2115    /// to calling `Close` without knowing when the close has completed or its
2116    /// status.
2117    pub fn r#close(
2118        &self,
2119    ) -> fidl::client::QueryResponseFut<
2120        fidl_fuchsia_unknown::CloseableCloseResult,
2121        fidl::encoding::DefaultFuchsiaResourceDialect,
2122    > {
2123        BaseDatagramSocketProxyInterface::r#close(self)
2124    }
2125
2126    pub fn r#query(
2127        &self,
2128    ) -> fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>
2129    {
2130        BaseDatagramSocketProxyInterface::r#query(self)
2131    }
2132
2133    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
2134    pub fn r#set_reuse_address(
2135        &self,
2136        mut value: bool,
2137    ) -> fidl::client::QueryResponseFut<
2138        BaseSocketSetReuseAddressResult,
2139        fidl::encoding::DefaultFuchsiaResourceDialect,
2140    > {
2141        BaseDatagramSocketProxyInterface::r#set_reuse_address(self, value)
2142    }
2143
2144    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
2145    pub fn r#get_reuse_address(
2146        &self,
2147    ) -> fidl::client::QueryResponseFut<
2148        BaseSocketGetReuseAddressResult,
2149        fidl::encoding::DefaultFuchsiaResourceDialect,
2150    > {
2151        BaseDatagramSocketProxyInterface::r#get_reuse_address(self)
2152    }
2153
2154    /// Get `SOL_SOCKET` -> `SO_ERROR`.
2155    /// Returns the last error if there is an error set on the socket.
2156    pub fn r#get_error(
2157        &self,
2158    ) -> fidl::client::QueryResponseFut<
2159        BaseSocketGetErrorResult,
2160        fidl::encoding::DefaultFuchsiaResourceDialect,
2161    > {
2162        BaseDatagramSocketProxyInterface::r#get_error(self)
2163    }
2164
2165    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
2166    pub fn r#set_broadcast(
2167        &self,
2168        mut value: bool,
2169    ) -> fidl::client::QueryResponseFut<
2170        BaseSocketSetBroadcastResult,
2171        fidl::encoding::DefaultFuchsiaResourceDialect,
2172    > {
2173        BaseDatagramSocketProxyInterface::r#set_broadcast(self, value)
2174    }
2175
2176    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
2177    pub fn r#get_broadcast(
2178        &self,
2179    ) -> fidl::client::QueryResponseFut<
2180        BaseSocketGetBroadcastResult,
2181        fidl::encoding::DefaultFuchsiaResourceDialect,
2182    > {
2183        BaseDatagramSocketProxyInterface::r#get_broadcast(self)
2184    }
2185
2186    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
2187    pub fn r#set_send_buffer(
2188        &self,
2189        mut value_bytes: u64,
2190    ) -> fidl::client::QueryResponseFut<
2191        BaseSocketSetSendBufferResult,
2192        fidl::encoding::DefaultFuchsiaResourceDialect,
2193    > {
2194        BaseDatagramSocketProxyInterface::r#set_send_buffer(self, value_bytes)
2195    }
2196
2197    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
2198    pub fn r#get_send_buffer(
2199        &self,
2200    ) -> fidl::client::QueryResponseFut<
2201        BaseSocketGetSendBufferResult,
2202        fidl::encoding::DefaultFuchsiaResourceDialect,
2203    > {
2204        BaseDatagramSocketProxyInterface::r#get_send_buffer(self)
2205    }
2206
2207    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
2208    pub fn r#set_receive_buffer(
2209        &self,
2210        mut value_bytes: u64,
2211    ) -> fidl::client::QueryResponseFut<
2212        BaseSocketSetReceiveBufferResult,
2213        fidl::encoding::DefaultFuchsiaResourceDialect,
2214    > {
2215        BaseDatagramSocketProxyInterface::r#set_receive_buffer(self, value_bytes)
2216    }
2217
2218    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
2219    pub fn r#get_receive_buffer(
2220        &self,
2221    ) -> fidl::client::QueryResponseFut<
2222        BaseSocketGetReceiveBufferResult,
2223        fidl::encoding::DefaultFuchsiaResourceDialect,
2224    > {
2225        BaseDatagramSocketProxyInterface::r#get_receive_buffer(self)
2226    }
2227
2228    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
2229    pub fn r#set_keep_alive(
2230        &self,
2231        mut value: bool,
2232    ) -> fidl::client::QueryResponseFut<
2233        BaseSocketSetKeepAliveResult,
2234        fidl::encoding::DefaultFuchsiaResourceDialect,
2235    > {
2236        BaseDatagramSocketProxyInterface::r#set_keep_alive(self, value)
2237    }
2238
2239    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
2240    pub fn r#get_keep_alive(
2241        &self,
2242    ) -> fidl::client::QueryResponseFut<
2243        BaseSocketGetKeepAliveResult,
2244        fidl::encoding::DefaultFuchsiaResourceDialect,
2245    > {
2246        BaseDatagramSocketProxyInterface::r#get_keep_alive(self)
2247    }
2248
2249    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
2250    pub fn r#set_out_of_band_inline(
2251        &self,
2252        mut value: bool,
2253    ) -> fidl::client::QueryResponseFut<
2254        BaseSocketSetOutOfBandInlineResult,
2255        fidl::encoding::DefaultFuchsiaResourceDialect,
2256    > {
2257        BaseDatagramSocketProxyInterface::r#set_out_of_band_inline(self, value)
2258    }
2259
2260    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
2261    pub fn r#get_out_of_band_inline(
2262        &self,
2263    ) -> fidl::client::QueryResponseFut<
2264        BaseSocketGetOutOfBandInlineResult,
2265        fidl::encoding::DefaultFuchsiaResourceDialect,
2266    > {
2267        BaseDatagramSocketProxyInterface::r#get_out_of_band_inline(self)
2268    }
2269
2270    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
2271    pub fn r#set_no_check(
2272        &self,
2273        mut value: bool,
2274    ) -> fidl::client::QueryResponseFut<
2275        BaseSocketSetNoCheckResult,
2276        fidl::encoding::DefaultFuchsiaResourceDialect,
2277    > {
2278        BaseDatagramSocketProxyInterface::r#set_no_check(self, value)
2279    }
2280
2281    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
2282    pub fn r#get_no_check(
2283        &self,
2284    ) -> fidl::client::QueryResponseFut<
2285        BaseSocketGetNoCheckResult,
2286        fidl::encoding::DefaultFuchsiaResourceDialect,
2287    > {
2288        BaseDatagramSocketProxyInterface::r#get_no_check(self)
2289    }
2290
2291    /// Set `SOL_SOCKET` -> `SO_LINGER`.
2292    pub fn r#set_linger(
2293        &self,
2294        mut linger: bool,
2295        mut length_secs: u32,
2296    ) -> fidl::client::QueryResponseFut<
2297        BaseSocketSetLingerResult,
2298        fidl::encoding::DefaultFuchsiaResourceDialect,
2299    > {
2300        BaseDatagramSocketProxyInterface::r#set_linger(self, linger, length_secs)
2301    }
2302
2303    /// Get `SOL_SOCKET` -> `SO_LINGER`.
2304    pub fn r#get_linger(
2305        &self,
2306    ) -> fidl::client::QueryResponseFut<
2307        BaseSocketGetLingerResult,
2308        fidl::encoding::DefaultFuchsiaResourceDialect,
2309    > {
2310        BaseDatagramSocketProxyInterface::r#get_linger(self)
2311    }
2312
2313    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
2314    pub fn r#set_reuse_port(
2315        &self,
2316        mut value: bool,
2317    ) -> fidl::client::QueryResponseFut<
2318        BaseSocketSetReusePortResult,
2319        fidl::encoding::DefaultFuchsiaResourceDialect,
2320    > {
2321        BaseDatagramSocketProxyInterface::r#set_reuse_port(self, value)
2322    }
2323
2324    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
2325    pub fn r#get_reuse_port(
2326        &self,
2327    ) -> fidl::client::QueryResponseFut<
2328        BaseSocketGetReusePortResult,
2329        fidl::encoding::DefaultFuchsiaResourceDialect,
2330    > {
2331        BaseDatagramSocketProxyInterface::r#get_reuse_port(self)
2332    }
2333
2334    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
2335    pub fn r#get_accept_conn(
2336        &self,
2337    ) -> fidl::client::QueryResponseFut<
2338        BaseSocketGetAcceptConnResult,
2339        fidl::encoding::DefaultFuchsiaResourceDialect,
2340    > {
2341        BaseDatagramSocketProxyInterface::r#get_accept_conn(self)
2342    }
2343
2344    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
2345    pub fn r#set_bind_to_device(
2346        &self,
2347        mut value: &str,
2348    ) -> fidl::client::QueryResponseFut<
2349        BaseSocketSetBindToDeviceResult,
2350        fidl::encoding::DefaultFuchsiaResourceDialect,
2351    > {
2352        BaseDatagramSocketProxyInterface::r#set_bind_to_device(self, value)
2353    }
2354
2355    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
2356    pub fn r#get_bind_to_device(
2357        &self,
2358    ) -> fidl::client::QueryResponseFut<
2359        BaseSocketGetBindToDeviceResult,
2360        fidl::encoding::DefaultFuchsiaResourceDialect,
2361    > {
2362        BaseDatagramSocketProxyInterface::r#get_bind_to_device(self)
2363    }
2364
2365    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
2366    /// If `value` is 0, this clears the bound interface.
2367    pub fn r#set_bind_to_interface_index(
2368        &self,
2369        mut value: u64,
2370    ) -> fidl::client::QueryResponseFut<
2371        BaseSocketSetBindToInterfaceIndexResult,
2372        fidl::encoding::DefaultFuchsiaResourceDialect,
2373    > {
2374        BaseDatagramSocketProxyInterface::r#set_bind_to_interface_index(self, value)
2375    }
2376
2377    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
2378    pub fn r#get_bind_to_interface_index(
2379        &self,
2380    ) -> fidl::client::QueryResponseFut<
2381        BaseSocketGetBindToInterfaceIndexResult,
2382        fidl::encoding::DefaultFuchsiaResourceDialect,
2383    > {
2384        BaseDatagramSocketProxyInterface::r#get_bind_to_interface_index(self)
2385    }
2386
2387    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
2388    pub fn r#set_timestamp(
2389        &self,
2390        mut value: TimestampOption,
2391    ) -> fidl::client::QueryResponseFut<
2392        BaseSocketSetTimestampResult,
2393        fidl::encoding::DefaultFuchsiaResourceDialect,
2394    > {
2395        BaseDatagramSocketProxyInterface::r#set_timestamp(self, value)
2396    }
2397
2398    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
2399    pub fn r#get_timestamp(
2400        &self,
2401    ) -> fidl::client::QueryResponseFut<
2402        BaseSocketGetTimestampResult,
2403        fidl::encoding::DefaultFuchsiaResourceDialect,
2404    > {
2405        BaseDatagramSocketProxyInterface::r#get_timestamp(self)
2406    }
2407
2408    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
2409    /// unlike the standard SO_MARK, this API has multiple mark domains and each
2410    /// mark can be set independently in each domain.
2411    pub fn r#set_mark(
2412        &self,
2413        mut domain: fidl_fuchsia_net::MarkDomain,
2414        mut mark: &OptionalUint32,
2415    ) -> fidl::client::QueryResponseFut<
2416        BaseSocketSetMarkResult,
2417        fidl::encoding::DefaultFuchsiaResourceDialect,
2418    > {
2419        BaseDatagramSocketProxyInterface::r#set_mark(self, domain, mark)
2420    }
2421
2422    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
2423    /// unlike the standard SO_MARK, this API has multiple mark domains and each
2424    /// mark can be retrieved independently in each domain.
2425    pub fn r#get_mark(
2426        &self,
2427        mut domain: fidl_fuchsia_net::MarkDomain,
2428    ) -> fidl::client::QueryResponseFut<
2429        BaseSocketGetMarkResult,
2430        fidl::encoding::DefaultFuchsiaResourceDialect,
2431    > {
2432        BaseDatagramSocketProxyInterface::r#get_mark(self, domain)
2433    }
2434
2435    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
2436    pub fn r#get_cookie(
2437        &self,
2438    ) -> fidl::client::QueryResponseFut<
2439        BaseSocketGetCookieResult,
2440        fidl::encoding::DefaultFuchsiaResourceDialect,
2441    > {
2442        BaseDatagramSocketProxyInterface::r#get_cookie(self)
2443    }
2444
2445    /// Sets the local address used for the socket.
2446    pub fn r#bind(
2447        &self,
2448        mut addr: &fidl_fuchsia_net::SocketAddress,
2449    ) -> fidl::client::QueryResponseFut<
2450        BaseNetworkSocketBindResult,
2451        fidl::encoding::DefaultFuchsiaResourceDialect,
2452    > {
2453        BaseDatagramSocketProxyInterface::r#bind(self, addr)
2454    }
2455
2456    /// Initiates a connection to a remote address.
2457    pub fn r#connect(
2458        &self,
2459        mut addr: &fidl_fuchsia_net::SocketAddress,
2460    ) -> fidl::client::QueryResponseFut<
2461        BaseNetworkSocketConnectResult,
2462        fidl::encoding::DefaultFuchsiaResourceDialect,
2463    > {
2464        BaseDatagramSocketProxyInterface::r#connect(self, addr)
2465    }
2466
2467    /// Clears connection information from this socket.
2468    pub fn r#disconnect(
2469        &self,
2470    ) -> fidl::client::QueryResponseFut<
2471        BaseNetworkSocketDisconnectResult,
2472        fidl::encoding::DefaultFuchsiaResourceDialect,
2473    > {
2474        BaseDatagramSocketProxyInterface::r#disconnect(self)
2475    }
2476
2477    /// Retrieves the local socket address.
2478    pub fn r#get_sock_name(
2479        &self,
2480    ) -> fidl::client::QueryResponseFut<
2481        BaseNetworkSocketGetSockNameResult,
2482        fidl::encoding::DefaultFuchsiaResourceDialect,
2483    > {
2484        BaseDatagramSocketProxyInterface::r#get_sock_name(self)
2485    }
2486
2487    /// Retrieves the remote socket address.
2488    pub fn r#get_peer_name(
2489        &self,
2490    ) -> fidl::client::QueryResponseFut<
2491        BaseNetworkSocketGetPeerNameResult,
2492        fidl::encoding::DefaultFuchsiaResourceDialect,
2493    > {
2494        BaseDatagramSocketProxyInterface::r#get_peer_name(self)
2495    }
2496
2497    /// Shuts down part of the socket.
2498    pub fn r#shutdown(
2499        &self,
2500        mut mode: ShutdownMode,
2501    ) -> fidl::client::QueryResponseFut<
2502        BaseNetworkSocketShutdownResult,
2503        fidl::encoding::DefaultFuchsiaResourceDialect,
2504    > {
2505        BaseDatagramSocketProxyInterface::r#shutdown(self, mode)
2506    }
2507
2508    /// Set `SOL_IP` -> `IP_TOS`.
2509    pub fn r#set_ip_type_of_service(
2510        &self,
2511        mut value: u8,
2512    ) -> fidl::client::QueryResponseFut<
2513        BaseNetworkSocketSetIpTypeOfServiceResult,
2514        fidl::encoding::DefaultFuchsiaResourceDialect,
2515    > {
2516        BaseDatagramSocketProxyInterface::r#set_ip_type_of_service(self, value)
2517    }
2518
2519    /// Get `SOL_IP` -> `IP_TOS`.
2520    pub fn r#get_ip_type_of_service(
2521        &self,
2522    ) -> fidl::client::QueryResponseFut<
2523        BaseNetworkSocketGetIpTypeOfServiceResult,
2524        fidl::encoding::DefaultFuchsiaResourceDialect,
2525    > {
2526        BaseDatagramSocketProxyInterface::r#get_ip_type_of_service(self)
2527    }
2528
2529    /// Set `SOL_IP` -> `IP_TTL`.
2530    pub fn r#set_ip_ttl(
2531        &self,
2532        mut value: &OptionalUint8,
2533    ) -> fidl::client::QueryResponseFut<
2534        BaseNetworkSocketSetIpTtlResult,
2535        fidl::encoding::DefaultFuchsiaResourceDialect,
2536    > {
2537        BaseDatagramSocketProxyInterface::r#set_ip_ttl(self, value)
2538    }
2539
2540    /// Get `SOL_IP` -> `IP_TTL`.
2541    pub fn r#get_ip_ttl(
2542        &self,
2543    ) -> fidl::client::QueryResponseFut<
2544        BaseNetworkSocketGetIpTtlResult,
2545        fidl::encoding::DefaultFuchsiaResourceDialect,
2546    > {
2547        BaseDatagramSocketProxyInterface::r#get_ip_ttl(self)
2548    }
2549
2550    /// Set `SOL_IP` -> `IP_PKTINFO`.
2551    pub fn r#set_ip_packet_info(
2552        &self,
2553        mut value: bool,
2554    ) -> fidl::client::QueryResponseFut<
2555        BaseNetworkSocketSetIpPacketInfoResult,
2556        fidl::encoding::DefaultFuchsiaResourceDialect,
2557    > {
2558        BaseDatagramSocketProxyInterface::r#set_ip_packet_info(self, value)
2559    }
2560
2561    /// Get `SOL_IP` -> `IP_PKTINFO`.
2562    pub fn r#get_ip_packet_info(
2563        &self,
2564    ) -> fidl::client::QueryResponseFut<
2565        BaseNetworkSocketGetIpPacketInfoResult,
2566        fidl::encoding::DefaultFuchsiaResourceDialect,
2567    > {
2568        BaseDatagramSocketProxyInterface::r#get_ip_packet_info(self)
2569    }
2570
2571    /// Set `SOL_IP` -> `IP_RECVTOS`.
2572    pub fn r#set_ip_receive_type_of_service(
2573        &self,
2574        mut value: bool,
2575    ) -> fidl::client::QueryResponseFut<
2576        BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
2577        fidl::encoding::DefaultFuchsiaResourceDialect,
2578    > {
2579        BaseDatagramSocketProxyInterface::r#set_ip_receive_type_of_service(self, value)
2580    }
2581
2582    /// Get `SOL_IP` -> `IP_RECVTOS`.
2583    pub fn r#get_ip_receive_type_of_service(
2584        &self,
2585    ) -> fidl::client::QueryResponseFut<
2586        BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
2587        fidl::encoding::DefaultFuchsiaResourceDialect,
2588    > {
2589        BaseDatagramSocketProxyInterface::r#get_ip_receive_type_of_service(self)
2590    }
2591
2592    /// Set `SOL_IP` -> `IP_RECVTTL`.
2593    pub fn r#set_ip_receive_ttl(
2594        &self,
2595        mut value: bool,
2596    ) -> fidl::client::QueryResponseFut<
2597        BaseNetworkSocketSetIpReceiveTtlResult,
2598        fidl::encoding::DefaultFuchsiaResourceDialect,
2599    > {
2600        BaseDatagramSocketProxyInterface::r#set_ip_receive_ttl(self, value)
2601    }
2602
2603    /// Get `SOL_IP` -> `IP_RECVTTL`.
2604    pub fn r#get_ip_receive_ttl(
2605        &self,
2606    ) -> fidl::client::QueryResponseFut<
2607        BaseNetworkSocketGetIpReceiveTtlResult,
2608        fidl::encoding::DefaultFuchsiaResourceDialect,
2609    > {
2610        BaseDatagramSocketProxyInterface::r#get_ip_receive_ttl(self)
2611    }
2612
2613    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
2614    pub fn r#set_ip_multicast_interface(
2615        &self,
2616        mut iface: u64,
2617        mut address: &fidl_fuchsia_net::Ipv4Address,
2618    ) -> fidl::client::QueryResponseFut<
2619        BaseNetworkSocketSetIpMulticastInterfaceResult,
2620        fidl::encoding::DefaultFuchsiaResourceDialect,
2621    > {
2622        BaseDatagramSocketProxyInterface::r#set_ip_multicast_interface(self, iface, address)
2623    }
2624
2625    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
2626    pub fn r#get_ip_multicast_interface(
2627        &self,
2628    ) -> fidl::client::QueryResponseFut<
2629        BaseNetworkSocketGetIpMulticastInterfaceResult,
2630        fidl::encoding::DefaultFuchsiaResourceDialect,
2631    > {
2632        BaseDatagramSocketProxyInterface::r#get_ip_multicast_interface(self)
2633    }
2634
2635    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
2636    pub fn r#set_ip_multicast_ttl(
2637        &self,
2638        mut value: &OptionalUint8,
2639    ) -> fidl::client::QueryResponseFut<
2640        BaseNetworkSocketSetIpMulticastTtlResult,
2641        fidl::encoding::DefaultFuchsiaResourceDialect,
2642    > {
2643        BaseDatagramSocketProxyInterface::r#set_ip_multicast_ttl(self, value)
2644    }
2645
2646    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
2647    pub fn r#get_ip_multicast_ttl(
2648        &self,
2649    ) -> fidl::client::QueryResponseFut<
2650        BaseNetworkSocketGetIpMulticastTtlResult,
2651        fidl::encoding::DefaultFuchsiaResourceDialect,
2652    > {
2653        BaseDatagramSocketProxyInterface::r#get_ip_multicast_ttl(self)
2654    }
2655
2656    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
2657    pub fn r#set_ip_multicast_loopback(
2658        &self,
2659        mut value: bool,
2660    ) -> fidl::client::QueryResponseFut<
2661        BaseNetworkSocketSetIpMulticastLoopbackResult,
2662        fidl::encoding::DefaultFuchsiaResourceDialect,
2663    > {
2664        BaseDatagramSocketProxyInterface::r#set_ip_multicast_loopback(self, value)
2665    }
2666
2667    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
2668    pub fn r#get_ip_multicast_loopback(
2669        &self,
2670    ) -> fidl::client::QueryResponseFut<
2671        BaseNetworkSocketGetIpMulticastLoopbackResult,
2672        fidl::encoding::DefaultFuchsiaResourceDialect,
2673    > {
2674        BaseDatagramSocketProxyInterface::r#get_ip_multicast_loopback(self)
2675    }
2676
2677    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
2678    pub fn r#add_ip_membership(
2679        &self,
2680        mut membership: &IpMulticastMembership,
2681    ) -> fidl::client::QueryResponseFut<
2682        BaseNetworkSocketAddIpMembershipResult,
2683        fidl::encoding::DefaultFuchsiaResourceDialect,
2684    > {
2685        BaseDatagramSocketProxyInterface::r#add_ip_membership(self, membership)
2686    }
2687
2688    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
2689    pub fn r#drop_ip_membership(
2690        &self,
2691        mut membership: &IpMulticastMembership,
2692    ) -> fidl::client::QueryResponseFut<
2693        BaseNetworkSocketDropIpMembershipResult,
2694        fidl::encoding::DefaultFuchsiaResourceDialect,
2695    > {
2696        BaseDatagramSocketProxyInterface::r#drop_ip_membership(self, membership)
2697    }
2698
2699    /// Set `SOL_IP` -> `IP_TRANSPARENT`
2700    pub fn r#set_ip_transparent(
2701        &self,
2702        mut value: bool,
2703    ) -> fidl::client::QueryResponseFut<
2704        BaseNetworkSocketSetIpTransparentResult,
2705        fidl::encoding::DefaultFuchsiaResourceDialect,
2706    > {
2707        BaseDatagramSocketProxyInterface::r#set_ip_transparent(self, value)
2708    }
2709
2710    /// Get `SOL_IP` -> `IP_TRANSPARENT`
2711    pub fn r#get_ip_transparent(
2712        &self,
2713    ) -> fidl::client::QueryResponseFut<
2714        BaseNetworkSocketGetIpTransparentResult,
2715        fidl::encoding::DefaultFuchsiaResourceDialect,
2716    > {
2717        BaseDatagramSocketProxyInterface::r#get_ip_transparent(self)
2718    }
2719
2720    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
2721    pub fn r#set_ip_receive_original_destination_address(
2722        &self,
2723        mut value: bool,
2724    ) -> fidl::client::QueryResponseFut<
2725        BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
2726        fidl::encoding::DefaultFuchsiaResourceDialect,
2727    > {
2728        BaseDatagramSocketProxyInterface::r#set_ip_receive_original_destination_address(self, value)
2729    }
2730
2731    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
2732    pub fn r#get_ip_receive_original_destination_address(
2733        &self,
2734    ) -> fidl::client::QueryResponseFut<
2735        BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
2736        fidl::encoding::DefaultFuchsiaResourceDialect,
2737    > {
2738        BaseDatagramSocketProxyInterface::r#get_ip_receive_original_destination_address(self)
2739    }
2740
2741    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
2742    pub fn r#add_ipv6_membership(
2743        &self,
2744        mut membership: &Ipv6MulticastMembership,
2745    ) -> fidl::client::QueryResponseFut<
2746        BaseNetworkSocketAddIpv6MembershipResult,
2747        fidl::encoding::DefaultFuchsiaResourceDialect,
2748    > {
2749        BaseDatagramSocketProxyInterface::r#add_ipv6_membership(self, membership)
2750    }
2751
2752    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
2753    pub fn r#drop_ipv6_membership(
2754        &self,
2755        mut membership: &Ipv6MulticastMembership,
2756    ) -> fidl::client::QueryResponseFut<
2757        BaseNetworkSocketDropIpv6MembershipResult,
2758        fidl::encoding::DefaultFuchsiaResourceDialect,
2759    > {
2760        BaseDatagramSocketProxyInterface::r#drop_ipv6_membership(self, membership)
2761    }
2762
2763    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
2764    pub fn r#set_ipv6_multicast_interface(
2765        &self,
2766        mut value: u64,
2767    ) -> fidl::client::QueryResponseFut<
2768        BaseNetworkSocketSetIpv6MulticastInterfaceResult,
2769        fidl::encoding::DefaultFuchsiaResourceDialect,
2770    > {
2771        BaseDatagramSocketProxyInterface::r#set_ipv6_multicast_interface(self, value)
2772    }
2773
2774    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
2775    pub fn r#get_ipv6_multicast_interface(
2776        &self,
2777    ) -> fidl::client::QueryResponseFut<
2778        BaseNetworkSocketGetIpv6MulticastInterfaceResult,
2779        fidl::encoding::DefaultFuchsiaResourceDialect,
2780    > {
2781        BaseDatagramSocketProxyInterface::r#get_ipv6_multicast_interface(self)
2782    }
2783
2784    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
2785    pub fn r#set_ipv6_unicast_hops(
2786        &self,
2787        mut value: &OptionalUint8,
2788    ) -> fidl::client::QueryResponseFut<
2789        BaseNetworkSocketSetIpv6UnicastHopsResult,
2790        fidl::encoding::DefaultFuchsiaResourceDialect,
2791    > {
2792        BaseDatagramSocketProxyInterface::r#set_ipv6_unicast_hops(self, value)
2793    }
2794
2795    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
2796    pub fn r#get_ipv6_unicast_hops(
2797        &self,
2798    ) -> fidl::client::QueryResponseFut<
2799        BaseNetworkSocketGetIpv6UnicastHopsResult,
2800        fidl::encoding::DefaultFuchsiaResourceDialect,
2801    > {
2802        BaseDatagramSocketProxyInterface::r#get_ipv6_unicast_hops(self)
2803    }
2804
2805    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
2806    pub fn r#set_ipv6_receive_hop_limit(
2807        &self,
2808        mut value: bool,
2809    ) -> fidl::client::QueryResponseFut<
2810        BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
2811        fidl::encoding::DefaultFuchsiaResourceDialect,
2812    > {
2813        BaseDatagramSocketProxyInterface::r#set_ipv6_receive_hop_limit(self, value)
2814    }
2815
2816    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
2817    pub fn r#get_ipv6_receive_hop_limit(
2818        &self,
2819    ) -> fidl::client::QueryResponseFut<
2820        BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
2821        fidl::encoding::DefaultFuchsiaResourceDialect,
2822    > {
2823        BaseDatagramSocketProxyInterface::r#get_ipv6_receive_hop_limit(self)
2824    }
2825
2826    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
2827    pub fn r#set_ipv6_multicast_hops(
2828        &self,
2829        mut value: &OptionalUint8,
2830    ) -> fidl::client::QueryResponseFut<
2831        BaseNetworkSocketSetIpv6MulticastHopsResult,
2832        fidl::encoding::DefaultFuchsiaResourceDialect,
2833    > {
2834        BaseDatagramSocketProxyInterface::r#set_ipv6_multicast_hops(self, value)
2835    }
2836
2837    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
2838    pub fn r#get_ipv6_multicast_hops(
2839        &self,
2840    ) -> fidl::client::QueryResponseFut<
2841        BaseNetworkSocketGetIpv6MulticastHopsResult,
2842        fidl::encoding::DefaultFuchsiaResourceDialect,
2843    > {
2844        BaseDatagramSocketProxyInterface::r#get_ipv6_multicast_hops(self)
2845    }
2846
2847    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
2848    pub fn r#set_ipv6_multicast_loopback(
2849        &self,
2850        mut value: bool,
2851    ) -> fidl::client::QueryResponseFut<
2852        BaseNetworkSocketSetIpv6MulticastLoopbackResult,
2853        fidl::encoding::DefaultFuchsiaResourceDialect,
2854    > {
2855        BaseDatagramSocketProxyInterface::r#set_ipv6_multicast_loopback(self, value)
2856    }
2857
2858    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
2859    pub fn r#get_ipv6_multicast_loopback(
2860        &self,
2861    ) -> fidl::client::QueryResponseFut<
2862        BaseNetworkSocketGetIpv6MulticastLoopbackResult,
2863        fidl::encoding::DefaultFuchsiaResourceDialect,
2864    > {
2865        BaseDatagramSocketProxyInterface::r#get_ipv6_multicast_loopback(self)
2866    }
2867
2868    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
2869    pub fn r#set_ipv6_only(
2870        &self,
2871        mut value: bool,
2872    ) -> fidl::client::QueryResponseFut<
2873        BaseNetworkSocketSetIpv6OnlyResult,
2874        fidl::encoding::DefaultFuchsiaResourceDialect,
2875    > {
2876        BaseDatagramSocketProxyInterface::r#set_ipv6_only(self, value)
2877    }
2878
2879    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
2880    pub fn r#get_ipv6_only(
2881        &self,
2882    ) -> fidl::client::QueryResponseFut<
2883        BaseNetworkSocketGetIpv6OnlyResult,
2884        fidl::encoding::DefaultFuchsiaResourceDialect,
2885    > {
2886        BaseDatagramSocketProxyInterface::r#get_ipv6_only(self)
2887    }
2888
2889    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
2890    pub fn r#set_ipv6_receive_traffic_class(
2891        &self,
2892        mut value: bool,
2893    ) -> fidl::client::QueryResponseFut<
2894        BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
2895        fidl::encoding::DefaultFuchsiaResourceDialect,
2896    > {
2897        BaseDatagramSocketProxyInterface::r#set_ipv6_receive_traffic_class(self, value)
2898    }
2899
2900    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
2901    pub fn r#get_ipv6_receive_traffic_class(
2902        &self,
2903    ) -> fidl::client::QueryResponseFut<
2904        BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
2905        fidl::encoding::DefaultFuchsiaResourceDialect,
2906    > {
2907        BaseDatagramSocketProxyInterface::r#get_ipv6_receive_traffic_class(self)
2908    }
2909
2910    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
2911    pub fn r#set_ipv6_traffic_class(
2912        &self,
2913        mut value: &OptionalUint8,
2914    ) -> fidl::client::QueryResponseFut<
2915        BaseNetworkSocketSetIpv6TrafficClassResult,
2916        fidl::encoding::DefaultFuchsiaResourceDialect,
2917    > {
2918        BaseDatagramSocketProxyInterface::r#set_ipv6_traffic_class(self, value)
2919    }
2920
2921    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
2922    pub fn r#get_ipv6_traffic_class(
2923        &self,
2924    ) -> fidl::client::QueryResponseFut<
2925        BaseNetworkSocketGetIpv6TrafficClassResult,
2926        fidl::encoding::DefaultFuchsiaResourceDialect,
2927    > {
2928        BaseDatagramSocketProxyInterface::r#get_ipv6_traffic_class(self)
2929    }
2930
2931    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
2932    pub fn r#set_ipv6_receive_packet_info(
2933        &self,
2934        mut value: bool,
2935    ) -> fidl::client::QueryResponseFut<
2936        BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
2937        fidl::encoding::DefaultFuchsiaResourceDialect,
2938    > {
2939        BaseDatagramSocketProxyInterface::r#set_ipv6_receive_packet_info(self, value)
2940    }
2941
2942    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
2943    pub fn r#get_ipv6_receive_packet_info(
2944        &self,
2945    ) -> fidl::client::QueryResponseFut<
2946        BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
2947        fidl::encoding::DefaultFuchsiaResourceDialect,
2948    > {
2949        BaseDatagramSocketProxyInterface::r#get_ipv6_receive_packet_info(self)
2950    }
2951
2952    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
2953    pub fn r#get_original_destination(
2954        &self,
2955    ) -> fidl::client::QueryResponseFut<
2956        BaseNetworkSocketGetOriginalDestinationResult,
2957        fidl::encoding::DefaultFuchsiaResourceDialect,
2958    > {
2959        BaseDatagramSocketProxyInterface::r#get_original_destination(self)
2960    }
2961
2962    /// Retrieves creation information from the socket.
2963    ///
2964    /// - response `domain` the socket's associated domain.
2965    /// - response `proto` the socket's associated protocol.
2966    pub fn r#get_info(
2967        &self,
2968    ) -> fidl::client::QueryResponseFut<
2969        BaseDatagramSocketGetInfoResult,
2970        fidl::encoding::DefaultFuchsiaResourceDialect,
2971    > {
2972        BaseDatagramSocketProxyInterface::r#get_info(self)
2973    }
2974}
2975
2976impl BaseDatagramSocketProxyInterface for BaseDatagramSocketProxy {
2977    fn r#clone(
2978        &self,
2979        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
2980    ) -> Result<(), fidl::Error> {
2981        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
2982            (request,),
2983            0x20d8a7aba2168a79,
2984            fidl::encoding::DynamicFlags::empty(),
2985        )
2986    }
2987
2988    type CloseResponseFut = fidl::client::QueryResponseFut<
2989        fidl_fuchsia_unknown::CloseableCloseResult,
2990        fidl::encoding::DefaultFuchsiaResourceDialect,
2991    >;
2992    fn r#close(&self) -> Self::CloseResponseFut {
2993        fn _decode(
2994            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
2995        ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
2996            let _response = fidl::client::decode_transaction_body::<
2997                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
2998                fidl::encoding::DefaultFuchsiaResourceDialect,
2999                0x5ac5d459ad7f657e,
3000            >(_buf?)?;
3001            Ok(_response.map(|x| x))
3002        }
3003        self.client.send_query_and_decode::<
3004            fidl::encoding::EmptyPayload,
3005            fidl_fuchsia_unknown::CloseableCloseResult,
3006        >(
3007            (),
3008            0x5ac5d459ad7f657e,
3009            fidl::encoding::DynamicFlags::empty(),
3010            _decode,
3011        )
3012    }
3013
3014    type QueryResponseFut =
3015        fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>;
3016    fn r#query(&self) -> Self::QueryResponseFut {
3017        fn _decode(
3018            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3019        ) -> Result<Vec<u8>, fidl::Error> {
3020            let _response = fidl::client::decode_transaction_body::<
3021                fidl_fuchsia_unknown::QueryableQueryResponse,
3022                fidl::encoding::DefaultFuchsiaResourceDialect,
3023                0x2658edee9decfc06,
3024            >(_buf?)?;
3025            Ok(_response.protocol)
3026        }
3027        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, Vec<u8>>(
3028            (),
3029            0x2658edee9decfc06,
3030            fidl::encoding::DynamicFlags::empty(),
3031            _decode,
3032        )
3033    }
3034
3035    type SetReuseAddressResponseFut = fidl::client::QueryResponseFut<
3036        BaseSocketSetReuseAddressResult,
3037        fidl::encoding::DefaultFuchsiaResourceDialect,
3038    >;
3039    fn r#set_reuse_address(&self, mut value: bool) -> Self::SetReuseAddressResponseFut {
3040        fn _decode(
3041            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3042        ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
3043            let _response = fidl::client::decode_transaction_body::<
3044                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3045                fidl::encoding::DefaultFuchsiaResourceDialect,
3046                0x1fd74ee8b9a4a876,
3047            >(_buf?)?;
3048            Ok(_response.map(|x| x))
3049        }
3050        self.client.send_query_and_decode::<
3051            BaseSocketSetReuseAddressRequest,
3052            BaseSocketSetReuseAddressResult,
3053        >(
3054            (value,),
3055            0x1fd74ee8b9a4a876,
3056            fidl::encoding::DynamicFlags::empty(),
3057            _decode,
3058        )
3059    }
3060
3061    type GetReuseAddressResponseFut = fidl::client::QueryResponseFut<
3062        BaseSocketGetReuseAddressResult,
3063        fidl::encoding::DefaultFuchsiaResourceDialect,
3064    >;
3065    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut {
3066        fn _decode(
3067            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3068        ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
3069            let _response = fidl::client::decode_transaction_body::<
3070                fidl::encoding::ResultType<
3071                    BaseSocketGetReuseAddressResponse,
3072                    fidl_fuchsia_posix::Errno,
3073                >,
3074                fidl::encoding::DefaultFuchsiaResourceDialect,
3075                0x67b7206b8d1bc0a5,
3076            >(_buf?)?;
3077            Ok(_response.map(|x| x.value))
3078        }
3079        self.client
3080            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReuseAddressResult>(
3081                (),
3082                0x67b7206b8d1bc0a5,
3083                fidl::encoding::DynamicFlags::empty(),
3084                _decode,
3085            )
3086    }
3087
3088    type GetErrorResponseFut = fidl::client::QueryResponseFut<
3089        BaseSocketGetErrorResult,
3090        fidl::encoding::DefaultFuchsiaResourceDialect,
3091    >;
3092    fn r#get_error(&self) -> Self::GetErrorResponseFut {
3093        fn _decode(
3094            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3095        ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
3096            let _response = fidl::client::decode_transaction_body::<
3097                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3098                fidl::encoding::DefaultFuchsiaResourceDialect,
3099                0x5aad39b33e5f6ebb,
3100            >(_buf?)?;
3101            Ok(_response.map(|x| x))
3102        }
3103        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetErrorResult>(
3104            (),
3105            0x5aad39b33e5f6ebb,
3106            fidl::encoding::DynamicFlags::empty(),
3107            _decode,
3108        )
3109    }
3110
3111    type SetBroadcastResponseFut = fidl::client::QueryResponseFut<
3112        BaseSocketSetBroadcastResult,
3113        fidl::encoding::DefaultFuchsiaResourceDialect,
3114    >;
3115    fn r#set_broadcast(&self, mut value: bool) -> Self::SetBroadcastResponseFut {
3116        fn _decode(
3117            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3118        ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
3119            let _response = fidl::client::decode_transaction_body::<
3120                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3121                fidl::encoding::DefaultFuchsiaResourceDialect,
3122                0x6023e081ce3cd947,
3123            >(_buf?)?;
3124            Ok(_response.map(|x| x))
3125        }
3126        self.client
3127            .send_query_and_decode::<BaseSocketSetBroadcastRequest, BaseSocketSetBroadcastResult>(
3128                (value,),
3129                0x6023e081ce3cd947,
3130                fidl::encoding::DynamicFlags::empty(),
3131                _decode,
3132            )
3133    }
3134
3135    type GetBroadcastResponseFut = fidl::client::QueryResponseFut<
3136        BaseSocketGetBroadcastResult,
3137        fidl::encoding::DefaultFuchsiaResourceDialect,
3138    >;
3139    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut {
3140        fn _decode(
3141            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3142        ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
3143            let _response = fidl::client::decode_transaction_body::<
3144                fidl::encoding::ResultType<
3145                    BaseSocketGetBroadcastResponse,
3146                    fidl_fuchsia_posix::Errno,
3147                >,
3148                fidl::encoding::DefaultFuchsiaResourceDialect,
3149                0x68796fc556f9780d,
3150            >(_buf?)?;
3151            Ok(_response.map(|x| x.value))
3152        }
3153        self.client
3154            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBroadcastResult>(
3155                (),
3156                0x68796fc556f9780d,
3157                fidl::encoding::DynamicFlags::empty(),
3158                _decode,
3159            )
3160    }
3161
3162    type SetSendBufferResponseFut = fidl::client::QueryResponseFut<
3163        BaseSocketSetSendBufferResult,
3164        fidl::encoding::DefaultFuchsiaResourceDialect,
3165    >;
3166    fn r#set_send_buffer(&self, mut value_bytes: u64) -> Self::SetSendBufferResponseFut {
3167        fn _decode(
3168            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3169        ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
3170            let _response = fidl::client::decode_transaction_body::<
3171                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3172                fidl::encoding::DefaultFuchsiaResourceDialect,
3173                0x756eac32d73a7a70,
3174            >(_buf?)?;
3175            Ok(_response.map(|x| x))
3176        }
3177        self.client
3178            .send_query_and_decode::<BaseSocketSetSendBufferRequest, BaseSocketSetSendBufferResult>(
3179                (value_bytes,),
3180                0x756eac32d73a7a70,
3181                fidl::encoding::DynamicFlags::empty(),
3182                _decode,
3183            )
3184    }
3185
3186    type GetSendBufferResponseFut = fidl::client::QueryResponseFut<
3187        BaseSocketGetSendBufferResult,
3188        fidl::encoding::DefaultFuchsiaResourceDialect,
3189    >;
3190    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut {
3191        fn _decode(
3192            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3193        ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
3194            let _response = fidl::client::decode_transaction_body::<
3195                fidl::encoding::ResultType<
3196                    BaseSocketGetSendBufferResponse,
3197                    fidl_fuchsia_posix::Errno,
3198                >,
3199                fidl::encoding::DefaultFuchsiaResourceDialect,
3200                0x78a52fd9c7b2410b,
3201            >(_buf?)?;
3202            Ok(_response.map(|x| x.value_bytes))
3203        }
3204        self.client
3205            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetSendBufferResult>(
3206                (),
3207                0x78a52fd9c7b2410b,
3208                fidl::encoding::DynamicFlags::empty(),
3209                _decode,
3210            )
3211    }
3212
3213    type SetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
3214        BaseSocketSetReceiveBufferResult,
3215        fidl::encoding::DefaultFuchsiaResourceDialect,
3216    >;
3217    fn r#set_receive_buffer(&self, mut value_bytes: u64) -> Self::SetReceiveBufferResponseFut {
3218        fn _decode(
3219            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3220        ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
3221            let _response = fidl::client::decode_transaction_body::<
3222                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3223                fidl::encoding::DefaultFuchsiaResourceDialect,
3224                0x6b0cf2f1919c7001,
3225            >(_buf?)?;
3226            Ok(_response.map(|x| x))
3227        }
3228        self.client.send_query_and_decode::<
3229            BaseSocketSetReceiveBufferRequest,
3230            BaseSocketSetReceiveBufferResult,
3231        >(
3232            (value_bytes,),
3233            0x6b0cf2f1919c7001,
3234            fidl::encoding::DynamicFlags::empty(),
3235            _decode,
3236        )
3237    }
3238
3239    type GetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
3240        BaseSocketGetReceiveBufferResult,
3241        fidl::encoding::DefaultFuchsiaResourceDialect,
3242    >;
3243    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut {
3244        fn _decode(
3245            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3246        ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
3247            let _response = fidl::client::decode_transaction_body::<
3248                fidl::encoding::ResultType<
3249                    BaseSocketGetReceiveBufferResponse,
3250                    fidl_fuchsia_posix::Errno,
3251                >,
3252                fidl::encoding::DefaultFuchsiaResourceDialect,
3253                0x14c1a4b64f709e5c,
3254            >(_buf?)?;
3255            Ok(_response.map(|x| x.value_bytes))
3256        }
3257        self.client.send_query_and_decode::<
3258            fidl::encoding::EmptyPayload,
3259            BaseSocketGetReceiveBufferResult,
3260        >(
3261            (),
3262            0x14c1a4b64f709e5c,
3263            fidl::encoding::DynamicFlags::empty(),
3264            _decode,
3265        )
3266    }
3267
3268    type SetKeepAliveResponseFut = fidl::client::QueryResponseFut<
3269        BaseSocketSetKeepAliveResult,
3270        fidl::encoding::DefaultFuchsiaResourceDialect,
3271    >;
3272    fn r#set_keep_alive(&self, mut value: bool) -> Self::SetKeepAliveResponseFut {
3273        fn _decode(
3274            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3275        ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
3276            let _response = fidl::client::decode_transaction_body::<
3277                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3278                fidl::encoding::DefaultFuchsiaResourceDialect,
3279                0x572df8f0b920d2c7,
3280            >(_buf?)?;
3281            Ok(_response.map(|x| x))
3282        }
3283        self.client
3284            .send_query_and_decode::<BaseSocketSetKeepAliveRequest, BaseSocketSetKeepAliveResult>(
3285                (value,),
3286                0x572df8f0b920d2c7,
3287                fidl::encoding::DynamicFlags::empty(),
3288                _decode,
3289            )
3290    }
3291
3292    type GetKeepAliveResponseFut = fidl::client::QueryResponseFut<
3293        BaseSocketGetKeepAliveResult,
3294        fidl::encoding::DefaultFuchsiaResourceDialect,
3295    >;
3296    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut {
3297        fn _decode(
3298            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3299        ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
3300            let _response = fidl::client::decode_transaction_body::<
3301                fidl::encoding::ResultType<
3302                    BaseSocketGetKeepAliveResponse,
3303                    fidl_fuchsia_posix::Errno,
3304                >,
3305                fidl::encoding::DefaultFuchsiaResourceDialect,
3306                0x2dd29d3215f2c9d2,
3307            >(_buf?)?;
3308            Ok(_response.map(|x| x.value))
3309        }
3310        self.client
3311            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetKeepAliveResult>(
3312                (),
3313                0x2dd29d3215f2c9d2,
3314                fidl::encoding::DynamicFlags::empty(),
3315                _decode,
3316            )
3317    }
3318
3319    type SetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
3320        BaseSocketSetOutOfBandInlineResult,
3321        fidl::encoding::DefaultFuchsiaResourceDialect,
3322    >;
3323    fn r#set_out_of_band_inline(&self, mut value: bool) -> Self::SetOutOfBandInlineResponseFut {
3324        fn _decode(
3325            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3326        ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
3327            let _response = fidl::client::decode_transaction_body::<
3328                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3329                fidl::encoding::DefaultFuchsiaResourceDialect,
3330                0x3ecb49968bee439,
3331            >(_buf?)?;
3332            Ok(_response.map(|x| x))
3333        }
3334        self.client.send_query_and_decode::<
3335            BaseSocketSetOutOfBandInlineRequest,
3336            BaseSocketSetOutOfBandInlineResult,
3337        >(
3338            (value,),
3339            0x3ecb49968bee439,
3340            fidl::encoding::DynamicFlags::empty(),
3341            _decode,
3342        )
3343    }
3344
3345    type GetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
3346        BaseSocketGetOutOfBandInlineResult,
3347        fidl::encoding::DefaultFuchsiaResourceDialect,
3348    >;
3349    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut {
3350        fn _decode(
3351            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3352        ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
3353            let _response = fidl::client::decode_transaction_body::<
3354                fidl::encoding::ResultType<
3355                    BaseSocketGetOutOfBandInlineResponse,
3356                    fidl_fuchsia_posix::Errno,
3357                >,
3358                fidl::encoding::DefaultFuchsiaResourceDialect,
3359                0x348c1ab3aeca1745,
3360            >(_buf?)?;
3361            Ok(_response.map(|x| x.value))
3362        }
3363        self.client.send_query_and_decode::<
3364            fidl::encoding::EmptyPayload,
3365            BaseSocketGetOutOfBandInlineResult,
3366        >(
3367            (),
3368            0x348c1ab3aeca1745,
3369            fidl::encoding::DynamicFlags::empty(),
3370            _decode,
3371        )
3372    }
3373
3374    type SetNoCheckResponseFut = fidl::client::QueryResponseFut<
3375        BaseSocketSetNoCheckResult,
3376        fidl::encoding::DefaultFuchsiaResourceDialect,
3377    >;
3378    fn r#set_no_check(&self, mut value: bool) -> Self::SetNoCheckResponseFut {
3379        fn _decode(
3380            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3381        ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
3382            let _response = fidl::client::decode_transaction_body::<
3383                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3384                fidl::encoding::DefaultFuchsiaResourceDialect,
3385                0x6bbf00c53a4c78c2,
3386            >(_buf?)?;
3387            Ok(_response.map(|x| x))
3388        }
3389        self.client
3390            .send_query_and_decode::<BaseSocketSetNoCheckRequest, BaseSocketSetNoCheckResult>(
3391                (value,),
3392                0x6bbf00c53a4c78c2,
3393                fidl::encoding::DynamicFlags::empty(),
3394                _decode,
3395            )
3396    }
3397
3398    type GetNoCheckResponseFut = fidl::client::QueryResponseFut<
3399        BaseSocketGetNoCheckResult,
3400        fidl::encoding::DefaultFuchsiaResourceDialect,
3401    >;
3402    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut {
3403        fn _decode(
3404            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3405        ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
3406            let _response = fidl::client::decode_transaction_body::<
3407                fidl::encoding::ResultType<BaseSocketGetNoCheckResponse, fidl_fuchsia_posix::Errno>,
3408                fidl::encoding::DefaultFuchsiaResourceDialect,
3409                0x2cd4249286417694,
3410            >(_buf?)?;
3411            Ok(_response.map(|x| x.value))
3412        }
3413        self.client
3414            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetNoCheckResult>(
3415                (),
3416                0x2cd4249286417694,
3417                fidl::encoding::DynamicFlags::empty(),
3418                _decode,
3419            )
3420    }
3421
3422    type SetLingerResponseFut = fidl::client::QueryResponseFut<
3423        BaseSocketSetLingerResult,
3424        fidl::encoding::DefaultFuchsiaResourceDialect,
3425    >;
3426    fn r#set_linger(&self, mut linger: bool, mut length_secs: u32) -> Self::SetLingerResponseFut {
3427        fn _decode(
3428            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3429        ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
3430            let _response = fidl::client::decode_transaction_body::<
3431                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3432                fidl::encoding::DefaultFuchsiaResourceDialect,
3433                0x45386351246e998e,
3434            >(_buf?)?;
3435            Ok(_response.map(|x| x))
3436        }
3437        self.client.send_query_and_decode::<BaseSocketSetLingerRequest, BaseSocketSetLingerResult>(
3438            (linger, length_secs),
3439            0x45386351246e998e,
3440            fidl::encoding::DynamicFlags::empty(),
3441            _decode,
3442        )
3443    }
3444
3445    type GetLingerResponseFut = fidl::client::QueryResponseFut<
3446        BaseSocketGetLingerResult,
3447        fidl::encoding::DefaultFuchsiaResourceDialect,
3448    >;
3449    fn r#get_linger(&self) -> Self::GetLingerResponseFut {
3450        fn _decode(
3451            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3452        ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
3453            let _response = fidl::client::decode_transaction_body::<
3454                fidl::encoding::ResultType<BaseSocketGetLingerResponse, fidl_fuchsia_posix::Errno>,
3455                fidl::encoding::DefaultFuchsiaResourceDialect,
3456                0x48eb20fc5ccb0e45,
3457            >(_buf?)?;
3458            Ok(_response.map(|x| (x.linger, x.length_secs)))
3459        }
3460        self.client
3461            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetLingerResult>(
3462                (),
3463                0x48eb20fc5ccb0e45,
3464                fidl::encoding::DynamicFlags::empty(),
3465                _decode,
3466            )
3467    }
3468
3469    type SetReusePortResponseFut = fidl::client::QueryResponseFut<
3470        BaseSocketSetReusePortResult,
3471        fidl::encoding::DefaultFuchsiaResourceDialect,
3472    >;
3473    fn r#set_reuse_port(&self, mut value: bool) -> Self::SetReusePortResponseFut {
3474        fn _decode(
3475            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3476        ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
3477            let _response = fidl::client::decode_transaction_body::<
3478                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3479                fidl::encoding::DefaultFuchsiaResourceDialect,
3480                0x24dd3e5cb36d9ccb,
3481            >(_buf?)?;
3482            Ok(_response.map(|x| x))
3483        }
3484        self.client
3485            .send_query_and_decode::<BaseSocketSetReusePortRequest, BaseSocketSetReusePortResult>(
3486                (value,),
3487                0x24dd3e5cb36d9ccb,
3488                fidl::encoding::DynamicFlags::empty(),
3489                _decode,
3490            )
3491    }
3492
3493    type GetReusePortResponseFut = fidl::client::QueryResponseFut<
3494        BaseSocketGetReusePortResult,
3495        fidl::encoding::DefaultFuchsiaResourceDialect,
3496    >;
3497    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut {
3498        fn _decode(
3499            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3500        ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
3501            let _response = fidl::client::decode_transaction_body::<
3502                fidl::encoding::ResultType<
3503                    BaseSocketGetReusePortResponse,
3504                    fidl_fuchsia_posix::Errno,
3505                >,
3506                fidl::encoding::DefaultFuchsiaResourceDialect,
3507                0x7a112c1ab54ff828,
3508            >(_buf?)?;
3509            Ok(_response.map(|x| x.value))
3510        }
3511        self.client
3512            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReusePortResult>(
3513                (),
3514                0x7a112c1ab54ff828,
3515                fidl::encoding::DynamicFlags::empty(),
3516                _decode,
3517            )
3518    }
3519
3520    type GetAcceptConnResponseFut = fidl::client::QueryResponseFut<
3521        BaseSocketGetAcceptConnResult,
3522        fidl::encoding::DefaultFuchsiaResourceDialect,
3523    >;
3524    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut {
3525        fn _decode(
3526            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3527        ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
3528            let _response = fidl::client::decode_transaction_body::<
3529                fidl::encoding::ResultType<
3530                    BaseSocketGetAcceptConnResponse,
3531                    fidl_fuchsia_posix::Errno,
3532                >,
3533                fidl::encoding::DefaultFuchsiaResourceDialect,
3534                0x67ce6db6c2ec8966,
3535            >(_buf?)?;
3536            Ok(_response.map(|x| x.value))
3537        }
3538        self.client
3539            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetAcceptConnResult>(
3540                (),
3541                0x67ce6db6c2ec8966,
3542                fidl::encoding::DynamicFlags::empty(),
3543                _decode,
3544            )
3545    }
3546
3547    type SetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
3548        BaseSocketSetBindToDeviceResult,
3549        fidl::encoding::DefaultFuchsiaResourceDialect,
3550    >;
3551    fn r#set_bind_to_device(&self, mut value: &str) -> Self::SetBindToDeviceResponseFut {
3552        fn _decode(
3553            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3554        ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
3555            let _response = fidl::client::decode_transaction_body::<
3556                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3557                fidl::encoding::DefaultFuchsiaResourceDialect,
3558                0x2118b483f28aafc4,
3559            >(_buf?)?;
3560            Ok(_response.map(|x| x))
3561        }
3562        self.client.send_query_and_decode::<
3563            BaseSocketSetBindToDeviceRequest,
3564            BaseSocketSetBindToDeviceResult,
3565        >(
3566            (value,),
3567            0x2118b483f28aafc4,
3568            fidl::encoding::DynamicFlags::empty(),
3569            _decode,
3570        )
3571    }
3572
3573    type GetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
3574        BaseSocketGetBindToDeviceResult,
3575        fidl::encoding::DefaultFuchsiaResourceDialect,
3576    >;
3577    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut {
3578        fn _decode(
3579            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3580        ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
3581            let _response = fidl::client::decode_transaction_body::<
3582                fidl::encoding::ResultType<
3583                    BaseSocketGetBindToDeviceResponse,
3584                    fidl_fuchsia_posix::Errno,
3585                >,
3586                fidl::encoding::DefaultFuchsiaResourceDialect,
3587                0x1ab1fbf0ef7906c8,
3588            >(_buf?)?;
3589            Ok(_response.map(|x| x.value))
3590        }
3591        self.client
3592            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBindToDeviceResult>(
3593                (),
3594                0x1ab1fbf0ef7906c8,
3595                fidl::encoding::DynamicFlags::empty(),
3596                _decode,
3597            )
3598    }
3599
3600    type SetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
3601        BaseSocketSetBindToInterfaceIndexResult,
3602        fidl::encoding::DefaultFuchsiaResourceDialect,
3603    >;
3604    fn r#set_bind_to_interface_index(
3605        &self,
3606        mut value: u64,
3607    ) -> Self::SetBindToInterfaceIndexResponseFut {
3608        fn _decode(
3609            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3610        ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
3611            let _response = fidl::client::decode_transaction_body::<
3612                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3613                fidl::encoding::DefaultFuchsiaResourceDialect,
3614                0x6e387a0def00821,
3615            >(_buf?)?;
3616            Ok(_response.map(|x| x))
3617        }
3618        self.client.send_query_and_decode::<
3619            BaseSocketSetBindToInterfaceIndexRequest,
3620            BaseSocketSetBindToInterfaceIndexResult,
3621        >(
3622            (value,),
3623            0x6e387a0def00821,
3624            fidl::encoding::DynamicFlags::empty(),
3625            _decode,
3626        )
3627    }
3628
3629    type GetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
3630        BaseSocketGetBindToInterfaceIndexResult,
3631        fidl::encoding::DefaultFuchsiaResourceDialect,
3632    >;
3633    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut {
3634        fn _decode(
3635            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3636        ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
3637            let _response = fidl::client::decode_transaction_body::<
3638                fidl::encoding::ResultType<
3639                    BaseSocketGetBindToInterfaceIndexResponse,
3640                    fidl_fuchsia_posix::Errno,
3641                >,
3642                fidl::encoding::DefaultFuchsiaResourceDialect,
3643                0x59c31dd3e3078295,
3644            >(_buf?)?;
3645            Ok(_response.map(|x| x.value))
3646        }
3647        self.client.send_query_and_decode::<
3648            fidl::encoding::EmptyPayload,
3649            BaseSocketGetBindToInterfaceIndexResult,
3650        >(
3651            (),
3652            0x59c31dd3e3078295,
3653            fidl::encoding::DynamicFlags::empty(),
3654            _decode,
3655        )
3656    }
3657
3658    type SetTimestampResponseFut = fidl::client::QueryResponseFut<
3659        BaseSocketSetTimestampResult,
3660        fidl::encoding::DefaultFuchsiaResourceDialect,
3661    >;
3662    fn r#set_timestamp(&self, mut value: TimestampOption) -> Self::SetTimestampResponseFut {
3663        fn _decode(
3664            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3665        ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
3666            let _response = fidl::client::decode_transaction_body::<
3667                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3668                fidl::encoding::DefaultFuchsiaResourceDialect,
3669                0x285d6516c263d839,
3670            >(_buf?)?;
3671            Ok(_response.map(|x| x))
3672        }
3673        self.client
3674            .send_query_and_decode::<BaseSocketSetTimestampRequest, BaseSocketSetTimestampResult>(
3675                (value,),
3676                0x285d6516c263d839,
3677                fidl::encoding::DynamicFlags::empty(),
3678                _decode,
3679            )
3680    }
3681
3682    type GetTimestampResponseFut = fidl::client::QueryResponseFut<
3683        BaseSocketGetTimestampResult,
3684        fidl::encoding::DefaultFuchsiaResourceDialect,
3685    >;
3686    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut {
3687        fn _decode(
3688            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3689        ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
3690            let _response = fidl::client::decode_transaction_body::<
3691                fidl::encoding::ResultType<
3692                    BaseSocketGetTimestampResponse,
3693                    fidl_fuchsia_posix::Errno,
3694                >,
3695                fidl::encoding::DefaultFuchsiaResourceDialect,
3696                0x49f2fffbbcc2bd27,
3697            >(_buf?)?;
3698            Ok(_response.map(|x| x.value))
3699        }
3700        self.client
3701            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetTimestampResult>(
3702                (),
3703                0x49f2fffbbcc2bd27,
3704                fidl::encoding::DynamicFlags::empty(),
3705                _decode,
3706            )
3707    }
3708
3709    type SetMarkResponseFut = fidl::client::QueryResponseFut<
3710        BaseSocketSetMarkResult,
3711        fidl::encoding::DefaultFuchsiaResourceDialect,
3712    >;
3713    fn r#set_mark(
3714        &self,
3715        mut domain: fidl_fuchsia_net::MarkDomain,
3716        mut mark: &OptionalUint32,
3717    ) -> Self::SetMarkResponseFut {
3718        fn _decode(
3719            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3720        ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
3721            let _response = fidl::client::decode_transaction_body::<
3722                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3723                fidl::encoding::DefaultFuchsiaResourceDialect,
3724                0x6ead6de09f653236,
3725            >(_buf?)?;
3726            Ok(_response.map(|x| x))
3727        }
3728        self.client.send_query_and_decode::<BaseSocketSetMarkRequest, BaseSocketSetMarkResult>(
3729            (domain, mark),
3730            0x6ead6de09f653236,
3731            fidl::encoding::DynamicFlags::empty(),
3732            _decode,
3733        )
3734    }
3735
3736    type GetMarkResponseFut = fidl::client::QueryResponseFut<
3737        BaseSocketGetMarkResult,
3738        fidl::encoding::DefaultFuchsiaResourceDialect,
3739    >;
3740    fn r#get_mark(&self, mut domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut {
3741        fn _decode(
3742            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3743        ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
3744            let _response = fidl::client::decode_transaction_body::<
3745                fidl::encoding::ResultType<BaseSocketGetMarkResponse, fidl_fuchsia_posix::Errno>,
3746                fidl::encoding::DefaultFuchsiaResourceDialect,
3747                0x57a2752c61d93d47,
3748            >(_buf?)?;
3749            Ok(_response.map(|x| x.mark))
3750        }
3751        self.client.send_query_and_decode::<BaseSocketGetMarkRequest, BaseSocketGetMarkResult>(
3752            (domain,),
3753            0x57a2752c61d93d47,
3754            fidl::encoding::DynamicFlags::empty(),
3755            _decode,
3756        )
3757    }
3758
3759    type GetCookieResponseFut = fidl::client::QueryResponseFut<
3760        BaseSocketGetCookieResult,
3761        fidl::encoding::DefaultFuchsiaResourceDialect,
3762    >;
3763    fn r#get_cookie(&self) -> Self::GetCookieResponseFut {
3764        fn _decode(
3765            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3766        ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
3767            let _response = fidl::client::decode_transaction_body::<
3768                fidl::encoding::ResultType<BaseSocketGetCookieResponse, fidl_fuchsia_posix::Errno>,
3769                fidl::encoding::DefaultFuchsiaResourceDialect,
3770                0x2c2f47fd8f924e52,
3771            >(_buf?)?;
3772            Ok(_response.map(|x| x.value))
3773        }
3774        self.client
3775            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetCookieResult>(
3776                (),
3777                0x2c2f47fd8f924e52,
3778                fidl::encoding::DynamicFlags::empty(),
3779                _decode,
3780            )
3781    }
3782
3783    type BindResponseFut = fidl::client::QueryResponseFut<
3784        BaseNetworkSocketBindResult,
3785        fidl::encoding::DefaultFuchsiaResourceDialect,
3786    >;
3787    fn r#bind(&self, mut addr: &fidl_fuchsia_net::SocketAddress) -> Self::BindResponseFut {
3788        fn _decode(
3789            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3790        ) -> Result<BaseNetworkSocketBindResult, fidl::Error> {
3791            let _response = fidl::client::decode_transaction_body::<
3792                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3793                fidl::encoding::DefaultFuchsiaResourceDialect,
3794                0x4bc6400ae92125d,
3795            >(_buf?)?;
3796            Ok(_response.map(|x| x))
3797        }
3798        self.client
3799            .send_query_and_decode::<BaseNetworkSocketBindRequest, BaseNetworkSocketBindResult>(
3800                (addr,),
3801                0x4bc6400ae92125d,
3802                fidl::encoding::DynamicFlags::empty(),
3803                _decode,
3804            )
3805    }
3806
3807    type ConnectResponseFut = fidl::client::QueryResponseFut<
3808        BaseNetworkSocketConnectResult,
3809        fidl::encoding::DefaultFuchsiaResourceDialect,
3810    >;
3811    fn r#connect(&self, mut addr: &fidl_fuchsia_net::SocketAddress) -> Self::ConnectResponseFut {
3812        fn _decode(
3813            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3814        ) -> Result<BaseNetworkSocketConnectResult, fidl::Error> {
3815            let _response = fidl::client::decode_transaction_body::<
3816                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3817                fidl::encoding::DefaultFuchsiaResourceDialect,
3818                0x5f05f19bfdd38871,
3819            >(_buf?)?;
3820            Ok(_response.map(|x| x))
3821        }
3822        self.client.send_query_and_decode::<
3823            BaseNetworkSocketConnectRequest,
3824            BaseNetworkSocketConnectResult,
3825        >(
3826            (addr,),
3827            0x5f05f19bfdd38871,
3828            fidl::encoding::DynamicFlags::empty(),
3829            _decode,
3830        )
3831    }
3832
3833    type DisconnectResponseFut = fidl::client::QueryResponseFut<
3834        BaseNetworkSocketDisconnectResult,
3835        fidl::encoding::DefaultFuchsiaResourceDialect,
3836    >;
3837    fn r#disconnect(&self) -> Self::DisconnectResponseFut {
3838        fn _decode(
3839            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3840        ) -> Result<BaseNetworkSocketDisconnectResult, fidl::Error> {
3841            let _response = fidl::client::decode_transaction_body::<
3842                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3843                fidl::encoding::DefaultFuchsiaResourceDialect,
3844                0x74e63b91f7b29b2,
3845            >(_buf?)?;
3846            Ok(_response.map(|x| x))
3847        }
3848        self.client.send_query_and_decode::<
3849            fidl::encoding::EmptyPayload,
3850            BaseNetworkSocketDisconnectResult,
3851        >(
3852            (),
3853            0x74e63b91f7b29b2,
3854            fidl::encoding::DynamicFlags::empty(),
3855            _decode,
3856        )
3857    }
3858
3859    type GetSockNameResponseFut = fidl::client::QueryResponseFut<
3860        BaseNetworkSocketGetSockNameResult,
3861        fidl::encoding::DefaultFuchsiaResourceDialect,
3862    >;
3863    fn r#get_sock_name(&self) -> Self::GetSockNameResponseFut {
3864        fn _decode(
3865            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3866        ) -> Result<BaseNetworkSocketGetSockNameResult, fidl::Error> {
3867            let _response = fidl::client::decode_transaction_body::<
3868                fidl::encoding::ResultType<
3869                    BaseNetworkSocketGetSockNameResponse,
3870                    fidl_fuchsia_posix::Errno,
3871                >,
3872                fidl::encoding::DefaultFuchsiaResourceDialect,
3873                0x475f23f84a1a4f85,
3874            >(_buf?)?;
3875            Ok(_response.map(|x| x.addr))
3876        }
3877        self.client.send_query_and_decode::<
3878            fidl::encoding::EmptyPayload,
3879            BaseNetworkSocketGetSockNameResult,
3880        >(
3881            (),
3882            0x475f23f84a1a4f85,
3883            fidl::encoding::DynamicFlags::empty(),
3884            _decode,
3885        )
3886    }
3887
3888    type GetPeerNameResponseFut = fidl::client::QueryResponseFut<
3889        BaseNetworkSocketGetPeerNameResult,
3890        fidl::encoding::DefaultFuchsiaResourceDialect,
3891    >;
3892    fn r#get_peer_name(&self) -> Self::GetPeerNameResponseFut {
3893        fn _decode(
3894            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3895        ) -> Result<BaseNetworkSocketGetPeerNameResult, fidl::Error> {
3896            let _response = fidl::client::decode_transaction_body::<
3897                fidl::encoding::ResultType<
3898                    BaseNetworkSocketGetPeerNameResponse,
3899                    fidl_fuchsia_posix::Errno,
3900                >,
3901                fidl::encoding::DefaultFuchsiaResourceDialect,
3902                0x1ffecf4bd5b6432e,
3903            >(_buf?)?;
3904            Ok(_response.map(|x| x.addr))
3905        }
3906        self.client.send_query_and_decode::<
3907            fidl::encoding::EmptyPayload,
3908            BaseNetworkSocketGetPeerNameResult,
3909        >(
3910            (),
3911            0x1ffecf4bd5b6432e,
3912            fidl::encoding::DynamicFlags::empty(),
3913            _decode,
3914        )
3915    }
3916
3917    type ShutdownResponseFut = fidl::client::QueryResponseFut<
3918        BaseNetworkSocketShutdownResult,
3919        fidl::encoding::DefaultFuchsiaResourceDialect,
3920    >;
3921    fn r#shutdown(&self, mut mode: ShutdownMode) -> Self::ShutdownResponseFut {
3922        fn _decode(
3923            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3924        ) -> Result<BaseNetworkSocketShutdownResult, fidl::Error> {
3925            let _response = fidl::client::decode_transaction_body::<
3926                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3927                fidl::encoding::DefaultFuchsiaResourceDialect,
3928                0x247f38b6db68c336,
3929            >(_buf?)?;
3930            Ok(_response.map(|x| x))
3931        }
3932        self.client.send_query_and_decode::<
3933            BaseNetworkSocketShutdownRequest,
3934            BaseNetworkSocketShutdownResult,
3935        >(
3936            (mode,),
3937            0x247f38b6db68c336,
3938            fidl::encoding::DynamicFlags::empty(),
3939            _decode,
3940        )
3941    }
3942
3943    type SetIpTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
3944        BaseNetworkSocketSetIpTypeOfServiceResult,
3945        fidl::encoding::DefaultFuchsiaResourceDialect,
3946    >;
3947    fn r#set_ip_type_of_service(&self, mut value: u8) -> Self::SetIpTypeOfServiceResponseFut {
3948        fn _decode(
3949            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3950        ) -> Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error> {
3951            let _response = fidl::client::decode_transaction_body::<
3952                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3953                fidl::encoding::DefaultFuchsiaResourceDialect,
3954                0x995c600475b6d46,
3955            >(_buf?)?;
3956            Ok(_response.map(|x| x))
3957        }
3958        self.client.send_query_and_decode::<
3959            BaseNetworkSocketSetIpTypeOfServiceRequest,
3960            BaseNetworkSocketSetIpTypeOfServiceResult,
3961        >(
3962            (value,),
3963            0x995c600475b6d46,
3964            fidl::encoding::DynamicFlags::empty(),
3965            _decode,
3966        )
3967    }
3968
3969    type GetIpTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
3970        BaseNetworkSocketGetIpTypeOfServiceResult,
3971        fidl::encoding::DefaultFuchsiaResourceDialect,
3972    >;
3973    fn r#get_ip_type_of_service(&self) -> Self::GetIpTypeOfServiceResponseFut {
3974        fn _decode(
3975            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3976        ) -> Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error> {
3977            let _response = fidl::client::decode_transaction_body::<
3978                fidl::encoding::ResultType<
3979                    BaseNetworkSocketGetIpTypeOfServiceResponse,
3980                    fidl_fuchsia_posix::Errno,
3981                >,
3982                fidl::encoding::DefaultFuchsiaResourceDialect,
3983                0x3814a04259f75fcb,
3984            >(_buf?)?;
3985            Ok(_response.map(|x| x.value))
3986        }
3987        self.client.send_query_and_decode::<
3988            fidl::encoding::EmptyPayload,
3989            BaseNetworkSocketGetIpTypeOfServiceResult,
3990        >(
3991            (),
3992            0x3814a04259f75fcb,
3993            fidl::encoding::DynamicFlags::empty(),
3994            _decode,
3995        )
3996    }
3997
3998    type SetIpTtlResponseFut = fidl::client::QueryResponseFut<
3999        BaseNetworkSocketSetIpTtlResult,
4000        fidl::encoding::DefaultFuchsiaResourceDialect,
4001    >;
4002    fn r#set_ip_ttl(&self, mut value: &OptionalUint8) -> Self::SetIpTtlResponseFut {
4003        fn _decode(
4004            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4005        ) -> Result<BaseNetworkSocketSetIpTtlResult, fidl::Error> {
4006            let _response = fidl::client::decode_transaction_body::<
4007                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4008                fidl::encoding::DefaultFuchsiaResourceDialect,
4009                0x29e2424b433ae1ef,
4010            >(_buf?)?;
4011            Ok(_response.map(|x| x))
4012        }
4013        self.client.send_query_and_decode::<
4014            BaseNetworkSocketSetIpTtlRequest,
4015            BaseNetworkSocketSetIpTtlResult,
4016        >(
4017            (value,),
4018            0x29e2424b433ae1ef,
4019            fidl::encoding::DynamicFlags::empty(),
4020            _decode,
4021        )
4022    }
4023
4024    type GetIpTtlResponseFut = fidl::client::QueryResponseFut<
4025        BaseNetworkSocketGetIpTtlResult,
4026        fidl::encoding::DefaultFuchsiaResourceDialect,
4027    >;
4028    fn r#get_ip_ttl(&self) -> Self::GetIpTtlResponseFut {
4029        fn _decode(
4030            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4031        ) -> Result<BaseNetworkSocketGetIpTtlResult, fidl::Error> {
4032            let _response = fidl::client::decode_transaction_body::<
4033                fidl::encoding::ResultType<
4034                    BaseNetworkSocketGetIpTtlResponse,
4035                    fidl_fuchsia_posix::Errno,
4036                >,
4037                fidl::encoding::DefaultFuchsiaResourceDialect,
4038                0x47e47fa1f24da471,
4039            >(_buf?)?;
4040            Ok(_response.map(|x| x.value))
4041        }
4042        self.client
4043            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseNetworkSocketGetIpTtlResult>(
4044                (),
4045                0x47e47fa1f24da471,
4046                fidl::encoding::DynamicFlags::empty(),
4047                _decode,
4048            )
4049    }
4050
4051    type SetIpPacketInfoResponseFut = fidl::client::QueryResponseFut<
4052        BaseNetworkSocketSetIpPacketInfoResult,
4053        fidl::encoding::DefaultFuchsiaResourceDialect,
4054    >;
4055    fn r#set_ip_packet_info(&self, mut value: bool) -> Self::SetIpPacketInfoResponseFut {
4056        fn _decode(
4057            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4058        ) -> Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error> {
4059            let _response = fidl::client::decode_transaction_body::<
4060                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4061                fidl::encoding::DefaultFuchsiaResourceDialect,
4062                0x392d16bee20c0e16,
4063            >(_buf?)?;
4064            Ok(_response.map(|x| x))
4065        }
4066        self.client.send_query_and_decode::<
4067            BaseNetworkSocketSetIpPacketInfoRequest,
4068            BaseNetworkSocketSetIpPacketInfoResult,
4069        >(
4070            (value,),
4071            0x392d16bee20c0e16,
4072            fidl::encoding::DynamicFlags::empty(),
4073            _decode,
4074        )
4075    }
4076
4077    type GetIpPacketInfoResponseFut = fidl::client::QueryResponseFut<
4078        BaseNetworkSocketGetIpPacketInfoResult,
4079        fidl::encoding::DefaultFuchsiaResourceDialect,
4080    >;
4081    fn r#get_ip_packet_info(&self) -> Self::GetIpPacketInfoResponseFut {
4082        fn _decode(
4083            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4084        ) -> Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error> {
4085            let _response = fidl::client::decode_transaction_body::<
4086                fidl::encoding::ResultType<
4087                    BaseNetworkSocketGetIpPacketInfoResponse,
4088                    fidl_fuchsia_posix::Errno,
4089                >,
4090                fidl::encoding::DefaultFuchsiaResourceDialect,
4091                0x54b505f242280740,
4092            >(_buf?)?;
4093            Ok(_response.map(|x| x.value))
4094        }
4095        self.client.send_query_and_decode::<
4096            fidl::encoding::EmptyPayload,
4097            BaseNetworkSocketGetIpPacketInfoResult,
4098        >(
4099            (),
4100            0x54b505f242280740,
4101            fidl::encoding::DynamicFlags::empty(),
4102            _decode,
4103        )
4104    }
4105
4106    type SetIpReceiveTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
4107        BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
4108        fidl::encoding::DefaultFuchsiaResourceDialect,
4109    >;
4110    fn r#set_ip_receive_type_of_service(
4111        &self,
4112        mut value: bool,
4113    ) -> Self::SetIpReceiveTypeOfServiceResponseFut {
4114        fn _decode(
4115            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4116        ) -> Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error> {
4117            let _response = fidl::client::decode_transaction_body::<
4118                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4119                fidl::encoding::DefaultFuchsiaResourceDialect,
4120                0x6c4f6714995f84ef,
4121            >(_buf?)?;
4122            Ok(_response.map(|x| x))
4123        }
4124        self.client.send_query_and_decode::<
4125            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
4126            BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
4127        >(
4128            (value,),
4129            0x6c4f6714995f84ef,
4130            fidl::encoding::DynamicFlags::empty(),
4131            _decode,
4132        )
4133    }
4134
4135    type GetIpReceiveTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
4136        BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
4137        fidl::encoding::DefaultFuchsiaResourceDialect,
4138    >;
4139    fn r#get_ip_receive_type_of_service(&self) -> Self::GetIpReceiveTypeOfServiceResponseFut {
4140        fn _decode(
4141            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4142        ) -> Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error> {
4143            let _response = fidl::client::decode_transaction_body::<
4144                fidl::encoding::ResultType<
4145                    BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
4146                    fidl_fuchsia_posix::Errno,
4147                >,
4148                fidl::encoding::DefaultFuchsiaResourceDialect,
4149                0x4158ba7dc2795960,
4150            >(_buf?)?;
4151            Ok(_response.map(|x| x.value))
4152        }
4153        self.client.send_query_and_decode::<
4154            fidl::encoding::EmptyPayload,
4155            BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
4156        >(
4157            (),
4158            0x4158ba7dc2795960,
4159            fidl::encoding::DynamicFlags::empty(),
4160            _decode,
4161        )
4162    }
4163
4164    type SetIpReceiveTtlResponseFut = fidl::client::QueryResponseFut<
4165        BaseNetworkSocketSetIpReceiveTtlResult,
4166        fidl::encoding::DefaultFuchsiaResourceDialect,
4167    >;
4168    fn r#set_ip_receive_ttl(&self, mut value: bool) -> Self::SetIpReceiveTtlResponseFut {
4169        fn _decode(
4170            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4171        ) -> Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error> {
4172            let _response = fidl::client::decode_transaction_body::<
4173                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4174                fidl::encoding::DefaultFuchsiaResourceDialect,
4175                0x46f15be0ce0ab82b,
4176            >(_buf?)?;
4177            Ok(_response.map(|x| x))
4178        }
4179        self.client.send_query_and_decode::<
4180            BaseNetworkSocketSetIpReceiveTtlRequest,
4181            BaseNetworkSocketSetIpReceiveTtlResult,
4182        >(
4183            (value,),
4184            0x46f15be0ce0ab82b,
4185            fidl::encoding::DynamicFlags::empty(),
4186            _decode,
4187        )
4188    }
4189
4190    type GetIpReceiveTtlResponseFut = fidl::client::QueryResponseFut<
4191        BaseNetworkSocketGetIpReceiveTtlResult,
4192        fidl::encoding::DefaultFuchsiaResourceDialect,
4193    >;
4194    fn r#get_ip_receive_ttl(&self) -> Self::GetIpReceiveTtlResponseFut {
4195        fn _decode(
4196            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4197        ) -> Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error> {
4198            let _response = fidl::client::decode_transaction_body::<
4199                fidl::encoding::ResultType<
4200                    BaseNetworkSocketGetIpReceiveTtlResponse,
4201                    fidl_fuchsia_posix::Errno,
4202                >,
4203                fidl::encoding::DefaultFuchsiaResourceDialect,
4204                0x678ddd5a5dfa2eb5,
4205            >(_buf?)?;
4206            Ok(_response.map(|x| x.value))
4207        }
4208        self.client.send_query_and_decode::<
4209            fidl::encoding::EmptyPayload,
4210            BaseNetworkSocketGetIpReceiveTtlResult,
4211        >(
4212            (),
4213            0x678ddd5a5dfa2eb5,
4214            fidl::encoding::DynamicFlags::empty(),
4215            _decode,
4216        )
4217    }
4218
4219    type SetIpMulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
4220        BaseNetworkSocketSetIpMulticastInterfaceResult,
4221        fidl::encoding::DefaultFuchsiaResourceDialect,
4222    >;
4223    fn r#set_ip_multicast_interface(
4224        &self,
4225        mut iface: u64,
4226        mut address: &fidl_fuchsia_net::Ipv4Address,
4227    ) -> Self::SetIpMulticastInterfaceResponseFut {
4228        fn _decode(
4229            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4230        ) -> Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error> {
4231            let _response = fidl::client::decode_transaction_body::<
4232                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4233                fidl::encoding::DefaultFuchsiaResourceDialect,
4234                0x752fbfa9b12befe,
4235            >(_buf?)?;
4236            Ok(_response.map(|x| x))
4237        }
4238        self.client.send_query_and_decode::<
4239            BaseNetworkSocketSetIpMulticastInterfaceRequest,
4240            BaseNetworkSocketSetIpMulticastInterfaceResult,
4241        >(
4242            (iface, address,),
4243            0x752fbfa9b12befe,
4244            fidl::encoding::DynamicFlags::empty(),
4245            _decode,
4246        )
4247    }
4248
4249    type GetIpMulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
4250        BaseNetworkSocketGetIpMulticastInterfaceResult,
4251        fidl::encoding::DefaultFuchsiaResourceDialect,
4252    >;
4253    fn r#get_ip_multicast_interface(&self) -> Self::GetIpMulticastInterfaceResponseFut {
4254        fn _decode(
4255            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4256        ) -> Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error> {
4257            let _response = fidl::client::decode_transaction_body::<
4258                fidl::encoding::ResultType<
4259                    BaseNetworkSocketGetIpMulticastInterfaceResponse,
4260                    fidl_fuchsia_posix::Errno,
4261                >,
4262                fidl::encoding::DefaultFuchsiaResourceDialect,
4263                0x320bd14c4df046c4,
4264            >(_buf?)?;
4265            Ok(_response.map(|x| x.value))
4266        }
4267        self.client.send_query_and_decode::<
4268            fidl::encoding::EmptyPayload,
4269            BaseNetworkSocketGetIpMulticastInterfaceResult,
4270        >(
4271            (),
4272            0x320bd14c4df046c4,
4273            fidl::encoding::DynamicFlags::empty(),
4274            _decode,
4275        )
4276    }
4277
4278    type SetIpMulticastTtlResponseFut = fidl::client::QueryResponseFut<
4279        BaseNetworkSocketSetIpMulticastTtlResult,
4280        fidl::encoding::DefaultFuchsiaResourceDialect,
4281    >;
4282    fn r#set_ip_multicast_ttl(
4283        &self,
4284        mut value: &OptionalUint8,
4285    ) -> Self::SetIpMulticastTtlResponseFut {
4286        fn _decode(
4287            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4288        ) -> Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error> {
4289            let _response = fidl::client::decode_transaction_body::<
4290                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4291                fidl::encoding::DefaultFuchsiaResourceDialect,
4292                0x63134d53772916a1,
4293            >(_buf?)?;
4294            Ok(_response.map(|x| x))
4295        }
4296        self.client.send_query_and_decode::<
4297            BaseNetworkSocketSetIpMulticastTtlRequest,
4298            BaseNetworkSocketSetIpMulticastTtlResult,
4299        >(
4300            (value,),
4301            0x63134d53772916a1,
4302            fidl::encoding::DynamicFlags::empty(),
4303            _decode,
4304        )
4305    }
4306
4307    type GetIpMulticastTtlResponseFut = fidl::client::QueryResponseFut<
4308        BaseNetworkSocketGetIpMulticastTtlResult,
4309        fidl::encoding::DefaultFuchsiaResourceDialect,
4310    >;
4311    fn r#get_ip_multicast_ttl(&self) -> Self::GetIpMulticastTtlResponseFut {
4312        fn _decode(
4313            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4314        ) -> Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error> {
4315            let _response = fidl::client::decode_transaction_body::<
4316                fidl::encoding::ResultType<
4317                    BaseNetworkSocketGetIpMulticastTtlResponse,
4318                    fidl_fuchsia_posix::Errno,
4319                >,
4320                fidl::encoding::DefaultFuchsiaResourceDialect,
4321                0x4665cd378f39e1a,
4322            >(_buf?)?;
4323            Ok(_response.map(|x| x.value))
4324        }
4325        self.client.send_query_and_decode::<
4326            fidl::encoding::EmptyPayload,
4327            BaseNetworkSocketGetIpMulticastTtlResult,
4328        >(
4329            (),
4330            0x4665cd378f39e1a,
4331            fidl::encoding::DynamicFlags::empty(),
4332            _decode,
4333        )
4334    }
4335
4336    type SetIpMulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
4337        BaseNetworkSocketSetIpMulticastLoopbackResult,
4338        fidl::encoding::DefaultFuchsiaResourceDialect,
4339    >;
4340    fn r#set_ip_multicast_loopback(
4341        &self,
4342        mut value: bool,
4343    ) -> Self::SetIpMulticastLoopbackResponseFut {
4344        fn _decode(
4345            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4346        ) -> Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error> {
4347            let _response = fidl::client::decode_transaction_body::<
4348                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4349                fidl::encoding::DefaultFuchsiaResourceDialect,
4350                0x20c55c11f00943ea,
4351            >(_buf?)?;
4352            Ok(_response.map(|x| x))
4353        }
4354        self.client.send_query_and_decode::<
4355            BaseNetworkSocketSetIpMulticastLoopbackRequest,
4356            BaseNetworkSocketSetIpMulticastLoopbackResult,
4357        >(
4358            (value,),
4359            0x20c55c11f00943ea,
4360            fidl::encoding::DynamicFlags::empty(),
4361            _decode,
4362        )
4363    }
4364
4365    type GetIpMulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
4366        BaseNetworkSocketGetIpMulticastLoopbackResult,
4367        fidl::encoding::DefaultFuchsiaResourceDialect,
4368    >;
4369    fn r#get_ip_multicast_loopback(&self) -> Self::GetIpMulticastLoopbackResponseFut {
4370        fn _decode(
4371            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4372        ) -> Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error> {
4373            let _response = fidl::client::decode_transaction_body::<
4374                fidl::encoding::ResultType<
4375                    BaseNetworkSocketGetIpMulticastLoopbackResponse,
4376                    fidl_fuchsia_posix::Errno,
4377                >,
4378                fidl::encoding::DefaultFuchsiaResourceDialect,
4379                0x3b6b26ff558298f2,
4380            >(_buf?)?;
4381            Ok(_response.map(|x| x.value))
4382        }
4383        self.client.send_query_and_decode::<
4384            fidl::encoding::EmptyPayload,
4385            BaseNetworkSocketGetIpMulticastLoopbackResult,
4386        >(
4387            (),
4388            0x3b6b26ff558298f2,
4389            fidl::encoding::DynamicFlags::empty(),
4390            _decode,
4391        )
4392    }
4393
4394    type AddIpMembershipResponseFut = fidl::client::QueryResponseFut<
4395        BaseNetworkSocketAddIpMembershipResult,
4396        fidl::encoding::DefaultFuchsiaResourceDialect,
4397    >;
4398    fn r#add_ip_membership(
4399        &self,
4400        mut membership: &IpMulticastMembership,
4401    ) -> Self::AddIpMembershipResponseFut {
4402        fn _decode(
4403            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4404        ) -> Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error> {
4405            let _response = fidl::client::decode_transaction_body::<
4406                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4407                fidl::encoding::DefaultFuchsiaResourceDialect,
4408                0x76bc7df115a3b4d0,
4409            >(_buf?)?;
4410            Ok(_response.map(|x| x))
4411        }
4412        self.client.send_query_and_decode::<
4413            BaseNetworkSocketAddIpMembershipRequest,
4414            BaseNetworkSocketAddIpMembershipResult,
4415        >(
4416            (membership,),
4417            0x76bc7df115a3b4d0,
4418            fidl::encoding::DynamicFlags::empty(),
4419            _decode,
4420        )
4421    }
4422
4423    type DropIpMembershipResponseFut = fidl::client::QueryResponseFut<
4424        BaseNetworkSocketDropIpMembershipResult,
4425        fidl::encoding::DefaultFuchsiaResourceDialect,
4426    >;
4427    fn r#drop_ip_membership(
4428        &self,
4429        mut membership: &IpMulticastMembership,
4430    ) -> Self::DropIpMembershipResponseFut {
4431        fn _decode(
4432            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4433        ) -> Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error> {
4434            let _response = fidl::client::decode_transaction_body::<
4435                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4436                fidl::encoding::DefaultFuchsiaResourceDialect,
4437                0x2888f3099188d03,
4438            >(_buf?)?;
4439            Ok(_response.map(|x| x))
4440        }
4441        self.client.send_query_and_decode::<
4442            BaseNetworkSocketDropIpMembershipRequest,
4443            BaseNetworkSocketDropIpMembershipResult,
4444        >(
4445            (membership,),
4446            0x2888f3099188d03,
4447            fidl::encoding::DynamicFlags::empty(),
4448            _decode,
4449        )
4450    }
4451
4452    type SetIpTransparentResponseFut = fidl::client::QueryResponseFut<
4453        BaseNetworkSocketSetIpTransparentResult,
4454        fidl::encoding::DefaultFuchsiaResourceDialect,
4455    >;
4456    fn r#set_ip_transparent(&self, mut value: bool) -> Self::SetIpTransparentResponseFut {
4457        fn _decode(
4458            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4459        ) -> Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error> {
4460            let _response = fidl::client::decode_transaction_body::<
4461                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4462                fidl::encoding::DefaultFuchsiaResourceDialect,
4463                0x1ae532b0c066e3a0,
4464            >(_buf?)?;
4465            Ok(_response.map(|x| x))
4466        }
4467        self.client.send_query_and_decode::<
4468            BaseNetworkSocketSetIpTransparentRequest,
4469            BaseNetworkSocketSetIpTransparentResult,
4470        >(
4471            (value,),
4472            0x1ae532b0c066e3a0,
4473            fidl::encoding::DynamicFlags::empty(),
4474            _decode,
4475        )
4476    }
4477
4478    type GetIpTransparentResponseFut = fidl::client::QueryResponseFut<
4479        BaseNetworkSocketGetIpTransparentResult,
4480        fidl::encoding::DefaultFuchsiaResourceDialect,
4481    >;
4482    fn r#get_ip_transparent(&self) -> Self::GetIpTransparentResponseFut {
4483        fn _decode(
4484            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4485        ) -> Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error> {
4486            let _response = fidl::client::decode_transaction_body::<
4487                fidl::encoding::ResultType<
4488                    BaseNetworkSocketGetIpTransparentResponse,
4489                    fidl_fuchsia_posix::Errno,
4490                >,
4491                fidl::encoding::DefaultFuchsiaResourceDialect,
4492                0x51d43695962ebfb5,
4493            >(_buf?)?;
4494            Ok(_response.map(|x| x.value))
4495        }
4496        self.client.send_query_and_decode::<
4497            fidl::encoding::EmptyPayload,
4498            BaseNetworkSocketGetIpTransparentResult,
4499        >(
4500            (),
4501            0x51d43695962ebfb5,
4502            fidl::encoding::DynamicFlags::empty(),
4503            _decode,
4504        )
4505    }
4506
4507    type SetIpReceiveOriginalDestinationAddressResponseFut = fidl::client::QueryResponseFut<
4508        BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
4509        fidl::encoding::DefaultFuchsiaResourceDialect,
4510    >;
4511    fn r#set_ip_receive_original_destination_address(
4512        &self,
4513        mut value: bool,
4514    ) -> Self::SetIpReceiveOriginalDestinationAddressResponseFut {
4515        fn _decode(
4516            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4517        ) -> Result<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult, fidl::Error>
4518        {
4519            let _response = fidl::client::decode_transaction_body::<
4520                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4521                fidl::encoding::DefaultFuchsiaResourceDialect,
4522                0x4722b4ce52f7840,
4523            >(_buf?)?;
4524            Ok(_response.map(|x| x))
4525        }
4526        self.client.send_query_and_decode::<
4527            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
4528            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
4529        >(
4530            (value,),
4531            0x4722b4ce52f7840,
4532            fidl::encoding::DynamicFlags::empty(),
4533            _decode,
4534        )
4535    }
4536
4537    type GetIpReceiveOriginalDestinationAddressResponseFut = fidl::client::QueryResponseFut<
4538        BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
4539        fidl::encoding::DefaultFuchsiaResourceDialect,
4540    >;
4541    fn r#get_ip_receive_original_destination_address(
4542        &self,
4543    ) -> Self::GetIpReceiveOriginalDestinationAddressResponseFut {
4544        fn _decode(
4545            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4546        ) -> Result<BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult, fidl::Error>
4547        {
4548            let _response = fidl::client::decode_transaction_body::<
4549                fidl::encoding::ResultType<
4550                    BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
4551                    fidl_fuchsia_posix::Errno,
4552                >,
4553                fidl::encoding::DefaultFuchsiaResourceDialect,
4554                0x2a0e7dc5d6bfdfe9,
4555            >(_buf?)?;
4556            Ok(_response.map(|x| x.value))
4557        }
4558        self.client.send_query_and_decode::<
4559            fidl::encoding::EmptyPayload,
4560            BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
4561        >(
4562            (),
4563            0x2a0e7dc5d6bfdfe9,
4564            fidl::encoding::DynamicFlags::empty(),
4565            _decode,
4566        )
4567    }
4568
4569    type AddIpv6MembershipResponseFut = fidl::client::QueryResponseFut<
4570        BaseNetworkSocketAddIpv6MembershipResult,
4571        fidl::encoding::DefaultFuchsiaResourceDialect,
4572    >;
4573    fn r#add_ipv6_membership(
4574        &self,
4575        mut membership: &Ipv6MulticastMembership,
4576    ) -> Self::AddIpv6MembershipResponseFut {
4577        fn _decode(
4578            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4579        ) -> Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error> {
4580            let _response = fidl::client::decode_transaction_body::<
4581                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4582                fidl::encoding::DefaultFuchsiaResourceDialect,
4583                0x7c94727acb4ea4b3,
4584            >(_buf?)?;
4585            Ok(_response.map(|x| x))
4586        }
4587        self.client.send_query_and_decode::<
4588            BaseNetworkSocketAddIpv6MembershipRequest,
4589            BaseNetworkSocketAddIpv6MembershipResult,
4590        >(
4591            (membership,),
4592            0x7c94727acb4ea4b3,
4593            fidl::encoding::DynamicFlags::empty(),
4594            _decode,
4595        )
4596    }
4597
4598    type DropIpv6MembershipResponseFut = fidl::client::QueryResponseFut<
4599        BaseNetworkSocketDropIpv6MembershipResult,
4600        fidl::encoding::DefaultFuchsiaResourceDialect,
4601    >;
4602    fn r#drop_ipv6_membership(
4603        &self,
4604        mut membership: &Ipv6MulticastMembership,
4605    ) -> Self::DropIpv6MembershipResponseFut {
4606        fn _decode(
4607            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4608        ) -> Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error> {
4609            let _response = fidl::client::decode_transaction_body::<
4610                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4611                fidl::encoding::DefaultFuchsiaResourceDialect,
4612                0x42104c70ccaba304,
4613            >(_buf?)?;
4614            Ok(_response.map(|x| x))
4615        }
4616        self.client.send_query_and_decode::<
4617            BaseNetworkSocketDropIpv6MembershipRequest,
4618            BaseNetworkSocketDropIpv6MembershipResult,
4619        >(
4620            (membership,),
4621            0x42104c70ccaba304,
4622            fidl::encoding::DynamicFlags::empty(),
4623            _decode,
4624        )
4625    }
4626
4627    type SetIpv6MulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
4628        BaseNetworkSocketSetIpv6MulticastInterfaceResult,
4629        fidl::encoding::DefaultFuchsiaResourceDialect,
4630    >;
4631    fn r#set_ipv6_multicast_interface(
4632        &self,
4633        mut value: u64,
4634    ) -> Self::SetIpv6MulticastInterfaceResponseFut {
4635        fn _decode(
4636            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4637        ) -> Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error> {
4638            let _response = fidl::client::decode_transaction_body::<
4639                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4640                fidl::encoding::DefaultFuchsiaResourceDialect,
4641                0x135f76db3774ab3b,
4642            >(_buf?)?;
4643            Ok(_response.map(|x| x))
4644        }
4645        self.client.send_query_and_decode::<
4646            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
4647            BaseNetworkSocketSetIpv6MulticastInterfaceResult,
4648        >(
4649            (value,),
4650            0x135f76db3774ab3b,
4651            fidl::encoding::DynamicFlags::empty(),
4652            _decode,
4653        )
4654    }
4655
4656    type GetIpv6MulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
4657        BaseNetworkSocketGetIpv6MulticastInterfaceResult,
4658        fidl::encoding::DefaultFuchsiaResourceDialect,
4659    >;
4660    fn r#get_ipv6_multicast_interface(&self) -> Self::GetIpv6MulticastInterfaceResponseFut {
4661        fn _decode(
4662            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4663        ) -> Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error> {
4664            let _response = fidl::client::decode_transaction_body::<
4665                fidl::encoding::ResultType<
4666                    BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
4667                    fidl_fuchsia_posix::Errno,
4668                >,
4669                fidl::encoding::DefaultFuchsiaResourceDialect,
4670                0x1f26fcdd348f1882,
4671            >(_buf?)?;
4672            Ok(_response.map(|x| x.value))
4673        }
4674        self.client.send_query_and_decode::<
4675            fidl::encoding::EmptyPayload,
4676            BaseNetworkSocketGetIpv6MulticastInterfaceResult,
4677        >(
4678            (),
4679            0x1f26fcdd348f1882,
4680            fidl::encoding::DynamicFlags::empty(),
4681            _decode,
4682        )
4683    }
4684
4685    type SetIpv6UnicastHopsResponseFut = fidl::client::QueryResponseFut<
4686        BaseNetworkSocketSetIpv6UnicastHopsResult,
4687        fidl::encoding::DefaultFuchsiaResourceDialect,
4688    >;
4689    fn r#set_ipv6_unicast_hops(
4690        &self,
4691        mut value: &OptionalUint8,
4692    ) -> Self::SetIpv6UnicastHopsResponseFut {
4693        fn _decode(
4694            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4695        ) -> Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error> {
4696            let _response = fidl::client::decode_transaction_body::<
4697                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4698                fidl::encoding::DefaultFuchsiaResourceDialect,
4699                0x157d51e98f462859,
4700            >(_buf?)?;
4701            Ok(_response.map(|x| x))
4702        }
4703        self.client.send_query_and_decode::<
4704            BaseNetworkSocketSetIpv6UnicastHopsRequest,
4705            BaseNetworkSocketSetIpv6UnicastHopsResult,
4706        >(
4707            (value,),
4708            0x157d51e98f462859,
4709            fidl::encoding::DynamicFlags::empty(),
4710            _decode,
4711        )
4712    }
4713
4714    type GetIpv6UnicastHopsResponseFut = fidl::client::QueryResponseFut<
4715        BaseNetworkSocketGetIpv6UnicastHopsResult,
4716        fidl::encoding::DefaultFuchsiaResourceDialect,
4717    >;
4718    fn r#get_ipv6_unicast_hops(&self) -> Self::GetIpv6UnicastHopsResponseFut {
4719        fn _decode(
4720            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4721        ) -> Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error> {
4722            let _response = fidl::client::decode_transaction_body::<
4723                fidl::encoding::ResultType<
4724                    BaseNetworkSocketGetIpv6UnicastHopsResponse,
4725                    fidl_fuchsia_posix::Errno,
4726                >,
4727                fidl::encoding::DefaultFuchsiaResourceDialect,
4728                0x21f4641cad8bd8d2,
4729            >(_buf?)?;
4730            Ok(_response.map(|x| x.value))
4731        }
4732        self.client.send_query_and_decode::<
4733            fidl::encoding::EmptyPayload,
4734            BaseNetworkSocketGetIpv6UnicastHopsResult,
4735        >(
4736            (),
4737            0x21f4641cad8bd8d2,
4738            fidl::encoding::DynamicFlags::empty(),
4739            _decode,
4740        )
4741    }
4742
4743    type SetIpv6ReceiveHopLimitResponseFut = fidl::client::QueryResponseFut<
4744        BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
4745        fidl::encoding::DefaultFuchsiaResourceDialect,
4746    >;
4747    fn r#set_ipv6_receive_hop_limit(
4748        &self,
4749        mut value: bool,
4750    ) -> Self::SetIpv6ReceiveHopLimitResponseFut {
4751        fn _decode(
4752            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4753        ) -> Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error> {
4754            let _response = fidl::client::decode_transaction_body::<
4755                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4756                fidl::encoding::DefaultFuchsiaResourceDialect,
4757                0x5c24808ed2e84a1e,
4758            >(_buf?)?;
4759            Ok(_response.map(|x| x))
4760        }
4761        self.client.send_query_and_decode::<
4762            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
4763            BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
4764        >(
4765            (value,),
4766            0x5c24808ed2e84a1e,
4767            fidl::encoding::DynamicFlags::empty(),
4768            _decode,
4769        )
4770    }
4771
4772    type GetIpv6ReceiveHopLimitResponseFut = fidl::client::QueryResponseFut<
4773        BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
4774        fidl::encoding::DefaultFuchsiaResourceDialect,
4775    >;
4776    fn r#get_ipv6_receive_hop_limit(&self) -> Self::GetIpv6ReceiveHopLimitResponseFut {
4777        fn _decode(
4778            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4779        ) -> Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error> {
4780            let _response = fidl::client::decode_transaction_body::<
4781                fidl::encoding::ResultType<
4782                    BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
4783                    fidl_fuchsia_posix::Errno,
4784                >,
4785                fidl::encoding::DefaultFuchsiaResourceDialect,
4786                0x341e06689885b4c0,
4787            >(_buf?)?;
4788            Ok(_response.map(|x| x.value))
4789        }
4790        self.client.send_query_and_decode::<
4791            fidl::encoding::EmptyPayload,
4792            BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
4793        >(
4794            (),
4795            0x341e06689885b4c0,
4796            fidl::encoding::DynamicFlags::empty(),
4797            _decode,
4798        )
4799    }
4800
4801    type SetIpv6MulticastHopsResponseFut = fidl::client::QueryResponseFut<
4802        BaseNetworkSocketSetIpv6MulticastHopsResult,
4803        fidl::encoding::DefaultFuchsiaResourceDialect,
4804    >;
4805    fn r#set_ipv6_multicast_hops(
4806        &self,
4807        mut value: &OptionalUint8,
4808    ) -> Self::SetIpv6MulticastHopsResponseFut {
4809        fn _decode(
4810            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4811        ) -> Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error> {
4812            let _response = fidl::client::decode_transaction_body::<
4813                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4814                fidl::encoding::DefaultFuchsiaResourceDialect,
4815                0x25b9cd4d181f82c1,
4816            >(_buf?)?;
4817            Ok(_response.map(|x| x))
4818        }
4819        self.client.send_query_and_decode::<
4820            BaseNetworkSocketSetIpv6MulticastHopsRequest,
4821            BaseNetworkSocketSetIpv6MulticastHopsResult,
4822        >(
4823            (value,),
4824            0x25b9cd4d181f82c1,
4825            fidl::encoding::DynamicFlags::empty(),
4826            _decode,
4827        )
4828    }
4829
4830    type GetIpv6MulticastHopsResponseFut = fidl::client::QueryResponseFut<
4831        BaseNetworkSocketGetIpv6MulticastHopsResult,
4832        fidl::encoding::DefaultFuchsiaResourceDialect,
4833    >;
4834    fn r#get_ipv6_multicast_hops(&self) -> Self::GetIpv6MulticastHopsResponseFut {
4835        fn _decode(
4836            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4837        ) -> Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error> {
4838            let _response = fidl::client::decode_transaction_body::<
4839                fidl::encoding::ResultType<
4840                    BaseNetworkSocketGetIpv6MulticastHopsResponse,
4841                    fidl_fuchsia_posix::Errno,
4842                >,
4843                fidl::encoding::DefaultFuchsiaResourceDialect,
4844                0x52916948a365012a,
4845            >(_buf?)?;
4846            Ok(_response.map(|x| x.value))
4847        }
4848        self.client.send_query_and_decode::<
4849            fidl::encoding::EmptyPayload,
4850            BaseNetworkSocketGetIpv6MulticastHopsResult,
4851        >(
4852            (),
4853            0x52916948a365012a,
4854            fidl::encoding::DynamicFlags::empty(),
4855            _decode,
4856        )
4857    }
4858
4859    type SetIpv6MulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
4860        BaseNetworkSocketSetIpv6MulticastLoopbackResult,
4861        fidl::encoding::DefaultFuchsiaResourceDialect,
4862    >;
4863    fn r#set_ipv6_multicast_loopback(
4864        &self,
4865        mut value: bool,
4866    ) -> Self::SetIpv6MulticastLoopbackResponseFut {
4867        fn _decode(
4868            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4869        ) -> Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error> {
4870            let _response = fidl::client::decode_transaction_body::<
4871                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4872                fidl::encoding::DefaultFuchsiaResourceDialect,
4873                0x55701c409ff41b40,
4874            >(_buf?)?;
4875            Ok(_response.map(|x| x))
4876        }
4877        self.client.send_query_and_decode::<
4878            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
4879            BaseNetworkSocketSetIpv6MulticastLoopbackResult,
4880        >(
4881            (value,),
4882            0x55701c409ff41b40,
4883            fidl::encoding::DynamicFlags::empty(),
4884            _decode,
4885        )
4886    }
4887
4888    type GetIpv6MulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
4889        BaseNetworkSocketGetIpv6MulticastLoopbackResult,
4890        fidl::encoding::DefaultFuchsiaResourceDialect,
4891    >;
4892    fn r#get_ipv6_multicast_loopback(&self) -> Self::GetIpv6MulticastLoopbackResponseFut {
4893        fn _decode(
4894            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4895        ) -> Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error> {
4896            let _response = fidl::client::decode_transaction_body::<
4897                fidl::encoding::ResultType<
4898                    BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
4899                    fidl_fuchsia_posix::Errno,
4900                >,
4901                fidl::encoding::DefaultFuchsiaResourceDialect,
4902                0x4415b701fde319c3,
4903            >(_buf?)?;
4904            Ok(_response.map(|x| x.value))
4905        }
4906        self.client.send_query_and_decode::<
4907            fidl::encoding::EmptyPayload,
4908            BaseNetworkSocketGetIpv6MulticastLoopbackResult,
4909        >(
4910            (),
4911            0x4415b701fde319c3,
4912            fidl::encoding::DynamicFlags::empty(),
4913            _decode,
4914        )
4915    }
4916
4917    type SetIpv6OnlyResponseFut = fidl::client::QueryResponseFut<
4918        BaseNetworkSocketSetIpv6OnlyResult,
4919        fidl::encoding::DefaultFuchsiaResourceDialect,
4920    >;
4921    fn r#set_ipv6_only(&self, mut value: bool) -> Self::SetIpv6OnlyResponseFut {
4922        fn _decode(
4923            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4924        ) -> Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error> {
4925            let _response = fidl::client::decode_transaction_body::<
4926                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4927                fidl::encoding::DefaultFuchsiaResourceDialect,
4928                0x4873f1364758cbba,
4929            >(_buf?)?;
4930            Ok(_response.map(|x| x))
4931        }
4932        self.client.send_query_and_decode::<
4933            BaseNetworkSocketSetIpv6OnlyRequest,
4934            BaseNetworkSocketSetIpv6OnlyResult,
4935        >(
4936            (value,),
4937            0x4873f1364758cbba,
4938            fidl::encoding::DynamicFlags::empty(),
4939            _decode,
4940        )
4941    }
4942
4943    type GetIpv6OnlyResponseFut = fidl::client::QueryResponseFut<
4944        BaseNetworkSocketGetIpv6OnlyResult,
4945        fidl::encoding::DefaultFuchsiaResourceDialect,
4946    >;
4947    fn r#get_ipv6_only(&self) -> Self::GetIpv6OnlyResponseFut {
4948        fn _decode(
4949            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4950        ) -> Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error> {
4951            let _response = fidl::client::decode_transaction_body::<
4952                fidl::encoding::ResultType<
4953                    BaseNetworkSocketGetIpv6OnlyResponse,
4954                    fidl_fuchsia_posix::Errno,
4955                >,
4956                fidl::encoding::DefaultFuchsiaResourceDialect,
4957                0x4aa3340a1a26b89c,
4958            >(_buf?)?;
4959            Ok(_response.map(|x| x.value))
4960        }
4961        self.client.send_query_and_decode::<
4962            fidl::encoding::EmptyPayload,
4963            BaseNetworkSocketGetIpv6OnlyResult,
4964        >(
4965            (),
4966            0x4aa3340a1a26b89c,
4967            fidl::encoding::DynamicFlags::empty(),
4968            _decode,
4969        )
4970    }
4971
4972    type SetIpv6ReceiveTrafficClassResponseFut = fidl::client::QueryResponseFut<
4973        BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
4974        fidl::encoding::DefaultFuchsiaResourceDialect,
4975    >;
4976    fn r#set_ipv6_receive_traffic_class(
4977        &self,
4978        mut value: bool,
4979    ) -> Self::SetIpv6ReceiveTrafficClassResponseFut {
4980        fn _decode(
4981            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4982        ) -> Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error> {
4983            let _response = fidl::client::decode_transaction_body::<
4984                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4985                fidl::encoding::DefaultFuchsiaResourceDialect,
4986                0x58f07c8788d099a0,
4987            >(_buf?)?;
4988            Ok(_response.map(|x| x))
4989        }
4990        self.client.send_query_and_decode::<
4991            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
4992            BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
4993        >(
4994            (value,),
4995            0x58f07c8788d099a0,
4996            fidl::encoding::DynamicFlags::empty(),
4997            _decode,
4998        )
4999    }
5000
5001    type GetIpv6ReceiveTrafficClassResponseFut = fidl::client::QueryResponseFut<
5002        BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
5003        fidl::encoding::DefaultFuchsiaResourceDialect,
5004    >;
5005    fn r#get_ipv6_receive_traffic_class(&self) -> Self::GetIpv6ReceiveTrafficClassResponseFut {
5006        fn _decode(
5007            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5008        ) -> Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error> {
5009            let _response = fidl::client::decode_transaction_body::<
5010                fidl::encoding::ResultType<
5011                    BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
5012                    fidl_fuchsia_posix::Errno,
5013                >,
5014                fidl::encoding::DefaultFuchsiaResourceDialect,
5015                0x2e334df1da553ffa,
5016            >(_buf?)?;
5017            Ok(_response.map(|x| x.value))
5018        }
5019        self.client.send_query_and_decode::<
5020            fidl::encoding::EmptyPayload,
5021            BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
5022        >(
5023            (),
5024            0x2e334df1da553ffa,
5025            fidl::encoding::DynamicFlags::empty(),
5026            _decode,
5027        )
5028    }
5029
5030    type SetIpv6TrafficClassResponseFut = fidl::client::QueryResponseFut<
5031        BaseNetworkSocketSetIpv6TrafficClassResult,
5032        fidl::encoding::DefaultFuchsiaResourceDialect,
5033    >;
5034    fn r#set_ipv6_traffic_class(
5035        &self,
5036        mut value: &OptionalUint8,
5037    ) -> Self::SetIpv6TrafficClassResponseFut {
5038        fn _decode(
5039            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5040        ) -> Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error> {
5041            let _response = fidl::client::decode_transaction_body::<
5042                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
5043                fidl::encoding::DefaultFuchsiaResourceDialect,
5044                0x6af077800c5a0b4f,
5045            >(_buf?)?;
5046            Ok(_response.map(|x| x))
5047        }
5048        self.client.send_query_and_decode::<
5049            BaseNetworkSocketSetIpv6TrafficClassRequest,
5050            BaseNetworkSocketSetIpv6TrafficClassResult,
5051        >(
5052            (value,),
5053            0x6af077800c5a0b4f,
5054            fidl::encoding::DynamicFlags::empty(),
5055            _decode,
5056        )
5057    }
5058
5059    type GetIpv6TrafficClassResponseFut = fidl::client::QueryResponseFut<
5060        BaseNetworkSocketGetIpv6TrafficClassResult,
5061        fidl::encoding::DefaultFuchsiaResourceDialect,
5062    >;
5063    fn r#get_ipv6_traffic_class(&self) -> Self::GetIpv6TrafficClassResponseFut {
5064        fn _decode(
5065            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5066        ) -> Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error> {
5067            let _response = fidl::client::decode_transaction_body::<
5068                fidl::encoding::ResultType<
5069                    BaseNetworkSocketGetIpv6TrafficClassResponse,
5070                    fidl_fuchsia_posix::Errno,
5071                >,
5072                fidl::encoding::DefaultFuchsiaResourceDialect,
5073                0x6baf6eed8fc2f04,
5074            >(_buf?)?;
5075            Ok(_response.map(|x| x.value))
5076        }
5077        self.client.send_query_and_decode::<
5078            fidl::encoding::EmptyPayload,
5079            BaseNetworkSocketGetIpv6TrafficClassResult,
5080        >(
5081            (),
5082            0x6baf6eed8fc2f04,
5083            fidl::encoding::DynamicFlags::empty(),
5084            _decode,
5085        )
5086    }
5087
5088    type SetIpv6ReceivePacketInfoResponseFut = fidl::client::QueryResponseFut<
5089        BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
5090        fidl::encoding::DefaultFuchsiaResourceDialect,
5091    >;
5092    fn r#set_ipv6_receive_packet_info(
5093        &self,
5094        mut value: bool,
5095    ) -> Self::SetIpv6ReceivePacketInfoResponseFut {
5096        fn _decode(
5097            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5098        ) -> Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error> {
5099            let _response = fidl::client::decode_transaction_body::<
5100                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
5101                fidl::encoding::DefaultFuchsiaResourceDialect,
5102                0x19259775b1a92768,
5103            >(_buf?)?;
5104            Ok(_response.map(|x| x))
5105        }
5106        self.client.send_query_and_decode::<
5107            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
5108            BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
5109        >(
5110            (value,),
5111            0x19259775b1a92768,
5112            fidl::encoding::DynamicFlags::empty(),
5113            _decode,
5114        )
5115    }
5116
5117    type GetIpv6ReceivePacketInfoResponseFut = fidl::client::QueryResponseFut<
5118        BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
5119        fidl::encoding::DefaultFuchsiaResourceDialect,
5120    >;
5121    fn r#get_ipv6_receive_packet_info(&self) -> Self::GetIpv6ReceivePacketInfoResponseFut {
5122        fn _decode(
5123            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5124        ) -> Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error> {
5125            let _response = fidl::client::decode_transaction_body::<
5126                fidl::encoding::ResultType<
5127                    BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
5128                    fidl_fuchsia_posix::Errno,
5129                >,
5130                fidl::encoding::DefaultFuchsiaResourceDialect,
5131                0x7acd4a2775baec75,
5132            >(_buf?)?;
5133            Ok(_response.map(|x| x.value))
5134        }
5135        self.client.send_query_and_decode::<
5136            fidl::encoding::EmptyPayload,
5137            BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
5138        >(
5139            (),
5140            0x7acd4a2775baec75,
5141            fidl::encoding::DynamicFlags::empty(),
5142            _decode,
5143        )
5144    }
5145
5146    type GetOriginalDestinationResponseFut = fidl::client::QueryResponseFut<
5147        BaseNetworkSocketGetOriginalDestinationResult,
5148        fidl::encoding::DefaultFuchsiaResourceDialect,
5149    >;
5150    fn r#get_original_destination(&self) -> Self::GetOriginalDestinationResponseFut {
5151        fn _decode(
5152            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5153        ) -> Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error> {
5154            let _response = fidl::client::decode_transaction_body::<
5155                fidl::encoding::ResultType<
5156                    BaseNetworkSocketGetOriginalDestinationResponse,
5157                    fidl_fuchsia_posix::Errno,
5158                >,
5159                fidl::encoding::DefaultFuchsiaResourceDialect,
5160                0x38bf28f0dafdbac0,
5161            >(_buf?)?;
5162            Ok(_response.map(|x| x.value))
5163        }
5164        self.client.send_query_and_decode::<
5165            fidl::encoding::EmptyPayload,
5166            BaseNetworkSocketGetOriginalDestinationResult,
5167        >(
5168            (),
5169            0x38bf28f0dafdbac0,
5170            fidl::encoding::DynamicFlags::empty(),
5171            _decode,
5172        )
5173    }
5174
5175    type GetInfoResponseFut = fidl::client::QueryResponseFut<
5176        BaseDatagramSocketGetInfoResult,
5177        fidl::encoding::DefaultFuchsiaResourceDialect,
5178    >;
5179    fn r#get_info(&self) -> Self::GetInfoResponseFut {
5180        fn _decode(
5181            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5182        ) -> Result<BaseDatagramSocketGetInfoResult, fidl::Error> {
5183            let _response = fidl::client::decode_transaction_body::<
5184                fidl::encoding::ResultType<
5185                    BaseDatagramSocketGetInfoResponse,
5186                    fidl_fuchsia_posix::Errno,
5187                >,
5188                fidl::encoding::DefaultFuchsiaResourceDialect,
5189                0x48aa0a1f6a32d2ed,
5190            >(_buf?)?;
5191            Ok(_response.map(|x| (x.domain, x.proto)))
5192        }
5193        self.client
5194            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseDatagramSocketGetInfoResult>(
5195                (),
5196                0x48aa0a1f6a32d2ed,
5197                fidl::encoding::DynamicFlags::empty(),
5198                _decode,
5199            )
5200    }
5201}
5202
5203pub struct BaseDatagramSocketEventStream {
5204    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
5205}
5206
5207impl std::marker::Unpin for BaseDatagramSocketEventStream {}
5208
5209impl futures::stream::FusedStream for BaseDatagramSocketEventStream {
5210    fn is_terminated(&self) -> bool {
5211        self.event_receiver.is_terminated()
5212    }
5213}
5214
5215impl futures::Stream for BaseDatagramSocketEventStream {
5216    type Item = Result<BaseDatagramSocketEvent, fidl::Error>;
5217
5218    fn poll_next(
5219        mut self: std::pin::Pin<&mut Self>,
5220        cx: &mut std::task::Context<'_>,
5221    ) -> std::task::Poll<Option<Self::Item>> {
5222        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
5223            &mut self.event_receiver,
5224            cx
5225        )?) {
5226            Some(buf) => std::task::Poll::Ready(Some(BaseDatagramSocketEvent::decode(buf))),
5227            None => std::task::Poll::Ready(None),
5228        }
5229    }
5230}
5231
5232#[derive(Debug)]
5233pub enum BaseDatagramSocketEvent {}
5234
5235impl BaseDatagramSocketEvent {
5236    /// Decodes a message buffer as a [`BaseDatagramSocketEvent`].
5237    fn decode(
5238        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
5239    ) -> Result<BaseDatagramSocketEvent, fidl::Error> {
5240        let (bytes, _handles) = buf.split_mut();
5241        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
5242        debug_assert_eq!(tx_header.tx_id, 0);
5243        match tx_header.ordinal {
5244            _ => Err(fidl::Error::UnknownOrdinal {
5245                ordinal: tx_header.ordinal,
5246                protocol_name:
5247                    <BaseDatagramSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
5248            }),
5249        }
5250    }
5251}
5252
5253/// A Stream of incoming requests for fuchsia.posix.socket/BaseDatagramSocket.
5254pub struct BaseDatagramSocketRequestStream {
5255    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
5256    is_terminated: bool,
5257}
5258
5259impl std::marker::Unpin for BaseDatagramSocketRequestStream {}
5260
5261impl futures::stream::FusedStream for BaseDatagramSocketRequestStream {
5262    fn is_terminated(&self) -> bool {
5263        self.is_terminated
5264    }
5265}
5266
5267impl fidl::endpoints::RequestStream for BaseDatagramSocketRequestStream {
5268    type Protocol = BaseDatagramSocketMarker;
5269    type ControlHandle = BaseDatagramSocketControlHandle;
5270
5271    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
5272        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
5273    }
5274
5275    fn control_handle(&self) -> Self::ControlHandle {
5276        BaseDatagramSocketControlHandle { inner: self.inner.clone() }
5277    }
5278
5279    fn into_inner(
5280        self,
5281    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
5282    {
5283        (self.inner, self.is_terminated)
5284    }
5285
5286    fn from_inner(
5287        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
5288        is_terminated: bool,
5289    ) -> Self {
5290        Self { inner, is_terminated }
5291    }
5292}
5293
5294impl futures::Stream for BaseDatagramSocketRequestStream {
5295    type Item = Result<BaseDatagramSocketRequest, fidl::Error>;
5296
5297    fn poll_next(
5298        mut self: std::pin::Pin<&mut Self>,
5299        cx: &mut std::task::Context<'_>,
5300    ) -> std::task::Poll<Option<Self::Item>> {
5301        let this = &mut *self;
5302        if this.inner.check_shutdown(cx) {
5303            this.is_terminated = true;
5304            return std::task::Poll::Ready(None);
5305        }
5306        if this.is_terminated {
5307            panic!("polled BaseDatagramSocketRequestStream after completion");
5308        }
5309        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
5310            |bytes, handles| {
5311                match this.inner.channel().read_etc(cx, bytes, handles) {
5312                    std::task::Poll::Ready(Ok(())) => {}
5313                    std::task::Poll::Pending => return std::task::Poll::Pending,
5314                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
5315                        this.is_terminated = true;
5316                        return std::task::Poll::Ready(None);
5317                    }
5318                    std::task::Poll::Ready(Err(e)) => {
5319                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
5320                            e.into(),
5321                        ))))
5322                    }
5323                }
5324
5325                // A message has been received from the channel
5326                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
5327
5328                std::task::Poll::Ready(Some(match header.ordinal {
5329                0x20d8a7aba2168a79 => {
5330                    header.validate_request_tx_id(fidl::MethodType::OneWay)?;
5331                    let mut req = fidl::new_empty!(fidl_fuchsia_unknown::CloneableCloneRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5332                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl_fuchsia_unknown::CloneableCloneRequest>(&header, _body_bytes, handles, &mut req)?;
5333                    let control_handle = BaseDatagramSocketControlHandle {
5334                        inner: this.inner.clone(),
5335                    };
5336                    Ok(BaseDatagramSocketRequest::Clone {request: req.request,
5337
5338                        control_handle,
5339                    })
5340                }
5341                0x5ac5d459ad7f657e => {
5342                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5343                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5344                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5345                    let control_handle = BaseDatagramSocketControlHandle {
5346                        inner: this.inner.clone(),
5347                    };
5348                    Ok(BaseDatagramSocketRequest::Close {
5349                        responder: BaseDatagramSocketCloseResponder {
5350                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5351                            tx_id: header.tx_id,
5352                        },
5353                    })
5354                }
5355                0x2658edee9decfc06 => {
5356                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5357                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5358                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5359                    let control_handle = BaseDatagramSocketControlHandle {
5360                        inner: this.inner.clone(),
5361                    };
5362                    Ok(BaseDatagramSocketRequest::Query {
5363                        responder: BaseDatagramSocketQueryResponder {
5364                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5365                            tx_id: header.tx_id,
5366                        },
5367                    })
5368                }
5369                0x1fd74ee8b9a4a876 => {
5370                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5371                    let mut req = fidl::new_empty!(BaseSocketSetReuseAddressRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5372                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReuseAddressRequest>(&header, _body_bytes, handles, &mut req)?;
5373                    let control_handle = BaseDatagramSocketControlHandle {
5374                        inner: this.inner.clone(),
5375                    };
5376                    Ok(BaseDatagramSocketRequest::SetReuseAddress {value: req.value,
5377
5378                        responder: BaseDatagramSocketSetReuseAddressResponder {
5379                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5380                            tx_id: header.tx_id,
5381                        },
5382                    })
5383                }
5384                0x67b7206b8d1bc0a5 => {
5385                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5386                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5387                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5388                    let control_handle = BaseDatagramSocketControlHandle {
5389                        inner: this.inner.clone(),
5390                    };
5391                    Ok(BaseDatagramSocketRequest::GetReuseAddress {
5392                        responder: BaseDatagramSocketGetReuseAddressResponder {
5393                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5394                            tx_id: header.tx_id,
5395                        },
5396                    })
5397                }
5398                0x5aad39b33e5f6ebb => {
5399                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5400                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5401                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5402                    let control_handle = BaseDatagramSocketControlHandle {
5403                        inner: this.inner.clone(),
5404                    };
5405                    Ok(BaseDatagramSocketRequest::GetError {
5406                        responder: BaseDatagramSocketGetErrorResponder {
5407                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5408                            tx_id: header.tx_id,
5409                        },
5410                    })
5411                }
5412                0x6023e081ce3cd947 => {
5413                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5414                    let mut req = fidl::new_empty!(BaseSocketSetBroadcastRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5415                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBroadcastRequest>(&header, _body_bytes, handles, &mut req)?;
5416                    let control_handle = BaseDatagramSocketControlHandle {
5417                        inner: this.inner.clone(),
5418                    };
5419                    Ok(BaseDatagramSocketRequest::SetBroadcast {value: req.value,
5420
5421                        responder: BaseDatagramSocketSetBroadcastResponder {
5422                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5423                            tx_id: header.tx_id,
5424                        },
5425                    })
5426                }
5427                0x68796fc556f9780d => {
5428                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5429                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5430                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5431                    let control_handle = BaseDatagramSocketControlHandle {
5432                        inner: this.inner.clone(),
5433                    };
5434                    Ok(BaseDatagramSocketRequest::GetBroadcast {
5435                        responder: BaseDatagramSocketGetBroadcastResponder {
5436                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5437                            tx_id: header.tx_id,
5438                        },
5439                    })
5440                }
5441                0x756eac32d73a7a70 => {
5442                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5443                    let mut req = fidl::new_empty!(BaseSocketSetSendBufferRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5444                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetSendBufferRequest>(&header, _body_bytes, handles, &mut req)?;
5445                    let control_handle = BaseDatagramSocketControlHandle {
5446                        inner: this.inner.clone(),
5447                    };
5448                    Ok(BaseDatagramSocketRequest::SetSendBuffer {value_bytes: req.value_bytes,
5449
5450                        responder: BaseDatagramSocketSetSendBufferResponder {
5451                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5452                            tx_id: header.tx_id,
5453                        },
5454                    })
5455                }
5456                0x78a52fd9c7b2410b => {
5457                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5458                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5459                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5460                    let control_handle = BaseDatagramSocketControlHandle {
5461                        inner: this.inner.clone(),
5462                    };
5463                    Ok(BaseDatagramSocketRequest::GetSendBuffer {
5464                        responder: BaseDatagramSocketGetSendBufferResponder {
5465                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5466                            tx_id: header.tx_id,
5467                        },
5468                    })
5469                }
5470                0x6b0cf2f1919c7001 => {
5471                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5472                    let mut req = fidl::new_empty!(BaseSocketSetReceiveBufferRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5473                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReceiveBufferRequest>(&header, _body_bytes, handles, &mut req)?;
5474                    let control_handle = BaseDatagramSocketControlHandle {
5475                        inner: this.inner.clone(),
5476                    };
5477                    Ok(BaseDatagramSocketRequest::SetReceiveBuffer {value_bytes: req.value_bytes,
5478
5479                        responder: BaseDatagramSocketSetReceiveBufferResponder {
5480                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5481                            tx_id: header.tx_id,
5482                        },
5483                    })
5484                }
5485                0x14c1a4b64f709e5c => {
5486                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5487                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5488                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5489                    let control_handle = BaseDatagramSocketControlHandle {
5490                        inner: this.inner.clone(),
5491                    };
5492                    Ok(BaseDatagramSocketRequest::GetReceiveBuffer {
5493                        responder: BaseDatagramSocketGetReceiveBufferResponder {
5494                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5495                            tx_id: header.tx_id,
5496                        },
5497                    })
5498                }
5499                0x572df8f0b920d2c7 => {
5500                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5501                    let mut req = fidl::new_empty!(BaseSocketSetKeepAliveRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5502                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetKeepAliveRequest>(&header, _body_bytes, handles, &mut req)?;
5503                    let control_handle = BaseDatagramSocketControlHandle {
5504                        inner: this.inner.clone(),
5505                    };
5506                    Ok(BaseDatagramSocketRequest::SetKeepAlive {value: req.value,
5507
5508                        responder: BaseDatagramSocketSetKeepAliveResponder {
5509                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5510                            tx_id: header.tx_id,
5511                        },
5512                    })
5513                }
5514                0x2dd29d3215f2c9d2 => {
5515                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5516                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5517                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5518                    let control_handle = BaseDatagramSocketControlHandle {
5519                        inner: this.inner.clone(),
5520                    };
5521                    Ok(BaseDatagramSocketRequest::GetKeepAlive {
5522                        responder: BaseDatagramSocketGetKeepAliveResponder {
5523                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5524                            tx_id: header.tx_id,
5525                        },
5526                    })
5527                }
5528                0x3ecb49968bee439 => {
5529                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5530                    let mut req = fidl::new_empty!(BaseSocketSetOutOfBandInlineRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5531                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetOutOfBandInlineRequest>(&header, _body_bytes, handles, &mut req)?;
5532                    let control_handle = BaseDatagramSocketControlHandle {
5533                        inner: this.inner.clone(),
5534                    };
5535                    Ok(BaseDatagramSocketRequest::SetOutOfBandInline {value: req.value,
5536
5537                        responder: BaseDatagramSocketSetOutOfBandInlineResponder {
5538                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5539                            tx_id: header.tx_id,
5540                        },
5541                    })
5542                }
5543                0x348c1ab3aeca1745 => {
5544                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5545                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5546                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5547                    let control_handle = BaseDatagramSocketControlHandle {
5548                        inner: this.inner.clone(),
5549                    };
5550                    Ok(BaseDatagramSocketRequest::GetOutOfBandInline {
5551                        responder: BaseDatagramSocketGetOutOfBandInlineResponder {
5552                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5553                            tx_id: header.tx_id,
5554                        },
5555                    })
5556                }
5557                0x6bbf00c53a4c78c2 => {
5558                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5559                    let mut req = fidl::new_empty!(BaseSocketSetNoCheckRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5560                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetNoCheckRequest>(&header, _body_bytes, handles, &mut req)?;
5561                    let control_handle = BaseDatagramSocketControlHandle {
5562                        inner: this.inner.clone(),
5563                    };
5564                    Ok(BaseDatagramSocketRequest::SetNoCheck {value: req.value,
5565
5566                        responder: BaseDatagramSocketSetNoCheckResponder {
5567                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5568                            tx_id: header.tx_id,
5569                        },
5570                    })
5571                }
5572                0x2cd4249286417694 => {
5573                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5574                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5575                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5576                    let control_handle = BaseDatagramSocketControlHandle {
5577                        inner: this.inner.clone(),
5578                    };
5579                    Ok(BaseDatagramSocketRequest::GetNoCheck {
5580                        responder: BaseDatagramSocketGetNoCheckResponder {
5581                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5582                            tx_id: header.tx_id,
5583                        },
5584                    })
5585                }
5586                0x45386351246e998e => {
5587                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5588                    let mut req = fidl::new_empty!(BaseSocketSetLingerRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5589                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetLingerRequest>(&header, _body_bytes, handles, &mut req)?;
5590                    let control_handle = BaseDatagramSocketControlHandle {
5591                        inner: this.inner.clone(),
5592                    };
5593                    Ok(BaseDatagramSocketRequest::SetLinger {linger: req.linger,
5594length_secs: req.length_secs,
5595
5596                        responder: BaseDatagramSocketSetLingerResponder {
5597                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5598                            tx_id: header.tx_id,
5599                        },
5600                    })
5601                }
5602                0x48eb20fc5ccb0e45 => {
5603                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5604                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5605                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5606                    let control_handle = BaseDatagramSocketControlHandle {
5607                        inner: this.inner.clone(),
5608                    };
5609                    Ok(BaseDatagramSocketRequest::GetLinger {
5610                        responder: BaseDatagramSocketGetLingerResponder {
5611                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5612                            tx_id: header.tx_id,
5613                        },
5614                    })
5615                }
5616                0x24dd3e5cb36d9ccb => {
5617                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5618                    let mut req = fidl::new_empty!(BaseSocketSetReusePortRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5619                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReusePortRequest>(&header, _body_bytes, handles, &mut req)?;
5620                    let control_handle = BaseDatagramSocketControlHandle {
5621                        inner: this.inner.clone(),
5622                    };
5623                    Ok(BaseDatagramSocketRequest::SetReusePort {value: req.value,
5624
5625                        responder: BaseDatagramSocketSetReusePortResponder {
5626                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5627                            tx_id: header.tx_id,
5628                        },
5629                    })
5630                }
5631                0x7a112c1ab54ff828 => {
5632                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5633                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5634                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5635                    let control_handle = BaseDatagramSocketControlHandle {
5636                        inner: this.inner.clone(),
5637                    };
5638                    Ok(BaseDatagramSocketRequest::GetReusePort {
5639                        responder: BaseDatagramSocketGetReusePortResponder {
5640                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5641                            tx_id: header.tx_id,
5642                        },
5643                    })
5644                }
5645                0x67ce6db6c2ec8966 => {
5646                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5647                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5648                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5649                    let control_handle = BaseDatagramSocketControlHandle {
5650                        inner: this.inner.clone(),
5651                    };
5652                    Ok(BaseDatagramSocketRequest::GetAcceptConn {
5653                        responder: BaseDatagramSocketGetAcceptConnResponder {
5654                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5655                            tx_id: header.tx_id,
5656                        },
5657                    })
5658                }
5659                0x2118b483f28aafc4 => {
5660                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5661                    let mut req = fidl::new_empty!(BaseSocketSetBindToDeviceRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5662                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToDeviceRequest>(&header, _body_bytes, handles, &mut req)?;
5663                    let control_handle = BaseDatagramSocketControlHandle {
5664                        inner: this.inner.clone(),
5665                    };
5666                    Ok(BaseDatagramSocketRequest::SetBindToDevice {value: req.value,
5667
5668                        responder: BaseDatagramSocketSetBindToDeviceResponder {
5669                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5670                            tx_id: header.tx_id,
5671                        },
5672                    })
5673                }
5674                0x1ab1fbf0ef7906c8 => {
5675                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5676                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5677                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5678                    let control_handle = BaseDatagramSocketControlHandle {
5679                        inner: this.inner.clone(),
5680                    };
5681                    Ok(BaseDatagramSocketRequest::GetBindToDevice {
5682                        responder: BaseDatagramSocketGetBindToDeviceResponder {
5683                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5684                            tx_id: header.tx_id,
5685                        },
5686                    })
5687                }
5688                0x6e387a0def00821 => {
5689                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5690                    let mut req = fidl::new_empty!(BaseSocketSetBindToInterfaceIndexRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5691                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToInterfaceIndexRequest>(&header, _body_bytes, handles, &mut req)?;
5692                    let control_handle = BaseDatagramSocketControlHandle {
5693                        inner: this.inner.clone(),
5694                    };
5695                    Ok(BaseDatagramSocketRequest::SetBindToInterfaceIndex {value: req.value,
5696
5697                        responder: BaseDatagramSocketSetBindToInterfaceIndexResponder {
5698                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5699                            tx_id: header.tx_id,
5700                        },
5701                    })
5702                }
5703                0x59c31dd3e3078295 => {
5704                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5705                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5706                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5707                    let control_handle = BaseDatagramSocketControlHandle {
5708                        inner: this.inner.clone(),
5709                    };
5710                    Ok(BaseDatagramSocketRequest::GetBindToInterfaceIndex {
5711                        responder: BaseDatagramSocketGetBindToInterfaceIndexResponder {
5712                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5713                            tx_id: header.tx_id,
5714                        },
5715                    })
5716                }
5717                0x285d6516c263d839 => {
5718                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5719                    let mut req = fidl::new_empty!(BaseSocketSetTimestampRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5720                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetTimestampRequest>(&header, _body_bytes, handles, &mut req)?;
5721                    let control_handle = BaseDatagramSocketControlHandle {
5722                        inner: this.inner.clone(),
5723                    };
5724                    Ok(BaseDatagramSocketRequest::SetTimestamp {value: req.value,
5725
5726                        responder: BaseDatagramSocketSetTimestampResponder {
5727                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5728                            tx_id: header.tx_id,
5729                        },
5730                    })
5731                }
5732                0x49f2fffbbcc2bd27 => {
5733                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5734                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5735                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5736                    let control_handle = BaseDatagramSocketControlHandle {
5737                        inner: this.inner.clone(),
5738                    };
5739                    Ok(BaseDatagramSocketRequest::GetTimestamp {
5740                        responder: BaseDatagramSocketGetTimestampResponder {
5741                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5742                            tx_id: header.tx_id,
5743                        },
5744                    })
5745                }
5746                0x6ead6de09f653236 => {
5747                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5748                    let mut req = fidl::new_empty!(BaseSocketSetMarkRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5749                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
5750                    let control_handle = BaseDatagramSocketControlHandle {
5751                        inner: this.inner.clone(),
5752                    };
5753                    Ok(BaseDatagramSocketRequest::SetMark {domain: req.domain,
5754mark: req.mark,
5755
5756                        responder: BaseDatagramSocketSetMarkResponder {
5757                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5758                            tx_id: header.tx_id,
5759                        },
5760                    })
5761                }
5762                0x57a2752c61d93d47 => {
5763                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5764                    let mut req = fidl::new_empty!(BaseSocketGetMarkRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5765                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketGetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
5766                    let control_handle = BaseDatagramSocketControlHandle {
5767                        inner: this.inner.clone(),
5768                    };
5769                    Ok(BaseDatagramSocketRequest::GetMark {domain: req.domain,
5770
5771                        responder: BaseDatagramSocketGetMarkResponder {
5772                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5773                            tx_id: header.tx_id,
5774                        },
5775                    })
5776                }
5777                0x2c2f47fd8f924e52 => {
5778                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5779                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5780                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5781                    let control_handle = BaseDatagramSocketControlHandle {
5782                        inner: this.inner.clone(),
5783                    };
5784                    Ok(BaseDatagramSocketRequest::GetCookie {
5785                        responder: BaseDatagramSocketGetCookieResponder {
5786                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5787                            tx_id: header.tx_id,
5788                        },
5789                    })
5790                }
5791                0x4bc6400ae92125d => {
5792                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5793                    let mut req = fidl::new_empty!(BaseNetworkSocketBindRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5794                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketBindRequest>(&header, _body_bytes, handles, &mut req)?;
5795                    let control_handle = BaseDatagramSocketControlHandle {
5796                        inner: this.inner.clone(),
5797                    };
5798                    Ok(BaseDatagramSocketRequest::Bind {addr: req.addr,
5799
5800                        responder: BaseDatagramSocketBindResponder {
5801                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5802                            tx_id: header.tx_id,
5803                        },
5804                    })
5805                }
5806                0x5f05f19bfdd38871 => {
5807                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5808                    let mut req = fidl::new_empty!(BaseNetworkSocketConnectRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5809                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketConnectRequest>(&header, _body_bytes, handles, &mut req)?;
5810                    let control_handle = BaseDatagramSocketControlHandle {
5811                        inner: this.inner.clone(),
5812                    };
5813                    Ok(BaseDatagramSocketRequest::Connect {addr: req.addr,
5814
5815                        responder: BaseDatagramSocketConnectResponder {
5816                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5817                            tx_id: header.tx_id,
5818                        },
5819                    })
5820                }
5821                0x74e63b91f7b29b2 => {
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::Disconnect {
5829                        responder: BaseDatagramSocketDisconnectResponder {
5830                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5831                            tx_id: header.tx_id,
5832                        },
5833                    })
5834                }
5835                0x475f23f84a1a4f85 => {
5836                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5837                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5838                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5839                    let control_handle = BaseDatagramSocketControlHandle {
5840                        inner: this.inner.clone(),
5841                    };
5842                    Ok(BaseDatagramSocketRequest::GetSockName {
5843                        responder: BaseDatagramSocketGetSockNameResponder {
5844                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5845                            tx_id: header.tx_id,
5846                        },
5847                    })
5848                }
5849                0x1ffecf4bd5b6432e => {
5850                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5851                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5852                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5853                    let control_handle = BaseDatagramSocketControlHandle {
5854                        inner: this.inner.clone(),
5855                    };
5856                    Ok(BaseDatagramSocketRequest::GetPeerName {
5857                        responder: BaseDatagramSocketGetPeerNameResponder {
5858                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5859                            tx_id: header.tx_id,
5860                        },
5861                    })
5862                }
5863                0x247f38b6db68c336 => {
5864                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5865                    let mut req = fidl::new_empty!(BaseNetworkSocketShutdownRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5866                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketShutdownRequest>(&header, _body_bytes, handles, &mut req)?;
5867                    let control_handle = BaseDatagramSocketControlHandle {
5868                        inner: this.inner.clone(),
5869                    };
5870                    Ok(BaseDatagramSocketRequest::Shutdown {mode: req.mode,
5871
5872                        responder: BaseDatagramSocketShutdownResponder {
5873                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5874                            tx_id: header.tx_id,
5875                        },
5876                    })
5877                }
5878                0x995c600475b6d46 => {
5879                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5880                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpTypeOfServiceRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5881                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTypeOfServiceRequest>(&header, _body_bytes, handles, &mut req)?;
5882                    let control_handle = BaseDatagramSocketControlHandle {
5883                        inner: this.inner.clone(),
5884                    };
5885                    Ok(BaseDatagramSocketRequest::SetIpTypeOfService {value: req.value,
5886
5887                        responder: BaseDatagramSocketSetIpTypeOfServiceResponder {
5888                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5889                            tx_id: header.tx_id,
5890                        },
5891                    })
5892                }
5893                0x3814a04259f75fcb => {
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::GetIpTypeOfService {
5901                        responder: BaseDatagramSocketGetIpTypeOfServiceResponder {
5902                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5903                            tx_id: header.tx_id,
5904                        },
5905                    })
5906                }
5907                0x29e2424b433ae1ef => {
5908                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5909                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpTtlRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5910                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTtlRequest>(&header, _body_bytes, handles, &mut req)?;
5911                    let control_handle = BaseDatagramSocketControlHandle {
5912                        inner: this.inner.clone(),
5913                    };
5914                    Ok(BaseDatagramSocketRequest::SetIpTtl {value: req.value,
5915
5916                        responder: BaseDatagramSocketSetIpTtlResponder {
5917                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5918                            tx_id: header.tx_id,
5919                        },
5920                    })
5921                }
5922                0x47e47fa1f24da471 => {
5923                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5924                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5925                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5926                    let control_handle = BaseDatagramSocketControlHandle {
5927                        inner: this.inner.clone(),
5928                    };
5929                    Ok(BaseDatagramSocketRequest::GetIpTtl {
5930                        responder: BaseDatagramSocketGetIpTtlResponder {
5931                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5932                            tx_id: header.tx_id,
5933                        },
5934                    })
5935                }
5936                0x392d16bee20c0e16 => {
5937                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5938                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpPacketInfoRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5939                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpPacketInfoRequest>(&header, _body_bytes, handles, &mut req)?;
5940                    let control_handle = BaseDatagramSocketControlHandle {
5941                        inner: this.inner.clone(),
5942                    };
5943                    Ok(BaseDatagramSocketRequest::SetIpPacketInfo {value: req.value,
5944
5945                        responder: BaseDatagramSocketSetIpPacketInfoResponder {
5946                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5947                            tx_id: header.tx_id,
5948                        },
5949                    })
5950                }
5951                0x54b505f242280740 => {
5952                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5953                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5954                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5955                    let control_handle = BaseDatagramSocketControlHandle {
5956                        inner: this.inner.clone(),
5957                    };
5958                    Ok(BaseDatagramSocketRequest::GetIpPacketInfo {
5959                        responder: BaseDatagramSocketGetIpPacketInfoResponder {
5960                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5961                            tx_id: header.tx_id,
5962                        },
5963                    })
5964                }
5965                0x6c4f6714995f84ef => {
5966                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5967                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpReceiveTypeOfServiceRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5968                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveTypeOfServiceRequest>(&header, _body_bytes, handles, &mut req)?;
5969                    let control_handle = BaseDatagramSocketControlHandle {
5970                        inner: this.inner.clone(),
5971                    };
5972                    Ok(BaseDatagramSocketRequest::SetIpReceiveTypeOfService {value: req.value,
5973
5974                        responder: BaseDatagramSocketSetIpReceiveTypeOfServiceResponder {
5975                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5976                            tx_id: header.tx_id,
5977                        },
5978                    })
5979                }
5980                0x4158ba7dc2795960 => {
5981                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5982                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5983                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5984                    let control_handle = BaseDatagramSocketControlHandle {
5985                        inner: this.inner.clone(),
5986                    };
5987                    Ok(BaseDatagramSocketRequest::GetIpReceiveTypeOfService {
5988                        responder: BaseDatagramSocketGetIpReceiveTypeOfServiceResponder {
5989                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5990                            tx_id: header.tx_id,
5991                        },
5992                    })
5993                }
5994                0x46f15be0ce0ab82b => {
5995                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5996                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpReceiveTtlRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5997                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveTtlRequest>(&header, _body_bytes, handles, &mut req)?;
5998                    let control_handle = BaseDatagramSocketControlHandle {
5999                        inner: this.inner.clone(),
6000                    };
6001                    Ok(BaseDatagramSocketRequest::SetIpReceiveTtl {value: req.value,
6002
6003                        responder: BaseDatagramSocketSetIpReceiveTtlResponder {
6004                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6005                            tx_id: header.tx_id,
6006                        },
6007                    })
6008                }
6009                0x678ddd5a5dfa2eb5 => {
6010                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6011                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6012                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6013                    let control_handle = BaseDatagramSocketControlHandle {
6014                        inner: this.inner.clone(),
6015                    };
6016                    Ok(BaseDatagramSocketRequest::GetIpReceiveTtl {
6017                        responder: BaseDatagramSocketGetIpReceiveTtlResponder {
6018                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6019                            tx_id: header.tx_id,
6020                        },
6021                    })
6022                }
6023                0x752fbfa9b12befe => {
6024                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6025                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpMulticastInterfaceRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6026                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastInterfaceRequest>(&header, _body_bytes, handles, &mut req)?;
6027                    let control_handle = BaseDatagramSocketControlHandle {
6028                        inner: this.inner.clone(),
6029                    };
6030                    Ok(BaseDatagramSocketRequest::SetIpMulticastInterface {iface: req.iface,
6031address: req.address,
6032
6033                        responder: BaseDatagramSocketSetIpMulticastInterfaceResponder {
6034                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6035                            tx_id: header.tx_id,
6036                        },
6037                    })
6038                }
6039                0x320bd14c4df046c4 => {
6040                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6041                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6042                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6043                    let control_handle = BaseDatagramSocketControlHandle {
6044                        inner: this.inner.clone(),
6045                    };
6046                    Ok(BaseDatagramSocketRequest::GetIpMulticastInterface {
6047                        responder: BaseDatagramSocketGetIpMulticastInterfaceResponder {
6048                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6049                            tx_id: header.tx_id,
6050                        },
6051                    })
6052                }
6053                0x63134d53772916a1 => {
6054                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6055                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpMulticastTtlRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6056                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastTtlRequest>(&header, _body_bytes, handles, &mut req)?;
6057                    let control_handle = BaseDatagramSocketControlHandle {
6058                        inner: this.inner.clone(),
6059                    };
6060                    Ok(BaseDatagramSocketRequest::SetIpMulticastTtl {value: req.value,
6061
6062                        responder: BaseDatagramSocketSetIpMulticastTtlResponder {
6063                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6064                            tx_id: header.tx_id,
6065                        },
6066                    })
6067                }
6068                0x4665cd378f39e1a => {
6069                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6070                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6071                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6072                    let control_handle = BaseDatagramSocketControlHandle {
6073                        inner: this.inner.clone(),
6074                    };
6075                    Ok(BaseDatagramSocketRequest::GetIpMulticastTtl {
6076                        responder: BaseDatagramSocketGetIpMulticastTtlResponder {
6077                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6078                            tx_id: header.tx_id,
6079                        },
6080                    })
6081                }
6082                0x20c55c11f00943ea => {
6083                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6084                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpMulticastLoopbackRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6085                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastLoopbackRequest>(&header, _body_bytes, handles, &mut req)?;
6086                    let control_handle = BaseDatagramSocketControlHandle {
6087                        inner: this.inner.clone(),
6088                    };
6089                    Ok(BaseDatagramSocketRequest::SetIpMulticastLoopback {value: req.value,
6090
6091                        responder: BaseDatagramSocketSetIpMulticastLoopbackResponder {
6092                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6093                            tx_id: header.tx_id,
6094                        },
6095                    })
6096                }
6097                0x3b6b26ff558298f2 => {
6098                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6099                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6100                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6101                    let control_handle = BaseDatagramSocketControlHandle {
6102                        inner: this.inner.clone(),
6103                    };
6104                    Ok(BaseDatagramSocketRequest::GetIpMulticastLoopback {
6105                        responder: BaseDatagramSocketGetIpMulticastLoopbackResponder {
6106                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6107                            tx_id: header.tx_id,
6108                        },
6109                    })
6110                }
6111                0x76bc7df115a3b4d0 => {
6112                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6113                    let mut req = fidl::new_empty!(BaseNetworkSocketAddIpMembershipRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6114                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketAddIpMembershipRequest>(&header, _body_bytes, handles, &mut req)?;
6115                    let control_handle = BaseDatagramSocketControlHandle {
6116                        inner: this.inner.clone(),
6117                    };
6118                    Ok(BaseDatagramSocketRequest::AddIpMembership {membership: req.membership,
6119
6120                        responder: BaseDatagramSocketAddIpMembershipResponder {
6121                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6122                            tx_id: header.tx_id,
6123                        },
6124                    })
6125                }
6126                0x2888f3099188d03 => {
6127                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6128                    let mut req = fidl::new_empty!(BaseNetworkSocketDropIpMembershipRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6129                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketDropIpMembershipRequest>(&header, _body_bytes, handles, &mut req)?;
6130                    let control_handle = BaseDatagramSocketControlHandle {
6131                        inner: this.inner.clone(),
6132                    };
6133                    Ok(BaseDatagramSocketRequest::DropIpMembership {membership: req.membership,
6134
6135                        responder: BaseDatagramSocketDropIpMembershipResponder {
6136                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6137                            tx_id: header.tx_id,
6138                        },
6139                    })
6140                }
6141                0x1ae532b0c066e3a0 => {
6142                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6143                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpTransparentRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6144                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTransparentRequest>(&header, _body_bytes, handles, &mut req)?;
6145                    let control_handle = BaseDatagramSocketControlHandle {
6146                        inner: this.inner.clone(),
6147                    };
6148                    Ok(BaseDatagramSocketRequest::SetIpTransparent {value: req.value,
6149
6150                        responder: BaseDatagramSocketSetIpTransparentResponder {
6151                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6152                            tx_id: header.tx_id,
6153                        },
6154                    })
6155                }
6156                0x51d43695962ebfb5 => {
6157                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6158                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6159                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6160                    let control_handle = BaseDatagramSocketControlHandle {
6161                        inner: this.inner.clone(),
6162                    };
6163                    Ok(BaseDatagramSocketRequest::GetIpTransparent {
6164                        responder: BaseDatagramSocketGetIpTransparentResponder {
6165                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6166                            tx_id: header.tx_id,
6167                        },
6168                    })
6169                }
6170                0x4722b4ce52f7840 => {
6171                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6172                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6173                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest>(&header, _body_bytes, handles, &mut req)?;
6174                    let control_handle = BaseDatagramSocketControlHandle {
6175                        inner: this.inner.clone(),
6176                    };
6177                    Ok(BaseDatagramSocketRequest::SetIpReceiveOriginalDestinationAddress {value: req.value,
6178
6179                        responder: BaseDatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
6180                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6181                            tx_id: header.tx_id,
6182                        },
6183                    })
6184                }
6185                0x2a0e7dc5d6bfdfe9 => {
6186                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6187                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6188                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6189                    let control_handle = BaseDatagramSocketControlHandle {
6190                        inner: this.inner.clone(),
6191                    };
6192                    Ok(BaseDatagramSocketRequest::GetIpReceiveOriginalDestinationAddress {
6193                        responder: BaseDatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
6194                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6195                            tx_id: header.tx_id,
6196                        },
6197                    })
6198                }
6199                0x7c94727acb4ea4b3 => {
6200                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6201                    let mut req = fidl::new_empty!(BaseNetworkSocketAddIpv6MembershipRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6202                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketAddIpv6MembershipRequest>(&header, _body_bytes, handles, &mut req)?;
6203                    let control_handle = BaseDatagramSocketControlHandle {
6204                        inner: this.inner.clone(),
6205                    };
6206                    Ok(BaseDatagramSocketRequest::AddIpv6Membership {membership: req.membership,
6207
6208                        responder: BaseDatagramSocketAddIpv6MembershipResponder {
6209                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6210                            tx_id: header.tx_id,
6211                        },
6212                    })
6213                }
6214                0x42104c70ccaba304 => {
6215                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6216                    let mut req = fidl::new_empty!(BaseNetworkSocketDropIpv6MembershipRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6217                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketDropIpv6MembershipRequest>(&header, _body_bytes, handles, &mut req)?;
6218                    let control_handle = BaseDatagramSocketControlHandle {
6219                        inner: this.inner.clone(),
6220                    };
6221                    Ok(BaseDatagramSocketRequest::DropIpv6Membership {membership: req.membership,
6222
6223                        responder: BaseDatagramSocketDropIpv6MembershipResponder {
6224                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6225                            tx_id: header.tx_id,
6226                        },
6227                    })
6228                }
6229                0x135f76db3774ab3b => {
6230                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6231                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6MulticastInterfaceRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6232                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastInterfaceRequest>(&header, _body_bytes, handles, &mut req)?;
6233                    let control_handle = BaseDatagramSocketControlHandle {
6234                        inner: this.inner.clone(),
6235                    };
6236                    Ok(BaseDatagramSocketRequest::SetIpv6MulticastInterface {value: req.value,
6237
6238                        responder: BaseDatagramSocketSetIpv6MulticastInterfaceResponder {
6239                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6240                            tx_id: header.tx_id,
6241                        },
6242                    })
6243                }
6244                0x1f26fcdd348f1882 => {
6245                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6246                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6247                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6248                    let control_handle = BaseDatagramSocketControlHandle {
6249                        inner: this.inner.clone(),
6250                    };
6251                    Ok(BaseDatagramSocketRequest::GetIpv6MulticastInterface {
6252                        responder: BaseDatagramSocketGetIpv6MulticastInterfaceResponder {
6253                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6254                            tx_id: header.tx_id,
6255                        },
6256                    })
6257                }
6258                0x157d51e98f462859 => {
6259                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6260                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6UnicastHopsRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6261                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6UnicastHopsRequest>(&header, _body_bytes, handles, &mut req)?;
6262                    let control_handle = BaseDatagramSocketControlHandle {
6263                        inner: this.inner.clone(),
6264                    };
6265                    Ok(BaseDatagramSocketRequest::SetIpv6UnicastHops {value: req.value,
6266
6267                        responder: BaseDatagramSocketSetIpv6UnicastHopsResponder {
6268                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6269                            tx_id: header.tx_id,
6270                        },
6271                    })
6272                }
6273                0x21f4641cad8bd8d2 => {
6274                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6275                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6276                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6277                    let control_handle = BaseDatagramSocketControlHandle {
6278                        inner: this.inner.clone(),
6279                    };
6280                    Ok(BaseDatagramSocketRequest::GetIpv6UnicastHops {
6281                        responder: BaseDatagramSocketGetIpv6UnicastHopsResponder {
6282                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6283                            tx_id: header.tx_id,
6284                        },
6285                    })
6286                }
6287                0x5c24808ed2e84a1e => {
6288                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6289                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6ReceiveHopLimitRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6290                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceiveHopLimitRequest>(&header, _body_bytes, handles, &mut req)?;
6291                    let control_handle = BaseDatagramSocketControlHandle {
6292                        inner: this.inner.clone(),
6293                    };
6294                    Ok(BaseDatagramSocketRequest::SetIpv6ReceiveHopLimit {value: req.value,
6295
6296                        responder: BaseDatagramSocketSetIpv6ReceiveHopLimitResponder {
6297                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6298                            tx_id: header.tx_id,
6299                        },
6300                    })
6301                }
6302                0x341e06689885b4c0 => {
6303                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6304                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6305                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6306                    let control_handle = BaseDatagramSocketControlHandle {
6307                        inner: this.inner.clone(),
6308                    };
6309                    Ok(BaseDatagramSocketRequest::GetIpv6ReceiveHopLimit {
6310                        responder: BaseDatagramSocketGetIpv6ReceiveHopLimitResponder {
6311                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6312                            tx_id: header.tx_id,
6313                        },
6314                    })
6315                }
6316                0x25b9cd4d181f82c1 => {
6317                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6318                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6MulticastHopsRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6319                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastHopsRequest>(&header, _body_bytes, handles, &mut req)?;
6320                    let control_handle = BaseDatagramSocketControlHandle {
6321                        inner: this.inner.clone(),
6322                    };
6323                    Ok(BaseDatagramSocketRequest::SetIpv6MulticastHops {value: req.value,
6324
6325                        responder: BaseDatagramSocketSetIpv6MulticastHopsResponder {
6326                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6327                            tx_id: header.tx_id,
6328                        },
6329                    })
6330                }
6331                0x52916948a365012a => {
6332                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6333                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6334                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6335                    let control_handle = BaseDatagramSocketControlHandle {
6336                        inner: this.inner.clone(),
6337                    };
6338                    Ok(BaseDatagramSocketRequest::GetIpv6MulticastHops {
6339                        responder: BaseDatagramSocketGetIpv6MulticastHopsResponder {
6340                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6341                            tx_id: header.tx_id,
6342                        },
6343                    })
6344                }
6345                0x55701c409ff41b40 => {
6346                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6347                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6MulticastLoopbackRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6348                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastLoopbackRequest>(&header, _body_bytes, handles, &mut req)?;
6349                    let control_handle = BaseDatagramSocketControlHandle {
6350                        inner: this.inner.clone(),
6351                    };
6352                    Ok(BaseDatagramSocketRequest::SetIpv6MulticastLoopback {value: req.value,
6353
6354                        responder: BaseDatagramSocketSetIpv6MulticastLoopbackResponder {
6355                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6356                            tx_id: header.tx_id,
6357                        },
6358                    })
6359                }
6360                0x4415b701fde319c3 => {
6361                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6362                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6363                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6364                    let control_handle = BaseDatagramSocketControlHandle {
6365                        inner: this.inner.clone(),
6366                    };
6367                    Ok(BaseDatagramSocketRequest::GetIpv6MulticastLoopback {
6368                        responder: BaseDatagramSocketGetIpv6MulticastLoopbackResponder {
6369                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6370                            tx_id: header.tx_id,
6371                        },
6372                    })
6373                }
6374                0x4873f1364758cbba => {
6375                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6376                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6OnlyRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6377                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6OnlyRequest>(&header, _body_bytes, handles, &mut req)?;
6378                    let control_handle = BaseDatagramSocketControlHandle {
6379                        inner: this.inner.clone(),
6380                    };
6381                    Ok(BaseDatagramSocketRequest::SetIpv6Only {value: req.value,
6382
6383                        responder: BaseDatagramSocketSetIpv6OnlyResponder {
6384                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6385                            tx_id: header.tx_id,
6386                        },
6387                    })
6388                }
6389                0x4aa3340a1a26b89c => {
6390                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6391                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6392                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6393                    let control_handle = BaseDatagramSocketControlHandle {
6394                        inner: this.inner.clone(),
6395                    };
6396                    Ok(BaseDatagramSocketRequest::GetIpv6Only {
6397                        responder: BaseDatagramSocketGetIpv6OnlyResponder {
6398                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6399                            tx_id: header.tx_id,
6400                        },
6401                    })
6402                }
6403                0x58f07c8788d099a0 => {
6404                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6405                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6406                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest>(&header, _body_bytes, handles, &mut req)?;
6407                    let control_handle = BaseDatagramSocketControlHandle {
6408                        inner: this.inner.clone(),
6409                    };
6410                    Ok(BaseDatagramSocketRequest::SetIpv6ReceiveTrafficClass {value: req.value,
6411
6412                        responder: BaseDatagramSocketSetIpv6ReceiveTrafficClassResponder {
6413                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6414                            tx_id: header.tx_id,
6415                        },
6416                    })
6417                }
6418                0x2e334df1da553ffa => {
6419                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6420                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6421                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6422                    let control_handle = BaseDatagramSocketControlHandle {
6423                        inner: this.inner.clone(),
6424                    };
6425                    Ok(BaseDatagramSocketRequest::GetIpv6ReceiveTrafficClass {
6426                        responder: BaseDatagramSocketGetIpv6ReceiveTrafficClassResponder {
6427                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6428                            tx_id: header.tx_id,
6429                        },
6430                    })
6431                }
6432                0x6af077800c5a0b4f => {
6433                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6434                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6TrafficClassRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6435                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6TrafficClassRequest>(&header, _body_bytes, handles, &mut req)?;
6436                    let control_handle = BaseDatagramSocketControlHandle {
6437                        inner: this.inner.clone(),
6438                    };
6439                    Ok(BaseDatagramSocketRequest::SetIpv6TrafficClass {value: req.value,
6440
6441                        responder: BaseDatagramSocketSetIpv6TrafficClassResponder {
6442                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6443                            tx_id: header.tx_id,
6444                        },
6445                    })
6446                }
6447                0x6baf6eed8fc2f04 => {
6448                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6449                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6450                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6451                    let control_handle = BaseDatagramSocketControlHandle {
6452                        inner: this.inner.clone(),
6453                    };
6454                    Ok(BaseDatagramSocketRequest::GetIpv6TrafficClass {
6455                        responder: BaseDatagramSocketGetIpv6TrafficClassResponder {
6456                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6457                            tx_id: header.tx_id,
6458                        },
6459                    })
6460                }
6461                0x19259775b1a92768 => {
6462                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6463                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6ReceivePacketInfoRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6464                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceivePacketInfoRequest>(&header, _body_bytes, handles, &mut req)?;
6465                    let control_handle = BaseDatagramSocketControlHandle {
6466                        inner: this.inner.clone(),
6467                    };
6468                    Ok(BaseDatagramSocketRequest::SetIpv6ReceivePacketInfo {value: req.value,
6469
6470                        responder: BaseDatagramSocketSetIpv6ReceivePacketInfoResponder {
6471                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6472                            tx_id: header.tx_id,
6473                        },
6474                    })
6475                }
6476                0x7acd4a2775baec75 => {
6477                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6478                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6479                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6480                    let control_handle = BaseDatagramSocketControlHandle {
6481                        inner: this.inner.clone(),
6482                    };
6483                    Ok(BaseDatagramSocketRequest::GetIpv6ReceivePacketInfo {
6484                        responder: BaseDatagramSocketGetIpv6ReceivePacketInfoResponder {
6485                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6486                            tx_id: header.tx_id,
6487                        },
6488                    })
6489                }
6490                0x38bf28f0dafdbac0 => {
6491                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6492                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6493                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6494                    let control_handle = BaseDatagramSocketControlHandle {
6495                        inner: this.inner.clone(),
6496                    };
6497                    Ok(BaseDatagramSocketRequest::GetOriginalDestination {
6498                        responder: BaseDatagramSocketGetOriginalDestinationResponder {
6499                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6500                            tx_id: header.tx_id,
6501                        },
6502                    })
6503                }
6504                0x48aa0a1f6a32d2ed => {
6505                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6506                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6507                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6508                    let control_handle = BaseDatagramSocketControlHandle {
6509                        inner: this.inner.clone(),
6510                    };
6511                    Ok(BaseDatagramSocketRequest::GetInfo {
6512                        responder: BaseDatagramSocketGetInfoResponder {
6513                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6514                            tx_id: header.tx_id,
6515                        },
6516                    })
6517                }
6518                _ => Err(fidl::Error::UnknownOrdinal {
6519                    ordinal: header.ordinal,
6520                    protocol_name: <BaseDatagramSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
6521                }),
6522            }))
6523            },
6524        )
6525    }
6526}
6527
6528/// Base protocol shared by all datagram sockets.
6529///
6530/// Complete implementations of a datagram socket should compose this protocol.
6531#[derive(Debug)]
6532pub enum BaseDatagramSocketRequest {
6533    Clone {
6534        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
6535        control_handle: BaseDatagramSocketControlHandle,
6536    },
6537    /// Terminates the connection.
6538    ///
6539    /// After calling `Close`, the client must not send any other requests.
6540    ///
6541    /// Servers, after sending the status response, should close the connection
6542    /// regardless of status and without sending an epitaph.
6543    ///
6544    /// Closing the client end of the channel should be semantically equivalent
6545    /// to calling `Close` without knowing when the close has completed or its
6546    /// status.
6547    Close {
6548        responder: BaseDatagramSocketCloseResponder,
6549    },
6550    Query {
6551        responder: BaseDatagramSocketQueryResponder,
6552    },
6553    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
6554    SetReuseAddress {
6555        value: bool,
6556        responder: BaseDatagramSocketSetReuseAddressResponder,
6557    },
6558    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
6559    GetReuseAddress {
6560        responder: BaseDatagramSocketGetReuseAddressResponder,
6561    },
6562    /// Get `SOL_SOCKET` -> `SO_ERROR`.
6563    /// Returns the last error if there is an error set on the socket.
6564    GetError {
6565        responder: BaseDatagramSocketGetErrorResponder,
6566    },
6567    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
6568    SetBroadcast {
6569        value: bool,
6570        responder: BaseDatagramSocketSetBroadcastResponder,
6571    },
6572    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
6573    GetBroadcast {
6574        responder: BaseDatagramSocketGetBroadcastResponder,
6575    },
6576    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
6577    SetSendBuffer {
6578        value_bytes: u64,
6579        responder: BaseDatagramSocketSetSendBufferResponder,
6580    },
6581    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
6582    GetSendBuffer {
6583        responder: BaseDatagramSocketGetSendBufferResponder,
6584    },
6585    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
6586    SetReceiveBuffer {
6587        value_bytes: u64,
6588        responder: BaseDatagramSocketSetReceiveBufferResponder,
6589    },
6590    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
6591    GetReceiveBuffer {
6592        responder: BaseDatagramSocketGetReceiveBufferResponder,
6593    },
6594    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
6595    SetKeepAlive {
6596        value: bool,
6597        responder: BaseDatagramSocketSetKeepAliveResponder,
6598    },
6599    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
6600    GetKeepAlive {
6601        responder: BaseDatagramSocketGetKeepAliveResponder,
6602    },
6603    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
6604    SetOutOfBandInline {
6605        value: bool,
6606        responder: BaseDatagramSocketSetOutOfBandInlineResponder,
6607    },
6608    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
6609    GetOutOfBandInline {
6610        responder: BaseDatagramSocketGetOutOfBandInlineResponder,
6611    },
6612    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
6613    SetNoCheck {
6614        value: bool,
6615        responder: BaseDatagramSocketSetNoCheckResponder,
6616    },
6617    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
6618    GetNoCheck {
6619        responder: BaseDatagramSocketGetNoCheckResponder,
6620    },
6621    /// Set `SOL_SOCKET` -> `SO_LINGER`.
6622    SetLinger {
6623        linger: bool,
6624        length_secs: u32,
6625        responder: BaseDatagramSocketSetLingerResponder,
6626    },
6627    /// Get `SOL_SOCKET` -> `SO_LINGER`.
6628    GetLinger {
6629        responder: BaseDatagramSocketGetLingerResponder,
6630    },
6631    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
6632    SetReusePort {
6633        value: bool,
6634        responder: BaseDatagramSocketSetReusePortResponder,
6635    },
6636    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
6637    GetReusePort {
6638        responder: BaseDatagramSocketGetReusePortResponder,
6639    },
6640    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
6641    GetAcceptConn {
6642        responder: BaseDatagramSocketGetAcceptConnResponder,
6643    },
6644    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
6645    SetBindToDevice {
6646        value: String,
6647        responder: BaseDatagramSocketSetBindToDeviceResponder,
6648    },
6649    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
6650    GetBindToDevice {
6651        responder: BaseDatagramSocketGetBindToDeviceResponder,
6652    },
6653    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
6654    /// If `value` is 0, this clears the bound interface.
6655    SetBindToInterfaceIndex {
6656        value: u64,
6657        responder: BaseDatagramSocketSetBindToInterfaceIndexResponder,
6658    },
6659    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
6660    GetBindToInterfaceIndex {
6661        responder: BaseDatagramSocketGetBindToInterfaceIndexResponder,
6662    },
6663    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
6664    SetTimestamp {
6665        value: TimestampOption,
6666        responder: BaseDatagramSocketSetTimestampResponder,
6667    },
6668    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
6669    GetTimestamp {
6670        responder: BaseDatagramSocketGetTimestampResponder,
6671    },
6672    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
6673    /// unlike the standard SO_MARK, this API has multiple mark domains and each
6674    /// mark can be set independently in each domain.
6675    SetMark {
6676        domain: fidl_fuchsia_net::MarkDomain,
6677        mark: OptionalUint32,
6678        responder: BaseDatagramSocketSetMarkResponder,
6679    },
6680    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
6681    /// unlike the standard SO_MARK, this API has multiple mark domains and each
6682    /// mark can be retrieved independently in each domain.
6683    GetMark {
6684        domain: fidl_fuchsia_net::MarkDomain,
6685        responder: BaseDatagramSocketGetMarkResponder,
6686    },
6687    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
6688    GetCookie {
6689        responder: BaseDatagramSocketGetCookieResponder,
6690    },
6691    /// Sets the local address used for the socket.
6692    Bind {
6693        addr: fidl_fuchsia_net::SocketAddress,
6694        responder: BaseDatagramSocketBindResponder,
6695    },
6696    /// Initiates a connection to a remote address.
6697    Connect {
6698        addr: fidl_fuchsia_net::SocketAddress,
6699        responder: BaseDatagramSocketConnectResponder,
6700    },
6701    /// Clears connection information from this socket.
6702    Disconnect {
6703        responder: BaseDatagramSocketDisconnectResponder,
6704    },
6705    /// Retrieves the local socket address.
6706    GetSockName {
6707        responder: BaseDatagramSocketGetSockNameResponder,
6708    },
6709    /// Retrieves the remote socket address.
6710    GetPeerName {
6711        responder: BaseDatagramSocketGetPeerNameResponder,
6712    },
6713    /// Shuts down part of the socket.
6714    Shutdown {
6715        mode: ShutdownMode,
6716        responder: BaseDatagramSocketShutdownResponder,
6717    },
6718    /// Set `SOL_IP` -> `IP_TOS`.
6719    SetIpTypeOfService {
6720        value: u8,
6721        responder: BaseDatagramSocketSetIpTypeOfServiceResponder,
6722    },
6723    /// Get `SOL_IP` -> `IP_TOS`.
6724    GetIpTypeOfService {
6725        responder: BaseDatagramSocketGetIpTypeOfServiceResponder,
6726    },
6727    /// Set `SOL_IP` -> `IP_TTL`.
6728    SetIpTtl {
6729        value: OptionalUint8,
6730        responder: BaseDatagramSocketSetIpTtlResponder,
6731    },
6732    /// Get `SOL_IP` -> `IP_TTL`.
6733    GetIpTtl {
6734        responder: BaseDatagramSocketGetIpTtlResponder,
6735    },
6736    /// Set `SOL_IP` -> `IP_PKTINFO`.
6737    SetIpPacketInfo {
6738        value: bool,
6739        responder: BaseDatagramSocketSetIpPacketInfoResponder,
6740    },
6741    /// Get `SOL_IP` -> `IP_PKTINFO`.
6742    GetIpPacketInfo {
6743        responder: BaseDatagramSocketGetIpPacketInfoResponder,
6744    },
6745    /// Set `SOL_IP` -> `IP_RECVTOS`.
6746    SetIpReceiveTypeOfService {
6747        value: bool,
6748        responder: BaseDatagramSocketSetIpReceiveTypeOfServiceResponder,
6749    },
6750    /// Get `SOL_IP` -> `IP_RECVTOS`.
6751    GetIpReceiveTypeOfService {
6752        responder: BaseDatagramSocketGetIpReceiveTypeOfServiceResponder,
6753    },
6754    /// Set `SOL_IP` -> `IP_RECVTTL`.
6755    SetIpReceiveTtl {
6756        value: bool,
6757        responder: BaseDatagramSocketSetIpReceiveTtlResponder,
6758    },
6759    /// Get `SOL_IP` -> `IP_RECVTTL`.
6760    GetIpReceiveTtl {
6761        responder: BaseDatagramSocketGetIpReceiveTtlResponder,
6762    },
6763    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
6764    SetIpMulticastInterface {
6765        iface: u64,
6766        address: fidl_fuchsia_net::Ipv4Address,
6767        responder: BaseDatagramSocketSetIpMulticastInterfaceResponder,
6768    },
6769    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
6770    GetIpMulticastInterface {
6771        responder: BaseDatagramSocketGetIpMulticastInterfaceResponder,
6772    },
6773    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
6774    SetIpMulticastTtl {
6775        value: OptionalUint8,
6776        responder: BaseDatagramSocketSetIpMulticastTtlResponder,
6777    },
6778    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
6779    GetIpMulticastTtl {
6780        responder: BaseDatagramSocketGetIpMulticastTtlResponder,
6781    },
6782    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
6783    SetIpMulticastLoopback {
6784        value: bool,
6785        responder: BaseDatagramSocketSetIpMulticastLoopbackResponder,
6786    },
6787    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
6788    GetIpMulticastLoopback {
6789        responder: BaseDatagramSocketGetIpMulticastLoopbackResponder,
6790    },
6791    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
6792    AddIpMembership {
6793        membership: IpMulticastMembership,
6794        responder: BaseDatagramSocketAddIpMembershipResponder,
6795    },
6796    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
6797    DropIpMembership {
6798        membership: IpMulticastMembership,
6799        responder: BaseDatagramSocketDropIpMembershipResponder,
6800    },
6801    /// Set `SOL_IP` -> `IP_TRANSPARENT`
6802    SetIpTransparent {
6803        value: bool,
6804        responder: BaseDatagramSocketSetIpTransparentResponder,
6805    },
6806    /// Get `SOL_IP` -> `IP_TRANSPARENT`
6807    GetIpTransparent {
6808        responder: BaseDatagramSocketGetIpTransparentResponder,
6809    },
6810    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
6811    SetIpReceiveOriginalDestinationAddress {
6812        value: bool,
6813        responder: BaseDatagramSocketSetIpReceiveOriginalDestinationAddressResponder,
6814    },
6815    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
6816    GetIpReceiveOriginalDestinationAddress {
6817        responder: BaseDatagramSocketGetIpReceiveOriginalDestinationAddressResponder,
6818    },
6819    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
6820    AddIpv6Membership {
6821        membership: Ipv6MulticastMembership,
6822        responder: BaseDatagramSocketAddIpv6MembershipResponder,
6823    },
6824    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
6825    DropIpv6Membership {
6826        membership: Ipv6MulticastMembership,
6827        responder: BaseDatagramSocketDropIpv6MembershipResponder,
6828    },
6829    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
6830    SetIpv6MulticastInterface {
6831        value: u64,
6832        responder: BaseDatagramSocketSetIpv6MulticastInterfaceResponder,
6833    },
6834    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
6835    GetIpv6MulticastInterface {
6836        responder: BaseDatagramSocketGetIpv6MulticastInterfaceResponder,
6837    },
6838    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
6839    SetIpv6UnicastHops {
6840        value: OptionalUint8,
6841        responder: BaseDatagramSocketSetIpv6UnicastHopsResponder,
6842    },
6843    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
6844    GetIpv6UnicastHops {
6845        responder: BaseDatagramSocketGetIpv6UnicastHopsResponder,
6846    },
6847    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
6848    SetIpv6ReceiveHopLimit {
6849        value: bool,
6850        responder: BaseDatagramSocketSetIpv6ReceiveHopLimitResponder,
6851    },
6852    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
6853    GetIpv6ReceiveHopLimit {
6854        responder: BaseDatagramSocketGetIpv6ReceiveHopLimitResponder,
6855    },
6856    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
6857    SetIpv6MulticastHops {
6858        value: OptionalUint8,
6859        responder: BaseDatagramSocketSetIpv6MulticastHopsResponder,
6860    },
6861    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
6862    GetIpv6MulticastHops {
6863        responder: BaseDatagramSocketGetIpv6MulticastHopsResponder,
6864    },
6865    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
6866    SetIpv6MulticastLoopback {
6867        value: bool,
6868        responder: BaseDatagramSocketSetIpv6MulticastLoopbackResponder,
6869    },
6870    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
6871    GetIpv6MulticastLoopback {
6872        responder: BaseDatagramSocketGetIpv6MulticastLoopbackResponder,
6873    },
6874    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
6875    SetIpv6Only {
6876        value: bool,
6877        responder: BaseDatagramSocketSetIpv6OnlyResponder,
6878    },
6879    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
6880    GetIpv6Only {
6881        responder: BaseDatagramSocketGetIpv6OnlyResponder,
6882    },
6883    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
6884    SetIpv6ReceiveTrafficClass {
6885        value: bool,
6886        responder: BaseDatagramSocketSetIpv6ReceiveTrafficClassResponder,
6887    },
6888    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
6889    GetIpv6ReceiveTrafficClass {
6890        responder: BaseDatagramSocketGetIpv6ReceiveTrafficClassResponder,
6891    },
6892    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
6893    SetIpv6TrafficClass {
6894        value: OptionalUint8,
6895        responder: BaseDatagramSocketSetIpv6TrafficClassResponder,
6896    },
6897    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
6898    GetIpv6TrafficClass {
6899        responder: BaseDatagramSocketGetIpv6TrafficClassResponder,
6900    },
6901    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
6902    SetIpv6ReceivePacketInfo {
6903        value: bool,
6904        responder: BaseDatagramSocketSetIpv6ReceivePacketInfoResponder,
6905    },
6906    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
6907    GetIpv6ReceivePacketInfo {
6908        responder: BaseDatagramSocketGetIpv6ReceivePacketInfoResponder,
6909    },
6910    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
6911    GetOriginalDestination {
6912        responder: BaseDatagramSocketGetOriginalDestinationResponder,
6913    },
6914    /// Retrieves creation information from the socket.
6915    ///
6916    /// - response `domain` the socket's associated domain.
6917    /// - response `proto` the socket's associated protocol.
6918    GetInfo {
6919        responder: BaseDatagramSocketGetInfoResponder,
6920    },
6921}
6922
6923impl BaseDatagramSocketRequest {
6924    #[allow(irrefutable_let_patterns)]
6925    pub fn into_clone(
6926        self,
6927    ) -> Option<(
6928        fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
6929        BaseDatagramSocketControlHandle,
6930    )> {
6931        if let BaseDatagramSocketRequest::Clone { request, control_handle } = self {
6932            Some((request, control_handle))
6933        } else {
6934            None
6935        }
6936    }
6937
6938    #[allow(irrefutable_let_patterns)]
6939    pub fn into_close(self) -> Option<(BaseDatagramSocketCloseResponder)> {
6940        if let BaseDatagramSocketRequest::Close { responder } = self {
6941            Some((responder))
6942        } else {
6943            None
6944        }
6945    }
6946
6947    #[allow(irrefutable_let_patterns)]
6948    pub fn into_query(self) -> Option<(BaseDatagramSocketQueryResponder)> {
6949        if let BaseDatagramSocketRequest::Query { responder } = self {
6950            Some((responder))
6951        } else {
6952            None
6953        }
6954    }
6955
6956    #[allow(irrefutable_let_patterns)]
6957    pub fn into_set_reuse_address(
6958        self,
6959    ) -> Option<(bool, BaseDatagramSocketSetReuseAddressResponder)> {
6960        if let BaseDatagramSocketRequest::SetReuseAddress { value, responder } = self {
6961            Some((value, responder))
6962        } else {
6963            None
6964        }
6965    }
6966
6967    #[allow(irrefutable_let_patterns)]
6968    pub fn into_get_reuse_address(self) -> Option<(BaseDatagramSocketGetReuseAddressResponder)> {
6969        if let BaseDatagramSocketRequest::GetReuseAddress { responder } = self {
6970            Some((responder))
6971        } else {
6972            None
6973        }
6974    }
6975
6976    #[allow(irrefutable_let_patterns)]
6977    pub fn into_get_error(self) -> Option<(BaseDatagramSocketGetErrorResponder)> {
6978        if let BaseDatagramSocketRequest::GetError { responder } = self {
6979            Some((responder))
6980        } else {
6981            None
6982        }
6983    }
6984
6985    #[allow(irrefutable_let_patterns)]
6986    pub fn into_set_broadcast(self) -> Option<(bool, BaseDatagramSocketSetBroadcastResponder)> {
6987        if let BaseDatagramSocketRequest::SetBroadcast { value, responder } = self {
6988            Some((value, responder))
6989        } else {
6990            None
6991        }
6992    }
6993
6994    #[allow(irrefutable_let_patterns)]
6995    pub fn into_get_broadcast(self) -> Option<(BaseDatagramSocketGetBroadcastResponder)> {
6996        if let BaseDatagramSocketRequest::GetBroadcast { responder } = self {
6997            Some((responder))
6998        } else {
6999            None
7000        }
7001    }
7002
7003    #[allow(irrefutable_let_patterns)]
7004    pub fn into_set_send_buffer(self) -> Option<(u64, BaseDatagramSocketSetSendBufferResponder)> {
7005        if let BaseDatagramSocketRequest::SetSendBuffer { value_bytes, responder } = self {
7006            Some((value_bytes, responder))
7007        } else {
7008            None
7009        }
7010    }
7011
7012    #[allow(irrefutable_let_patterns)]
7013    pub fn into_get_send_buffer(self) -> Option<(BaseDatagramSocketGetSendBufferResponder)> {
7014        if let BaseDatagramSocketRequest::GetSendBuffer { responder } = self {
7015            Some((responder))
7016        } else {
7017            None
7018        }
7019    }
7020
7021    #[allow(irrefutable_let_patterns)]
7022    pub fn into_set_receive_buffer(
7023        self,
7024    ) -> Option<(u64, BaseDatagramSocketSetReceiveBufferResponder)> {
7025        if let BaseDatagramSocketRequest::SetReceiveBuffer { value_bytes, responder } = self {
7026            Some((value_bytes, responder))
7027        } else {
7028            None
7029        }
7030    }
7031
7032    #[allow(irrefutable_let_patterns)]
7033    pub fn into_get_receive_buffer(self) -> Option<(BaseDatagramSocketGetReceiveBufferResponder)> {
7034        if let BaseDatagramSocketRequest::GetReceiveBuffer { responder } = self {
7035            Some((responder))
7036        } else {
7037            None
7038        }
7039    }
7040
7041    #[allow(irrefutable_let_patterns)]
7042    pub fn into_set_keep_alive(self) -> Option<(bool, BaseDatagramSocketSetKeepAliveResponder)> {
7043        if let BaseDatagramSocketRequest::SetKeepAlive { value, responder } = self {
7044            Some((value, responder))
7045        } else {
7046            None
7047        }
7048    }
7049
7050    #[allow(irrefutable_let_patterns)]
7051    pub fn into_get_keep_alive(self) -> Option<(BaseDatagramSocketGetKeepAliveResponder)> {
7052        if let BaseDatagramSocketRequest::GetKeepAlive { responder } = self {
7053            Some((responder))
7054        } else {
7055            None
7056        }
7057    }
7058
7059    #[allow(irrefutable_let_patterns)]
7060    pub fn into_set_out_of_band_inline(
7061        self,
7062    ) -> Option<(bool, BaseDatagramSocketSetOutOfBandInlineResponder)> {
7063        if let BaseDatagramSocketRequest::SetOutOfBandInline { value, responder } = self {
7064            Some((value, responder))
7065        } else {
7066            None
7067        }
7068    }
7069
7070    #[allow(irrefutable_let_patterns)]
7071    pub fn into_get_out_of_band_inline(
7072        self,
7073    ) -> Option<(BaseDatagramSocketGetOutOfBandInlineResponder)> {
7074        if let BaseDatagramSocketRequest::GetOutOfBandInline { responder } = self {
7075            Some((responder))
7076        } else {
7077            None
7078        }
7079    }
7080
7081    #[allow(irrefutable_let_patterns)]
7082    pub fn into_set_no_check(self) -> Option<(bool, BaseDatagramSocketSetNoCheckResponder)> {
7083        if let BaseDatagramSocketRequest::SetNoCheck { value, responder } = self {
7084            Some((value, responder))
7085        } else {
7086            None
7087        }
7088    }
7089
7090    #[allow(irrefutable_let_patterns)]
7091    pub fn into_get_no_check(self) -> Option<(BaseDatagramSocketGetNoCheckResponder)> {
7092        if let BaseDatagramSocketRequest::GetNoCheck { responder } = self {
7093            Some((responder))
7094        } else {
7095            None
7096        }
7097    }
7098
7099    #[allow(irrefutable_let_patterns)]
7100    pub fn into_set_linger(self) -> Option<(bool, u32, BaseDatagramSocketSetLingerResponder)> {
7101        if let BaseDatagramSocketRequest::SetLinger { linger, length_secs, responder } = self {
7102            Some((linger, length_secs, responder))
7103        } else {
7104            None
7105        }
7106    }
7107
7108    #[allow(irrefutable_let_patterns)]
7109    pub fn into_get_linger(self) -> Option<(BaseDatagramSocketGetLingerResponder)> {
7110        if let BaseDatagramSocketRequest::GetLinger { responder } = self {
7111            Some((responder))
7112        } else {
7113            None
7114        }
7115    }
7116
7117    #[allow(irrefutable_let_patterns)]
7118    pub fn into_set_reuse_port(self) -> Option<(bool, BaseDatagramSocketSetReusePortResponder)> {
7119        if let BaseDatagramSocketRequest::SetReusePort { value, responder } = self {
7120            Some((value, responder))
7121        } else {
7122            None
7123        }
7124    }
7125
7126    #[allow(irrefutable_let_patterns)]
7127    pub fn into_get_reuse_port(self) -> Option<(BaseDatagramSocketGetReusePortResponder)> {
7128        if let BaseDatagramSocketRequest::GetReusePort { responder } = self {
7129            Some((responder))
7130        } else {
7131            None
7132        }
7133    }
7134
7135    #[allow(irrefutable_let_patterns)]
7136    pub fn into_get_accept_conn(self) -> Option<(BaseDatagramSocketGetAcceptConnResponder)> {
7137        if let BaseDatagramSocketRequest::GetAcceptConn { responder } = self {
7138            Some((responder))
7139        } else {
7140            None
7141        }
7142    }
7143
7144    #[allow(irrefutable_let_patterns)]
7145    pub fn into_set_bind_to_device(
7146        self,
7147    ) -> Option<(String, BaseDatagramSocketSetBindToDeviceResponder)> {
7148        if let BaseDatagramSocketRequest::SetBindToDevice { value, responder } = self {
7149            Some((value, responder))
7150        } else {
7151            None
7152        }
7153    }
7154
7155    #[allow(irrefutable_let_patterns)]
7156    pub fn into_get_bind_to_device(self) -> Option<(BaseDatagramSocketGetBindToDeviceResponder)> {
7157        if let BaseDatagramSocketRequest::GetBindToDevice { responder } = self {
7158            Some((responder))
7159        } else {
7160            None
7161        }
7162    }
7163
7164    #[allow(irrefutable_let_patterns)]
7165    pub fn into_set_bind_to_interface_index(
7166        self,
7167    ) -> Option<(u64, BaseDatagramSocketSetBindToInterfaceIndexResponder)> {
7168        if let BaseDatagramSocketRequest::SetBindToInterfaceIndex { value, responder } = self {
7169            Some((value, responder))
7170        } else {
7171            None
7172        }
7173    }
7174
7175    #[allow(irrefutable_let_patterns)]
7176    pub fn into_get_bind_to_interface_index(
7177        self,
7178    ) -> Option<(BaseDatagramSocketGetBindToInterfaceIndexResponder)> {
7179        if let BaseDatagramSocketRequest::GetBindToInterfaceIndex { responder } = self {
7180            Some((responder))
7181        } else {
7182            None
7183        }
7184    }
7185
7186    #[allow(irrefutable_let_patterns)]
7187    pub fn into_set_timestamp(
7188        self,
7189    ) -> Option<(TimestampOption, BaseDatagramSocketSetTimestampResponder)> {
7190        if let BaseDatagramSocketRequest::SetTimestamp { value, responder } = self {
7191            Some((value, responder))
7192        } else {
7193            None
7194        }
7195    }
7196
7197    #[allow(irrefutable_let_patterns)]
7198    pub fn into_get_timestamp(self) -> Option<(BaseDatagramSocketGetTimestampResponder)> {
7199        if let BaseDatagramSocketRequest::GetTimestamp { responder } = self {
7200            Some((responder))
7201        } else {
7202            None
7203        }
7204    }
7205
7206    #[allow(irrefutable_let_patterns)]
7207    pub fn into_set_mark(
7208        self,
7209    ) -> Option<(fidl_fuchsia_net::MarkDomain, OptionalUint32, BaseDatagramSocketSetMarkResponder)>
7210    {
7211        if let BaseDatagramSocketRequest::SetMark { domain, mark, responder } = self {
7212            Some((domain, mark, responder))
7213        } else {
7214            None
7215        }
7216    }
7217
7218    #[allow(irrefutable_let_patterns)]
7219    pub fn into_get_mark(
7220        self,
7221    ) -> Option<(fidl_fuchsia_net::MarkDomain, BaseDatagramSocketGetMarkResponder)> {
7222        if let BaseDatagramSocketRequest::GetMark { domain, responder } = self {
7223            Some((domain, responder))
7224        } else {
7225            None
7226        }
7227    }
7228
7229    #[allow(irrefutable_let_patterns)]
7230    pub fn into_get_cookie(self) -> Option<(BaseDatagramSocketGetCookieResponder)> {
7231        if let BaseDatagramSocketRequest::GetCookie { responder } = self {
7232            Some((responder))
7233        } else {
7234            None
7235        }
7236    }
7237
7238    #[allow(irrefutable_let_patterns)]
7239    pub fn into_bind(
7240        self,
7241    ) -> Option<(fidl_fuchsia_net::SocketAddress, BaseDatagramSocketBindResponder)> {
7242        if let BaseDatagramSocketRequest::Bind { addr, responder } = self {
7243            Some((addr, responder))
7244        } else {
7245            None
7246        }
7247    }
7248
7249    #[allow(irrefutable_let_patterns)]
7250    pub fn into_connect(
7251        self,
7252    ) -> Option<(fidl_fuchsia_net::SocketAddress, BaseDatagramSocketConnectResponder)> {
7253        if let BaseDatagramSocketRequest::Connect { addr, responder } = self {
7254            Some((addr, responder))
7255        } else {
7256            None
7257        }
7258    }
7259
7260    #[allow(irrefutable_let_patterns)]
7261    pub fn into_disconnect(self) -> Option<(BaseDatagramSocketDisconnectResponder)> {
7262        if let BaseDatagramSocketRequest::Disconnect { responder } = self {
7263            Some((responder))
7264        } else {
7265            None
7266        }
7267    }
7268
7269    #[allow(irrefutable_let_patterns)]
7270    pub fn into_get_sock_name(self) -> Option<(BaseDatagramSocketGetSockNameResponder)> {
7271        if let BaseDatagramSocketRequest::GetSockName { responder } = self {
7272            Some((responder))
7273        } else {
7274            None
7275        }
7276    }
7277
7278    #[allow(irrefutable_let_patterns)]
7279    pub fn into_get_peer_name(self) -> Option<(BaseDatagramSocketGetPeerNameResponder)> {
7280        if let BaseDatagramSocketRequest::GetPeerName { responder } = self {
7281            Some((responder))
7282        } else {
7283            None
7284        }
7285    }
7286
7287    #[allow(irrefutable_let_patterns)]
7288    pub fn into_shutdown(self) -> Option<(ShutdownMode, BaseDatagramSocketShutdownResponder)> {
7289        if let BaseDatagramSocketRequest::Shutdown { mode, responder } = self {
7290            Some((mode, responder))
7291        } else {
7292            None
7293        }
7294    }
7295
7296    #[allow(irrefutable_let_patterns)]
7297    pub fn into_set_ip_type_of_service(
7298        self,
7299    ) -> Option<(u8, BaseDatagramSocketSetIpTypeOfServiceResponder)> {
7300        if let BaseDatagramSocketRequest::SetIpTypeOfService { value, responder } = self {
7301            Some((value, responder))
7302        } else {
7303            None
7304        }
7305    }
7306
7307    #[allow(irrefutable_let_patterns)]
7308    pub fn into_get_ip_type_of_service(
7309        self,
7310    ) -> Option<(BaseDatagramSocketGetIpTypeOfServiceResponder)> {
7311        if let BaseDatagramSocketRequest::GetIpTypeOfService { responder } = self {
7312            Some((responder))
7313        } else {
7314            None
7315        }
7316    }
7317
7318    #[allow(irrefutable_let_patterns)]
7319    pub fn into_set_ip_ttl(self) -> Option<(OptionalUint8, BaseDatagramSocketSetIpTtlResponder)> {
7320        if let BaseDatagramSocketRequest::SetIpTtl { value, responder } = self {
7321            Some((value, responder))
7322        } else {
7323            None
7324        }
7325    }
7326
7327    #[allow(irrefutable_let_patterns)]
7328    pub fn into_get_ip_ttl(self) -> Option<(BaseDatagramSocketGetIpTtlResponder)> {
7329        if let BaseDatagramSocketRequest::GetIpTtl { responder } = self {
7330            Some((responder))
7331        } else {
7332            None
7333        }
7334    }
7335
7336    #[allow(irrefutable_let_patterns)]
7337    pub fn into_set_ip_packet_info(
7338        self,
7339    ) -> Option<(bool, BaseDatagramSocketSetIpPacketInfoResponder)> {
7340        if let BaseDatagramSocketRequest::SetIpPacketInfo { value, responder } = self {
7341            Some((value, responder))
7342        } else {
7343            None
7344        }
7345    }
7346
7347    #[allow(irrefutable_let_patterns)]
7348    pub fn into_get_ip_packet_info(self) -> Option<(BaseDatagramSocketGetIpPacketInfoResponder)> {
7349        if let BaseDatagramSocketRequest::GetIpPacketInfo { responder } = self {
7350            Some((responder))
7351        } else {
7352            None
7353        }
7354    }
7355
7356    #[allow(irrefutable_let_patterns)]
7357    pub fn into_set_ip_receive_type_of_service(
7358        self,
7359    ) -> Option<(bool, BaseDatagramSocketSetIpReceiveTypeOfServiceResponder)> {
7360        if let BaseDatagramSocketRequest::SetIpReceiveTypeOfService { value, responder } = self {
7361            Some((value, responder))
7362        } else {
7363            None
7364        }
7365    }
7366
7367    #[allow(irrefutable_let_patterns)]
7368    pub fn into_get_ip_receive_type_of_service(
7369        self,
7370    ) -> Option<(BaseDatagramSocketGetIpReceiveTypeOfServiceResponder)> {
7371        if let BaseDatagramSocketRequest::GetIpReceiveTypeOfService { responder } = self {
7372            Some((responder))
7373        } else {
7374            None
7375        }
7376    }
7377
7378    #[allow(irrefutable_let_patterns)]
7379    pub fn into_set_ip_receive_ttl(
7380        self,
7381    ) -> Option<(bool, BaseDatagramSocketSetIpReceiveTtlResponder)> {
7382        if let BaseDatagramSocketRequest::SetIpReceiveTtl { value, responder } = self {
7383            Some((value, responder))
7384        } else {
7385            None
7386        }
7387    }
7388
7389    #[allow(irrefutable_let_patterns)]
7390    pub fn into_get_ip_receive_ttl(self) -> Option<(BaseDatagramSocketGetIpReceiveTtlResponder)> {
7391        if let BaseDatagramSocketRequest::GetIpReceiveTtl { responder } = self {
7392            Some((responder))
7393        } else {
7394            None
7395        }
7396    }
7397
7398    #[allow(irrefutable_let_patterns)]
7399    pub fn into_set_ip_multicast_interface(
7400        self,
7401    ) -> Option<(
7402        u64,
7403        fidl_fuchsia_net::Ipv4Address,
7404        BaseDatagramSocketSetIpMulticastInterfaceResponder,
7405    )> {
7406        if let BaseDatagramSocketRequest::SetIpMulticastInterface { iface, address, responder } =
7407            self
7408        {
7409            Some((iface, address, responder))
7410        } else {
7411            None
7412        }
7413    }
7414
7415    #[allow(irrefutable_let_patterns)]
7416    pub fn into_get_ip_multicast_interface(
7417        self,
7418    ) -> Option<(BaseDatagramSocketGetIpMulticastInterfaceResponder)> {
7419        if let BaseDatagramSocketRequest::GetIpMulticastInterface { responder } = self {
7420            Some((responder))
7421        } else {
7422            None
7423        }
7424    }
7425
7426    #[allow(irrefutable_let_patterns)]
7427    pub fn into_set_ip_multicast_ttl(
7428        self,
7429    ) -> Option<(OptionalUint8, BaseDatagramSocketSetIpMulticastTtlResponder)> {
7430        if let BaseDatagramSocketRequest::SetIpMulticastTtl { value, responder } = self {
7431            Some((value, responder))
7432        } else {
7433            None
7434        }
7435    }
7436
7437    #[allow(irrefutable_let_patterns)]
7438    pub fn into_get_ip_multicast_ttl(
7439        self,
7440    ) -> Option<(BaseDatagramSocketGetIpMulticastTtlResponder)> {
7441        if let BaseDatagramSocketRequest::GetIpMulticastTtl { responder } = self {
7442            Some((responder))
7443        } else {
7444            None
7445        }
7446    }
7447
7448    #[allow(irrefutable_let_patterns)]
7449    pub fn into_set_ip_multicast_loopback(
7450        self,
7451    ) -> Option<(bool, BaseDatagramSocketSetIpMulticastLoopbackResponder)> {
7452        if let BaseDatagramSocketRequest::SetIpMulticastLoopback { value, responder } = self {
7453            Some((value, responder))
7454        } else {
7455            None
7456        }
7457    }
7458
7459    #[allow(irrefutable_let_patterns)]
7460    pub fn into_get_ip_multicast_loopback(
7461        self,
7462    ) -> Option<(BaseDatagramSocketGetIpMulticastLoopbackResponder)> {
7463        if let BaseDatagramSocketRequest::GetIpMulticastLoopback { responder } = self {
7464            Some((responder))
7465        } else {
7466            None
7467        }
7468    }
7469
7470    #[allow(irrefutable_let_patterns)]
7471    pub fn into_add_ip_membership(
7472        self,
7473    ) -> Option<(IpMulticastMembership, BaseDatagramSocketAddIpMembershipResponder)> {
7474        if let BaseDatagramSocketRequest::AddIpMembership { membership, responder } = self {
7475            Some((membership, responder))
7476        } else {
7477            None
7478        }
7479    }
7480
7481    #[allow(irrefutable_let_patterns)]
7482    pub fn into_drop_ip_membership(
7483        self,
7484    ) -> Option<(IpMulticastMembership, BaseDatagramSocketDropIpMembershipResponder)> {
7485        if let BaseDatagramSocketRequest::DropIpMembership { membership, responder } = self {
7486            Some((membership, responder))
7487        } else {
7488            None
7489        }
7490    }
7491
7492    #[allow(irrefutable_let_patterns)]
7493    pub fn into_set_ip_transparent(
7494        self,
7495    ) -> Option<(bool, BaseDatagramSocketSetIpTransparentResponder)> {
7496        if let BaseDatagramSocketRequest::SetIpTransparent { 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_transparent(self) -> Option<(BaseDatagramSocketGetIpTransparentResponder)> {
7505        if let BaseDatagramSocketRequest::GetIpTransparent { responder } = self {
7506            Some((responder))
7507        } else {
7508            None
7509        }
7510    }
7511
7512    #[allow(irrefutable_let_patterns)]
7513    pub fn into_set_ip_receive_original_destination_address(
7514        self,
7515    ) -> Option<(bool, BaseDatagramSocketSetIpReceiveOriginalDestinationAddressResponder)> {
7516        if let BaseDatagramSocketRequest::SetIpReceiveOriginalDestinationAddress {
7517            value,
7518            responder,
7519        } = self
7520        {
7521            Some((value, responder))
7522        } else {
7523            None
7524        }
7525    }
7526
7527    #[allow(irrefutable_let_patterns)]
7528    pub fn into_get_ip_receive_original_destination_address(
7529        self,
7530    ) -> Option<(BaseDatagramSocketGetIpReceiveOriginalDestinationAddressResponder)> {
7531        if let BaseDatagramSocketRequest::GetIpReceiveOriginalDestinationAddress { responder } =
7532            self
7533        {
7534            Some((responder))
7535        } else {
7536            None
7537        }
7538    }
7539
7540    #[allow(irrefutable_let_patterns)]
7541    pub fn into_add_ipv6_membership(
7542        self,
7543    ) -> Option<(Ipv6MulticastMembership, BaseDatagramSocketAddIpv6MembershipResponder)> {
7544        if let BaseDatagramSocketRequest::AddIpv6Membership { membership, responder } = self {
7545            Some((membership, responder))
7546        } else {
7547            None
7548        }
7549    }
7550
7551    #[allow(irrefutable_let_patterns)]
7552    pub fn into_drop_ipv6_membership(
7553        self,
7554    ) -> Option<(Ipv6MulticastMembership, BaseDatagramSocketDropIpv6MembershipResponder)> {
7555        if let BaseDatagramSocketRequest::DropIpv6Membership { membership, responder } = self {
7556            Some((membership, responder))
7557        } else {
7558            None
7559        }
7560    }
7561
7562    #[allow(irrefutable_let_patterns)]
7563    pub fn into_set_ipv6_multicast_interface(
7564        self,
7565    ) -> Option<(u64, BaseDatagramSocketSetIpv6MulticastInterfaceResponder)> {
7566        if let BaseDatagramSocketRequest::SetIpv6MulticastInterface { value, responder } = self {
7567            Some((value, responder))
7568        } else {
7569            None
7570        }
7571    }
7572
7573    #[allow(irrefutable_let_patterns)]
7574    pub fn into_get_ipv6_multicast_interface(
7575        self,
7576    ) -> Option<(BaseDatagramSocketGetIpv6MulticastInterfaceResponder)> {
7577        if let BaseDatagramSocketRequest::GetIpv6MulticastInterface { responder } = self {
7578            Some((responder))
7579        } else {
7580            None
7581        }
7582    }
7583
7584    #[allow(irrefutable_let_patterns)]
7585    pub fn into_set_ipv6_unicast_hops(
7586        self,
7587    ) -> Option<(OptionalUint8, BaseDatagramSocketSetIpv6UnicastHopsResponder)> {
7588        if let BaseDatagramSocketRequest::SetIpv6UnicastHops { value, responder } = self {
7589            Some((value, responder))
7590        } else {
7591            None
7592        }
7593    }
7594
7595    #[allow(irrefutable_let_patterns)]
7596    pub fn into_get_ipv6_unicast_hops(
7597        self,
7598    ) -> Option<(BaseDatagramSocketGetIpv6UnicastHopsResponder)> {
7599        if let BaseDatagramSocketRequest::GetIpv6UnicastHops { responder } = self {
7600            Some((responder))
7601        } else {
7602            None
7603        }
7604    }
7605
7606    #[allow(irrefutable_let_patterns)]
7607    pub fn into_set_ipv6_receive_hop_limit(
7608        self,
7609    ) -> Option<(bool, BaseDatagramSocketSetIpv6ReceiveHopLimitResponder)> {
7610        if let BaseDatagramSocketRequest::SetIpv6ReceiveHopLimit { 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_receive_hop_limit(
7619        self,
7620    ) -> Option<(BaseDatagramSocketGetIpv6ReceiveHopLimitResponder)> {
7621        if let BaseDatagramSocketRequest::GetIpv6ReceiveHopLimit { responder } = self {
7622            Some((responder))
7623        } else {
7624            None
7625        }
7626    }
7627
7628    #[allow(irrefutable_let_patterns)]
7629    pub fn into_set_ipv6_multicast_hops(
7630        self,
7631    ) -> Option<(OptionalUint8, BaseDatagramSocketSetIpv6MulticastHopsResponder)> {
7632        if let BaseDatagramSocketRequest::SetIpv6MulticastHops { 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_multicast_hops(
7641        self,
7642    ) -> Option<(BaseDatagramSocketGetIpv6MulticastHopsResponder)> {
7643        if let BaseDatagramSocketRequest::GetIpv6MulticastHops { responder } = self {
7644            Some((responder))
7645        } else {
7646            None
7647        }
7648    }
7649
7650    #[allow(irrefutable_let_patterns)]
7651    pub fn into_set_ipv6_multicast_loopback(
7652        self,
7653    ) -> Option<(bool, BaseDatagramSocketSetIpv6MulticastLoopbackResponder)> {
7654        if let BaseDatagramSocketRequest::SetIpv6MulticastLoopback { 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_multicast_loopback(
7663        self,
7664    ) -> Option<(BaseDatagramSocketGetIpv6MulticastLoopbackResponder)> {
7665        if let BaseDatagramSocketRequest::GetIpv6MulticastLoopback { responder } = self {
7666            Some((responder))
7667        } else {
7668            None
7669        }
7670    }
7671
7672    #[allow(irrefutable_let_patterns)]
7673    pub fn into_set_ipv6_only(self) -> Option<(bool, BaseDatagramSocketSetIpv6OnlyResponder)> {
7674        if let BaseDatagramSocketRequest::SetIpv6Only { value, responder } = self {
7675            Some((value, responder))
7676        } else {
7677            None
7678        }
7679    }
7680
7681    #[allow(irrefutable_let_patterns)]
7682    pub fn into_get_ipv6_only(self) -> Option<(BaseDatagramSocketGetIpv6OnlyResponder)> {
7683        if let BaseDatagramSocketRequest::GetIpv6Only { responder } = self {
7684            Some((responder))
7685        } else {
7686            None
7687        }
7688    }
7689
7690    #[allow(irrefutable_let_patterns)]
7691    pub fn into_set_ipv6_receive_traffic_class(
7692        self,
7693    ) -> Option<(bool, BaseDatagramSocketSetIpv6ReceiveTrafficClassResponder)> {
7694        if let BaseDatagramSocketRequest::SetIpv6ReceiveTrafficClass { value, responder } = self {
7695            Some((value, responder))
7696        } else {
7697            None
7698        }
7699    }
7700
7701    #[allow(irrefutable_let_patterns)]
7702    pub fn into_get_ipv6_receive_traffic_class(
7703        self,
7704    ) -> Option<(BaseDatagramSocketGetIpv6ReceiveTrafficClassResponder)> {
7705        if let BaseDatagramSocketRequest::GetIpv6ReceiveTrafficClass { responder } = self {
7706            Some((responder))
7707        } else {
7708            None
7709        }
7710    }
7711
7712    #[allow(irrefutable_let_patterns)]
7713    pub fn into_set_ipv6_traffic_class(
7714        self,
7715    ) -> Option<(OptionalUint8, BaseDatagramSocketSetIpv6TrafficClassResponder)> {
7716        if let BaseDatagramSocketRequest::SetIpv6TrafficClass { value, responder } = self {
7717            Some((value, responder))
7718        } else {
7719            None
7720        }
7721    }
7722
7723    #[allow(irrefutable_let_patterns)]
7724    pub fn into_get_ipv6_traffic_class(
7725        self,
7726    ) -> Option<(BaseDatagramSocketGetIpv6TrafficClassResponder)> {
7727        if let BaseDatagramSocketRequest::GetIpv6TrafficClass { responder } = self {
7728            Some((responder))
7729        } else {
7730            None
7731        }
7732    }
7733
7734    #[allow(irrefutable_let_patterns)]
7735    pub fn into_set_ipv6_receive_packet_info(
7736        self,
7737    ) -> Option<(bool, BaseDatagramSocketSetIpv6ReceivePacketInfoResponder)> {
7738        if let BaseDatagramSocketRequest::SetIpv6ReceivePacketInfo { 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_packet_info(
7747        self,
7748    ) -> Option<(BaseDatagramSocketGetIpv6ReceivePacketInfoResponder)> {
7749        if let BaseDatagramSocketRequest::GetIpv6ReceivePacketInfo { responder } = self {
7750            Some((responder))
7751        } else {
7752            None
7753        }
7754    }
7755
7756    #[allow(irrefutable_let_patterns)]
7757    pub fn into_get_original_destination(
7758        self,
7759    ) -> Option<(BaseDatagramSocketGetOriginalDestinationResponder)> {
7760        if let BaseDatagramSocketRequest::GetOriginalDestination { responder } = self {
7761            Some((responder))
7762        } else {
7763            None
7764        }
7765    }
7766
7767    #[allow(irrefutable_let_patterns)]
7768    pub fn into_get_info(self) -> Option<(BaseDatagramSocketGetInfoResponder)> {
7769        if let BaseDatagramSocketRequest::GetInfo { responder } = self {
7770            Some((responder))
7771        } else {
7772            None
7773        }
7774    }
7775
7776    /// Name of the method defined in FIDL
7777    pub fn method_name(&self) -> &'static str {
7778        match *self {
7779            BaseDatagramSocketRequest::Clone { .. } => "clone",
7780            BaseDatagramSocketRequest::Close { .. } => "close",
7781            BaseDatagramSocketRequest::Query { .. } => "query",
7782            BaseDatagramSocketRequest::SetReuseAddress { .. } => "set_reuse_address",
7783            BaseDatagramSocketRequest::GetReuseAddress { .. } => "get_reuse_address",
7784            BaseDatagramSocketRequest::GetError { .. } => "get_error",
7785            BaseDatagramSocketRequest::SetBroadcast { .. } => "set_broadcast",
7786            BaseDatagramSocketRequest::GetBroadcast { .. } => "get_broadcast",
7787            BaseDatagramSocketRequest::SetSendBuffer { .. } => "set_send_buffer",
7788            BaseDatagramSocketRequest::GetSendBuffer { .. } => "get_send_buffer",
7789            BaseDatagramSocketRequest::SetReceiveBuffer { .. } => "set_receive_buffer",
7790            BaseDatagramSocketRequest::GetReceiveBuffer { .. } => "get_receive_buffer",
7791            BaseDatagramSocketRequest::SetKeepAlive { .. } => "set_keep_alive",
7792            BaseDatagramSocketRequest::GetKeepAlive { .. } => "get_keep_alive",
7793            BaseDatagramSocketRequest::SetOutOfBandInline { .. } => "set_out_of_band_inline",
7794            BaseDatagramSocketRequest::GetOutOfBandInline { .. } => "get_out_of_band_inline",
7795            BaseDatagramSocketRequest::SetNoCheck { .. } => "set_no_check",
7796            BaseDatagramSocketRequest::GetNoCheck { .. } => "get_no_check",
7797            BaseDatagramSocketRequest::SetLinger { .. } => "set_linger",
7798            BaseDatagramSocketRequest::GetLinger { .. } => "get_linger",
7799            BaseDatagramSocketRequest::SetReusePort { .. } => "set_reuse_port",
7800            BaseDatagramSocketRequest::GetReusePort { .. } => "get_reuse_port",
7801            BaseDatagramSocketRequest::GetAcceptConn { .. } => "get_accept_conn",
7802            BaseDatagramSocketRequest::SetBindToDevice { .. } => "set_bind_to_device",
7803            BaseDatagramSocketRequest::GetBindToDevice { .. } => "get_bind_to_device",
7804            BaseDatagramSocketRequest::SetBindToInterfaceIndex { .. } => {
7805                "set_bind_to_interface_index"
7806            }
7807            BaseDatagramSocketRequest::GetBindToInterfaceIndex { .. } => {
7808                "get_bind_to_interface_index"
7809            }
7810            BaseDatagramSocketRequest::SetTimestamp { .. } => "set_timestamp",
7811            BaseDatagramSocketRequest::GetTimestamp { .. } => "get_timestamp",
7812            BaseDatagramSocketRequest::SetMark { .. } => "set_mark",
7813            BaseDatagramSocketRequest::GetMark { .. } => "get_mark",
7814            BaseDatagramSocketRequest::GetCookie { .. } => "get_cookie",
7815            BaseDatagramSocketRequest::Bind { .. } => "bind",
7816            BaseDatagramSocketRequest::Connect { .. } => "connect",
7817            BaseDatagramSocketRequest::Disconnect { .. } => "disconnect",
7818            BaseDatagramSocketRequest::GetSockName { .. } => "get_sock_name",
7819            BaseDatagramSocketRequest::GetPeerName { .. } => "get_peer_name",
7820            BaseDatagramSocketRequest::Shutdown { .. } => "shutdown",
7821            BaseDatagramSocketRequest::SetIpTypeOfService { .. } => "set_ip_type_of_service",
7822            BaseDatagramSocketRequest::GetIpTypeOfService { .. } => "get_ip_type_of_service",
7823            BaseDatagramSocketRequest::SetIpTtl { .. } => "set_ip_ttl",
7824            BaseDatagramSocketRequest::GetIpTtl { .. } => "get_ip_ttl",
7825            BaseDatagramSocketRequest::SetIpPacketInfo { .. } => "set_ip_packet_info",
7826            BaseDatagramSocketRequest::GetIpPacketInfo { .. } => "get_ip_packet_info",
7827            BaseDatagramSocketRequest::SetIpReceiveTypeOfService { .. } => {
7828                "set_ip_receive_type_of_service"
7829            }
7830            BaseDatagramSocketRequest::GetIpReceiveTypeOfService { .. } => {
7831                "get_ip_receive_type_of_service"
7832            }
7833            BaseDatagramSocketRequest::SetIpReceiveTtl { .. } => "set_ip_receive_ttl",
7834            BaseDatagramSocketRequest::GetIpReceiveTtl { .. } => "get_ip_receive_ttl",
7835            BaseDatagramSocketRequest::SetIpMulticastInterface { .. } => {
7836                "set_ip_multicast_interface"
7837            }
7838            BaseDatagramSocketRequest::GetIpMulticastInterface { .. } => {
7839                "get_ip_multicast_interface"
7840            }
7841            BaseDatagramSocketRequest::SetIpMulticastTtl { .. } => "set_ip_multicast_ttl",
7842            BaseDatagramSocketRequest::GetIpMulticastTtl { .. } => "get_ip_multicast_ttl",
7843            BaseDatagramSocketRequest::SetIpMulticastLoopback { .. } => "set_ip_multicast_loopback",
7844            BaseDatagramSocketRequest::GetIpMulticastLoopback { .. } => "get_ip_multicast_loopback",
7845            BaseDatagramSocketRequest::AddIpMembership { .. } => "add_ip_membership",
7846            BaseDatagramSocketRequest::DropIpMembership { .. } => "drop_ip_membership",
7847            BaseDatagramSocketRequest::SetIpTransparent { .. } => "set_ip_transparent",
7848            BaseDatagramSocketRequest::GetIpTransparent { .. } => "get_ip_transparent",
7849            BaseDatagramSocketRequest::SetIpReceiveOriginalDestinationAddress { .. } => {
7850                "set_ip_receive_original_destination_address"
7851            }
7852            BaseDatagramSocketRequest::GetIpReceiveOriginalDestinationAddress { .. } => {
7853                "get_ip_receive_original_destination_address"
7854            }
7855            BaseDatagramSocketRequest::AddIpv6Membership { .. } => "add_ipv6_membership",
7856            BaseDatagramSocketRequest::DropIpv6Membership { .. } => "drop_ipv6_membership",
7857            BaseDatagramSocketRequest::SetIpv6MulticastInterface { .. } => {
7858                "set_ipv6_multicast_interface"
7859            }
7860            BaseDatagramSocketRequest::GetIpv6MulticastInterface { .. } => {
7861                "get_ipv6_multicast_interface"
7862            }
7863            BaseDatagramSocketRequest::SetIpv6UnicastHops { .. } => "set_ipv6_unicast_hops",
7864            BaseDatagramSocketRequest::GetIpv6UnicastHops { .. } => "get_ipv6_unicast_hops",
7865            BaseDatagramSocketRequest::SetIpv6ReceiveHopLimit { .. } => {
7866                "set_ipv6_receive_hop_limit"
7867            }
7868            BaseDatagramSocketRequest::GetIpv6ReceiveHopLimit { .. } => {
7869                "get_ipv6_receive_hop_limit"
7870            }
7871            BaseDatagramSocketRequest::SetIpv6MulticastHops { .. } => "set_ipv6_multicast_hops",
7872            BaseDatagramSocketRequest::GetIpv6MulticastHops { .. } => "get_ipv6_multicast_hops",
7873            BaseDatagramSocketRequest::SetIpv6MulticastLoopback { .. } => {
7874                "set_ipv6_multicast_loopback"
7875            }
7876            BaseDatagramSocketRequest::GetIpv6MulticastLoopback { .. } => {
7877                "get_ipv6_multicast_loopback"
7878            }
7879            BaseDatagramSocketRequest::SetIpv6Only { .. } => "set_ipv6_only",
7880            BaseDatagramSocketRequest::GetIpv6Only { .. } => "get_ipv6_only",
7881            BaseDatagramSocketRequest::SetIpv6ReceiveTrafficClass { .. } => {
7882                "set_ipv6_receive_traffic_class"
7883            }
7884            BaseDatagramSocketRequest::GetIpv6ReceiveTrafficClass { .. } => {
7885                "get_ipv6_receive_traffic_class"
7886            }
7887            BaseDatagramSocketRequest::SetIpv6TrafficClass { .. } => "set_ipv6_traffic_class",
7888            BaseDatagramSocketRequest::GetIpv6TrafficClass { .. } => "get_ipv6_traffic_class",
7889            BaseDatagramSocketRequest::SetIpv6ReceivePacketInfo { .. } => {
7890                "set_ipv6_receive_packet_info"
7891            }
7892            BaseDatagramSocketRequest::GetIpv6ReceivePacketInfo { .. } => {
7893                "get_ipv6_receive_packet_info"
7894            }
7895            BaseDatagramSocketRequest::GetOriginalDestination { .. } => "get_original_destination",
7896            BaseDatagramSocketRequest::GetInfo { .. } => "get_info",
7897        }
7898    }
7899}
7900
7901#[derive(Debug, Clone)]
7902pub struct BaseDatagramSocketControlHandle {
7903    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
7904}
7905
7906impl fidl::endpoints::ControlHandle for BaseDatagramSocketControlHandle {
7907    fn shutdown(&self) {
7908        self.inner.shutdown()
7909    }
7910    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
7911        self.inner.shutdown_with_epitaph(status)
7912    }
7913
7914    fn is_closed(&self) -> bool {
7915        self.inner.channel().is_closed()
7916    }
7917    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
7918        self.inner.channel().on_closed()
7919    }
7920
7921    #[cfg(target_os = "fuchsia")]
7922    fn signal_peer(
7923        &self,
7924        clear_mask: zx::Signals,
7925        set_mask: zx::Signals,
7926    ) -> Result<(), zx_status::Status> {
7927        use fidl::Peered;
7928        self.inner.channel().signal_peer(clear_mask, set_mask)
7929    }
7930}
7931
7932impl BaseDatagramSocketControlHandle {}
7933
7934#[must_use = "FIDL methods require a response to be sent"]
7935#[derive(Debug)]
7936pub struct BaseDatagramSocketCloseResponder {
7937    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
7938    tx_id: u32,
7939}
7940
7941/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
7942/// if the responder is dropped without sending a response, so that the client
7943/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
7944impl std::ops::Drop for BaseDatagramSocketCloseResponder {
7945    fn drop(&mut self) {
7946        self.control_handle.shutdown();
7947        // Safety: drops once, never accessed again
7948        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
7949    }
7950}
7951
7952impl fidl::endpoints::Responder for BaseDatagramSocketCloseResponder {
7953    type ControlHandle = BaseDatagramSocketControlHandle;
7954
7955    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
7956        &self.control_handle
7957    }
7958
7959    fn drop_without_shutdown(mut self) {
7960        // Safety: drops once, never accessed again due to mem::forget
7961        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
7962        // Prevent Drop from running (which would shut down the channel)
7963        std::mem::forget(self);
7964    }
7965}
7966
7967impl BaseDatagramSocketCloseResponder {
7968    /// Sends a response to the FIDL transaction.
7969    ///
7970    /// Sets the channel to shutdown if an error occurs.
7971    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
7972        let _result = self.send_raw(result);
7973        if _result.is_err() {
7974            self.control_handle.shutdown();
7975        }
7976        self.drop_without_shutdown();
7977        _result
7978    }
7979
7980    /// Similar to "send" but does not shutdown the channel if an error occurs.
7981    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
7982        let _result = self.send_raw(result);
7983        self.drop_without_shutdown();
7984        _result
7985    }
7986
7987    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
7988        self.control_handle
7989            .inner
7990            .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>>(
7991                result,
7992                self.tx_id,
7993                0x5ac5d459ad7f657e,
7994                fidl::encoding::DynamicFlags::empty(),
7995            )
7996    }
7997}
7998
7999#[must_use = "FIDL methods require a response to be sent"]
8000#[derive(Debug)]
8001pub struct BaseDatagramSocketQueryResponder {
8002    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8003    tx_id: u32,
8004}
8005
8006/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8007/// if the responder is dropped without sending a response, so that the client
8008/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8009impl std::ops::Drop for BaseDatagramSocketQueryResponder {
8010    fn drop(&mut self) {
8011        self.control_handle.shutdown();
8012        // Safety: drops once, never accessed again
8013        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8014    }
8015}
8016
8017impl fidl::endpoints::Responder for BaseDatagramSocketQueryResponder {
8018    type ControlHandle = BaseDatagramSocketControlHandle;
8019
8020    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8021        &self.control_handle
8022    }
8023
8024    fn drop_without_shutdown(mut self) {
8025        // Safety: drops once, never accessed again due to mem::forget
8026        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8027        // Prevent Drop from running (which would shut down the channel)
8028        std::mem::forget(self);
8029    }
8030}
8031
8032impl BaseDatagramSocketQueryResponder {
8033    /// Sends a response to the FIDL transaction.
8034    ///
8035    /// Sets the channel to shutdown if an error occurs.
8036    pub fn send(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
8037        let _result = self.send_raw(protocol);
8038        if _result.is_err() {
8039            self.control_handle.shutdown();
8040        }
8041        self.drop_without_shutdown();
8042        _result
8043    }
8044
8045    /// Similar to "send" but does not shutdown the channel if an error occurs.
8046    pub fn send_no_shutdown_on_err(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
8047        let _result = self.send_raw(protocol);
8048        self.drop_without_shutdown();
8049        _result
8050    }
8051
8052    fn send_raw(&self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
8053        self.control_handle.inner.send::<fidl_fuchsia_unknown::QueryableQueryResponse>(
8054            (protocol,),
8055            self.tx_id,
8056            0x2658edee9decfc06,
8057            fidl::encoding::DynamicFlags::empty(),
8058        )
8059    }
8060}
8061
8062#[must_use = "FIDL methods require a response to be sent"]
8063#[derive(Debug)]
8064pub struct BaseDatagramSocketSetReuseAddressResponder {
8065    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8066    tx_id: u32,
8067}
8068
8069/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8070/// if the responder is dropped without sending a response, so that the client
8071/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8072impl std::ops::Drop for BaseDatagramSocketSetReuseAddressResponder {
8073    fn drop(&mut self) {
8074        self.control_handle.shutdown();
8075        // Safety: drops once, never accessed again
8076        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8077    }
8078}
8079
8080impl fidl::endpoints::Responder for BaseDatagramSocketSetReuseAddressResponder {
8081    type ControlHandle = BaseDatagramSocketControlHandle;
8082
8083    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8084        &self.control_handle
8085    }
8086
8087    fn drop_without_shutdown(mut self) {
8088        // Safety: drops once, never accessed again due to mem::forget
8089        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8090        // Prevent Drop from running (which would shut down the channel)
8091        std::mem::forget(self);
8092    }
8093}
8094
8095impl BaseDatagramSocketSetReuseAddressResponder {
8096    /// Sends a response to the FIDL transaction.
8097    ///
8098    /// Sets the channel to shutdown if an error occurs.
8099    pub fn send(
8100        self,
8101        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8102    ) -> Result<(), fidl::Error> {
8103        let _result = self.send_raw(result);
8104        if _result.is_err() {
8105            self.control_handle.shutdown();
8106        }
8107        self.drop_without_shutdown();
8108        _result
8109    }
8110
8111    /// Similar to "send" but does not shutdown the channel if an error occurs.
8112    pub fn send_no_shutdown_on_err(
8113        self,
8114        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8115    ) -> Result<(), fidl::Error> {
8116        let _result = self.send_raw(result);
8117        self.drop_without_shutdown();
8118        _result
8119    }
8120
8121    fn send_raw(
8122        &self,
8123        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8124    ) -> Result<(), fidl::Error> {
8125        self.control_handle.inner.send::<fidl::encoding::ResultType<
8126            fidl::encoding::EmptyStruct,
8127            fidl_fuchsia_posix::Errno,
8128        >>(
8129            result,
8130            self.tx_id,
8131            0x1fd74ee8b9a4a876,
8132            fidl::encoding::DynamicFlags::empty(),
8133        )
8134    }
8135}
8136
8137#[must_use = "FIDL methods require a response to be sent"]
8138#[derive(Debug)]
8139pub struct BaseDatagramSocketGetReuseAddressResponder {
8140    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8141    tx_id: u32,
8142}
8143
8144/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8145/// if the responder is dropped without sending a response, so that the client
8146/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8147impl std::ops::Drop for BaseDatagramSocketGetReuseAddressResponder {
8148    fn drop(&mut self) {
8149        self.control_handle.shutdown();
8150        // Safety: drops once, never accessed again
8151        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8152    }
8153}
8154
8155impl fidl::endpoints::Responder for BaseDatagramSocketGetReuseAddressResponder {
8156    type ControlHandle = BaseDatagramSocketControlHandle;
8157
8158    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8159        &self.control_handle
8160    }
8161
8162    fn drop_without_shutdown(mut self) {
8163        // Safety: drops once, never accessed again due to mem::forget
8164        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8165        // Prevent Drop from running (which would shut down the channel)
8166        std::mem::forget(self);
8167    }
8168}
8169
8170impl BaseDatagramSocketGetReuseAddressResponder {
8171    /// Sends a response to the FIDL transaction.
8172    ///
8173    /// Sets the channel to shutdown if an error occurs.
8174    pub fn send(
8175        self,
8176        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
8177    ) -> Result<(), fidl::Error> {
8178        let _result = self.send_raw(result);
8179        if _result.is_err() {
8180            self.control_handle.shutdown();
8181        }
8182        self.drop_without_shutdown();
8183        _result
8184    }
8185
8186    /// Similar to "send" but does not shutdown the channel if an error occurs.
8187    pub fn send_no_shutdown_on_err(
8188        self,
8189        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
8190    ) -> Result<(), fidl::Error> {
8191        let _result = self.send_raw(result);
8192        self.drop_without_shutdown();
8193        _result
8194    }
8195
8196    fn send_raw(
8197        &self,
8198        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
8199    ) -> Result<(), fidl::Error> {
8200        self.control_handle.inner.send::<fidl::encoding::ResultType<
8201            BaseSocketGetReuseAddressResponse,
8202            fidl_fuchsia_posix::Errno,
8203        >>(
8204            result.map(|value| (value,)),
8205            self.tx_id,
8206            0x67b7206b8d1bc0a5,
8207            fidl::encoding::DynamicFlags::empty(),
8208        )
8209    }
8210}
8211
8212#[must_use = "FIDL methods require a response to be sent"]
8213#[derive(Debug)]
8214pub struct BaseDatagramSocketGetErrorResponder {
8215    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8216    tx_id: u32,
8217}
8218
8219/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8220/// if the responder is dropped without sending a response, so that the client
8221/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8222impl std::ops::Drop for BaseDatagramSocketGetErrorResponder {
8223    fn drop(&mut self) {
8224        self.control_handle.shutdown();
8225        // Safety: drops once, never accessed again
8226        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8227    }
8228}
8229
8230impl fidl::endpoints::Responder for BaseDatagramSocketGetErrorResponder {
8231    type ControlHandle = BaseDatagramSocketControlHandle;
8232
8233    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8234        &self.control_handle
8235    }
8236
8237    fn drop_without_shutdown(mut self) {
8238        // Safety: drops once, never accessed again due to mem::forget
8239        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8240        // Prevent Drop from running (which would shut down the channel)
8241        std::mem::forget(self);
8242    }
8243}
8244
8245impl BaseDatagramSocketGetErrorResponder {
8246    /// Sends a response to the FIDL transaction.
8247    ///
8248    /// Sets the channel to shutdown if an error occurs.
8249    pub fn send(
8250        self,
8251        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8252    ) -> Result<(), fidl::Error> {
8253        let _result = self.send_raw(result);
8254        if _result.is_err() {
8255            self.control_handle.shutdown();
8256        }
8257        self.drop_without_shutdown();
8258        _result
8259    }
8260
8261    /// Similar to "send" but does not shutdown the channel if an error occurs.
8262    pub fn send_no_shutdown_on_err(
8263        self,
8264        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8265    ) -> Result<(), fidl::Error> {
8266        let _result = self.send_raw(result);
8267        self.drop_without_shutdown();
8268        _result
8269    }
8270
8271    fn send_raw(
8272        &self,
8273        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8274    ) -> Result<(), fidl::Error> {
8275        self.control_handle.inner.send::<fidl::encoding::ResultType<
8276            fidl::encoding::EmptyStruct,
8277            fidl_fuchsia_posix::Errno,
8278        >>(
8279            result,
8280            self.tx_id,
8281            0x5aad39b33e5f6ebb,
8282            fidl::encoding::DynamicFlags::empty(),
8283        )
8284    }
8285}
8286
8287#[must_use = "FIDL methods require a response to be sent"]
8288#[derive(Debug)]
8289pub struct BaseDatagramSocketSetBroadcastResponder {
8290    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8291    tx_id: u32,
8292}
8293
8294/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8295/// if the responder is dropped without sending a response, so that the client
8296/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8297impl std::ops::Drop for BaseDatagramSocketSetBroadcastResponder {
8298    fn drop(&mut self) {
8299        self.control_handle.shutdown();
8300        // Safety: drops once, never accessed again
8301        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8302    }
8303}
8304
8305impl fidl::endpoints::Responder for BaseDatagramSocketSetBroadcastResponder {
8306    type ControlHandle = BaseDatagramSocketControlHandle;
8307
8308    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8309        &self.control_handle
8310    }
8311
8312    fn drop_without_shutdown(mut self) {
8313        // Safety: drops once, never accessed again due to mem::forget
8314        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8315        // Prevent Drop from running (which would shut down the channel)
8316        std::mem::forget(self);
8317    }
8318}
8319
8320impl BaseDatagramSocketSetBroadcastResponder {
8321    /// Sends a response to the FIDL transaction.
8322    ///
8323    /// Sets the channel to shutdown if an error occurs.
8324    pub fn send(
8325        self,
8326        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8327    ) -> Result<(), fidl::Error> {
8328        let _result = self.send_raw(result);
8329        if _result.is_err() {
8330            self.control_handle.shutdown();
8331        }
8332        self.drop_without_shutdown();
8333        _result
8334    }
8335
8336    /// Similar to "send" but does not shutdown the channel if an error occurs.
8337    pub fn send_no_shutdown_on_err(
8338        self,
8339        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8340    ) -> Result<(), fidl::Error> {
8341        let _result = self.send_raw(result);
8342        self.drop_without_shutdown();
8343        _result
8344    }
8345
8346    fn send_raw(
8347        &self,
8348        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8349    ) -> Result<(), fidl::Error> {
8350        self.control_handle.inner.send::<fidl::encoding::ResultType<
8351            fidl::encoding::EmptyStruct,
8352            fidl_fuchsia_posix::Errno,
8353        >>(
8354            result,
8355            self.tx_id,
8356            0x6023e081ce3cd947,
8357            fidl::encoding::DynamicFlags::empty(),
8358        )
8359    }
8360}
8361
8362#[must_use = "FIDL methods require a response to be sent"]
8363#[derive(Debug)]
8364pub struct BaseDatagramSocketGetBroadcastResponder {
8365    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8366    tx_id: u32,
8367}
8368
8369/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8370/// if the responder is dropped without sending a response, so that the client
8371/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8372impl std::ops::Drop for BaseDatagramSocketGetBroadcastResponder {
8373    fn drop(&mut self) {
8374        self.control_handle.shutdown();
8375        // Safety: drops once, never accessed again
8376        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8377    }
8378}
8379
8380impl fidl::endpoints::Responder for BaseDatagramSocketGetBroadcastResponder {
8381    type ControlHandle = BaseDatagramSocketControlHandle;
8382
8383    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8384        &self.control_handle
8385    }
8386
8387    fn drop_without_shutdown(mut self) {
8388        // Safety: drops once, never accessed again due to mem::forget
8389        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8390        // Prevent Drop from running (which would shut down the channel)
8391        std::mem::forget(self);
8392    }
8393}
8394
8395impl BaseDatagramSocketGetBroadcastResponder {
8396    /// Sends a response to the FIDL transaction.
8397    ///
8398    /// Sets the channel to shutdown if an error occurs.
8399    pub fn send(
8400        self,
8401        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
8402    ) -> Result<(), fidl::Error> {
8403        let _result = self.send_raw(result);
8404        if _result.is_err() {
8405            self.control_handle.shutdown();
8406        }
8407        self.drop_without_shutdown();
8408        _result
8409    }
8410
8411    /// Similar to "send" but does not shutdown the channel if an error occurs.
8412    pub fn send_no_shutdown_on_err(
8413        self,
8414        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
8415    ) -> Result<(), fidl::Error> {
8416        let _result = self.send_raw(result);
8417        self.drop_without_shutdown();
8418        _result
8419    }
8420
8421    fn send_raw(
8422        &self,
8423        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
8424    ) -> Result<(), fidl::Error> {
8425        self.control_handle.inner.send::<fidl::encoding::ResultType<
8426            BaseSocketGetBroadcastResponse,
8427            fidl_fuchsia_posix::Errno,
8428        >>(
8429            result.map(|value| (value,)),
8430            self.tx_id,
8431            0x68796fc556f9780d,
8432            fidl::encoding::DynamicFlags::empty(),
8433        )
8434    }
8435}
8436
8437#[must_use = "FIDL methods require a response to be sent"]
8438#[derive(Debug)]
8439pub struct BaseDatagramSocketSetSendBufferResponder {
8440    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8441    tx_id: u32,
8442}
8443
8444/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8445/// if the responder is dropped without sending a response, so that the client
8446/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8447impl std::ops::Drop for BaseDatagramSocketSetSendBufferResponder {
8448    fn drop(&mut self) {
8449        self.control_handle.shutdown();
8450        // Safety: drops once, never accessed again
8451        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8452    }
8453}
8454
8455impl fidl::endpoints::Responder for BaseDatagramSocketSetSendBufferResponder {
8456    type ControlHandle = BaseDatagramSocketControlHandle;
8457
8458    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8459        &self.control_handle
8460    }
8461
8462    fn drop_without_shutdown(mut self) {
8463        // Safety: drops once, never accessed again due to mem::forget
8464        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8465        // Prevent Drop from running (which would shut down the channel)
8466        std::mem::forget(self);
8467    }
8468}
8469
8470impl BaseDatagramSocketSetSendBufferResponder {
8471    /// Sends a response to the FIDL transaction.
8472    ///
8473    /// Sets the channel to shutdown if an error occurs.
8474    pub fn send(
8475        self,
8476        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8477    ) -> Result<(), fidl::Error> {
8478        let _result = self.send_raw(result);
8479        if _result.is_err() {
8480            self.control_handle.shutdown();
8481        }
8482        self.drop_without_shutdown();
8483        _result
8484    }
8485
8486    /// Similar to "send" but does not shutdown the channel if an error occurs.
8487    pub fn send_no_shutdown_on_err(
8488        self,
8489        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8490    ) -> Result<(), fidl::Error> {
8491        let _result = self.send_raw(result);
8492        self.drop_without_shutdown();
8493        _result
8494    }
8495
8496    fn send_raw(
8497        &self,
8498        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8499    ) -> Result<(), fidl::Error> {
8500        self.control_handle.inner.send::<fidl::encoding::ResultType<
8501            fidl::encoding::EmptyStruct,
8502            fidl_fuchsia_posix::Errno,
8503        >>(
8504            result,
8505            self.tx_id,
8506            0x756eac32d73a7a70,
8507            fidl::encoding::DynamicFlags::empty(),
8508        )
8509    }
8510}
8511
8512#[must_use = "FIDL methods require a response to be sent"]
8513#[derive(Debug)]
8514pub struct BaseDatagramSocketGetSendBufferResponder {
8515    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8516    tx_id: u32,
8517}
8518
8519/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8520/// if the responder is dropped without sending a response, so that the client
8521/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8522impl std::ops::Drop for BaseDatagramSocketGetSendBufferResponder {
8523    fn drop(&mut self) {
8524        self.control_handle.shutdown();
8525        // Safety: drops once, never accessed again
8526        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8527    }
8528}
8529
8530impl fidl::endpoints::Responder for BaseDatagramSocketGetSendBufferResponder {
8531    type ControlHandle = BaseDatagramSocketControlHandle;
8532
8533    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8534        &self.control_handle
8535    }
8536
8537    fn drop_without_shutdown(mut self) {
8538        // Safety: drops once, never accessed again due to mem::forget
8539        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8540        // Prevent Drop from running (which would shut down the channel)
8541        std::mem::forget(self);
8542    }
8543}
8544
8545impl BaseDatagramSocketGetSendBufferResponder {
8546    /// Sends a response to the FIDL transaction.
8547    ///
8548    /// Sets the channel to shutdown if an error occurs.
8549    pub fn send(
8550        self,
8551        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
8552    ) -> Result<(), fidl::Error> {
8553        let _result = self.send_raw(result);
8554        if _result.is_err() {
8555            self.control_handle.shutdown();
8556        }
8557        self.drop_without_shutdown();
8558        _result
8559    }
8560
8561    /// Similar to "send" but does not shutdown the channel if an error occurs.
8562    pub fn send_no_shutdown_on_err(
8563        self,
8564        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
8565    ) -> Result<(), fidl::Error> {
8566        let _result = self.send_raw(result);
8567        self.drop_without_shutdown();
8568        _result
8569    }
8570
8571    fn send_raw(
8572        &self,
8573        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
8574    ) -> Result<(), fidl::Error> {
8575        self.control_handle.inner.send::<fidl::encoding::ResultType<
8576            BaseSocketGetSendBufferResponse,
8577            fidl_fuchsia_posix::Errno,
8578        >>(
8579            result.map(|value_bytes| (value_bytes,)),
8580            self.tx_id,
8581            0x78a52fd9c7b2410b,
8582            fidl::encoding::DynamicFlags::empty(),
8583        )
8584    }
8585}
8586
8587#[must_use = "FIDL methods require a response to be sent"]
8588#[derive(Debug)]
8589pub struct BaseDatagramSocketSetReceiveBufferResponder {
8590    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8591    tx_id: u32,
8592}
8593
8594/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8595/// if the responder is dropped without sending a response, so that the client
8596/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8597impl std::ops::Drop for BaseDatagramSocketSetReceiveBufferResponder {
8598    fn drop(&mut self) {
8599        self.control_handle.shutdown();
8600        // Safety: drops once, never accessed again
8601        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8602    }
8603}
8604
8605impl fidl::endpoints::Responder for BaseDatagramSocketSetReceiveBufferResponder {
8606    type ControlHandle = BaseDatagramSocketControlHandle;
8607
8608    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8609        &self.control_handle
8610    }
8611
8612    fn drop_without_shutdown(mut self) {
8613        // Safety: drops once, never accessed again due to mem::forget
8614        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8615        // Prevent Drop from running (which would shut down the channel)
8616        std::mem::forget(self);
8617    }
8618}
8619
8620impl BaseDatagramSocketSetReceiveBufferResponder {
8621    /// Sends a response to the FIDL transaction.
8622    ///
8623    /// Sets the channel to shutdown if an error occurs.
8624    pub fn send(
8625        self,
8626        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8627    ) -> Result<(), fidl::Error> {
8628        let _result = self.send_raw(result);
8629        if _result.is_err() {
8630            self.control_handle.shutdown();
8631        }
8632        self.drop_without_shutdown();
8633        _result
8634    }
8635
8636    /// Similar to "send" but does not shutdown the channel if an error occurs.
8637    pub fn send_no_shutdown_on_err(
8638        self,
8639        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8640    ) -> Result<(), fidl::Error> {
8641        let _result = self.send_raw(result);
8642        self.drop_without_shutdown();
8643        _result
8644    }
8645
8646    fn send_raw(
8647        &self,
8648        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8649    ) -> Result<(), fidl::Error> {
8650        self.control_handle.inner.send::<fidl::encoding::ResultType<
8651            fidl::encoding::EmptyStruct,
8652            fidl_fuchsia_posix::Errno,
8653        >>(
8654            result,
8655            self.tx_id,
8656            0x6b0cf2f1919c7001,
8657            fidl::encoding::DynamicFlags::empty(),
8658        )
8659    }
8660}
8661
8662#[must_use = "FIDL methods require a response to be sent"]
8663#[derive(Debug)]
8664pub struct BaseDatagramSocketGetReceiveBufferResponder {
8665    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8666    tx_id: u32,
8667}
8668
8669/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8670/// if the responder is dropped without sending a response, so that the client
8671/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8672impl std::ops::Drop for BaseDatagramSocketGetReceiveBufferResponder {
8673    fn drop(&mut self) {
8674        self.control_handle.shutdown();
8675        // Safety: drops once, never accessed again
8676        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8677    }
8678}
8679
8680impl fidl::endpoints::Responder for BaseDatagramSocketGetReceiveBufferResponder {
8681    type ControlHandle = BaseDatagramSocketControlHandle;
8682
8683    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8684        &self.control_handle
8685    }
8686
8687    fn drop_without_shutdown(mut self) {
8688        // Safety: drops once, never accessed again due to mem::forget
8689        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8690        // Prevent Drop from running (which would shut down the channel)
8691        std::mem::forget(self);
8692    }
8693}
8694
8695impl BaseDatagramSocketGetReceiveBufferResponder {
8696    /// Sends a response to the FIDL transaction.
8697    ///
8698    /// Sets the channel to shutdown if an error occurs.
8699    pub fn send(
8700        self,
8701        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
8702    ) -> Result<(), fidl::Error> {
8703        let _result = self.send_raw(result);
8704        if _result.is_err() {
8705            self.control_handle.shutdown();
8706        }
8707        self.drop_without_shutdown();
8708        _result
8709    }
8710
8711    /// Similar to "send" but does not shutdown the channel if an error occurs.
8712    pub fn send_no_shutdown_on_err(
8713        self,
8714        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
8715    ) -> Result<(), fidl::Error> {
8716        let _result = self.send_raw(result);
8717        self.drop_without_shutdown();
8718        _result
8719    }
8720
8721    fn send_raw(
8722        &self,
8723        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
8724    ) -> Result<(), fidl::Error> {
8725        self.control_handle.inner.send::<fidl::encoding::ResultType<
8726            BaseSocketGetReceiveBufferResponse,
8727            fidl_fuchsia_posix::Errno,
8728        >>(
8729            result.map(|value_bytes| (value_bytes,)),
8730            self.tx_id,
8731            0x14c1a4b64f709e5c,
8732            fidl::encoding::DynamicFlags::empty(),
8733        )
8734    }
8735}
8736
8737#[must_use = "FIDL methods require a response to be sent"]
8738#[derive(Debug)]
8739pub struct BaseDatagramSocketSetKeepAliveResponder {
8740    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8741    tx_id: u32,
8742}
8743
8744/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8745/// if the responder is dropped without sending a response, so that the client
8746/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8747impl std::ops::Drop for BaseDatagramSocketSetKeepAliveResponder {
8748    fn drop(&mut self) {
8749        self.control_handle.shutdown();
8750        // Safety: drops once, never accessed again
8751        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8752    }
8753}
8754
8755impl fidl::endpoints::Responder for BaseDatagramSocketSetKeepAliveResponder {
8756    type ControlHandle = BaseDatagramSocketControlHandle;
8757
8758    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8759        &self.control_handle
8760    }
8761
8762    fn drop_without_shutdown(mut self) {
8763        // Safety: drops once, never accessed again due to mem::forget
8764        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8765        // Prevent Drop from running (which would shut down the channel)
8766        std::mem::forget(self);
8767    }
8768}
8769
8770impl BaseDatagramSocketSetKeepAliveResponder {
8771    /// Sends a response to the FIDL transaction.
8772    ///
8773    /// Sets the channel to shutdown if an error occurs.
8774    pub fn send(
8775        self,
8776        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8777    ) -> Result<(), fidl::Error> {
8778        let _result = self.send_raw(result);
8779        if _result.is_err() {
8780            self.control_handle.shutdown();
8781        }
8782        self.drop_without_shutdown();
8783        _result
8784    }
8785
8786    /// Similar to "send" but does not shutdown the channel if an error occurs.
8787    pub fn send_no_shutdown_on_err(
8788        self,
8789        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8790    ) -> Result<(), fidl::Error> {
8791        let _result = self.send_raw(result);
8792        self.drop_without_shutdown();
8793        _result
8794    }
8795
8796    fn send_raw(
8797        &self,
8798        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8799    ) -> Result<(), fidl::Error> {
8800        self.control_handle.inner.send::<fidl::encoding::ResultType<
8801            fidl::encoding::EmptyStruct,
8802            fidl_fuchsia_posix::Errno,
8803        >>(
8804            result,
8805            self.tx_id,
8806            0x572df8f0b920d2c7,
8807            fidl::encoding::DynamicFlags::empty(),
8808        )
8809    }
8810}
8811
8812#[must_use = "FIDL methods require a response to be sent"]
8813#[derive(Debug)]
8814pub struct BaseDatagramSocketGetKeepAliveResponder {
8815    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8816    tx_id: u32,
8817}
8818
8819/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8820/// if the responder is dropped without sending a response, so that the client
8821/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8822impl std::ops::Drop for BaseDatagramSocketGetKeepAliveResponder {
8823    fn drop(&mut self) {
8824        self.control_handle.shutdown();
8825        // Safety: drops once, never accessed again
8826        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8827    }
8828}
8829
8830impl fidl::endpoints::Responder for BaseDatagramSocketGetKeepAliveResponder {
8831    type ControlHandle = BaseDatagramSocketControlHandle;
8832
8833    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8834        &self.control_handle
8835    }
8836
8837    fn drop_without_shutdown(mut self) {
8838        // Safety: drops once, never accessed again due to mem::forget
8839        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8840        // Prevent Drop from running (which would shut down the channel)
8841        std::mem::forget(self);
8842    }
8843}
8844
8845impl BaseDatagramSocketGetKeepAliveResponder {
8846    /// Sends a response to the FIDL transaction.
8847    ///
8848    /// Sets the channel to shutdown if an error occurs.
8849    pub fn send(
8850        self,
8851        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
8852    ) -> Result<(), fidl::Error> {
8853        let _result = self.send_raw(result);
8854        if _result.is_err() {
8855            self.control_handle.shutdown();
8856        }
8857        self.drop_without_shutdown();
8858        _result
8859    }
8860
8861    /// Similar to "send" but does not shutdown the channel if an error occurs.
8862    pub fn send_no_shutdown_on_err(
8863        self,
8864        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
8865    ) -> Result<(), fidl::Error> {
8866        let _result = self.send_raw(result);
8867        self.drop_without_shutdown();
8868        _result
8869    }
8870
8871    fn send_raw(
8872        &self,
8873        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
8874    ) -> Result<(), fidl::Error> {
8875        self.control_handle.inner.send::<fidl::encoding::ResultType<
8876            BaseSocketGetKeepAliveResponse,
8877            fidl_fuchsia_posix::Errno,
8878        >>(
8879            result.map(|value| (value,)),
8880            self.tx_id,
8881            0x2dd29d3215f2c9d2,
8882            fidl::encoding::DynamicFlags::empty(),
8883        )
8884    }
8885}
8886
8887#[must_use = "FIDL methods require a response to be sent"]
8888#[derive(Debug)]
8889pub struct BaseDatagramSocketSetOutOfBandInlineResponder {
8890    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8891    tx_id: u32,
8892}
8893
8894/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8895/// if the responder is dropped without sending a response, so that the client
8896/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8897impl std::ops::Drop for BaseDatagramSocketSetOutOfBandInlineResponder {
8898    fn drop(&mut self) {
8899        self.control_handle.shutdown();
8900        // Safety: drops once, never accessed again
8901        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8902    }
8903}
8904
8905impl fidl::endpoints::Responder for BaseDatagramSocketSetOutOfBandInlineResponder {
8906    type ControlHandle = BaseDatagramSocketControlHandle;
8907
8908    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8909        &self.control_handle
8910    }
8911
8912    fn drop_without_shutdown(mut self) {
8913        // Safety: drops once, never accessed again due to mem::forget
8914        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8915        // Prevent Drop from running (which would shut down the channel)
8916        std::mem::forget(self);
8917    }
8918}
8919
8920impl BaseDatagramSocketSetOutOfBandInlineResponder {
8921    /// Sends a response to the FIDL transaction.
8922    ///
8923    /// Sets the channel to shutdown if an error occurs.
8924    pub fn send(
8925        self,
8926        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8927    ) -> Result<(), fidl::Error> {
8928        let _result = self.send_raw(result);
8929        if _result.is_err() {
8930            self.control_handle.shutdown();
8931        }
8932        self.drop_without_shutdown();
8933        _result
8934    }
8935
8936    /// Similar to "send" but does not shutdown the channel if an error occurs.
8937    pub fn send_no_shutdown_on_err(
8938        self,
8939        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8940    ) -> Result<(), fidl::Error> {
8941        let _result = self.send_raw(result);
8942        self.drop_without_shutdown();
8943        _result
8944    }
8945
8946    fn send_raw(
8947        &self,
8948        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8949    ) -> Result<(), fidl::Error> {
8950        self.control_handle.inner.send::<fidl::encoding::ResultType<
8951            fidl::encoding::EmptyStruct,
8952            fidl_fuchsia_posix::Errno,
8953        >>(
8954            result,
8955            self.tx_id,
8956            0x3ecb49968bee439,
8957            fidl::encoding::DynamicFlags::empty(),
8958        )
8959    }
8960}
8961
8962#[must_use = "FIDL methods require a response to be sent"]
8963#[derive(Debug)]
8964pub struct BaseDatagramSocketGetOutOfBandInlineResponder {
8965    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8966    tx_id: u32,
8967}
8968
8969/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8970/// if the responder is dropped without sending a response, so that the client
8971/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8972impl std::ops::Drop for BaseDatagramSocketGetOutOfBandInlineResponder {
8973    fn drop(&mut self) {
8974        self.control_handle.shutdown();
8975        // Safety: drops once, never accessed again
8976        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8977    }
8978}
8979
8980impl fidl::endpoints::Responder for BaseDatagramSocketGetOutOfBandInlineResponder {
8981    type ControlHandle = BaseDatagramSocketControlHandle;
8982
8983    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8984        &self.control_handle
8985    }
8986
8987    fn drop_without_shutdown(mut self) {
8988        // Safety: drops once, never accessed again due to mem::forget
8989        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8990        // Prevent Drop from running (which would shut down the channel)
8991        std::mem::forget(self);
8992    }
8993}
8994
8995impl BaseDatagramSocketGetOutOfBandInlineResponder {
8996    /// Sends a response to the FIDL transaction.
8997    ///
8998    /// Sets the channel to shutdown if an error occurs.
8999    pub fn send(
9000        self,
9001        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9002    ) -> Result<(), fidl::Error> {
9003        let _result = self.send_raw(result);
9004        if _result.is_err() {
9005            self.control_handle.shutdown();
9006        }
9007        self.drop_without_shutdown();
9008        _result
9009    }
9010
9011    /// Similar to "send" but does not shutdown the channel if an error occurs.
9012    pub fn send_no_shutdown_on_err(
9013        self,
9014        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9015    ) -> Result<(), fidl::Error> {
9016        let _result = self.send_raw(result);
9017        self.drop_without_shutdown();
9018        _result
9019    }
9020
9021    fn send_raw(
9022        &self,
9023        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9024    ) -> Result<(), fidl::Error> {
9025        self.control_handle.inner.send::<fidl::encoding::ResultType<
9026            BaseSocketGetOutOfBandInlineResponse,
9027            fidl_fuchsia_posix::Errno,
9028        >>(
9029            result.map(|value| (value,)),
9030            self.tx_id,
9031            0x348c1ab3aeca1745,
9032            fidl::encoding::DynamicFlags::empty(),
9033        )
9034    }
9035}
9036
9037#[must_use = "FIDL methods require a response to be sent"]
9038#[derive(Debug)]
9039pub struct BaseDatagramSocketSetNoCheckResponder {
9040    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9041    tx_id: u32,
9042}
9043
9044/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9045/// if the responder is dropped without sending a response, so that the client
9046/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9047impl std::ops::Drop for BaseDatagramSocketSetNoCheckResponder {
9048    fn drop(&mut self) {
9049        self.control_handle.shutdown();
9050        // Safety: drops once, never accessed again
9051        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9052    }
9053}
9054
9055impl fidl::endpoints::Responder for BaseDatagramSocketSetNoCheckResponder {
9056    type ControlHandle = BaseDatagramSocketControlHandle;
9057
9058    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9059        &self.control_handle
9060    }
9061
9062    fn drop_without_shutdown(mut self) {
9063        // Safety: drops once, never accessed again due to mem::forget
9064        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9065        // Prevent Drop from running (which would shut down the channel)
9066        std::mem::forget(self);
9067    }
9068}
9069
9070impl BaseDatagramSocketSetNoCheckResponder {
9071    /// Sends a response to the FIDL transaction.
9072    ///
9073    /// Sets the channel to shutdown if an error occurs.
9074    pub fn send(
9075        self,
9076        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9077    ) -> Result<(), fidl::Error> {
9078        let _result = self.send_raw(result);
9079        if _result.is_err() {
9080            self.control_handle.shutdown();
9081        }
9082        self.drop_without_shutdown();
9083        _result
9084    }
9085
9086    /// Similar to "send" but does not shutdown the channel if an error occurs.
9087    pub fn send_no_shutdown_on_err(
9088        self,
9089        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9090    ) -> Result<(), fidl::Error> {
9091        let _result = self.send_raw(result);
9092        self.drop_without_shutdown();
9093        _result
9094    }
9095
9096    fn send_raw(
9097        &self,
9098        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9099    ) -> Result<(), fidl::Error> {
9100        self.control_handle.inner.send::<fidl::encoding::ResultType<
9101            fidl::encoding::EmptyStruct,
9102            fidl_fuchsia_posix::Errno,
9103        >>(
9104            result,
9105            self.tx_id,
9106            0x6bbf00c53a4c78c2,
9107            fidl::encoding::DynamicFlags::empty(),
9108        )
9109    }
9110}
9111
9112#[must_use = "FIDL methods require a response to be sent"]
9113#[derive(Debug)]
9114pub struct BaseDatagramSocketGetNoCheckResponder {
9115    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9116    tx_id: u32,
9117}
9118
9119/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9120/// if the responder is dropped without sending a response, so that the client
9121/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9122impl std::ops::Drop for BaseDatagramSocketGetNoCheckResponder {
9123    fn drop(&mut self) {
9124        self.control_handle.shutdown();
9125        // Safety: drops once, never accessed again
9126        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9127    }
9128}
9129
9130impl fidl::endpoints::Responder for BaseDatagramSocketGetNoCheckResponder {
9131    type ControlHandle = BaseDatagramSocketControlHandle;
9132
9133    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9134        &self.control_handle
9135    }
9136
9137    fn drop_without_shutdown(mut self) {
9138        // Safety: drops once, never accessed again due to mem::forget
9139        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9140        // Prevent Drop from running (which would shut down the channel)
9141        std::mem::forget(self);
9142    }
9143}
9144
9145impl BaseDatagramSocketGetNoCheckResponder {
9146    /// Sends a response to the FIDL transaction.
9147    ///
9148    /// Sets the channel to shutdown if an error occurs.
9149    pub fn send(
9150        self,
9151        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9152    ) -> Result<(), fidl::Error> {
9153        let _result = self.send_raw(result);
9154        if _result.is_err() {
9155            self.control_handle.shutdown();
9156        }
9157        self.drop_without_shutdown();
9158        _result
9159    }
9160
9161    /// Similar to "send" but does not shutdown the channel if an error occurs.
9162    pub fn send_no_shutdown_on_err(
9163        self,
9164        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9165    ) -> Result<(), fidl::Error> {
9166        let _result = self.send_raw(result);
9167        self.drop_without_shutdown();
9168        _result
9169    }
9170
9171    fn send_raw(
9172        &self,
9173        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9174    ) -> Result<(), fidl::Error> {
9175        self.control_handle.inner.send::<fidl::encoding::ResultType<
9176            BaseSocketGetNoCheckResponse,
9177            fidl_fuchsia_posix::Errno,
9178        >>(
9179            result.map(|value| (value,)),
9180            self.tx_id,
9181            0x2cd4249286417694,
9182            fidl::encoding::DynamicFlags::empty(),
9183        )
9184    }
9185}
9186
9187#[must_use = "FIDL methods require a response to be sent"]
9188#[derive(Debug)]
9189pub struct BaseDatagramSocketSetLingerResponder {
9190    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9191    tx_id: u32,
9192}
9193
9194/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9195/// if the responder is dropped without sending a response, so that the client
9196/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9197impl std::ops::Drop for BaseDatagramSocketSetLingerResponder {
9198    fn drop(&mut self) {
9199        self.control_handle.shutdown();
9200        // Safety: drops once, never accessed again
9201        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9202    }
9203}
9204
9205impl fidl::endpoints::Responder for BaseDatagramSocketSetLingerResponder {
9206    type ControlHandle = BaseDatagramSocketControlHandle;
9207
9208    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9209        &self.control_handle
9210    }
9211
9212    fn drop_without_shutdown(mut self) {
9213        // Safety: drops once, never accessed again due to mem::forget
9214        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9215        // Prevent Drop from running (which would shut down the channel)
9216        std::mem::forget(self);
9217    }
9218}
9219
9220impl BaseDatagramSocketSetLingerResponder {
9221    /// Sends a response to the FIDL transaction.
9222    ///
9223    /// Sets the channel to shutdown if an error occurs.
9224    pub fn send(
9225        self,
9226        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9227    ) -> Result<(), fidl::Error> {
9228        let _result = self.send_raw(result);
9229        if _result.is_err() {
9230            self.control_handle.shutdown();
9231        }
9232        self.drop_without_shutdown();
9233        _result
9234    }
9235
9236    /// Similar to "send" but does not shutdown the channel if an error occurs.
9237    pub fn send_no_shutdown_on_err(
9238        self,
9239        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9240    ) -> Result<(), fidl::Error> {
9241        let _result = self.send_raw(result);
9242        self.drop_without_shutdown();
9243        _result
9244    }
9245
9246    fn send_raw(
9247        &self,
9248        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9249    ) -> Result<(), fidl::Error> {
9250        self.control_handle.inner.send::<fidl::encoding::ResultType<
9251            fidl::encoding::EmptyStruct,
9252            fidl_fuchsia_posix::Errno,
9253        >>(
9254            result,
9255            self.tx_id,
9256            0x45386351246e998e,
9257            fidl::encoding::DynamicFlags::empty(),
9258        )
9259    }
9260}
9261
9262#[must_use = "FIDL methods require a response to be sent"]
9263#[derive(Debug)]
9264pub struct BaseDatagramSocketGetLingerResponder {
9265    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9266    tx_id: u32,
9267}
9268
9269/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9270/// if the responder is dropped without sending a response, so that the client
9271/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9272impl std::ops::Drop for BaseDatagramSocketGetLingerResponder {
9273    fn drop(&mut self) {
9274        self.control_handle.shutdown();
9275        // Safety: drops once, never accessed again
9276        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9277    }
9278}
9279
9280impl fidl::endpoints::Responder for BaseDatagramSocketGetLingerResponder {
9281    type ControlHandle = BaseDatagramSocketControlHandle;
9282
9283    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9284        &self.control_handle
9285    }
9286
9287    fn drop_without_shutdown(mut self) {
9288        // Safety: drops once, never accessed again due to mem::forget
9289        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9290        // Prevent Drop from running (which would shut down the channel)
9291        std::mem::forget(self);
9292    }
9293}
9294
9295impl BaseDatagramSocketGetLingerResponder {
9296    /// Sends a response to the FIDL transaction.
9297    ///
9298    /// Sets the channel to shutdown if an error occurs.
9299    pub fn send(
9300        self,
9301        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
9302    ) -> Result<(), fidl::Error> {
9303        let _result = self.send_raw(result);
9304        if _result.is_err() {
9305            self.control_handle.shutdown();
9306        }
9307        self.drop_without_shutdown();
9308        _result
9309    }
9310
9311    /// Similar to "send" but does not shutdown the channel if an error occurs.
9312    pub fn send_no_shutdown_on_err(
9313        self,
9314        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
9315    ) -> Result<(), fidl::Error> {
9316        let _result = self.send_raw(result);
9317        self.drop_without_shutdown();
9318        _result
9319    }
9320
9321    fn send_raw(
9322        &self,
9323        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
9324    ) -> Result<(), fidl::Error> {
9325        self.control_handle.inner.send::<fidl::encoding::ResultType<
9326            BaseSocketGetLingerResponse,
9327            fidl_fuchsia_posix::Errno,
9328        >>(
9329            result,
9330            self.tx_id,
9331            0x48eb20fc5ccb0e45,
9332            fidl::encoding::DynamicFlags::empty(),
9333        )
9334    }
9335}
9336
9337#[must_use = "FIDL methods require a response to be sent"]
9338#[derive(Debug)]
9339pub struct BaseDatagramSocketSetReusePortResponder {
9340    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9341    tx_id: u32,
9342}
9343
9344/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9345/// if the responder is dropped without sending a response, so that the client
9346/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9347impl std::ops::Drop for BaseDatagramSocketSetReusePortResponder {
9348    fn drop(&mut self) {
9349        self.control_handle.shutdown();
9350        // Safety: drops once, never accessed again
9351        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9352    }
9353}
9354
9355impl fidl::endpoints::Responder for BaseDatagramSocketSetReusePortResponder {
9356    type ControlHandle = BaseDatagramSocketControlHandle;
9357
9358    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9359        &self.control_handle
9360    }
9361
9362    fn drop_without_shutdown(mut self) {
9363        // Safety: drops once, never accessed again due to mem::forget
9364        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9365        // Prevent Drop from running (which would shut down the channel)
9366        std::mem::forget(self);
9367    }
9368}
9369
9370impl BaseDatagramSocketSetReusePortResponder {
9371    /// Sends a response to the FIDL transaction.
9372    ///
9373    /// Sets the channel to shutdown if an error occurs.
9374    pub fn send(
9375        self,
9376        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9377    ) -> Result<(), fidl::Error> {
9378        let _result = self.send_raw(result);
9379        if _result.is_err() {
9380            self.control_handle.shutdown();
9381        }
9382        self.drop_without_shutdown();
9383        _result
9384    }
9385
9386    /// Similar to "send" but does not shutdown the channel if an error occurs.
9387    pub fn send_no_shutdown_on_err(
9388        self,
9389        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9390    ) -> Result<(), fidl::Error> {
9391        let _result = self.send_raw(result);
9392        self.drop_without_shutdown();
9393        _result
9394    }
9395
9396    fn send_raw(
9397        &self,
9398        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9399    ) -> Result<(), fidl::Error> {
9400        self.control_handle.inner.send::<fidl::encoding::ResultType<
9401            fidl::encoding::EmptyStruct,
9402            fidl_fuchsia_posix::Errno,
9403        >>(
9404            result,
9405            self.tx_id,
9406            0x24dd3e5cb36d9ccb,
9407            fidl::encoding::DynamicFlags::empty(),
9408        )
9409    }
9410}
9411
9412#[must_use = "FIDL methods require a response to be sent"]
9413#[derive(Debug)]
9414pub struct BaseDatagramSocketGetReusePortResponder {
9415    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9416    tx_id: u32,
9417}
9418
9419/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9420/// if the responder is dropped without sending a response, so that the client
9421/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9422impl std::ops::Drop for BaseDatagramSocketGetReusePortResponder {
9423    fn drop(&mut self) {
9424        self.control_handle.shutdown();
9425        // Safety: drops once, never accessed again
9426        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9427    }
9428}
9429
9430impl fidl::endpoints::Responder for BaseDatagramSocketGetReusePortResponder {
9431    type ControlHandle = BaseDatagramSocketControlHandle;
9432
9433    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9434        &self.control_handle
9435    }
9436
9437    fn drop_without_shutdown(mut self) {
9438        // Safety: drops once, never accessed again due to mem::forget
9439        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9440        // Prevent Drop from running (which would shut down the channel)
9441        std::mem::forget(self);
9442    }
9443}
9444
9445impl BaseDatagramSocketGetReusePortResponder {
9446    /// Sends a response to the FIDL transaction.
9447    ///
9448    /// Sets the channel to shutdown if an error occurs.
9449    pub fn send(
9450        self,
9451        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9452    ) -> Result<(), fidl::Error> {
9453        let _result = self.send_raw(result);
9454        if _result.is_err() {
9455            self.control_handle.shutdown();
9456        }
9457        self.drop_without_shutdown();
9458        _result
9459    }
9460
9461    /// Similar to "send" but does not shutdown the channel if an error occurs.
9462    pub fn send_no_shutdown_on_err(
9463        self,
9464        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9465    ) -> Result<(), fidl::Error> {
9466        let _result = self.send_raw(result);
9467        self.drop_without_shutdown();
9468        _result
9469    }
9470
9471    fn send_raw(
9472        &self,
9473        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9474    ) -> Result<(), fidl::Error> {
9475        self.control_handle.inner.send::<fidl::encoding::ResultType<
9476            BaseSocketGetReusePortResponse,
9477            fidl_fuchsia_posix::Errno,
9478        >>(
9479            result.map(|value| (value,)),
9480            self.tx_id,
9481            0x7a112c1ab54ff828,
9482            fidl::encoding::DynamicFlags::empty(),
9483        )
9484    }
9485}
9486
9487#[must_use = "FIDL methods require a response to be sent"]
9488#[derive(Debug)]
9489pub struct BaseDatagramSocketGetAcceptConnResponder {
9490    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9491    tx_id: u32,
9492}
9493
9494/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9495/// if the responder is dropped without sending a response, so that the client
9496/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9497impl std::ops::Drop for BaseDatagramSocketGetAcceptConnResponder {
9498    fn drop(&mut self) {
9499        self.control_handle.shutdown();
9500        // Safety: drops once, never accessed again
9501        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9502    }
9503}
9504
9505impl fidl::endpoints::Responder for BaseDatagramSocketGetAcceptConnResponder {
9506    type ControlHandle = BaseDatagramSocketControlHandle;
9507
9508    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9509        &self.control_handle
9510    }
9511
9512    fn drop_without_shutdown(mut self) {
9513        // Safety: drops once, never accessed again due to mem::forget
9514        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9515        // Prevent Drop from running (which would shut down the channel)
9516        std::mem::forget(self);
9517    }
9518}
9519
9520impl BaseDatagramSocketGetAcceptConnResponder {
9521    /// Sends a response to the FIDL transaction.
9522    ///
9523    /// Sets the channel to shutdown if an error occurs.
9524    pub fn send(
9525        self,
9526        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9527    ) -> Result<(), fidl::Error> {
9528        let _result = self.send_raw(result);
9529        if _result.is_err() {
9530            self.control_handle.shutdown();
9531        }
9532        self.drop_without_shutdown();
9533        _result
9534    }
9535
9536    /// Similar to "send" but does not shutdown the channel if an error occurs.
9537    pub fn send_no_shutdown_on_err(
9538        self,
9539        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9540    ) -> Result<(), fidl::Error> {
9541        let _result = self.send_raw(result);
9542        self.drop_without_shutdown();
9543        _result
9544    }
9545
9546    fn send_raw(
9547        &self,
9548        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9549    ) -> Result<(), fidl::Error> {
9550        self.control_handle.inner.send::<fidl::encoding::ResultType<
9551            BaseSocketGetAcceptConnResponse,
9552            fidl_fuchsia_posix::Errno,
9553        >>(
9554            result.map(|value| (value,)),
9555            self.tx_id,
9556            0x67ce6db6c2ec8966,
9557            fidl::encoding::DynamicFlags::empty(),
9558        )
9559    }
9560}
9561
9562#[must_use = "FIDL methods require a response to be sent"]
9563#[derive(Debug)]
9564pub struct BaseDatagramSocketSetBindToDeviceResponder {
9565    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9566    tx_id: u32,
9567}
9568
9569/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9570/// if the responder is dropped without sending a response, so that the client
9571/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9572impl std::ops::Drop for BaseDatagramSocketSetBindToDeviceResponder {
9573    fn drop(&mut self) {
9574        self.control_handle.shutdown();
9575        // Safety: drops once, never accessed again
9576        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9577    }
9578}
9579
9580impl fidl::endpoints::Responder for BaseDatagramSocketSetBindToDeviceResponder {
9581    type ControlHandle = BaseDatagramSocketControlHandle;
9582
9583    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9584        &self.control_handle
9585    }
9586
9587    fn drop_without_shutdown(mut self) {
9588        // Safety: drops once, never accessed again due to mem::forget
9589        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9590        // Prevent Drop from running (which would shut down the channel)
9591        std::mem::forget(self);
9592    }
9593}
9594
9595impl BaseDatagramSocketSetBindToDeviceResponder {
9596    /// Sends a response to the FIDL transaction.
9597    ///
9598    /// Sets the channel to shutdown if an error occurs.
9599    pub fn send(
9600        self,
9601        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9602    ) -> Result<(), fidl::Error> {
9603        let _result = self.send_raw(result);
9604        if _result.is_err() {
9605            self.control_handle.shutdown();
9606        }
9607        self.drop_without_shutdown();
9608        _result
9609    }
9610
9611    /// Similar to "send" but does not shutdown the channel if an error occurs.
9612    pub fn send_no_shutdown_on_err(
9613        self,
9614        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9615    ) -> Result<(), fidl::Error> {
9616        let _result = self.send_raw(result);
9617        self.drop_without_shutdown();
9618        _result
9619    }
9620
9621    fn send_raw(
9622        &self,
9623        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9624    ) -> Result<(), fidl::Error> {
9625        self.control_handle.inner.send::<fidl::encoding::ResultType<
9626            fidl::encoding::EmptyStruct,
9627            fidl_fuchsia_posix::Errno,
9628        >>(
9629            result,
9630            self.tx_id,
9631            0x2118b483f28aafc4,
9632            fidl::encoding::DynamicFlags::empty(),
9633        )
9634    }
9635}
9636
9637#[must_use = "FIDL methods require a response to be sent"]
9638#[derive(Debug)]
9639pub struct BaseDatagramSocketGetBindToDeviceResponder {
9640    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9641    tx_id: u32,
9642}
9643
9644/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9645/// if the responder is dropped without sending a response, so that the client
9646/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9647impl std::ops::Drop for BaseDatagramSocketGetBindToDeviceResponder {
9648    fn drop(&mut self) {
9649        self.control_handle.shutdown();
9650        // Safety: drops once, never accessed again
9651        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9652    }
9653}
9654
9655impl fidl::endpoints::Responder for BaseDatagramSocketGetBindToDeviceResponder {
9656    type ControlHandle = BaseDatagramSocketControlHandle;
9657
9658    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9659        &self.control_handle
9660    }
9661
9662    fn drop_without_shutdown(mut self) {
9663        // Safety: drops once, never accessed again due to mem::forget
9664        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9665        // Prevent Drop from running (which would shut down the channel)
9666        std::mem::forget(self);
9667    }
9668}
9669
9670impl BaseDatagramSocketGetBindToDeviceResponder {
9671    /// Sends a response to the FIDL transaction.
9672    ///
9673    /// Sets the channel to shutdown if an error occurs.
9674    pub fn send(
9675        self,
9676        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
9677    ) -> Result<(), fidl::Error> {
9678        let _result = self.send_raw(result);
9679        if _result.is_err() {
9680            self.control_handle.shutdown();
9681        }
9682        self.drop_without_shutdown();
9683        _result
9684    }
9685
9686    /// Similar to "send" but does not shutdown the channel if an error occurs.
9687    pub fn send_no_shutdown_on_err(
9688        self,
9689        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
9690    ) -> Result<(), fidl::Error> {
9691        let _result = self.send_raw(result);
9692        self.drop_without_shutdown();
9693        _result
9694    }
9695
9696    fn send_raw(
9697        &self,
9698        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
9699    ) -> Result<(), fidl::Error> {
9700        self.control_handle.inner.send::<fidl::encoding::ResultType<
9701            BaseSocketGetBindToDeviceResponse,
9702            fidl_fuchsia_posix::Errno,
9703        >>(
9704            result.map(|value| (value,)),
9705            self.tx_id,
9706            0x1ab1fbf0ef7906c8,
9707            fidl::encoding::DynamicFlags::empty(),
9708        )
9709    }
9710}
9711
9712#[must_use = "FIDL methods require a response to be sent"]
9713#[derive(Debug)]
9714pub struct BaseDatagramSocketSetBindToInterfaceIndexResponder {
9715    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9716    tx_id: u32,
9717}
9718
9719/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9720/// if the responder is dropped without sending a response, so that the client
9721/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9722impl std::ops::Drop for BaseDatagramSocketSetBindToInterfaceIndexResponder {
9723    fn drop(&mut self) {
9724        self.control_handle.shutdown();
9725        // Safety: drops once, never accessed again
9726        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9727    }
9728}
9729
9730impl fidl::endpoints::Responder for BaseDatagramSocketSetBindToInterfaceIndexResponder {
9731    type ControlHandle = BaseDatagramSocketControlHandle;
9732
9733    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9734        &self.control_handle
9735    }
9736
9737    fn drop_without_shutdown(mut self) {
9738        // Safety: drops once, never accessed again due to mem::forget
9739        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9740        // Prevent Drop from running (which would shut down the channel)
9741        std::mem::forget(self);
9742    }
9743}
9744
9745impl BaseDatagramSocketSetBindToInterfaceIndexResponder {
9746    /// Sends a response to the FIDL transaction.
9747    ///
9748    /// Sets the channel to shutdown if an error occurs.
9749    pub fn send(
9750        self,
9751        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9752    ) -> Result<(), fidl::Error> {
9753        let _result = self.send_raw(result);
9754        if _result.is_err() {
9755            self.control_handle.shutdown();
9756        }
9757        self.drop_without_shutdown();
9758        _result
9759    }
9760
9761    /// Similar to "send" but does not shutdown the channel if an error occurs.
9762    pub fn send_no_shutdown_on_err(
9763        self,
9764        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9765    ) -> Result<(), fidl::Error> {
9766        let _result = self.send_raw(result);
9767        self.drop_without_shutdown();
9768        _result
9769    }
9770
9771    fn send_raw(
9772        &self,
9773        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9774    ) -> Result<(), fidl::Error> {
9775        self.control_handle.inner.send::<fidl::encoding::ResultType<
9776            fidl::encoding::EmptyStruct,
9777            fidl_fuchsia_posix::Errno,
9778        >>(
9779            result,
9780            self.tx_id,
9781            0x6e387a0def00821,
9782            fidl::encoding::DynamicFlags::empty(),
9783        )
9784    }
9785}
9786
9787#[must_use = "FIDL methods require a response to be sent"]
9788#[derive(Debug)]
9789pub struct BaseDatagramSocketGetBindToInterfaceIndexResponder {
9790    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9791    tx_id: u32,
9792}
9793
9794/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9795/// if the responder is dropped without sending a response, so that the client
9796/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9797impl std::ops::Drop for BaseDatagramSocketGetBindToInterfaceIndexResponder {
9798    fn drop(&mut self) {
9799        self.control_handle.shutdown();
9800        // Safety: drops once, never accessed again
9801        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9802    }
9803}
9804
9805impl fidl::endpoints::Responder for BaseDatagramSocketGetBindToInterfaceIndexResponder {
9806    type ControlHandle = BaseDatagramSocketControlHandle;
9807
9808    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9809        &self.control_handle
9810    }
9811
9812    fn drop_without_shutdown(mut self) {
9813        // Safety: drops once, never accessed again due to mem::forget
9814        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9815        // Prevent Drop from running (which would shut down the channel)
9816        std::mem::forget(self);
9817    }
9818}
9819
9820impl BaseDatagramSocketGetBindToInterfaceIndexResponder {
9821    /// Sends a response to the FIDL transaction.
9822    ///
9823    /// Sets the channel to shutdown if an error occurs.
9824    pub fn send(
9825        self,
9826        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
9827    ) -> Result<(), fidl::Error> {
9828        let _result = self.send_raw(result);
9829        if _result.is_err() {
9830            self.control_handle.shutdown();
9831        }
9832        self.drop_without_shutdown();
9833        _result
9834    }
9835
9836    /// Similar to "send" but does not shutdown the channel if an error occurs.
9837    pub fn send_no_shutdown_on_err(
9838        self,
9839        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
9840    ) -> Result<(), fidl::Error> {
9841        let _result = self.send_raw(result);
9842        self.drop_without_shutdown();
9843        _result
9844    }
9845
9846    fn send_raw(
9847        &self,
9848        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
9849    ) -> Result<(), fidl::Error> {
9850        self.control_handle.inner.send::<fidl::encoding::ResultType<
9851            BaseSocketGetBindToInterfaceIndexResponse,
9852            fidl_fuchsia_posix::Errno,
9853        >>(
9854            result.map(|value| (value,)),
9855            self.tx_id,
9856            0x59c31dd3e3078295,
9857            fidl::encoding::DynamicFlags::empty(),
9858        )
9859    }
9860}
9861
9862#[must_use = "FIDL methods require a response to be sent"]
9863#[derive(Debug)]
9864pub struct BaseDatagramSocketSetTimestampResponder {
9865    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9866    tx_id: u32,
9867}
9868
9869/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9870/// if the responder is dropped without sending a response, so that the client
9871/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9872impl std::ops::Drop for BaseDatagramSocketSetTimestampResponder {
9873    fn drop(&mut self) {
9874        self.control_handle.shutdown();
9875        // Safety: drops once, never accessed again
9876        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9877    }
9878}
9879
9880impl fidl::endpoints::Responder for BaseDatagramSocketSetTimestampResponder {
9881    type ControlHandle = BaseDatagramSocketControlHandle;
9882
9883    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9884        &self.control_handle
9885    }
9886
9887    fn drop_without_shutdown(mut self) {
9888        // Safety: drops once, never accessed again due to mem::forget
9889        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9890        // Prevent Drop from running (which would shut down the channel)
9891        std::mem::forget(self);
9892    }
9893}
9894
9895impl BaseDatagramSocketSetTimestampResponder {
9896    /// Sends a response to the FIDL transaction.
9897    ///
9898    /// Sets the channel to shutdown if an error occurs.
9899    pub fn send(
9900        self,
9901        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9902    ) -> Result<(), fidl::Error> {
9903        let _result = self.send_raw(result);
9904        if _result.is_err() {
9905            self.control_handle.shutdown();
9906        }
9907        self.drop_without_shutdown();
9908        _result
9909    }
9910
9911    /// Similar to "send" but does not shutdown the channel if an error occurs.
9912    pub fn send_no_shutdown_on_err(
9913        self,
9914        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9915    ) -> Result<(), fidl::Error> {
9916        let _result = self.send_raw(result);
9917        self.drop_without_shutdown();
9918        _result
9919    }
9920
9921    fn send_raw(
9922        &self,
9923        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9924    ) -> Result<(), fidl::Error> {
9925        self.control_handle.inner.send::<fidl::encoding::ResultType<
9926            fidl::encoding::EmptyStruct,
9927            fidl_fuchsia_posix::Errno,
9928        >>(
9929            result,
9930            self.tx_id,
9931            0x285d6516c263d839,
9932            fidl::encoding::DynamicFlags::empty(),
9933        )
9934    }
9935}
9936
9937#[must_use = "FIDL methods require a response to be sent"]
9938#[derive(Debug)]
9939pub struct BaseDatagramSocketGetTimestampResponder {
9940    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9941    tx_id: u32,
9942}
9943
9944/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9945/// if the responder is dropped without sending a response, so that the client
9946/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9947impl std::ops::Drop for BaseDatagramSocketGetTimestampResponder {
9948    fn drop(&mut self) {
9949        self.control_handle.shutdown();
9950        // Safety: drops once, never accessed again
9951        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9952    }
9953}
9954
9955impl fidl::endpoints::Responder for BaseDatagramSocketGetTimestampResponder {
9956    type ControlHandle = BaseDatagramSocketControlHandle;
9957
9958    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9959        &self.control_handle
9960    }
9961
9962    fn drop_without_shutdown(mut self) {
9963        // Safety: drops once, never accessed again due to mem::forget
9964        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9965        // Prevent Drop from running (which would shut down the channel)
9966        std::mem::forget(self);
9967    }
9968}
9969
9970impl BaseDatagramSocketGetTimestampResponder {
9971    /// Sends a response to the FIDL transaction.
9972    ///
9973    /// Sets the channel to shutdown if an error occurs.
9974    pub fn send(
9975        self,
9976        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
9977    ) -> Result<(), fidl::Error> {
9978        let _result = self.send_raw(result);
9979        if _result.is_err() {
9980            self.control_handle.shutdown();
9981        }
9982        self.drop_without_shutdown();
9983        _result
9984    }
9985
9986    /// Similar to "send" but does not shutdown the channel if an error occurs.
9987    pub fn send_no_shutdown_on_err(
9988        self,
9989        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
9990    ) -> Result<(), fidl::Error> {
9991        let _result = self.send_raw(result);
9992        self.drop_without_shutdown();
9993        _result
9994    }
9995
9996    fn send_raw(
9997        &self,
9998        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
9999    ) -> Result<(), fidl::Error> {
10000        self.control_handle.inner.send::<fidl::encoding::ResultType<
10001            BaseSocketGetTimestampResponse,
10002            fidl_fuchsia_posix::Errno,
10003        >>(
10004            result.map(|value| (value,)),
10005            self.tx_id,
10006            0x49f2fffbbcc2bd27,
10007            fidl::encoding::DynamicFlags::empty(),
10008        )
10009    }
10010}
10011
10012#[must_use = "FIDL methods require a response to be sent"]
10013#[derive(Debug)]
10014pub struct BaseDatagramSocketSetMarkResponder {
10015    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10016    tx_id: u32,
10017}
10018
10019/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10020/// if the responder is dropped without sending a response, so that the client
10021/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10022impl std::ops::Drop for BaseDatagramSocketSetMarkResponder {
10023    fn drop(&mut self) {
10024        self.control_handle.shutdown();
10025        // Safety: drops once, never accessed again
10026        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10027    }
10028}
10029
10030impl fidl::endpoints::Responder for BaseDatagramSocketSetMarkResponder {
10031    type ControlHandle = BaseDatagramSocketControlHandle;
10032
10033    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10034        &self.control_handle
10035    }
10036
10037    fn drop_without_shutdown(mut self) {
10038        // Safety: drops once, never accessed again due to mem::forget
10039        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10040        // Prevent Drop from running (which would shut down the channel)
10041        std::mem::forget(self);
10042    }
10043}
10044
10045impl BaseDatagramSocketSetMarkResponder {
10046    /// Sends a response to the FIDL transaction.
10047    ///
10048    /// Sets the channel to shutdown if an error occurs.
10049    pub fn send(
10050        self,
10051        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10052    ) -> Result<(), fidl::Error> {
10053        let _result = self.send_raw(result);
10054        if _result.is_err() {
10055            self.control_handle.shutdown();
10056        }
10057        self.drop_without_shutdown();
10058        _result
10059    }
10060
10061    /// Similar to "send" but does not shutdown the channel if an error occurs.
10062    pub fn send_no_shutdown_on_err(
10063        self,
10064        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10065    ) -> Result<(), fidl::Error> {
10066        let _result = self.send_raw(result);
10067        self.drop_without_shutdown();
10068        _result
10069    }
10070
10071    fn send_raw(
10072        &self,
10073        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10074    ) -> Result<(), fidl::Error> {
10075        self.control_handle.inner.send::<fidl::encoding::ResultType<
10076            fidl::encoding::EmptyStruct,
10077            fidl_fuchsia_posix::Errno,
10078        >>(
10079            result,
10080            self.tx_id,
10081            0x6ead6de09f653236,
10082            fidl::encoding::DynamicFlags::empty(),
10083        )
10084    }
10085}
10086
10087#[must_use = "FIDL methods require a response to be sent"]
10088#[derive(Debug)]
10089pub struct BaseDatagramSocketGetMarkResponder {
10090    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10091    tx_id: u32,
10092}
10093
10094/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10095/// if the responder is dropped without sending a response, so that the client
10096/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10097impl std::ops::Drop for BaseDatagramSocketGetMarkResponder {
10098    fn drop(&mut self) {
10099        self.control_handle.shutdown();
10100        // Safety: drops once, never accessed again
10101        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10102    }
10103}
10104
10105impl fidl::endpoints::Responder for BaseDatagramSocketGetMarkResponder {
10106    type ControlHandle = BaseDatagramSocketControlHandle;
10107
10108    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10109        &self.control_handle
10110    }
10111
10112    fn drop_without_shutdown(mut self) {
10113        // Safety: drops once, never accessed again due to mem::forget
10114        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10115        // Prevent Drop from running (which would shut down the channel)
10116        std::mem::forget(self);
10117    }
10118}
10119
10120impl BaseDatagramSocketGetMarkResponder {
10121    /// Sends a response to the FIDL transaction.
10122    ///
10123    /// Sets the channel to shutdown if an error occurs.
10124    pub fn send(
10125        self,
10126        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
10127    ) -> Result<(), fidl::Error> {
10128        let _result = self.send_raw(result);
10129        if _result.is_err() {
10130            self.control_handle.shutdown();
10131        }
10132        self.drop_without_shutdown();
10133        _result
10134    }
10135
10136    /// Similar to "send" but does not shutdown the channel if an error occurs.
10137    pub fn send_no_shutdown_on_err(
10138        self,
10139        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
10140    ) -> Result<(), fidl::Error> {
10141        let _result = self.send_raw(result);
10142        self.drop_without_shutdown();
10143        _result
10144    }
10145
10146    fn send_raw(
10147        &self,
10148        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
10149    ) -> Result<(), fidl::Error> {
10150        self.control_handle.inner.send::<fidl::encoding::ResultType<
10151            BaseSocketGetMarkResponse,
10152            fidl_fuchsia_posix::Errno,
10153        >>(
10154            result.map(|mark| (mark,)),
10155            self.tx_id,
10156            0x57a2752c61d93d47,
10157            fidl::encoding::DynamicFlags::empty(),
10158        )
10159    }
10160}
10161
10162#[must_use = "FIDL methods require a response to be sent"]
10163#[derive(Debug)]
10164pub struct BaseDatagramSocketGetCookieResponder {
10165    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10166    tx_id: u32,
10167}
10168
10169/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10170/// if the responder is dropped without sending a response, so that the client
10171/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10172impl std::ops::Drop for BaseDatagramSocketGetCookieResponder {
10173    fn drop(&mut self) {
10174        self.control_handle.shutdown();
10175        // Safety: drops once, never accessed again
10176        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10177    }
10178}
10179
10180impl fidl::endpoints::Responder for BaseDatagramSocketGetCookieResponder {
10181    type ControlHandle = BaseDatagramSocketControlHandle;
10182
10183    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10184        &self.control_handle
10185    }
10186
10187    fn drop_without_shutdown(mut self) {
10188        // Safety: drops once, never accessed again due to mem::forget
10189        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10190        // Prevent Drop from running (which would shut down the channel)
10191        std::mem::forget(self);
10192    }
10193}
10194
10195impl BaseDatagramSocketGetCookieResponder {
10196    /// Sends a response to the FIDL transaction.
10197    ///
10198    /// Sets the channel to shutdown if an error occurs.
10199    pub fn send(
10200        self,
10201        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
10202    ) -> Result<(), fidl::Error> {
10203        let _result = self.send_raw(result);
10204        if _result.is_err() {
10205            self.control_handle.shutdown();
10206        }
10207        self.drop_without_shutdown();
10208        _result
10209    }
10210
10211    /// Similar to "send" but does not shutdown the channel if an error occurs.
10212    pub fn send_no_shutdown_on_err(
10213        self,
10214        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
10215    ) -> Result<(), fidl::Error> {
10216        let _result = self.send_raw(result);
10217        self.drop_without_shutdown();
10218        _result
10219    }
10220
10221    fn send_raw(
10222        &self,
10223        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
10224    ) -> Result<(), fidl::Error> {
10225        self.control_handle.inner.send::<fidl::encoding::ResultType<
10226            BaseSocketGetCookieResponse,
10227            fidl_fuchsia_posix::Errno,
10228        >>(
10229            result.map(|value| (value,)),
10230            self.tx_id,
10231            0x2c2f47fd8f924e52,
10232            fidl::encoding::DynamicFlags::empty(),
10233        )
10234    }
10235}
10236
10237#[must_use = "FIDL methods require a response to be sent"]
10238#[derive(Debug)]
10239pub struct BaseDatagramSocketBindResponder {
10240    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10241    tx_id: u32,
10242}
10243
10244/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10245/// if the responder is dropped without sending a response, so that the client
10246/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10247impl std::ops::Drop for BaseDatagramSocketBindResponder {
10248    fn drop(&mut self) {
10249        self.control_handle.shutdown();
10250        // Safety: drops once, never accessed again
10251        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10252    }
10253}
10254
10255impl fidl::endpoints::Responder for BaseDatagramSocketBindResponder {
10256    type ControlHandle = BaseDatagramSocketControlHandle;
10257
10258    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10259        &self.control_handle
10260    }
10261
10262    fn drop_without_shutdown(mut self) {
10263        // Safety: drops once, never accessed again due to mem::forget
10264        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10265        // Prevent Drop from running (which would shut down the channel)
10266        std::mem::forget(self);
10267    }
10268}
10269
10270impl BaseDatagramSocketBindResponder {
10271    /// Sends a response to the FIDL transaction.
10272    ///
10273    /// Sets the channel to shutdown if an error occurs.
10274    pub fn send(
10275        self,
10276        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10277    ) -> Result<(), fidl::Error> {
10278        let _result = self.send_raw(result);
10279        if _result.is_err() {
10280            self.control_handle.shutdown();
10281        }
10282        self.drop_without_shutdown();
10283        _result
10284    }
10285
10286    /// Similar to "send" but does not shutdown the channel if an error occurs.
10287    pub fn send_no_shutdown_on_err(
10288        self,
10289        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10290    ) -> Result<(), fidl::Error> {
10291        let _result = self.send_raw(result);
10292        self.drop_without_shutdown();
10293        _result
10294    }
10295
10296    fn send_raw(
10297        &self,
10298        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10299    ) -> Result<(), fidl::Error> {
10300        self.control_handle.inner.send::<fidl::encoding::ResultType<
10301            fidl::encoding::EmptyStruct,
10302            fidl_fuchsia_posix::Errno,
10303        >>(
10304            result,
10305            self.tx_id,
10306            0x4bc6400ae92125d,
10307            fidl::encoding::DynamicFlags::empty(),
10308        )
10309    }
10310}
10311
10312#[must_use = "FIDL methods require a response to be sent"]
10313#[derive(Debug)]
10314pub struct BaseDatagramSocketConnectResponder {
10315    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10316    tx_id: u32,
10317}
10318
10319/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10320/// if the responder is dropped without sending a response, so that the client
10321/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10322impl std::ops::Drop for BaseDatagramSocketConnectResponder {
10323    fn drop(&mut self) {
10324        self.control_handle.shutdown();
10325        // Safety: drops once, never accessed again
10326        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10327    }
10328}
10329
10330impl fidl::endpoints::Responder for BaseDatagramSocketConnectResponder {
10331    type ControlHandle = BaseDatagramSocketControlHandle;
10332
10333    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10334        &self.control_handle
10335    }
10336
10337    fn drop_without_shutdown(mut self) {
10338        // Safety: drops once, never accessed again due to mem::forget
10339        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10340        // Prevent Drop from running (which would shut down the channel)
10341        std::mem::forget(self);
10342    }
10343}
10344
10345impl BaseDatagramSocketConnectResponder {
10346    /// Sends a response to the FIDL transaction.
10347    ///
10348    /// Sets the channel to shutdown if an error occurs.
10349    pub fn send(
10350        self,
10351        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10352    ) -> Result<(), fidl::Error> {
10353        let _result = self.send_raw(result);
10354        if _result.is_err() {
10355            self.control_handle.shutdown();
10356        }
10357        self.drop_without_shutdown();
10358        _result
10359    }
10360
10361    /// Similar to "send" but does not shutdown the channel if an error occurs.
10362    pub fn send_no_shutdown_on_err(
10363        self,
10364        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10365    ) -> Result<(), fidl::Error> {
10366        let _result = self.send_raw(result);
10367        self.drop_without_shutdown();
10368        _result
10369    }
10370
10371    fn send_raw(
10372        &self,
10373        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10374    ) -> Result<(), fidl::Error> {
10375        self.control_handle.inner.send::<fidl::encoding::ResultType<
10376            fidl::encoding::EmptyStruct,
10377            fidl_fuchsia_posix::Errno,
10378        >>(
10379            result,
10380            self.tx_id,
10381            0x5f05f19bfdd38871,
10382            fidl::encoding::DynamicFlags::empty(),
10383        )
10384    }
10385}
10386
10387#[must_use = "FIDL methods require a response to be sent"]
10388#[derive(Debug)]
10389pub struct BaseDatagramSocketDisconnectResponder {
10390    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10391    tx_id: u32,
10392}
10393
10394/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10395/// if the responder is dropped without sending a response, so that the client
10396/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10397impl std::ops::Drop for BaseDatagramSocketDisconnectResponder {
10398    fn drop(&mut self) {
10399        self.control_handle.shutdown();
10400        // Safety: drops once, never accessed again
10401        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10402    }
10403}
10404
10405impl fidl::endpoints::Responder for BaseDatagramSocketDisconnectResponder {
10406    type ControlHandle = BaseDatagramSocketControlHandle;
10407
10408    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10409        &self.control_handle
10410    }
10411
10412    fn drop_without_shutdown(mut self) {
10413        // Safety: drops once, never accessed again due to mem::forget
10414        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10415        // Prevent Drop from running (which would shut down the channel)
10416        std::mem::forget(self);
10417    }
10418}
10419
10420impl BaseDatagramSocketDisconnectResponder {
10421    /// Sends a response to the FIDL transaction.
10422    ///
10423    /// Sets the channel to shutdown if an error occurs.
10424    pub fn send(
10425        self,
10426        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10427    ) -> Result<(), fidl::Error> {
10428        let _result = self.send_raw(result);
10429        if _result.is_err() {
10430            self.control_handle.shutdown();
10431        }
10432        self.drop_without_shutdown();
10433        _result
10434    }
10435
10436    /// Similar to "send" but does not shutdown the channel if an error occurs.
10437    pub fn send_no_shutdown_on_err(
10438        self,
10439        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10440    ) -> Result<(), fidl::Error> {
10441        let _result = self.send_raw(result);
10442        self.drop_without_shutdown();
10443        _result
10444    }
10445
10446    fn send_raw(
10447        &self,
10448        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10449    ) -> Result<(), fidl::Error> {
10450        self.control_handle.inner.send::<fidl::encoding::ResultType<
10451            fidl::encoding::EmptyStruct,
10452            fidl_fuchsia_posix::Errno,
10453        >>(
10454            result,
10455            self.tx_id,
10456            0x74e63b91f7b29b2,
10457            fidl::encoding::DynamicFlags::empty(),
10458        )
10459    }
10460}
10461
10462#[must_use = "FIDL methods require a response to be sent"]
10463#[derive(Debug)]
10464pub struct BaseDatagramSocketGetSockNameResponder {
10465    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10466    tx_id: u32,
10467}
10468
10469/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10470/// if the responder is dropped without sending a response, so that the client
10471/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10472impl std::ops::Drop for BaseDatagramSocketGetSockNameResponder {
10473    fn drop(&mut self) {
10474        self.control_handle.shutdown();
10475        // Safety: drops once, never accessed again
10476        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10477    }
10478}
10479
10480impl fidl::endpoints::Responder for BaseDatagramSocketGetSockNameResponder {
10481    type ControlHandle = BaseDatagramSocketControlHandle;
10482
10483    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10484        &self.control_handle
10485    }
10486
10487    fn drop_without_shutdown(mut self) {
10488        // Safety: drops once, never accessed again due to mem::forget
10489        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10490        // Prevent Drop from running (which would shut down the channel)
10491        std::mem::forget(self);
10492    }
10493}
10494
10495impl BaseDatagramSocketGetSockNameResponder {
10496    /// Sends a response to the FIDL transaction.
10497    ///
10498    /// Sets the channel to shutdown if an error occurs.
10499    pub fn send(
10500        self,
10501        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
10502    ) -> Result<(), fidl::Error> {
10503        let _result = self.send_raw(result);
10504        if _result.is_err() {
10505            self.control_handle.shutdown();
10506        }
10507        self.drop_without_shutdown();
10508        _result
10509    }
10510
10511    /// Similar to "send" but does not shutdown the channel if an error occurs.
10512    pub fn send_no_shutdown_on_err(
10513        self,
10514        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
10515    ) -> Result<(), fidl::Error> {
10516        let _result = self.send_raw(result);
10517        self.drop_without_shutdown();
10518        _result
10519    }
10520
10521    fn send_raw(
10522        &self,
10523        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
10524    ) -> Result<(), fidl::Error> {
10525        self.control_handle.inner.send::<fidl::encoding::ResultType<
10526            BaseNetworkSocketGetSockNameResponse,
10527            fidl_fuchsia_posix::Errno,
10528        >>(
10529            result.map(|addr| (addr,)),
10530            self.tx_id,
10531            0x475f23f84a1a4f85,
10532            fidl::encoding::DynamicFlags::empty(),
10533        )
10534    }
10535}
10536
10537#[must_use = "FIDL methods require a response to be sent"]
10538#[derive(Debug)]
10539pub struct BaseDatagramSocketGetPeerNameResponder {
10540    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10541    tx_id: u32,
10542}
10543
10544/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10545/// if the responder is dropped without sending a response, so that the client
10546/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10547impl std::ops::Drop for BaseDatagramSocketGetPeerNameResponder {
10548    fn drop(&mut self) {
10549        self.control_handle.shutdown();
10550        // Safety: drops once, never accessed again
10551        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10552    }
10553}
10554
10555impl fidl::endpoints::Responder for BaseDatagramSocketGetPeerNameResponder {
10556    type ControlHandle = BaseDatagramSocketControlHandle;
10557
10558    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10559        &self.control_handle
10560    }
10561
10562    fn drop_without_shutdown(mut self) {
10563        // Safety: drops once, never accessed again due to mem::forget
10564        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10565        // Prevent Drop from running (which would shut down the channel)
10566        std::mem::forget(self);
10567    }
10568}
10569
10570impl BaseDatagramSocketGetPeerNameResponder {
10571    /// Sends a response to the FIDL transaction.
10572    ///
10573    /// Sets the channel to shutdown if an error occurs.
10574    pub fn send(
10575        self,
10576        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
10577    ) -> Result<(), fidl::Error> {
10578        let _result = self.send_raw(result);
10579        if _result.is_err() {
10580            self.control_handle.shutdown();
10581        }
10582        self.drop_without_shutdown();
10583        _result
10584    }
10585
10586    /// Similar to "send" but does not shutdown the channel if an error occurs.
10587    pub fn send_no_shutdown_on_err(
10588        self,
10589        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
10590    ) -> Result<(), fidl::Error> {
10591        let _result = self.send_raw(result);
10592        self.drop_without_shutdown();
10593        _result
10594    }
10595
10596    fn send_raw(
10597        &self,
10598        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
10599    ) -> Result<(), fidl::Error> {
10600        self.control_handle.inner.send::<fidl::encoding::ResultType<
10601            BaseNetworkSocketGetPeerNameResponse,
10602            fidl_fuchsia_posix::Errno,
10603        >>(
10604            result.map(|addr| (addr,)),
10605            self.tx_id,
10606            0x1ffecf4bd5b6432e,
10607            fidl::encoding::DynamicFlags::empty(),
10608        )
10609    }
10610}
10611
10612#[must_use = "FIDL methods require a response to be sent"]
10613#[derive(Debug)]
10614pub struct BaseDatagramSocketShutdownResponder {
10615    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10616    tx_id: u32,
10617}
10618
10619/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10620/// if the responder is dropped without sending a response, so that the client
10621/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10622impl std::ops::Drop for BaseDatagramSocketShutdownResponder {
10623    fn drop(&mut self) {
10624        self.control_handle.shutdown();
10625        // Safety: drops once, never accessed again
10626        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10627    }
10628}
10629
10630impl fidl::endpoints::Responder for BaseDatagramSocketShutdownResponder {
10631    type ControlHandle = BaseDatagramSocketControlHandle;
10632
10633    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10634        &self.control_handle
10635    }
10636
10637    fn drop_without_shutdown(mut self) {
10638        // Safety: drops once, never accessed again due to mem::forget
10639        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10640        // Prevent Drop from running (which would shut down the channel)
10641        std::mem::forget(self);
10642    }
10643}
10644
10645impl BaseDatagramSocketShutdownResponder {
10646    /// Sends a response to the FIDL transaction.
10647    ///
10648    /// Sets the channel to shutdown if an error occurs.
10649    pub fn send(
10650        self,
10651        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10652    ) -> Result<(), fidl::Error> {
10653        let _result = self.send_raw(result);
10654        if _result.is_err() {
10655            self.control_handle.shutdown();
10656        }
10657        self.drop_without_shutdown();
10658        _result
10659    }
10660
10661    /// Similar to "send" but does not shutdown the channel if an error occurs.
10662    pub fn send_no_shutdown_on_err(
10663        self,
10664        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10665    ) -> Result<(), fidl::Error> {
10666        let _result = self.send_raw(result);
10667        self.drop_without_shutdown();
10668        _result
10669    }
10670
10671    fn send_raw(
10672        &self,
10673        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10674    ) -> Result<(), fidl::Error> {
10675        self.control_handle.inner.send::<fidl::encoding::ResultType<
10676            fidl::encoding::EmptyStruct,
10677            fidl_fuchsia_posix::Errno,
10678        >>(
10679            result,
10680            self.tx_id,
10681            0x247f38b6db68c336,
10682            fidl::encoding::DynamicFlags::empty(),
10683        )
10684    }
10685}
10686
10687#[must_use = "FIDL methods require a response to be sent"]
10688#[derive(Debug)]
10689pub struct BaseDatagramSocketSetIpTypeOfServiceResponder {
10690    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10691    tx_id: u32,
10692}
10693
10694/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10695/// if the responder is dropped without sending a response, so that the client
10696/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10697impl std::ops::Drop for BaseDatagramSocketSetIpTypeOfServiceResponder {
10698    fn drop(&mut self) {
10699        self.control_handle.shutdown();
10700        // Safety: drops once, never accessed again
10701        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10702    }
10703}
10704
10705impl fidl::endpoints::Responder for BaseDatagramSocketSetIpTypeOfServiceResponder {
10706    type ControlHandle = BaseDatagramSocketControlHandle;
10707
10708    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10709        &self.control_handle
10710    }
10711
10712    fn drop_without_shutdown(mut self) {
10713        // Safety: drops once, never accessed again due to mem::forget
10714        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10715        // Prevent Drop from running (which would shut down the channel)
10716        std::mem::forget(self);
10717    }
10718}
10719
10720impl BaseDatagramSocketSetIpTypeOfServiceResponder {
10721    /// Sends a response to the FIDL transaction.
10722    ///
10723    /// Sets the channel to shutdown if an error occurs.
10724    pub fn send(
10725        self,
10726        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10727    ) -> Result<(), fidl::Error> {
10728        let _result = self.send_raw(result);
10729        if _result.is_err() {
10730            self.control_handle.shutdown();
10731        }
10732        self.drop_without_shutdown();
10733        _result
10734    }
10735
10736    /// Similar to "send" but does not shutdown the channel if an error occurs.
10737    pub fn send_no_shutdown_on_err(
10738        self,
10739        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10740    ) -> Result<(), fidl::Error> {
10741        let _result = self.send_raw(result);
10742        self.drop_without_shutdown();
10743        _result
10744    }
10745
10746    fn send_raw(
10747        &self,
10748        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10749    ) -> Result<(), fidl::Error> {
10750        self.control_handle.inner.send::<fidl::encoding::ResultType<
10751            fidl::encoding::EmptyStruct,
10752            fidl_fuchsia_posix::Errno,
10753        >>(
10754            result,
10755            self.tx_id,
10756            0x995c600475b6d46,
10757            fidl::encoding::DynamicFlags::empty(),
10758        )
10759    }
10760}
10761
10762#[must_use = "FIDL methods require a response to be sent"]
10763#[derive(Debug)]
10764pub struct BaseDatagramSocketGetIpTypeOfServiceResponder {
10765    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10766    tx_id: u32,
10767}
10768
10769/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10770/// if the responder is dropped without sending a response, so that the client
10771/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10772impl std::ops::Drop for BaseDatagramSocketGetIpTypeOfServiceResponder {
10773    fn drop(&mut self) {
10774        self.control_handle.shutdown();
10775        // Safety: drops once, never accessed again
10776        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10777    }
10778}
10779
10780impl fidl::endpoints::Responder for BaseDatagramSocketGetIpTypeOfServiceResponder {
10781    type ControlHandle = BaseDatagramSocketControlHandle;
10782
10783    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10784        &self.control_handle
10785    }
10786
10787    fn drop_without_shutdown(mut self) {
10788        // Safety: drops once, never accessed again due to mem::forget
10789        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10790        // Prevent Drop from running (which would shut down the channel)
10791        std::mem::forget(self);
10792    }
10793}
10794
10795impl BaseDatagramSocketGetIpTypeOfServiceResponder {
10796    /// Sends a response to the FIDL transaction.
10797    ///
10798    /// Sets the channel to shutdown if an error occurs.
10799    pub fn send(
10800        self,
10801        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
10802    ) -> Result<(), fidl::Error> {
10803        let _result = self.send_raw(result);
10804        if _result.is_err() {
10805            self.control_handle.shutdown();
10806        }
10807        self.drop_without_shutdown();
10808        _result
10809    }
10810
10811    /// Similar to "send" but does not shutdown the channel if an error occurs.
10812    pub fn send_no_shutdown_on_err(
10813        self,
10814        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
10815    ) -> Result<(), fidl::Error> {
10816        let _result = self.send_raw(result);
10817        self.drop_without_shutdown();
10818        _result
10819    }
10820
10821    fn send_raw(
10822        &self,
10823        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
10824    ) -> Result<(), fidl::Error> {
10825        self.control_handle.inner.send::<fidl::encoding::ResultType<
10826            BaseNetworkSocketGetIpTypeOfServiceResponse,
10827            fidl_fuchsia_posix::Errno,
10828        >>(
10829            result.map(|value| (value,)),
10830            self.tx_id,
10831            0x3814a04259f75fcb,
10832            fidl::encoding::DynamicFlags::empty(),
10833        )
10834    }
10835}
10836
10837#[must_use = "FIDL methods require a response to be sent"]
10838#[derive(Debug)]
10839pub struct BaseDatagramSocketSetIpTtlResponder {
10840    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10841    tx_id: u32,
10842}
10843
10844/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10845/// if the responder is dropped without sending a response, so that the client
10846/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10847impl std::ops::Drop for BaseDatagramSocketSetIpTtlResponder {
10848    fn drop(&mut self) {
10849        self.control_handle.shutdown();
10850        // Safety: drops once, never accessed again
10851        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10852    }
10853}
10854
10855impl fidl::endpoints::Responder for BaseDatagramSocketSetIpTtlResponder {
10856    type ControlHandle = BaseDatagramSocketControlHandle;
10857
10858    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10859        &self.control_handle
10860    }
10861
10862    fn drop_without_shutdown(mut self) {
10863        // Safety: drops once, never accessed again due to mem::forget
10864        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10865        // Prevent Drop from running (which would shut down the channel)
10866        std::mem::forget(self);
10867    }
10868}
10869
10870impl BaseDatagramSocketSetIpTtlResponder {
10871    /// Sends a response to the FIDL transaction.
10872    ///
10873    /// Sets the channel to shutdown if an error occurs.
10874    pub fn send(
10875        self,
10876        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10877    ) -> Result<(), fidl::Error> {
10878        let _result = self.send_raw(result);
10879        if _result.is_err() {
10880            self.control_handle.shutdown();
10881        }
10882        self.drop_without_shutdown();
10883        _result
10884    }
10885
10886    /// Similar to "send" but does not shutdown the channel if an error occurs.
10887    pub fn send_no_shutdown_on_err(
10888        self,
10889        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10890    ) -> Result<(), fidl::Error> {
10891        let _result = self.send_raw(result);
10892        self.drop_without_shutdown();
10893        _result
10894    }
10895
10896    fn send_raw(
10897        &self,
10898        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10899    ) -> Result<(), fidl::Error> {
10900        self.control_handle.inner.send::<fidl::encoding::ResultType<
10901            fidl::encoding::EmptyStruct,
10902            fidl_fuchsia_posix::Errno,
10903        >>(
10904            result,
10905            self.tx_id,
10906            0x29e2424b433ae1ef,
10907            fidl::encoding::DynamicFlags::empty(),
10908        )
10909    }
10910}
10911
10912#[must_use = "FIDL methods require a response to be sent"]
10913#[derive(Debug)]
10914pub struct BaseDatagramSocketGetIpTtlResponder {
10915    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10916    tx_id: u32,
10917}
10918
10919/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10920/// if the responder is dropped without sending a response, so that the client
10921/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10922impl std::ops::Drop for BaseDatagramSocketGetIpTtlResponder {
10923    fn drop(&mut self) {
10924        self.control_handle.shutdown();
10925        // Safety: drops once, never accessed again
10926        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10927    }
10928}
10929
10930impl fidl::endpoints::Responder for BaseDatagramSocketGetIpTtlResponder {
10931    type ControlHandle = BaseDatagramSocketControlHandle;
10932
10933    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10934        &self.control_handle
10935    }
10936
10937    fn drop_without_shutdown(mut self) {
10938        // Safety: drops once, never accessed again due to mem::forget
10939        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10940        // Prevent Drop from running (which would shut down the channel)
10941        std::mem::forget(self);
10942    }
10943}
10944
10945impl BaseDatagramSocketGetIpTtlResponder {
10946    /// Sends a response to the FIDL transaction.
10947    ///
10948    /// Sets the channel to shutdown if an error occurs.
10949    pub fn send(
10950        self,
10951        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
10952    ) -> Result<(), fidl::Error> {
10953        let _result = self.send_raw(result);
10954        if _result.is_err() {
10955            self.control_handle.shutdown();
10956        }
10957        self.drop_without_shutdown();
10958        _result
10959    }
10960
10961    /// Similar to "send" but does not shutdown the channel if an error occurs.
10962    pub fn send_no_shutdown_on_err(
10963        self,
10964        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
10965    ) -> Result<(), fidl::Error> {
10966        let _result = self.send_raw(result);
10967        self.drop_without_shutdown();
10968        _result
10969    }
10970
10971    fn send_raw(
10972        &self,
10973        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
10974    ) -> Result<(), fidl::Error> {
10975        self.control_handle.inner.send::<fidl::encoding::ResultType<
10976            BaseNetworkSocketGetIpTtlResponse,
10977            fidl_fuchsia_posix::Errno,
10978        >>(
10979            result.map(|value| (value,)),
10980            self.tx_id,
10981            0x47e47fa1f24da471,
10982            fidl::encoding::DynamicFlags::empty(),
10983        )
10984    }
10985}
10986
10987#[must_use = "FIDL methods require a response to be sent"]
10988#[derive(Debug)]
10989pub struct BaseDatagramSocketSetIpPacketInfoResponder {
10990    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10991    tx_id: u32,
10992}
10993
10994/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10995/// if the responder is dropped without sending a response, so that the client
10996/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10997impl std::ops::Drop for BaseDatagramSocketSetIpPacketInfoResponder {
10998    fn drop(&mut self) {
10999        self.control_handle.shutdown();
11000        // Safety: drops once, never accessed again
11001        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11002    }
11003}
11004
11005impl fidl::endpoints::Responder for BaseDatagramSocketSetIpPacketInfoResponder {
11006    type ControlHandle = BaseDatagramSocketControlHandle;
11007
11008    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11009        &self.control_handle
11010    }
11011
11012    fn drop_without_shutdown(mut self) {
11013        // Safety: drops once, never accessed again due to mem::forget
11014        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11015        // Prevent Drop from running (which would shut down the channel)
11016        std::mem::forget(self);
11017    }
11018}
11019
11020impl BaseDatagramSocketSetIpPacketInfoResponder {
11021    /// Sends a response to the FIDL transaction.
11022    ///
11023    /// Sets the channel to shutdown if an error occurs.
11024    pub fn send(
11025        self,
11026        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11027    ) -> Result<(), fidl::Error> {
11028        let _result = self.send_raw(result);
11029        if _result.is_err() {
11030            self.control_handle.shutdown();
11031        }
11032        self.drop_without_shutdown();
11033        _result
11034    }
11035
11036    /// Similar to "send" but does not shutdown the channel if an error occurs.
11037    pub fn send_no_shutdown_on_err(
11038        self,
11039        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11040    ) -> Result<(), fidl::Error> {
11041        let _result = self.send_raw(result);
11042        self.drop_without_shutdown();
11043        _result
11044    }
11045
11046    fn send_raw(
11047        &self,
11048        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11049    ) -> Result<(), fidl::Error> {
11050        self.control_handle.inner.send::<fidl::encoding::ResultType<
11051            fidl::encoding::EmptyStruct,
11052            fidl_fuchsia_posix::Errno,
11053        >>(
11054            result,
11055            self.tx_id,
11056            0x392d16bee20c0e16,
11057            fidl::encoding::DynamicFlags::empty(),
11058        )
11059    }
11060}
11061
11062#[must_use = "FIDL methods require a response to be sent"]
11063#[derive(Debug)]
11064pub struct BaseDatagramSocketGetIpPacketInfoResponder {
11065    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11066    tx_id: u32,
11067}
11068
11069/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11070/// if the responder is dropped without sending a response, so that the client
11071/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11072impl std::ops::Drop for BaseDatagramSocketGetIpPacketInfoResponder {
11073    fn drop(&mut self) {
11074        self.control_handle.shutdown();
11075        // Safety: drops once, never accessed again
11076        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11077    }
11078}
11079
11080impl fidl::endpoints::Responder for BaseDatagramSocketGetIpPacketInfoResponder {
11081    type ControlHandle = BaseDatagramSocketControlHandle;
11082
11083    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11084        &self.control_handle
11085    }
11086
11087    fn drop_without_shutdown(mut self) {
11088        // Safety: drops once, never accessed again due to mem::forget
11089        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11090        // Prevent Drop from running (which would shut down the channel)
11091        std::mem::forget(self);
11092    }
11093}
11094
11095impl BaseDatagramSocketGetIpPacketInfoResponder {
11096    /// Sends a response to the FIDL transaction.
11097    ///
11098    /// Sets the channel to shutdown if an error occurs.
11099    pub fn send(
11100        self,
11101        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
11102    ) -> Result<(), fidl::Error> {
11103        let _result = self.send_raw(result);
11104        if _result.is_err() {
11105            self.control_handle.shutdown();
11106        }
11107        self.drop_without_shutdown();
11108        _result
11109    }
11110
11111    /// Similar to "send" but does not shutdown the channel if an error occurs.
11112    pub fn send_no_shutdown_on_err(
11113        self,
11114        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
11115    ) -> Result<(), fidl::Error> {
11116        let _result = self.send_raw(result);
11117        self.drop_without_shutdown();
11118        _result
11119    }
11120
11121    fn send_raw(
11122        &self,
11123        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
11124    ) -> Result<(), fidl::Error> {
11125        self.control_handle.inner.send::<fidl::encoding::ResultType<
11126            BaseNetworkSocketGetIpPacketInfoResponse,
11127            fidl_fuchsia_posix::Errno,
11128        >>(
11129            result.map(|value| (value,)),
11130            self.tx_id,
11131            0x54b505f242280740,
11132            fidl::encoding::DynamicFlags::empty(),
11133        )
11134    }
11135}
11136
11137#[must_use = "FIDL methods require a response to be sent"]
11138#[derive(Debug)]
11139pub struct BaseDatagramSocketSetIpReceiveTypeOfServiceResponder {
11140    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11141    tx_id: u32,
11142}
11143
11144/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11145/// if the responder is dropped without sending a response, so that the client
11146/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11147impl std::ops::Drop for BaseDatagramSocketSetIpReceiveTypeOfServiceResponder {
11148    fn drop(&mut self) {
11149        self.control_handle.shutdown();
11150        // Safety: drops once, never accessed again
11151        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11152    }
11153}
11154
11155impl fidl::endpoints::Responder for BaseDatagramSocketSetIpReceiveTypeOfServiceResponder {
11156    type ControlHandle = BaseDatagramSocketControlHandle;
11157
11158    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11159        &self.control_handle
11160    }
11161
11162    fn drop_without_shutdown(mut self) {
11163        // Safety: drops once, never accessed again due to mem::forget
11164        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11165        // Prevent Drop from running (which would shut down the channel)
11166        std::mem::forget(self);
11167    }
11168}
11169
11170impl BaseDatagramSocketSetIpReceiveTypeOfServiceResponder {
11171    /// Sends a response to the FIDL transaction.
11172    ///
11173    /// Sets the channel to shutdown if an error occurs.
11174    pub fn send(
11175        self,
11176        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11177    ) -> Result<(), fidl::Error> {
11178        let _result = self.send_raw(result);
11179        if _result.is_err() {
11180            self.control_handle.shutdown();
11181        }
11182        self.drop_without_shutdown();
11183        _result
11184    }
11185
11186    /// Similar to "send" but does not shutdown the channel if an error occurs.
11187    pub fn send_no_shutdown_on_err(
11188        self,
11189        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11190    ) -> Result<(), fidl::Error> {
11191        let _result = self.send_raw(result);
11192        self.drop_without_shutdown();
11193        _result
11194    }
11195
11196    fn send_raw(
11197        &self,
11198        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11199    ) -> Result<(), fidl::Error> {
11200        self.control_handle.inner.send::<fidl::encoding::ResultType<
11201            fidl::encoding::EmptyStruct,
11202            fidl_fuchsia_posix::Errno,
11203        >>(
11204            result,
11205            self.tx_id,
11206            0x6c4f6714995f84ef,
11207            fidl::encoding::DynamicFlags::empty(),
11208        )
11209    }
11210}
11211
11212#[must_use = "FIDL methods require a response to be sent"]
11213#[derive(Debug)]
11214pub struct BaseDatagramSocketGetIpReceiveTypeOfServiceResponder {
11215    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11216    tx_id: u32,
11217}
11218
11219/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11220/// if the responder is dropped without sending a response, so that the client
11221/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11222impl std::ops::Drop for BaseDatagramSocketGetIpReceiveTypeOfServiceResponder {
11223    fn drop(&mut self) {
11224        self.control_handle.shutdown();
11225        // Safety: drops once, never accessed again
11226        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11227    }
11228}
11229
11230impl fidl::endpoints::Responder for BaseDatagramSocketGetIpReceiveTypeOfServiceResponder {
11231    type ControlHandle = BaseDatagramSocketControlHandle;
11232
11233    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11234        &self.control_handle
11235    }
11236
11237    fn drop_without_shutdown(mut self) {
11238        // Safety: drops once, never accessed again due to mem::forget
11239        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11240        // Prevent Drop from running (which would shut down the channel)
11241        std::mem::forget(self);
11242    }
11243}
11244
11245impl BaseDatagramSocketGetIpReceiveTypeOfServiceResponder {
11246    /// Sends a response to the FIDL transaction.
11247    ///
11248    /// Sets the channel to shutdown if an error occurs.
11249    pub fn send(
11250        self,
11251        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
11252    ) -> Result<(), fidl::Error> {
11253        let _result = self.send_raw(result);
11254        if _result.is_err() {
11255            self.control_handle.shutdown();
11256        }
11257        self.drop_without_shutdown();
11258        _result
11259    }
11260
11261    /// Similar to "send" but does not shutdown the channel if an error occurs.
11262    pub fn send_no_shutdown_on_err(
11263        self,
11264        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
11265    ) -> Result<(), fidl::Error> {
11266        let _result = self.send_raw(result);
11267        self.drop_without_shutdown();
11268        _result
11269    }
11270
11271    fn send_raw(
11272        &self,
11273        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
11274    ) -> Result<(), fidl::Error> {
11275        self.control_handle.inner.send::<fidl::encoding::ResultType<
11276            BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
11277            fidl_fuchsia_posix::Errno,
11278        >>(
11279            result.map(|value| (value,)),
11280            self.tx_id,
11281            0x4158ba7dc2795960,
11282            fidl::encoding::DynamicFlags::empty(),
11283        )
11284    }
11285}
11286
11287#[must_use = "FIDL methods require a response to be sent"]
11288#[derive(Debug)]
11289pub struct BaseDatagramSocketSetIpReceiveTtlResponder {
11290    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11291    tx_id: u32,
11292}
11293
11294/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11295/// if the responder is dropped without sending a response, so that the client
11296/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11297impl std::ops::Drop for BaseDatagramSocketSetIpReceiveTtlResponder {
11298    fn drop(&mut self) {
11299        self.control_handle.shutdown();
11300        // Safety: drops once, never accessed again
11301        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11302    }
11303}
11304
11305impl fidl::endpoints::Responder for BaseDatagramSocketSetIpReceiveTtlResponder {
11306    type ControlHandle = BaseDatagramSocketControlHandle;
11307
11308    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11309        &self.control_handle
11310    }
11311
11312    fn drop_without_shutdown(mut self) {
11313        // Safety: drops once, never accessed again due to mem::forget
11314        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11315        // Prevent Drop from running (which would shut down the channel)
11316        std::mem::forget(self);
11317    }
11318}
11319
11320impl BaseDatagramSocketSetIpReceiveTtlResponder {
11321    /// Sends a response to the FIDL transaction.
11322    ///
11323    /// Sets the channel to shutdown if an error occurs.
11324    pub fn send(
11325        self,
11326        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11327    ) -> Result<(), fidl::Error> {
11328        let _result = self.send_raw(result);
11329        if _result.is_err() {
11330            self.control_handle.shutdown();
11331        }
11332        self.drop_without_shutdown();
11333        _result
11334    }
11335
11336    /// Similar to "send" but does not shutdown the channel if an error occurs.
11337    pub fn send_no_shutdown_on_err(
11338        self,
11339        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11340    ) -> Result<(), fidl::Error> {
11341        let _result = self.send_raw(result);
11342        self.drop_without_shutdown();
11343        _result
11344    }
11345
11346    fn send_raw(
11347        &self,
11348        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11349    ) -> Result<(), fidl::Error> {
11350        self.control_handle.inner.send::<fidl::encoding::ResultType<
11351            fidl::encoding::EmptyStruct,
11352            fidl_fuchsia_posix::Errno,
11353        >>(
11354            result,
11355            self.tx_id,
11356            0x46f15be0ce0ab82b,
11357            fidl::encoding::DynamicFlags::empty(),
11358        )
11359    }
11360}
11361
11362#[must_use = "FIDL methods require a response to be sent"]
11363#[derive(Debug)]
11364pub struct BaseDatagramSocketGetIpReceiveTtlResponder {
11365    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11366    tx_id: u32,
11367}
11368
11369/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11370/// if the responder is dropped without sending a response, so that the client
11371/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11372impl std::ops::Drop for BaseDatagramSocketGetIpReceiveTtlResponder {
11373    fn drop(&mut self) {
11374        self.control_handle.shutdown();
11375        // Safety: drops once, never accessed again
11376        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11377    }
11378}
11379
11380impl fidl::endpoints::Responder for BaseDatagramSocketGetIpReceiveTtlResponder {
11381    type ControlHandle = BaseDatagramSocketControlHandle;
11382
11383    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11384        &self.control_handle
11385    }
11386
11387    fn drop_without_shutdown(mut self) {
11388        // Safety: drops once, never accessed again due to mem::forget
11389        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11390        // Prevent Drop from running (which would shut down the channel)
11391        std::mem::forget(self);
11392    }
11393}
11394
11395impl BaseDatagramSocketGetIpReceiveTtlResponder {
11396    /// Sends a response to the FIDL transaction.
11397    ///
11398    /// Sets the channel to shutdown if an error occurs.
11399    pub fn send(
11400        self,
11401        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
11402    ) -> Result<(), fidl::Error> {
11403        let _result = self.send_raw(result);
11404        if _result.is_err() {
11405            self.control_handle.shutdown();
11406        }
11407        self.drop_without_shutdown();
11408        _result
11409    }
11410
11411    /// Similar to "send" but does not shutdown the channel if an error occurs.
11412    pub fn send_no_shutdown_on_err(
11413        self,
11414        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
11415    ) -> Result<(), fidl::Error> {
11416        let _result = self.send_raw(result);
11417        self.drop_without_shutdown();
11418        _result
11419    }
11420
11421    fn send_raw(
11422        &self,
11423        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
11424    ) -> Result<(), fidl::Error> {
11425        self.control_handle.inner.send::<fidl::encoding::ResultType<
11426            BaseNetworkSocketGetIpReceiveTtlResponse,
11427            fidl_fuchsia_posix::Errno,
11428        >>(
11429            result.map(|value| (value,)),
11430            self.tx_id,
11431            0x678ddd5a5dfa2eb5,
11432            fidl::encoding::DynamicFlags::empty(),
11433        )
11434    }
11435}
11436
11437#[must_use = "FIDL methods require a response to be sent"]
11438#[derive(Debug)]
11439pub struct BaseDatagramSocketSetIpMulticastInterfaceResponder {
11440    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11441    tx_id: u32,
11442}
11443
11444/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11445/// if the responder is dropped without sending a response, so that the client
11446/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11447impl std::ops::Drop for BaseDatagramSocketSetIpMulticastInterfaceResponder {
11448    fn drop(&mut self) {
11449        self.control_handle.shutdown();
11450        // Safety: drops once, never accessed again
11451        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11452    }
11453}
11454
11455impl fidl::endpoints::Responder for BaseDatagramSocketSetIpMulticastInterfaceResponder {
11456    type ControlHandle = BaseDatagramSocketControlHandle;
11457
11458    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11459        &self.control_handle
11460    }
11461
11462    fn drop_without_shutdown(mut self) {
11463        // Safety: drops once, never accessed again due to mem::forget
11464        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11465        // Prevent Drop from running (which would shut down the channel)
11466        std::mem::forget(self);
11467    }
11468}
11469
11470impl BaseDatagramSocketSetIpMulticastInterfaceResponder {
11471    /// Sends a response to the FIDL transaction.
11472    ///
11473    /// Sets the channel to shutdown if an error occurs.
11474    pub fn send(
11475        self,
11476        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11477    ) -> Result<(), fidl::Error> {
11478        let _result = self.send_raw(result);
11479        if _result.is_err() {
11480            self.control_handle.shutdown();
11481        }
11482        self.drop_without_shutdown();
11483        _result
11484    }
11485
11486    /// Similar to "send" but does not shutdown the channel if an error occurs.
11487    pub fn send_no_shutdown_on_err(
11488        self,
11489        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11490    ) -> Result<(), fidl::Error> {
11491        let _result = self.send_raw(result);
11492        self.drop_without_shutdown();
11493        _result
11494    }
11495
11496    fn send_raw(
11497        &self,
11498        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11499    ) -> Result<(), fidl::Error> {
11500        self.control_handle.inner.send::<fidl::encoding::ResultType<
11501            fidl::encoding::EmptyStruct,
11502            fidl_fuchsia_posix::Errno,
11503        >>(
11504            result,
11505            self.tx_id,
11506            0x752fbfa9b12befe,
11507            fidl::encoding::DynamicFlags::empty(),
11508        )
11509    }
11510}
11511
11512#[must_use = "FIDL methods require a response to be sent"]
11513#[derive(Debug)]
11514pub struct BaseDatagramSocketGetIpMulticastInterfaceResponder {
11515    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11516    tx_id: u32,
11517}
11518
11519/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11520/// if the responder is dropped without sending a response, so that the client
11521/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11522impl std::ops::Drop for BaseDatagramSocketGetIpMulticastInterfaceResponder {
11523    fn drop(&mut self) {
11524        self.control_handle.shutdown();
11525        // Safety: drops once, never accessed again
11526        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11527    }
11528}
11529
11530impl fidl::endpoints::Responder for BaseDatagramSocketGetIpMulticastInterfaceResponder {
11531    type ControlHandle = BaseDatagramSocketControlHandle;
11532
11533    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11534        &self.control_handle
11535    }
11536
11537    fn drop_without_shutdown(mut self) {
11538        // Safety: drops once, never accessed again due to mem::forget
11539        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11540        // Prevent Drop from running (which would shut down the channel)
11541        std::mem::forget(self);
11542    }
11543}
11544
11545impl BaseDatagramSocketGetIpMulticastInterfaceResponder {
11546    /// Sends a response to the FIDL transaction.
11547    ///
11548    /// Sets the channel to shutdown if an error occurs.
11549    pub fn send(
11550        self,
11551        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
11552    ) -> Result<(), fidl::Error> {
11553        let _result = self.send_raw(result);
11554        if _result.is_err() {
11555            self.control_handle.shutdown();
11556        }
11557        self.drop_without_shutdown();
11558        _result
11559    }
11560
11561    /// Similar to "send" but does not shutdown the channel if an error occurs.
11562    pub fn send_no_shutdown_on_err(
11563        self,
11564        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
11565    ) -> Result<(), fidl::Error> {
11566        let _result = self.send_raw(result);
11567        self.drop_without_shutdown();
11568        _result
11569    }
11570
11571    fn send_raw(
11572        &self,
11573        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
11574    ) -> Result<(), fidl::Error> {
11575        self.control_handle.inner.send::<fidl::encoding::ResultType<
11576            BaseNetworkSocketGetIpMulticastInterfaceResponse,
11577            fidl_fuchsia_posix::Errno,
11578        >>(
11579            result.map(|value| (value,)),
11580            self.tx_id,
11581            0x320bd14c4df046c4,
11582            fidl::encoding::DynamicFlags::empty(),
11583        )
11584    }
11585}
11586
11587#[must_use = "FIDL methods require a response to be sent"]
11588#[derive(Debug)]
11589pub struct BaseDatagramSocketSetIpMulticastTtlResponder {
11590    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11591    tx_id: u32,
11592}
11593
11594/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11595/// if the responder is dropped without sending a response, so that the client
11596/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11597impl std::ops::Drop for BaseDatagramSocketSetIpMulticastTtlResponder {
11598    fn drop(&mut self) {
11599        self.control_handle.shutdown();
11600        // Safety: drops once, never accessed again
11601        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11602    }
11603}
11604
11605impl fidl::endpoints::Responder for BaseDatagramSocketSetIpMulticastTtlResponder {
11606    type ControlHandle = BaseDatagramSocketControlHandle;
11607
11608    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11609        &self.control_handle
11610    }
11611
11612    fn drop_without_shutdown(mut self) {
11613        // Safety: drops once, never accessed again due to mem::forget
11614        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11615        // Prevent Drop from running (which would shut down the channel)
11616        std::mem::forget(self);
11617    }
11618}
11619
11620impl BaseDatagramSocketSetIpMulticastTtlResponder {
11621    /// Sends a response to the FIDL transaction.
11622    ///
11623    /// Sets the channel to shutdown if an error occurs.
11624    pub fn send(
11625        self,
11626        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11627    ) -> Result<(), fidl::Error> {
11628        let _result = self.send_raw(result);
11629        if _result.is_err() {
11630            self.control_handle.shutdown();
11631        }
11632        self.drop_without_shutdown();
11633        _result
11634    }
11635
11636    /// Similar to "send" but does not shutdown the channel if an error occurs.
11637    pub fn send_no_shutdown_on_err(
11638        self,
11639        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11640    ) -> Result<(), fidl::Error> {
11641        let _result = self.send_raw(result);
11642        self.drop_without_shutdown();
11643        _result
11644    }
11645
11646    fn send_raw(
11647        &self,
11648        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11649    ) -> Result<(), fidl::Error> {
11650        self.control_handle.inner.send::<fidl::encoding::ResultType<
11651            fidl::encoding::EmptyStruct,
11652            fidl_fuchsia_posix::Errno,
11653        >>(
11654            result,
11655            self.tx_id,
11656            0x63134d53772916a1,
11657            fidl::encoding::DynamicFlags::empty(),
11658        )
11659    }
11660}
11661
11662#[must_use = "FIDL methods require a response to be sent"]
11663#[derive(Debug)]
11664pub struct BaseDatagramSocketGetIpMulticastTtlResponder {
11665    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11666    tx_id: u32,
11667}
11668
11669/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11670/// if the responder is dropped without sending a response, so that the client
11671/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11672impl std::ops::Drop for BaseDatagramSocketGetIpMulticastTtlResponder {
11673    fn drop(&mut self) {
11674        self.control_handle.shutdown();
11675        // Safety: drops once, never accessed again
11676        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11677    }
11678}
11679
11680impl fidl::endpoints::Responder for BaseDatagramSocketGetIpMulticastTtlResponder {
11681    type ControlHandle = BaseDatagramSocketControlHandle;
11682
11683    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11684        &self.control_handle
11685    }
11686
11687    fn drop_without_shutdown(mut self) {
11688        // Safety: drops once, never accessed again due to mem::forget
11689        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11690        // Prevent Drop from running (which would shut down the channel)
11691        std::mem::forget(self);
11692    }
11693}
11694
11695impl BaseDatagramSocketGetIpMulticastTtlResponder {
11696    /// Sends a response to the FIDL transaction.
11697    ///
11698    /// Sets the channel to shutdown if an error occurs.
11699    pub fn send(
11700        self,
11701        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
11702    ) -> Result<(), fidl::Error> {
11703        let _result = self.send_raw(result);
11704        if _result.is_err() {
11705            self.control_handle.shutdown();
11706        }
11707        self.drop_without_shutdown();
11708        _result
11709    }
11710
11711    /// Similar to "send" but does not shutdown the channel if an error occurs.
11712    pub fn send_no_shutdown_on_err(
11713        self,
11714        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
11715    ) -> Result<(), fidl::Error> {
11716        let _result = self.send_raw(result);
11717        self.drop_without_shutdown();
11718        _result
11719    }
11720
11721    fn send_raw(
11722        &self,
11723        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
11724    ) -> Result<(), fidl::Error> {
11725        self.control_handle.inner.send::<fidl::encoding::ResultType<
11726            BaseNetworkSocketGetIpMulticastTtlResponse,
11727            fidl_fuchsia_posix::Errno,
11728        >>(
11729            result.map(|value| (value,)),
11730            self.tx_id,
11731            0x4665cd378f39e1a,
11732            fidl::encoding::DynamicFlags::empty(),
11733        )
11734    }
11735}
11736
11737#[must_use = "FIDL methods require a response to be sent"]
11738#[derive(Debug)]
11739pub struct BaseDatagramSocketSetIpMulticastLoopbackResponder {
11740    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11741    tx_id: u32,
11742}
11743
11744/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11745/// if the responder is dropped without sending a response, so that the client
11746/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11747impl std::ops::Drop for BaseDatagramSocketSetIpMulticastLoopbackResponder {
11748    fn drop(&mut self) {
11749        self.control_handle.shutdown();
11750        // Safety: drops once, never accessed again
11751        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11752    }
11753}
11754
11755impl fidl::endpoints::Responder for BaseDatagramSocketSetIpMulticastLoopbackResponder {
11756    type ControlHandle = BaseDatagramSocketControlHandle;
11757
11758    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11759        &self.control_handle
11760    }
11761
11762    fn drop_without_shutdown(mut self) {
11763        // Safety: drops once, never accessed again due to mem::forget
11764        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11765        // Prevent Drop from running (which would shut down the channel)
11766        std::mem::forget(self);
11767    }
11768}
11769
11770impl BaseDatagramSocketSetIpMulticastLoopbackResponder {
11771    /// Sends a response to the FIDL transaction.
11772    ///
11773    /// Sets the channel to shutdown if an error occurs.
11774    pub fn send(
11775        self,
11776        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11777    ) -> Result<(), fidl::Error> {
11778        let _result = self.send_raw(result);
11779        if _result.is_err() {
11780            self.control_handle.shutdown();
11781        }
11782        self.drop_without_shutdown();
11783        _result
11784    }
11785
11786    /// Similar to "send" but does not shutdown the channel if an error occurs.
11787    pub fn send_no_shutdown_on_err(
11788        self,
11789        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11790    ) -> Result<(), fidl::Error> {
11791        let _result = self.send_raw(result);
11792        self.drop_without_shutdown();
11793        _result
11794    }
11795
11796    fn send_raw(
11797        &self,
11798        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11799    ) -> Result<(), fidl::Error> {
11800        self.control_handle.inner.send::<fidl::encoding::ResultType<
11801            fidl::encoding::EmptyStruct,
11802            fidl_fuchsia_posix::Errno,
11803        >>(
11804            result,
11805            self.tx_id,
11806            0x20c55c11f00943ea,
11807            fidl::encoding::DynamicFlags::empty(),
11808        )
11809    }
11810}
11811
11812#[must_use = "FIDL methods require a response to be sent"]
11813#[derive(Debug)]
11814pub struct BaseDatagramSocketGetIpMulticastLoopbackResponder {
11815    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11816    tx_id: u32,
11817}
11818
11819/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11820/// if the responder is dropped without sending a response, so that the client
11821/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11822impl std::ops::Drop for BaseDatagramSocketGetIpMulticastLoopbackResponder {
11823    fn drop(&mut self) {
11824        self.control_handle.shutdown();
11825        // Safety: drops once, never accessed again
11826        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11827    }
11828}
11829
11830impl fidl::endpoints::Responder for BaseDatagramSocketGetIpMulticastLoopbackResponder {
11831    type ControlHandle = BaseDatagramSocketControlHandle;
11832
11833    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11834        &self.control_handle
11835    }
11836
11837    fn drop_without_shutdown(mut self) {
11838        // Safety: drops once, never accessed again due to mem::forget
11839        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11840        // Prevent Drop from running (which would shut down the channel)
11841        std::mem::forget(self);
11842    }
11843}
11844
11845impl BaseDatagramSocketGetIpMulticastLoopbackResponder {
11846    /// Sends a response to the FIDL transaction.
11847    ///
11848    /// Sets the channel to shutdown if an error occurs.
11849    pub fn send(
11850        self,
11851        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
11852    ) -> Result<(), fidl::Error> {
11853        let _result = self.send_raw(result);
11854        if _result.is_err() {
11855            self.control_handle.shutdown();
11856        }
11857        self.drop_without_shutdown();
11858        _result
11859    }
11860
11861    /// Similar to "send" but does not shutdown the channel if an error occurs.
11862    pub fn send_no_shutdown_on_err(
11863        self,
11864        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
11865    ) -> Result<(), fidl::Error> {
11866        let _result = self.send_raw(result);
11867        self.drop_without_shutdown();
11868        _result
11869    }
11870
11871    fn send_raw(
11872        &self,
11873        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
11874    ) -> Result<(), fidl::Error> {
11875        self.control_handle.inner.send::<fidl::encoding::ResultType<
11876            BaseNetworkSocketGetIpMulticastLoopbackResponse,
11877            fidl_fuchsia_posix::Errno,
11878        >>(
11879            result.map(|value| (value,)),
11880            self.tx_id,
11881            0x3b6b26ff558298f2,
11882            fidl::encoding::DynamicFlags::empty(),
11883        )
11884    }
11885}
11886
11887#[must_use = "FIDL methods require a response to be sent"]
11888#[derive(Debug)]
11889pub struct BaseDatagramSocketAddIpMembershipResponder {
11890    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11891    tx_id: u32,
11892}
11893
11894/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11895/// if the responder is dropped without sending a response, so that the client
11896/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11897impl std::ops::Drop for BaseDatagramSocketAddIpMembershipResponder {
11898    fn drop(&mut self) {
11899        self.control_handle.shutdown();
11900        // Safety: drops once, never accessed again
11901        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11902    }
11903}
11904
11905impl fidl::endpoints::Responder for BaseDatagramSocketAddIpMembershipResponder {
11906    type ControlHandle = BaseDatagramSocketControlHandle;
11907
11908    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11909        &self.control_handle
11910    }
11911
11912    fn drop_without_shutdown(mut self) {
11913        // Safety: drops once, never accessed again due to mem::forget
11914        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11915        // Prevent Drop from running (which would shut down the channel)
11916        std::mem::forget(self);
11917    }
11918}
11919
11920impl BaseDatagramSocketAddIpMembershipResponder {
11921    /// Sends a response to the FIDL transaction.
11922    ///
11923    /// Sets the channel to shutdown if an error occurs.
11924    pub fn send(
11925        self,
11926        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11927    ) -> Result<(), fidl::Error> {
11928        let _result = self.send_raw(result);
11929        if _result.is_err() {
11930            self.control_handle.shutdown();
11931        }
11932        self.drop_without_shutdown();
11933        _result
11934    }
11935
11936    /// Similar to "send" but does not shutdown the channel if an error occurs.
11937    pub fn send_no_shutdown_on_err(
11938        self,
11939        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11940    ) -> Result<(), fidl::Error> {
11941        let _result = self.send_raw(result);
11942        self.drop_without_shutdown();
11943        _result
11944    }
11945
11946    fn send_raw(
11947        &self,
11948        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11949    ) -> Result<(), fidl::Error> {
11950        self.control_handle.inner.send::<fidl::encoding::ResultType<
11951            fidl::encoding::EmptyStruct,
11952            fidl_fuchsia_posix::Errno,
11953        >>(
11954            result,
11955            self.tx_id,
11956            0x76bc7df115a3b4d0,
11957            fidl::encoding::DynamicFlags::empty(),
11958        )
11959    }
11960}
11961
11962#[must_use = "FIDL methods require a response to be sent"]
11963#[derive(Debug)]
11964pub struct BaseDatagramSocketDropIpMembershipResponder {
11965    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11966    tx_id: u32,
11967}
11968
11969/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11970/// if the responder is dropped without sending a response, so that the client
11971/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11972impl std::ops::Drop for BaseDatagramSocketDropIpMembershipResponder {
11973    fn drop(&mut self) {
11974        self.control_handle.shutdown();
11975        // Safety: drops once, never accessed again
11976        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11977    }
11978}
11979
11980impl fidl::endpoints::Responder for BaseDatagramSocketDropIpMembershipResponder {
11981    type ControlHandle = BaseDatagramSocketControlHandle;
11982
11983    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11984        &self.control_handle
11985    }
11986
11987    fn drop_without_shutdown(mut self) {
11988        // Safety: drops once, never accessed again due to mem::forget
11989        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11990        // Prevent Drop from running (which would shut down the channel)
11991        std::mem::forget(self);
11992    }
11993}
11994
11995impl BaseDatagramSocketDropIpMembershipResponder {
11996    /// Sends a response to the FIDL transaction.
11997    ///
11998    /// Sets the channel to shutdown if an error occurs.
11999    pub fn send(
12000        self,
12001        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12002    ) -> Result<(), fidl::Error> {
12003        let _result = self.send_raw(result);
12004        if _result.is_err() {
12005            self.control_handle.shutdown();
12006        }
12007        self.drop_without_shutdown();
12008        _result
12009    }
12010
12011    /// Similar to "send" but does not shutdown the channel if an error occurs.
12012    pub fn send_no_shutdown_on_err(
12013        self,
12014        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12015    ) -> Result<(), fidl::Error> {
12016        let _result = self.send_raw(result);
12017        self.drop_without_shutdown();
12018        _result
12019    }
12020
12021    fn send_raw(
12022        &self,
12023        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12024    ) -> Result<(), fidl::Error> {
12025        self.control_handle.inner.send::<fidl::encoding::ResultType<
12026            fidl::encoding::EmptyStruct,
12027            fidl_fuchsia_posix::Errno,
12028        >>(
12029            result,
12030            self.tx_id,
12031            0x2888f3099188d03,
12032            fidl::encoding::DynamicFlags::empty(),
12033        )
12034    }
12035}
12036
12037#[must_use = "FIDL methods require a response to be sent"]
12038#[derive(Debug)]
12039pub struct BaseDatagramSocketSetIpTransparentResponder {
12040    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12041    tx_id: u32,
12042}
12043
12044/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12045/// if the responder is dropped without sending a response, so that the client
12046/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12047impl std::ops::Drop for BaseDatagramSocketSetIpTransparentResponder {
12048    fn drop(&mut self) {
12049        self.control_handle.shutdown();
12050        // Safety: drops once, never accessed again
12051        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12052    }
12053}
12054
12055impl fidl::endpoints::Responder for BaseDatagramSocketSetIpTransparentResponder {
12056    type ControlHandle = BaseDatagramSocketControlHandle;
12057
12058    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12059        &self.control_handle
12060    }
12061
12062    fn drop_without_shutdown(mut self) {
12063        // Safety: drops once, never accessed again due to mem::forget
12064        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12065        // Prevent Drop from running (which would shut down the channel)
12066        std::mem::forget(self);
12067    }
12068}
12069
12070impl BaseDatagramSocketSetIpTransparentResponder {
12071    /// Sends a response to the FIDL transaction.
12072    ///
12073    /// Sets the channel to shutdown if an error occurs.
12074    pub fn send(
12075        self,
12076        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12077    ) -> Result<(), fidl::Error> {
12078        let _result = self.send_raw(result);
12079        if _result.is_err() {
12080            self.control_handle.shutdown();
12081        }
12082        self.drop_without_shutdown();
12083        _result
12084    }
12085
12086    /// Similar to "send" but does not shutdown the channel if an error occurs.
12087    pub fn send_no_shutdown_on_err(
12088        self,
12089        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12090    ) -> Result<(), fidl::Error> {
12091        let _result = self.send_raw(result);
12092        self.drop_without_shutdown();
12093        _result
12094    }
12095
12096    fn send_raw(
12097        &self,
12098        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12099    ) -> Result<(), fidl::Error> {
12100        self.control_handle.inner.send::<fidl::encoding::ResultType<
12101            fidl::encoding::EmptyStruct,
12102            fidl_fuchsia_posix::Errno,
12103        >>(
12104            result,
12105            self.tx_id,
12106            0x1ae532b0c066e3a0,
12107            fidl::encoding::DynamicFlags::empty(),
12108        )
12109    }
12110}
12111
12112#[must_use = "FIDL methods require a response to be sent"]
12113#[derive(Debug)]
12114pub struct BaseDatagramSocketGetIpTransparentResponder {
12115    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12116    tx_id: u32,
12117}
12118
12119/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12120/// if the responder is dropped without sending a response, so that the client
12121/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12122impl std::ops::Drop for BaseDatagramSocketGetIpTransparentResponder {
12123    fn drop(&mut self) {
12124        self.control_handle.shutdown();
12125        // Safety: drops once, never accessed again
12126        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12127    }
12128}
12129
12130impl fidl::endpoints::Responder for BaseDatagramSocketGetIpTransparentResponder {
12131    type ControlHandle = BaseDatagramSocketControlHandle;
12132
12133    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12134        &self.control_handle
12135    }
12136
12137    fn drop_without_shutdown(mut self) {
12138        // Safety: drops once, never accessed again due to mem::forget
12139        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12140        // Prevent Drop from running (which would shut down the channel)
12141        std::mem::forget(self);
12142    }
12143}
12144
12145impl BaseDatagramSocketGetIpTransparentResponder {
12146    /// Sends a response to the FIDL transaction.
12147    ///
12148    /// Sets the channel to shutdown if an error occurs.
12149    pub fn send(
12150        self,
12151        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
12152    ) -> Result<(), fidl::Error> {
12153        let _result = self.send_raw(result);
12154        if _result.is_err() {
12155            self.control_handle.shutdown();
12156        }
12157        self.drop_without_shutdown();
12158        _result
12159    }
12160
12161    /// Similar to "send" but does not shutdown the channel if an error occurs.
12162    pub fn send_no_shutdown_on_err(
12163        self,
12164        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
12165    ) -> Result<(), fidl::Error> {
12166        let _result = self.send_raw(result);
12167        self.drop_without_shutdown();
12168        _result
12169    }
12170
12171    fn send_raw(
12172        &self,
12173        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
12174    ) -> Result<(), fidl::Error> {
12175        self.control_handle.inner.send::<fidl::encoding::ResultType<
12176            BaseNetworkSocketGetIpTransparentResponse,
12177            fidl_fuchsia_posix::Errno,
12178        >>(
12179            result.map(|value| (value,)),
12180            self.tx_id,
12181            0x51d43695962ebfb5,
12182            fidl::encoding::DynamicFlags::empty(),
12183        )
12184    }
12185}
12186
12187#[must_use = "FIDL methods require a response to be sent"]
12188#[derive(Debug)]
12189pub struct BaseDatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
12190    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12191    tx_id: u32,
12192}
12193
12194/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12195/// if the responder is dropped without sending a response, so that the client
12196/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12197impl std::ops::Drop for BaseDatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
12198    fn drop(&mut self) {
12199        self.control_handle.shutdown();
12200        // Safety: drops once, never accessed again
12201        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12202    }
12203}
12204
12205impl fidl::endpoints::Responder
12206    for BaseDatagramSocketSetIpReceiveOriginalDestinationAddressResponder
12207{
12208    type ControlHandle = BaseDatagramSocketControlHandle;
12209
12210    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12211        &self.control_handle
12212    }
12213
12214    fn drop_without_shutdown(mut self) {
12215        // Safety: drops once, never accessed again due to mem::forget
12216        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12217        // Prevent Drop from running (which would shut down the channel)
12218        std::mem::forget(self);
12219    }
12220}
12221
12222impl BaseDatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
12223    /// Sends a response to the FIDL transaction.
12224    ///
12225    /// Sets the channel to shutdown if an error occurs.
12226    pub fn send(
12227        self,
12228        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12229    ) -> Result<(), fidl::Error> {
12230        let _result = self.send_raw(result);
12231        if _result.is_err() {
12232            self.control_handle.shutdown();
12233        }
12234        self.drop_without_shutdown();
12235        _result
12236    }
12237
12238    /// Similar to "send" but does not shutdown the channel if an error occurs.
12239    pub fn send_no_shutdown_on_err(
12240        self,
12241        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12242    ) -> Result<(), fidl::Error> {
12243        let _result = self.send_raw(result);
12244        self.drop_without_shutdown();
12245        _result
12246    }
12247
12248    fn send_raw(
12249        &self,
12250        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12251    ) -> Result<(), fidl::Error> {
12252        self.control_handle.inner.send::<fidl::encoding::ResultType<
12253            fidl::encoding::EmptyStruct,
12254            fidl_fuchsia_posix::Errno,
12255        >>(
12256            result,
12257            self.tx_id,
12258            0x4722b4ce52f7840,
12259            fidl::encoding::DynamicFlags::empty(),
12260        )
12261    }
12262}
12263
12264#[must_use = "FIDL methods require a response to be sent"]
12265#[derive(Debug)]
12266pub struct BaseDatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
12267    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12268    tx_id: u32,
12269}
12270
12271/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12272/// if the responder is dropped without sending a response, so that the client
12273/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12274impl std::ops::Drop for BaseDatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
12275    fn drop(&mut self) {
12276        self.control_handle.shutdown();
12277        // Safety: drops once, never accessed again
12278        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12279    }
12280}
12281
12282impl fidl::endpoints::Responder
12283    for BaseDatagramSocketGetIpReceiveOriginalDestinationAddressResponder
12284{
12285    type ControlHandle = BaseDatagramSocketControlHandle;
12286
12287    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12288        &self.control_handle
12289    }
12290
12291    fn drop_without_shutdown(mut self) {
12292        // Safety: drops once, never accessed again due to mem::forget
12293        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12294        // Prevent Drop from running (which would shut down the channel)
12295        std::mem::forget(self);
12296    }
12297}
12298
12299impl BaseDatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
12300    /// Sends a response to the FIDL transaction.
12301    ///
12302    /// Sets the channel to shutdown if an error occurs.
12303    pub fn send(
12304        self,
12305        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
12306    ) -> Result<(), fidl::Error> {
12307        let _result = self.send_raw(result);
12308        if _result.is_err() {
12309            self.control_handle.shutdown();
12310        }
12311        self.drop_without_shutdown();
12312        _result
12313    }
12314
12315    /// Similar to "send" but does not shutdown the channel if an error occurs.
12316    pub fn send_no_shutdown_on_err(
12317        self,
12318        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
12319    ) -> Result<(), fidl::Error> {
12320        let _result = self.send_raw(result);
12321        self.drop_without_shutdown();
12322        _result
12323    }
12324
12325    fn send_raw(
12326        &self,
12327        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
12328    ) -> Result<(), fidl::Error> {
12329        self.control_handle.inner.send::<fidl::encoding::ResultType<
12330            BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
12331            fidl_fuchsia_posix::Errno,
12332        >>(
12333            result.map(|value| (value,)),
12334            self.tx_id,
12335            0x2a0e7dc5d6bfdfe9,
12336            fidl::encoding::DynamicFlags::empty(),
12337        )
12338    }
12339}
12340
12341#[must_use = "FIDL methods require a response to be sent"]
12342#[derive(Debug)]
12343pub struct BaseDatagramSocketAddIpv6MembershipResponder {
12344    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12345    tx_id: u32,
12346}
12347
12348/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12349/// if the responder is dropped without sending a response, so that the client
12350/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12351impl std::ops::Drop for BaseDatagramSocketAddIpv6MembershipResponder {
12352    fn drop(&mut self) {
12353        self.control_handle.shutdown();
12354        // Safety: drops once, never accessed again
12355        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12356    }
12357}
12358
12359impl fidl::endpoints::Responder for BaseDatagramSocketAddIpv6MembershipResponder {
12360    type ControlHandle = BaseDatagramSocketControlHandle;
12361
12362    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12363        &self.control_handle
12364    }
12365
12366    fn drop_without_shutdown(mut self) {
12367        // Safety: drops once, never accessed again due to mem::forget
12368        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12369        // Prevent Drop from running (which would shut down the channel)
12370        std::mem::forget(self);
12371    }
12372}
12373
12374impl BaseDatagramSocketAddIpv6MembershipResponder {
12375    /// Sends a response to the FIDL transaction.
12376    ///
12377    /// Sets the channel to shutdown if an error occurs.
12378    pub fn send(
12379        self,
12380        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12381    ) -> Result<(), fidl::Error> {
12382        let _result = self.send_raw(result);
12383        if _result.is_err() {
12384            self.control_handle.shutdown();
12385        }
12386        self.drop_without_shutdown();
12387        _result
12388    }
12389
12390    /// Similar to "send" but does not shutdown the channel if an error occurs.
12391    pub fn send_no_shutdown_on_err(
12392        self,
12393        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12394    ) -> Result<(), fidl::Error> {
12395        let _result = self.send_raw(result);
12396        self.drop_without_shutdown();
12397        _result
12398    }
12399
12400    fn send_raw(
12401        &self,
12402        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12403    ) -> Result<(), fidl::Error> {
12404        self.control_handle.inner.send::<fidl::encoding::ResultType<
12405            fidl::encoding::EmptyStruct,
12406            fidl_fuchsia_posix::Errno,
12407        >>(
12408            result,
12409            self.tx_id,
12410            0x7c94727acb4ea4b3,
12411            fidl::encoding::DynamicFlags::empty(),
12412        )
12413    }
12414}
12415
12416#[must_use = "FIDL methods require a response to be sent"]
12417#[derive(Debug)]
12418pub struct BaseDatagramSocketDropIpv6MembershipResponder {
12419    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12420    tx_id: u32,
12421}
12422
12423/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12424/// if the responder is dropped without sending a response, so that the client
12425/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12426impl std::ops::Drop for BaseDatagramSocketDropIpv6MembershipResponder {
12427    fn drop(&mut self) {
12428        self.control_handle.shutdown();
12429        // Safety: drops once, never accessed again
12430        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12431    }
12432}
12433
12434impl fidl::endpoints::Responder for BaseDatagramSocketDropIpv6MembershipResponder {
12435    type ControlHandle = BaseDatagramSocketControlHandle;
12436
12437    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12438        &self.control_handle
12439    }
12440
12441    fn drop_without_shutdown(mut self) {
12442        // Safety: drops once, never accessed again due to mem::forget
12443        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12444        // Prevent Drop from running (which would shut down the channel)
12445        std::mem::forget(self);
12446    }
12447}
12448
12449impl BaseDatagramSocketDropIpv6MembershipResponder {
12450    /// Sends a response to the FIDL transaction.
12451    ///
12452    /// Sets the channel to shutdown if an error occurs.
12453    pub fn send(
12454        self,
12455        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12456    ) -> Result<(), fidl::Error> {
12457        let _result = self.send_raw(result);
12458        if _result.is_err() {
12459            self.control_handle.shutdown();
12460        }
12461        self.drop_without_shutdown();
12462        _result
12463    }
12464
12465    /// Similar to "send" but does not shutdown the channel if an error occurs.
12466    pub fn send_no_shutdown_on_err(
12467        self,
12468        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12469    ) -> Result<(), fidl::Error> {
12470        let _result = self.send_raw(result);
12471        self.drop_without_shutdown();
12472        _result
12473    }
12474
12475    fn send_raw(
12476        &self,
12477        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12478    ) -> Result<(), fidl::Error> {
12479        self.control_handle.inner.send::<fidl::encoding::ResultType<
12480            fidl::encoding::EmptyStruct,
12481            fidl_fuchsia_posix::Errno,
12482        >>(
12483            result,
12484            self.tx_id,
12485            0x42104c70ccaba304,
12486            fidl::encoding::DynamicFlags::empty(),
12487        )
12488    }
12489}
12490
12491#[must_use = "FIDL methods require a response to be sent"]
12492#[derive(Debug)]
12493pub struct BaseDatagramSocketSetIpv6MulticastInterfaceResponder {
12494    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12495    tx_id: u32,
12496}
12497
12498/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12499/// if the responder is dropped without sending a response, so that the client
12500/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12501impl std::ops::Drop for BaseDatagramSocketSetIpv6MulticastInterfaceResponder {
12502    fn drop(&mut self) {
12503        self.control_handle.shutdown();
12504        // Safety: drops once, never accessed again
12505        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12506    }
12507}
12508
12509impl fidl::endpoints::Responder for BaseDatagramSocketSetIpv6MulticastInterfaceResponder {
12510    type ControlHandle = BaseDatagramSocketControlHandle;
12511
12512    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12513        &self.control_handle
12514    }
12515
12516    fn drop_without_shutdown(mut self) {
12517        // Safety: drops once, never accessed again due to mem::forget
12518        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12519        // Prevent Drop from running (which would shut down the channel)
12520        std::mem::forget(self);
12521    }
12522}
12523
12524impl BaseDatagramSocketSetIpv6MulticastInterfaceResponder {
12525    /// Sends a response to the FIDL transaction.
12526    ///
12527    /// Sets the channel to shutdown if an error occurs.
12528    pub fn send(
12529        self,
12530        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12531    ) -> Result<(), fidl::Error> {
12532        let _result = self.send_raw(result);
12533        if _result.is_err() {
12534            self.control_handle.shutdown();
12535        }
12536        self.drop_without_shutdown();
12537        _result
12538    }
12539
12540    /// Similar to "send" but does not shutdown the channel if an error occurs.
12541    pub fn send_no_shutdown_on_err(
12542        self,
12543        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12544    ) -> Result<(), fidl::Error> {
12545        let _result = self.send_raw(result);
12546        self.drop_without_shutdown();
12547        _result
12548    }
12549
12550    fn send_raw(
12551        &self,
12552        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12553    ) -> Result<(), fidl::Error> {
12554        self.control_handle.inner.send::<fidl::encoding::ResultType<
12555            fidl::encoding::EmptyStruct,
12556            fidl_fuchsia_posix::Errno,
12557        >>(
12558            result,
12559            self.tx_id,
12560            0x135f76db3774ab3b,
12561            fidl::encoding::DynamicFlags::empty(),
12562        )
12563    }
12564}
12565
12566#[must_use = "FIDL methods require a response to be sent"]
12567#[derive(Debug)]
12568pub struct BaseDatagramSocketGetIpv6MulticastInterfaceResponder {
12569    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12570    tx_id: u32,
12571}
12572
12573/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12574/// if the responder is dropped without sending a response, so that the client
12575/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12576impl std::ops::Drop for BaseDatagramSocketGetIpv6MulticastInterfaceResponder {
12577    fn drop(&mut self) {
12578        self.control_handle.shutdown();
12579        // Safety: drops once, never accessed again
12580        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12581    }
12582}
12583
12584impl fidl::endpoints::Responder for BaseDatagramSocketGetIpv6MulticastInterfaceResponder {
12585    type ControlHandle = BaseDatagramSocketControlHandle;
12586
12587    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12588        &self.control_handle
12589    }
12590
12591    fn drop_without_shutdown(mut self) {
12592        // Safety: drops once, never accessed again due to mem::forget
12593        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12594        // Prevent Drop from running (which would shut down the channel)
12595        std::mem::forget(self);
12596    }
12597}
12598
12599impl BaseDatagramSocketGetIpv6MulticastInterfaceResponder {
12600    /// Sends a response to the FIDL transaction.
12601    ///
12602    /// Sets the channel to shutdown if an error occurs.
12603    pub fn send(
12604        self,
12605        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
12606    ) -> Result<(), fidl::Error> {
12607        let _result = self.send_raw(result);
12608        if _result.is_err() {
12609            self.control_handle.shutdown();
12610        }
12611        self.drop_without_shutdown();
12612        _result
12613    }
12614
12615    /// Similar to "send" but does not shutdown the channel if an error occurs.
12616    pub fn send_no_shutdown_on_err(
12617        self,
12618        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
12619    ) -> Result<(), fidl::Error> {
12620        let _result = self.send_raw(result);
12621        self.drop_without_shutdown();
12622        _result
12623    }
12624
12625    fn send_raw(
12626        &self,
12627        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
12628    ) -> Result<(), fidl::Error> {
12629        self.control_handle.inner.send::<fidl::encoding::ResultType<
12630            BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
12631            fidl_fuchsia_posix::Errno,
12632        >>(
12633            result.map(|value| (value,)),
12634            self.tx_id,
12635            0x1f26fcdd348f1882,
12636            fidl::encoding::DynamicFlags::empty(),
12637        )
12638    }
12639}
12640
12641#[must_use = "FIDL methods require a response to be sent"]
12642#[derive(Debug)]
12643pub struct BaseDatagramSocketSetIpv6UnicastHopsResponder {
12644    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12645    tx_id: u32,
12646}
12647
12648/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12649/// if the responder is dropped without sending a response, so that the client
12650/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12651impl std::ops::Drop for BaseDatagramSocketSetIpv6UnicastHopsResponder {
12652    fn drop(&mut self) {
12653        self.control_handle.shutdown();
12654        // Safety: drops once, never accessed again
12655        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12656    }
12657}
12658
12659impl fidl::endpoints::Responder for BaseDatagramSocketSetIpv6UnicastHopsResponder {
12660    type ControlHandle = BaseDatagramSocketControlHandle;
12661
12662    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12663        &self.control_handle
12664    }
12665
12666    fn drop_without_shutdown(mut self) {
12667        // Safety: drops once, never accessed again due to mem::forget
12668        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12669        // Prevent Drop from running (which would shut down the channel)
12670        std::mem::forget(self);
12671    }
12672}
12673
12674impl BaseDatagramSocketSetIpv6UnicastHopsResponder {
12675    /// Sends a response to the FIDL transaction.
12676    ///
12677    /// Sets the channel to shutdown if an error occurs.
12678    pub fn send(
12679        self,
12680        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12681    ) -> Result<(), fidl::Error> {
12682        let _result = self.send_raw(result);
12683        if _result.is_err() {
12684            self.control_handle.shutdown();
12685        }
12686        self.drop_without_shutdown();
12687        _result
12688    }
12689
12690    /// Similar to "send" but does not shutdown the channel if an error occurs.
12691    pub fn send_no_shutdown_on_err(
12692        self,
12693        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12694    ) -> Result<(), fidl::Error> {
12695        let _result = self.send_raw(result);
12696        self.drop_without_shutdown();
12697        _result
12698    }
12699
12700    fn send_raw(
12701        &self,
12702        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12703    ) -> Result<(), fidl::Error> {
12704        self.control_handle.inner.send::<fidl::encoding::ResultType<
12705            fidl::encoding::EmptyStruct,
12706            fidl_fuchsia_posix::Errno,
12707        >>(
12708            result,
12709            self.tx_id,
12710            0x157d51e98f462859,
12711            fidl::encoding::DynamicFlags::empty(),
12712        )
12713    }
12714}
12715
12716#[must_use = "FIDL methods require a response to be sent"]
12717#[derive(Debug)]
12718pub struct BaseDatagramSocketGetIpv6UnicastHopsResponder {
12719    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12720    tx_id: u32,
12721}
12722
12723/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12724/// if the responder is dropped without sending a response, so that the client
12725/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12726impl std::ops::Drop for BaseDatagramSocketGetIpv6UnicastHopsResponder {
12727    fn drop(&mut self) {
12728        self.control_handle.shutdown();
12729        // Safety: drops once, never accessed again
12730        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12731    }
12732}
12733
12734impl fidl::endpoints::Responder for BaseDatagramSocketGetIpv6UnicastHopsResponder {
12735    type ControlHandle = BaseDatagramSocketControlHandle;
12736
12737    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12738        &self.control_handle
12739    }
12740
12741    fn drop_without_shutdown(mut self) {
12742        // Safety: drops once, never accessed again due to mem::forget
12743        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12744        // Prevent Drop from running (which would shut down the channel)
12745        std::mem::forget(self);
12746    }
12747}
12748
12749impl BaseDatagramSocketGetIpv6UnicastHopsResponder {
12750    /// Sends a response to the FIDL transaction.
12751    ///
12752    /// Sets the channel to shutdown if an error occurs.
12753    pub fn send(
12754        self,
12755        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
12756    ) -> Result<(), fidl::Error> {
12757        let _result = self.send_raw(result);
12758        if _result.is_err() {
12759            self.control_handle.shutdown();
12760        }
12761        self.drop_without_shutdown();
12762        _result
12763    }
12764
12765    /// Similar to "send" but does not shutdown the channel if an error occurs.
12766    pub fn send_no_shutdown_on_err(
12767        self,
12768        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
12769    ) -> Result<(), fidl::Error> {
12770        let _result = self.send_raw(result);
12771        self.drop_without_shutdown();
12772        _result
12773    }
12774
12775    fn send_raw(
12776        &self,
12777        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
12778    ) -> Result<(), fidl::Error> {
12779        self.control_handle.inner.send::<fidl::encoding::ResultType<
12780            BaseNetworkSocketGetIpv6UnicastHopsResponse,
12781            fidl_fuchsia_posix::Errno,
12782        >>(
12783            result.map(|value| (value,)),
12784            self.tx_id,
12785            0x21f4641cad8bd8d2,
12786            fidl::encoding::DynamicFlags::empty(),
12787        )
12788    }
12789}
12790
12791#[must_use = "FIDL methods require a response to be sent"]
12792#[derive(Debug)]
12793pub struct BaseDatagramSocketSetIpv6ReceiveHopLimitResponder {
12794    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12795    tx_id: u32,
12796}
12797
12798/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12799/// if the responder is dropped without sending a response, so that the client
12800/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12801impl std::ops::Drop for BaseDatagramSocketSetIpv6ReceiveHopLimitResponder {
12802    fn drop(&mut self) {
12803        self.control_handle.shutdown();
12804        // Safety: drops once, never accessed again
12805        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12806    }
12807}
12808
12809impl fidl::endpoints::Responder for BaseDatagramSocketSetIpv6ReceiveHopLimitResponder {
12810    type ControlHandle = BaseDatagramSocketControlHandle;
12811
12812    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12813        &self.control_handle
12814    }
12815
12816    fn drop_without_shutdown(mut self) {
12817        // Safety: drops once, never accessed again due to mem::forget
12818        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12819        // Prevent Drop from running (which would shut down the channel)
12820        std::mem::forget(self);
12821    }
12822}
12823
12824impl BaseDatagramSocketSetIpv6ReceiveHopLimitResponder {
12825    /// Sends a response to the FIDL transaction.
12826    ///
12827    /// Sets the channel to shutdown if an error occurs.
12828    pub fn send(
12829        self,
12830        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12831    ) -> Result<(), fidl::Error> {
12832        let _result = self.send_raw(result);
12833        if _result.is_err() {
12834            self.control_handle.shutdown();
12835        }
12836        self.drop_without_shutdown();
12837        _result
12838    }
12839
12840    /// Similar to "send" but does not shutdown the channel if an error occurs.
12841    pub fn send_no_shutdown_on_err(
12842        self,
12843        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12844    ) -> Result<(), fidl::Error> {
12845        let _result = self.send_raw(result);
12846        self.drop_without_shutdown();
12847        _result
12848    }
12849
12850    fn send_raw(
12851        &self,
12852        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12853    ) -> Result<(), fidl::Error> {
12854        self.control_handle.inner.send::<fidl::encoding::ResultType<
12855            fidl::encoding::EmptyStruct,
12856            fidl_fuchsia_posix::Errno,
12857        >>(
12858            result,
12859            self.tx_id,
12860            0x5c24808ed2e84a1e,
12861            fidl::encoding::DynamicFlags::empty(),
12862        )
12863    }
12864}
12865
12866#[must_use = "FIDL methods require a response to be sent"]
12867#[derive(Debug)]
12868pub struct BaseDatagramSocketGetIpv6ReceiveHopLimitResponder {
12869    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12870    tx_id: u32,
12871}
12872
12873/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12874/// if the responder is dropped without sending a response, so that the client
12875/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12876impl std::ops::Drop for BaseDatagramSocketGetIpv6ReceiveHopLimitResponder {
12877    fn drop(&mut self) {
12878        self.control_handle.shutdown();
12879        // Safety: drops once, never accessed again
12880        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12881    }
12882}
12883
12884impl fidl::endpoints::Responder for BaseDatagramSocketGetIpv6ReceiveHopLimitResponder {
12885    type ControlHandle = BaseDatagramSocketControlHandle;
12886
12887    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12888        &self.control_handle
12889    }
12890
12891    fn drop_without_shutdown(mut self) {
12892        // Safety: drops once, never accessed again due to mem::forget
12893        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12894        // Prevent Drop from running (which would shut down the channel)
12895        std::mem::forget(self);
12896    }
12897}
12898
12899impl BaseDatagramSocketGetIpv6ReceiveHopLimitResponder {
12900    /// Sends a response to the FIDL transaction.
12901    ///
12902    /// Sets the channel to shutdown if an error occurs.
12903    pub fn send(
12904        self,
12905        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
12906    ) -> Result<(), fidl::Error> {
12907        let _result = self.send_raw(result);
12908        if _result.is_err() {
12909            self.control_handle.shutdown();
12910        }
12911        self.drop_without_shutdown();
12912        _result
12913    }
12914
12915    /// Similar to "send" but does not shutdown the channel if an error occurs.
12916    pub fn send_no_shutdown_on_err(
12917        self,
12918        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
12919    ) -> Result<(), fidl::Error> {
12920        let _result = self.send_raw(result);
12921        self.drop_without_shutdown();
12922        _result
12923    }
12924
12925    fn send_raw(
12926        &self,
12927        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
12928    ) -> Result<(), fidl::Error> {
12929        self.control_handle.inner.send::<fidl::encoding::ResultType<
12930            BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
12931            fidl_fuchsia_posix::Errno,
12932        >>(
12933            result.map(|value| (value,)),
12934            self.tx_id,
12935            0x341e06689885b4c0,
12936            fidl::encoding::DynamicFlags::empty(),
12937        )
12938    }
12939}
12940
12941#[must_use = "FIDL methods require a response to be sent"]
12942#[derive(Debug)]
12943pub struct BaseDatagramSocketSetIpv6MulticastHopsResponder {
12944    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12945    tx_id: u32,
12946}
12947
12948/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12949/// if the responder is dropped without sending a response, so that the client
12950/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12951impl std::ops::Drop for BaseDatagramSocketSetIpv6MulticastHopsResponder {
12952    fn drop(&mut self) {
12953        self.control_handle.shutdown();
12954        // Safety: drops once, never accessed again
12955        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12956    }
12957}
12958
12959impl fidl::endpoints::Responder for BaseDatagramSocketSetIpv6MulticastHopsResponder {
12960    type ControlHandle = BaseDatagramSocketControlHandle;
12961
12962    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12963        &self.control_handle
12964    }
12965
12966    fn drop_without_shutdown(mut self) {
12967        // Safety: drops once, never accessed again due to mem::forget
12968        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12969        // Prevent Drop from running (which would shut down the channel)
12970        std::mem::forget(self);
12971    }
12972}
12973
12974impl BaseDatagramSocketSetIpv6MulticastHopsResponder {
12975    /// Sends a response to the FIDL transaction.
12976    ///
12977    /// Sets the channel to shutdown if an error occurs.
12978    pub fn send(
12979        self,
12980        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12981    ) -> Result<(), fidl::Error> {
12982        let _result = self.send_raw(result);
12983        if _result.is_err() {
12984            self.control_handle.shutdown();
12985        }
12986        self.drop_without_shutdown();
12987        _result
12988    }
12989
12990    /// Similar to "send" but does not shutdown the channel if an error occurs.
12991    pub fn send_no_shutdown_on_err(
12992        self,
12993        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12994    ) -> Result<(), fidl::Error> {
12995        let _result = self.send_raw(result);
12996        self.drop_without_shutdown();
12997        _result
12998    }
12999
13000    fn send_raw(
13001        &self,
13002        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13003    ) -> Result<(), fidl::Error> {
13004        self.control_handle.inner.send::<fidl::encoding::ResultType<
13005            fidl::encoding::EmptyStruct,
13006            fidl_fuchsia_posix::Errno,
13007        >>(
13008            result,
13009            self.tx_id,
13010            0x25b9cd4d181f82c1,
13011            fidl::encoding::DynamicFlags::empty(),
13012        )
13013    }
13014}
13015
13016#[must_use = "FIDL methods require a response to be sent"]
13017#[derive(Debug)]
13018pub struct BaseDatagramSocketGetIpv6MulticastHopsResponder {
13019    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13020    tx_id: u32,
13021}
13022
13023/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13024/// if the responder is dropped without sending a response, so that the client
13025/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13026impl std::ops::Drop for BaseDatagramSocketGetIpv6MulticastHopsResponder {
13027    fn drop(&mut self) {
13028        self.control_handle.shutdown();
13029        // Safety: drops once, never accessed again
13030        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13031    }
13032}
13033
13034impl fidl::endpoints::Responder for BaseDatagramSocketGetIpv6MulticastHopsResponder {
13035    type ControlHandle = BaseDatagramSocketControlHandle;
13036
13037    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13038        &self.control_handle
13039    }
13040
13041    fn drop_without_shutdown(mut self) {
13042        // Safety: drops once, never accessed again due to mem::forget
13043        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13044        // Prevent Drop from running (which would shut down the channel)
13045        std::mem::forget(self);
13046    }
13047}
13048
13049impl BaseDatagramSocketGetIpv6MulticastHopsResponder {
13050    /// Sends a response to the FIDL transaction.
13051    ///
13052    /// Sets the channel to shutdown if an error occurs.
13053    pub fn send(
13054        self,
13055        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
13056    ) -> Result<(), fidl::Error> {
13057        let _result = self.send_raw(result);
13058        if _result.is_err() {
13059            self.control_handle.shutdown();
13060        }
13061        self.drop_without_shutdown();
13062        _result
13063    }
13064
13065    /// Similar to "send" but does not shutdown the channel if an error occurs.
13066    pub fn send_no_shutdown_on_err(
13067        self,
13068        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
13069    ) -> Result<(), fidl::Error> {
13070        let _result = self.send_raw(result);
13071        self.drop_without_shutdown();
13072        _result
13073    }
13074
13075    fn send_raw(
13076        &self,
13077        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
13078    ) -> Result<(), fidl::Error> {
13079        self.control_handle.inner.send::<fidl::encoding::ResultType<
13080            BaseNetworkSocketGetIpv6MulticastHopsResponse,
13081            fidl_fuchsia_posix::Errno,
13082        >>(
13083            result.map(|value| (value,)),
13084            self.tx_id,
13085            0x52916948a365012a,
13086            fidl::encoding::DynamicFlags::empty(),
13087        )
13088    }
13089}
13090
13091#[must_use = "FIDL methods require a response to be sent"]
13092#[derive(Debug)]
13093pub struct BaseDatagramSocketSetIpv6MulticastLoopbackResponder {
13094    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13095    tx_id: u32,
13096}
13097
13098/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13099/// if the responder is dropped without sending a response, so that the client
13100/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13101impl std::ops::Drop for BaseDatagramSocketSetIpv6MulticastLoopbackResponder {
13102    fn drop(&mut self) {
13103        self.control_handle.shutdown();
13104        // Safety: drops once, never accessed again
13105        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13106    }
13107}
13108
13109impl fidl::endpoints::Responder for BaseDatagramSocketSetIpv6MulticastLoopbackResponder {
13110    type ControlHandle = BaseDatagramSocketControlHandle;
13111
13112    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13113        &self.control_handle
13114    }
13115
13116    fn drop_without_shutdown(mut self) {
13117        // Safety: drops once, never accessed again due to mem::forget
13118        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13119        // Prevent Drop from running (which would shut down the channel)
13120        std::mem::forget(self);
13121    }
13122}
13123
13124impl BaseDatagramSocketSetIpv6MulticastLoopbackResponder {
13125    /// Sends a response to the FIDL transaction.
13126    ///
13127    /// Sets the channel to shutdown if an error occurs.
13128    pub fn send(
13129        self,
13130        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13131    ) -> Result<(), fidl::Error> {
13132        let _result = self.send_raw(result);
13133        if _result.is_err() {
13134            self.control_handle.shutdown();
13135        }
13136        self.drop_without_shutdown();
13137        _result
13138    }
13139
13140    /// Similar to "send" but does not shutdown the channel if an error occurs.
13141    pub fn send_no_shutdown_on_err(
13142        self,
13143        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13144    ) -> Result<(), fidl::Error> {
13145        let _result = self.send_raw(result);
13146        self.drop_without_shutdown();
13147        _result
13148    }
13149
13150    fn send_raw(
13151        &self,
13152        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13153    ) -> Result<(), fidl::Error> {
13154        self.control_handle.inner.send::<fidl::encoding::ResultType<
13155            fidl::encoding::EmptyStruct,
13156            fidl_fuchsia_posix::Errno,
13157        >>(
13158            result,
13159            self.tx_id,
13160            0x55701c409ff41b40,
13161            fidl::encoding::DynamicFlags::empty(),
13162        )
13163    }
13164}
13165
13166#[must_use = "FIDL methods require a response to be sent"]
13167#[derive(Debug)]
13168pub struct BaseDatagramSocketGetIpv6MulticastLoopbackResponder {
13169    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13170    tx_id: u32,
13171}
13172
13173/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13174/// if the responder is dropped without sending a response, so that the client
13175/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13176impl std::ops::Drop for BaseDatagramSocketGetIpv6MulticastLoopbackResponder {
13177    fn drop(&mut self) {
13178        self.control_handle.shutdown();
13179        // Safety: drops once, never accessed again
13180        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13181    }
13182}
13183
13184impl fidl::endpoints::Responder for BaseDatagramSocketGetIpv6MulticastLoopbackResponder {
13185    type ControlHandle = BaseDatagramSocketControlHandle;
13186
13187    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13188        &self.control_handle
13189    }
13190
13191    fn drop_without_shutdown(mut self) {
13192        // Safety: drops once, never accessed again due to mem::forget
13193        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13194        // Prevent Drop from running (which would shut down the channel)
13195        std::mem::forget(self);
13196    }
13197}
13198
13199impl BaseDatagramSocketGetIpv6MulticastLoopbackResponder {
13200    /// Sends a response to the FIDL transaction.
13201    ///
13202    /// Sets the channel to shutdown if an error occurs.
13203    pub fn send(
13204        self,
13205        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13206    ) -> Result<(), fidl::Error> {
13207        let _result = self.send_raw(result);
13208        if _result.is_err() {
13209            self.control_handle.shutdown();
13210        }
13211        self.drop_without_shutdown();
13212        _result
13213    }
13214
13215    /// Similar to "send" but does not shutdown the channel if an error occurs.
13216    pub fn send_no_shutdown_on_err(
13217        self,
13218        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13219    ) -> Result<(), fidl::Error> {
13220        let _result = self.send_raw(result);
13221        self.drop_without_shutdown();
13222        _result
13223    }
13224
13225    fn send_raw(
13226        &self,
13227        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13228    ) -> Result<(), fidl::Error> {
13229        self.control_handle.inner.send::<fidl::encoding::ResultType<
13230            BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
13231            fidl_fuchsia_posix::Errno,
13232        >>(
13233            result.map(|value| (value,)),
13234            self.tx_id,
13235            0x4415b701fde319c3,
13236            fidl::encoding::DynamicFlags::empty(),
13237        )
13238    }
13239}
13240
13241#[must_use = "FIDL methods require a response to be sent"]
13242#[derive(Debug)]
13243pub struct BaseDatagramSocketSetIpv6OnlyResponder {
13244    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13245    tx_id: u32,
13246}
13247
13248/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13249/// if the responder is dropped without sending a response, so that the client
13250/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13251impl std::ops::Drop for BaseDatagramSocketSetIpv6OnlyResponder {
13252    fn drop(&mut self) {
13253        self.control_handle.shutdown();
13254        // Safety: drops once, never accessed again
13255        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13256    }
13257}
13258
13259impl fidl::endpoints::Responder for BaseDatagramSocketSetIpv6OnlyResponder {
13260    type ControlHandle = BaseDatagramSocketControlHandle;
13261
13262    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13263        &self.control_handle
13264    }
13265
13266    fn drop_without_shutdown(mut self) {
13267        // Safety: drops once, never accessed again due to mem::forget
13268        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13269        // Prevent Drop from running (which would shut down the channel)
13270        std::mem::forget(self);
13271    }
13272}
13273
13274impl BaseDatagramSocketSetIpv6OnlyResponder {
13275    /// Sends a response to the FIDL transaction.
13276    ///
13277    /// Sets the channel to shutdown if an error occurs.
13278    pub fn send(
13279        self,
13280        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13281    ) -> Result<(), fidl::Error> {
13282        let _result = self.send_raw(result);
13283        if _result.is_err() {
13284            self.control_handle.shutdown();
13285        }
13286        self.drop_without_shutdown();
13287        _result
13288    }
13289
13290    /// Similar to "send" but does not shutdown the channel if an error occurs.
13291    pub fn send_no_shutdown_on_err(
13292        self,
13293        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13294    ) -> Result<(), fidl::Error> {
13295        let _result = self.send_raw(result);
13296        self.drop_without_shutdown();
13297        _result
13298    }
13299
13300    fn send_raw(
13301        &self,
13302        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13303    ) -> Result<(), fidl::Error> {
13304        self.control_handle.inner.send::<fidl::encoding::ResultType<
13305            fidl::encoding::EmptyStruct,
13306            fidl_fuchsia_posix::Errno,
13307        >>(
13308            result,
13309            self.tx_id,
13310            0x4873f1364758cbba,
13311            fidl::encoding::DynamicFlags::empty(),
13312        )
13313    }
13314}
13315
13316#[must_use = "FIDL methods require a response to be sent"]
13317#[derive(Debug)]
13318pub struct BaseDatagramSocketGetIpv6OnlyResponder {
13319    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13320    tx_id: u32,
13321}
13322
13323/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13324/// if the responder is dropped without sending a response, so that the client
13325/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13326impl std::ops::Drop for BaseDatagramSocketGetIpv6OnlyResponder {
13327    fn drop(&mut self) {
13328        self.control_handle.shutdown();
13329        // Safety: drops once, never accessed again
13330        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13331    }
13332}
13333
13334impl fidl::endpoints::Responder for BaseDatagramSocketGetIpv6OnlyResponder {
13335    type ControlHandle = BaseDatagramSocketControlHandle;
13336
13337    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13338        &self.control_handle
13339    }
13340
13341    fn drop_without_shutdown(mut self) {
13342        // Safety: drops once, never accessed again due to mem::forget
13343        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13344        // Prevent Drop from running (which would shut down the channel)
13345        std::mem::forget(self);
13346    }
13347}
13348
13349impl BaseDatagramSocketGetIpv6OnlyResponder {
13350    /// Sends a response to the FIDL transaction.
13351    ///
13352    /// Sets the channel to shutdown if an error occurs.
13353    pub fn send(
13354        self,
13355        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13356    ) -> Result<(), fidl::Error> {
13357        let _result = self.send_raw(result);
13358        if _result.is_err() {
13359            self.control_handle.shutdown();
13360        }
13361        self.drop_without_shutdown();
13362        _result
13363    }
13364
13365    /// Similar to "send" but does not shutdown the channel if an error occurs.
13366    pub fn send_no_shutdown_on_err(
13367        self,
13368        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13369    ) -> Result<(), fidl::Error> {
13370        let _result = self.send_raw(result);
13371        self.drop_without_shutdown();
13372        _result
13373    }
13374
13375    fn send_raw(
13376        &self,
13377        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13378    ) -> Result<(), fidl::Error> {
13379        self.control_handle.inner.send::<fidl::encoding::ResultType<
13380            BaseNetworkSocketGetIpv6OnlyResponse,
13381            fidl_fuchsia_posix::Errno,
13382        >>(
13383            result.map(|value| (value,)),
13384            self.tx_id,
13385            0x4aa3340a1a26b89c,
13386            fidl::encoding::DynamicFlags::empty(),
13387        )
13388    }
13389}
13390
13391#[must_use = "FIDL methods require a response to be sent"]
13392#[derive(Debug)]
13393pub struct BaseDatagramSocketSetIpv6ReceiveTrafficClassResponder {
13394    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13395    tx_id: u32,
13396}
13397
13398/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13399/// if the responder is dropped without sending a response, so that the client
13400/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13401impl std::ops::Drop for BaseDatagramSocketSetIpv6ReceiveTrafficClassResponder {
13402    fn drop(&mut self) {
13403        self.control_handle.shutdown();
13404        // Safety: drops once, never accessed again
13405        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13406    }
13407}
13408
13409impl fidl::endpoints::Responder for BaseDatagramSocketSetIpv6ReceiveTrafficClassResponder {
13410    type ControlHandle = BaseDatagramSocketControlHandle;
13411
13412    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13413        &self.control_handle
13414    }
13415
13416    fn drop_without_shutdown(mut self) {
13417        // Safety: drops once, never accessed again due to mem::forget
13418        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13419        // Prevent Drop from running (which would shut down the channel)
13420        std::mem::forget(self);
13421    }
13422}
13423
13424impl BaseDatagramSocketSetIpv6ReceiveTrafficClassResponder {
13425    /// Sends a response to the FIDL transaction.
13426    ///
13427    /// Sets the channel to shutdown if an error occurs.
13428    pub fn send(
13429        self,
13430        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13431    ) -> Result<(), fidl::Error> {
13432        let _result = self.send_raw(result);
13433        if _result.is_err() {
13434            self.control_handle.shutdown();
13435        }
13436        self.drop_without_shutdown();
13437        _result
13438    }
13439
13440    /// Similar to "send" but does not shutdown the channel if an error occurs.
13441    pub fn send_no_shutdown_on_err(
13442        self,
13443        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13444    ) -> Result<(), fidl::Error> {
13445        let _result = self.send_raw(result);
13446        self.drop_without_shutdown();
13447        _result
13448    }
13449
13450    fn send_raw(
13451        &self,
13452        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13453    ) -> Result<(), fidl::Error> {
13454        self.control_handle.inner.send::<fidl::encoding::ResultType<
13455            fidl::encoding::EmptyStruct,
13456            fidl_fuchsia_posix::Errno,
13457        >>(
13458            result,
13459            self.tx_id,
13460            0x58f07c8788d099a0,
13461            fidl::encoding::DynamicFlags::empty(),
13462        )
13463    }
13464}
13465
13466#[must_use = "FIDL methods require a response to be sent"]
13467#[derive(Debug)]
13468pub struct BaseDatagramSocketGetIpv6ReceiveTrafficClassResponder {
13469    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13470    tx_id: u32,
13471}
13472
13473/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13474/// if the responder is dropped without sending a response, so that the client
13475/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13476impl std::ops::Drop for BaseDatagramSocketGetIpv6ReceiveTrafficClassResponder {
13477    fn drop(&mut self) {
13478        self.control_handle.shutdown();
13479        // Safety: drops once, never accessed again
13480        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13481    }
13482}
13483
13484impl fidl::endpoints::Responder for BaseDatagramSocketGetIpv6ReceiveTrafficClassResponder {
13485    type ControlHandle = BaseDatagramSocketControlHandle;
13486
13487    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13488        &self.control_handle
13489    }
13490
13491    fn drop_without_shutdown(mut self) {
13492        // Safety: drops once, never accessed again due to mem::forget
13493        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13494        // Prevent Drop from running (which would shut down the channel)
13495        std::mem::forget(self);
13496    }
13497}
13498
13499impl BaseDatagramSocketGetIpv6ReceiveTrafficClassResponder {
13500    /// Sends a response to the FIDL transaction.
13501    ///
13502    /// Sets the channel to shutdown if an error occurs.
13503    pub fn send(
13504        self,
13505        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13506    ) -> Result<(), fidl::Error> {
13507        let _result = self.send_raw(result);
13508        if _result.is_err() {
13509            self.control_handle.shutdown();
13510        }
13511        self.drop_without_shutdown();
13512        _result
13513    }
13514
13515    /// Similar to "send" but does not shutdown the channel if an error occurs.
13516    pub fn send_no_shutdown_on_err(
13517        self,
13518        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13519    ) -> Result<(), fidl::Error> {
13520        let _result = self.send_raw(result);
13521        self.drop_without_shutdown();
13522        _result
13523    }
13524
13525    fn send_raw(
13526        &self,
13527        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13528    ) -> Result<(), fidl::Error> {
13529        self.control_handle.inner.send::<fidl::encoding::ResultType<
13530            BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
13531            fidl_fuchsia_posix::Errno,
13532        >>(
13533            result.map(|value| (value,)),
13534            self.tx_id,
13535            0x2e334df1da553ffa,
13536            fidl::encoding::DynamicFlags::empty(),
13537        )
13538    }
13539}
13540
13541#[must_use = "FIDL methods require a response to be sent"]
13542#[derive(Debug)]
13543pub struct BaseDatagramSocketSetIpv6TrafficClassResponder {
13544    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13545    tx_id: u32,
13546}
13547
13548/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13549/// if the responder is dropped without sending a response, so that the client
13550/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13551impl std::ops::Drop for BaseDatagramSocketSetIpv6TrafficClassResponder {
13552    fn drop(&mut self) {
13553        self.control_handle.shutdown();
13554        // Safety: drops once, never accessed again
13555        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13556    }
13557}
13558
13559impl fidl::endpoints::Responder for BaseDatagramSocketSetIpv6TrafficClassResponder {
13560    type ControlHandle = BaseDatagramSocketControlHandle;
13561
13562    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13563        &self.control_handle
13564    }
13565
13566    fn drop_without_shutdown(mut self) {
13567        // Safety: drops once, never accessed again due to mem::forget
13568        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13569        // Prevent Drop from running (which would shut down the channel)
13570        std::mem::forget(self);
13571    }
13572}
13573
13574impl BaseDatagramSocketSetIpv6TrafficClassResponder {
13575    /// Sends a response to the FIDL transaction.
13576    ///
13577    /// Sets the channel to shutdown if an error occurs.
13578    pub fn send(
13579        self,
13580        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13581    ) -> Result<(), fidl::Error> {
13582        let _result = self.send_raw(result);
13583        if _result.is_err() {
13584            self.control_handle.shutdown();
13585        }
13586        self.drop_without_shutdown();
13587        _result
13588    }
13589
13590    /// Similar to "send" but does not shutdown the channel if an error occurs.
13591    pub fn send_no_shutdown_on_err(
13592        self,
13593        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13594    ) -> Result<(), fidl::Error> {
13595        let _result = self.send_raw(result);
13596        self.drop_without_shutdown();
13597        _result
13598    }
13599
13600    fn send_raw(
13601        &self,
13602        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13603    ) -> Result<(), fidl::Error> {
13604        self.control_handle.inner.send::<fidl::encoding::ResultType<
13605            fidl::encoding::EmptyStruct,
13606            fidl_fuchsia_posix::Errno,
13607        >>(
13608            result,
13609            self.tx_id,
13610            0x6af077800c5a0b4f,
13611            fidl::encoding::DynamicFlags::empty(),
13612        )
13613    }
13614}
13615
13616#[must_use = "FIDL methods require a response to be sent"]
13617#[derive(Debug)]
13618pub struct BaseDatagramSocketGetIpv6TrafficClassResponder {
13619    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13620    tx_id: u32,
13621}
13622
13623/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13624/// if the responder is dropped without sending a response, so that the client
13625/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13626impl std::ops::Drop for BaseDatagramSocketGetIpv6TrafficClassResponder {
13627    fn drop(&mut self) {
13628        self.control_handle.shutdown();
13629        // Safety: drops once, never accessed again
13630        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13631    }
13632}
13633
13634impl fidl::endpoints::Responder for BaseDatagramSocketGetIpv6TrafficClassResponder {
13635    type ControlHandle = BaseDatagramSocketControlHandle;
13636
13637    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13638        &self.control_handle
13639    }
13640
13641    fn drop_without_shutdown(mut self) {
13642        // Safety: drops once, never accessed again due to mem::forget
13643        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13644        // Prevent Drop from running (which would shut down the channel)
13645        std::mem::forget(self);
13646    }
13647}
13648
13649impl BaseDatagramSocketGetIpv6TrafficClassResponder {
13650    /// Sends a response to the FIDL transaction.
13651    ///
13652    /// Sets the channel to shutdown if an error occurs.
13653    pub fn send(
13654        self,
13655        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
13656    ) -> Result<(), fidl::Error> {
13657        let _result = self.send_raw(result);
13658        if _result.is_err() {
13659            self.control_handle.shutdown();
13660        }
13661        self.drop_without_shutdown();
13662        _result
13663    }
13664
13665    /// Similar to "send" but does not shutdown the channel if an error occurs.
13666    pub fn send_no_shutdown_on_err(
13667        self,
13668        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
13669    ) -> Result<(), fidl::Error> {
13670        let _result = self.send_raw(result);
13671        self.drop_without_shutdown();
13672        _result
13673    }
13674
13675    fn send_raw(
13676        &self,
13677        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
13678    ) -> Result<(), fidl::Error> {
13679        self.control_handle.inner.send::<fidl::encoding::ResultType<
13680            BaseNetworkSocketGetIpv6TrafficClassResponse,
13681            fidl_fuchsia_posix::Errno,
13682        >>(
13683            result.map(|value| (value,)),
13684            self.tx_id,
13685            0x6baf6eed8fc2f04,
13686            fidl::encoding::DynamicFlags::empty(),
13687        )
13688    }
13689}
13690
13691#[must_use = "FIDL methods require a response to be sent"]
13692#[derive(Debug)]
13693pub struct BaseDatagramSocketSetIpv6ReceivePacketInfoResponder {
13694    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13695    tx_id: u32,
13696}
13697
13698/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13699/// if the responder is dropped without sending a response, so that the client
13700/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13701impl std::ops::Drop for BaseDatagramSocketSetIpv6ReceivePacketInfoResponder {
13702    fn drop(&mut self) {
13703        self.control_handle.shutdown();
13704        // Safety: drops once, never accessed again
13705        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13706    }
13707}
13708
13709impl fidl::endpoints::Responder for BaseDatagramSocketSetIpv6ReceivePacketInfoResponder {
13710    type ControlHandle = BaseDatagramSocketControlHandle;
13711
13712    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13713        &self.control_handle
13714    }
13715
13716    fn drop_without_shutdown(mut self) {
13717        // Safety: drops once, never accessed again due to mem::forget
13718        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13719        // Prevent Drop from running (which would shut down the channel)
13720        std::mem::forget(self);
13721    }
13722}
13723
13724impl BaseDatagramSocketSetIpv6ReceivePacketInfoResponder {
13725    /// Sends a response to the FIDL transaction.
13726    ///
13727    /// Sets the channel to shutdown if an error occurs.
13728    pub fn send(
13729        self,
13730        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13731    ) -> Result<(), fidl::Error> {
13732        let _result = self.send_raw(result);
13733        if _result.is_err() {
13734            self.control_handle.shutdown();
13735        }
13736        self.drop_without_shutdown();
13737        _result
13738    }
13739
13740    /// Similar to "send" but does not shutdown the channel if an error occurs.
13741    pub fn send_no_shutdown_on_err(
13742        self,
13743        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13744    ) -> Result<(), fidl::Error> {
13745        let _result = self.send_raw(result);
13746        self.drop_without_shutdown();
13747        _result
13748    }
13749
13750    fn send_raw(
13751        &self,
13752        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13753    ) -> Result<(), fidl::Error> {
13754        self.control_handle.inner.send::<fidl::encoding::ResultType<
13755            fidl::encoding::EmptyStruct,
13756            fidl_fuchsia_posix::Errno,
13757        >>(
13758            result,
13759            self.tx_id,
13760            0x19259775b1a92768,
13761            fidl::encoding::DynamicFlags::empty(),
13762        )
13763    }
13764}
13765
13766#[must_use = "FIDL methods require a response to be sent"]
13767#[derive(Debug)]
13768pub struct BaseDatagramSocketGetIpv6ReceivePacketInfoResponder {
13769    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13770    tx_id: u32,
13771}
13772
13773/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13774/// if the responder is dropped without sending a response, so that the client
13775/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13776impl std::ops::Drop for BaseDatagramSocketGetIpv6ReceivePacketInfoResponder {
13777    fn drop(&mut self) {
13778        self.control_handle.shutdown();
13779        // Safety: drops once, never accessed again
13780        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13781    }
13782}
13783
13784impl fidl::endpoints::Responder for BaseDatagramSocketGetIpv6ReceivePacketInfoResponder {
13785    type ControlHandle = BaseDatagramSocketControlHandle;
13786
13787    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13788        &self.control_handle
13789    }
13790
13791    fn drop_without_shutdown(mut self) {
13792        // Safety: drops once, never accessed again due to mem::forget
13793        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13794        // Prevent Drop from running (which would shut down the channel)
13795        std::mem::forget(self);
13796    }
13797}
13798
13799impl BaseDatagramSocketGetIpv6ReceivePacketInfoResponder {
13800    /// Sends a response to the FIDL transaction.
13801    ///
13802    /// Sets the channel to shutdown if an error occurs.
13803    pub fn send(
13804        self,
13805        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13806    ) -> Result<(), fidl::Error> {
13807        let _result = self.send_raw(result);
13808        if _result.is_err() {
13809            self.control_handle.shutdown();
13810        }
13811        self.drop_without_shutdown();
13812        _result
13813    }
13814
13815    /// Similar to "send" but does not shutdown the channel if an error occurs.
13816    pub fn send_no_shutdown_on_err(
13817        self,
13818        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13819    ) -> Result<(), fidl::Error> {
13820        let _result = self.send_raw(result);
13821        self.drop_without_shutdown();
13822        _result
13823    }
13824
13825    fn send_raw(
13826        &self,
13827        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13828    ) -> Result<(), fidl::Error> {
13829        self.control_handle.inner.send::<fidl::encoding::ResultType<
13830            BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
13831            fidl_fuchsia_posix::Errno,
13832        >>(
13833            result.map(|value| (value,)),
13834            self.tx_id,
13835            0x7acd4a2775baec75,
13836            fidl::encoding::DynamicFlags::empty(),
13837        )
13838    }
13839}
13840
13841#[must_use = "FIDL methods require a response to be sent"]
13842#[derive(Debug)]
13843pub struct BaseDatagramSocketGetOriginalDestinationResponder {
13844    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13845    tx_id: u32,
13846}
13847
13848/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13849/// if the responder is dropped without sending a response, so that the client
13850/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13851impl std::ops::Drop for BaseDatagramSocketGetOriginalDestinationResponder {
13852    fn drop(&mut self) {
13853        self.control_handle.shutdown();
13854        // Safety: drops once, never accessed again
13855        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13856    }
13857}
13858
13859impl fidl::endpoints::Responder for BaseDatagramSocketGetOriginalDestinationResponder {
13860    type ControlHandle = BaseDatagramSocketControlHandle;
13861
13862    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13863        &self.control_handle
13864    }
13865
13866    fn drop_without_shutdown(mut self) {
13867        // Safety: drops once, never accessed again due to mem::forget
13868        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13869        // Prevent Drop from running (which would shut down the channel)
13870        std::mem::forget(self);
13871    }
13872}
13873
13874impl BaseDatagramSocketGetOriginalDestinationResponder {
13875    /// Sends a response to the FIDL transaction.
13876    ///
13877    /// Sets the channel to shutdown if an error occurs.
13878    pub fn send(
13879        self,
13880        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
13881    ) -> Result<(), fidl::Error> {
13882        let _result = self.send_raw(result);
13883        if _result.is_err() {
13884            self.control_handle.shutdown();
13885        }
13886        self.drop_without_shutdown();
13887        _result
13888    }
13889
13890    /// Similar to "send" but does not shutdown the channel if an error occurs.
13891    pub fn send_no_shutdown_on_err(
13892        self,
13893        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
13894    ) -> Result<(), fidl::Error> {
13895        let _result = self.send_raw(result);
13896        self.drop_without_shutdown();
13897        _result
13898    }
13899
13900    fn send_raw(
13901        &self,
13902        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
13903    ) -> Result<(), fidl::Error> {
13904        self.control_handle.inner.send::<fidl::encoding::ResultType<
13905            BaseNetworkSocketGetOriginalDestinationResponse,
13906            fidl_fuchsia_posix::Errno,
13907        >>(
13908            result.map(|value| (value,)),
13909            self.tx_id,
13910            0x38bf28f0dafdbac0,
13911            fidl::encoding::DynamicFlags::empty(),
13912        )
13913    }
13914}
13915
13916#[must_use = "FIDL methods require a response to be sent"]
13917#[derive(Debug)]
13918pub struct BaseDatagramSocketGetInfoResponder {
13919    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13920    tx_id: u32,
13921}
13922
13923/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13924/// if the responder is dropped without sending a response, so that the client
13925/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13926impl std::ops::Drop for BaseDatagramSocketGetInfoResponder {
13927    fn drop(&mut self) {
13928        self.control_handle.shutdown();
13929        // Safety: drops once, never accessed again
13930        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13931    }
13932}
13933
13934impl fidl::endpoints::Responder for BaseDatagramSocketGetInfoResponder {
13935    type ControlHandle = BaseDatagramSocketControlHandle;
13936
13937    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13938        &self.control_handle
13939    }
13940
13941    fn drop_without_shutdown(mut self) {
13942        // Safety: drops once, never accessed again due to mem::forget
13943        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13944        // Prevent Drop from running (which would shut down the channel)
13945        std::mem::forget(self);
13946    }
13947}
13948
13949impl BaseDatagramSocketGetInfoResponder {
13950    /// Sends a response to the FIDL transaction.
13951    ///
13952    /// Sets the channel to shutdown if an error occurs.
13953    pub fn send(
13954        self,
13955        mut result: Result<(Domain, DatagramSocketProtocol), fidl_fuchsia_posix::Errno>,
13956    ) -> Result<(), fidl::Error> {
13957        let _result = self.send_raw(result);
13958        if _result.is_err() {
13959            self.control_handle.shutdown();
13960        }
13961        self.drop_without_shutdown();
13962        _result
13963    }
13964
13965    /// Similar to "send" but does not shutdown the channel if an error occurs.
13966    pub fn send_no_shutdown_on_err(
13967        self,
13968        mut result: Result<(Domain, DatagramSocketProtocol), fidl_fuchsia_posix::Errno>,
13969    ) -> Result<(), fidl::Error> {
13970        let _result = self.send_raw(result);
13971        self.drop_without_shutdown();
13972        _result
13973    }
13974
13975    fn send_raw(
13976        &self,
13977        mut result: Result<(Domain, DatagramSocketProtocol), fidl_fuchsia_posix::Errno>,
13978    ) -> Result<(), fidl::Error> {
13979        self.control_handle.inner.send::<fidl::encoding::ResultType<
13980            BaseDatagramSocketGetInfoResponse,
13981            fidl_fuchsia_posix::Errno,
13982        >>(
13983            result,
13984            self.tx_id,
13985            0x48aa0a1f6a32d2ed,
13986            fidl::encoding::DynamicFlags::empty(),
13987        )
13988    }
13989}
13990
13991#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
13992pub struct BaseNetworkSocketMarker;
13993
13994impl fidl::endpoints::ProtocolMarker for BaseNetworkSocketMarker {
13995    type Proxy = BaseNetworkSocketProxy;
13996    type RequestStream = BaseNetworkSocketRequestStream;
13997    #[cfg(target_os = "fuchsia")]
13998    type SynchronousProxy = BaseNetworkSocketSynchronousProxy;
13999
14000    const DEBUG_NAME: &'static str = "(anonymous) BaseNetworkSocket";
14001}
14002pub type BaseNetworkSocketBindResult = Result<(), fidl_fuchsia_posix::Errno>;
14003pub type BaseNetworkSocketConnectResult = Result<(), fidl_fuchsia_posix::Errno>;
14004pub type BaseNetworkSocketDisconnectResult = Result<(), fidl_fuchsia_posix::Errno>;
14005pub type BaseNetworkSocketGetSockNameResult =
14006    Result<fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>;
14007pub type BaseNetworkSocketGetPeerNameResult =
14008    Result<fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>;
14009pub type BaseNetworkSocketShutdownResult = Result<(), fidl_fuchsia_posix::Errno>;
14010pub type BaseNetworkSocketSetIpTypeOfServiceResult = Result<(), fidl_fuchsia_posix::Errno>;
14011pub type BaseNetworkSocketGetIpTypeOfServiceResult = Result<u8, fidl_fuchsia_posix::Errno>;
14012pub type BaseNetworkSocketSetIpTtlResult = Result<(), fidl_fuchsia_posix::Errno>;
14013pub type BaseNetworkSocketGetIpTtlResult = Result<u8, fidl_fuchsia_posix::Errno>;
14014pub type BaseNetworkSocketSetIpPacketInfoResult = Result<(), fidl_fuchsia_posix::Errno>;
14015pub type BaseNetworkSocketGetIpPacketInfoResult = Result<bool, fidl_fuchsia_posix::Errno>;
14016pub type BaseNetworkSocketSetIpReceiveTypeOfServiceResult = Result<(), fidl_fuchsia_posix::Errno>;
14017pub type BaseNetworkSocketGetIpReceiveTypeOfServiceResult = Result<bool, fidl_fuchsia_posix::Errno>;
14018pub type BaseNetworkSocketSetIpReceiveTtlResult = Result<(), fidl_fuchsia_posix::Errno>;
14019pub type BaseNetworkSocketGetIpReceiveTtlResult = Result<bool, fidl_fuchsia_posix::Errno>;
14020pub type BaseNetworkSocketSetIpMulticastInterfaceResult = Result<(), fidl_fuchsia_posix::Errno>;
14021pub type BaseNetworkSocketGetIpMulticastInterfaceResult =
14022    Result<fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>;
14023pub type BaseNetworkSocketSetIpMulticastTtlResult = Result<(), fidl_fuchsia_posix::Errno>;
14024pub type BaseNetworkSocketGetIpMulticastTtlResult = Result<u8, fidl_fuchsia_posix::Errno>;
14025pub type BaseNetworkSocketSetIpMulticastLoopbackResult = Result<(), fidl_fuchsia_posix::Errno>;
14026pub type BaseNetworkSocketGetIpMulticastLoopbackResult = Result<bool, fidl_fuchsia_posix::Errno>;
14027pub type BaseNetworkSocketAddIpMembershipResult = Result<(), fidl_fuchsia_posix::Errno>;
14028pub type BaseNetworkSocketDropIpMembershipResult = Result<(), fidl_fuchsia_posix::Errno>;
14029pub type BaseNetworkSocketSetIpTransparentResult = Result<(), fidl_fuchsia_posix::Errno>;
14030pub type BaseNetworkSocketGetIpTransparentResult = Result<bool, fidl_fuchsia_posix::Errno>;
14031pub type BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult =
14032    Result<(), fidl_fuchsia_posix::Errno>;
14033pub type BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult =
14034    Result<bool, fidl_fuchsia_posix::Errno>;
14035pub type BaseNetworkSocketAddIpv6MembershipResult = Result<(), fidl_fuchsia_posix::Errno>;
14036pub type BaseNetworkSocketDropIpv6MembershipResult = Result<(), fidl_fuchsia_posix::Errno>;
14037pub type BaseNetworkSocketSetIpv6MulticastInterfaceResult = Result<(), fidl_fuchsia_posix::Errno>;
14038pub type BaseNetworkSocketGetIpv6MulticastInterfaceResult = Result<u64, fidl_fuchsia_posix::Errno>;
14039pub type BaseNetworkSocketSetIpv6UnicastHopsResult = Result<(), fidl_fuchsia_posix::Errno>;
14040pub type BaseNetworkSocketGetIpv6UnicastHopsResult = Result<u8, fidl_fuchsia_posix::Errno>;
14041pub type BaseNetworkSocketSetIpv6ReceiveHopLimitResult = Result<(), fidl_fuchsia_posix::Errno>;
14042pub type BaseNetworkSocketGetIpv6ReceiveHopLimitResult = Result<bool, fidl_fuchsia_posix::Errno>;
14043pub type BaseNetworkSocketSetIpv6MulticastHopsResult = Result<(), fidl_fuchsia_posix::Errno>;
14044pub type BaseNetworkSocketGetIpv6MulticastHopsResult = Result<u8, fidl_fuchsia_posix::Errno>;
14045pub type BaseNetworkSocketSetIpv6MulticastLoopbackResult = Result<(), fidl_fuchsia_posix::Errno>;
14046pub type BaseNetworkSocketGetIpv6MulticastLoopbackResult = Result<bool, fidl_fuchsia_posix::Errno>;
14047pub type BaseNetworkSocketSetIpv6OnlyResult = Result<(), fidl_fuchsia_posix::Errno>;
14048pub type BaseNetworkSocketGetIpv6OnlyResult = Result<bool, fidl_fuchsia_posix::Errno>;
14049pub type BaseNetworkSocketSetIpv6ReceiveTrafficClassResult = Result<(), fidl_fuchsia_posix::Errno>;
14050pub type BaseNetworkSocketGetIpv6ReceiveTrafficClassResult =
14051    Result<bool, fidl_fuchsia_posix::Errno>;
14052pub type BaseNetworkSocketSetIpv6TrafficClassResult = Result<(), fidl_fuchsia_posix::Errno>;
14053pub type BaseNetworkSocketGetIpv6TrafficClassResult = Result<u8, fidl_fuchsia_posix::Errno>;
14054pub type BaseNetworkSocketSetIpv6ReceivePacketInfoResult = Result<(), fidl_fuchsia_posix::Errno>;
14055pub type BaseNetworkSocketGetIpv6ReceivePacketInfoResult = Result<bool, fidl_fuchsia_posix::Errno>;
14056pub type BaseNetworkSocketGetOriginalDestinationResult =
14057    Result<fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>;
14058
14059pub trait BaseNetworkSocketProxyInterface: Send + Sync {
14060    fn r#clone(
14061        &self,
14062        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
14063    ) -> Result<(), fidl::Error>;
14064    type CloseResponseFut: std::future::Future<
14065            Output = Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error>,
14066        > + Send;
14067    fn r#close(&self) -> Self::CloseResponseFut;
14068    type QueryResponseFut: std::future::Future<Output = Result<Vec<u8>, fidl::Error>> + Send;
14069    fn r#query(&self) -> Self::QueryResponseFut;
14070    type SetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketSetReuseAddressResult, fidl::Error>>
14071        + Send;
14072    fn r#set_reuse_address(&self, value: bool) -> Self::SetReuseAddressResponseFut;
14073    type GetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketGetReuseAddressResult, fidl::Error>>
14074        + Send;
14075    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut;
14076    type GetErrorResponseFut: std::future::Future<Output = Result<BaseSocketGetErrorResult, fidl::Error>>
14077        + Send;
14078    fn r#get_error(&self) -> Self::GetErrorResponseFut;
14079    type SetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketSetBroadcastResult, fidl::Error>>
14080        + Send;
14081    fn r#set_broadcast(&self, value: bool) -> Self::SetBroadcastResponseFut;
14082    type GetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketGetBroadcastResult, fidl::Error>>
14083        + Send;
14084    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut;
14085    type SetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetSendBufferResult, fidl::Error>>
14086        + Send;
14087    fn r#set_send_buffer(&self, value_bytes: u64) -> Self::SetSendBufferResponseFut;
14088    type GetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetSendBufferResult, fidl::Error>>
14089        + Send;
14090    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut;
14091    type SetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetReceiveBufferResult, fidl::Error>>
14092        + Send;
14093    fn r#set_receive_buffer(&self, value_bytes: u64) -> Self::SetReceiveBufferResponseFut;
14094    type GetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetReceiveBufferResult, fidl::Error>>
14095        + Send;
14096    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut;
14097    type SetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketSetKeepAliveResult, fidl::Error>>
14098        + Send;
14099    fn r#set_keep_alive(&self, value: bool) -> Self::SetKeepAliveResponseFut;
14100    type GetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketGetKeepAliveResult, fidl::Error>>
14101        + Send;
14102    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut;
14103    type SetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketSetOutOfBandInlineResult, fidl::Error>>
14104        + Send;
14105    fn r#set_out_of_band_inline(&self, value: bool) -> Self::SetOutOfBandInlineResponseFut;
14106    type GetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketGetOutOfBandInlineResult, fidl::Error>>
14107        + Send;
14108    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut;
14109    type SetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketSetNoCheckResult, fidl::Error>>
14110        + Send;
14111    fn r#set_no_check(&self, value: bool) -> Self::SetNoCheckResponseFut;
14112    type GetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketGetNoCheckResult, fidl::Error>>
14113        + Send;
14114    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut;
14115    type SetLingerResponseFut: std::future::Future<Output = Result<BaseSocketSetLingerResult, fidl::Error>>
14116        + Send;
14117    fn r#set_linger(&self, linger: bool, length_secs: u32) -> Self::SetLingerResponseFut;
14118    type GetLingerResponseFut: std::future::Future<Output = Result<BaseSocketGetLingerResult, fidl::Error>>
14119        + Send;
14120    fn r#get_linger(&self) -> Self::GetLingerResponseFut;
14121    type SetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketSetReusePortResult, fidl::Error>>
14122        + Send;
14123    fn r#set_reuse_port(&self, value: bool) -> Self::SetReusePortResponseFut;
14124    type GetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketGetReusePortResult, fidl::Error>>
14125        + Send;
14126    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut;
14127    type GetAcceptConnResponseFut: std::future::Future<Output = Result<BaseSocketGetAcceptConnResult, fidl::Error>>
14128        + Send;
14129    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut;
14130    type SetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToDeviceResult, fidl::Error>>
14131        + Send;
14132    fn r#set_bind_to_device(&self, value: &str) -> Self::SetBindToDeviceResponseFut;
14133    type GetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToDeviceResult, fidl::Error>>
14134        + Send;
14135    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut;
14136    type SetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error>>
14137        + Send;
14138    fn r#set_bind_to_interface_index(&self, value: u64)
14139        -> Self::SetBindToInterfaceIndexResponseFut;
14140    type GetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error>>
14141        + Send;
14142    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut;
14143    type SetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketSetTimestampResult, fidl::Error>>
14144        + Send;
14145    fn r#set_timestamp(&self, value: TimestampOption) -> Self::SetTimestampResponseFut;
14146    type GetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketGetTimestampResult, fidl::Error>>
14147        + Send;
14148    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut;
14149    type SetMarkResponseFut: std::future::Future<Output = Result<BaseSocketSetMarkResult, fidl::Error>>
14150        + Send;
14151    fn r#set_mark(
14152        &self,
14153        domain: fidl_fuchsia_net::MarkDomain,
14154        mark: &OptionalUint32,
14155    ) -> Self::SetMarkResponseFut;
14156    type GetMarkResponseFut: std::future::Future<Output = Result<BaseSocketGetMarkResult, fidl::Error>>
14157        + Send;
14158    fn r#get_mark(&self, domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut;
14159    type GetCookieResponseFut: std::future::Future<Output = Result<BaseSocketGetCookieResult, fidl::Error>>
14160        + Send;
14161    fn r#get_cookie(&self) -> Self::GetCookieResponseFut;
14162    type BindResponseFut: std::future::Future<Output = Result<BaseNetworkSocketBindResult, fidl::Error>>
14163        + Send;
14164    fn r#bind(&self, addr: &fidl_fuchsia_net::SocketAddress) -> Self::BindResponseFut;
14165    type ConnectResponseFut: std::future::Future<Output = Result<BaseNetworkSocketConnectResult, fidl::Error>>
14166        + Send;
14167    fn r#connect(&self, addr: &fidl_fuchsia_net::SocketAddress) -> Self::ConnectResponseFut;
14168    type DisconnectResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDisconnectResult, fidl::Error>>
14169        + Send;
14170    fn r#disconnect(&self) -> Self::DisconnectResponseFut;
14171    type GetSockNameResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetSockNameResult, fidl::Error>>
14172        + Send;
14173    fn r#get_sock_name(&self) -> Self::GetSockNameResponseFut;
14174    type GetPeerNameResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetPeerNameResult, fidl::Error>>
14175        + Send;
14176    fn r#get_peer_name(&self) -> Self::GetPeerNameResponseFut;
14177    type ShutdownResponseFut: std::future::Future<Output = Result<BaseNetworkSocketShutdownResult, fidl::Error>>
14178        + Send;
14179    fn r#shutdown(&self, mode: ShutdownMode) -> Self::ShutdownResponseFut;
14180    type SetIpTypeOfServiceResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error>>
14181        + Send;
14182    fn r#set_ip_type_of_service(&self, value: u8) -> Self::SetIpTypeOfServiceResponseFut;
14183    type GetIpTypeOfServiceResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error>>
14184        + Send;
14185    fn r#get_ip_type_of_service(&self) -> Self::GetIpTypeOfServiceResponseFut;
14186    type SetIpTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTtlResult, fidl::Error>>
14187        + Send;
14188    fn r#set_ip_ttl(&self, value: &OptionalUint8) -> Self::SetIpTtlResponseFut;
14189    type GetIpTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTtlResult, fidl::Error>>
14190        + Send;
14191    fn r#get_ip_ttl(&self) -> Self::GetIpTtlResponseFut;
14192    type SetIpPacketInfoResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error>>
14193        + Send;
14194    fn r#set_ip_packet_info(&self, value: bool) -> Self::SetIpPacketInfoResponseFut;
14195    type GetIpPacketInfoResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error>>
14196        + Send;
14197    fn r#get_ip_packet_info(&self) -> Self::GetIpPacketInfoResponseFut;
14198    type SetIpReceiveTypeOfServiceResponseFut: std::future::Future<
14199            Output = Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error>,
14200        > + Send;
14201    fn r#set_ip_receive_type_of_service(
14202        &self,
14203        value: bool,
14204    ) -> Self::SetIpReceiveTypeOfServiceResponseFut;
14205    type GetIpReceiveTypeOfServiceResponseFut: std::future::Future<
14206            Output = Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error>,
14207        > + Send;
14208    fn r#get_ip_receive_type_of_service(&self) -> Self::GetIpReceiveTypeOfServiceResponseFut;
14209    type SetIpReceiveTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error>>
14210        + Send;
14211    fn r#set_ip_receive_ttl(&self, value: bool) -> Self::SetIpReceiveTtlResponseFut;
14212    type GetIpReceiveTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error>>
14213        + Send;
14214    fn r#get_ip_receive_ttl(&self) -> Self::GetIpReceiveTtlResponseFut;
14215    type SetIpMulticastInterfaceResponseFut: std::future::Future<
14216            Output = Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error>,
14217        > + Send;
14218    fn r#set_ip_multicast_interface(
14219        &self,
14220        iface: u64,
14221        address: &fidl_fuchsia_net::Ipv4Address,
14222    ) -> Self::SetIpMulticastInterfaceResponseFut;
14223    type GetIpMulticastInterfaceResponseFut: std::future::Future<
14224            Output = Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error>,
14225        > + Send;
14226    fn r#get_ip_multicast_interface(&self) -> Self::GetIpMulticastInterfaceResponseFut;
14227    type SetIpMulticastTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error>>
14228        + Send;
14229    fn r#set_ip_multicast_ttl(&self, value: &OptionalUint8) -> Self::SetIpMulticastTtlResponseFut;
14230    type GetIpMulticastTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error>>
14231        + Send;
14232    fn r#get_ip_multicast_ttl(&self) -> Self::GetIpMulticastTtlResponseFut;
14233    type SetIpMulticastLoopbackResponseFut: std::future::Future<
14234            Output = Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error>,
14235        > + Send;
14236    fn r#set_ip_multicast_loopback(&self, value: bool) -> Self::SetIpMulticastLoopbackResponseFut;
14237    type GetIpMulticastLoopbackResponseFut: std::future::Future<
14238            Output = Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error>,
14239        > + Send;
14240    fn r#get_ip_multicast_loopback(&self) -> Self::GetIpMulticastLoopbackResponseFut;
14241    type AddIpMembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error>>
14242        + Send;
14243    fn r#add_ip_membership(
14244        &self,
14245        membership: &IpMulticastMembership,
14246    ) -> Self::AddIpMembershipResponseFut;
14247    type DropIpMembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error>>
14248        + Send;
14249    fn r#drop_ip_membership(
14250        &self,
14251        membership: &IpMulticastMembership,
14252    ) -> Self::DropIpMembershipResponseFut;
14253    type SetIpTransparentResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error>>
14254        + Send;
14255    fn r#set_ip_transparent(&self, value: bool) -> Self::SetIpTransparentResponseFut;
14256    type GetIpTransparentResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error>>
14257        + Send;
14258    fn r#get_ip_transparent(&self) -> Self::GetIpTransparentResponseFut;
14259    type SetIpReceiveOriginalDestinationAddressResponseFut: std::future::Future<
14260            Output = Result<
14261                BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
14262                fidl::Error,
14263            >,
14264        > + Send;
14265    fn r#set_ip_receive_original_destination_address(
14266        &self,
14267        value: bool,
14268    ) -> Self::SetIpReceiveOriginalDestinationAddressResponseFut;
14269    type GetIpReceiveOriginalDestinationAddressResponseFut: std::future::Future<
14270            Output = Result<
14271                BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
14272                fidl::Error,
14273            >,
14274        > + Send;
14275    fn r#get_ip_receive_original_destination_address(
14276        &self,
14277    ) -> Self::GetIpReceiveOriginalDestinationAddressResponseFut;
14278    type AddIpv6MembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error>>
14279        + Send;
14280    fn r#add_ipv6_membership(
14281        &self,
14282        membership: &Ipv6MulticastMembership,
14283    ) -> Self::AddIpv6MembershipResponseFut;
14284    type DropIpv6MembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error>>
14285        + Send;
14286    fn r#drop_ipv6_membership(
14287        &self,
14288        membership: &Ipv6MulticastMembership,
14289    ) -> Self::DropIpv6MembershipResponseFut;
14290    type SetIpv6MulticastInterfaceResponseFut: std::future::Future<
14291            Output = Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error>,
14292        > + Send;
14293    fn r#set_ipv6_multicast_interface(
14294        &self,
14295        value: u64,
14296    ) -> Self::SetIpv6MulticastInterfaceResponseFut;
14297    type GetIpv6MulticastInterfaceResponseFut: std::future::Future<
14298            Output = Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error>,
14299        > + Send;
14300    fn r#get_ipv6_multicast_interface(&self) -> Self::GetIpv6MulticastInterfaceResponseFut;
14301    type SetIpv6UnicastHopsResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error>>
14302        + Send;
14303    fn r#set_ipv6_unicast_hops(&self, value: &OptionalUint8)
14304        -> Self::SetIpv6UnicastHopsResponseFut;
14305    type GetIpv6UnicastHopsResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error>>
14306        + Send;
14307    fn r#get_ipv6_unicast_hops(&self) -> Self::GetIpv6UnicastHopsResponseFut;
14308    type SetIpv6ReceiveHopLimitResponseFut: std::future::Future<
14309            Output = Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error>,
14310        > + Send;
14311    fn r#set_ipv6_receive_hop_limit(&self, value: bool) -> Self::SetIpv6ReceiveHopLimitResponseFut;
14312    type GetIpv6ReceiveHopLimitResponseFut: std::future::Future<
14313            Output = Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error>,
14314        > + Send;
14315    fn r#get_ipv6_receive_hop_limit(&self) -> Self::GetIpv6ReceiveHopLimitResponseFut;
14316    type SetIpv6MulticastHopsResponseFut: std::future::Future<
14317            Output = Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error>,
14318        > + Send;
14319    fn r#set_ipv6_multicast_hops(
14320        &self,
14321        value: &OptionalUint8,
14322    ) -> Self::SetIpv6MulticastHopsResponseFut;
14323    type GetIpv6MulticastHopsResponseFut: std::future::Future<
14324            Output = Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error>,
14325        > + Send;
14326    fn r#get_ipv6_multicast_hops(&self) -> Self::GetIpv6MulticastHopsResponseFut;
14327    type SetIpv6MulticastLoopbackResponseFut: std::future::Future<
14328            Output = Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error>,
14329        > + Send;
14330    fn r#set_ipv6_multicast_loopback(
14331        &self,
14332        value: bool,
14333    ) -> Self::SetIpv6MulticastLoopbackResponseFut;
14334    type GetIpv6MulticastLoopbackResponseFut: std::future::Future<
14335            Output = Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error>,
14336        > + Send;
14337    fn r#get_ipv6_multicast_loopback(&self) -> Self::GetIpv6MulticastLoopbackResponseFut;
14338    type SetIpv6OnlyResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error>>
14339        + Send;
14340    fn r#set_ipv6_only(&self, value: bool) -> Self::SetIpv6OnlyResponseFut;
14341    type GetIpv6OnlyResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error>>
14342        + Send;
14343    fn r#get_ipv6_only(&self) -> Self::GetIpv6OnlyResponseFut;
14344    type SetIpv6ReceiveTrafficClassResponseFut: std::future::Future<
14345            Output = Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error>,
14346        > + Send;
14347    fn r#set_ipv6_receive_traffic_class(
14348        &self,
14349        value: bool,
14350    ) -> Self::SetIpv6ReceiveTrafficClassResponseFut;
14351    type GetIpv6ReceiveTrafficClassResponseFut: std::future::Future<
14352            Output = Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error>,
14353        > + Send;
14354    fn r#get_ipv6_receive_traffic_class(&self) -> Self::GetIpv6ReceiveTrafficClassResponseFut;
14355    type SetIpv6TrafficClassResponseFut: std::future::Future<
14356            Output = Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error>,
14357        > + Send;
14358    fn r#set_ipv6_traffic_class(
14359        &self,
14360        value: &OptionalUint8,
14361    ) -> Self::SetIpv6TrafficClassResponseFut;
14362    type GetIpv6TrafficClassResponseFut: std::future::Future<
14363            Output = Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error>,
14364        > + Send;
14365    fn r#get_ipv6_traffic_class(&self) -> Self::GetIpv6TrafficClassResponseFut;
14366    type SetIpv6ReceivePacketInfoResponseFut: std::future::Future<
14367            Output = Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error>,
14368        > + Send;
14369    fn r#set_ipv6_receive_packet_info(
14370        &self,
14371        value: bool,
14372    ) -> Self::SetIpv6ReceivePacketInfoResponseFut;
14373    type GetIpv6ReceivePacketInfoResponseFut: std::future::Future<
14374            Output = Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error>,
14375        > + Send;
14376    fn r#get_ipv6_receive_packet_info(&self) -> Self::GetIpv6ReceivePacketInfoResponseFut;
14377    type GetOriginalDestinationResponseFut: std::future::Future<
14378            Output = Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error>,
14379        > + Send;
14380    fn r#get_original_destination(&self) -> Self::GetOriginalDestinationResponseFut;
14381}
14382#[derive(Debug)]
14383#[cfg(target_os = "fuchsia")]
14384pub struct BaseNetworkSocketSynchronousProxy {
14385    client: fidl::client::sync::Client,
14386}
14387
14388#[cfg(target_os = "fuchsia")]
14389impl fidl::endpoints::SynchronousProxy for BaseNetworkSocketSynchronousProxy {
14390    type Proxy = BaseNetworkSocketProxy;
14391    type Protocol = BaseNetworkSocketMarker;
14392
14393    fn from_channel(inner: fidl::Channel) -> Self {
14394        Self::new(inner)
14395    }
14396
14397    fn into_channel(self) -> fidl::Channel {
14398        self.client.into_channel()
14399    }
14400
14401    fn as_channel(&self) -> &fidl::Channel {
14402        self.client.as_channel()
14403    }
14404}
14405
14406#[cfg(target_os = "fuchsia")]
14407impl BaseNetworkSocketSynchronousProxy {
14408    pub fn new(channel: fidl::Channel) -> Self {
14409        let protocol_name =
14410            <BaseNetworkSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
14411        Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
14412    }
14413
14414    pub fn into_channel(self) -> fidl::Channel {
14415        self.client.into_channel()
14416    }
14417
14418    /// Waits until an event arrives and returns it. It is safe for other
14419    /// threads to make concurrent requests while waiting for an event.
14420    pub fn wait_for_event(
14421        &self,
14422        deadline: zx::MonotonicInstant,
14423    ) -> Result<BaseNetworkSocketEvent, fidl::Error> {
14424        BaseNetworkSocketEvent::decode(self.client.wait_for_event(deadline)?)
14425    }
14426
14427    pub fn r#clone(
14428        &self,
14429        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
14430    ) -> Result<(), fidl::Error> {
14431        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
14432            (request,),
14433            0x20d8a7aba2168a79,
14434            fidl::encoding::DynamicFlags::empty(),
14435        )
14436    }
14437
14438    /// Terminates the connection.
14439    ///
14440    /// After calling `Close`, the client must not send any other requests.
14441    ///
14442    /// Servers, after sending the status response, should close the connection
14443    /// regardless of status and without sending an epitaph.
14444    ///
14445    /// Closing the client end of the channel should be semantically equivalent
14446    /// to calling `Close` without knowing when the close has completed or its
14447    /// status.
14448    pub fn r#close(
14449        &self,
14450        ___deadline: zx::MonotonicInstant,
14451    ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
14452        let _response = self.client.send_query::<
14453            fidl::encoding::EmptyPayload,
14454            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
14455        >(
14456            (),
14457            0x5ac5d459ad7f657e,
14458            fidl::encoding::DynamicFlags::empty(),
14459            ___deadline,
14460        )?;
14461        Ok(_response.map(|x| x))
14462    }
14463
14464    pub fn r#query(&self, ___deadline: zx::MonotonicInstant) -> Result<Vec<u8>, fidl::Error> {
14465        let _response = self.client.send_query::<
14466            fidl::encoding::EmptyPayload,
14467            fidl_fuchsia_unknown::QueryableQueryResponse,
14468        >(
14469            (),
14470            0x2658edee9decfc06,
14471            fidl::encoding::DynamicFlags::empty(),
14472            ___deadline,
14473        )?;
14474        Ok(_response.protocol)
14475    }
14476
14477    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
14478    pub fn r#set_reuse_address(
14479        &self,
14480        mut value: bool,
14481        ___deadline: zx::MonotonicInstant,
14482    ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
14483        let _response =
14484            self.client.send_query::<BaseSocketSetReuseAddressRequest, fidl::encoding::ResultType<
14485                fidl::encoding::EmptyStruct,
14486                fidl_fuchsia_posix::Errno,
14487            >>(
14488                (value,),
14489                0x1fd74ee8b9a4a876,
14490                fidl::encoding::DynamicFlags::empty(),
14491                ___deadline,
14492            )?;
14493        Ok(_response.map(|x| x))
14494    }
14495
14496    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
14497    pub fn r#get_reuse_address(
14498        &self,
14499        ___deadline: zx::MonotonicInstant,
14500    ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
14501        let _response = self
14502            .client
14503            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14504                BaseSocketGetReuseAddressResponse,
14505                fidl_fuchsia_posix::Errno,
14506            >>(
14507                (), 0x67b7206b8d1bc0a5, fidl::encoding::DynamicFlags::empty(), ___deadline
14508            )?;
14509        Ok(_response.map(|x| x.value))
14510    }
14511
14512    /// Get `SOL_SOCKET` -> `SO_ERROR`.
14513    /// Returns the last error if there is an error set on the socket.
14514    pub fn r#get_error(
14515        &self,
14516        ___deadline: zx::MonotonicInstant,
14517    ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
14518        let _response =
14519            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14520                fidl::encoding::EmptyStruct,
14521                fidl_fuchsia_posix::Errno,
14522            >>(
14523                (),
14524                0x5aad39b33e5f6ebb,
14525                fidl::encoding::DynamicFlags::empty(),
14526                ___deadline,
14527            )?;
14528        Ok(_response.map(|x| x))
14529    }
14530
14531    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
14532    pub fn r#set_broadcast(
14533        &self,
14534        mut value: bool,
14535        ___deadline: zx::MonotonicInstant,
14536    ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
14537        let _response =
14538            self.client.send_query::<BaseSocketSetBroadcastRequest, fidl::encoding::ResultType<
14539                fidl::encoding::EmptyStruct,
14540                fidl_fuchsia_posix::Errno,
14541            >>(
14542                (value,),
14543                0x6023e081ce3cd947,
14544                fidl::encoding::DynamicFlags::empty(),
14545                ___deadline,
14546            )?;
14547        Ok(_response.map(|x| x))
14548    }
14549
14550    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
14551    pub fn r#get_broadcast(
14552        &self,
14553        ___deadline: zx::MonotonicInstant,
14554    ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
14555        let _response =
14556            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14557                BaseSocketGetBroadcastResponse,
14558                fidl_fuchsia_posix::Errno,
14559            >>(
14560                (),
14561                0x68796fc556f9780d,
14562                fidl::encoding::DynamicFlags::empty(),
14563                ___deadline,
14564            )?;
14565        Ok(_response.map(|x| x.value))
14566    }
14567
14568    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
14569    pub fn r#set_send_buffer(
14570        &self,
14571        mut value_bytes: u64,
14572        ___deadline: zx::MonotonicInstant,
14573    ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
14574        let _response =
14575            self.client.send_query::<BaseSocketSetSendBufferRequest, fidl::encoding::ResultType<
14576                fidl::encoding::EmptyStruct,
14577                fidl_fuchsia_posix::Errno,
14578            >>(
14579                (value_bytes,),
14580                0x756eac32d73a7a70,
14581                fidl::encoding::DynamicFlags::empty(),
14582                ___deadline,
14583            )?;
14584        Ok(_response.map(|x| x))
14585    }
14586
14587    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
14588    pub fn r#get_send_buffer(
14589        &self,
14590        ___deadline: zx::MonotonicInstant,
14591    ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
14592        let _response = self
14593            .client
14594            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14595                BaseSocketGetSendBufferResponse,
14596                fidl_fuchsia_posix::Errno,
14597            >>(
14598                (), 0x78a52fd9c7b2410b, fidl::encoding::DynamicFlags::empty(), ___deadline
14599            )?;
14600        Ok(_response.map(|x| x.value_bytes))
14601    }
14602
14603    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
14604    pub fn r#set_receive_buffer(
14605        &self,
14606        mut value_bytes: u64,
14607        ___deadline: zx::MonotonicInstant,
14608    ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
14609        let _response =
14610            self.client
14611                .send_query::<BaseSocketSetReceiveBufferRequest, fidl::encoding::ResultType<
14612                    fidl::encoding::EmptyStruct,
14613                    fidl_fuchsia_posix::Errno,
14614                >>(
14615                    (value_bytes,),
14616                    0x6b0cf2f1919c7001,
14617                    fidl::encoding::DynamicFlags::empty(),
14618                    ___deadline,
14619                )?;
14620        Ok(_response.map(|x| x))
14621    }
14622
14623    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
14624    pub fn r#get_receive_buffer(
14625        &self,
14626        ___deadline: zx::MonotonicInstant,
14627    ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
14628        let _response = self
14629            .client
14630            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14631                BaseSocketGetReceiveBufferResponse,
14632                fidl_fuchsia_posix::Errno,
14633            >>(
14634                (), 0x14c1a4b64f709e5c, fidl::encoding::DynamicFlags::empty(), ___deadline
14635            )?;
14636        Ok(_response.map(|x| x.value_bytes))
14637    }
14638
14639    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
14640    pub fn r#set_keep_alive(
14641        &self,
14642        mut value: bool,
14643        ___deadline: zx::MonotonicInstant,
14644    ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
14645        let _response =
14646            self.client.send_query::<BaseSocketSetKeepAliveRequest, fidl::encoding::ResultType<
14647                fidl::encoding::EmptyStruct,
14648                fidl_fuchsia_posix::Errno,
14649            >>(
14650                (value,),
14651                0x572df8f0b920d2c7,
14652                fidl::encoding::DynamicFlags::empty(),
14653                ___deadline,
14654            )?;
14655        Ok(_response.map(|x| x))
14656    }
14657
14658    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
14659    pub fn r#get_keep_alive(
14660        &self,
14661        ___deadline: zx::MonotonicInstant,
14662    ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
14663        let _response =
14664            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14665                BaseSocketGetKeepAliveResponse,
14666                fidl_fuchsia_posix::Errno,
14667            >>(
14668                (),
14669                0x2dd29d3215f2c9d2,
14670                fidl::encoding::DynamicFlags::empty(),
14671                ___deadline,
14672            )?;
14673        Ok(_response.map(|x| x.value))
14674    }
14675
14676    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
14677    pub fn r#set_out_of_band_inline(
14678        &self,
14679        mut value: bool,
14680        ___deadline: zx::MonotonicInstant,
14681    ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
14682        let _response =
14683            self.client
14684                .send_query::<BaseSocketSetOutOfBandInlineRequest, fidl::encoding::ResultType<
14685                    fidl::encoding::EmptyStruct,
14686                    fidl_fuchsia_posix::Errno,
14687                >>(
14688                    (value,),
14689                    0x3ecb49968bee439,
14690                    fidl::encoding::DynamicFlags::empty(),
14691                    ___deadline,
14692                )?;
14693        Ok(_response.map(|x| x))
14694    }
14695
14696    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
14697    pub fn r#get_out_of_band_inline(
14698        &self,
14699        ___deadline: zx::MonotonicInstant,
14700    ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
14701        let _response = self
14702            .client
14703            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14704                BaseSocketGetOutOfBandInlineResponse,
14705                fidl_fuchsia_posix::Errno,
14706            >>(
14707                (), 0x348c1ab3aeca1745, fidl::encoding::DynamicFlags::empty(), ___deadline
14708            )?;
14709        Ok(_response.map(|x| x.value))
14710    }
14711
14712    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
14713    pub fn r#set_no_check(
14714        &self,
14715        mut value: bool,
14716        ___deadline: zx::MonotonicInstant,
14717    ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
14718        let _response =
14719            self.client.send_query::<BaseSocketSetNoCheckRequest, fidl::encoding::ResultType<
14720                fidl::encoding::EmptyStruct,
14721                fidl_fuchsia_posix::Errno,
14722            >>(
14723                (value,),
14724                0x6bbf00c53a4c78c2,
14725                fidl::encoding::DynamicFlags::empty(),
14726                ___deadline,
14727            )?;
14728        Ok(_response.map(|x| x))
14729    }
14730
14731    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
14732    pub fn r#get_no_check(
14733        &self,
14734        ___deadline: zx::MonotonicInstant,
14735    ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
14736        let _response =
14737            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14738                BaseSocketGetNoCheckResponse,
14739                fidl_fuchsia_posix::Errno,
14740            >>(
14741                (),
14742                0x2cd4249286417694,
14743                fidl::encoding::DynamicFlags::empty(),
14744                ___deadline,
14745            )?;
14746        Ok(_response.map(|x| x.value))
14747    }
14748
14749    /// Set `SOL_SOCKET` -> `SO_LINGER`.
14750    pub fn r#set_linger(
14751        &self,
14752        mut linger: bool,
14753        mut length_secs: u32,
14754        ___deadline: zx::MonotonicInstant,
14755    ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
14756        let _response =
14757            self.client.send_query::<BaseSocketSetLingerRequest, fidl::encoding::ResultType<
14758                fidl::encoding::EmptyStruct,
14759                fidl_fuchsia_posix::Errno,
14760            >>(
14761                (linger, length_secs),
14762                0x45386351246e998e,
14763                fidl::encoding::DynamicFlags::empty(),
14764                ___deadline,
14765            )?;
14766        Ok(_response.map(|x| x))
14767    }
14768
14769    /// Get `SOL_SOCKET` -> `SO_LINGER`.
14770    pub fn r#get_linger(
14771        &self,
14772        ___deadline: zx::MonotonicInstant,
14773    ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
14774        let _response =
14775            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14776                BaseSocketGetLingerResponse,
14777                fidl_fuchsia_posix::Errno,
14778            >>(
14779                (),
14780                0x48eb20fc5ccb0e45,
14781                fidl::encoding::DynamicFlags::empty(),
14782                ___deadline,
14783            )?;
14784        Ok(_response.map(|x| (x.linger, x.length_secs)))
14785    }
14786
14787    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
14788    pub fn r#set_reuse_port(
14789        &self,
14790        mut value: bool,
14791        ___deadline: zx::MonotonicInstant,
14792    ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
14793        let _response =
14794            self.client.send_query::<BaseSocketSetReusePortRequest, fidl::encoding::ResultType<
14795                fidl::encoding::EmptyStruct,
14796                fidl_fuchsia_posix::Errno,
14797            >>(
14798                (value,),
14799                0x24dd3e5cb36d9ccb,
14800                fidl::encoding::DynamicFlags::empty(),
14801                ___deadline,
14802            )?;
14803        Ok(_response.map(|x| x))
14804    }
14805
14806    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
14807    pub fn r#get_reuse_port(
14808        &self,
14809        ___deadline: zx::MonotonicInstant,
14810    ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
14811        let _response =
14812            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14813                BaseSocketGetReusePortResponse,
14814                fidl_fuchsia_posix::Errno,
14815            >>(
14816                (),
14817                0x7a112c1ab54ff828,
14818                fidl::encoding::DynamicFlags::empty(),
14819                ___deadline,
14820            )?;
14821        Ok(_response.map(|x| x.value))
14822    }
14823
14824    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
14825    pub fn r#get_accept_conn(
14826        &self,
14827        ___deadline: zx::MonotonicInstant,
14828    ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
14829        let _response = self
14830            .client
14831            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14832                BaseSocketGetAcceptConnResponse,
14833                fidl_fuchsia_posix::Errno,
14834            >>(
14835                (), 0x67ce6db6c2ec8966, fidl::encoding::DynamicFlags::empty(), ___deadline
14836            )?;
14837        Ok(_response.map(|x| x.value))
14838    }
14839
14840    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
14841    pub fn r#set_bind_to_device(
14842        &self,
14843        mut value: &str,
14844        ___deadline: zx::MonotonicInstant,
14845    ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
14846        let _response =
14847            self.client.send_query::<BaseSocketSetBindToDeviceRequest, fidl::encoding::ResultType<
14848                fidl::encoding::EmptyStruct,
14849                fidl_fuchsia_posix::Errno,
14850            >>(
14851                (value,),
14852                0x2118b483f28aafc4,
14853                fidl::encoding::DynamicFlags::empty(),
14854                ___deadline,
14855            )?;
14856        Ok(_response.map(|x| x))
14857    }
14858
14859    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
14860    pub fn r#get_bind_to_device(
14861        &self,
14862        ___deadline: zx::MonotonicInstant,
14863    ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
14864        let _response = self
14865            .client
14866            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14867                BaseSocketGetBindToDeviceResponse,
14868                fidl_fuchsia_posix::Errno,
14869            >>(
14870                (), 0x1ab1fbf0ef7906c8, fidl::encoding::DynamicFlags::empty(), ___deadline
14871            )?;
14872        Ok(_response.map(|x| x.value))
14873    }
14874
14875    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
14876    /// If `value` is 0, this clears the bound interface.
14877    pub fn r#set_bind_to_interface_index(
14878        &self,
14879        mut value: u64,
14880        ___deadline: zx::MonotonicInstant,
14881    ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
14882        let _response =
14883            self.client
14884                .send_query::<BaseSocketSetBindToInterfaceIndexRequest, fidl::encoding::ResultType<
14885                    fidl::encoding::EmptyStruct,
14886                    fidl_fuchsia_posix::Errno,
14887                >>(
14888                    (value,),
14889                    0x6e387a0def00821,
14890                    fidl::encoding::DynamicFlags::empty(),
14891                    ___deadline,
14892                )?;
14893        Ok(_response.map(|x| x))
14894    }
14895
14896    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
14897    pub fn r#get_bind_to_interface_index(
14898        &self,
14899        ___deadline: zx::MonotonicInstant,
14900    ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
14901        let _response = self
14902            .client
14903            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14904                BaseSocketGetBindToInterfaceIndexResponse,
14905                fidl_fuchsia_posix::Errno,
14906            >>(
14907                (), 0x59c31dd3e3078295, fidl::encoding::DynamicFlags::empty(), ___deadline
14908            )?;
14909        Ok(_response.map(|x| x.value))
14910    }
14911
14912    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
14913    pub fn r#set_timestamp(
14914        &self,
14915        mut value: TimestampOption,
14916        ___deadline: zx::MonotonicInstant,
14917    ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
14918        let _response =
14919            self.client.send_query::<BaseSocketSetTimestampRequest, fidl::encoding::ResultType<
14920                fidl::encoding::EmptyStruct,
14921                fidl_fuchsia_posix::Errno,
14922            >>(
14923                (value,),
14924                0x285d6516c263d839,
14925                fidl::encoding::DynamicFlags::empty(),
14926                ___deadline,
14927            )?;
14928        Ok(_response.map(|x| x))
14929    }
14930
14931    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
14932    pub fn r#get_timestamp(
14933        &self,
14934        ___deadline: zx::MonotonicInstant,
14935    ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
14936        let _response =
14937            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14938                BaseSocketGetTimestampResponse,
14939                fidl_fuchsia_posix::Errno,
14940            >>(
14941                (),
14942                0x49f2fffbbcc2bd27,
14943                fidl::encoding::DynamicFlags::empty(),
14944                ___deadline,
14945            )?;
14946        Ok(_response.map(|x| x.value))
14947    }
14948
14949    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
14950    /// unlike the standard SO_MARK, this API has multiple mark domains and each
14951    /// mark can be set independently in each domain.
14952    pub fn r#set_mark(
14953        &self,
14954        mut domain: fidl_fuchsia_net::MarkDomain,
14955        mut mark: &OptionalUint32,
14956        ___deadline: zx::MonotonicInstant,
14957    ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
14958        let _response =
14959            self.client.send_query::<BaseSocketSetMarkRequest, fidl::encoding::ResultType<
14960                fidl::encoding::EmptyStruct,
14961                fidl_fuchsia_posix::Errno,
14962            >>(
14963                (domain, mark),
14964                0x6ead6de09f653236,
14965                fidl::encoding::DynamicFlags::empty(),
14966                ___deadline,
14967            )?;
14968        Ok(_response.map(|x| x))
14969    }
14970
14971    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
14972    /// unlike the standard SO_MARK, this API has multiple mark domains and each
14973    /// mark can be retrieved independently in each domain.
14974    pub fn r#get_mark(
14975        &self,
14976        mut domain: fidl_fuchsia_net::MarkDomain,
14977        ___deadline: zx::MonotonicInstant,
14978    ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
14979        let _response =
14980            self.client.send_query::<BaseSocketGetMarkRequest, fidl::encoding::ResultType<
14981                BaseSocketGetMarkResponse,
14982                fidl_fuchsia_posix::Errno,
14983            >>(
14984                (domain,),
14985                0x57a2752c61d93d47,
14986                fidl::encoding::DynamicFlags::empty(),
14987                ___deadline,
14988            )?;
14989        Ok(_response.map(|x| x.mark))
14990    }
14991
14992    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
14993    pub fn r#get_cookie(
14994        &self,
14995        ___deadline: zx::MonotonicInstant,
14996    ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
14997        let _response =
14998            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14999                BaseSocketGetCookieResponse,
15000                fidl_fuchsia_posix::Errno,
15001            >>(
15002                (),
15003                0x2c2f47fd8f924e52,
15004                fidl::encoding::DynamicFlags::empty(),
15005                ___deadline,
15006            )?;
15007        Ok(_response.map(|x| x.value))
15008    }
15009
15010    /// Sets the local address used for the socket.
15011    pub fn r#bind(
15012        &self,
15013        mut addr: &fidl_fuchsia_net::SocketAddress,
15014        ___deadline: zx::MonotonicInstant,
15015    ) -> Result<BaseNetworkSocketBindResult, fidl::Error> {
15016        let _response =
15017            self.client.send_query::<BaseNetworkSocketBindRequest, fidl::encoding::ResultType<
15018                fidl::encoding::EmptyStruct,
15019                fidl_fuchsia_posix::Errno,
15020            >>(
15021                (addr,),
15022                0x4bc6400ae92125d,
15023                fidl::encoding::DynamicFlags::empty(),
15024                ___deadline,
15025            )?;
15026        Ok(_response.map(|x| x))
15027    }
15028
15029    /// Initiates a connection to a remote address.
15030    pub fn r#connect(
15031        &self,
15032        mut addr: &fidl_fuchsia_net::SocketAddress,
15033        ___deadline: zx::MonotonicInstant,
15034    ) -> Result<BaseNetworkSocketConnectResult, fidl::Error> {
15035        let _response =
15036            self.client.send_query::<BaseNetworkSocketConnectRequest, fidl::encoding::ResultType<
15037                fidl::encoding::EmptyStruct,
15038                fidl_fuchsia_posix::Errno,
15039            >>(
15040                (addr,),
15041                0x5f05f19bfdd38871,
15042                fidl::encoding::DynamicFlags::empty(),
15043                ___deadline,
15044            )?;
15045        Ok(_response.map(|x| x))
15046    }
15047
15048    /// Clears connection information from this socket.
15049    pub fn r#disconnect(
15050        &self,
15051        ___deadline: zx::MonotonicInstant,
15052    ) -> Result<BaseNetworkSocketDisconnectResult, fidl::Error> {
15053        let _response =
15054            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15055                fidl::encoding::EmptyStruct,
15056                fidl_fuchsia_posix::Errno,
15057            >>(
15058                (),
15059                0x74e63b91f7b29b2,
15060                fidl::encoding::DynamicFlags::empty(),
15061                ___deadline,
15062            )?;
15063        Ok(_response.map(|x| x))
15064    }
15065
15066    /// Retrieves the local socket address.
15067    pub fn r#get_sock_name(
15068        &self,
15069        ___deadline: zx::MonotonicInstant,
15070    ) -> Result<BaseNetworkSocketGetSockNameResult, fidl::Error> {
15071        let _response = self
15072            .client
15073            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15074                BaseNetworkSocketGetSockNameResponse,
15075                fidl_fuchsia_posix::Errno,
15076            >>(
15077                (), 0x475f23f84a1a4f85, fidl::encoding::DynamicFlags::empty(), ___deadline
15078            )?;
15079        Ok(_response.map(|x| x.addr))
15080    }
15081
15082    /// Retrieves the remote socket address.
15083    pub fn r#get_peer_name(
15084        &self,
15085        ___deadline: zx::MonotonicInstant,
15086    ) -> Result<BaseNetworkSocketGetPeerNameResult, fidl::Error> {
15087        let _response = self
15088            .client
15089            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15090                BaseNetworkSocketGetPeerNameResponse,
15091                fidl_fuchsia_posix::Errno,
15092            >>(
15093                (), 0x1ffecf4bd5b6432e, fidl::encoding::DynamicFlags::empty(), ___deadline
15094            )?;
15095        Ok(_response.map(|x| x.addr))
15096    }
15097
15098    /// Shuts down part of the socket.
15099    pub fn r#shutdown(
15100        &self,
15101        mut mode: ShutdownMode,
15102        ___deadline: zx::MonotonicInstant,
15103    ) -> Result<BaseNetworkSocketShutdownResult, fidl::Error> {
15104        let _response =
15105            self.client.send_query::<BaseNetworkSocketShutdownRequest, fidl::encoding::ResultType<
15106                fidl::encoding::EmptyStruct,
15107                fidl_fuchsia_posix::Errno,
15108            >>(
15109                (mode,),
15110                0x247f38b6db68c336,
15111                fidl::encoding::DynamicFlags::empty(),
15112                ___deadline,
15113            )?;
15114        Ok(_response.map(|x| x))
15115    }
15116
15117    /// Set `SOL_IP` -> `IP_TOS`.
15118    pub fn r#set_ip_type_of_service(
15119        &self,
15120        mut value: u8,
15121        ___deadline: zx::MonotonicInstant,
15122    ) -> Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error> {
15123        let _response = self.client.send_query::<
15124            BaseNetworkSocketSetIpTypeOfServiceRequest,
15125            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15126        >(
15127            (value,),
15128            0x995c600475b6d46,
15129            fidl::encoding::DynamicFlags::empty(),
15130            ___deadline,
15131        )?;
15132        Ok(_response.map(|x| x))
15133    }
15134
15135    /// Get `SOL_IP` -> `IP_TOS`.
15136    pub fn r#get_ip_type_of_service(
15137        &self,
15138        ___deadline: zx::MonotonicInstant,
15139    ) -> Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error> {
15140        let _response = self
15141            .client
15142            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15143                BaseNetworkSocketGetIpTypeOfServiceResponse,
15144                fidl_fuchsia_posix::Errno,
15145            >>(
15146                (), 0x3814a04259f75fcb, fidl::encoding::DynamicFlags::empty(), ___deadline
15147            )?;
15148        Ok(_response.map(|x| x.value))
15149    }
15150
15151    /// Set `SOL_IP` -> `IP_TTL`.
15152    pub fn r#set_ip_ttl(
15153        &self,
15154        mut value: &OptionalUint8,
15155        ___deadline: zx::MonotonicInstant,
15156    ) -> Result<BaseNetworkSocketSetIpTtlResult, fidl::Error> {
15157        let _response =
15158            self.client.send_query::<BaseNetworkSocketSetIpTtlRequest, fidl::encoding::ResultType<
15159                fidl::encoding::EmptyStruct,
15160                fidl_fuchsia_posix::Errno,
15161            >>(
15162                (value,),
15163                0x29e2424b433ae1ef,
15164                fidl::encoding::DynamicFlags::empty(),
15165                ___deadline,
15166            )?;
15167        Ok(_response.map(|x| x))
15168    }
15169
15170    /// Get `SOL_IP` -> `IP_TTL`.
15171    pub fn r#get_ip_ttl(
15172        &self,
15173        ___deadline: zx::MonotonicInstant,
15174    ) -> Result<BaseNetworkSocketGetIpTtlResult, fidl::Error> {
15175        let _response = self
15176            .client
15177            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15178                BaseNetworkSocketGetIpTtlResponse,
15179                fidl_fuchsia_posix::Errno,
15180            >>(
15181                (), 0x47e47fa1f24da471, fidl::encoding::DynamicFlags::empty(), ___deadline
15182            )?;
15183        Ok(_response.map(|x| x.value))
15184    }
15185
15186    /// Set `SOL_IP` -> `IP_PKTINFO`.
15187    pub fn r#set_ip_packet_info(
15188        &self,
15189        mut value: bool,
15190        ___deadline: zx::MonotonicInstant,
15191    ) -> Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error> {
15192        let _response =
15193            self.client
15194                .send_query::<BaseNetworkSocketSetIpPacketInfoRequest, fidl::encoding::ResultType<
15195                    fidl::encoding::EmptyStruct,
15196                    fidl_fuchsia_posix::Errno,
15197                >>(
15198                    (value,),
15199                    0x392d16bee20c0e16,
15200                    fidl::encoding::DynamicFlags::empty(),
15201                    ___deadline,
15202                )?;
15203        Ok(_response.map(|x| x))
15204    }
15205
15206    /// Get `SOL_IP` -> `IP_PKTINFO`.
15207    pub fn r#get_ip_packet_info(
15208        &self,
15209        ___deadline: zx::MonotonicInstant,
15210    ) -> Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error> {
15211        let _response = self
15212            .client
15213            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15214                BaseNetworkSocketGetIpPacketInfoResponse,
15215                fidl_fuchsia_posix::Errno,
15216            >>(
15217                (), 0x54b505f242280740, fidl::encoding::DynamicFlags::empty(), ___deadline
15218            )?;
15219        Ok(_response.map(|x| x.value))
15220    }
15221
15222    /// Set `SOL_IP` -> `IP_RECVTOS`.
15223    pub fn r#set_ip_receive_type_of_service(
15224        &self,
15225        mut value: bool,
15226        ___deadline: zx::MonotonicInstant,
15227    ) -> Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error> {
15228        let _response = self.client.send_query::<
15229            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
15230            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15231        >(
15232            (value,),
15233            0x6c4f6714995f84ef,
15234            fidl::encoding::DynamicFlags::empty(),
15235            ___deadline,
15236        )?;
15237        Ok(_response.map(|x| x))
15238    }
15239
15240    /// Get `SOL_IP` -> `IP_RECVTOS`.
15241    pub fn r#get_ip_receive_type_of_service(
15242        &self,
15243        ___deadline: zx::MonotonicInstant,
15244    ) -> Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error> {
15245        let _response = self
15246            .client
15247            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15248                BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
15249                fidl_fuchsia_posix::Errno,
15250            >>(
15251                (), 0x4158ba7dc2795960, fidl::encoding::DynamicFlags::empty(), ___deadline
15252            )?;
15253        Ok(_response.map(|x| x.value))
15254    }
15255
15256    /// Set `SOL_IP` -> `IP_RECVTTL`.
15257    pub fn r#set_ip_receive_ttl(
15258        &self,
15259        mut value: bool,
15260        ___deadline: zx::MonotonicInstant,
15261    ) -> Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error> {
15262        let _response =
15263            self.client
15264                .send_query::<BaseNetworkSocketSetIpReceiveTtlRequest, fidl::encoding::ResultType<
15265                    fidl::encoding::EmptyStruct,
15266                    fidl_fuchsia_posix::Errno,
15267                >>(
15268                    (value,),
15269                    0x46f15be0ce0ab82b,
15270                    fidl::encoding::DynamicFlags::empty(),
15271                    ___deadline,
15272                )?;
15273        Ok(_response.map(|x| x))
15274    }
15275
15276    /// Get `SOL_IP` -> `IP_RECVTTL`.
15277    pub fn r#get_ip_receive_ttl(
15278        &self,
15279        ___deadline: zx::MonotonicInstant,
15280    ) -> Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error> {
15281        let _response = self
15282            .client
15283            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15284                BaseNetworkSocketGetIpReceiveTtlResponse,
15285                fidl_fuchsia_posix::Errno,
15286            >>(
15287                (), 0x678ddd5a5dfa2eb5, fidl::encoding::DynamicFlags::empty(), ___deadline
15288            )?;
15289        Ok(_response.map(|x| x.value))
15290    }
15291
15292    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
15293    pub fn r#set_ip_multicast_interface(
15294        &self,
15295        mut iface: u64,
15296        mut address: &fidl_fuchsia_net::Ipv4Address,
15297        ___deadline: zx::MonotonicInstant,
15298    ) -> Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error> {
15299        let _response = self.client.send_query::<
15300            BaseNetworkSocketSetIpMulticastInterfaceRequest,
15301            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15302        >(
15303            (iface, address,),
15304            0x752fbfa9b12befe,
15305            fidl::encoding::DynamicFlags::empty(),
15306            ___deadline,
15307        )?;
15308        Ok(_response.map(|x| x))
15309    }
15310
15311    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
15312    pub fn r#get_ip_multicast_interface(
15313        &self,
15314        ___deadline: zx::MonotonicInstant,
15315    ) -> Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error> {
15316        let _response = self
15317            .client
15318            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15319                BaseNetworkSocketGetIpMulticastInterfaceResponse,
15320                fidl_fuchsia_posix::Errno,
15321            >>(
15322                (), 0x320bd14c4df046c4, fidl::encoding::DynamicFlags::empty(), ___deadline
15323            )?;
15324        Ok(_response.map(|x| x.value))
15325    }
15326
15327    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
15328    pub fn r#set_ip_multicast_ttl(
15329        &self,
15330        mut value: &OptionalUint8,
15331        ___deadline: zx::MonotonicInstant,
15332    ) -> Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error> {
15333        let _response =
15334            self.client
15335                .send_query::<BaseNetworkSocketSetIpMulticastTtlRequest, fidl::encoding::ResultType<
15336                    fidl::encoding::EmptyStruct,
15337                    fidl_fuchsia_posix::Errno,
15338                >>(
15339                    (value,),
15340                    0x63134d53772916a1,
15341                    fidl::encoding::DynamicFlags::empty(),
15342                    ___deadline,
15343                )?;
15344        Ok(_response.map(|x| x))
15345    }
15346
15347    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
15348    pub fn r#get_ip_multicast_ttl(
15349        &self,
15350        ___deadline: zx::MonotonicInstant,
15351    ) -> Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error> {
15352        let _response = self
15353            .client
15354            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15355                BaseNetworkSocketGetIpMulticastTtlResponse,
15356                fidl_fuchsia_posix::Errno,
15357            >>(
15358                (), 0x4665cd378f39e1a, fidl::encoding::DynamicFlags::empty(), ___deadline
15359            )?;
15360        Ok(_response.map(|x| x.value))
15361    }
15362
15363    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
15364    pub fn r#set_ip_multicast_loopback(
15365        &self,
15366        mut value: bool,
15367        ___deadline: zx::MonotonicInstant,
15368    ) -> Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error> {
15369        let _response = self.client.send_query::<
15370            BaseNetworkSocketSetIpMulticastLoopbackRequest,
15371            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15372        >(
15373            (value,),
15374            0x20c55c11f00943ea,
15375            fidl::encoding::DynamicFlags::empty(),
15376            ___deadline,
15377        )?;
15378        Ok(_response.map(|x| x))
15379    }
15380
15381    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
15382    pub fn r#get_ip_multicast_loopback(
15383        &self,
15384        ___deadline: zx::MonotonicInstant,
15385    ) -> Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error> {
15386        let _response = self
15387            .client
15388            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15389                BaseNetworkSocketGetIpMulticastLoopbackResponse,
15390                fidl_fuchsia_posix::Errno,
15391            >>(
15392                (), 0x3b6b26ff558298f2, fidl::encoding::DynamicFlags::empty(), ___deadline
15393            )?;
15394        Ok(_response.map(|x| x.value))
15395    }
15396
15397    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
15398    pub fn r#add_ip_membership(
15399        &self,
15400        mut membership: &IpMulticastMembership,
15401        ___deadline: zx::MonotonicInstant,
15402    ) -> Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error> {
15403        let _response =
15404            self.client
15405                .send_query::<BaseNetworkSocketAddIpMembershipRequest, fidl::encoding::ResultType<
15406                    fidl::encoding::EmptyStruct,
15407                    fidl_fuchsia_posix::Errno,
15408                >>(
15409                    (membership,),
15410                    0x76bc7df115a3b4d0,
15411                    fidl::encoding::DynamicFlags::empty(),
15412                    ___deadline,
15413                )?;
15414        Ok(_response.map(|x| x))
15415    }
15416
15417    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
15418    pub fn r#drop_ip_membership(
15419        &self,
15420        mut membership: &IpMulticastMembership,
15421        ___deadline: zx::MonotonicInstant,
15422    ) -> Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error> {
15423        let _response =
15424            self.client
15425                .send_query::<BaseNetworkSocketDropIpMembershipRequest, fidl::encoding::ResultType<
15426                    fidl::encoding::EmptyStruct,
15427                    fidl_fuchsia_posix::Errno,
15428                >>(
15429                    (membership,),
15430                    0x2888f3099188d03,
15431                    fidl::encoding::DynamicFlags::empty(),
15432                    ___deadline,
15433                )?;
15434        Ok(_response.map(|x| x))
15435    }
15436
15437    /// Set `SOL_IP` -> `IP_TRANSPARENT`
15438    pub fn r#set_ip_transparent(
15439        &self,
15440        mut value: bool,
15441        ___deadline: zx::MonotonicInstant,
15442    ) -> Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error> {
15443        let _response =
15444            self.client
15445                .send_query::<BaseNetworkSocketSetIpTransparentRequest, fidl::encoding::ResultType<
15446                    fidl::encoding::EmptyStruct,
15447                    fidl_fuchsia_posix::Errno,
15448                >>(
15449                    (value,),
15450                    0x1ae532b0c066e3a0,
15451                    fidl::encoding::DynamicFlags::empty(),
15452                    ___deadline,
15453                )?;
15454        Ok(_response.map(|x| x))
15455    }
15456
15457    /// Get `SOL_IP` -> `IP_TRANSPARENT`
15458    pub fn r#get_ip_transparent(
15459        &self,
15460        ___deadline: zx::MonotonicInstant,
15461    ) -> Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error> {
15462        let _response = self
15463            .client
15464            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15465                BaseNetworkSocketGetIpTransparentResponse,
15466                fidl_fuchsia_posix::Errno,
15467            >>(
15468                (), 0x51d43695962ebfb5, fidl::encoding::DynamicFlags::empty(), ___deadline
15469            )?;
15470        Ok(_response.map(|x| x.value))
15471    }
15472
15473    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
15474    pub fn r#set_ip_receive_original_destination_address(
15475        &self,
15476        mut value: bool,
15477        ___deadline: zx::MonotonicInstant,
15478    ) -> Result<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult, fidl::Error> {
15479        let _response = self.client.send_query::<
15480            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
15481            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15482        >(
15483            (value,),
15484            0x4722b4ce52f7840,
15485            fidl::encoding::DynamicFlags::empty(),
15486            ___deadline,
15487        )?;
15488        Ok(_response.map(|x| x))
15489    }
15490
15491    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
15492    pub fn r#get_ip_receive_original_destination_address(
15493        &self,
15494        ___deadline: zx::MonotonicInstant,
15495    ) -> Result<BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult, fidl::Error> {
15496        let _response = self
15497            .client
15498            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15499                BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
15500                fidl_fuchsia_posix::Errno,
15501            >>(
15502                (), 0x2a0e7dc5d6bfdfe9, fidl::encoding::DynamicFlags::empty(), ___deadline
15503            )?;
15504        Ok(_response.map(|x| x.value))
15505    }
15506
15507    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
15508    pub fn r#add_ipv6_membership(
15509        &self,
15510        mut membership: &Ipv6MulticastMembership,
15511        ___deadline: zx::MonotonicInstant,
15512    ) -> Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error> {
15513        let _response =
15514            self.client
15515                .send_query::<BaseNetworkSocketAddIpv6MembershipRequest, fidl::encoding::ResultType<
15516                    fidl::encoding::EmptyStruct,
15517                    fidl_fuchsia_posix::Errno,
15518                >>(
15519                    (membership,),
15520                    0x7c94727acb4ea4b3,
15521                    fidl::encoding::DynamicFlags::empty(),
15522                    ___deadline,
15523                )?;
15524        Ok(_response.map(|x| x))
15525    }
15526
15527    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
15528    pub fn r#drop_ipv6_membership(
15529        &self,
15530        mut membership: &Ipv6MulticastMembership,
15531        ___deadline: zx::MonotonicInstant,
15532    ) -> Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error> {
15533        let _response = self.client.send_query::<
15534            BaseNetworkSocketDropIpv6MembershipRequest,
15535            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15536        >(
15537            (membership,),
15538            0x42104c70ccaba304,
15539            fidl::encoding::DynamicFlags::empty(),
15540            ___deadline,
15541        )?;
15542        Ok(_response.map(|x| x))
15543    }
15544
15545    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
15546    pub fn r#set_ipv6_multicast_interface(
15547        &self,
15548        mut value: u64,
15549        ___deadline: zx::MonotonicInstant,
15550    ) -> Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error> {
15551        let _response = self.client.send_query::<
15552            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
15553            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15554        >(
15555            (value,),
15556            0x135f76db3774ab3b,
15557            fidl::encoding::DynamicFlags::empty(),
15558            ___deadline,
15559        )?;
15560        Ok(_response.map(|x| x))
15561    }
15562
15563    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
15564    pub fn r#get_ipv6_multicast_interface(
15565        &self,
15566        ___deadline: zx::MonotonicInstant,
15567    ) -> Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error> {
15568        let _response = self
15569            .client
15570            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15571                BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
15572                fidl_fuchsia_posix::Errno,
15573            >>(
15574                (), 0x1f26fcdd348f1882, fidl::encoding::DynamicFlags::empty(), ___deadline
15575            )?;
15576        Ok(_response.map(|x| x.value))
15577    }
15578
15579    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
15580    pub fn r#set_ipv6_unicast_hops(
15581        &self,
15582        mut value: &OptionalUint8,
15583        ___deadline: zx::MonotonicInstant,
15584    ) -> Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error> {
15585        let _response = self.client.send_query::<
15586            BaseNetworkSocketSetIpv6UnicastHopsRequest,
15587            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15588        >(
15589            (value,),
15590            0x157d51e98f462859,
15591            fidl::encoding::DynamicFlags::empty(),
15592            ___deadline,
15593        )?;
15594        Ok(_response.map(|x| x))
15595    }
15596
15597    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
15598    pub fn r#get_ipv6_unicast_hops(
15599        &self,
15600        ___deadline: zx::MonotonicInstant,
15601    ) -> Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error> {
15602        let _response = self
15603            .client
15604            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15605                BaseNetworkSocketGetIpv6UnicastHopsResponse,
15606                fidl_fuchsia_posix::Errno,
15607            >>(
15608                (), 0x21f4641cad8bd8d2, fidl::encoding::DynamicFlags::empty(), ___deadline
15609            )?;
15610        Ok(_response.map(|x| x.value))
15611    }
15612
15613    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
15614    pub fn r#set_ipv6_receive_hop_limit(
15615        &self,
15616        mut value: bool,
15617        ___deadline: zx::MonotonicInstant,
15618    ) -> Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error> {
15619        let _response = self.client.send_query::<
15620            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
15621            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15622        >(
15623            (value,),
15624            0x5c24808ed2e84a1e,
15625            fidl::encoding::DynamicFlags::empty(),
15626            ___deadline,
15627        )?;
15628        Ok(_response.map(|x| x))
15629    }
15630
15631    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
15632    pub fn r#get_ipv6_receive_hop_limit(
15633        &self,
15634        ___deadline: zx::MonotonicInstant,
15635    ) -> Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error> {
15636        let _response = self
15637            .client
15638            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15639                BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
15640                fidl_fuchsia_posix::Errno,
15641            >>(
15642                (), 0x341e06689885b4c0, fidl::encoding::DynamicFlags::empty(), ___deadline
15643            )?;
15644        Ok(_response.map(|x| x.value))
15645    }
15646
15647    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
15648    pub fn r#set_ipv6_multicast_hops(
15649        &self,
15650        mut value: &OptionalUint8,
15651        ___deadline: zx::MonotonicInstant,
15652    ) -> Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error> {
15653        let _response = self.client.send_query::<
15654            BaseNetworkSocketSetIpv6MulticastHopsRequest,
15655            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15656        >(
15657            (value,),
15658            0x25b9cd4d181f82c1,
15659            fidl::encoding::DynamicFlags::empty(),
15660            ___deadline,
15661        )?;
15662        Ok(_response.map(|x| x))
15663    }
15664
15665    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
15666    pub fn r#get_ipv6_multicast_hops(
15667        &self,
15668        ___deadline: zx::MonotonicInstant,
15669    ) -> Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error> {
15670        let _response = self
15671            .client
15672            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15673                BaseNetworkSocketGetIpv6MulticastHopsResponse,
15674                fidl_fuchsia_posix::Errno,
15675            >>(
15676                (), 0x52916948a365012a, fidl::encoding::DynamicFlags::empty(), ___deadline
15677            )?;
15678        Ok(_response.map(|x| x.value))
15679    }
15680
15681    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
15682    pub fn r#set_ipv6_multicast_loopback(
15683        &self,
15684        mut value: bool,
15685        ___deadline: zx::MonotonicInstant,
15686    ) -> Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error> {
15687        let _response = self.client.send_query::<
15688            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
15689            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15690        >(
15691            (value,),
15692            0x55701c409ff41b40,
15693            fidl::encoding::DynamicFlags::empty(),
15694            ___deadline,
15695        )?;
15696        Ok(_response.map(|x| x))
15697    }
15698
15699    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
15700    pub fn r#get_ipv6_multicast_loopback(
15701        &self,
15702        ___deadline: zx::MonotonicInstant,
15703    ) -> Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error> {
15704        let _response = self
15705            .client
15706            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15707                BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
15708                fidl_fuchsia_posix::Errno,
15709            >>(
15710                (), 0x4415b701fde319c3, fidl::encoding::DynamicFlags::empty(), ___deadline
15711            )?;
15712        Ok(_response.map(|x| x.value))
15713    }
15714
15715    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
15716    pub fn r#set_ipv6_only(
15717        &self,
15718        mut value: bool,
15719        ___deadline: zx::MonotonicInstant,
15720    ) -> Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error> {
15721        let _response =
15722            self.client
15723                .send_query::<BaseNetworkSocketSetIpv6OnlyRequest, fidl::encoding::ResultType<
15724                    fidl::encoding::EmptyStruct,
15725                    fidl_fuchsia_posix::Errno,
15726                >>(
15727                    (value,),
15728                    0x4873f1364758cbba,
15729                    fidl::encoding::DynamicFlags::empty(),
15730                    ___deadline,
15731                )?;
15732        Ok(_response.map(|x| x))
15733    }
15734
15735    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
15736    pub fn r#get_ipv6_only(
15737        &self,
15738        ___deadline: zx::MonotonicInstant,
15739    ) -> Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error> {
15740        let _response = self
15741            .client
15742            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15743                BaseNetworkSocketGetIpv6OnlyResponse,
15744                fidl_fuchsia_posix::Errno,
15745            >>(
15746                (), 0x4aa3340a1a26b89c, fidl::encoding::DynamicFlags::empty(), ___deadline
15747            )?;
15748        Ok(_response.map(|x| x.value))
15749    }
15750
15751    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
15752    pub fn r#set_ipv6_receive_traffic_class(
15753        &self,
15754        mut value: bool,
15755        ___deadline: zx::MonotonicInstant,
15756    ) -> Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error> {
15757        let _response = self.client.send_query::<
15758            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
15759            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15760        >(
15761            (value,),
15762            0x58f07c8788d099a0,
15763            fidl::encoding::DynamicFlags::empty(),
15764            ___deadline,
15765        )?;
15766        Ok(_response.map(|x| x))
15767    }
15768
15769    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
15770    pub fn r#get_ipv6_receive_traffic_class(
15771        &self,
15772        ___deadline: zx::MonotonicInstant,
15773    ) -> Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error> {
15774        let _response = self
15775            .client
15776            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15777                BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
15778                fidl_fuchsia_posix::Errno,
15779            >>(
15780                (), 0x2e334df1da553ffa, fidl::encoding::DynamicFlags::empty(), ___deadline
15781            )?;
15782        Ok(_response.map(|x| x.value))
15783    }
15784
15785    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
15786    pub fn r#set_ipv6_traffic_class(
15787        &self,
15788        mut value: &OptionalUint8,
15789        ___deadline: zx::MonotonicInstant,
15790    ) -> Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error> {
15791        let _response = self.client.send_query::<
15792            BaseNetworkSocketSetIpv6TrafficClassRequest,
15793            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15794        >(
15795            (value,),
15796            0x6af077800c5a0b4f,
15797            fidl::encoding::DynamicFlags::empty(),
15798            ___deadline,
15799        )?;
15800        Ok(_response.map(|x| x))
15801    }
15802
15803    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
15804    pub fn r#get_ipv6_traffic_class(
15805        &self,
15806        ___deadline: zx::MonotonicInstant,
15807    ) -> Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error> {
15808        let _response = self
15809            .client
15810            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15811                BaseNetworkSocketGetIpv6TrafficClassResponse,
15812                fidl_fuchsia_posix::Errno,
15813            >>(
15814                (), 0x6baf6eed8fc2f04, fidl::encoding::DynamicFlags::empty(), ___deadline
15815            )?;
15816        Ok(_response.map(|x| x.value))
15817    }
15818
15819    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
15820    pub fn r#set_ipv6_receive_packet_info(
15821        &self,
15822        mut value: bool,
15823        ___deadline: zx::MonotonicInstant,
15824    ) -> Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error> {
15825        let _response = self.client.send_query::<
15826            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
15827            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15828        >(
15829            (value,),
15830            0x19259775b1a92768,
15831            fidl::encoding::DynamicFlags::empty(),
15832            ___deadline,
15833        )?;
15834        Ok(_response.map(|x| x))
15835    }
15836
15837    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
15838    pub fn r#get_ipv6_receive_packet_info(
15839        &self,
15840        ___deadline: zx::MonotonicInstant,
15841    ) -> Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error> {
15842        let _response = self
15843            .client
15844            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15845                BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
15846                fidl_fuchsia_posix::Errno,
15847            >>(
15848                (), 0x7acd4a2775baec75, fidl::encoding::DynamicFlags::empty(), ___deadline
15849            )?;
15850        Ok(_response.map(|x| x.value))
15851    }
15852
15853    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
15854    pub fn r#get_original_destination(
15855        &self,
15856        ___deadline: zx::MonotonicInstant,
15857    ) -> Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error> {
15858        let _response = self
15859            .client
15860            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15861                BaseNetworkSocketGetOriginalDestinationResponse,
15862                fidl_fuchsia_posix::Errno,
15863            >>(
15864                (), 0x38bf28f0dafdbac0, fidl::encoding::DynamicFlags::empty(), ___deadline
15865            )?;
15866        Ok(_response.map(|x| x.value))
15867    }
15868}
15869
15870#[cfg(target_os = "fuchsia")]
15871impl From<BaseNetworkSocketSynchronousProxy> for zx::Handle {
15872    fn from(value: BaseNetworkSocketSynchronousProxy) -> Self {
15873        value.into_channel().into()
15874    }
15875}
15876
15877#[cfg(target_os = "fuchsia")]
15878impl From<fidl::Channel> for BaseNetworkSocketSynchronousProxy {
15879    fn from(value: fidl::Channel) -> Self {
15880        Self::new(value)
15881    }
15882}
15883
15884#[cfg(target_os = "fuchsia")]
15885impl fidl::endpoints::FromClient for BaseNetworkSocketSynchronousProxy {
15886    type Protocol = BaseNetworkSocketMarker;
15887
15888    fn from_client(value: fidl::endpoints::ClientEnd<BaseNetworkSocketMarker>) -> Self {
15889        Self::new(value.into_channel())
15890    }
15891}
15892
15893#[derive(Debug, Clone)]
15894pub struct BaseNetworkSocketProxy {
15895    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
15896}
15897
15898impl fidl::endpoints::Proxy for BaseNetworkSocketProxy {
15899    type Protocol = BaseNetworkSocketMarker;
15900
15901    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
15902        Self::new(inner)
15903    }
15904
15905    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
15906        self.client.into_channel().map_err(|client| Self { client })
15907    }
15908
15909    fn as_channel(&self) -> &::fidl::AsyncChannel {
15910        self.client.as_channel()
15911    }
15912}
15913
15914impl BaseNetworkSocketProxy {
15915    /// Create a new Proxy for fuchsia.posix.socket/BaseNetworkSocket.
15916    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
15917        let protocol_name =
15918            <BaseNetworkSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
15919        Self { client: fidl::client::Client::new(channel, protocol_name) }
15920    }
15921
15922    /// Get a Stream of events from the remote end of the protocol.
15923    ///
15924    /// # Panics
15925    ///
15926    /// Panics if the event stream was already taken.
15927    pub fn take_event_stream(&self) -> BaseNetworkSocketEventStream {
15928        BaseNetworkSocketEventStream { event_receiver: self.client.take_event_receiver() }
15929    }
15930
15931    pub fn r#clone(
15932        &self,
15933        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
15934    ) -> Result<(), fidl::Error> {
15935        BaseNetworkSocketProxyInterface::r#clone(self, request)
15936    }
15937
15938    /// Terminates the connection.
15939    ///
15940    /// After calling `Close`, the client must not send any other requests.
15941    ///
15942    /// Servers, after sending the status response, should close the connection
15943    /// regardless of status and without sending an epitaph.
15944    ///
15945    /// Closing the client end of the channel should be semantically equivalent
15946    /// to calling `Close` without knowing when the close has completed or its
15947    /// status.
15948    pub fn r#close(
15949        &self,
15950    ) -> fidl::client::QueryResponseFut<
15951        fidl_fuchsia_unknown::CloseableCloseResult,
15952        fidl::encoding::DefaultFuchsiaResourceDialect,
15953    > {
15954        BaseNetworkSocketProxyInterface::r#close(self)
15955    }
15956
15957    pub fn r#query(
15958        &self,
15959    ) -> fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>
15960    {
15961        BaseNetworkSocketProxyInterface::r#query(self)
15962    }
15963
15964    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
15965    pub fn r#set_reuse_address(
15966        &self,
15967        mut value: bool,
15968    ) -> fidl::client::QueryResponseFut<
15969        BaseSocketSetReuseAddressResult,
15970        fidl::encoding::DefaultFuchsiaResourceDialect,
15971    > {
15972        BaseNetworkSocketProxyInterface::r#set_reuse_address(self, value)
15973    }
15974
15975    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
15976    pub fn r#get_reuse_address(
15977        &self,
15978    ) -> fidl::client::QueryResponseFut<
15979        BaseSocketGetReuseAddressResult,
15980        fidl::encoding::DefaultFuchsiaResourceDialect,
15981    > {
15982        BaseNetworkSocketProxyInterface::r#get_reuse_address(self)
15983    }
15984
15985    /// Get `SOL_SOCKET` -> `SO_ERROR`.
15986    /// Returns the last error if there is an error set on the socket.
15987    pub fn r#get_error(
15988        &self,
15989    ) -> fidl::client::QueryResponseFut<
15990        BaseSocketGetErrorResult,
15991        fidl::encoding::DefaultFuchsiaResourceDialect,
15992    > {
15993        BaseNetworkSocketProxyInterface::r#get_error(self)
15994    }
15995
15996    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
15997    pub fn r#set_broadcast(
15998        &self,
15999        mut value: bool,
16000    ) -> fidl::client::QueryResponseFut<
16001        BaseSocketSetBroadcastResult,
16002        fidl::encoding::DefaultFuchsiaResourceDialect,
16003    > {
16004        BaseNetworkSocketProxyInterface::r#set_broadcast(self, value)
16005    }
16006
16007    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
16008    pub fn r#get_broadcast(
16009        &self,
16010    ) -> fidl::client::QueryResponseFut<
16011        BaseSocketGetBroadcastResult,
16012        fidl::encoding::DefaultFuchsiaResourceDialect,
16013    > {
16014        BaseNetworkSocketProxyInterface::r#get_broadcast(self)
16015    }
16016
16017    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
16018    pub fn r#set_send_buffer(
16019        &self,
16020        mut value_bytes: u64,
16021    ) -> fidl::client::QueryResponseFut<
16022        BaseSocketSetSendBufferResult,
16023        fidl::encoding::DefaultFuchsiaResourceDialect,
16024    > {
16025        BaseNetworkSocketProxyInterface::r#set_send_buffer(self, value_bytes)
16026    }
16027
16028    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
16029    pub fn r#get_send_buffer(
16030        &self,
16031    ) -> fidl::client::QueryResponseFut<
16032        BaseSocketGetSendBufferResult,
16033        fidl::encoding::DefaultFuchsiaResourceDialect,
16034    > {
16035        BaseNetworkSocketProxyInterface::r#get_send_buffer(self)
16036    }
16037
16038    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
16039    pub fn r#set_receive_buffer(
16040        &self,
16041        mut value_bytes: u64,
16042    ) -> fidl::client::QueryResponseFut<
16043        BaseSocketSetReceiveBufferResult,
16044        fidl::encoding::DefaultFuchsiaResourceDialect,
16045    > {
16046        BaseNetworkSocketProxyInterface::r#set_receive_buffer(self, value_bytes)
16047    }
16048
16049    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
16050    pub fn r#get_receive_buffer(
16051        &self,
16052    ) -> fidl::client::QueryResponseFut<
16053        BaseSocketGetReceiveBufferResult,
16054        fidl::encoding::DefaultFuchsiaResourceDialect,
16055    > {
16056        BaseNetworkSocketProxyInterface::r#get_receive_buffer(self)
16057    }
16058
16059    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
16060    pub fn r#set_keep_alive(
16061        &self,
16062        mut value: bool,
16063    ) -> fidl::client::QueryResponseFut<
16064        BaseSocketSetKeepAliveResult,
16065        fidl::encoding::DefaultFuchsiaResourceDialect,
16066    > {
16067        BaseNetworkSocketProxyInterface::r#set_keep_alive(self, value)
16068    }
16069
16070    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
16071    pub fn r#get_keep_alive(
16072        &self,
16073    ) -> fidl::client::QueryResponseFut<
16074        BaseSocketGetKeepAliveResult,
16075        fidl::encoding::DefaultFuchsiaResourceDialect,
16076    > {
16077        BaseNetworkSocketProxyInterface::r#get_keep_alive(self)
16078    }
16079
16080    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
16081    pub fn r#set_out_of_band_inline(
16082        &self,
16083        mut value: bool,
16084    ) -> fidl::client::QueryResponseFut<
16085        BaseSocketSetOutOfBandInlineResult,
16086        fidl::encoding::DefaultFuchsiaResourceDialect,
16087    > {
16088        BaseNetworkSocketProxyInterface::r#set_out_of_band_inline(self, value)
16089    }
16090
16091    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
16092    pub fn r#get_out_of_band_inline(
16093        &self,
16094    ) -> fidl::client::QueryResponseFut<
16095        BaseSocketGetOutOfBandInlineResult,
16096        fidl::encoding::DefaultFuchsiaResourceDialect,
16097    > {
16098        BaseNetworkSocketProxyInterface::r#get_out_of_band_inline(self)
16099    }
16100
16101    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
16102    pub fn r#set_no_check(
16103        &self,
16104        mut value: bool,
16105    ) -> fidl::client::QueryResponseFut<
16106        BaseSocketSetNoCheckResult,
16107        fidl::encoding::DefaultFuchsiaResourceDialect,
16108    > {
16109        BaseNetworkSocketProxyInterface::r#set_no_check(self, value)
16110    }
16111
16112    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
16113    pub fn r#get_no_check(
16114        &self,
16115    ) -> fidl::client::QueryResponseFut<
16116        BaseSocketGetNoCheckResult,
16117        fidl::encoding::DefaultFuchsiaResourceDialect,
16118    > {
16119        BaseNetworkSocketProxyInterface::r#get_no_check(self)
16120    }
16121
16122    /// Set `SOL_SOCKET` -> `SO_LINGER`.
16123    pub fn r#set_linger(
16124        &self,
16125        mut linger: bool,
16126        mut length_secs: u32,
16127    ) -> fidl::client::QueryResponseFut<
16128        BaseSocketSetLingerResult,
16129        fidl::encoding::DefaultFuchsiaResourceDialect,
16130    > {
16131        BaseNetworkSocketProxyInterface::r#set_linger(self, linger, length_secs)
16132    }
16133
16134    /// Get `SOL_SOCKET` -> `SO_LINGER`.
16135    pub fn r#get_linger(
16136        &self,
16137    ) -> fidl::client::QueryResponseFut<
16138        BaseSocketGetLingerResult,
16139        fidl::encoding::DefaultFuchsiaResourceDialect,
16140    > {
16141        BaseNetworkSocketProxyInterface::r#get_linger(self)
16142    }
16143
16144    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
16145    pub fn r#set_reuse_port(
16146        &self,
16147        mut value: bool,
16148    ) -> fidl::client::QueryResponseFut<
16149        BaseSocketSetReusePortResult,
16150        fidl::encoding::DefaultFuchsiaResourceDialect,
16151    > {
16152        BaseNetworkSocketProxyInterface::r#set_reuse_port(self, value)
16153    }
16154
16155    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
16156    pub fn r#get_reuse_port(
16157        &self,
16158    ) -> fidl::client::QueryResponseFut<
16159        BaseSocketGetReusePortResult,
16160        fidl::encoding::DefaultFuchsiaResourceDialect,
16161    > {
16162        BaseNetworkSocketProxyInterface::r#get_reuse_port(self)
16163    }
16164
16165    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
16166    pub fn r#get_accept_conn(
16167        &self,
16168    ) -> fidl::client::QueryResponseFut<
16169        BaseSocketGetAcceptConnResult,
16170        fidl::encoding::DefaultFuchsiaResourceDialect,
16171    > {
16172        BaseNetworkSocketProxyInterface::r#get_accept_conn(self)
16173    }
16174
16175    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
16176    pub fn r#set_bind_to_device(
16177        &self,
16178        mut value: &str,
16179    ) -> fidl::client::QueryResponseFut<
16180        BaseSocketSetBindToDeviceResult,
16181        fidl::encoding::DefaultFuchsiaResourceDialect,
16182    > {
16183        BaseNetworkSocketProxyInterface::r#set_bind_to_device(self, value)
16184    }
16185
16186    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
16187    pub fn r#get_bind_to_device(
16188        &self,
16189    ) -> fidl::client::QueryResponseFut<
16190        BaseSocketGetBindToDeviceResult,
16191        fidl::encoding::DefaultFuchsiaResourceDialect,
16192    > {
16193        BaseNetworkSocketProxyInterface::r#get_bind_to_device(self)
16194    }
16195
16196    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
16197    /// If `value` is 0, this clears the bound interface.
16198    pub fn r#set_bind_to_interface_index(
16199        &self,
16200        mut value: u64,
16201    ) -> fidl::client::QueryResponseFut<
16202        BaseSocketSetBindToInterfaceIndexResult,
16203        fidl::encoding::DefaultFuchsiaResourceDialect,
16204    > {
16205        BaseNetworkSocketProxyInterface::r#set_bind_to_interface_index(self, value)
16206    }
16207
16208    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
16209    pub fn r#get_bind_to_interface_index(
16210        &self,
16211    ) -> fidl::client::QueryResponseFut<
16212        BaseSocketGetBindToInterfaceIndexResult,
16213        fidl::encoding::DefaultFuchsiaResourceDialect,
16214    > {
16215        BaseNetworkSocketProxyInterface::r#get_bind_to_interface_index(self)
16216    }
16217
16218    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
16219    pub fn r#set_timestamp(
16220        &self,
16221        mut value: TimestampOption,
16222    ) -> fidl::client::QueryResponseFut<
16223        BaseSocketSetTimestampResult,
16224        fidl::encoding::DefaultFuchsiaResourceDialect,
16225    > {
16226        BaseNetworkSocketProxyInterface::r#set_timestamp(self, value)
16227    }
16228
16229    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
16230    pub fn r#get_timestamp(
16231        &self,
16232    ) -> fidl::client::QueryResponseFut<
16233        BaseSocketGetTimestampResult,
16234        fidl::encoding::DefaultFuchsiaResourceDialect,
16235    > {
16236        BaseNetworkSocketProxyInterface::r#get_timestamp(self)
16237    }
16238
16239    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
16240    /// unlike the standard SO_MARK, this API has multiple mark domains and each
16241    /// mark can be set independently in each domain.
16242    pub fn r#set_mark(
16243        &self,
16244        mut domain: fidl_fuchsia_net::MarkDomain,
16245        mut mark: &OptionalUint32,
16246    ) -> fidl::client::QueryResponseFut<
16247        BaseSocketSetMarkResult,
16248        fidl::encoding::DefaultFuchsiaResourceDialect,
16249    > {
16250        BaseNetworkSocketProxyInterface::r#set_mark(self, domain, mark)
16251    }
16252
16253    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
16254    /// unlike the standard SO_MARK, this API has multiple mark domains and each
16255    /// mark can be retrieved independently in each domain.
16256    pub fn r#get_mark(
16257        &self,
16258        mut domain: fidl_fuchsia_net::MarkDomain,
16259    ) -> fidl::client::QueryResponseFut<
16260        BaseSocketGetMarkResult,
16261        fidl::encoding::DefaultFuchsiaResourceDialect,
16262    > {
16263        BaseNetworkSocketProxyInterface::r#get_mark(self, domain)
16264    }
16265
16266    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
16267    pub fn r#get_cookie(
16268        &self,
16269    ) -> fidl::client::QueryResponseFut<
16270        BaseSocketGetCookieResult,
16271        fidl::encoding::DefaultFuchsiaResourceDialect,
16272    > {
16273        BaseNetworkSocketProxyInterface::r#get_cookie(self)
16274    }
16275
16276    /// Sets the local address used for the socket.
16277    pub fn r#bind(
16278        &self,
16279        mut addr: &fidl_fuchsia_net::SocketAddress,
16280    ) -> fidl::client::QueryResponseFut<
16281        BaseNetworkSocketBindResult,
16282        fidl::encoding::DefaultFuchsiaResourceDialect,
16283    > {
16284        BaseNetworkSocketProxyInterface::r#bind(self, addr)
16285    }
16286
16287    /// Initiates a connection to a remote address.
16288    pub fn r#connect(
16289        &self,
16290        mut addr: &fidl_fuchsia_net::SocketAddress,
16291    ) -> fidl::client::QueryResponseFut<
16292        BaseNetworkSocketConnectResult,
16293        fidl::encoding::DefaultFuchsiaResourceDialect,
16294    > {
16295        BaseNetworkSocketProxyInterface::r#connect(self, addr)
16296    }
16297
16298    /// Clears connection information from this socket.
16299    pub fn r#disconnect(
16300        &self,
16301    ) -> fidl::client::QueryResponseFut<
16302        BaseNetworkSocketDisconnectResult,
16303        fidl::encoding::DefaultFuchsiaResourceDialect,
16304    > {
16305        BaseNetworkSocketProxyInterface::r#disconnect(self)
16306    }
16307
16308    /// Retrieves the local socket address.
16309    pub fn r#get_sock_name(
16310        &self,
16311    ) -> fidl::client::QueryResponseFut<
16312        BaseNetworkSocketGetSockNameResult,
16313        fidl::encoding::DefaultFuchsiaResourceDialect,
16314    > {
16315        BaseNetworkSocketProxyInterface::r#get_sock_name(self)
16316    }
16317
16318    /// Retrieves the remote socket address.
16319    pub fn r#get_peer_name(
16320        &self,
16321    ) -> fidl::client::QueryResponseFut<
16322        BaseNetworkSocketGetPeerNameResult,
16323        fidl::encoding::DefaultFuchsiaResourceDialect,
16324    > {
16325        BaseNetworkSocketProxyInterface::r#get_peer_name(self)
16326    }
16327
16328    /// Shuts down part of the socket.
16329    pub fn r#shutdown(
16330        &self,
16331        mut mode: ShutdownMode,
16332    ) -> fidl::client::QueryResponseFut<
16333        BaseNetworkSocketShutdownResult,
16334        fidl::encoding::DefaultFuchsiaResourceDialect,
16335    > {
16336        BaseNetworkSocketProxyInterface::r#shutdown(self, mode)
16337    }
16338
16339    /// Set `SOL_IP` -> `IP_TOS`.
16340    pub fn r#set_ip_type_of_service(
16341        &self,
16342        mut value: u8,
16343    ) -> fidl::client::QueryResponseFut<
16344        BaseNetworkSocketSetIpTypeOfServiceResult,
16345        fidl::encoding::DefaultFuchsiaResourceDialect,
16346    > {
16347        BaseNetworkSocketProxyInterface::r#set_ip_type_of_service(self, value)
16348    }
16349
16350    /// Get `SOL_IP` -> `IP_TOS`.
16351    pub fn r#get_ip_type_of_service(
16352        &self,
16353    ) -> fidl::client::QueryResponseFut<
16354        BaseNetworkSocketGetIpTypeOfServiceResult,
16355        fidl::encoding::DefaultFuchsiaResourceDialect,
16356    > {
16357        BaseNetworkSocketProxyInterface::r#get_ip_type_of_service(self)
16358    }
16359
16360    /// Set `SOL_IP` -> `IP_TTL`.
16361    pub fn r#set_ip_ttl(
16362        &self,
16363        mut value: &OptionalUint8,
16364    ) -> fidl::client::QueryResponseFut<
16365        BaseNetworkSocketSetIpTtlResult,
16366        fidl::encoding::DefaultFuchsiaResourceDialect,
16367    > {
16368        BaseNetworkSocketProxyInterface::r#set_ip_ttl(self, value)
16369    }
16370
16371    /// Get `SOL_IP` -> `IP_TTL`.
16372    pub fn r#get_ip_ttl(
16373        &self,
16374    ) -> fidl::client::QueryResponseFut<
16375        BaseNetworkSocketGetIpTtlResult,
16376        fidl::encoding::DefaultFuchsiaResourceDialect,
16377    > {
16378        BaseNetworkSocketProxyInterface::r#get_ip_ttl(self)
16379    }
16380
16381    /// Set `SOL_IP` -> `IP_PKTINFO`.
16382    pub fn r#set_ip_packet_info(
16383        &self,
16384        mut value: bool,
16385    ) -> fidl::client::QueryResponseFut<
16386        BaseNetworkSocketSetIpPacketInfoResult,
16387        fidl::encoding::DefaultFuchsiaResourceDialect,
16388    > {
16389        BaseNetworkSocketProxyInterface::r#set_ip_packet_info(self, value)
16390    }
16391
16392    /// Get `SOL_IP` -> `IP_PKTINFO`.
16393    pub fn r#get_ip_packet_info(
16394        &self,
16395    ) -> fidl::client::QueryResponseFut<
16396        BaseNetworkSocketGetIpPacketInfoResult,
16397        fidl::encoding::DefaultFuchsiaResourceDialect,
16398    > {
16399        BaseNetworkSocketProxyInterface::r#get_ip_packet_info(self)
16400    }
16401
16402    /// Set `SOL_IP` -> `IP_RECVTOS`.
16403    pub fn r#set_ip_receive_type_of_service(
16404        &self,
16405        mut value: bool,
16406    ) -> fidl::client::QueryResponseFut<
16407        BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
16408        fidl::encoding::DefaultFuchsiaResourceDialect,
16409    > {
16410        BaseNetworkSocketProxyInterface::r#set_ip_receive_type_of_service(self, value)
16411    }
16412
16413    /// Get `SOL_IP` -> `IP_RECVTOS`.
16414    pub fn r#get_ip_receive_type_of_service(
16415        &self,
16416    ) -> fidl::client::QueryResponseFut<
16417        BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
16418        fidl::encoding::DefaultFuchsiaResourceDialect,
16419    > {
16420        BaseNetworkSocketProxyInterface::r#get_ip_receive_type_of_service(self)
16421    }
16422
16423    /// Set `SOL_IP` -> `IP_RECVTTL`.
16424    pub fn r#set_ip_receive_ttl(
16425        &self,
16426        mut value: bool,
16427    ) -> fidl::client::QueryResponseFut<
16428        BaseNetworkSocketSetIpReceiveTtlResult,
16429        fidl::encoding::DefaultFuchsiaResourceDialect,
16430    > {
16431        BaseNetworkSocketProxyInterface::r#set_ip_receive_ttl(self, value)
16432    }
16433
16434    /// Get `SOL_IP` -> `IP_RECVTTL`.
16435    pub fn r#get_ip_receive_ttl(
16436        &self,
16437    ) -> fidl::client::QueryResponseFut<
16438        BaseNetworkSocketGetIpReceiveTtlResult,
16439        fidl::encoding::DefaultFuchsiaResourceDialect,
16440    > {
16441        BaseNetworkSocketProxyInterface::r#get_ip_receive_ttl(self)
16442    }
16443
16444    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
16445    pub fn r#set_ip_multicast_interface(
16446        &self,
16447        mut iface: u64,
16448        mut address: &fidl_fuchsia_net::Ipv4Address,
16449    ) -> fidl::client::QueryResponseFut<
16450        BaseNetworkSocketSetIpMulticastInterfaceResult,
16451        fidl::encoding::DefaultFuchsiaResourceDialect,
16452    > {
16453        BaseNetworkSocketProxyInterface::r#set_ip_multicast_interface(self, iface, address)
16454    }
16455
16456    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
16457    pub fn r#get_ip_multicast_interface(
16458        &self,
16459    ) -> fidl::client::QueryResponseFut<
16460        BaseNetworkSocketGetIpMulticastInterfaceResult,
16461        fidl::encoding::DefaultFuchsiaResourceDialect,
16462    > {
16463        BaseNetworkSocketProxyInterface::r#get_ip_multicast_interface(self)
16464    }
16465
16466    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
16467    pub fn r#set_ip_multicast_ttl(
16468        &self,
16469        mut value: &OptionalUint8,
16470    ) -> fidl::client::QueryResponseFut<
16471        BaseNetworkSocketSetIpMulticastTtlResult,
16472        fidl::encoding::DefaultFuchsiaResourceDialect,
16473    > {
16474        BaseNetworkSocketProxyInterface::r#set_ip_multicast_ttl(self, value)
16475    }
16476
16477    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
16478    pub fn r#get_ip_multicast_ttl(
16479        &self,
16480    ) -> fidl::client::QueryResponseFut<
16481        BaseNetworkSocketGetIpMulticastTtlResult,
16482        fidl::encoding::DefaultFuchsiaResourceDialect,
16483    > {
16484        BaseNetworkSocketProxyInterface::r#get_ip_multicast_ttl(self)
16485    }
16486
16487    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
16488    pub fn r#set_ip_multicast_loopback(
16489        &self,
16490        mut value: bool,
16491    ) -> fidl::client::QueryResponseFut<
16492        BaseNetworkSocketSetIpMulticastLoopbackResult,
16493        fidl::encoding::DefaultFuchsiaResourceDialect,
16494    > {
16495        BaseNetworkSocketProxyInterface::r#set_ip_multicast_loopback(self, value)
16496    }
16497
16498    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
16499    pub fn r#get_ip_multicast_loopback(
16500        &self,
16501    ) -> fidl::client::QueryResponseFut<
16502        BaseNetworkSocketGetIpMulticastLoopbackResult,
16503        fidl::encoding::DefaultFuchsiaResourceDialect,
16504    > {
16505        BaseNetworkSocketProxyInterface::r#get_ip_multicast_loopback(self)
16506    }
16507
16508    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
16509    pub fn r#add_ip_membership(
16510        &self,
16511        mut membership: &IpMulticastMembership,
16512    ) -> fidl::client::QueryResponseFut<
16513        BaseNetworkSocketAddIpMembershipResult,
16514        fidl::encoding::DefaultFuchsiaResourceDialect,
16515    > {
16516        BaseNetworkSocketProxyInterface::r#add_ip_membership(self, membership)
16517    }
16518
16519    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
16520    pub fn r#drop_ip_membership(
16521        &self,
16522        mut membership: &IpMulticastMembership,
16523    ) -> fidl::client::QueryResponseFut<
16524        BaseNetworkSocketDropIpMembershipResult,
16525        fidl::encoding::DefaultFuchsiaResourceDialect,
16526    > {
16527        BaseNetworkSocketProxyInterface::r#drop_ip_membership(self, membership)
16528    }
16529
16530    /// Set `SOL_IP` -> `IP_TRANSPARENT`
16531    pub fn r#set_ip_transparent(
16532        &self,
16533        mut value: bool,
16534    ) -> fidl::client::QueryResponseFut<
16535        BaseNetworkSocketSetIpTransparentResult,
16536        fidl::encoding::DefaultFuchsiaResourceDialect,
16537    > {
16538        BaseNetworkSocketProxyInterface::r#set_ip_transparent(self, value)
16539    }
16540
16541    /// Get `SOL_IP` -> `IP_TRANSPARENT`
16542    pub fn r#get_ip_transparent(
16543        &self,
16544    ) -> fidl::client::QueryResponseFut<
16545        BaseNetworkSocketGetIpTransparentResult,
16546        fidl::encoding::DefaultFuchsiaResourceDialect,
16547    > {
16548        BaseNetworkSocketProxyInterface::r#get_ip_transparent(self)
16549    }
16550
16551    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
16552    pub fn r#set_ip_receive_original_destination_address(
16553        &self,
16554        mut value: bool,
16555    ) -> fidl::client::QueryResponseFut<
16556        BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
16557        fidl::encoding::DefaultFuchsiaResourceDialect,
16558    > {
16559        BaseNetworkSocketProxyInterface::r#set_ip_receive_original_destination_address(self, value)
16560    }
16561
16562    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
16563    pub fn r#get_ip_receive_original_destination_address(
16564        &self,
16565    ) -> fidl::client::QueryResponseFut<
16566        BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
16567        fidl::encoding::DefaultFuchsiaResourceDialect,
16568    > {
16569        BaseNetworkSocketProxyInterface::r#get_ip_receive_original_destination_address(self)
16570    }
16571
16572    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
16573    pub fn r#add_ipv6_membership(
16574        &self,
16575        mut membership: &Ipv6MulticastMembership,
16576    ) -> fidl::client::QueryResponseFut<
16577        BaseNetworkSocketAddIpv6MembershipResult,
16578        fidl::encoding::DefaultFuchsiaResourceDialect,
16579    > {
16580        BaseNetworkSocketProxyInterface::r#add_ipv6_membership(self, membership)
16581    }
16582
16583    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
16584    pub fn r#drop_ipv6_membership(
16585        &self,
16586        mut membership: &Ipv6MulticastMembership,
16587    ) -> fidl::client::QueryResponseFut<
16588        BaseNetworkSocketDropIpv6MembershipResult,
16589        fidl::encoding::DefaultFuchsiaResourceDialect,
16590    > {
16591        BaseNetworkSocketProxyInterface::r#drop_ipv6_membership(self, membership)
16592    }
16593
16594    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
16595    pub fn r#set_ipv6_multicast_interface(
16596        &self,
16597        mut value: u64,
16598    ) -> fidl::client::QueryResponseFut<
16599        BaseNetworkSocketSetIpv6MulticastInterfaceResult,
16600        fidl::encoding::DefaultFuchsiaResourceDialect,
16601    > {
16602        BaseNetworkSocketProxyInterface::r#set_ipv6_multicast_interface(self, value)
16603    }
16604
16605    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
16606    pub fn r#get_ipv6_multicast_interface(
16607        &self,
16608    ) -> fidl::client::QueryResponseFut<
16609        BaseNetworkSocketGetIpv6MulticastInterfaceResult,
16610        fidl::encoding::DefaultFuchsiaResourceDialect,
16611    > {
16612        BaseNetworkSocketProxyInterface::r#get_ipv6_multicast_interface(self)
16613    }
16614
16615    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
16616    pub fn r#set_ipv6_unicast_hops(
16617        &self,
16618        mut value: &OptionalUint8,
16619    ) -> fidl::client::QueryResponseFut<
16620        BaseNetworkSocketSetIpv6UnicastHopsResult,
16621        fidl::encoding::DefaultFuchsiaResourceDialect,
16622    > {
16623        BaseNetworkSocketProxyInterface::r#set_ipv6_unicast_hops(self, value)
16624    }
16625
16626    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
16627    pub fn r#get_ipv6_unicast_hops(
16628        &self,
16629    ) -> fidl::client::QueryResponseFut<
16630        BaseNetworkSocketGetIpv6UnicastHopsResult,
16631        fidl::encoding::DefaultFuchsiaResourceDialect,
16632    > {
16633        BaseNetworkSocketProxyInterface::r#get_ipv6_unicast_hops(self)
16634    }
16635
16636    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
16637    pub fn r#set_ipv6_receive_hop_limit(
16638        &self,
16639        mut value: bool,
16640    ) -> fidl::client::QueryResponseFut<
16641        BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
16642        fidl::encoding::DefaultFuchsiaResourceDialect,
16643    > {
16644        BaseNetworkSocketProxyInterface::r#set_ipv6_receive_hop_limit(self, value)
16645    }
16646
16647    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
16648    pub fn r#get_ipv6_receive_hop_limit(
16649        &self,
16650    ) -> fidl::client::QueryResponseFut<
16651        BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
16652        fidl::encoding::DefaultFuchsiaResourceDialect,
16653    > {
16654        BaseNetworkSocketProxyInterface::r#get_ipv6_receive_hop_limit(self)
16655    }
16656
16657    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
16658    pub fn r#set_ipv6_multicast_hops(
16659        &self,
16660        mut value: &OptionalUint8,
16661    ) -> fidl::client::QueryResponseFut<
16662        BaseNetworkSocketSetIpv6MulticastHopsResult,
16663        fidl::encoding::DefaultFuchsiaResourceDialect,
16664    > {
16665        BaseNetworkSocketProxyInterface::r#set_ipv6_multicast_hops(self, value)
16666    }
16667
16668    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
16669    pub fn r#get_ipv6_multicast_hops(
16670        &self,
16671    ) -> fidl::client::QueryResponseFut<
16672        BaseNetworkSocketGetIpv6MulticastHopsResult,
16673        fidl::encoding::DefaultFuchsiaResourceDialect,
16674    > {
16675        BaseNetworkSocketProxyInterface::r#get_ipv6_multicast_hops(self)
16676    }
16677
16678    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
16679    pub fn r#set_ipv6_multicast_loopback(
16680        &self,
16681        mut value: bool,
16682    ) -> fidl::client::QueryResponseFut<
16683        BaseNetworkSocketSetIpv6MulticastLoopbackResult,
16684        fidl::encoding::DefaultFuchsiaResourceDialect,
16685    > {
16686        BaseNetworkSocketProxyInterface::r#set_ipv6_multicast_loopback(self, value)
16687    }
16688
16689    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
16690    pub fn r#get_ipv6_multicast_loopback(
16691        &self,
16692    ) -> fidl::client::QueryResponseFut<
16693        BaseNetworkSocketGetIpv6MulticastLoopbackResult,
16694        fidl::encoding::DefaultFuchsiaResourceDialect,
16695    > {
16696        BaseNetworkSocketProxyInterface::r#get_ipv6_multicast_loopback(self)
16697    }
16698
16699    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
16700    pub fn r#set_ipv6_only(
16701        &self,
16702        mut value: bool,
16703    ) -> fidl::client::QueryResponseFut<
16704        BaseNetworkSocketSetIpv6OnlyResult,
16705        fidl::encoding::DefaultFuchsiaResourceDialect,
16706    > {
16707        BaseNetworkSocketProxyInterface::r#set_ipv6_only(self, value)
16708    }
16709
16710    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
16711    pub fn r#get_ipv6_only(
16712        &self,
16713    ) -> fidl::client::QueryResponseFut<
16714        BaseNetworkSocketGetIpv6OnlyResult,
16715        fidl::encoding::DefaultFuchsiaResourceDialect,
16716    > {
16717        BaseNetworkSocketProxyInterface::r#get_ipv6_only(self)
16718    }
16719
16720    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
16721    pub fn r#set_ipv6_receive_traffic_class(
16722        &self,
16723        mut value: bool,
16724    ) -> fidl::client::QueryResponseFut<
16725        BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
16726        fidl::encoding::DefaultFuchsiaResourceDialect,
16727    > {
16728        BaseNetworkSocketProxyInterface::r#set_ipv6_receive_traffic_class(self, value)
16729    }
16730
16731    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
16732    pub fn r#get_ipv6_receive_traffic_class(
16733        &self,
16734    ) -> fidl::client::QueryResponseFut<
16735        BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
16736        fidl::encoding::DefaultFuchsiaResourceDialect,
16737    > {
16738        BaseNetworkSocketProxyInterface::r#get_ipv6_receive_traffic_class(self)
16739    }
16740
16741    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
16742    pub fn r#set_ipv6_traffic_class(
16743        &self,
16744        mut value: &OptionalUint8,
16745    ) -> fidl::client::QueryResponseFut<
16746        BaseNetworkSocketSetIpv6TrafficClassResult,
16747        fidl::encoding::DefaultFuchsiaResourceDialect,
16748    > {
16749        BaseNetworkSocketProxyInterface::r#set_ipv6_traffic_class(self, value)
16750    }
16751
16752    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
16753    pub fn r#get_ipv6_traffic_class(
16754        &self,
16755    ) -> fidl::client::QueryResponseFut<
16756        BaseNetworkSocketGetIpv6TrafficClassResult,
16757        fidl::encoding::DefaultFuchsiaResourceDialect,
16758    > {
16759        BaseNetworkSocketProxyInterface::r#get_ipv6_traffic_class(self)
16760    }
16761
16762    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
16763    pub fn r#set_ipv6_receive_packet_info(
16764        &self,
16765        mut value: bool,
16766    ) -> fidl::client::QueryResponseFut<
16767        BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
16768        fidl::encoding::DefaultFuchsiaResourceDialect,
16769    > {
16770        BaseNetworkSocketProxyInterface::r#set_ipv6_receive_packet_info(self, value)
16771    }
16772
16773    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
16774    pub fn r#get_ipv6_receive_packet_info(
16775        &self,
16776    ) -> fidl::client::QueryResponseFut<
16777        BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
16778        fidl::encoding::DefaultFuchsiaResourceDialect,
16779    > {
16780        BaseNetworkSocketProxyInterface::r#get_ipv6_receive_packet_info(self)
16781    }
16782
16783    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
16784    pub fn r#get_original_destination(
16785        &self,
16786    ) -> fidl::client::QueryResponseFut<
16787        BaseNetworkSocketGetOriginalDestinationResult,
16788        fidl::encoding::DefaultFuchsiaResourceDialect,
16789    > {
16790        BaseNetworkSocketProxyInterface::r#get_original_destination(self)
16791    }
16792}
16793
16794impl BaseNetworkSocketProxyInterface for BaseNetworkSocketProxy {
16795    fn r#clone(
16796        &self,
16797        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
16798    ) -> Result<(), fidl::Error> {
16799        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
16800            (request,),
16801            0x20d8a7aba2168a79,
16802            fidl::encoding::DynamicFlags::empty(),
16803        )
16804    }
16805
16806    type CloseResponseFut = fidl::client::QueryResponseFut<
16807        fidl_fuchsia_unknown::CloseableCloseResult,
16808        fidl::encoding::DefaultFuchsiaResourceDialect,
16809    >;
16810    fn r#close(&self) -> Self::CloseResponseFut {
16811        fn _decode(
16812            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
16813        ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
16814            let _response = fidl::client::decode_transaction_body::<
16815                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
16816                fidl::encoding::DefaultFuchsiaResourceDialect,
16817                0x5ac5d459ad7f657e,
16818            >(_buf?)?;
16819            Ok(_response.map(|x| x))
16820        }
16821        self.client.send_query_and_decode::<
16822            fidl::encoding::EmptyPayload,
16823            fidl_fuchsia_unknown::CloseableCloseResult,
16824        >(
16825            (),
16826            0x5ac5d459ad7f657e,
16827            fidl::encoding::DynamicFlags::empty(),
16828            _decode,
16829        )
16830    }
16831
16832    type QueryResponseFut =
16833        fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>;
16834    fn r#query(&self) -> Self::QueryResponseFut {
16835        fn _decode(
16836            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
16837        ) -> Result<Vec<u8>, fidl::Error> {
16838            let _response = fidl::client::decode_transaction_body::<
16839                fidl_fuchsia_unknown::QueryableQueryResponse,
16840                fidl::encoding::DefaultFuchsiaResourceDialect,
16841                0x2658edee9decfc06,
16842            >(_buf?)?;
16843            Ok(_response.protocol)
16844        }
16845        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, Vec<u8>>(
16846            (),
16847            0x2658edee9decfc06,
16848            fidl::encoding::DynamicFlags::empty(),
16849            _decode,
16850        )
16851    }
16852
16853    type SetReuseAddressResponseFut = fidl::client::QueryResponseFut<
16854        BaseSocketSetReuseAddressResult,
16855        fidl::encoding::DefaultFuchsiaResourceDialect,
16856    >;
16857    fn r#set_reuse_address(&self, mut value: bool) -> Self::SetReuseAddressResponseFut {
16858        fn _decode(
16859            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
16860        ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
16861            let _response = fidl::client::decode_transaction_body::<
16862                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
16863                fidl::encoding::DefaultFuchsiaResourceDialect,
16864                0x1fd74ee8b9a4a876,
16865            >(_buf?)?;
16866            Ok(_response.map(|x| x))
16867        }
16868        self.client.send_query_and_decode::<
16869            BaseSocketSetReuseAddressRequest,
16870            BaseSocketSetReuseAddressResult,
16871        >(
16872            (value,),
16873            0x1fd74ee8b9a4a876,
16874            fidl::encoding::DynamicFlags::empty(),
16875            _decode,
16876        )
16877    }
16878
16879    type GetReuseAddressResponseFut = fidl::client::QueryResponseFut<
16880        BaseSocketGetReuseAddressResult,
16881        fidl::encoding::DefaultFuchsiaResourceDialect,
16882    >;
16883    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut {
16884        fn _decode(
16885            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
16886        ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
16887            let _response = fidl::client::decode_transaction_body::<
16888                fidl::encoding::ResultType<
16889                    BaseSocketGetReuseAddressResponse,
16890                    fidl_fuchsia_posix::Errno,
16891                >,
16892                fidl::encoding::DefaultFuchsiaResourceDialect,
16893                0x67b7206b8d1bc0a5,
16894            >(_buf?)?;
16895            Ok(_response.map(|x| x.value))
16896        }
16897        self.client
16898            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReuseAddressResult>(
16899                (),
16900                0x67b7206b8d1bc0a5,
16901                fidl::encoding::DynamicFlags::empty(),
16902                _decode,
16903            )
16904    }
16905
16906    type GetErrorResponseFut = fidl::client::QueryResponseFut<
16907        BaseSocketGetErrorResult,
16908        fidl::encoding::DefaultFuchsiaResourceDialect,
16909    >;
16910    fn r#get_error(&self) -> Self::GetErrorResponseFut {
16911        fn _decode(
16912            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
16913        ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
16914            let _response = fidl::client::decode_transaction_body::<
16915                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
16916                fidl::encoding::DefaultFuchsiaResourceDialect,
16917                0x5aad39b33e5f6ebb,
16918            >(_buf?)?;
16919            Ok(_response.map(|x| x))
16920        }
16921        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetErrorResult>(
16922            (),
16923            0x5aad39b33e5f6ebb,
16924            fidl::encoding::DynamicFlags::empty(),
16925            _decode,
16926        )
16927    }
16928
16929    type SetBroadcastResponseFut = fidl::client::QueryResponseFut<
16930        BaseSocketSetBroadcastResult,
16931        fidl::encoding::DefaultFuchsiaResourceDialect,
16932    >;
16933    fn r#set_broadcast(&self, mut value: bool) -> Self::SetBroadcastResponseFut {
16934        fn _decode(
16935            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
16936        ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
16937            let _response = fidl::client::decode_transaction_body::<
16938                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
16939                fidl::encoding::DefaultFuchsiaResourceDialect,
16940                0x6023e081ce3cd947,
16941            >(_buf?)?;
16942            Ok(_response.map(|x| x))
16943        }
16944        self.client
16945            .send_query_and_decode::<BaseSocketSetBroadcastRequest, BaseSocketSetBroadcastResult>(
16946                (value,),
16947                0x6023e081ce3cd947,
16948                fidl::encoding::DynamicFlags::empty(),
16949                _decode,
16950            )
16951    }
16952
16953    type GetBroadcastResponseFut = fidl::client::QueryResponseFut<
16954        BaseSocketGetBroadcastResult,
16955        fidl::encoding::DefaultFuchsiaResourceDialect,
16956    >;
16957    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut {
16958        fn _decode(
16959            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
16960        ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
16961            let _response = fidl::client::decode_transaction_body::<
16962                fidl::encoding::ResultType<
16963                    BaseSocketGetBroadcastResponse,
16964                    fidl_fuchsia_posix::Errno,
16965                >,
16966                fidl::encoding::DefaultFuchsiaResourceDialect,
16967                0x68796fc556f9780d,
16968            >(_buf?)?;
16969            Ok(_response.map(|x| x.value))
16970        }
16971        self.client
16972            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBroadcastResult>(
16973                (),
16974                0x68796fc556f9780d,
16975                fidl::encoding::DynamicFlags::empty(),
16976                _decode,
16977            )
16978    }
16979
16980    type SetSendBufferResponseFut = fidl::client::QueryResponseFut<
16981        BaseSocketSetSendBufferResult,
16982        fidl::encoding::DefaultFuchsiaResourceDialect,
16983    >;
16984    fn r#set_send_buffer(&self, mut value_bytes: u64) -> Self::SetSendBufferResponseFut {
16985        fn _decode(
16986            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
16987        ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
16988            let _response = fidl::client::decode_transaction_body::<
16989                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
16990                fidl::encoding::DefaultFuchsiaResourceDialect,
16991                0x756eac32d73a7a70,
16992            >(_buf?)?;
16993            Ok(_response.map(|x| x))
16994        }
16995        self.client
16996            .send_query_and_decode::<BaseSocketSetSendBufferRequest, BaseSocketSetSendBufferResult>(
16997                (value_bytes,),
16998                0x756eac32d73a7a70,
16999                fidl::encoding::DynamicFlags::empty(),
17000                _decode,
17001            )
17002    }
17003
17004    type GetSendBufferResponseFut = fidl::client::QueryResponseFut<
17005        BaseSocketGetSendBufferResult,
17006        fidl::encoding::DefaultFuchsiaResourceDialect,
17007    >;
17008    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut {
17009        fn _decode(
17010            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17011        ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
17012            let _response = fidl::client::decode_transaction_body::<
17013                fidl::encoding::ResultType<
17014                    BaseSocketGetSendBufferResponse,
17015                    fidl_fuchsia_posix::Errno,
17016                >,
17017                fidl::encoding::DefaultFuchsiaResourceDialect,
17018                0x78a52fd9c7b2410b,
17019            >(_buf?)?;
17020            Ok(_response.map(|x| x.value_bytes))
17021        }
17022        self.client
17023            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetSendBufferResult>(
17024                (),
17025                0x78a52fd9c7b2410b,
17026                fidl::encoding::DynamicFlags::empty(),
17027                _decode,
17028            )
17029    }
17030
17031    type SetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
17032        BaseSocketSetReceiveBufferResult,
17033        fidl::encoding::DefaultFuchsiaResourceDialect,
17034    >;
17035    fn r#set_receive_buffer(&self, mut value_bytes: u64) -> Self::SetReceiveBufferResponseFut {
17036        fn _decode(
17037            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17038        ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
17039            let _response = fidl::client::decode_transaction_body::<
17040                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17041                fidl::encoding::DefaultFuchsiaResourceDialect,
17042                0x6b0cf2f1919c7001,
17043            >(_buf?)?;
17044            Ok(_response.map(|x| x))
17045        }
17046        self.client.send_query_and_decode::<
17047            BaseSocketSetReceiveBufferRequest,
17048            BaseSocketSetReceiveBufferResult,
17049        >(
17050            (value_bytes,),
17051            0x6b0cf2f1919c7001,
17052            fidl::encoding::DynamicFlags::empty(),
17053            _decode,
17054        )
17055    }
17056
17057    type GetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
17058        BaseSocketGetReceiveBufferResult,
17059        fidl::encoding::DefaultFuchsiaResourceDialect,
17060    >;
17061    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut {
17062        fn _decode(
17063            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17064        ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
17065            let _response = fidl::client::decode_transaction_body::<
17066                fidl::encoding::ResultType<
17067                    BaseSocketGetReceiveBufferResponse,
17068                    fidl_fuchsia_posix::Errno,
17069                >,
17070                fidl::encoding::DefaultFuchsiaResourceDialect,
17071                0x14c1a4b64f709e5c,
17072            >(_buf?)?;
17073            Ok(_response.map(|x| x.value_bytes))
17074        }
17075        self.client.send_query_and_decode::<
17076            fidl::encoding::EmptyPayload,
17077            BaseSocketGetReceiveBufferResult,
17078        >(
17079            (),
17080            0x14c1a4b64f709e5c,
17081            fidl::encoding::DynamicFlags::empty(),
17082            _decode,
17083        )
17084    }
17085
17086    type SetKeepAliveResponseFut = fidl::client::QueryResponseFut<
17087        BaseSocketSetKeepAliveResult,
17088        fidl::encoding::DefaultFuchsiaResourceDialect,
17089    >;
17090    fn r#set_keep_alive(&self, mut value: bool) -> Self::SetKeepAliveResponseFut {
17091        fn _decode(
17092            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17093        ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
17094            let _response = fidl::client::decode_transaction_body::<
17095                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17096                fidl::encoding::DefaultFuchsiaResourceDialect,
17097                0x572df8f0b920d2c7,
17098            >(_buf?)?;
17099            Ok(_response.map(|x| x))
17100        }
17101        self.client
17102            .send_query_and_decode::<BaseSocketSetKeepAliveRequest, BaseSocketSetKeepAliveResult>(
17103                (value,),
17104                0x572df8f0b920d2c7,
17105                fidl::encoding::DynamicFlags::empty(),
17106                _decode,
17107            )
17108    }
17109
17110    type GetKeepAliveResponseFut = fidl::client::QueryResponseFut<
17111        BaseSocketGetKeepAliveResult,
17112        fidl::encoding::DefaultFuchsiaResourceDialect,
17113    >;
17114    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut {
17115        fn _decode(
17116            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17117        ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
17118            let _response = fidl::client::decode_transaction_body::<
17119                fidl::encoding::ResultType<
17120                    BaseSocketGetKeepAliveResponse,
17121                    fidl_fuchsia_posix::Errno,
17122                >,
17123                fidl::encoding::DefaultFuchsiaResourceDialect,
17124                0x2dd29d3215f2c9d2,
17125            >(_buf?)?;
17126            Ok(_response.map(|x| x.value))
17127        }
17128        self.client
17129            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetKeepAliveResult>(
17130                (),
17131                0x2dd29d3215f2c9d2,
17132                fidl::encoding::DynamicFlags::empty(),
17133                _decode,
17134            )
17135    }
17136
17137    type SetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
17138        BaseSocketSetOutOfBandInlineResult,
17139        fidl::encoding::DefaultFuchsiaResourceDialect,
17140    >;
17141    fn r#set_out_of_band_inline(&self, mut value: bool) -> Self::SetOutOfBandInlineResponseFut {
17142        fn _decode(
17143            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17144        ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
17145            let _response = fidl::client::decode_transaction_body::<
17146                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17147                fidl::encoding::DefaultFuchsiaResourceDialect,
17148                0x3ecb49968bee439,
17149            >(_buf?)?;
17150            Ok(_response.map(|x| x))
17151        }
17152        self.client.send_query_and_decode::<
17153            BaseSocketSetOutOfBandInlineRequest,
17154            BaseSocketSetOutOfBandInlineResult,
17155        >(
17156            (value,),
17157            0x3ecb49968bee439,
17158            fidl::encoding::DynamicFlags::empty(),
17159            _decode,
17160        )
17161    }
17162
17163    type GetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
17164        BaseSocketGetOutOfBandInlineResult,
17165        fidl::encoding::DefaultFuchsiaResourceDialect,
17166    >;
17167    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut {
17168        fn _decode(
17169            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17170        ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
17171            let _response = fidl::client::decode_transaction_body::<
17172                fidl::encoding::ResultType<
17173                    BaseSocketGetOutOfBandInlineResponse,
17174                    fidl_fuchsia_posix::Errno,
17175                >,
17176                fidl::encoding::DefaultFuchsiaResourceDialect,
17177                0x348c1ab3aeca1745,
17178            >(_buf?)?;
17179            Ok(_response.map(|x| x.value))
17180        }
17181        self.client.send_query_and_decode::<
17182            fidl::encoding::EmptyPayload,
17183            BaseSocketGetOutOfBandInlineResult,
17184        >(
17185            (),
17186            0x348c1ab3aeca1745,
17187            fidl::encoding::DynamicFlags::empty(),
17188            _decode,
17189        )
17190    }
17191
17192    type SetNoCheckResponseFut = fidl::client::QueryResponseFut<
17193        BaseSocketSetNoCheckResult,
17194        fidl::encoding::DefaultFuchsiaResourceDialect,
17195    >;
17196    fn r#set_no_check(&self, mut value: bool) -> Self::SetNoCheckResponseFut {
17197        fn _decode(
17198            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17199        ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
17200            let _response = fidl::client::decode_transaction_body::<
17201                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17202                fidl::encoding::DefaultFuchsiaResourceDialect,
17203                0x6bbf00c53a4c78c2,
17204            >(_buf?)?;
17205            Ok(_response.map(|x| x))
17206        }
17207        self.client
17208            .send_query_and_decode::<BaseSocketSetNoCheckRequest, BaseSocketSetNoCheckResult>(
17209                (value,),
17210                0x6bbf00c53a4c78c2,
17211                fidl::encoding::DynamicFlags::empty(),
17212                _decode,
17213            )
17214    }
17215
17216    type GetNoCheckResponseFut = fidl::client::QueryResponseFut<
17217        BaseSocketGetNoCheckResult,
17218        fidl::encoding::DefaultFuchsiaResourceDialect,
17219    >;
17220    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut {
17221        fn _decode(
17222            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17223        ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
17224            let _response = fidl::client::decode_transaction_body::<
17225                fidl::encoding::ResultType<BaseSocketGetNoCheckResponse, fidl_fuchsia_posix::Errno>,
17226                fidl::encoding::DefaultFuchsiaResourceDialect,
17227                0x2cd4249286417694,
17228            >(_buf?)?;
17229            Ok(_response.map(|x| x.value))
17230        }
17231        self.client
17232            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetNoCheckResult>(
17233                (),
17234                0x2cd4249286417694,
17235                fidl::encoding::DynamicFlags::empty(),
17236                _decode,
17237            )
17238    }
17239
17240    type SetLingerResponseFut = fidl::client::QueryResponseFut<
17241        BaseSocketSetLingerResult,
17242        fidl::encoding::DefaultFuchsiaResourceDialect,
17243    >;
17244    fn r#set_linger(&self, mut linger: bool, mut length_secs: u32) -> Self::SetLingerResponseFut {
17245        fn _decode(
17246            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17247        ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
17248            let _response = fidl::client::decode_transaction_body::<
17249                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17250                fidl::encoding::DefaultFuchsiaResourceDialect,
17251                0x45386351246e998e,
17252            >(_buf?)?;
17253            Ok(_response.map(|x| x))
17254        }
17255        self.client.send_query_and_decode::<BaseSocketSetLingerRequest, BaseSocketSetLingerResult>(
17256            (linger, length_secs),
17257            0x45386351246e998e,
17258            fidl::encoding::DynamicFlags::empty(),
17259            _decode,
17260        )
17261    }
17262
17263    type GetLingerResponseFut = fidl::client::QueryResponseFut<
17264        BaseSocketGetLingerResult,
17265        fidl::encoding::DefaultFuchsiaResourceDialect,
17266    >;
17267    fn r#get_linger(&self) -> Self::GetLingerResponseFut {
17268        fn _decode(
17269            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17270        ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
17271            let _response = fidl::client::decode_transaction_body::<
17272                fidl::encoding::ResultType<BaseSocketGetLingerResponse, fidl_fuchsia_posix::Errno>,
17273                fidl::encoding::DefaultFuchsiaResourceDialect,
17274                0x48eb20fc5ccb0e45,
17275            >(_buf?)?;
17276            Ok(_response.map(|x| (x.linger, x.length_secs)))
17277        }
17278        self.client
17279            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetLingerResult>(
17280                (),
17281                0x48eb20fc5ccb0e45,
17282                fidl::encoding::DynamicFlags::empty(),
17283                _decode,
17284            )
17285    }
17286
17287    type SetReusePortResponseFut = fidl::client::QueryResponseFut<
17288        BaseSocketSetReusePortResult,
17289        fidl::encoding::DefaultFuchsiaResourceDialect,
17290    >;
17291    fn r#set_reuse_port(&self, mut value: bool) -> Self::SetReusePortResponseFut {
17292        fn _decode(
17293            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17294        ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
17295            let _response = fidl::client::decode_transaction_body::<
17296                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17297                fidl::encoding::DefaultFuchsiaResourceDialect,
17298                0x24dd3e5cb36d9ccb,
17299            >(_buf?)?;
17300            Ok(_response.map(|x| x))
17301        }
17302        self.client
17303            .send_query_and_decode::<BaseSocketSetReusePortRequest, BaseSocketSetReusePortResult>(
17304                (value,),
17305                0x24dd3e5cb36d9ccb,
17306                fidl::encoding::DynamicFlags::empty(),
17307                _decode,
17308            )
17309    }
17310
17311    type GetReusePortResponseFut = fidl::client::QueryResponseFut<
17312        BaseSocketGetReusePortResult,
17313        fidl::encoding::DefaultFuchsiaResourceDialect,
17314    >;
17315    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut {
17316        fn _decode(
17317            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17318        ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
17319            let _response = fidl::client::decode_transaction_body::<
17320                fidl::encoding::ResultType<
17321                    BaseSocketGetReusePortResponse,
17322                    fidl_fuchsia_posix::Errno,
17323                >,
17324                fidl::encoding::DefaultFuchsiaResourceDialect,
17325                0x7a112c1ab54ff828,
17326            >(_buf?)?;
17327            Ok(_response.map(|x| x.value))
17328        }
17329        self.client
17330            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReusePortResult>(
17331                (),
17332                0x7a112c1ab54ff828,
17333                fidl::encoding::DynamicFlags::empty(),
17334                _decode,
17335            )
17336    }
17337
17338    type GetAcceptConnResponseFut = fidl::client::QueryResponseFut<
17339        BaseSocketGetAcceptConnResult,
17340        fidl::encoding::DefaultFuchsiaResourceDialect,
17341    >;
17342    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut {
17343        fn _decode(
17344            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17345        ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
17346            let _response = fidl::client::decode_transaction_body::<
17347                fidl::encoding::ResultType<
17348                    BaseSocketGetAcceptConnResponse,
17349                    fidl_fuchsia_posix::Errno,
17350                >,
17351                fidl::encoding::DefaultFuchsiaResourceDialect,
17352                0x67ce6db6c2ec8966,
17353            >(_buf?)?;
17354            Ok(_response.map(|x| x.value))
17355        }
17356        self.client
17357            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetAcceptConnResult>(
17358                (),
17359                0x67ce6db6c2ec8966,
17360                fidl::encoding::DynamicFlags::empty(),
17361                _decode,
17362            )
17363    }
17364
17365    type SetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
17366        BaseSocketSetBindToDeviceResult,
17367        fidl::encoding::DefaultFuchsiaResourceDialect,
17368    >;
17369    fn r#set_bind_to_device(&self, mut value: &str) -> Self::SetBindToDeviceResponseFut {
17370        fn _decode(
17371            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17372        ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
17373            let _response = fidl::client::decode_transaction_body::<
17374                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17375                fidl::encoding::DefaultFuchsiaResourceDialect,
17376                0x2118b483f28aafc4,
17377            >(_buf?)?;
17378            Ok(_response.map(|x| x))
17379        }
17380        self.client.send_query_and_decode::<
17381            BaseSocketSetBindToDeviceRequest,
17382            BaseSocketSetBindToDeviceResult,
17383        >(
17384            (value,),
17385            0x2118b483f28aafc4,
17386            fidl::encoding::DynamicFlags::empty(),
17387            _decode,
17388        )
17389    }
17390
17391    type GetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
17392        BaseSocketGetBindToDeviceResult,
17393        fidl::encoding::DefaultFuchsiaResourceDialect,
17394    >;
17395    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut {
17396        fn _decode(
17397            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17398        ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
17399            let _response = fidl::client::decode_transaction_body::<
17400                fidl::encoding::ResultType<
17401                    BaseSocketGetBindToDeviceResponse,
17402                    fidl_fuchsia_posix::Errno,
17403                >,
17404                fidl::encoding::DefaultFuchsiaResourceDialect,
17405                0x1ab1fbf0ef7906c8,
17406            >(_buf?)?;
17407            Ok(_response.map(|x| x.value))
17408        }
17409        self.client
17410            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBindToDeviceResult>(
17411                (),
17412                0x1ab1fbf0ef7906c8,
17413                fidl::encoding::DynamicFlags::empty(),
17414                _decode,
17415            )
17416    }
17417
17418    type SetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
17419        BaseSocketSetBindToInterfaceIndexResult,
17420        fidl::encoding::DefaultFuchsiaResourceDialect,
17421    >;
17422    fn r#set_bind_to_interface_index(
17423        &self,
17424        mut value: u64,
17425    ) -> Self::SetBindToInterfaceIndexResponseFut {
17426        fn _decode(
17427            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17428        ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
17429            let _response = fidl::client::decode_transaction_body::<
17430                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17431                fidl::encoding::DefaultFuchsiaResourceDialect,
17432                0x6e387a0def00821,
17433            >(_buf?)?;
17434            Ok(_response.map(|x| x))
17435        }
17436        self.client.send_query_and_decode::<
17437            BaseSocketSetBindToInterfaceIndexRequest,
17438            BaseSocketSetBindToInterfaceIndexResult,
17439        >(
17440            (value,),
17441            0x6e387a0def00821,
17442            fidl::encoding::DynamicFlags::empty(),
17443            _decode,
17444        )
17445    }
17446
17447    type GetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
17448        BaseSocketGetBindToInterfaceIndexResult,
17449        fidl::encoding::DefaultFuchsiaResourceDialect,
17450    >;
17451    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut {
17452        fn _decode(
17453            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17454        ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
17455            let _response = fidl::client::decode_transaction_body::<
17456                fidl::encoding::ResultType<
17457                    BaseSocketGetBindToInterfaceIndexResponse,
17458                    fidl_fuchsia_posix::Errno,
17459                >,
17460                fidl::encoding::DefaultFuchsiaResourceDialect,
17461                0x59c31dd3e3078295,
17462            >(_buf?)?;
17463            Ok(_response.map(|x| x.value))
17464        }
17465        self.client.send_query_and_decode::<
17466            fidl::encoding::EmptyPayload,
17467            BaseSocketGetBindToInterfaceIndexResult,
17468        >(
17469            (),
17470            0x59c31dd3e3078295,
17471            fidl::encoding::DynamicFlags::empty(),
17472            _decode,
17473        )
17474    }
17475
17476    type SetTimestampResponseFut = fidl::client::QueryResponseFut<
17477        BaseSocketSetTimestampResult,
17478        fidl::encoding::DefaultFuchsiaResourceDialect,
17479    >;
17480    fn r#set_timestamp(&self, mut value: TimestampOption) -> Self::SetTimestampResponseFut {
17481        fn _decode(
17482            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17483        ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
17484            let _response = fidl::client::decode_transaction_body::<
17485                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17486                fidl::encoding::DefaultFuchsiaResourceDialect,
17487                0x285d6516c263d839,
17488            >(_buf?)?;
17489            Ok(_response.map(|x| x))
17490        }
17491        self.client
17492            .send_query_and_decode::<BaseSocketSetTimestampRequest, BaseSocketSetTimestampResult>(
17493                (value,),
17494                0x285d6516c263d839,
17495                fidl::encoding::DynamicFlags::empty(),
17496                _decode,
17497            )
17498    }
17499
17500    type GetTimestampResponseFut = fidl::client::QueryResponseFut<
17501        BaseSocketGetTimestampResult,
17502        fidl::encoding::DefaultFuchsiaResourceDialect,
17503    >;
17504    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut {
17505        fn _decode(
17506            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17507        ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
17508            let _response = fidl::client::decode_transaction_body::<
17509                fidl::encoding::ResultType<
17510                    BaseSocketGetTimestampResponse,
17511                    fidl_fuchsia_posix::Errno,
17512                >,
17513                fidl::encoding::DefaultFuchsiaResourceDialect,
17514                0x49f2fffbbcc2bd27,
17515            >(_buf?)?;
17516            Ok(_response.map(|x| x.value))
17517        }
17518        self.client
17519            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetTimestampResult>(
17520                (),
17521                0x49f2fffbbcc2bd27,
17522                fidl::encoding::DynamicFlags::empty(),
17523                _decode,
17524            )
17525    }
17526
17527    type SetMarkResponseFut = fidl::client::QueryResponseFut<
17528        BaseSocketSetMarkResult,
17529        fidl::encoding::DefaultFuchsiaResourceDialect,
17530    >;
17531    fn r#set_mark(
17532        &self,
17533        mut domain: fidl_fuchsia_net::MarkDomain,
17534        mut mark: &OptionalUint32,
17535    ) -> Self::SetMarkResponseFut {
17536        fn _decode(
17537            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17538        ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
17539            let _response = fidl::client::decode_transaction_body::<
17540                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17541                fidl::encoding::DefaultFuchsiaResourceDialect,
17542                0x6ead6de09f653236,
17543            >(_buf?)?;
17544            Ok(_response.map(|x| x))
17545        }
17546        self.client.send_query_and_decode::<BaseSocketSetMarkRequest, BaseSocketSetMarkResult>(
17547            (domain, mark),
17548            0x6ead6de09f653236,
17549            fidl::encoding::DynamicFlags::empty(),
17550            _decode,
17551        )
17552    }
17553
17554    type GetMarkResponseFut = fidl::client::QueryResponseFut<
17555        BaseSocketGetMarkResult,
17556        fidl::encoding::DefaultFuchsiaResourceDialect,
17557    >;
17558    fn r#get_mark(&self, mut domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut {
17559        fn _decode(
17560            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17561        ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
17562            let _response = fidl::client::decode_transaction_body::<
17563                fidl::encoding::ResultType<BaseSocketGetMarkResponse, fidl_fuchsia_posix::Errno>,
17564                fidl::encoding::DefaultFuchsiaResourceDialect,
17565                0x57a2752c61d93d47,
17566            >(_buf?)?;
17567            Ok(_response.map(|x| x.mark))
17568        }
17569        self.client.send_query_and_decode::<BaseSocketGetMarkRequest, BaseSocketGetMarkResult>(
17570            (domain,),
17571            0x57a2752c61d93d47,
17572            fidl::encoding::DynamicFlags::empty(),
17573            _decode,
17574        )
17575    }
17576
17577    type GetCookieResponseFut = fidl::client::QueryResponseFut<
17578        BaseSocketGetCookieResult,
17579        fidl::encoding::DefaultFuchsiaResourceDialect,
17580    >;
17581    fn r#get_cookie(&self) -> Self::GetCookieResponseFut {
17582        fn _decode(
17583            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17584        ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
17585            let _response = fidl::client::decode_transaction_body::<
17586                fidl::encoding::ResultType<BaseSocketGetCookieResponse, fidl_fuchsia_posix::Errno>,
17587                fidl::encoding::DefaultFuchsiaResourceDialect,
17588                0x2c2f47fd8f924e52,
17589            >(_buf?)?;
17590            Ok(_response.map(|x| x.value))
17591        }
17592        self.client
17593            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetCookieResult>(
17594                (),
17595                0x2c2f47fd8f924e52,
17596                fidl::encoding::DynamicFlags::empty(),
17597                _decode,
17598            )
17599    }
17600
17601    type BindResponseFut = fidl::client::QueryResponseFut<
17602        BaseNetworkSocketBindResult,
17603        fidl::encoding::DefaultFuchsiaResourceDialect,
17604    >;
17605    fn r#bind(&self, mut addr: &fidl_fuchsia_net::SocketAddress) -> Self::BindResponseFut {
17606        fn _decode(
17607            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17608        ) -> Result<BaseNetworkSocketBindResult, fidl::Error> {
17609            let _response = fidl::client::decode_transaction_body::<
17610                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17611                fidl::encoding::DefaultFuchsiaResourceDialect,
17612                0x4bc6400ae92125d,
17613            >(_buf?)?;
17614            Ok(_response.map(|x| x))
17615        }
17616        self.client
17617            .send_query_and_decode::<BaseNetworkSocketBindRequest, BaseNetworkSocketBindResult>(
17618                (addr,),
17619                0x4bc6400ae92125d,
17620                fidl::encoding::DynamicFlags::empty(),
17621                _decode,
17622            )
17623    }
17624
17625    type ConnectResponseFut = fidl::client::QueryResponseFut<
17626        BaseNetworkSocketConnectResult,
17627        fidl::encoding::DefaultFuchsiaResourceDialect,
17628    >;
17629    fn r#connect(&self, mut addr: &fidl_fuchsia_net::SocketAddress) -> Self::ConnectResponseFut {
17630        fn _decode(
17631            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17632        ) -> Result<BaseNetworkSocketConnectResult, fidl::Error> {
17633            let _response = fidl::client::decode_transaction_body::<
17634                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17635                fidl::encoding::DefaultFuchsiaResourceDialect,
17636                0x5f05f19bfdd38871,
17637            >(_buf?)?;
17638            Ok(_response.map(|x| x))
17639        }
17640        self.client.send_query_and_decode::<
17641            BaseNetworkSocketConnectRequest,
17642            BaseNetworkSocketConnectResult,
17643        >(
17644            (addr,),
17645            0x5f05f19bfdd38871,
17646            fidl::encoding::DynamicFlags::empty(),
17647            _decode,
17648        )
17649    }
17650
17651    type DisconnectResponseFut = fidl::client::QueryResponseFut<
17652        BaseNetworkSocketDisconnectResult,
17653        fidl::encoding::DefaultFuchsiaResourceDialect,
17654    >;
17655    fn r#disconnect(&self) -> Self::DisconnectResponseFut {
17656        fn _decode(
17657            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17658        ) -> Result<BaseNetworkSocketDisconnectResult, fidl::Error> {
17659            let _response = fidl::client::decode_transaction_body::<
17660                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17661                fidl::encoding::DefaultFuchsiaResourceDialect,
17662                0x74e63b91f7b29b2,
17663            >(_buf?)?;
17664            Ok(_response.map(|x| x))
17665        }
17666        self.client.send_query_and_decode::<
17667            fidl::encoding::EmptyPayload,
17668            BaseNetworkSocketDisconnectResult,
17669        >(
17670            (),
17671            0x74e63b91f7b29b2,
17672            fidl::encoding::DynamicFlags::empty(),
17673            _decode,
17674        )
17675    }
17676
17677    type GetSockNameResponseFut = fidl::client::QueryResponseFut<
17678        BaseNetworkSocketGetSockNameResult,
17679        fidl::encoding::DefaultFuchsiaResourceDialect,
17680    >;
17681    fn r#get_sock_name(&self) -> Self::GetSockNameResponseFut {
17682        fn _decode(
17683            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17684        ) -> Result<BaseNetworkSocketGetSockNameResult, fidl::Error> {
17685            let _response = fidl::client::decode_transaction_body::<
17686                fidl::encoding::ResultType<
17687                    BaseNetworkSocketGetSockNameResponse,
17688                    fidl_fuchsia_posix::Errno,
17689                >,
17690                fidl::encoding::DefaultFuchsiaResourceDialect,
17691                0x475f23f84a1a4f85,
17692            >(_buf?)?;
17693            Ok(_response.map(|x| x.addr))
17694        }
17695        self.client.send_query_and_decode::<
17696            fidl::encoding::EmptyPayload,
17697            BaseNetworkSocketGetSockNameResult,
17698        >(
17699            (),
17700            0x475f23f84a1a4f85,
17701            fidl::encoding::DynamicFlags::empty(),
17702            _decode,
17703        )
17704    }
17705
17706    type GetPeerNameResponseFut = fidl::client::QueryResponseFut<
17707        BaseNetworkSocketGetPeerNameResult,
17708        fidl::encoding::DefaultFuchsiaResourceDialect,
17709    >;
17710    fn r#get_peer_name(&self) -> Self::GetPeerNameResponseFut {
17711        fn _decode(
17712            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17713        ) -> Result<BaseNetworkSocketGetPeerNameResult, fidl::Error> {
17714            let _response = fidl::client::decode_transaction_body::<
17715                fidl::encoding::ResultType<
17716                    BaseNetworkSocketGetPeerNameResponse,
17717                    fidl_fuchsia_posix::Errno,
17718                >,
17719                fidl::encoding::DefaultFuchsiaResourceDialect,
17720                0x1ffecf4bd5b6432e,
17721            >(_buf?)?;
17722            Ok(_response.map(|x| x.addr))
17723        }
17724        self.client.send_query_and_decode::<
17725            fidl::encoding::EmptyPayload,
17726            BaseNetworkSocketGetPeerNameResult,
17727        >(
17728            (),
17729            0x1ffecf4bd5b6432e,
17730            fidl::encoding::DynamicFlags::empty(),
17731            _decode,
17732        )
17733    }
17734
17735    type ShutdownResponseFut = fidl::client::QueryResponseFut<
17736        BaseNetworkSocketShutdownResult,
17737        fidl::encoding::DefaultFuchsiaResourceDialect,
17738    >;
17739    fn r#shutdown(&self, mut mode: ShutdownMode) -> Self::ShutdownResponseFut {
17740        fn _decode(
17741            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17742        ) -> Result<BaseNetworkSocketShutdownResult, fidl::Error> {
17743            let _response = fidl::client::decode_transaction_body::<
17744                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17745                fidl::encoding::DefaultFuchsiaResourceDialect,
17746                0x247f38b6db68c336,
17747            >(_buf?)?;
17748            Ok(_response.map(|x| x))
17749        }
17750        self.client.send_query_and_decode::<
17751            BaseNetworkSocketShutdownRequest,
17752            BaseNetworkSocketShutdownResult,
17753        >(
17754            (mode,),
17755            0x247f38b6db68c336,
17756            fidl::encoding::DynamicFlags::empty(),
17757            _decode,
17758        )
17759    }
17760
17761    type SetIpTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
17762        BaseNetworkSocketSetIpTypeOfServiceResult,
17763        fidl::encoding::DefaultFuchsiaResourceDialect,
17764    >;
17765    fn r#set_ip_type_of_service(&self, mut value: u8) -> Self::SetIpTypeOfServiceResponseFut {
17766        fn _decode(
17767            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17768        ) -> Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error> {
17769            let _response = fidl::client::decode_transaction_body::<
17770                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17771                fidl::encoding::DefaultFuchsiaResourceDialect,
17772                0x995c600475b6d46,
17773            >(_buf?)?;
17774            Ok(_response.map(|x| x))
17775        }
17776        self.client.send_query_and_decode::<
17777            BaseNetworkSocketSetIpTypeOfServiceRequest,
17778            BaseNetworkSocketSetIpTypeOfServiceResult,
17779        >(
17780            (value,),
17781            0x995c600475b6d46,
17782            fidl::encoding::DynamicFlags::empty(),
17783            _decode,
17784        )
17785    }
17786
17787    type GetIpTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
17788        BaseNetworkSocketGetIpTypeOfServiceResult,
17789        fidl::encoding::DefaultFuchsiaResourceDialect,
17790    >;
17791    fn r#get_ip_type_of_service(&self) -> Self::GetIpTypeOfServiceResponseFut {
17792        fn _decode(
17793            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17794        ) -> Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error> {
17795            let _response = fidl::client::decode_transaction_body::<
17796                fidl::encoding::ResultType<
17797                    BaseNetworkSocketGetIpTypeOfServiceResponse,
17798                    fidl_fuchsia_posix::Errno,
17799                >,
17800                fidl::encoding::DefaultFuchsiaResourceDialect,
17801                0x3814a04259f75fcb,
17802            >(_buf?)?;
17803            Ok(_response.map(|x| x.value))
17804        }
17805        self.client.send_query_and_decode::<
17806            fidl::encoding::EmptyPayload,
17807            BaseNetworkSocketGetIpTypeOfServiceResult,
17808        >(
17809            (),
17810            0x3814a04259f75fcb,
17811            fidl::encoding::DynamicFlags::empty(),
17812            _decode,
17813        )
17814    }
17815
17816    type SetIpTtlResponseFut = fidl::client::QueryResponseFut<
17817        BaseNetworkSocketSetIpTtlResult,
17818        fidl::encoding::DefaultFuchsiaResourceDialect,
17819    >;
17820    fn r#set_ip_ttl(&self, mut value: &OptionalUint8) -> Self::SetIpTtlResponseFut {
17821        fn _decode(
17822            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17823        ) -> Result<BaseNetworkSocketSetIpTtlResult, fidl::Error> {
17824            let _response = fidl::client::decode_transaction_body::<
17825                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17826                fidl::encoding::DefaultFuchsiaResourceDialect,
17827                0x29e2424b433ae1ef,
17828            >(_buf?)?;
17829            Ok(_response.map(|x| x))
17830        }
17831        self.client.send_query_and_decode::<
17832            BaseNetworkSocketSetIpTtlRequest,
17833            BaseNetworkSocketSetIpTtlResult,
17834        >(
17835            (value,),
17836            0x29e2424b433ae1ef,
17837            fidl::encoding::DynamicFlags::empty(),
17838            _decode,
17839        )
17840    }
17841
17842    type GetIpTtlResponseFut = fidl::client::QueryResponseFut<
17843        BaseNetworkSocketGetIpTtlResult,
17844        fidl::encoding::DefaultFuchsiaResourceDialect,
17845    >;
17846    fn r#get_ip_ttl(&self) -> Self::GetIpTtlResponseFut {
17847        fn _decode(
17848            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17849        ) -> Result<BaseNetworkSocketGetIpTtlResult, fidl::Error> {
17850            let _response = fidl::client::decode_transaction_body::<
17851                fidl::encoding::ResultType<
17852                    BaseNetworkSocketGetIpTtlResponse,
17853                    fidl_fuchsia_posix::Errno,
17854                >,
17855                fidl::encoding::DefaultFuchsiaResourceDialect,
17856                0x47e47fa1f24da471,
17857            >(_buf?)?;
17858            Ok(_response.map(|x| x.value))
17859        }
17860        self.client
17861            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseNetworkSocketGetIpTtlResult>(
17862                (),
17863                0x47e47fa1f24da471,
17864                fidl::encoding::DynamicFlags::empty(),
17865                _decode,
17866            )
17867    }
17868
17869    type SetIpPacketInfoResponseFut = fidl::client::QueryResponseFut<
17870        BaseNetworkSocketSetIpPacketInfoResult,
17871        fidl::encoding::DefaultFuchsiaResourceDialect,
17872    >;
17873    fn r#set_ip_packet_info(&self, mut value: bool) -> Self::SetIpPacketInfoResponseFut {
17874        fn _decode(
17875            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17876        ) -> Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error> {
17877            let _response = fidl::client::decode_transaction_body::<
17878                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17879                fidl::encoding::DefaultFuchsiaResourceDialect,
17880                0x392d16bee20c0e16,
17881            >(_buf?)?;
17882            Ok(_response.map(|x| x))
17883        }
17884        self.client.send_query_and_decode::<
17885            BaseNetworkSocketSetIpPacketInfoRequest,
17886            BaseNetworkSocketSetIpPacketInfoResult,
17887        >(
17888            (value,),
17889            0x392d16bee20c0e16,
17890            fidl::encoding::DynamicFlags::empty(),
17891            _decode,
17892        )
17893    }
17894
17895    type GetIpPacketInfoResponseFut = fidl::client::QueryResponseFut<
17896        BaseNetworkSocketGetIpPacketInfoResult,
17897        fidl::encoding::DefaultFuchsiaResourceDialect,
17898    >;
17899    fn r#get_ip_packet_info(&self) -> Self::GetIpPacketInfoResponseFut {
17900        fn _decode(
17901            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17902        ) -> Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error> {
17903            let _response = fidl::client::decode_transaction_body::<
17904                fidl::encoding::ResultType<
17905                    BaseNetworkSocketGetIpPacketInfoResponse,
17906                    fidl_fuchsia_posix::Errno,
17907                >,
17908                fidl::encoding::DefaultFuchsiaResourceDialect,
17909                0x54b505f242280740,
17910            >(_buf?)?;
17911            Ok(_response.map(|x| x.value))
17912        }
17913        self.client.send_query_and_decode::<
17914            fidl::encoding::EmptyPayload,
17915            BaseNetworkSocketGetIpPacketInfoResult,
17916        >(
17917            (),
17918            0x54b505f242280740,
17919            fidl::encoding::DynamicFlags::empty(),
17920            _decode,
17921        )
17922    }
17923
17924    type SetIpReceiveTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
17925        BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
17926        fidl::encoding::DefaultFuchsiaResourceDialect,
17927    >;
17928    fn r#set_ip_receive_type_of_service(
17929        &self,
17930        mut value: bool,
17931    ) -> Self::SetIpReceiveTypeOfServiceResponseFut {
17932        fn _decode(
17933            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17934        ) -> Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error> {
17935            let _response = fidl::client::decode_transaction_body::<
17936                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17937                fidl::encoding::DefaultFuchsiaResourceDialect,
17938                0x6c4f6714995f84ef,
17939            >(_buf?)?;
17940            Ok(_response.map(|x| x))
17941        }
17942        self.client.send_query_and_decode::<
17943            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
17944            BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
17945        >(
17946            (value,),
17947            0x6c4f6714995f84ef,
17948            fidl::encoding::DynamicFlags::empty(),
17949            _decode,
17950        )
17951    }
17952
17953    type GetIpReceiveTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
17954        BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
17955        fidl::encoding::DefaultFuchsiaResourceDialect,
17956    >;
17957    fn r#get_ip_receive_type_of_service(&self) -> Self::GetIpReceiveTypeOfServiceResponseFut {
17958        fn _decode(
17959            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17960        ) -> Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error> {
17961            let _response = fidl::client::decode_transaction_body::<
17962                fidl::encoding::ResultType<
17963                    BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
17964                    fidl_fuchsia_posix::Errno,
17965                >,
17966                fidl::encoding::DefaultFuchsiaResourceDialect,
17967                0x4158ba7dc2795960,
17968            >(_buf?)?;
17969            Ok(_response.map(|x| x.value))
17970        }
17971        self.client.send_query_and_decode::<
17972            fidl::encoding::EmptyPayload,
17973            BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
17974        >(
17975            (),
17976            0x4158ba7dc2795960,
17977            fidl::encoding::DynamicFlags::empty(),
17978            _decode,
17979        )
17980    }
17981
17982    type SetIpReceiveTtlResponseFut = fidl::client::QueryResponseFut<
17983        BaseNetworkSocketSetIpReceiveTtlResult,
17984        fidl::encoding::DefaultFuchsiaResourceDialect,
17985    >;
17986    fn r#set_ip_receive_ttl(&self, mut value: bool) -> Self::SetIpReceiveTtlResponseFut {
17987        fn _decode(
17988            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17989        ) -> Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error> {
17990            let _response = fidl::client::decode_transaction_body::<
17991                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17992                fidl::encoding::DefaultFuchsiaResourceDialect,
17993                0x46f15be0ce0ab82b,
17994            >(_buf?)?;
17995            Ok(_response.map(|x| x))
17996        }
17997        self.client.send_query_and_decode::<
17998            BaseNetworkSocketSetIpReceiveTtlRequest,
17999            BaseNetworkSocketSetIpReceiveTtlResult,
18000        >(
18001            (value,),
18002            0x46f15be0ce0ab82b,
18003            fidl::encoding::DynamicFlags::empty(),
18004            _decode,
18005        )
18006    }
18007
18008    type GetIpReceiveTtlResponseFut = fidl::client::QueryResponseFut<
18009        BaseNetworkSocketGetIpReceiveTtlResult,
18010        fidl::encoding::DefaultFuchsiaResourceDialect,
18011    >;
18012    fn r#get_ip_receive_ttl(&self) -> Self::GetIpReceiveTtlResponseFut {
18013        fn _decode(
18014            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18015        ) -> Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error> {
18016            let _response = fidl::client::decode_transaction_body::<
18017                fidl::encoding::ResultType<
18018                    BaseNetworkSocketGetIpReceiveTtlResponse,
18019                    fidl_fuchsia_posix::Errno,
18020                >,
18021                fidl::encoding::DefaultFuchsiaResourceDialect,
18022                0x678ddd5a5dfa2eb5,
18023            >(_buf?)?;
18024            Ok(_response.map(|x| x.value))
18025        }
18026        self.client.send_query_and_decode::<
18027            fidl::encoding::EmptyPayload,
18028            BaseNetworkSocketGetIpReceiveTtlResult,
18029        >(
18030            (),
18031            0x678ddd5a5dfa2eb5,
18032            fidl::encoding::DynamicFlags::empty(),
18033            _decode,
18034        )
18035    }
18036
18037    type SetIpMulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
18038        BaseNetworkSocketSetIpMulticastInterfaceResult,
18039        fidl::encoding::DefaultFuchsiaResourceDialect,
18040    >;
18041    fn r#set_ip_multicast_interface(
18042        &self,
18043        mut iface: u64,
18044        mut address: &fidl_fuchsia_net::Ipv4Address,
18045    ) -> Self::SetIpMulticastInterfaceResponseFut {
18046        fn _decode(
18047            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18048        ) -> Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error> {
18049            let _response = fidl::client::decode_transaction_body::<
18050                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18051                fidl::encoding::DefaultFuchsiaResourceDialect,
18052                0x752fbfa9b12befe,
18053            >(_buf?)?;
18054            Ok(_response.map(|x| x))
18055        }
18056        self.client.send_query_and_decode::<
18057            BaseNetworkSocketSetIpMulticastInterfaceRequest,
18058            BaseNetworkSocketSetIpMulticastInterfaceResult,
18059        >(
18060            (iface, address,),
18061            0x752fbfa9b12befe,
18062            fidl::encoding::DynamicFlags::empty(),
18063            _decode,
18064        )
18065    }
18066
18067    type GetIpMulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
18068        BaseNetworkSocketGetIpMulticastInterfaceResult,
18069        fidl::encoding::DefaultFuchsiaResourceDialect,
18070    >;
18071    fn r#get_ip_multicast_interface(&self) -> Self::GetIpMulticastInterfaceResponseFut {
18072        fn _decode(
18073            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18074        ) -> Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error> {
18075            let _response = fidl::client::decode_transaction_body::<
18076                fidl::encoding::ResultType<
18077                    BaseNetworkSocketGetIpMulticastInterfaceResponse,
18078                    fidl_fuchsia_posix::Errno,
18079                >,
18080                fidl::encoding::DefaultFuchsiaResourceDialect,
18081                0x320bd14c4df046c4,
18082            >(_buf?)?;
18083            Ok(_response.map(|x| x.value))
18084        }
18085        self.client.send_query_and_decode::<
18086            fidl::encoding::EmptyPayload,
18087            BaseNetworkSocketGetIpMulticastInterfaceResult,
18088        >(
18089            (),
18090            0x320bd14c4df046c4,
18091            fidl::encoding::DynamicFlags::empty(),
18092            _decode,
18093        )
18094    }
18095
18096    type SetIpMulticastTtlResponseFut = fidl::client::QueryResponseFut<
18097        BaseNetworkSocketSetIpMulticastTtlResult,
18098        fidl::encoding::DefaultFuchsiaResourceDialect,
18099    >;
18100    fn r#set_ip_multicast_ttl(
18101        &self,
18102        mut value: &OptionalUint8,
18103    ) -> Self::SetIpMulticastTtlResponseFut {
18104        fn _decode(
18105            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18106        ) -> Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error> {
18107            let _response = fidl::client::decode_transaction_body::<
18108                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18109                fidl::encoding::DefaultFuchsiaResourceDialect,
18110                0x63134d53772916a1,
18111            >(_buf?)?;
18112            Ok(_response.map(|x| x))
18113        }
18114        self.client.send_query_and_decode::<
18115            BaseNetworkSocketSetIpMulticastTtlRequest,
18116            BaseNetworkSocketSetIpMulticastTtlResult,
18117        >(
18118            (value,),
18119            0x63134d53772916a1,
18120            fidl::encoding::DynamicFlags::empty(),
18121            _decode,
18122        )
18123    }
18124
18125    type GetIpMulticastTtlResponseFut = fidl::client::QueryResponseFut<
18126        BaseNetworkSocketGetIpMulticastTtlResult,
18127        fidl::encoding::DefaultFuchsiaResourceDialect,
18128    >;
18129    fn r#get_ip_multicast_ttl(&self) -> Self::GetIpMulticastTtlResponseFut {
18130        fn _decode(
18131            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18132        ) -> Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error> {
18133            let _response = fidl::client::decode_transaction_body::<
18134                fidl::encoding::ResultType<
18135                    BaseNetworkSocketGetIpMulticastTtlResponse,
18136                    fidl_fuchsia_posix::Errno,
18137                >,
18138                fidl::encoding::DefaultFuchsiaResourceDialect,
18139                0x4665cd378f39e1a,
18140            >(_buf?)?;
18141            Ok(_response.map(|x| x.value))
18142        }
18143        self.client.send_query_and_decode::<
18144            fidl::encoding::EmptyPayload,
18145            BaseNetworkSocketGetIpMulticastTtlResult,
18146        >(
18147            (),
18148            0x4665cd378f39e1a,
18149            fidl::encoding::DynamicFlags::empty(),
18150            _decode,
18151        )
18152    }
18153
18154    type SetIpMulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
18155        BaseNetworkSocketSetIpMulticastLoopbackResult,
18156        fidl::encoding::DefaultFuchsiaResourceDialect,
18157    >;
18158    fn r#set_ip_multicast_loopback(
18159        &self,
18160        mut value: bool,
18161    ) -> Self::SetIpMulticastLoopbackResponseFut {
18162        fn _decode(
18163            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18164        ) -> Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error> {
18165            let _response = fidl::client::decode_transaction_body::<
18166                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18167                fidl::encoding::DefaultFuchsiaResourceDialect,
18168                0x20c55c11f00943ea,
18169            >(_buf?)?;
18170            Ok(_response.map(|x| x))
18171        }
18172        self.client.send_query_and_decode::<
18173            BaseNetworkSocketSetIpMulticastLoopbackRequest,
18174            BaseNetworkSocketSetIpMulticastLoopbackResult,
18175        >(
18176            (value,),
18177            0x20c55c11f00943ea,
18178            fidl::encoding::DynamicFlags::empty(),
18179            _decode,
18180        )
18181    }
18182
18183    type GetIpMulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
18184        BaseNetworkSocketGetIpMulticastLoopbackResult,
18185        fidl::encoding::DefaultFuchsiaResourceDialect,
18186    >;
18187    fn r#get_ip_multicast_loopback(&self) -> Self::GetIpMulticastLoopbackResponseFut {
18188        fn _decode(
18189            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18190        ) -> Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error> {
18191            let _response = fidl::client::decode_transaction_body::<
18192                fidl::encoding::ResultType<
18193                    BaseNetworkSocketGetIpMulticastLoopbackResponse,
18194                    fidl_fuchsia_posix::Errno,
18195                >,
18196                fidl::encoding::DefaultFuchsiaResourceDialect,
18197                0x3b6b26ff558298f2,
18198            >(_buf?)?;
18199            Ok(_response.map(|x| x.value))
18200        }
18201        self.client.send_query_and_decode::<
18202            fidl::encoding::EmptyPayload,
18203            BaseNetworkSocketGetIpMulticastLoopbackResult,
18204        >(
18205            (),
18206            0x3b6b26ff558298f2,
18207            fidl::encoding::DynamicFlags::empty(),
18208            _decode,
18209        )
18210    }
18211
18212    type AddIpMembershipResponseFut = fidl::client::QueryResponseFut<
18213        BaseNetworkSocketAddIpMembershipResult,
18214        fidl::encoding::DefaultFuchsiaResourceDialect,
18215    >;
18216    fn r#add_ip_membership(
18217        &self,
18218        mut membership: &IpMulticastMembership,
18219    ) -> Self::AddIpMembershipResponseFut {
18220        fn _decode(
18221            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18222        ) -> Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error> {
18223            let _response = fidl::client::decode_transaction_body::<
18224                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18225                fidl::encoding::DefaultFuchsiaResourceDialect,
18226                0x76bc7df115a3b4d0,
18227            >(_buf?)?;
18228            Ok(_response.map(|x| x))
18229        }
18230        self.client.send_query_and_decode::<
18231            BaseNetworkSocketAddIpMembershipRequest,
18232            BaseNetworkSocketAddIpMembershipResult,
18233        >(
18234            (membership,),
18235            0x76bc7df115a3b4d0,
18236            fidl::encoding::DynamicFlags::empty(),
18237            _decode,
18238        )
18239    }
18240
18241    type DropIpMembershipResponseFut = fidl::client::QueryResponseFut<
18242        BaseNetworkSocketDropIpMembershipResult,
18243        fidl::encoding::DefaultFuchsiaResourceDialect,
18244    >;
18245    fn r#drop_ip_membership(
18246        &self,
18247        mut membership: &IpMulticastMembership,
18248    ) -> Self::DropIpMembershipResponseFut {
18249        fn _decode(
18250            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18251        ) -> Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error> {
18252            let _response = fidl::client::decode_transaction_body::<
18253                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18254                fidl::encoding::DefaultFuchsiaResourceDialect,
18255                0x2888f3099188d03,
18256            >(_buf?)?;
18257            Ok(_response.map(|x| x))
18258        }
18259        self.client.send_query_and_decode::<
18260            BaseNetworkSocketDropIpMembershipRequest,
18261            BaseNetworkSocketDropIpMembershipResult,
18262        >(
18263            (membership,),
18264            0x2888f3099188d03,
18265            fidl::encoding::DynamicFlags::empty(),
18266            _decode,
18267        )
18268    }
18269
18270    type SetIpTransparentResponseFut = fidl::client::QueryResponseFut<
18271        BaseNetworkSocketSetIpTransparentResult,
18272        fidl::encoding::DefaultFuchsiaResourceDialect,
18273    >;
18274    fn r#set_ip_transparent(&self, mut value: bool) -> Self::SetIpTransparentResponseFut {
18275        fn _decode(
18276            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18277        ) -> Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error> {
18278            let _response = fidl::client::decode_transaction_body::<
18279                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18280                fidl::encoding::DefaultFuchsiaResourceDialect,
18281                0x1ae532b0c066e3a0,
18282            >(_buf?)?;
18283            Ok(_response.map(|x| x))
18284        }
18285        self.client.send_query_and_decode::<
18286            BaseNetworkSocketSetIpTransparentRequest,
18287            BaseNetworkSocketSetIpTransparentResult,
18288        >(
18289            (value,),
18290            0x1ae532b0c066e3a0,
18291            fidl::encoding::DynamicFlags::empty(),
18292            _decode,
18293        )
18294    }
18295
18296    type GetIpTransparentResponseFut = fidl::client::QueryResponseFut<
18297        BaseNetworkSocketGetIpTransparentResult,
18298        fidl::encoding::DefaultFuchsiaResourceDialect,
18299    >;
18300    fn r#get_ip_transparent(&self) -> Self::GetIpTransparentResponseFut {
18301        fn _decode(
18302            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18303        ) -> Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error> {
18304            let _response = fidl::client::decode_transaction_body::<
18305                fidl::encoding::ResultType<
18306                    BaseNetworkSocketGetIpTransparentResponse,
18307                    fidl_fuchsia_posix::Errno,
18308                >,
18309                fidl::encoding::DefaultFuchsiaResourceDialect,
18310                0x51d43695962ebfb5,
18311            >(_buf?)?;
18312            Ok(_response.map(|x| x.value))
18313        }
18314        self.client.send_query_and_decode::<
18315            fidl::encoding::EmptyPayload,
18316            BaseNetworkSocketGetIpTransparentResult,
18317        >(
18318            (),
18319            0x51d43695962ebfb5,
18320            fidl::encoding::DynamicFlags::empty(),
18321            _decode,
18322        )
18323    }
18324
18325    type SetIpReceiveOriginalDestinationAddressResponseFut = fidl::client::QueryResponseFut<
18326        BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
18327        fidl::encoding::DefaultFuchsiaResourceDialect,
18328    >;
18329    fn r#set_ip_receive_original_destination_address(
18330        &self,
18331        mut value: bool,
18332    ) -> Self::SetIpReceiveOriginalDestinationAddressResponseFut {
18333        fn _decode(
18334            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18335        ) -> Result<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult, fidl::Error>
18336        {
18337            let _response = fidl::client::decode_transaction_body::<
18338                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18339                fidl::encoding::DefaultFuchsiaResourceDialect,
18340                0x4722b4ce52f7840,
18341            >(_buf?)?;
18342            Ok(_response.map(|x| x))
18343        }
18344        self.client.send_query_and_decode::<
18345            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
18346            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
18347        >(
18348            (value,),
18349            0x4722b4ce52f7840,
18350            fidl::encoding::DynamicFlags::empty(),
18351            _decode,
18352        )
18353    }
18354
18355    type GetIpReceiveOriginalDestinationAddressResponseFut = fidl::client::QueryResponseFut<
18356        BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
18357        fidl::encoding::DefaultFuchsiaResourceDialect,
18358    >;
18359    fn r#get_ip_receive_original_destination_address(
18360        &self,
18361    ) -> Self::GetIpReceiveOriginalDestinationAddressResponseFut {
18362        fn _decode(
18363            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18364        ) -> Result<BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult, fidl::Error>
18365        {
18366            let _response = fidl::client::decode_transaction_body::<
18367                fidl::encoding::ResultType<
18368                    BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
18369                    fidl_fuchsia_posix::Errno,
18370                >,
18371                fidl::encoding::DefaultFuchsiaResourceDialect,
18372                0x2a0e7dc5d6bfdfe9,
18373            >(_buf?)?;
18374            Ok(_response.map(|x| x.value))
18375        }
18376        self.client.send_query_and_decode::<
18377            fidl::encoding::EmptyPayload,
18378            BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
18379        >(
18380            (),
18381            0x2a0e7dc5d6bfdfe9,
18382            fidl::encoding::DynamicFlags::empty(),
18383            _decode,
18384        )
18385    }
18386
18387    type AddIpv6MembershipResponseFut = fidl::client::QueryResponseFut<
18388        BaseNetworkSocketAddIpv6MembershipResult,
18389        fidl::encoding::DefaultFuchsiaResourceDialect,
18390    >;
18391    fn r#add_ipv6_membership(
18392        &self,
18393        mut membership: &Ipv6MulticastMembership,
18394    ) -> Self::AddIpv6MembershipResponseFut {
18395        fn _decode(
18396            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18397        ) -> Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error> {
18398            let _response = fidl::client::decode_transaction_body::<
18399                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18400                fidl::encoding::DefaultFuchsiaResourceDialect,
18401                0x7c94727acb4ea4b3,
18402            >(_buf?)?;
18403            Ok(_response.map(|x| x))
18404        }
18405        self.client.send_query_and_decode::<
18406            BaseNetworkSocketAddIpv6MembershipRequest,
18407            BaseNetworkSocketAddIpv6MembershipResult,
18408        >(
18409            (membership,),
18410            0x7c94727acb4ea4b3,
18411            fidl::encoding::DynamicFlags::empty(),
18412            _decode,
18413        )
18414    }
18415
18416    type DropIpv6MembershipResponseFut = fidl::client::QueryResponseFut<
18417        BaseNetworkSocketDropIpv6MembershipResult,
18418        fidl::encoding::DefaultFuchsiaResourceDialect,
18419    >;
18420    fn r#drop_ipv6_membership(
18421        &self,
18422        mut membership: &Ipv6MulticastMembership,
18423    ) -> Self::DropIpv6MembershipResponseFut {
18424        fn _decode(
18425            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18426        ) -> Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error> {
18427            let _response = fidl::client::decode_transaction_body::<
18428                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18429                fidl::encoding::DefaultFuchsiaResourceDialect,
18430                0x42104c70ccaba304,
18431            >(_buf?)?;
18432            Ok(_response.map(|x| x))
18433        }
18434        self.client.send_query_and_decode::<
18435            BaseNetworkSocketDropIpv6MembershipRequest,
18436            BaseNetworkSocketDropIpv6MembershipResult,
18437        >(
18438            (membership,),
18439            0x42104c70ccaba304,
18440            fidl::encoding::DynamicFlags::empty(),
18441            _decode,
18442        )
18443    }
18444
18445    type SetIpv6MulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
18446        BaseNetworkSocketSetIpv6MulticastInterfaceResult,
18447        fidl::encoding::DefaultFuchsiaResourceDialect,
18448    >;
18449    fn r#set_ipv6_multicast_interface(
18450        &self,
18451        mut value: u64,
18452    ) -> Self::SetIpv6MulticastInterfaceResponseFut {
18453        fn _decode(
18454            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18455        ) -> Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error> {
18456            let _response = fidl::client::decode_transaction_body::<
18457                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18458                fidl::encoding::DefaultFuchsiaResourceDialect,
18459                0x135f76db3774ab3b,
18460            >(_buf?)?;
18461            Ok(_response.map(|x| x))
18462        }
18463        self.client.send_query_and_decode::<
18464            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
18465            BaseNetworkSocketSetIpv6MulticastInterfaceResult,
18466        >(
18467            (value,),
18468            0x135f76db3774ab3b,
18469            fidl::encoding::DynamicFlags::empty(),
18470            _decode,
18471        )
18472    }
18473
18474    type GetIpv6MulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
18475        BaseNetworkSocketGetIpv6MulticastInterfaceResult,
18476        fidl::encoding::DefaultFuchsiaResourceDialect,
18477    >;
18478    fn r#get_ipv6_multicast_interface(&self) -> Self::GetIpv6MulticastInterfaceResponseFut {
18479        fn _decode(
18480            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18481        ) -> Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error> {
18482            let _response = fidl::client::decode_transaction_body::<
18483                fidl::encoding::ResultType<
18484                    BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
18485                    fidl_fuchsia_posix::Errno,
18486                >,
18487                fidl::encoding::DefaultFuchsiaResourceDialect,
18488                0x1f26fcdd348f1882,
18489            >(_buf?)?;
18490            Ok(_response.map(|x| x.value))
18491        }
18492        self.client.send_query_and_decode::<
18493            fidl::encoding::EmptyPayload,
18494            BaseNetworkSocketGetIpv6MulticastInterfaceResult,
18495        >(
18496            (),
18497            0x1f26fcdd348f1882,
18498            fidl::encoding::DynamicFlags::empty(),
18499            _decode,
18500        )
18501    }
18502
18503    type SetIpv6UnicastHopsResponseFut = fidl::client::QueryResponseFut<
18504        BaseNetworkSocketSetIpv6UnicastHopsResult,
18505        fidl::encoding::DefaultFuchsiaResourceDialect,
18506    >;
18507    fn r#set_ipv6_unicast_hops(
18508        &self,
18509        mut value: &OptionalUint8,
18510    ) -> Self::SetIpv6UnicastHopsResponseFut {
18511        fn _decode(
18512            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18513        ) -> Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error> {
18514            let _response = fidl::client::decode_transaction_body::<
18515                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18516                fidl::encoding::DefaultFuchsiaResourceDialect,
18517                0x157d51e98f462859,
18518            >(_buf?)?;
18519            Ok(_response.map(|x| x))
18520        }
18521        self.client.send_query_and_decode::<
18522            BaseNetworkSocketSetIpv6UnicastHopsRequest,
18523            BaseNetworkSocketSetIpv6UnicastHopsResult,
18524        >(
18525            (value,),
18526            0x157d51e98f462859,
18527            fidl::encoding::DynamicFlags::empty(),
18528            _decode,
18529        )
18530    }
18531
18532    type GetIpv6UnicastHopsResponseFut = fidl::client::QueryResponseFut<
18533        BaseNetworkSocketGetIpv6UnicastHopsResult,
18534        fidl::encoding::DefaultFuchsiaResourceDialect,
18535    >;
18536    fn r#get_ipv6_unicast_hops(&self) -> Self::GetIpv6UnicastHopsResponseFut {
18537        fn _decode(
18538            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18539        ) -> Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error> {
18540            let _response = fidl::client::decode_transaction_body::<
18541                fidl::encoding::ResultType<
18542                    BaseNetworkSocketGetIpv6UnicastHopsResponse,
18543                    fidl_fuchsia_posix::Errno,
18544                >,
18545                fidl::encoding::DefaultFuchsiaResourceDialect,
18546                0x21f4641cad8bd8d2,
18547            >(_buf?)?;
18548            Ok(_response.map(|x| x.value))
18549        }
18550        self.client.send_query_and_decode::<
18551            fidl::encoding::EmptyPayload,
18552            BaseNetworkSocketGetIpv6UnicastHopsResult,
18553        >(
18554            (),
18555            0x21f4641cad8bd8d2,
18556            fidl::encoding::DynamicFlags::empty(),
18557            _decode,
18558        )
18559    }
18560
18561    type SetIpv6ReceiveHopLimitResponseFut = fidl::client::QueryResponseFut<
18562        BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
18563        fidl::encoding::DefaultFuchsiaResourceDialect,
18564    >;
18565    fn r#set_ipv6_receive_hop_limit(
18566        &self,
18567        mut value: bool,
18568    ) -> Self::SetIpv6ReceiveHopLimitResponseFut {
18569        fn _decode(
18570            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18571        ) -> Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error> {
18572            let _response = fidl::client::decode_transaction_body::<
18573                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18574                fidl::encoding::DefaultFuchsiaResourceDialect,
18575                0x5c24808ed2e84a1e,
18576            >(_buf?)?;
18577            Ok(_response.map(|x| x))
18578        }
18579        self.client.send_query_and_decode::<
18580            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
18581            BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
18582        >(
18583            (value,),
18584            0x5c24808ed2e84a1e,
18585            fidl::encoding::DynamicFlags::empty(),
18586            _decode,
18587        )
18588    }
18589
18590    type GetIpv6ReceiveHopLimitResponseFut = fidl::client::QueryResponseFut<
18591        BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
18592        fidl::encoding::DefaultFuchsiaResourceDialect,
18593    >;
18594    fn r#get_ipv6_receive_hop_limit(&self) -> Self::GetIpv6ReceiveHopLimitResponseFut {
18595        fn _decode(
18596            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18597        ) -> Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error> {
18598            let _response = fidl::client::decode_transaction_body::<
18599                fidl::encoding::ResultType<
18600                    BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
18601                    fidl_fuchsia_posix::Errno,
18602                >,
18603                fidl::encoding::DefaultFuchsiaResourceDialect,
18604                0x341e06689885b4c0,
18605            >(_buf?)?;
18606            Ok(_response.map(|x| x.value))
18607        }
18608        self.client.send_query_and_decode::<
18609            fidl::encoding::EmptyPayload,
18610            BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
18611        >(
18612            (),
18613            0x341e06689885b4c0,
18614            fidl::encoding::DynamicFlags::empty(),
18615            _decode,
18616        )
18617    }
18618
18619    type SetIpv6MulticastHopsResponseFut = fidl::client::QueryResponseFut<
18620        BaseNetworkSocketSetIpv6MulticastHopsResult,
18621        fidl::encoding::DefaultFuchsiaResourceDialect,
18622    >;
18623    fn r#set_ipv6_multicast_hops(
18624        &self,
18625        mut value: &OptionalUint8,
18626    ) -> Self::SetIpv6MulticastHopsResponseFut {
18627        fn _decode(
18628            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18629        ) -> Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error> {
18630            let _response = fidl::client::decode_transaction_body::<
18631                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18632                fidl::encoding::DefaultFuchsiaResourceDialect,
18633                0x25b9cd4d181f82c1,
18634            >(_buf?)?;
18635            Ok(_response.map(|x| x))
18636        }
18637        self.client.send_query_and_decode::<
18638            BaseNetworkSocketSetIpv6MulticastHopsRequest,
18639            BaseNetworkSocketSetIpv6MulticastHopsResult,
18640        >(
18641            (value,),
18642            0x25b9cd4d181f82c1,
18643            fidl::encoding::DynamicFlags::empty(),
18644            _decode,
18645        )
18646    }
18647
18648    type GetIpv6MulticastHopsResponseFut = fidl::client::QueryResponseFut<
18649        BaseNetworkSocketGetIpv6MulticastHopsResult,
18650        fidl::encoding::DefaultFuchsiaResourceDialect,
18651    >;
18652    fn r#get_ipv6_multicast_hops(&self) -> Self::GetIpv6MulticastHopsResponseFut {
18653        fn _decode(
18654            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18655        ) -> Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error> {
18656            let _response = fidl::client::decode_transaction_body::<
18657                fidl::encoding::ResultType<
18658                    BaseNetworkSocketGetIpv6MulticastHopsResponse,
18659                    fidl_fuchsia_posix::Errno,
18660                >,
18661                fidl::encoding::DefaultFuchsiaResourceDialect,
18662                0x52916948a365012a,
18663            >(_buf?)?;
18664            Ok(_response.map(|x| x.value))
18665        }
18666        self.client.send_query_and_decode::<
18667            fidl::encoding::EmptyPayload,
18668            BaseNetworkSocketGetIpv6MulticastHopsResult,
18669        >(
18670            (),
18671            0x52916948a365012a,
18672            fidl::encoding::DynamicFlags::empty(),
18673            _decode,
18674        )
18675    }
18676
18677    type SetIpv6MulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
18678        BaseNetworkSocketSetIpv6MulticastLoopbackResult,
18679        fidl::encoding::DefaultFuchsiaResourceDialect,
18680    >;
18681    fn r#set_ipv6_multicast_loopback(
18682        &self,
18683        mut value: bool,
18684    ) -> Self::SetIpv6MulticastLoopbackResponseFut {
18685        fn _decode(
18686            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18687        ) -> Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error> {
18688            let _response = fidl::client::decode_transaction_body::<
18689                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18690                fidl::encoding::DefaultFuchsiaResourceDialect,
18691                0x55701c409ff41b40,
18692            >(_buf?)?;
18693            Ok(_response.map(|x| x))
18694        }
18695        self.client.send_query_and_decode::<
18696            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
18697            BaseNetworkSocketSetIpv6MulticastLoopbackResult,
18698        >(
18699            (value,),
18700            0x55701c409ff41b40,
18701            fidl::encoding::DynamicFlags::empty(),
18702            _decode,
18703        )
18704    }
18705
18706    type GetIpv6MulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
18707        BaseNetworkSocketGetIpv6MulticastLoopbackResult,
18708        fidl::encoding::DefaultFuchsiaResourceDialect,
18709    >;
18710    fn r#get_ipv6_multicast_loopback(&self) -> Self::GetIpv6MulticastLoopbackResponseFut {
18711        fn _decode(
18712            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18713        ) -> Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error> {
18714            let _response = fidl::client::decode_transaction_body::<
18715                fidl::encoding::ResultType<
18716                    BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
18717                    fidl_fuchsia_posix::Errno,
18718                >,
18719                fidl::encoding::DefaultFuchsiaResourceDialect,
18720                0x4415b701fde319c3,
18721            >(_buf?)?;
18722            Ok(_response.map(|x| x.value))
18723        }
18724        self.client.send_query_and_decode::<
18725            fidl::encoding::EmptyPayload,
18726            BaseNetworkSocketGetIpv6MulticastLoopbackResult,
18727        >(
18728            (),
18729            0x4415b701fde319c3,
18730            fidl::encoding::DynamicFlags::empty(),
18731            _decode,
18732        )
18733    }
18734
18735    type SetIpv6OnlyResponseFut = fidl::client::QueryResponseFut<
18736        BaseNetworkSocketSetIpv6OnlyResult,
18737        fidl::encoding::DefaultFuchsiaResourceDialect,
18738    >;
18739    fn r#set_ipv6_only(&self, mut value: bool) -> Self::SetIpv6OnlyResponseFut {
18740        fn _decode(
18741            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18742        ) -> Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error> {
18743            let _response = fidl::client::decode_transaction_body::<
18744                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18745                fidl::encoding::DefaultFuchsiaResourceDialect,
18746                0x4873f1364758cbba,
18747            >(_buf?)?;
18748            Ok(_response.map(|x| x))
18749        }
18750        self.client.send_query_and_decode::<
18751            BaseNetworkSocketSetIpv6OnlyRequest,
18752            BaseNetworkSocketSetIpv6OnlyResult,
18753        >(
18754            (value,),
18755            0x4873f1364758cbba,
18756            fidl::encoding::DynamicFlags::empty(),
18757            _decode,
18758        )
18759    }
18760
18761    type GetIpv6OnlyResponseFut = fidl::client::QueryResponseFut<
18762        BaseNetworkSocketGetIpv6OnlyResult,
18763        fidl::encoding::DefaultFuchsiaResourceDialect,
18764    >;
18765    fn r#get_ipv6_only(&self) -> Self::GetIpv6OnlyResponseFut {
18766        fn _decode(
18767            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18768        ) -> Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error> {
18769            let _response = fidl::client::decode_transaction_body::<
18770                fidl::encoding::ResultType<
18771                    BaseNetworkSocketGetIpv6OnlyResponse,
18772                    fidl_fuchsia_posix::Errno,
18773                >,
18774                fidl::encoding::DefaultFuchsiaResourceDialect,
18775                0x4aa3340a1a26b89c,
18776            >(_buf?)?;
18777            Ok(_response.map(|x| x.value))
18778        }
18779        self.client.send_query_and_decode::<
18780            fidl::encoding::EmptyPayload,
18781            BaseNetworkSocketGetIpv6OnlyResult,
18782        >(
18783            (),
18784            0x4aa3340a1a26b89c,
18785            fidl::encoding::DynamicFlags::empty(),
18786            _decode,
18787        )
18788    }
18789
18790    type SetIpv6ReceiveTrafficClassResponseFut = fidl::client::QueryResponseFut<
18791        BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
18792        fidl::encoding::DefaultFuchsiaResourceDialect,
18793    >;
18794    fn r#set_ipv6_receive_traffic_class(
18795        &self,
18796        mut value: bool,
18797    ) -> Self::SetIpv6ReceiveTrafficClassResponseFut {
18798        fn _decode(
18799            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18800        ) -> Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error> {
18801            let _response = fidl::client::decode_transaction_body::<
18802                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18803                fidl::encoding::DefaultFuchsiaResourceDialect,
18804                0x58f07c8788d099a0,
18805            >(_buf?)?;
18806            Ok(_response.map(|x| x))
18807        }
18808        self.client.send_query_and_decode::<
18809            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
18810            BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
18811        >(
18812            (value,),
18813            0x58f07c8788d099a0,
18814            fidl::encoding::DynamicFlags::empty(),
18815            _decode,
18816        )
18817    }
18818
18819    type GetIpv6ReceiveTrafficClassResponseFut = fidl::client::QueryResponseFut<
18820        BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
18821        fidl::encoding::DefaultFuchsiaResourceDialect,
18822    >;
18823    fn r#get_ipv6_receive_traffic_class(&self) -> Self::GetIpv6ReceiveTrafficClassResponseFut {
18824        fn _decode(
18825            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18826        ) -> Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error> {
18827            let _response = fidl::client::decode_transaction_body::<
18828                fidl::encoding::ResultType<
18829                    BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
18830                    fidl_fuchsia_posix::Errno,
18831                >,
18832                fidl::encoding::DefaultFuchsiaResourceDialect,
18833                0x2e334df1da553ffa,
18834            >(_buf?)?;
18835            Ok(_response.map(|x| x.value))
18836        }
18837        self.client.send_query_and_decode::<
18838            fidl::encoding::EmptyPayload,
18839            BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
18840        >(
18841            (),
18842            0x2e334df1da553ffa,
18843            fidl::encoding::DynamicFlags::empty(),
18844            _decode,
18845        )
18846    }
18847
18848    type SetIpv6TrafficClassResponseFut = fidl::client::QueryResponseFut<
18849        BaseNetworkSocketSetIpv6TrafficClassResult,
18850        fidl::encoding::DefaultFuchsiaResourceDialect,
18851    >;
18852    fn r#set_ipv6_traffic_class(
18853        &self,
18854        mut value: &OptionalUint8,
18855    ) -> Self::SetIpv6TrafficClassResponseFut {
18856        fn _decode(
18857            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18858        ) -> Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error> {
18859            let _response = fidl::client::decode_transaction_body::<
18860                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18861                fidl::encoding::DefaultFuchsiaResourceDialect,
18862                0x6af077800c5a0b4f,
18863            >(_buf?)?;
18864            Ok(_response.map(|x| x))
18865        }
18866        self.client.send_query_and_decode::<
18867            BaseNetworkSocketSetIpv6TrafficClassRequest,
18868            BaseNetworkSocketSetIpv6TrafficClassResult,
18869        >(
18870            (value,),
18871            0x6af077800c5a0b4f,
18872            fidl::encoding::DynamicFlags::empty(),
18873            _decode,
18874        )
18875    }
18876
18877    type GetIpv6TrafficClassResponseFut = fidl::client::QueryResponseFut<
18878        BaseNetworkSocketGetIpv6TrafficClassResult,
18879        fidl::encoding::DefaultFuchsiaResourceDialect,
18880    >;
18881    fn r#get_ipv6_traffic_class(&self) -> Self::GetIpv6TrafficClassResponseFut {
18882        fn _decode(
18883            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18884        ) -> Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error> {
18885            let _response = fidl::client::decode_transaction_body::<
18886                fidl::encoding::ResultType<
18887                    BaseNetworkSocketGetIpv6TrafficClassResponse,
18888                    fidl_fuchsia_posix::Errno,
18889                >,
18890                fidl::encoding::DefaultFuchsiaResourceDialect,
18891                0x6baf6eed8fc2f04,
18892            >(_buf?)?;
18893            Ok(_response.map(|x| x.value))
18894        }
18895        self.client.send_query_and_decode::<
18896            fidl::encoding::EmptyPayload,
18897            BaseNetworkSocketGetIpv6TrafficClassResult,
18898        >(
18899            (),
18900            0x6baf6eed8fc2f04,
18901            fidl::encoding::DynamicFlags::empty(),
18902            _decode,
18903        )
18904    }
18905
18906    type SetIpv6ReceivePacketInfoResponseFut = fidl::client::QueryResponseFut<
18907        BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
18908        fidl::encoding::DefaultFuchsiaResourceDialect,
18909    >;
18910    fn r#set_ipv6_receive_packet_info(
18911        &self,
18912        mut value: bool,
18913    ) -> Self::SetIpv6ReceivePacketInfoResponseFut {
18914        fn _decode(
18915            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18916        ) -> Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error> {
18917            let _response = fidl::client::decode_transaction_body::<
18918                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18919                fidl::encoding::DefaultFuchsiaResourceDialect,
18920                0x19259775b1a92768,
18921            >(_buf?)?;
18922            Ok(_response.map(|x| x))
18923        }
18924        self.client.send_query_and_decode::<
18925            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
18926            BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
18927        >(
18928            (value,),
18929            0x19259775b1a92768,
18930            fidl::encoding::DynamicFlags::empty(),
18931            _decode,
18932        )
18933    }
18934
18935    type GetIpv6ReceivePacketInfoResponseFut = fidl::client::QueryResponseFut<
18936        BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
18937        fidl::encoding::DefaultFuchsiaResourceDialect,
18938    >;
18939    fn r#get_ipv6_receive_packet_info(&self) -> Self::GetIpv6ReceivePacketInfoResponseFut {
18940        fn _decode(
18941            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18942        ) -> Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error> {
18943            let _response = fidl::client::decode_transaction_body::<
18944                fidl::encoding::ResultType<
18945                    BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
18946                    fidl_fuchsia_posix::Errno,
18947                >,
18948                fidl::encoding::DefaultFuchsiaResourceDialect,
18949                0x7acd4a2775baec75,
18950            >(_buf?)?;
18951            Ok(_response.map(|x| x.value))
18952        }
18953        self.client.send_query_and_decode::<
18954            fidl::encoding::EmptyPayload,
18955            BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
18956        >(
18957            (),
18958            0x7acd4a2775baec75,
18959            fidl::encoding::DynamicFlags::empty(),
18960            _decode,
18961        )
18962    }
18963
18964    type GetOriginalDestinationResponseFut = fidl::client::QueryResponseFut<
18965        BaseNetworkSocketGetOriginalDestinationResult,
18966        fidl::encoding::DefaultFuchsiaResourceDialect,
18967    >;
18968    fn r#get_original_destination(&self) -> Self::GetOriginalDestinationResponseFut {
18969        fn _decode(
18970            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18971        ) -> Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error> {
18972            let _response = fidl::client::decode_transaction_body::<
18973                fidl::encoding::ResultType<
18974                    BaseNetworkSocketGetOriginalDestinationResponse,
18975                    fidl_fuchsia_posix::Errno,
18976                >,
18977                fidl::encoding::DefaultFuchsiaResourceDialect,
18978                0x38bf28f0dafdbac0,
18979            >(_buf?)?;
18980            Ok(_response.map(|x| x.value))
18981        }
18982        self.client.send_query_and_decode::<
18983            fidl::encoding::EmptyPayload,
18984            BaseNetworkSocketGetOriginalDestinationResult,
18985        >(
18986            (),
18987            0x38bf28f0dafdbac0,
18988            fidl::encoding::DynamicFlags::empty(),
18989            _decode,
18990        )
18991    }
18992}
18993
18994pub struct BaseNetworkSocketEventStream {
18995    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
18996}
18997
18998impl std::marker::Unpin for BaseNetworkSocketEventStream {}
18999
19000impl futures::stream::FusedStream for BaseNetworkSocketEventStream {
19001    fn is_terminated(&self) -> bool {
19002        self.event_receiver.is_terminated()
19003    }
19004}
19005
19006impl futures::Stream for BaseNetworkSocketEventStream {
19007    type Item = Result<BaseNetworkSocketEvent, fidl::Error>;
19008
19009    fn poll_next(
19010        mut self: std::pin::Pin<&mut Self>,
19011        cx: &mut std::task::Context<'_>,
19012    ) -> std::task::Poll<Option<Self::Item>> {
19013        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
19014            &mut self.event_receiver,
19015            cx
19016        )?) {
19017            Some(buf) => std::task::Poll::Ready(Some(BaseNetworkSocketEvent::decode(buf))),
19018            None => std::task::Poll::Ready(None),
19019        }
19020    }
19021}
19022
19023#[derive(Debug)]
19024pub enum BaseNetworkSocketEvent {}
19025
19026impl BaseNetworkSocketEvent {
19027    /// Decodes a message buffer as a [`BaseNetworkSocketEvent`].
19028    fn decode(
19029        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
19030    ) -> Result<BaseNetworkSocketEvent, fidl::Error> {
19031        let (bytes, _handles) = buf.split_mut();
19032        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
19033        debug_assert_eq!(tx_header.tx_id, 0);
19034        match tx_header.ordinal {
19035            _ => Err(fidl::Error::UnknownOrdinal {
19036                ordinal: tx_header.ordinal,
19037                protocol_name:
19038                    <BaseNetworkSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
19039            }),
19040        }
19041    }
19042}
19043
19044/// A Stream of incoming requests for fuchsia.posix.socket/BaseNetworkSocket.
19045pub struct BaseNetworkSocketRequestStream {
19046    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
19047    is_terminated: bool,
19048}
19049
19050impl std::marker::Unpin for BaseNetworkSocketRequestStream {}
19051
19052impl futures::stream::FusedStream for BaseNetworkSocketRequestStream {
19053    fn is_terminated(&self) -> bool {
19054        self.is_terminated
19055    }
19056}
19057
19058impl fidl::endpoints::RequestStream for BaseNetworkSocketRequestStream {
19059    type Protocol = BaseNetworkSocketMarker;
19060    type ControlHandle = BaseNetworkSocketControlHandle;
19061
19062    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
19063        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
19064    }
19065
19066    fn control_handle(&self) -> Self::ControlHandle {
19067        BaseNetworkSocketControlHandle { inner: self.inner.clone() }
19068    }
19069
19070    fn into_inner(
19071        self,
19072    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
19073    {
19074        (self.inner, self.is_terminated)
19075    }
19076
19077    fn from_inner(
19078        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
19079        is_terminated: bool,
19080    ) -> Self {
19081        Self { inner, is_terminated }
19082    }
19083}
19084
19085impl futures::Stream for BaseNetworkSocketRequestStream {
19086    type Item = Result<BaseNetworkSocketRequest, fidl::Error>;
19087
19088    fn poll_next(
19089        mut self: std::pin::Pin<&mut Self>,
19090        cx: &mut std::task::Context<'_>,
19091    ) -> std::task::Poll<Option<Self::Item>> {
19092        let this = &mut *self;
19093        if this.inner.check_shutdown(cx) {
19094            this.is_terminated = true;
19095            return std::task::Poll::Ready(None);
19096        }
19097        if this.is_terminated {
19098            panic!("polled BaseNetworkSocketRequestStream after completion");
19099        }
19100        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
19101            |bytes, handles| {
19102                match this.inner.channel().read_etc(cx, bytes, handles) {
19103                    std::task::Poll::Ready(Ok(())) => {}
19104                    std::task::Poll::Pending => return std::task::Poll::Pending,
19105                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
19106                        this.is_terminated = true;
19107                        return std::task::Poll::Ready(None);
19108                    }
19109                    std::task::Poll::Ready(Err(e)) => {
19110                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
19111                            e.into(),
19112                        ))))
19113                    }
19114                }
19115
19116                // A message has been received from the channel
19117                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
19118
19119                std::task::Poll::Ready(Some(match header.ordinal {
19120                    0x20d8a7aba2168a79 => {
19121                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
19122                        let mut req = fidl::new_empty!(
19123                            fidl_fuchsia_unknown::CloneableCloneRequest,
19124                            fidl::encoding::DefaultFuchsiaResourceDialect
19125                        );
19126                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl_fuchsia_unknown::CloneableCloneRequest>(&header, _body_bytes, handles, &mut req)?;
19127                        let control_handle =
19128                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19129                        Ok(BaseNetworkSocketRequest::Clone { request: req.request, control_handle })
19130                    }
19131                    0x5ac5d459ad7f657e => {
19132                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19133                        let mut req = fidl::new_empty!(
19134                            fidl::encoding::EmptyPayload,
19135                            fidl::encoding::DefaultFuchsiaResourceDialect
19136                        );
19137                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19138                        let control_handle =
19139                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19140                        Ok(BaseNetworkSocketRequest::Close {
19141                            responder: BaseNetworkSocketCloseResponder {
19142                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19143                                tx_id: header.tx_id,
19144                            },
19145                        })
19146                    }
19147                    0x2658edee9decfc06 => {
19148                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19149                        let mut req = fidl::new_empty!(
19150                            fidl::encoding::EmptyPayload,
19151                            fidl::encoding::DefaultFuchsiaResourceDialect
19152                        );
19153                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19154                        let control_handle =
19155                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19156                        Ok(BaseNetworkSocketRequest::Query {
19157                            responder: BaseNetworkSocketQueryResponder {
19158                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19159                                tx_id: header.tx_id,
19160                            },
19161                        })
19162                    }
19163                    0x1fd74ee8b9a4a876 => {
19164                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19165                        let mut req = fidl::new_empty!(
19166                            BaseSocketSetReuseAddressRequest,
19167                            fidl::encoding::DefaultFuchsiaResourceDialect
19168                        );
19169                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReuseAddressRequest>(&header, _body_bytes, handles, &mut req)?;
19170                        let control_handle =
19171                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19172                        Ok(BaseNetworkSocketRequest::SetReuseAddress {
19173                            value: req.value,
19174
19175                            responder: BaseNetworkSocketSetReuseAddressResponder {
19176                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19177                                tx_id: header.tx_id,
19178                            },
19179                        })
19180                    }
19181                    0x67b7206b8d1bc0a5 => {
19182                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19183                        let mut req = fidl::new_empty!(
19184                            fidl::encoding::EmptyPayload,
19185                            fidl::encoding::DefaultFuchsiaResourceDialect
19186                        );
19187                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19188                        let control_handle =
19189                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19190                        Ok(BaseNetworkSocketRequest::GetReuseAddress {
19191                            responder: BaseNetworkSocketGetReuseAddressResponder {
19192                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19193                                tx_id: header.tx_id,
19194                            },
19195                        })
19196                    }
19197                    0x5aad39b33e5f6ebb => {
19198                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19199                        let mut req = fidl::new_empty!(
19200                            fidl::encoding::EmptyPayload,
19201                            fidl::encoding::DefaultFuchsiaResourceDialect
19202                        );
19203                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19204                        let control_handle =
19205                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19206                        Ok(BaseNetworkSocketRequest::GetError {
19207                            responder: BaseNetworkSocketGetErrorResponder {
19208                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19209                                tx_id: header.tx_id,
19210                            },
19211                        })
19212                    }
19213                    0x6023e081ce3cd947 => {
19214                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19215                        let mut req = fidl::new_empty!(
19216                            BaseSocketSetBroadcastRequest,
19217                            fidl::encoding::DefaultFuchsiaResourceDialect
19218                        );
19219                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBroadcastRequest>(&header, _body_bytes, handles, &mut req)?;
19220                        let control_handle =
19221                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19222                        Ok(BaseNetworkSocketRequest::SetBroadcast {
19223                            value: req.value,
19224
19225                            responder: BaseNetworkSocketSetBroadcastResponder {
19226                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19227                                tx_id: header.tx_id,
19228                            },
19229                        })
19230                    }
19231                    0x68796fc556f9780d => {
19232                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19233                        let mut req = fidl::new_empty!(
19234                            fidl::encoding::EmptyPayload,
19235                            fidl::encoding::DefaultFuchsiaResourceDialect
19236                        );
19237                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19238                        let control_handle =
19239                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19240                        Ok(BaseNetworkSocketRequest::GetBroadcast {
19241                            responder: BaseNetworkSocketGetBroadcastResponder {
19242                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19243                                tx_id: header.tx_id,
19244                            },
19245                        })
19246                    }
19247                    0x756eac32d73a7a70 => {
19248                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19249                        let mut req = fidl::new_empty!(
19250                            BaseSocketSetSendBufferRequest,
19251                            fidl::encoding::DefaultFuchsiaResourceDialect
19252                        );
19253                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetSendBufferRequest>(&header, _body_bytes, handles, &mut req)?;
19254                        let control_handle =
19255                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19256                        Ok(BaseNetworkSocketRequest::SetSendBuffer {
19257                            value_bytes: req.value_bytes,
19258
19259                            responder: BaseNetworkSocketSetSendBufferResponder {
19260                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19261                                tx_id: header.tx_id,
19262                            },
19263                        })
19264                    }
19265                    0x78a52fd9c7b2410b => {
19266                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19267                        let mut req = fidl::new_empty!(
19268                            fidl::encoding::EmptyPayload,
19269                            fidl::encoding::DefaultFuchsiaResourceDialect
19270                        );
19271                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19272                        let control_handle =
19273                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19274                        Ok(BaseNetworkSocketRequest::GetSendBuffer {
19275                            responder: BaseNetworkSocketGetSendBufferResponder {
19276                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19277                                tx_id: header.tx_id,
19278                            },
19279                        })
19280                    }
19281                    0x6b0cf2f1919c7001 => {
19282                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19283                        let mut req = fidl::new_empty!(
19284                            BaseSocketSetReceiveBufferRequest,
19285                            fidl::encoding::DefaultFuchsiaResourceDialect
19286                        );
19287                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReceiveBufferRequest>(&header, _body_bytes, handles, &mut req)?;
19288                        let control_handle =
19289                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19290                        Ok(BaseNetworkSocketRequest::SetReceiveBuffer {
19291                            value_bytes: req.value_bytes,
19292
19293                            responder: BaseNetworkSocketSetReceiveBufferResponder {
19294                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19295                                tx_id: header.tx_id,
19296                            },
19297                        })
19298                    }
19299                    0x14c1a4b64f709e5c => {
19300                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19301                        let mut req = fidl::new_empty!(
19302                            fidl::encoding::EmptyPayload,
19303                            fidl::encoding::DefaultFuchsiaResourceDialect
19304                        );
19305                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19306                        let control_handle =
19307                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19308                        Ok(BaseNetworkSocketRequest::GetReceiveBuffer {
19309                            responder: BaseNetworkSocketGetReceiveBufferResponder {
19310                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19311                                tx_id: header.tx_id,
19312                            },
19313                        })
19314                    }
19315                    0x572df8f0b920d2c7 => {
19316                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19317                        let mut req = fidl::new_empty!(
19318                            BaseSocketSetKeepAliveRequest,
19319                            fidl::encoding::DefaultFuchsiaResourceDialect
19320                        );
19321                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetKeepAliveRequest>(&header, _body_bytes, handles, &mut req)?;
19322                        let control_handle =
19323                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19324                        Ok(BaseNetworkSocketRequest::SetKeepAlive {
19325                            value: req.value,
19326
19327                            responder: BaseNetworkSocketSetKeepAliveResponder {
19328                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19329                                tx_id: header.tx_id,
19330                            },
19331                        })
19332                    }
19333                    0x2dd29d3215f2c9d2 => {
19334                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19335                        let mut req = fidl::new_empty!(
19336                            fidl::encoding::EmptyPayload,
19337                            fidl::encoding::DefaultFuchsiaResourceDialect
19338                        );
19339                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19340                        let control_handle =
19341                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19342                        Ok(BaseNetworkSocketRequest::GetKeepAlive {
19343                            responder: BaseNetworkSocketGetKeepAliveResponder {
19344                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19345                                tx_id: header.tx_id,
19346                            },
19347                        })
19348                    }
19349                    0x3ecb49968bee439 => {
19350                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19351                        let mut req = fidl::new_empty!(
19352                            BaseSocketSetOutOfBandInlineRequest,
19353                            fidl::encoding::DefaultFuchsiaResourceDialect
19354                        );
19355                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetOutOfBandInlineRequest>(&header, _body_bytes, handles, &mut req)?;
19356                        let control_handle =
19357                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19358                        Ok(BaseNetworkSocketRequest::SetOutOfBandInline {
19359                            value: req.value,
19360
19361                            responder: BaseNetworkSocketSetOutOfBandInlineResponder {
19362                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19363                                tx_id: header.tx_id,
19364                            },
19365                        })
19366                    }
19367                    0x348c1ab3aeca1745 => {
19368                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19369                        let mut req = fidl::new_empty!(
19370                            fidl::encoding::EmptyPayload,
19371                            fidl::encoding::DefaultFuchsiaResourceDialect
19372                        );
19373                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19374                        let control_handle =
19375                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19376                        Ok(BaseNetworkSocketRequest::GetOutOfBandInline {
19377                            responder: BaseNetworkSocketGetOutOfBandInlineResponder {
19378                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19379                                tx_id: header.tx_id,
19380                            },
19381                        })
19382                    }
19383                    0x6bbf00c53a4c78c2 => {
19384                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19385                        let mut req = fidl::new_empty!(
19386                            BaseSocketSetNoCheckRequest,
19387                            fidl::encoding::DefaultFuchsiaResourceDialect
19388                        );
19389                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetNoCheckRequest>(&header, _body_bytes, handles, &mut req)?;
19390                        let control_handle =
19391                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19392                        Ok(BaseNetworkSocketRequest::SetNoCheck {
19393                            value: req.value,
19394
19395                            responder: BaseNetworkSocketSetNoCheckResponder {
19396                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19397                                tx_id: header.tx_id,
19398                            },
19399                        })
19400                    }
19401                    0x2cd4249286417694 => {
19402                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19403                        let mut req = fidl::new_empty!(
19404                            fidl::encoding::EmptyPayload,
19405                            fidl::encoding::DefaultFuchsiaResourceDialect
19406                        );
19407                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19408                        let control_handle =
19409                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19410                        Ok(BaseNetworkSocketRequest::GetNoCheck {
19411                            responder: BaseNetworkSocketGetNoCheckResponder {
19412                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19413                                tx_id: header.tx_id,
19414                            },
19415                        })
19416                    }
19417                    0x45386351246e998e => {
19418                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19419                        let mut req = fidl::new_empty!(
19420                            BaseSocketSetLingerRequest,
19421                            fidl::encoding::DefaultFuchsiaResourceDialect
19422                        );
19423                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetLingerRequest>(&header, _body_bytes, handles, &mut req)?;
19424                        let control_handle =
19425                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19426                        Ok(BaseNetworkSocketRequest::SetLinger {
19427                            linger: req.linger,
19428                            length_secs: req.length_secs,
19429
19430                            responder: BaseNetworkSocketSetLingerResponder {
19431                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19432                                tx_id: header.tx_id,
19433                            },
19434                        })
19435                    }
19436                    0x48eb20fc5ccb0e45 => {
19437                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19438                        let mut req = fidl::new_empty!(
19439                            fidl::encoding::EmptyPayload,
19440                            fidl::encoding::DefaultFuchsiaResourceDialect
19441                        );
19442                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19443                        let control_handle =
19444                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19445                        Ok(BaseNetworkSocketRequest::GetLinger {
19446                            responder: BaseNetworkSocketGetLingerResponder {
19447                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19448                                tx_id: header.tx_id,
19449                            },
19450                        })
19451                    }
19452                    0x24dd3e5cb36d9ccb => {
19453                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19454                        let mut req = fidl::new_empty!(
19455                            BaseSocketSetReusePortRequest,
19456                            fidl::encoding::DefaultFuchsiaResourceDialect
19457                        );
19458                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReusePortRequest>(&header, _body_bytes, handles, &mut req)?;
19459                        let control_handle =
19460                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19461                        Ok(BaseNetworkSocketRequest::SetReusePort {
19462                            value: req.value,
19463
19464                            responder: BaseNetworkSocketSetReusePortResponder {
19465                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19466                                tx_id: header.tx_id,
19467                            },
19468                        })
19469                    }
19470                    0x7a112c1ab54ff828 => {
19471                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19472                        let mut req = fidl::new_empty!(
19473                            fidl::encoding::EmptyPayload,
19474                            fidl::encoding::DefaultFuchsiaResourceDialect
19475                        );
19476                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19477                        let control_handle =
19478                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19479                        Ok(BaseNetworkSocketRequest::GetReusePort {
19480                            responder: BaseNetworkSocketGetReusePortResponder {
19481                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19482                                tx_id: header.tx_id,
19483                            },
19484                        })
19485                    }
19486                    0x67ce6db6c2ec8966 => {
19487                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19488                        let mut req = fidl::new_empty!(
19489                            fidl::encoding::EmptyPayload,
19490                            fidl::encoding::DefaultFuchsiaResourceDialect
19491                        );
19492                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19493                        let control_handle =
19494                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19495                        Ok(BaseNetworkSocketRequest::GetAcceptConn {
19496                            responder: BaseNetworkSocketGetAcceptConnResponder {
19497                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19498                                tx_id: header.tx_id,
19499                            },
19500                        })
19501                    }
19502                    0x2118b483f28aafc4 => {
19503                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19504                        let mut req = fidl::new_empty!(
19505                            BaseSocketSetBindToDeviceRequest,
19506                            fidl::encoding::DefaultFuchsiaResourceDialect
19507                        );
19508                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToDeviceRequest>(&header, _body_bytes, handles, &mut req)?;
19509                        let control_handle =
19510                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19511                        Ok(BaseNetworkSocketRequest::SetBindToDevice {
19512                            value: req.value,
19513
19514                            responder: BaseNetworkSocketSetBindToDeviceResponder {
19515                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19516                                tx_id: header.tx_id,
19517                            },
19518                        })
19519                    }
19520                    0x1ab1fbf0ef7906c8 => {
19521                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19522                        let mut req = fidl::new_empty!(
19523                            fidl::encoding::EmptyPayload,
19524                            fidl::encoding::DefaultFuchsiaResourceDialect
19525                        );
19526                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19527                        let control_handle =
19528                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19529                        Ok(BaseNetworkSocketRequest::GetBindToDevice {
19530                            responder: BaseNetworkSocketGetBindToDeviceResponder {
19531                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19532                                tx_id: header.tx_id,
19533                            },
19534                        })
19535                    }
19536                    0x6e387a0def00821 => {
19537                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19538                        let mut req = fidl::new_empty!(
19539                            BaseSocketSetBindToInterfaceIndexRequest,
19540                            fidl::encoding::DefaultFuchsiaResourceDialect
19541                        );
19542                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToInterfaceIndexRequest>(&header, _body_bytes, handles, &mut req)?;
19543                        let control_handle =
19544                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19545                        Ok(BaseNetworkSocketRequest::SetBindToInterfaceIndex {
19546                            value: req.value,
19547
19548                            responder: BaseNetworkSocketSetBindToInterfaceIndexResponder {
19549                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19550                                tx_id: header.tx_id,
19551                            },
19552                        })
19553                    }
19554                    0x59c31dd3e3078295 => {
19555                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19556                        let mut req = fidl::new_empty!(
19557                            fidl::encoding::EmptyPayload,
19558                            fidl::encoding::DefaultFuchsiaResourceDialect
19559                        );
19560                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19561                        let control_handle =
19562                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19563                        Ok(BaseNetworkSocketRequest::GetBindToInterfaceIndex {
19564                            responder: BaseNetworkSocketGetBindToInterfaceIndexResponder {
19565                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19566                                tx_id: header.tx_id,
19567                            },
19568                        })
19569                    }
19570                    0x285d6516c263d839 => {
19571                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19572                        let mut req = fidl::new_empty!(
19573                            BaseSocketSetTimestampRequest,
19574                            fidl::encoding::DefaultFuchsiaResourceDialect
19575                        );
19576                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetTimestampRequest>(&header, _body_bytes, handles, &mut req)?;
19577                        let control_handle =
19578                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19579                        Ok(BaseNetworkSocketRequest::SetTimestamp {
19580                            value: req.value,
19581
19582                            responder: BaseNetworkSocketSetTimestampResponder {
19583                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19584                                tx_id: header.tx_id,
19585                            },
19586                        })
19587                    }
19588                    0x49f2fffbbcc2bd27 => {
19589                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19590                        let mut req = fidl::new_empty!(
19591                            fidl::encoding::EmptyPayload,
19592                            fidl::encoding::DefaultFuchsiaResourceDialect
19593                        );
19594                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19595                        let control_handle =
19596                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19597                        Ok(BaseNetworkSocketRequest::GetTimestamp {
19598                            responder: BaseNetworkSocketGetTimestampResponder {
19599                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19600                                tx_id: header.tx_id,
19601                            },
19602                        })
19603                    }
19604                    0x6ead6de09f653236 => {
19605                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19606                        let mut req = fidl::new_empty!(
19607                            BaseSocketSetMarkRequest,
19608                            fidl::encoding::DefaultFuchsiaResourceDialect
19609                        );
19610                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
19611                        let control_handle =
19612                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19613                        Ok(BaseNetworkSocketRequest::SetMark {
19614                            domain: req.domain,
19615                            mark: req.mark,
19616
19617                            responder: BaseNetworkSocketSetMarkResponder {
19618                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19619                                tx_id: header.tx_id,
19620                            },
19621                        })
19622                    }
19623                    0x57a2752c61d93d47 => {
19624                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19625                        let mut req = fidl::new_empty!(
19626                            BaseSocketGetMarkRequest,
19627                            fidl::encoding::DefaultFuchsiaResourceDialect
19628                        );
19629                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketGetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
19630                        let control_handle =
19631                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19632                        Ok(BaseNetworkSocketRequest::GetMark {
19633                            domain: req.domain,
19634
19635                            responder: BaseNetworkSocketGetMarkResponder {
19636                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19637                                tx_id: header.tx_id,
19638                            },
19639                        })
19640                    }
19641                    0x2c2f47fd8f924e52 => {
19642                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19643                        let mut req = fidl::new_empty!(
19644                            fidl::encoding::EmptyPayload,
19645                            fidl::encoding::DefaultFuchsiaResourceDialect
19646                        );
19647                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19648                        let control_handle =
19649                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19650                        Ok(BaseNetworkSocketRequest::GetCookie {
19651                            responder: BaseNetworkSocketGetCookieResponder {
19652                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19653                                tx_id: header.tx_id,
19654                            },
19655                        })
19656                    }
19657                    0x4bc6400ae92125d => {
19658                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19659                        let mut req = fidl::new_empty!(
19660                            BaseNetworkSocketBindRequest,
19661                            fidl::encoding::DefaultFuchsiaResourceDialect
19662                        );
19663                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketBindRequest>(&header, _body_bytes, handles, &mut req)?;
19664                        let control_handle =
19665                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19666                        Ok(BaseNetworkSocketRequest::Bind {
19667                            addr: req.addr,
19668
19669                            responder: BaseNetworkSocketBindResponder {
19670                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19671                                tx_id: header.tx_id,
19672                            },
19673                        })
19674                    }
19675                    0x5f05f19bfdd38871 => {
19676                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19677                        let mut req = fidl::new_empty!(
19678                            BaseNetworkSocketConnectRequest,
19679                            fidl::encoding::DefaultFuchsiaResourceDialect
19680                        );
19681                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketConnectRequest>(&header, _body_bytes, handles, &mut req)?;
19682                        let control_handle =
19683                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19684                        Ok(BaseNetworkSocketRequest::Connect {
19685                            addr: req.addr,
19686
19687                            responder: BaseNetworkSocketConnectResponder {
19688                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19689                                tx_id: header.tx_id,
19690                            },
19691                        })
19692                    }
19693                    0x74e63b91f7b29b2 => {
19694                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19695                        let mut req = fidl::new_empty!(
19696                            fidl::encoding::EmptyPayload,
19697                            fidl::encoding::DefaultFuchsiaResourceDialect
19698                        );
19699                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19700                        let control_handle =
19701                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19702                        Ok(BaseNetworkSocketRequest::Disconnect {
19703                            responder: BaseNetworkSocketDisconnectResponder {
19704                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19705                                tx_id: header.tx_id,
19706                            },
19707                        })
19708                    }
19709                    0x475f23f84a1a4f85 => {
19710                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19711                        let mut req = fidl::new_empty!(
19712                            fidl::encoding::EmptyPayload,
19713                            fidl::encoding::DefaultFuchsiaResourceDialect
19714                        );
19715                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19716                        let control_handle =
19717                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19718                        Ok(BaseNetworkSocketRequest::GetSockName {
19719                            responder: BaseNetworkSocketGetSockNameResponder {
19720                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19721                                tx_id: header.tx_id,
19722                            },
19723                        })
19724                    }
19725                    0x1ffecf4bd5b6432e => {
19726                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19727                        let mut req = fidl::new_empty!(
19728                            fidl::encoding::EmptyPayload,
19729                            fidl::encoding::DefaultFuchsiaResourceDialect
19730                        );
19731                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19732                        let control_handle =
19733                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19734                        Ok(BaseNetworkSocketRequest::GetPeerName {
19735                            responder: BaseNetworkSocketGetPeerNameResponder {
19736                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19737                                tx_id: header.tx_id,
19738                            },
19739                        })
19740                    }
19741                    0x247f38b6db68c336 => {
19742                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19743                        let mut req = fidl::new_empty!(
19744                            BaseNetworkSocketShutdownRequest,
19745                            fidl::encoding::DefaultFuchsiaResourceDialect
19746                        );
19747                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketShutdownRequest>(&header, _body_bytes, handles, &mut req)?;
19748                        let control_handle =
19749                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19750                        Ok(BaseNetworkSocketRequest::Shutdown {
19751                            mode: req.mode,
19752
19753                            responder: BaseNetworkSocketShutdownResponder {
19754                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19755                                tx_id: header.tx_id,
19756                            },
19757                        })
19758                    }
19759                    0x995c600475b6d46 => {
19760                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19761                        let mut req = fidl::new_empty!(
19762                            BaseNetworkSocketSetIpTypeOfServiceRequest,
19763                            fidl::encoding::DefaultFuchsiaResourceDialect
19764                        );
19765                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTypeOfServiceRequest>(&header, _body_bytes, handles, &mut req)?;
19766                        let control_handle =
19767                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19768                        Ok(BaseNetworkSocketRequest::SetIpTypeOfService {
19769                            value: req.value,
19770
19771                            responder: BaseNetworkSocketSetIpTypeOfServiceResponder {
19772                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19773                                tx_id: header.tx_id,
19774                            },
19775                        })
19776                    }
19777                    0x3814a04259f75fcb => {
19778                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19779                        let mut req = fidl::new_empty!(
19780                            fidl::encoding::EmptyPayload,
19781                            fidl::encoding::DefaultFuchsiaResourceDialect
19782                        );
19783                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19784                        let control_handle =
19785                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19786                        Ok(BaseNetworkSocketRequest::GetIpTypeOfService {
19787                            responder: BaseNetworkSocketGetIpTypeOfServiceResponder {
19788                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19789                                tx_id: header.tx_id,
19790                            },
19791                        })
19792                    }
19793                    0x29e2424b433ae1ef => {
19794                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19795                        let mut req = fidl::new_empty!(
19796                            BaseNetworkSocketSetIpTtlRequest,
19797                            fidl::encoding::DefaultFuchsiaResourceDialect
19798                        );
19799                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTtlRequest>(&header, _body_bytes, handles, &mut req)?;
19800                        let control_handle =
19801                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19802                        Ok(BaseNetworkSocketRequest::SetIpTtl {
19803                            value: req.value,
19804
19805                            responder: BaseNetworkSocketSetIpTtlResponder {
19806                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19807                                tx_id: header.tx_id,
19808                            },
19809                        })
19810                    }
19811                    0x47e47fa1f24da471 => {
19812                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19813                        let mut req = fidl::new_empty!(
19814                            fidl::encoding::EmptyPayload,
19815                            fidl::encoding::DefaultFuchsiaResourceDialect
19816                        );
19817                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19818                        let control_handle =
19819                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19820                        Ok(BaseNetworkSocketRequest::GetIpTtl {
19821                            responder: BaseNetworkSocketGetIpTtlResponder {
19822                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19823                                tx_id: header.tx_id,
19824                            },
19825                        })
19826                    }
19827                    0x392d16bee20c0e16 => {
19828                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19829                        let mut req = fidl::new_empty!(
19830                            BaseNetworkSocketSetIpPacketInfoRequest,
19831                            fidl::encoding::DefaultFuchsiaResourceDialect
19832                        );
19833                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpPacketInfoRequest>(&header, _body_bytes, handles, &mut req)?;
19834                        let control_handle =
19835                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19836                        Ok(BaseNetworkSocketRequest::SetIpPacketInfo {
19837                            value: req.value,
19838
19839                            responder: BaseNetworkSocketSetIpPacketInfoResponder {
19840                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19841                                tx_id: header.tx_id,
19842                            },
19843                        })
19844                    }
19845                    0x54b505f242280740 => {
19846                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19847                        let mut req = fidl::new_empty!(
19848                            fidl::encoding::EmptyPayload,
19849                            fidl::encoding::DefaultFuchsiaResourceDialect
19850                        );
19851                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19852                        let control_handle =
19853                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19854                        Ok(BaseNetworkSocketRequest::GetIpPacketInfo {
19855                            responder: BaseNetworkSocketGetIpPacketInfoResponder {
19856                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19857                                tx_id: header.tx_id,
19858                            },
19859                        })
19860                    }
19861                    0x6c4f6714995f84ef => {
19862                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19863                        let mut req = fidl::new_empty!(
19864                            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
19865                            fidl::encoding::DefaultFuchsiaResourceDialect
19866                        );
19867                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveTypeOfServiceRequest>(&header, _body_bytes, handles, &mut req)?;
19868                        let control_handle =
19869                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19870                        Ok(BaseNetworkSocketRequest::SetIpReceiveTypeOfService {
19871                            value: req.value,
19872
19873                            responder: BaseNetworkSocketSetIpReceiveTypeOfServiceResponder {
19874                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19875                                tx_id: header.tx_id,
19876                            },
19877                        })
19878                    }
19879                    0x4158ba7dc2795960 => {
19880                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19881                        let mut req = fidl::new_empty!(
19882                            fidl::encoding::EmptyPayload,
19883                            fidl::encoding::DefaultFuchsiaResourceDialect
19884                        );
19885                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19886                        let control_handle =
19887                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19888                        Ok(BaseNetworkSocketRequest::GetIpReceiveTypeOfService {
19889                            responder: BaseNetworkSocketGetIpReceiveTypeOfServiceResponder {
19890                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19891                                tx_id: header.tx_id,
19892                            },
19893                        })
19894                    }
19895                    0x46f15be0ce0ab82b => {
19896                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19897                        let mut req = fidl::new_empty!(
19898                            BaseNetworkSocketSetIpReceiveTtlRequest,
19899                            fidl::encoding::DefaultFuchsiaResourceDialect
19900                        );
19901                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveTtlRequest>(&header, _body_bytes, handles, &mut req)?;
19902                        let control_handle =
19903                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19904                        Ok(BaseNetworkSocketRequest::SetIpReceiveTtl {
19905                            value: req.value,
19906
19907                            responder: BaseNetworkSocketSetIpReceiveTtlResponder {
19908                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19909                                tx_id: header.tx_id,
19910                            },
19911                        })
19912                    }
19913                    0x678ddd5a5dfa2eb5 => {
19914                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19915                        let mut req = fidl::new_empty!(
19916                            fidl::encoding::EmptyPayload,
19917                            fidl::encoding::DefaultFuchsiaResourceDialect
19918                        );
19919                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19920                        let control_handle =
19921                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19922                        Ok(BaseNetworkSocketRequest::GetIpReceiveTtl {
19923                            responder: BaseNetworkSocketGetIpReceiveTtlResponder {
19924                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19925                                tx_id: header.tx_id,
19926                            },
19927                        })
19928                    }
19929                    0x752fbfa9b12befe => {
19930                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19931                        let mut req = fidl::new_empty!(
19932                            BaseNetworkSocketSetIpMulticastInterfaceRequest,
19933                            fidl::encoding::DefaultFuchsiaResourceDialect
19934                        );
19935                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastInterfaceRequest>(&header, _body_bytes, handles, &mut req)?;
19936                        let control_handle =
19937                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19938                        Ok(BaseNetworkSocketRequest::SetIpMulticastInterface {
19939                            iface: req.iface,
19940                            address: req.address,
19941
19942                            responder: BaseNetworkSocketSetIpMulticastInterfaceResponder {
19943                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19944                                tx_id: header.tx_id,
19945                            },
19946                        })
19947                    }
19948                    0x320bd14c4df046c4 => {
19949                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19950                        let mut req = fidl::new_empty!(
19951                            fidl::encoding::EmptyPayload,
19952                            fidl::encoding::DefaultFuchsiaResourceDialect
19953                        );
19954                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19955                        let control_handle =
19956                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19957                        Ok(BaseNetworkSocketRequest::GetIpMulticastInterface {
19958                            responder: BaseNetworkSocketGetIpMulticastInterfaceResponder {
19959                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19960                                tx_id: header.tx_id,
19961                            },
19962                        })
19963                    }
19964                    0x63134d53772916a1 => {
19965                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19966                        let mut req = fidl::new_empty!(
19967                            BaseNetworkSocketSetIpMulticastTtlRequest,
19968                            fidl::encoding::DefaultFuchsiaResourceDialect
19969                        );
19970                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastTtlRequest>(&header, _body_bytes, handles, &mut req)?;
19971                        let control_handle =
19972                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19973                        Ok(BaseNetworkSocketRequest::SetIpMulticastTtl {
19974                            value: req.value,
19975
19976                            responder: BaseNetworkSocketSetIpMulticastTtlResponder {
19977                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19978                                tx_id: header.tx_id,
19979                            },
19980                        })
19981                    }
19982                    0x4665cd378f39e1a => {
19983                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19984                        let mut req = fidl::new_empty!(
19985                            fidl::encoding::EmptyPayload,
19986                            fidl::encoding::DefaultFuchsiaResourceDialect
19987                        );
19988                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19989                        let control_handle =
19990                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19991                        Ok(BaseNetworkSocketRequest::GetIpMulticastTtl {
19992                            responder: BaseNetworkSocketGetIpMulticastTtlResponder {
19993                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19994                                tx_id: header.tx_id,
19995                            },
19996                        })
19997                    }
19998                    0x20c55c11f00943ea => {
19999                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20000                        let mut req = fidl::new_empty!(
20001                            BaseNetworkSocketSetIpMulticastLoopbackRequest,
20002                            fidl::encoding::DefaultFuchsiaResourceDialect
20003                        );
20004                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastLoopbackRequest>(&header, _body_bytes, handles, &mut req)?;
20005                        let control_handle =
20006                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20007                        Ok(BaseNetworkSocketRequest::SetIpMulticastLoopback {
20008                            value: req.value,
20009
20010                            responder: BaseNetworkSocketSetIpMulticastLoopbackResponder {
20011                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20012                                tx_id: header.tx_id,
20013                            },
20014                        })
20015                    }
20016                    0x3b6b26ff558298f2 => {
20017                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20018                        let mut req = fidl::new_empty!(
20019                            fidl::encoding::EmptyPayload,
20020                            fidl::encoding::DefaultFuchsiaResourceDialect
20021                        );
20022                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20023                        let control_handle =
20024                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20025                        Ok(BaseNetworkSocketRequest::GetIpMulticastLoopback {
20026                            responder: BaseNetworkSocketGetIpMulticastLoopbackResponder {
20027                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20028                                tx_id: header.tx_id,
20029                            },
20030                        })
20031                    }
20032                    0x76bc7df115a3b4d0 => {
20033                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20034                        let mut req = fidl::new_empty!(
20035                            BaseNetworkSocketAddIpMembershipRequest,
20036                            fidl::encoding::DefaultFuchsiaResourceDialect
20037                        );
20038                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketAddIpMembershipRequest>(&header, _body_bytes, handles, &mut req)?;
20039                        let control_handle =
20040                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20041                        Ok(BaseNetworkSocketRequest::AddIpMembership {
20042                            membership: req.membership,
20043
20044                            responder: BaseNetworkSocketAddIpMembershipResponder {
20045                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20046                                tx_id: header.tx_id,
20047                            },
20048                        })
20049                    }
20050                    0x2888f3099188d03 => {
20051                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20052                        let mut req = fidl::new_empty!(
20053                            BaseNetworkSocketDropIpMembershipRequest,
20054                            fidl::encoding::DefaultFuchsiaResourceDialect
20055                        );
20056                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketDropIpMembershipRequest>(&header, _body_bytes, handles, &mut req)?;
20057                        let control_handle =
20058                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20059                        Ok(BaseNetworkSocketRequest::DropIpMembership {
20060                            membership: req.membership,
20061
20062                            responder: BaseNetworkSocketDropIpMembershipResponder {
20063                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20064                                tx_id: header.tx_id,
20065                            },
20066                        })
20067                    }
20068                    0x1ae532b0c066e3a0 => {
20069                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20070                        let mut req = fidl::new_empty!(
20071                            BaseNetworkSocketSetIpTransparentRequest,
20072                            fidl::encoding::DefaultFuchsiaResourceDialect
20073                        );
20074                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTransparentRequest>(&header, _body_bytes, handles, &mut req)?;
20075                        let control_handle =
20076                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20077                        Ok(BaseNetworkSocketRequest::SetIpTransparent {
20078                            value: req.value,
20079
20080                            responder: BaseNetworkSocketSetIpTransparentResponder {
20081                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20082                                tx_id: header.tx_id,
20083                            },
20084                        })
20085                    }
20086                    0x51d43695962ebfb5 => {
20087                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20088                        let mut req = fidl::new_empty!(
20089                            fidl::encoding::EmptyPayload,
20090                            fidl::encoding::DefaultFuchsiaResourceDialect
20091                        );
20092                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20093                        let control_handle =
20094                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20095                        Ok(BaseNetworkSocketRequest::GetIpTransparent {
20096                            responder: BaseNetworkSocketGetIpTransparentResponder {
20097                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20098                                tx_id: header.tx_id,
20099                            },
20100                        })
20101                    }
20102                    0x4722b4ce52f7840 => {
20103                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20104                        let mut req = fidl::new_empty!(
20105                            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
20106                            fidl::encoding::DefaultFuchsiaResourceDialect
20107                        );
20108                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest>(&header, _body_bytes, handles, &mut req)?;
20109                        let control_handle =
20110                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20111                        Ok(BaseNetworkSocketRequest::SetIpReceiveOriginalDestinationAddress {
20112                            value: req.value,
20113
20114                            responder:
20115                                BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResponder {
20116                                    control_handle: std::mem::ManuallyDrop::new(control_handle),
20117                                    tx_id: header.tx_id,
20118                                },
20119                        })
20120                    }
20121                    0x2a0e7dc5d6bfdfe9 => {
20122                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20123                        let mut req = fidl::new_empty!(
20124                            fidl::encoding::EmptyPayload,
20125                            fidl::encoding::DefaultFuchsiaResourceDialect
20126                        );
20127                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20128                        let control_handle =
20129                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20130                        Ok(BaseNetworkSocketRequest::GetIpReceiveOriginalDestinationAddress {
20131                            responder:
20132                                BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponder {
20133                                    control_handle: std::mem::ManuallyDrop::new(control_handle),
20134                                    tx_id: header.tx_id,
20135                                },
20136                        })
20137                    }
20138                    0x7c94727acb4ea4b3 => {
20139                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20140                        let mut req = fidl::new_empty!(
20141                            BaseNetworkSocketAddIpv6MembershipRequest,
20142                            fidl::encoding::DefaultFuchsiaResourceDialect
20143                        );
20144                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketAddIpv6MembershipRequest>(&header, _body_bytes, handles, &mut req)?;
20145                        let control_handle =
20146                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20147                        Ok(BaseNetworkSocketRequest::AddIpv6Membership {
20148                            membership: req.membership,
20149
20150                            responder: BaseNetworkSocketAddIpv6MembershipResponder {
20151                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20152                                tx_id: header.tx_id,
20153                            },
20154                        })
20155                    }
20156                    0x42104c70ccaba304 => {
20157                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20158                        let mut req = fidl::new_empty!(
20159                            BaseNetworkSocketDropIpv6MembershipRequest,
20160                            fidl::encoding::DefaultFuchsiaResourceDialect
20161                        );
20162                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketDropIpv6MembershipRequest>(&header, _body_bytes, handles, &mut req)?;
20163                        let control_handle =
20164                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20165                        Ok(BaseNetworkSocketRequest::DropIpv6Membership {
20166                            membership: req.membership,
20167
20168                            responder: BaseNetworkSocketDropIpv6MembershipResponder {
20169                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20170                                tx_id: header.tx_id,
20171                            },
20172                        })
20173                    }
20174                    0x135f76db3774ab3b => {
20175                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20176                        let mut req = fidl::new_empty!(
20177                            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
20178                            fidl::encoding::DefaultFuchsiaResourceDialect
20179                        );
20180                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastInterfaceRequest>(&header, _body_bytes, handles, &mut req)?;
20181                        let control_handle =
20182                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20183                        Ok(BaseNetworkSocketRequest::SetIpv6MulticastInterface {
20184                            value: req.value,
20185
20186                            responder: BaseNetworkSocketSetIpv6MulticastInterfaceResponder {
20187                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20188                                tx_id: header.tx_id,
20189                            },
20190                        })
20191                    }
20192                    0x1f26fcdd348f1882 => {
20193                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20194                        let mut req = fidl::new_empty!(
20195                            fidl::encoding::EmptyPayload,
20196                            fidl::encoding::DefaultFuchsiaResourceDialect
20197                        );
20198                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20199                        let control_handle =
20200                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20201                        Ok(BaseNetworkSocketRequest::GetIpv6MulticastInterface {
20202                            responder: BaseNetworkSocketGetIpv6MulticastInterfaceResponder {
20203                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20204                                tx_id: header.tx_id,
20205                            },
20206                        })
20207                    }
20208                    0x157d51e98f462859 => {
20209                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20210                        let mut req = fidl::new_empty!(
20211                            BaseNetworkSocketSetIpv6UnicastHopsRequest,
20212                            fidl::encoding::DefaultFuchsiaResourceDialect
20213                        );
20214                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6UnicastHopsRequest>(&header, _body_bytes, handles, &mut req)?;
20215                        let control_handle =
20216                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20217                        Ok(BaseNetworkSocketRequest::SetIpv6UnicastHops {
20218                            value: req.value,
20219
20220                            responder: BaseNetworkSocketSetIpv6UnicastHopsResponder {
20221                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20222                                tx_id: header.tx_id,
20223                            },
20224                        })
20225                    }
20226                    0x21f4641cad8bd8d2 => {
20227                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20228                        let mut req = fidl::new_empty!(
20229                            fidl::encoding::EmptyPayload,
20230                            fidl::encoding::DefaultFuchsiaResourceDialect
20231                        );
20232                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20233                        let control_handle =
20234                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20235                        Ok(BaseNetworkSocketRequest::GetIpv6UnicastHops {
20236                            responder: BaseNetworkSocketGetIpv6UnicastHopsResponder {
20237                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20238                                tx_id: header.tx_id,
20239                            },
20240                        })
20241                    }
20242                    0x5c24808ed2e84a1e => {
20243                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20244                        let mut req = fidl::new_empty!(
20245                            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
20246                            fidl::encoding::DefaultFuchsiaResourceDialect
20247                        );
20248                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceiveHopLimitRequest>(&header, _body_bytes, handles, &mut req)?;
20249                        let control_handle =
20250                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20251                        Ok(BaseNetworkSocketRequest::SetIpv6ReceiveHopLimit {
20252                            value: req.value,
20253
20254                            responder: BaseNetworkSocketSetIpv6ReceiveHopLimitResponder {
20255                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20256                                tx_id: header.tx_id,
20257                            },
20258                        })
20259                    }
20260                    0x341e06689885b4c0 => {
20261                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20262                        let mut req = fidl::new_empty!(
20263                            fidl::encoding::EmptyPayload,
20264                            fidl::encoding::DefaultFuchsiaResourceDialect
20265                        );
20266                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20267                        let control_handle =
20268                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20269                        Ok(BaseNetworkSocketRequest::GetIpv6ReceiveHopLimit {
20270                            responder: BaseNetworkSocketGetIpv6ReceiveHopLimitResponder {
20271                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20272                                tx_id: header.tx_id,
20273                            },
20274                        })
20275                    }
20276                    0x25b9cd4d181f82c1 => {
20277                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20278                        let mut req = fidl::new_empty!(
20279                            BaseNetworkSocketSetIpv6MulticastHopsRequest,
20280                            fidl::encoding::DefaultFuchsiaResourceDialect
20281                        );
20282                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastHopsRequest>(&header, _body_bytes, handles, &mut req)?;
20283                        let control_handle =
20284                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20285                        Ok(BaseNetworkSocketRequest::SetIpv6MulticastHops {
20286                            value: req.value,
20287
20288                            responder: BaseNetworkSocketSetIpv6MulticastHopsResponder {
20289                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20290                                tx_id: header.tx_id,
20291                            },
20292                        })
20293                    }
20294                    0x52916948a365012a => {
20295                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20296                        let mut req = fidl::new_empty!(
20297                            fidl::encoding::EmptyPayload,
20298                            fidl::encoding::DefaultFuchsiaResourceDialect
20299                        );
20300                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20301                        let control_handle =
20302                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20303                        Ok(BaseNetworkSocketRequest::GetIpv6MulticastHops {
20304                            responder: BaseNetworkSocketGetIpv6MulticastHopsResponder {
20305                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20306                                tx_id: header.tx_id,
20307                            },
20308                        })
20309                    }
20310                    0x55701c409ff41b40 => {
20311                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20312                        let mut req = fidl::new_empty!(
20313                            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
20314                            fidl::encoding::DefaultFuchsiaResourceDialect
20315                        );
20316                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastLoopbackRequest>(&header, _body_bytes, handles, &mut req)?;
20317                        let control_handle =
20318                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20319                        Ok(BaseNetworkSocketRequest::SetIpv6MulticastLoopback {
20320                            value: req.value,
20321
20322                            responder: BaseNetworkSocketSetIpv6MulticastLoopbackResponder {
20323                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20324                                tx_id: header.tx_id,
20325                            },
20326                        })
20327                    }
20328                    0x4415b701fde319c3 => {
20329                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20330                        let mut req = fidl::new_empty!(
20331                            fidl::encoding::EmptyPayload,
20332                            fidl::encoding::DefaultFuchsiaResourceDialect
20333                        );
20334                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20335                        let control_handle =
20336                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20337                        Ok(BaseNetworkSocketRequest::GetIpv6MulticastLoopback {
20338                            responder: BaseNetworkSocketGetIpv6MulticastLoopbackResponder {
20339                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20340                                tx_id: header.tx_id,
20341                            },
20342                        })
20343                    }
20344                    0x4873f1364758cbba => {
20345                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20346                        let mut req = fidl::new_empty!(
20347                            BaseNetworkSocketSetIpv6OnlyRequest,
20348                            fidl::encoding::DefaultFuchsiaResourceDialect
20349                        );
20350                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6OnlyRequest>(&header, _body_bytes, handles, &mut req)?;
20351                        let control_handle =
20352                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20353                        Ok(BaseNetworkSocketRequest::SetIpv6Only {
20354                            value: req.value,
20355
20356                            responder: BaseNetworkSocketSetIpv6OnlyResponder {
20357                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20358                                tx_id: header.tx_id,
20359                            },
20360                        })
20361                    }
20362                    0x4aa3340a1a26b89c => {
20363                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20364                        let mut req = fidl::new_empty!(
20365                            fidl::encoding::EmptyPayload,
20366                            fidl::encoding::DefaultFuchsiaResourceDialect
20367                        );
20368                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20369                        let control_handle =
20370                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20371                        Ok(BaseNetworkSocketRequest::GetIpv6Only {
20372                            responder: BaseNetworkSocketGetIpv6OnlyResponder {
20373                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20374                                tx_id: header.tx_id,
20375                            },
20376                        })
20377                    }
20378                    0x58f07c8788d099a0 => {
20379                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20380                        let mut req = fidl::new_empty!(
20381                            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
20382                            fidl::encoding::DefaultFuchsiaResourceDialect
20383                        );
20384                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest>(&header, _body_bytes, handles, &mut req)?;
20385                        let control_handle =
20386                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20387                        Ok(BaseNetworkSocketRequest::SetIpv6ReceiveTrafficClass {
20388                            value: req.value,
20389
20390                            responder: BaseNetworkSocketSetIpv6ReceiveTrafficClassResponder {
20391                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20392                                tx_id: header.tx_id,
20393                            },
20394                        })
20395                    }
20396                    0x2e334df1da553ffa => {
20397                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20398                        let mut req = fidl::new_empty!(
20399                            fidl::encoding::EmptyPayload,
20400                            fidl::encoding::DefaultFuchsiaResourceDialect
20401                        );
20402                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20403                        let control_handle =
20404                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20405                        Ok(BaseNetworkSocketRequest::GetIpv6ReceiveTrafficClass {
20406                            responder: BaseNetworkSocketGetIpv6ReceiveTrafficClassResponder {
20407                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20408                                tx_id: header.tx_id,
20409                            },
20410                        })
20411                    }
20412                    0x6af077800c5a0b4f => {
20413                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20414                        let mut req = fidl::new_empty!(
20415                            BaseNetworkSocketSetIpv6TrafficClassRequest,
20416                            fidl::encoding::DefaultFuchsiaResourceDialect
20417                        );
20418                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6TrafficClassRequest>(&header, _body_bytes, handles, &mut req)?;
20419                        let control_handle =
20420                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20421                        Ok(BaseNetworkSocketRequest::SetIpv6TrafficClass {
20422                            value: req.value,
20423
20424                            responder: BaseNetworkSocketSetIpv6TrafficClassResponder {
20425                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20426                                tx_id: header.tx_id,
20427                            },
20428                        })
20429                    }
20430                    0x6baf6eed8fc2f04 => {
20431                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20432                        let mut req = fidl::new_empty!(
20433                            fidl::encoding::EmptyPayload,
20434                            fidl::encoding::DefaultFuchsiaResourceDialect
20435                        );
20436                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20437                        let control_handle =
20438                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20439                        Ok(BaseNetworkSocketRequest::GetIpv6TrafficClass {
20440                            responder: BaseNetworkSocketGetIpv6TrafficClassResponder {
20441                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20442                                tx_id: header.tx_id,
20443                            },
20444                        })
20445                    }
20446                    0x19259775b1a92768 => {
20447                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20448                        let mut req = fidl::new_empty!(
20449                            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
20450                            fidl::encoding::DefaultFuchsiaResourceDialect
20451                        );
20452                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceivePacketInfoRequest>(&header, _body_bytes, handles, &mut req)?;
20453                        let control_handle =
20454                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20455                        Ok(BaseNetworkSocketRequest::SetIpv6ReceivePacketInfo {
20456                            value: req.value,
20457
20458                            responder: BaseNetworkSocketSetIpv6ReceivePacketInfoResponder {
20459                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20460                                tx_id: header.tx_id,
20461                            },
20462                        })
20463                    }
20464                    0x7acd4a2775baec75 => {
20465                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20466                        let mut req = fidl::new_empty!(
20467                            fidl::encoding::EmptyPayload,
20468                            fidl::encoding::DefaultFuchsiaResourceDialect
20469                        );
20470                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20471                        let control_handle =
20472                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20473                        Ok(BaseNetworkSocketRequest::GetIpv6ReceivePacketInfo {
20474                            responder: BaseNetworkSocketGetIpv6ReceivePacketInfoResponder {
20475                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20476                                tx_id: header.tx_id,
20477                            },
20478                        })
20479                    }
20480                    0x38bf28f0dafdbac0 => {
20481                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20482                        let mut req = fidl::new_empty!(
20483                            fidl::encoding::EmptyPayload,
20484                            fidl::encoding::DefaultFuchsiaResourceDialect
20485                        );
20486                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20487                        let control_handle =
20488                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20489                        Ok(BaseNetworkSocketRequest::GetOriginalDestination {
20490                            responder: BaseNetworkSocketGetOriginalDestinationResponder {
20491                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20492                                tx_id: header.tx_id,
20493                            },
20494                        })
20495                    }
20496                    _ => Err(fidl::Error::UnknownOrdinal {
20497                        ordinal: header.ordinal,
20498                        protocol_name:
20499                            <BaseNetworkSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
20500                    }),
20501                }))
20502            },
20503        )
20504    }
20505}
20506
20507/// A network socket.
20508#[derive(Debug)]
20509pub enum BaseNetworkSocketRequest {
20510    Clone {
20511        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
20512        control_handle: BaseNetworkSocketControlHandle,
20513    },
20514    /// Terminates the connection.
20515    ///
20516    /// After calling `Close`, the client must not send any other requests.
20517    ///
20518    /// Servers, after sending the status response, should close the connection
20519    /// regardless of status and without sending an epitaph.
20520    ///
20521    /// Closing the client end of the channel should be semantically equivalent
20522    /// to calling `Close` without knowing when the close has completed or its
20523    /// status.
20524    Close {
20525        responder: BaseNetworkSocketCloseResponder,
20526    },
20527    Query {
20528        responder: BaseNetworkSocketQueryResponder,
20529    },
20530    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
20531    SetReuseAddress {
20532        value: bool,
20533        responder: BaseNetworkSocketSetReuseAddressResponder,
20534    },
20535    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
20536    GetReuseAddress {
20537        responder: BaseNetworkSocketGetReuseAddressResponder,
20538    },
20539    /// Get `SOL_SOCKET` -> `SO_ERROR`.
20540    /// Returns the last error if there is an error set on the socket.
20541    GetError {
20542        responder: BaseNetworkSocketGetErrorResponder,
20543    },
20544    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
20545    SetBroadcast {
20546        value: bool,
20547        responder: BaseNetworkSocketSetBroadcastResponder,
20548    },
20549    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
20550    GetBroadcast {
20551        responder: BaseNetworkSocketGetBroadcastResponder,
20552    },
20553    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
20554    SetSendBuffer {
20555        value_bytes: u64,
20556        responder: BaseNetworkSocketSetSendBufferResponder,
20557    },
20558    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
20559    GetSendBuffer {
20560        responder: BaseNetworkSocketGetSendBufferResponder,
20561    },
20562    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
20563    SetReceiveBuffer {
20564        value_bytes: u64,
20565        responder: BaseNetworkSocketSetReceiveBufferResponder,
20566    },
20567    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
20568    GetReceiveBuffer {
20569        responder: BaseNetworkSocketGetReceiveBufferResponder,
20570    },
20571    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
20572    SetKeepAlive {
20573        value: bool,
20574        responder: BaseNetworkSocketSetKeepAliveResponder,
20575    },
20576    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
20577    GetKeepAlive {
20578        responder: BaseNetworkSocketGetKeepAliveResponder,
20579    },
20580    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
20581    SetOutOfBandInline {
20582        value: bool,
20583        responder: BaseNetworkSocketSetOutOfBandInlineResponder,
20584    },
20585    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
20586    GetOutOfBandInline {
20587        responder: BaseNetworkSocketGetOutOfBandInlineResponder,
20588    },
20589    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
20590    SetNoCheck {
20591        value: bool,
20592        responder: BaseNetworkSocketSetNoCheckResponder,
20593    },
20594    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
20595    GetNoCheck {
20596        responder: BaseNetworkSocketGetNoCheckResponder,
20597    },
20598    /// Set `SOL_SOCKET` -> `SO_LINGER`.
20599    SetLinger {
20600        linger: bool,
20601        length_secs: u32,
20602        responder: BaseNetworkSocketSetLingerResponder,
20603    },
20604    /// Get `SOL_SOCKET` -> `SO_LINGER`.
20605    GetLinger {
20606        responder: BaseNetworkSocketGetLingerResponder,
20607    },
20608    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
20609    SetReusePort {
20610        value: bool,
20611        responder: BaseNetworkSocketSetReusePortResponder,
20612    },
20613    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
20614    GetReusePort {
20615        responder: BaseNetworkSocketGetReusePortResponder,
20616    },
20617    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
20618    GetAcceptConn {
20619        responder: BaseNetworkSocketGetAcceptConnResponder,
20620    },
20621    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
20622    SetBindToDevice {
20623        value: String,
20624        responder: BaseNetworkSocketSetBindToDeviceResponder,
20625    },
20626    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
20627    GetBindToDevice {
20628        responder: BaseNetworkSocketGetBindToDeviceResponder,
20629    },
20630    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
20631    /// If `value` is 0, this clears the bound interface.
20632    SetBindToInterfaceIndex {
20633        value: u64,
20634        responder: BaseNetworkSocketSetBindToInterfaceIndexResponder,
20635    },
20636    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
20637    GetBindToInterfaceIndex {
20638        responder: BaseNetworkSocketGetBindToInterfaceIndexResponder,
20639    },
20640    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
20641    SetTimestamp {
20642        value: TimestampOption,
20643        responder: BaseNetworkSocketSetTimestampResponder,
20644    },
20645    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
20646    GetTimestamp {
20647        responder: BaseNetworkSocketGetTimestampResponder,
20648    },
20649    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
20650    /// unlike the standard SO_MARK, this API has multiple mark domains and each
20651    /// mark can be set independently in each domain.
20652    SetMark {
20653        domain: fidl_fuchsia_net::MarkDomain,
20654        mark: OptionalUint32,
20655        responder: BaseNetworkSocketSetMarkResponder,
20656    },
20657    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
20658    /// unlike the standard SO_MARK, this API has multiple mark domains and each
20659    /// mark can be retrieved independently in each domain.
20660    GetMark {
20661        domain: fidl_fuchsia_net::MarkDomain,
20662        responder: BaseNetworkSocketGetMarkResponder,
20663    },
20664    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
20665    GetCookie {
20666        responder: BaseNetworkSocketGetCookieResponder,
20667    },
20668    /// Sets the local address used for the socket.
20669    Bind {
20670        addr: fidl_fuchsia_net::SocketAddress,
20671        responder: BaseNetworkSocketBindResponder,
20672    },
20673    /// Initiates a connection to a remote address.
20674    Connect {
20675        addr: fidl_fuchsia_net::SocketAddress,
20676        responder: BaseNetworkSocketConnectResponder,
20677    },
20678    /// Clears connection information from this socket.
20679    Disconnect {
20680        responder: BaseNetworkSocketDisconnectResponder,
20681    },
20682    /// Retrieves the local socket address.
20683    GetSockName {
20684        responder: BaseNetworkSocketGetSockNameResponder,
20685    },
20686    /// Retrieves the remote socket address.
20687    GetPeerName {
20688        responder: BaseNetworkSocketGetPeerNameResponder,
20689    },
20690    /// Shuts down part of the socket.
20691    Shutdown {
20692        mode: ShutdownMode,
20693        responder: BaseNetworkSocketShutdownResponder,
20694    },
20695    /// Set `SOL_IP` -> `IP_TOS`.
20696    SetIpTypeOfService {
20697        value: u8,
20698        responder: BaseNetworkSocketSetIpTypeOfServiceResponder,
20699    },
20700    /// Get `SOL_IP` -> `IP_TOS`.
20701    GetIpTypeOfService {
20702        responder: BaseNetworkSocketGetIpTypeOfServiceResponder,
20703    },
20704    /// Set `SOL_IP` -> `IP_TTL`.
20705    SetIpTtl {
20706        value: OptionalUint8,
20707        responder: BaseNetworkSocketSetIpTtlResponder,
20708    },
20709    /// Get `SOL_IP` -> `IP_TTL`.
20710    GetIpTtl {
20711        responder: BaseNetworkSocketGetIpTtlResponder,
20712    },
20713    /// Set `SOL_IP` -> `IP_PKTINFO`.
20714    SetIpPacketInfo {
20715        value: bool,
20716        responder: BaseNetworkSocketSetIpPacketInfoResponder,
20717    },
20718    /// Get `SOL_IP` -> `IP_PKTINFO`.
20719    GetIpPacketInfo {
20720        responder: BaseNetworkSocketGetIpPacketInfoResponder,
20721    },
20722    /// Set `SOL_IP` -> `IP_RECVTOS`.
20723    SetIpReceiveTypeOfService {
20724        value: bool,
20725        responder: BaseNetworkSocketSetIpReceiveTypeOfServiceResponder,
20726    },
20727    /// Get `SOL_IP` -> `IP_RECVTOS`.
20728    GetIpReceiveTypeOfService {
20729        responder: BaseNetworkSocketGetIpReceiveTypeOfServiceResponder,
20730    },
20731    /// Set `SOL_IP` -> `IP_RECVTTL`.
20732    SetIpReceiveTtl {
20733        value: bool,
20734        responder: BaseNetworkSocketSetIpReceiveTtlResponder,
20735    },
20736    /// Get `SOL_IP` -> `IP_RECVTTL`.
20737    GetIpReceiveTtl {
20738        responder: BaseNetworkSocketGetIpReceiveTtlResponder,
20739    },
20740    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
20741    SetIpMulticastInterface {
20742        iface: u64,
20743        address: fidl_fuchsia_net::Ipv4Address,
20744        responder: BaseNetworkSocketSetIpMulticastInterfaceResponder,
20745    },
20746    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
20747    GetIpMulticastInterface {
20748        responder: BaseNetworkSocketGetIpMulticastInterfaceResponder,
20749    },
20750    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
20751    SetIpMulticastTtl {
20752        value: OptionalUint8,
20753        responder: BaseNetworkSocketSetIpMulticastTtlResponder,
20754    },
20755    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
20756    GetIpMulticastTtl {
20757        responder: BaseNetworkSocketGetIpMulticastTtlResponder,
20758    },
20759    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
20760    SetIpMulticastLoopback {
20761        value: bool,
20762        responder: BaseNetworkSocketSetIpMulticastLoopbackResponder,
20763    },
20764    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
20765    GetIpMulticastLoopback {
20766        responder: BaseNetworkSocketGetIpMulticastLoopbackResponder,
20767    },
20768    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
20769    AddIpMembership {
20770        membership: IpMulticastMembership,
20771        responder: BaseNetworkSocketAddIpMembershipResponder,
20772    },
20773    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
20774    DropIpMembership {
20775        membership: IpMulticastMembership,
20776        responder: BaseNetworkSocketDropIpMembershipResponder,
20777    },
20778    /// Set `SOL_IP` -> `IP_TRANSPARENT`
20779    SetIpTransparent {
20780        value: bool,
20781        responder: BaseNetworkSocketSetIpTransparentResponder,
20782    },
20783    /// Get `SOL_IP` -> `IP_TRANSPARENT`
20784    GetIpTransparent {
20785        responder: BaseNetworkSocketGetIpTransparentResponder,
20786    },
20787    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
20788    SetIpReceiveOriginalDestinationAddress {
20789        value: bool,
20790        responder: BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResponder,
20791    },
20792    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
20793    GetIpReceiveOriginalDestinationAddress {
20794        responder: BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponder,
20795    },
20796    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
20797    AddIpv6Membership {
20798        membership: Ipv6MulticastMembership,
20799        responder: BaseNetworkSocketAddIpv6MembershipResponder,
20800    },
20801    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
20802    DropIpv6Membership {
20803        membership: Ipv6MulticastMembership,
20804        responder: BaseNetworkSocketDropIpv6MembershipResponder,
20805    },
20806    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
20807    SetIpv6MulticastInterface {
20808        value: u64,
20809        responder: BaseNetworkSocketSetIpv6MulticastInterfaceResponder,
20810    },
20811    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
20812    GetIpv6MulticastInterface {
20813        responder: BaseNetworkSocketGetIpv6MulticastInterfaceResponder,
20814    },
20815    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
20816    SetIpv6UnicastHops {
20817        value: OptionalUint8,
20818        responder: BaseNetworkSocketSetIpv6UnicastHopsResponder,
20819    },
20820    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
20821    GetIpv6UnicastHops {
20822        responder: BaseNetworkSocketGetIpv6UnicastHopsResponder,
20823    },
20824    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
20825    SetIpv6ReceiveHopLimit {
20826        value: bool,
20827        responder: BaseNetworkSocketSetIpv6ReceiveHopLimitResponder,
20828    },
20829    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
20830    GetIpv6ReceiveHopLimit {
20831        responder: BaseNetworkSocketGetIpv6ReceiveHopLimitResponder,
20832    },
20833    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
20834    SetIpv6MulticastHops {
20835        value: OptionalUint8,
20836        responder: BaseNetworkSocketSetIpv6MulticastHopsResponder,
20837    },
20838    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
20839    GetIpv6MulticastHops {
20840        responder: BaseNetworkSocketGetIpv6MulticastHopsResponder,
20841    },
20842    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
20843    SetIpv6MulticastLoopback {
20844        value: bool,
20845        responder: BaseNetworkSocketSetIpv6MulticastLoopbackResponder,
20846    },
20847    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
20848    GetIpv6MulticastLoopback {
20849        responder: BaseNetworkSocketGetIpv6MulticastLoopbackResponder,
20850    },
20851    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
20852    SetIpv6Only {
20853        value: bool,
20854        responder: BaseNetworkSocketSetIpv6OnlyResponder,
20855    },
20856    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
20857    GetIpv6Only {
20858        responder: BaseNetworkSocketGetIpv6OnlyResponder,
20859    },
20860    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
20861    SetIpv6ReceiveTrafficClass {
20862        value: bool,
20863        responder: BaseNetworkSocketSetIpv6ReceiveTrafficClassResponder,
20864    },
20865    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
20866    GetIpv6ReceiveTrafficClass {
20867        responder: BaseNetworkSocketGetIpv6ReceiveTrafficClassResponder,
20868    },
20869    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
20870    SetIpv6TrafficClass {
20871        value: OptionalUint8,
20872        responder: BaseNetworkSocketSetIpv6TrafficClassResponder,
20873    },
20874    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
20875    GetIpv6TrafficClass {
20876        responder: BaseNetworkSocketGetIpv6TrafficClassResponder,
20877    },
20878    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
20879    SetIpv6ReceivePacketInfo {
20880        value: bool,
20881        responder: BaseNetworkSocketSetIpv6ReceivePacketInfoResponder,
20882    },
20883    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
20884    GetIpv6ReceivePacketInfo {
20885        responder: BaseNetworkSocketGetIpv6ReceivePacketInfoResponder,
20886    },
20887    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
20888    GetOriginalDestination {
20889        responder: BaseNetworkSocketGetOriginalDestinationResponder,
20890    },
20891}
20892
20893impl BaseNetworkSocketRequest {
20894    #[allow(irrefutable_let_patterns)]
20895    pub fn into_clone(
20896        self,
20897    ) -> Option<(
20898        fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
20899        BaseNetworkSocketControlHandle,
20900    )> {
20901        if let BaseNetworkSocketRequest::Clone { request, control_handle } = self {
20902            Some((request, control_handle))
20903        } else {
20904            None
20905        }
20906    }
20907
20908    #[allow(irrefutable_let_patterns)]
20909    pub fn into_close(self) -> Option<(BaseNetworkSocketCloseResponder)> {
20910        if let BaseNetworkSocketRequest::Close { responder } = self {
20911            Some((responder))
20912        } else {
20913            None
20914        }
20915    }
20916
20917    #[allow(irrefutable_let_patterns)]
20918    pub fn into_query(self) -> Option<(BaseNetworkSocketQueryResponder)> {
20919        if let BaseNetworkSocketRequest::Query { responder } = self {
20920            Some((responder))
20921        } else {
20922            None
20923        }
20924    }
20925
20926    #[allow(irrefutable_let_patterns)]
20927    pub fn into_set_reuse_address(
20928        self,
20929    ) -> Option<(bool, BaseNetworkSocketSetReuseAddressResponder)> {
20930        if let BaseNetworkSocketRequest::SetReuseAddress { value, responder } = self {
20931            Some((value, responder))
20932        } else {
20933            None
20934        }
20935    }
20936
20937    #[allow(irrefutable_let_patterns)]
20938    pub fn into_get_reuse_address(self) -> Option<(BaseNetworkSocketGetReuseAddressResponder)> {
20939        if let BaseNetworkSocketRequest::GetReuseAddress { responder } = self {
20940            Some((responder))
20941        } else {
20942            None
20943        }
20944    }
20945
20946    #[allow(irrefutable_let_patterns)]
20947    pub fn into_get_error(self) -> Option<(BaseNetworkSocketGetErrorResponder)> {
20948        if let BaseNetworkSocketRequest::GetError { responder } = self {
20949            Some((responder))
20950        } else {
20951            None
20952        }
20953    }
20954
20955    #[allow(irrefutable_let_patterns)]
20956    pub fn into_set_broadcast(self) -> Option<(bool, BaseNetworkSocketSetBroadcastResponder)> {
20957        if let BaseNetworkSocketRequest::SetBroadcast { value, responder } = self {
20958            Some((value, responder))
20959        } else {
20960            None
20961        }
20962    }
20963
20964    #[allow(irrefutable_let_patterns)]
20965    pub fn into_get_broadcast(self) -> Option<(BaseNetworkSocketGetBroadcastResponder)> {
20966        if let BaseNetworkSocketRequest::GetBroadcast { responder } = self {
20967            Some((responder))
20968        } else {
20969            None
20970        }
20971    }
20972
20973    #[allow(irrefutable_let_patterns)]
20974    pub fn into_set_send_buffer(self) -> Option<(u64, BaseNetworkSocketSetSendBufferResponder)> {
20975        if let BaseNetworkSocketRequest::SetSendBuffer { value_bytes, responder } = self {
20976            Some((value_bytes, responder))
20977        } else {
20978            None
20979        }
20980    }
20981
20982    #[allow(irrefutable_let_patterns)]
20983    pub fn into_get_send_buffer(self) -> Option<(BaseNetworkSocketGetSendBufferResponder)> {
20984        if let BaseNetworkSocketRequest::GetSendBuffer { responder } = self {
20985            Some((responder))
20986        } else {
20987            None
20988        }
20989    }
20990
20991    #[allow(irrefutable_let_patterns)]
20992    pub fn into_set_receive_buffer(
20993        self,
20994    ) -> Option<(u64, BaseNetworkSocketSetReceiveBufferResponder)> {
20995        if let BaseNetworkSocketRequest::SetReceiveBuffer { value_bytes, responder } = self {
20996            Some((value_bytes, responder))
20997        } else {
20998            None
20999        }
21000    }
21001
21002    #[allow(irrefutable_let_patterns)]
21003    pub fn into_get_receive_buffer(self) -> Option<(BaseNetworkSocketGetReceiveBufferResponder)> {
21004        if let BaseNetworkSocketRequest::GetReceiveBuffer { responder } = self {
21005            Some((responder))
21006        } else {
21007            None
21008        }
21009    }
21010
21011    #[allow(irrefutable_let_patterns)]
21012    pub fn into_set_keep_alive(self) -> Option<(bool, BaseNetworkSocketSetKeepAliveResponder)> {
21013        if let BaseNetworkSocketRequest::SetKeepAlive { value, responder } = self {
21014            Some((value, responder))
21015        } else {
21016            None
21017        }
21018    }
21019
21020    #[allow(irrefutable_let_patterns)]
21021    pub fn into_get_keep_alive(self) -> Option<(BaseNetworkSocketGetKeepAliveResponder)> {
21022        if let BaseNetworkSocketRequest::GetKeepAlive { responder } = self {
21023            Some((responder))
21024        } else {
21025            None
21026        }
21027    }
21028
21029    #[allow(irrefutable_let_patterns)]
21030    pub fn into_set_out_of_band_inline(
21031        self,
21032    ) -> Option<(bool, BaseNetworkSocketSetOutOfBandInlineResponder)> {
21033        if let BaseNetworkSocketRequest::SetOutOfBandInline { value, responder } = self {
21034            Some((value, responder))
21035        } else {
21036            None
21037        }
21038    }
21039
21040    #[allow(irrefutable_let_patterns)]
21041    pub fn into_get_out_of_band_inline(
21042        self,
21043    ) -> Option<(BaseNetworkSocketGetOutOfBandInlineResponder)> {
21044        if let BaseNetworkSocketRequest::GetOutOfBandInline { responder } = self {
21045            Some((responder))
21046        } else {
21047            None
21048        }
21049    }
21050
21051    #[allow(irrefutable_let_patterns)]
21052    pub fn into_set_no_check(self) -> Option<(bool, BaseNetworkSocketSetNoCheckResponder)> {
21053        if let BaseNetworkSocketRequest::SetNoCheck { value, responder } = self {
21054            Some((value, responder))
21055        } else {
21056            None
21057        }
21058    }
21059
21060    #[allow(irrefutable_let_patterns)]
21061    pub fn into_get_no_check(self) -> Option<(BaseNetworkSocketGetNoCheckResponder)> {
21062        if let BaseNetworkSocketRequest::GetNoCheck { responder } = self {
21063            Some((responder))
21064        } else {
21065            None
21066        }
21067    }
21068
21069    #[allow(irrefutable_let_patterns)]
21070    pub fn into_set_linger(self) -> Option<(bool, u32, BaseNetworkSocketSetLingerResponder)> {
21071        if let BaseNetworkSocketRequest::SetLinger { linger, length_secs, responder } = self {
21072            Some((linger, length_secs, responder))
21073        } else {
21074            None
21075        }
21076    }
21077
21078    #[allow(irrefutable_let_patterns)]
21079    pub fn into_get_linger(self) -> Option<(BaseNetworkSocketGetLingerResponder)> {
21080        if let BaseNetworkSocketRequest::GetLinger { responder } = self {
21081            Some((responder))
21082        } else {
21083            None
21084        }
21085    }
21086
21087    #[allow(irrefutable_let_patterns)]
21088    pub fn into_set_reuse_port(self) -> Option<(bool, BaseNetworkSocketSetReusePortResponder)> {
21089        if let BaseNetworkSocketRequest::SetReusePort { value, responder } = self {
21090            Some((value, responder))
21091        } else {
21092            None
21093        }
21094    }
21095
21096    #[allow(irrefutable_let_patterns)]
21097    pub fn into_get_reuse_port(self) -> Option<(BaseNetworkSocketGetReusePortResponder)> {
21098        if let BaseNetworkSocketRequest::GetReusePort { responder } = self {
21099            Some((responder))
21100        } else {
21101            None
21102        }
21103    }
21104
21105    #[allow(irrefutable_let_patterns)]
21106    pub fn into_get_accept_conn(self) -> Option<(BaseNetworkSocketGetAcceptConnResponder)> {
21107        if let BaseNetworkSocketRequest::GetAcceptConn { responder } = self {
21108            Some((responder))
21109        } else {
21110            None
21111        }
21112    }
21113
21114    #[allow(irrefutable_let_patterns)]
21115    pub fn into_set_bind_to_device(
21116        self,
21117    ) -> Option<(String, BaseNetworkSocketSetBindToDeviceResponder)> {
21118        if let BaseNetworkSocketRequest::SetBindToDevice { value, responder } = self {
21119            Some((value, responder))
21120        } else {
21121            None
21122        }
21123    }
21124
21125    #[allow(irrefutable_let_patterns)]
21126    pub fn into_get_bind_to_device(self) -> Option<(BaseNetworkSocketGetBindToDeviceResponder)> {
21127        if let BaseNetworkSocketRequest::GetBindToDevice { responder } = self {
21128            Some((responder))
21129        } else {
21130            None
21131        }
21132    }
21133
21134    #[allow(irrefutable_let_patterns)]
21135    pub fn into_set_bind_to_interface_index(
21136        self,
21137    ) -> Option<(u64, BaseNetworkSocketSetBindToInterfaceIndexResponder)> {
21138        if let BaseNetworkSocketRequest::SetBindToInterfaceIndex { value, responder } = self {
21139            Some((value, responder))
21140        } else {
21141            None
21142        }
21143    }
21144
21145    #[allow(irrefutable_let_patterns)]
21146    pub fn into_get_bind_to_interface_index(
21147        self,
21148    ) -> Option<(BaseNetworkSocketGetBindToInterfaceIndexResponder)> {
21149        if let BaseNetworkSocketRequest::GetBindToInterfaceIndex { responder } = self {
21150            Some((responder))
21151        } else {
21152            None
21153        }
21154    }
21155
21156    #[allow(irrefutable_let_patterns)]
21157    pub fn into_set_timestamp(
21158        self,
21159    ) -> Option<(TimestampOption, BaseNetworkSocketSetTimestampResponder)> {
21160        if let BaseNetworkSocketRequest::SetTimestamp { value, responder } = self {
21161            Some((value, responder))
21162        } else {
21163            None
21164        }
21165    }
21166
21167    #[allow(irrefutable_let_patterns)]
21168    pub fn into_get_timestamp(self) -> Option<(BaseNetworkSocketGetTimestampResponder)> {
21169        if let BaseNetworkSocketRequest::GetTimestamp { responder } = self {
21170            Some((responder))
21171        } else {
21172            None
21173        }
21174    }
21175
21176    #[allow(irrefutable_let_patterns)]
21177    pub fn into_set_mark(
21178        self,
21179    ) -> Option<(fidl_fuchsia_net::MarkDomain, OptionalUint32, BaseNetworkSocketSetMarkResponder)>
21180    {
21181        if let BaseNetworkSocketRequest::SetMark { domain, mark, responder } = self {
21182            Some((domain, mark, responder))
21183        } else {
21184            None
21185        }
21186    }
21187
21188    #[allow(irrefutable_let_patterns)]
21189    pub fn into_get_mark(
21190        self,
21191    ) -> Option<(fidl_fuchsia_net::MarkDomain, BaseNetworkSocketGetMarkResponder)> {
21192        if let BaseNetworkSocketRequest::GetMark { domain, responder } = self {
21193            Some((domain, responder))
21194        } else {
21195            None
21196        }
21197    }
21198
21199    #[allow(irrefutable_let_patterns)]
21200    pub fn into_get_cookie(self) -> Option<(BaseNetworkSocketGetCookieResponder)> {
21201        if let BaseNetworkSocketRequest::GetCookie { responder } = self {
21202            Some((responder))
21203        } else {
21204            None
21205        }
21206    }
21207
21208    #[allow(irrefutable_let_patterns)]
21209    pub fn into_bind(
21210        self,
21211    ) -> Option<(fidl_fuchsia_net::SocketAddress, BaseNetworkSocketBindResponder)> {
21212        if let BaseNetworkSocketRequest::Bind { addr, responder } = self {
21213            Some((addr, responder))
21214        } else {
21215            None
21216        }
21217    }
21218
21219    #[allow(irrefutable_let_patterns)]
21220    pub fn into_connect(
21221        self,
21222    ) -> Option<(fidl_fuchsia_net::SocketAddress, BaseNetworkSocketConnectResponder)> {
21223        if let BaseNetworkSocketRequest::Connect { addr, responder } = self {
21224            Some((addr, responder))
21225        } else {
21226            None
21227        }
21228    }
21229
21230    #[allow(irrefutable_let_patterns)]
21231    pub fn into_disconnect(self) -> Option<(BaseNetworkSocketDisconnectResponder)> {
21232        if let BaseNetworkSocketRequest::Disconnect { responder } = self {
21233            Some((responder))
21234        } else {
21235            None
21236        }
21237    }
21238
21239    #[allow(irrefutable_let_patterns)]
21240    pub fn into_get_sock_name(self) -> Option<(BaseNetworkSocketGetSockNameResponder)> {
21241        if let BaseNetworkSocketRequest::GetSockName { responder } = self {
21242            Some((responder))
21243        } else {
21244            None
21245        }
21246    }
21247
21248    #[allow(irrefutable_let_patterns)]
21249    pub fn into_get_peer_name(self) -> Option<(BaseNetworkSocketGetPeerNameResponder)> {
21250        if let BaseNetworkSocketRequest::GetPeerName { responder } = self {
21251            Some((responder))
21252        } else {
21253            None
21254        }
21255    }
21256
21257    #[allow(irrefutable_let_patterns)]
21258    pub fn into_shutdown(self) -> Option<(ShutdownMode, BaseNetworkSocketShutdownResponder)> {
21259        if let BaseNetworkSocketRequest::Shutdown { mode, responder } = self {
21260            Some((mode, responder))
21261        } else {
21262            None
21263        }
21264    }
21265
21266    #[allow(irrefutable_let_patterns)]
21267    pub fn into_set_ip_type_of_service(
21268        self,
21269    ) -> Option<(u8, BaseNetworkSocketSetIpTypeOfServiceResponder)> {
21270        if let BaseNetworkSocketRequest::SetIpTypeOfService { value, responder } = self {
21271            Some((value, responder))
21272        } else {
21273            None
21274        }
21275    }
21276
21277    #[allow(irrefutable_let_patterns)]
21278    pub fn into_get_ip_type_of_service(
21279        self,
21280    ) -> Option<(BaseNetworkSocketGetIpTypeOfServiceResponder)> {
21281        if let BaseNetworkSocketRequest::GetIpTypeOfService { responder } = self {
21282            Some((responder))
21283        } else {
21284            None
21285        }
21286    }
21287
21288    #[allow(irrefutable_let_patterns)]
21289    pub fn into_set_ip_ttl(self) -> Option<(OptionalUint8, BaseNetworkSocketSetIpTtlResponder)> {
21290        if let BaseNetworkSocketRequest::SetIpTtl { value, responder } = self {
21291            Some((value, responder))
21292        } else {
21293            None
21294        }
21295    }
21296
21297    #[allow(irrefutable_let_patterns)]
21298    pub fn into_get_ip_ttl(self) -> Option<(BaseNetworkSocketGetIpTtlResponder)> {
21299        if let BaseNetworkSocketRequest::GetIpTtl { responder } = self {
21300            Some((responder))
21301        } else {
21302            None
21303        }
21304    }
21305
21306    #[allow(irrefutable_let_patterns)]
21307    pub fn into_set_ip_packet_info(
21308        self,
21309    ) -> Option<(bool, BaseNetworkSocketSetIpPacketInfoResponder)> {
21310        if let BaseNetworkSocketRequest::SetIpPacketInfo { value, responder } = self {
21311            Some((value, responder))
21312        } else {
21313            None
21314        }
21315    }
21316
21317    #[allow(irrefutable_let_patterns)]
21318    pub fn into_get_ip_packet_info(self) -> Option<(BaseNetworkSocketGetIpPacketInfoResponder)> {
21319        if let BaseNetworkSocketRequest::GetIpPacketInfo { responder } = self {
21320            Some((responder))
21321        } else {
21322            None
21323        }
21324    }
21325
21326    #[allow(irrefutable_let_patterns)]
21327    pub fn into_set_ip_receive_type_of_service(
21328        self,
21329    ) -> Option<(bool, BaseNetworkSocketSetIpReceiveTypeOfServiceResponder)> {
21330        if let BaseNetworkSocketRequest::SetIpReceiveTypeOfService { value, responder } = self {
21331            Some((value, responder))
21332        } else {
21333            None
21334        }
21335    }
21336
21337    #[allow(irrefutable_let_patterns)]
21338    pub fn into_get_ip_receive_type_of_service(
21339        self,
21340    ) -> Option<(BaseNetworkSocketGetIpReceiveTypeOfServiceResponder)> {
21341        if let BaseNetworkSocketRequest::GetIpReceiveTypeOfService { responder } = self {
21342            Some((responder))
21343        } else {
21344            None
21345        }
21346    }
21347
21348    #[allow(irrefutable_let_patterns)]
21349    pub fn into_set_ip_receive_ttl(
21350        self,
21351    ) -> Option<(bool, BaseNetworkSocketSetIpReceiveTtlResponder)> {
21352        if let BaseNetworkSocketRequest::SetIpReceiveTtl { value, responder } = self {
21353            Some((value, responder))
21354        } else {
21355            None
21356        }
21357    }
21358
21359    #[allow(irrefutable_let_patterns)]
21360    pub fn into_get_ip_receive_ttl(self) -> Option<(BaseNetworkSocketGetIpReceiveTtlResponder)> {
21361        if let BaseNetworkSocketRequest::GetIpReceiveTtl { responder } = self {
21362            Some((responder))
21363        } else {
21364            None
21365        }
21366    }
21367
21368    #[allow(irrefutable_let_patterns)]
21369    pub fn into_set_ip_multicast_interface(
21370        self,
21371    ) -> Option<(
21372        u64,
21373        fidl_fuchsia_net::Ipv4Address,
21374        BaseNetworkSocketSetIpMulticastInterfaceResponder,
21375    )> {
21376        if let BaseNetworkSocketRequest::SetIpMulticastInterface { iface, address, responder } =
21377            self
21378        {
21379            Some((iface, address, responder))
21380        } else {
21381            None
21382        }
21383    }
21384
21385    #[allow(irrefutable_let_patterns)]
21386    pub fn into_get_ip_multicast_interface(
21387        self,
21388    ) -> Option<(BaseNetworkSocketGetIpMulticastInterfaceResponder)> {
21389        if let BaseNetworkSocketRequest::GetIpMulticastInterface { responder } = self {
21390            Some((responder))
21391        } else {
21392            None
21393        }
21394    }
21395
21396    #[allow(irrefutable_let_patterns)]
21397    pub fn into_set_ip_multicast_ttl(
21398        self,
21399    ) -> Option<(OptionalUint8, BaseNetworkSocketSetIpMulticastTtlResponder)> {
21400        if let BaseNetworkSocketRequest::SetIpMulticastTtl { value, responder } = self {
21401            Some((value, responder))
21402        } else {
21403            None
21404        }
21405    }
21406
21407    #[allow(irrefutable_let_patterns)]
21408    pub fn into_get_ip_multicast_ttl(
21409        self,
21410    ) -> Option<(BaseNetworkSocketGetIpMulticastTtlResponder)> {
21411        if let BaseNetworkSocketRequest::GetIpMulticastTtl { responder } = self {
21412            Some((responder))
21413        } else {
21414            None
21415        }
21416    }
21417
21418    #[allow(irrefutable_let_patterns)]
21419    pub fn into_set_ip_multicast_loopback(
21420        self,
21421    ) -> Option<(bool, BaseNetworkSocketSetIpMulticastLoopbackResponder)> {
21422        if let BaseNetworkSocketRequest::SetIpMulticastLoopback { value, responder } = self {
21423            Some((value, responder))
21424        } else {
21425            None
21426        }
21427    }
21428
21429    #[allow(irrefutable_let_patterns)]
21430    pub fn into_get_ip_multicast_loopback(
21431        self,
21432    ) -> Option<(BaseNetworkSocketGetIpMulticastLoopbackResponder)> {
21433        if let BaseNetworkSocketRequest::GetIpMulticastLoopback { responder } = self {
21434            Some((responder))
21435        } else {
21436            None
21437        }
21438    }
21439
21440    #[allow(irrefutable_let_patterns)]
21441    pub fn into_add_ip_membership(
21442        self,
21443    ) -> Option<(IpMulticastMembership, BaseNetworkSocketAddIpMembershipResponder)> {
21444        if let BaseNetworkSocketRequest::AddIpMembership { membership, responder } = self {
21445            Some((membership, responder))
21446        } else {
21447            None
21448        }
21449    }
21450
21451    #[allow(irrefutable_let_patterns)]
21452    pub fn into_drop_ip_membership(
21453        self,
21454    ) -> Option<(IpMulticastMembership, BaseNetworkSocketDropIpMembershipResponder)> {
21455        if let BaseNetworkSocketRequest::DropIpMembership { membership, responder } = self {
21456            Some((membership, responder))
21457        } else {
21458            None
21459        }
21460    }
21461
21462    #[allow(irrefutable_let_patterns)]
21463    pub fn into_set_ip_transparent(
21464        self,
21465    ) -> Option<(bool, BaseNetworkSocketSetIpTransparentResponder)> {
21466        if let BaseNetworkSocketRequest::SetIpTransparent { 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_transparent(self) -> Option<(BaseNetworkSocketGetIpTransparentResponder)> {
21475        if let BaseNetworkSocketRequest::GetIpTransparent { responder } = self {
21476            Some((responder))
21477        } else {
21478            None
21479        }
21480    }
21481
21482    #[allow(irrefutable_let_patterns)]
21483    pub fn into_set_ip_receive_original_destination_address(
21484        self,
21485    ) -> Option<(bool, BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResponder)> {
21486        if let BaseNetworkSocketRequest::SetIpReceiveOriginalDestinationAddress {
21487            value,
21488            responder,
21489        } = self
21490        {
21491            Some((value, responder))
21492        } else {
21493            None
21494        }
21495    }
21496
21497    #[allow(irrefutable_let_patterns)]
21498    pub fn into_get_ip_receive_original_destination_address(
21499        self,
21500    ) -> Option<(BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponder)> {
21501        if let BaseNetworkSocketRequest::GetIpReceiveOriginalDestinationAddress { responder } = self
21502        {
21503            Some((responder))
21504        } else {
21505            None
21506        }
21507    }
21508
21509    #[allow(irrefutable_let_patterns)]
21510    pub fn into_add_ipv6_membership(
21511        self,
21512    ) -> Option<(Ipv6MulticastMembership, BaseNetworkSocketAddIpv6MembershipResponder)> {
21513        if let BaseNetworkSocketRequest::AddIpv6Membership { membership, responder } = self {
21514            Some((membership, responder))
21515        } else {
21516            None
21517        }
21518    }
21519
21520    #[allow(irrefutable_let_patterns)]
21521    pub fn into_drop_ipv6_membership(
21522        self,
21523    ) -> Option<(Ipv6MulticastMembership, BaseNetworkSocketDropIpv6MembershipResponder)> {
21524        if let BaseNetworkSocketRequest::DropIpv6Membership { membership, responder } = self {
21525            Some((membership, responder))
21526        } else {
21527            None
21528        }
21529    }
21530
21531    #[allow(irrefutable_let_patterns)]
21532    pub fn into_set_ipv6_multicast_interface(
21533        self,
21534    ) -> Option<(u64, BaseNetworkSocketSetIpv6MulticastInterfaceResponder)> {
21535        if let BaseNetworkSocketRequest::SetIpv6MulticastInterface { value, responder } = self {
21536            Some((value, responder))
21537        } else {
21538            None
21539        }
21540    }
21541
21542    #[allow(irrefutable_let_patterns)]
21543    pub fn into_get_ipv6_multicast_interface(
21544        self,
21545    ) -> Option<(BaseNetworkSocketGetIpv6MulticastInterfaceResponder)> {
21546        if let BaseNetworkSocketRequest::GetIpv6MulticastInterface { responder } = self {
21547            Some((responder))
21548        } else {
21549            None
21550        }
21551    }
21552
21553    #[allow(irrefutable_let_patterns)]
21554    pub fn into_set_ipv6_unicast_hops(
21555        self,
21556    ) -> Option<(OptionalUint8, BaseNetworkSocketSetIpv6UnicastHopsResponder)> {
21557        if let BaseNetworkSocketRequest::SetIpv6UnicastHops { value, responder } = self {
21558            Some((value, responder))
21559        } else {
21560            None
21561        }
21562    }
21563
21564    #[allow(irrefutable_let_patterns)]
21565    pub fn into_get_ipv6_unicast_hops(
21566        self,
21567    ) -> Option<(BaseNetworkSocketGetIpv6UnicastHopsResponder)> {
21568        if let BaseNetworkSocketRequest::GetIpv6UnicastHops { responder } = self {
21569            Some((responder))
21570        } else {
21571            None
21572        }
21573    }
21574
21575    #[allow(irrefutable_let_patterns)]
21576    pub fn into_set_ipv6_receive_hop_limit(
21577        self,
21578    ) -> Option<(bool, BaseNetworkSocketSetIpv6ReceiveHopLimitResponder)> {
21579        if let BaseNetworkSocketRequest::SetIpv6ReceiveHopLimit { 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_receive_hop_limit(
21588        self,
21589    ) -> Option<(BaseNetworkSocketGetIpv6ReceiveHopLimitResponder)> {
21590        if let BaseNetworkSocketRequest::GetIpv6ReceiveHopLimit { responder } = self {
21591            Some((responder))
21592        } else {
21593            None
21594        }
21595    }
21596
21597    #[allow(irrefutable_let_patterns)]
21598    pub fn into_set_ipv6_multicast_hops(
21599        self,
21600    ) -> Option<(OptionalUint8, BaseNetworkSocketSetIpv6MulticastHopsResponder)> {
21601        if let BaseNetworkSocketRequest::SetIpv6MulticastHops { 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_multicast_hops(
21610        self,
21611    ) -> Option<(BaseNetworkSocketGetIpv6MulticastHopsResponder)> {
21612        if let BaseNetworkSocketRequest::GetIpv6MulticastHops { responder } = self {
21613            Some((responder))
21614        } else {
21615            None
21616        }
21617    }
21618
21619    #[allow(irrefutable_let_patterns)]
21620    pub fn into_set_ipv6_multicast_loopback(
21621        self,
21622    ) -> Option<(bool, BaseNetworkSocketSetIpv6MulticastLoopbackResponder)> {
21623        if let BaseNetworkSocketRequest::SetIpv6MulticastLoopback { 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_multicast_loopback(
21632        self,
21633    ) -> Option<(BaseNetworkSocketGetIpv6MulticastLoopbackResponder)> {
21634        if let BaseNetworkSocketRequest::GetIpv6MulticastLoopback { responder } = self {
21635            Some((responder))
21636        } else {
21637            None
21638        }
21639    }
21640
21641    #[allow(irrefutable_let_patterns)]
21642    pub fn into_set_ipv6_only(self) -> Option<(bool, BaseNetworkSocketSetIpv6OnlyResponder)> {
21643        if let BaseNetworkSocketRequest::SetIpv6Only { value, responder } = self {
21644            Some((value, responder))
21645        } else {
21646            None
21647        }
21648    }
21649
21650    #[allow(irrefutable_let_patterns)]
21651    pub fn into_get_ipv6_only(self) -> Option<(BaseNetworkSocketGetIpv6OnlyResponder)> {
21652        if let BaseNetworkSocketRequest::GetIpv6Only { responder } = self {
21653            Some((responder))
21654        } else {
21655            None
21656        }
21657    }
21658
21659    #[allow(irrefutable_let_patterns)]
21660    pub fn into_set_ipv6_receive_traffic_class(
21661        self,
21662    ) -> Option<(bool, BaseNetworkSocketSetIpv6ReceiveTrafficClassResponder)> {
21663        if let BaseNetworkSocketRequest::SetIpv6ReceiveTrafficClass { value, responder } = self {
21664            Some((value, responder))
21665        } else {
21666            None
21667        }
21668    }
21669
21670    #[allow(irrefutable_let_patterns)]
21671    pub fn into_get_ipv6_receive_traffic_class(
21672        self,
21673    ) -> Option<(BaseNetworkSocketGetIpv6ReceiveTrafficClassResponder)> {
21674        if let BaseNetworkSocketRequest::GetIpv6ReceiveTrafficClass { responder } = self {
21675            Some((responder))
21676        } else {
21677            None
21678        }
21679    }
21680
21681    #[allow(irrefutable_let_patterns)]
21682    pub fn into_set_ipv6_traffic_class(
21683        self,
21684    ) -> Option<(OptionalUint8, BaseNetworkSocketSetIpv6TrafficClassResponder)> {
21685        if let BaseNetworkSocketRequest::SetIpv6TrafficClass { value, responder } = self {
21686            Some((value, responder))
21687        } else {
21688            None
21689        }
21690    }
21691
21692    #[allow(irrefutable_let_patterns)]
21693    pub fn into_get_ipv6_traffic_class(
21694        self,
21695    ) -> Option<(BaseNetworkSocketGetIpv6TrafficClassResponder)> {
21696        if let BaseNetworkSocketRequest::GetIpv6TrafficClass { responder } = self {
21697            Some((responder))
21698        } else {
21699            None
21700        }
21701    }
21702
21703    #[allow(irrefutable_let_patterns)]
21704    pub fn into_set_ipv6_receive_packet_info(
21705        self,
21706    ) -> Option<(bool, BaseNetworkSocketSetIpv6ReceivePacketInfoResponder)> {
21707        if let BaseNetworkSocketRequest::SetIpv6ReceivePacketInfo { 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_packet_info(
21716        self,
21717    ) -> Option<(BaseNetworkSocketGetIpv6ReceivePacketInfoResponder)> {
21718        if let BaseNetworkSocketRequest::GetIpv6ReceivePacketInfo { responder } = self {
21719            Some((responder))
21720        } else {
21721            None
21722        }
21723    }
21724
21725    #[allow(irrefutable_let_patterns)]
21726    pub fn into_get_original_destination(
21727        self,
21728    ) -> Option<(BaseNetworkSocketGetOriginalDestinationResponder)> {
21729        if let BaseNetworkSocketRequest::GetOriginalDestination { responder } = self {
21730            Some((responder))
21731        } else {
21732            None
21733        }
21734    }
21735
21736    /// Name of the method defined in FIDL
21737    pub fn method_name(&self) -> &'static str {
21738        match *self {
21739            BaseNetworkSocketRequest::Clone { .. } => "clone",
21740            BaseNetworkSocketRequest::Close { .. } => "close",
21741            BaseNetworkSocketRequest::Query { .. } => "query",
21742            BaseNetworkSocketRequest::SetReuseAddress { .. } => "set_reuse_address",
21743            BaseNetworkSocketRequest::GetReuseAddress { .. } => "get_reuse_address",
21744            BaseNetworkSocketRequest::GetError { .. } => "get_error",
21745            BaseNetworkSocketRequest::SetBroadcast { .. } => "set_broadcast",
21746            BaseNetworkSocketRequest::GetBroadcast { .. } => "get_broadcast",
21747            BaseNetworkSocketRequest::SetSendBuffer { .. } => "set_send_buffer",
21748            BaseNetworkSocketRequest::GetSendBuffer { .. } => "get_send_buffer",
21749            BaseNetworkSocketRequest::SetReceiveBuffer { .. } => "set_receive_buffer",
21750            BaseNetworkSocketRequest::GetReceiveBuffer { .. } => "get_receive_buffer",
21751            BaseNetworkSocketRequest::SetKeepAlive { .. } => "set_keep_alive",
21752            BaseNetworkSocketRequest::GetKeepAlive { .. } => "get_keep_alive",
21753            BaseNetworkSocketRequest::SetOutOfBandInline { .. } => "set_out_of_band_inline",
21754            BaseNetworkSocketRequest::GetOutOfBandInline { .. } => "get_out_of_band_inline",
21755            BaseNetworkSocketRequest::SetNoCheck { .. } => "set_no_check",
21756            BaseNetworkSocketRequest::GetNoCheck { .. } => "get_no_check",
21757            BaseNetworkSocketRequest::SetLinger { .. } => "set_linger",
21758            BaseNetworkSocketRequest::GetLinger { .. } => "get_linger",
21759            BaseNetworkSocketRequest::SetReusePort { .. } => "set_reuse_port",
21760            BaseNetworkSocketRequest::GetReusePort { .. } => "get_reuse_port",
21761            BaseNetworkSocketRequest::GetAcceptConn { .. } => "get_accept_conn",
21762            BaseNetworkSocketRequest::SetBindToDevice { .. } => "set_bind_to_device",
21763            BaseNetworkSocketRequest::GetBindToDevice { .. } => "get_bind_to_device",
21764            BaseNetworkSocketRequest::SetBindToInterfaceIndex { .. } => {
21765                "set_bind_to_interface_index"
21766            }
21767            BaseNetworkSocketRequest::GetBindToInterfaceIndex { .. } => {
21768                "get_bind_to_interface_index"
21769            }
21770            BaseNetworkSocketRequest::SetTimestamp { .. } => "set_timestamp",
21771            BaseNetworkSocketRequest::GetTimestamp { .. } => "get_timestamp",
21772            BaseNetworkSocketRequest::SetMark { .. } => "set_mark",
21773            BaseNetworkSocketRequest::GetMark { .. } => "get_mark",
21774            BaseNetworkSocketRequest::GetCookie { .. } => "get_cookie",
21775            BaseNetworkSocketRequest::Bind { .. } => "bind",
21776            BaseNetworkSocketRequest::Connect { .. } => "connect",
21777            BaseNetworkSocketRequest::Disconnect { .. } => "disconnect",
21778            BaseNetworkSocketRequest::GetSockName { .. } => "get_sock_name",
21779            BaseNetworkSocketRequest::GetPeerName { .. } => "get_peer_name",
21780            BaseNetworkSocketRequest::Shutdown { .. } => "shutdown",
21781            BaseNetworkSocketRequest::SetIpTypeOfService { .. } => "set_ip_type_of_service",
21782            BaseNetworkSocketRequest::GetIpTypeOfService { .. } => "get_ip_type_of_service",
21783            BaseNetworkSocketRequest::SetIpTtl { .. } => "set_ip_ttl",
21784            BaseNetworkSocketRequest::GetIpTtl { .. } => "get_ip_ttl",
21785            BaseNetworkSocketRequest::SetIpPacketInfo { .. } => "set_ip_packet_info",
21786            BaseNetworkSocketRequest::GetIpPacketInfo { .. } => "get_ip_packet_info",
21787            BaseNetworkSocketRequest::SetIpReceiveTypeOfService { .. } => {
21788                "set_ip_receive_type_of_service"
21789            }
21790            BaseNetworkSocketRequest::GetIpReceiveTypeOfService { .. } => {
21791                "get_ip_receive_type_of_service"
21792            }
21793            BaseNetworkSocketRequest::SetIpReceiveTtl { .. } => "set_ip_receive_ttl",
21794            BaseNetworkSocketRequest::GetIpReceiveTtl { .. } => "get_ip_receive_ttl",
21795            BaseNetworkSocketRequest::SetIpMulticastInterface { .. } => {
21796                "set_ip_multicast_interface"
21797            }
21798            BaseNetworkSocketRequest::GetIpMulticastInterface { .. } => {
21799                "get_ip_multicast_interface"
21800            }
21801            BaseNetworkSocketRequest::SetIpMulticastTtl { .. } => "set_ip_multicast_ttl",
21802            BaseNetworkSocketRequest::GetIpMulticastTtl { .. } => "get_ip_multicast_ttl",
21803            BaseNetworkSocketRequest::SetIpMulticastLoopback { .. } => "set_ip_multicast_loopback",
21804            BaseNetworkSocketRequest::GetIpMulticastLoopback { .. } => "get_ip_multicast_loopback",
21805            BaseNetworkSocketRequest::AddIpMembership { .. } => "add_ip_membership",
21806            BaseNetworkSocketRequest::DropIpMembership { .. } => "drop_ip_membership",
21807            BaseNetworkSocketRequest::SetIpTransparent { .. } => "set_ip_transparent",
21808            BaseNetworkSocketRequest::GetIpTransparent { .. } => "get_ip_transparent",
21809            BaseNetworkSocketRequest::SetIpReceiveOriginalDestinationAddress { .. } => {
21810                "set_ip_receive_original_destination_address"
21811            }
21812            BaseNetworkSocketRequest::GetIpReceiveOriginalDestinationAddress { .. } => {
21813                "get_ip_receive_original_destination_address"
21814            }
21815            BaseNetworkSocketRequest::AddIpv6Membership { .. } => "add_ipv6_membership",
21816            BaseNetworkSocketRequest::DropIpv6Membership { .. } => "drop_ipv6_membership",
21817            BaseNetworkSocketRequest::SetIpv6MulticastInterface { .. } => {
21818                "set_ipv6_multicast_interface"
21819            }
21820            BaseNetworkSocketRequest::GetIpv6MulticastInterface { .. } => {
21821                "get_ipv6_multicast_interface"
21822            }
21823            BaseNetworkSocketRequest::SetIpv6UnicastHops { .. } => "set_ipv6_unicast_hops",
21824            BaseNetworkSocketRequest::GetIpv6UnicastHops { .. } => "get_ipv6_unicast_hops",
21825            BaseNetworkSocketRequest::SetIpv6ReceiveHopLimit { .. } => "set_ipv6_receive_hop_limit",
21826            BaseNetworkSocketRequest::GetIpv6ReceiveHopLimit { .. } => "get_ipv6_receive_hop_limit",
21827            BaseNetworkSocketRequest::SetIpv6MulticastHops { .. } => "set_ipv6_multicast_hops",
21828            BaseNetworkSocketRequest::GetIpv6MulticastHops { .. } => "get_ipv6_multicast_hops",
21829            BaseNetworkSocketRequest::SetIpv6MulticastLoopback { .. } => {
21830                "set_ipv6_multicast_loopback"
21831            }
21832            BaseNetworkSocketRequest::GetIpv6MulticastLoopback { .. } => {
21833                "get_ipv6_multicast_loopback"
21834            }
21835            BaseNetworkSocketRequest::SetIpv6Only { .. } => "set_ipv6_only",
21836            BaseNetworkSocketRequest::GetIpv6Only { .. } => "get_ipv6_only",
21837            BaseNetworkSocketRequest::SetIpv6ReceiveTrafficClass { .. } => {
21838                "set_ipv6_receive_traffic_class"
21839            }
21840            BaseNetworkSocketRequest::GetIpv6ReceiveTrafficClass { .. } => {
21841                "get_ipv6_receive_traffic_class"
21842            }
21843            BaseNetworkSocketRequest::SetIpv6TrafficClass { .. } => "set_ipv6_traffic_class",
21844            BaseNetworkSocketRequest::GetIpv6TrafficClass { .. } => "get_ipv6_traffic_class",
21845            BaseNetworkSocketRequest::SetIpv6ReceivePacketInfo { .. } => {
21846                "set_ipv6_receive_packet_info"
21847            }
21848            BaseNetworkSocketRequest::GetIpv6ReceivePacketInfo { .. } => {
21849                "get_ipv6_receive_packet_info"
21850            }
21851            BaseNetworkSocketRequest::GetOriginalDestination { .. } => "get_original_destination",
21852        }
21853    }
21854}
21855
21856#[derive(Debug, Clone)]
21857pub struct BaseNetworkSocketControlHandle {
21858    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
21859}
21860
21861impl fidl::endpoints::ControlHandle for BaseNetworkSocketControlHandle {
21862    fn shutdown(&self) {
21863        self.inner.shutdown()
21864    }
21865    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
21866        self.inner.shutdown_with_epitaph(status)
21867    }
21868
21869    fn is_closed(&self) -> bool {
21870        self.inner.channel().is_closed()
21871    }
21872    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
21873        self.inner.channel().on_closed()
21874    }
21875
21876    #[cfg(target_os = "fuchsia")]
21877    fn signal_peer(
21878        &self,
21879        clear_mask: zx::Signals,
21880        set_mask: zx::Signals,
21881    ) -> Result<(), zx_status::Status> {
21882        use fidl::Peered;
21883        self.inner.channel().signal_peer(clear_mask, set_mask)
21884    }
21885}
21886
21887impl BaseNetworkSocketControlHandle {}
21888
21889#[must_use = "FIDL methods require a response to be sent"]
21890#[derive(Debug)]
21891pub struct BaseNetworkSocketCloseResponder {
21892    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
21893    tx_id: u32,
21894}
21895
21896/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
21897/// if the responder is dropped without sending a response, so that the client
21898/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
21899impl std::ops::Drop for BaseNetworkSocketCloseResponder {
21900    fn drop(&mut self) {
21901        self.control_handle.shutdown();
21902        // Safety: drops once, never accessed again
21903        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
21904    }
21905}
21906
21907impl fidl::endpoints::Responder for BaseNetworkSocketCloseResponder {
21908    type ControlHandle = BaseNetworkSocketControlHandle;
21909
21910    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
21911        &self.control_handle
21912    }
21913
21914    fn drop_without_shutdown(mut self) {
21915        // Safety: drops once, never accessed again due to mem::forget
21916        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
21917        // Prevent Drop from running (which would shut down the channel)
21918        std::mem::forget(self);
21919    }
21920}
21921
21922impl BaseNetworkSocketCloseResponder {
21923    /// Sends a response to the FIDL transaction.
21924    ///
21925    /// Sets the channel to shutdown if an error occurs.
21926    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
21927        let _result = self.send_raw(result);
21928        if _result.is_err() {
21929            self.control_handle.shutdown();
21930        }
21931        self.drop_without_shutdown();
21932        _result
21933    }
21934
21935    /// Similar to "send" but does not shutdown the channel if an error occurs.
21936    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
21937        let _result = self.send_raw(result);
21938        self.drop_without_shutdown();
21939        _result
21940    }
21941
21942    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
21943        self.control_handle
21944            .inner
21945            .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>>(
21946                result,
21947                self.tx_id,
21948                0x5ac5d459ad7f657e,
21949                fidl::encoding::DynamicFlags::empty(),
21950            )
21951    }
21952}
21953
21954#[must_use = "FIDL methods require a response to be sent"]
21955#[derive(Debug)]
21956pub struct BaseNetworkSocketQueryResponder {
21957    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
21958    tx_id: u32,
21959}
21960
21961/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
21962/// if the responder is dropped without sending a response, so that the client
21963/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
21964impl std::ops::Drop for BaseNetworkSocketQueryResponder {
21965    fn drop(&mut self) {
21966        self.control_handle.shutdown();
21967        // Safety: drops once, never accessed again
21968        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
21969    }
21970}
21971
21972impl fidl::endpoints::Responder for BaseNetworkSocketQueryResponder {
21973    type ControlHandle = BaseNetworkSocketControlHandle;
21974
21975    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
21976        &self.control_handle
21977    }
21978
21979    fn drop_without_shutdown(mut self) {
21980        // Safety: drops once, never accessed again due to mem::forget
21981        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
21982        // Prevent Drop from running (which would shut down the channel)
21983        std::mem::forget(self);
21984    }
21985}
21986
21987impl BaseNetworkSocketQueryResponder {
21988    /// Sends a response to the FIDL transaction.
21989    ///
21990    /// Sets the channel to shutdown if an error occurs.
21991    pub fn send(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
21992        let _result = self.send_raw(protocol);
21993        if _result.is_err() {
21994            self.control_handle.shutdown();
21995        }
21996        self.drop_without_shutdown();
21997        _result
21998    }
21999
22000    /// Similar to "send" but does not shutdown the channel if an error occurs.
22001    pub fn send_no_shutdown_on_err(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
22002        let _result = self.send_raw(protocol);
22003        self.drop_without_shutdown();
22004        _result
22005    }
22006
22007    fn send_raw(&self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
22008        self.control_handle.inner.send::<fidl_fuchsia_unknown::QueryableQueryResponse>(
22009            (protocol,),
22010            self.tx_id,
22011            0x2658edee9decfc06,
22012            fidl::encoding::DynamicFlags::empty(),
22013        )
22014    }
22015}
22016
22017#[must_use = "FIDL methods require a response to be sent"]
22018#[derive(Debug)]
22019pub struct BaseNetworkSocketSetReuseAddressResponder {
22020    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22021    tx_id: u32,
22022}
22023
22024/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22025/// if the responder is dropped without sending a response, so that the client
22026/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22027impl std::ops::Drop for BaseNetworkSocketSetReuseAddressResponder {
22028    fn drop(&mut self) {
22029        self.control_handle.shutdown();
22030        // Safety: drops once, never accessed again
22031        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22032    }
22033}
22034
22035impl fidl::endpoints::Responder for BaseNetworkSocketSetReuseAddressResponder {
22036    type ControlHandle = BaseNetworkSocketControlHandle;
22037
22038    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22039        &self.control_handle
22040    }
22041
22042    fn drop_without_shutdown(mut self) {
22043        // Safety: drops once, never accessed again due to mem::forget
22044        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22045        // Prevent Drop from running (which would shut down the channel)
22046        std::mem::forget(self);
22047    }
22048}
22049
22050impl BaseNetworkSocketSetReuseAddressResponder {
22051    /// Sends a response to the FIDL transaction.
22052    ///
22053    /// Sets the channel to shutdown if an error occurs.
22054    pub fn send(
22055        self,
22056        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22057    ) -> Result<(), fidl::Error> {
22058        let _result = self.send_raw(result);
22059        if _result.is_err() {
22060            self.control_handle.shutdown();
22061        }
22062        self.drop_without_shutdown();
22063        _result
22064    }
22065
22066    /// Similar to "send" but does not shutdown the channel if an error occurs.
22067    pub fn send_no_shutdown_on_err(
22068        self,
22069        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22070    ) -> Result<(), fidl::Error> {
22071        let _result = self.send_raw(result);
22072        self.drop_without_shutdown();
22073        _result
22074    }
22075
22076    fn send_raw(
22077        &self,
22078        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22079    ) -> Result<(), fidl::Error> {
22080        self.control_handle.inner.send::<fidl::encoding::ResultType<
22081            fidl::encoding::EmptyStruct,
22082            fidl_fuchsia_posix::Errno,
22083        >>(
22084            result,
22085            self.tx_id,
22086            0x1fd74ee8b9a4a876,
22087            fidl::encoding::DynamicFlags::empty(),
22088        )
22089    }
22090}
22091
22092#[must_use = "FIDL methods require a response to be sent"]
22093#[derive(Debug)]
22094pub struct BaseNetworkSocketGetReuseAddressResponder {
22095    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22096    tx_id: u32,
22097}
22098
22099/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22100/// if the responder is dropped without sending a response, so that the client
22101/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22102impl std::ops::Drop for BaseNetworkSocketGetReuseAddressResponder {
22103    fn drop(&mut self) {
22104        self.control_handle.shutdown();
22105        // Safety: drops once, never accessed again
22106        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22107    }
22108}
22109
22110impl fidl::endpoints::Responder for BaseNetworkSocketGetReuseAddressResponder {
22111    type ControlHandle = BaseNetworkSocketControlHandle;
22112
22113    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22114        &self.control_handle
22115    }
22116
22117    fn drop_without_shutdown(mut self) {
22118        // Safety: drops once, never accessed again due to mem::forget
22119        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22120        // Prevent Drop from running (which would shut down the channel)
22121        std::mem::forget(self);
22122    }
22123}
22124
22125impl BaseNetworkSocketGetReuseAddressResponder {
22126    /// Sends a response to the FIDL transaction.
22127    ///
22128    /// Sets the channel to shutdown if an error occurs.
22129    pub fn send(
22130        self,
22131        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
22132    ) -> Result<(), fidl::Error> {
22133        let _result = self.send_raw(result);
22134        if _result.is_err() {
22135            self.control_handle.shutdown();
22136        }
22137        self.drop_without_shutdown();
22138        _result
22139    }
22140
22141    /// Similar to "send" but does not shutdown the channel if an error occurs.
22142    pub fn send_no_shutdown_on_err(
22143        self,
22144        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
22145    ) -> Result<(), fidl::Error> {
22146        let _result = self.send_raw(result);
22147        self.drop_without_shutdown();
22148        _result
22149    }
22150
22151    fn send_raw(
22152        &self,
22153        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
22154    ) -> Result<(), fidl::Error> {
22155        self.control_handle.inner.send::<fidl::encoding::ResultType<
22156            BaseSocketGetReuseAddressResponse,
22157            fidl_fuchsia_posix::Errno,
22158        >>(
22159            result.map(|value| (value,)),
22160            self.tx_id,
22161            0x67b7206b8d1bc0a5,
22162            fidl::encoding::DynamicFlags::empty(),
22163        )
22164    }
22165}
22166
22167#[must_use = "FIDL methods require a response to be sent"]
22168#[derive(Debug)]
22169pub struct BaseNetworkSocketGetErrorResponder {
22170    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22171    tx_id: u32,
22172}
22173
22174/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22175/// if the responder is dropped without sending a response, so that the client
22176/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22177impl std::ops::Drop for BaseNetworkSocketGetErrorResponder {
22178    fn drop(&mut self) {
22179        self.control_handle.shutdown();
22180        // Safety: drops once, never accessed again
22181        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22182    }
22183}
22184
22185impl fidl::endpoints::Responder for BaseNetworkSocketGetErrorResponder {
22186    type ControlHandle = BaseNetworkSocketControlHandle;
22187
22188    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22189        &self.control_handle
22190    }
22191
22192    fn drop_without_shutdown(mut self) {
22193        // Safety: drops once, never accessed again due to mem::forget
22194        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22195        // Prevent Drop from running (which would shut down the channel)
22196        std::mem::forget(self);
22197    }
22198}
22199
22200impl BaseNetworkSocketGetErrorResponder {
22201    /// Sends a response to the FIDL transaction.
22202    ///
22203    /// Sets the channel to shutdown if an error occurs.
22204    pub fn send(
22205        self,
22206        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22207    ) -> Result<(), fidl::Error> {
22208        let _result = self.send_raw(result);
22209        if _result.is_err() {
22210            self.control_handle.shutdown();
22211        }
22212        self.drop_without_shutdown();
22213        _result
22214    }
22215
22216    /// Similar to "send" but does not shutdown the channel if an error occurs.
22217    pub fn send_no_shutdown_on_err(
22218        self,
22219        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22220    ) -> Result<(), fidl::Error> {
22221        let _result = self.send_raw(result);
22222        self.drop_without_shutdown();
22223        _result
22224    }
22225
22226    fn send_raw(
22227        &self,
22228        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22229    ) -> Result<(), fidl::Error> {
22230        self.control_handle.inner.send::<fidl::encoding::ResultType<
22231            fidl::encoding::EmptyStruct,
22232            fidl_fuchsia_posix::Errno,
22233        >>(
22234            result,
22235            self.tx_id,
22236            0x5aad39b33e5f6ebb,
22237            fidl::encoding::DynamicFlags::empty(),
22238        )
22239    }
22240}
22241
22242#[must_use = "FIDL methods require a response to be sent"]
22243#[derive(Debug)]
22244pub struct BaseNetworkSocketSetBroadcastResponder {
22245    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22246    tx_id: u32,
22247}
22248
22249/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22250/// if the responder is dropped without sending a response, so that the client
22251/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22252impl std::ops::Drop for BaseNetworkSocketSetBroadcastResponder {
22253    fn drop(&mut self) {
22254        self.control_handle.shutdown();
22255        // Safety: drops once, never accessed again
22256        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22257    }
22258}
22259
22260impl fidl::endpoints::Responder for BaseNetworkSocketSetBroadcastResponder {
22261    type ControlHandle = BaseNetworkSocketControlHandle;
22262
22263    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22264        &self.control_handle
22265    }
22266
22267    fn drop_without_shutdown(mut self) {
22268        // Safety: drops once, never accessed again due to mem::forget
22269        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22270        // Prevent Drop from running (which would shut down the channel)
22271        std::mem::forget(self);
22272    }
22273}
22274
22275impl BaseNetworkSocketSetBroadcastResponder {
22276    /// Sends a response to the FIDL transaction.
22277    ///
22278    /// Sets the channel to shutdown if an error occurs.
22279    pub fn send(
22280        self,
22281        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22282    ) -> Result<(), fidl::Error> {
22283        let _result = self.send_raw(result);
22284        if _result.is_err() {
22285            self.control_handle.shutdown();
22286        }
22287        self.drop_without_shutdown();
22288        _result
22289    }
22290
22291    /// Similar to "send" but does not shutdown the channel if an error occurs.
22292    pub fn send_no_shutdown_on_err(
22293        self,
22294        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22295    ) -> Result<(), fidl::Error> {
22296        let _result = self.send_raw(result);
22297        self.drop_without_shutdown();
22298        _result
22299    }
22300
22301    fn send_raw(
22302        &self,
22303        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22304    ) -> Result<(), fidl::Error> {
22305        self.control_handle.inner.send::<fidl::encoding::ResultType<
22306            fidl::encoding::EmptyStruct,
22307            fidl_fuchsia_posix::Errno,
22308        >>(
22309            result,
22310            self.tx_id,
22311            0x6023e081ce3cd947,
22312            fidl::encoding::DynamicFlags::empty(),
22313        )
22314    }
22315}
22316
22317#[must_use = "FIDL methods require a response to be sent"]
22318#[derive(Debug)]
22319pub struct BaseNetworkSocketGetBroadcastResponder {
22320    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22321    tx_id: u32,
22322}
22323
22324/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22325/// if the responder is dropped without sending a response, so that the client
22326/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22327impl std::ops::Drop for BaseNetworkSocketGetBroadcastResponder {
22328    fn drop(&mut self) {
22329        self.control_handle.shutdown();
22330        // Safety: drops once, never accessed again
22331        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22332    }
22333}
22334
22335impl fidl::endpoints::Responder for BaseNetworkSocketGetBroadcastResponder {
22336    type ControlHandle = BaseNetworkSocketControlHandle;
22337
22338    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22339        &self.control_handle
22340    }
22341
22342    fn drop_without_shutdown(mut self) {
22343        // Safety: drops once, never accessed again due to mem::forget
22344        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22345        // Prevent Drop from running (which would shut down the channel)
22346        std::mem::forget(self);
22347    }
22348}
22349
22350impl BaseNetworkSocketGetBroadcastResponder {
22351    /// Sends a response to the FIDL transaction.
22352    ///
22353    /// Sets the channel to shutdown if an error occurs.
22354    pub fn send(
22355        self,
22356        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
22357    ) -> Result<(), fidl::Error> {
22358        let _result = self.send_raw(result);
22359        if _result.is_err() {
22360            self.control_handle.shutdown();
22361        }
22362        self.drop_without_shutdown();
22363        _result
22364    }
22365
22366    /// Similar to "send" but does not shutdown the channel if an error occurs.
22367    pub fn send_no_shutdown_on_err(
22368        self,
22369        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
22370    ) -> Result<(), fidl::Error> {
22371        let _result = self.send_raw(result);
22372        self.drop_without_shutdown();
22373        _result
22374    }
22375
22376    fn send_raw(
22377        &self,
22378        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
22379    ) -> Result<(), fidl::Error> {
22380        self.control_handle.inner.send::<fidl::encoding::ResultType<
22381            BaseSocketGetBroadcastResponse,
22382            fidl_fuchsia_posix::Errno,
22383        >>(
22384            result.map(|value| (value,)),
22385            self.tx_id,
22386            0x68796fc556f9780d,
22387            fidl::encoding::DynamicFlags::empty(),
22388        )
22389    }
22390}
22391
22392#[must_use = "FIDL methods require a response to be sent"]
22393#[derive(Debug)]
22394pub struct BaseNetworkSocketSetSendBufferResponder {
22395    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22396    tx_id: u32,
22397}
22398
22399/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22400/// if the responder is dropped without sending a response, so that the client
22401/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22402impl std::ops::Drop for BaseNetworkSocketSetSendBufferResponder {
22403    fn drop(&mut self) {
22404        self.control_handle.shutdown();
22405        // Safety: drops once, never accessed again
22406        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22407    }
22408}
22409
22410impl fidl::endpoints::Responder for BaseNetworkSocketSetSendBufferResponder {
22411    type ControlHandle = BaseNetworkSocketControlHandle;
22412
22413    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22414        &self.control_handle
22415    }
22416
22417    fn drop_without_shutdown(mut self) {
22418        // Safety: drops once, never accessed again due to mem::forget
22419        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22420        // Prevent Drop from running (which would shut down the channel)
22421        std::mem::forget(self);
22422    }
22423}
22424
22425impl BaseNetworkSocketSetSendBufferResponder {
22426    /// Sends a response to the FIDL transaction.
22427    ///
22428    /// Sets the channel to shutdown if an error occurs.
22429    pub fn send(
22430        self,
22431        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22432    ) -> Result<(), fidl::Error> {
22433        let _result = self.send_raw(result);
22434        if _result.is_err() {
22435            self.control_handle.shutdown();
22436        }
22437        self.drop_without_shutdown();
22438        _result
22439    }
22440
22441    /// Similar to "send" but does not shutdown the channel if an error occurs.
22442    pub fn send_no_shutdown_on_err(
22443        self,
22444        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22445    ) -> Result<(), fidl::Error> {
22446        let _result = self.send_raw(result);
22447        self.drop_without_shutdown();
22448        _result
22449    }
22450
22451    fn send_raw(
22452        &self,
22453        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22454    ) -> Result<(), fidl::Error> {
22455        self.control_handle.inner.send::<fidl::encoding::ResultType<
22456            fidl::encoding::EmptyStruct,
22457            fidl_fuchsia_posix::Errno,
22458        >>(
22459            result,
22460            self.tx_id,
22461            0x756eac32d73a7a70,
22462            fidl::encoding::DynamicFlags::empty(),
22463        )
22464    }
22465}
22466
22467#[must_use = "FIDL methods require a response to be sent"]
22468#[derive(Debug)]
22469pub struct BaseNetworkSocketGetSendBufferResponder {
22470    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22471    tx_id: u32,
22472}
22473
22474/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22475/// if the responder is dropped without sending a response, so that the client
22476/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22477impl std::ops::Drop for BaseNetworkSocketGetSendBufferResponder {
22478    fn drop(&mut self) {
22479        self.control_handle.shutdown();
22480        // Safety: drops once, never accessed again
22481        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22482    }
22483}
22484
22485impl fidl::endpoints::Responder for BaseNetworkSocketGetSendBufferResponder {
22486    type ControlHandle = BaseNetworkSocketControlHandle;
22487
22488    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22489        &self.control_handle
22490    }
22491
22492    fn drop_without_shutdown(mut self) {
22493        // Safety: drops once, never accessed again due to mem::forget
22494        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22495        // Prevent Drop from running (which would shut down the channel)
22496        std::mem::forget(self);
22497    }
22498}
22499
22500impl BaseNetworkSocketGetSendBufferResponder {
22501    /// Sends a response to the FIDL transaction.
22502    ///
22503    /// Sets the channel to shutdown if an error occurs.
22504    pub fn send(
22505        self,
22506        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
22507    ) -> Result<(), fidl::Error> {
22508        let _result = self.send_raw(result);
22509        if _result.is_err() {
22510            self.control_handle.shutdown();
22511        }
22512        self.drop_without_shutdown();
22513        _result
22514    }
22515
22516    /// Similar to "send" but does not shutdown the channel if an error occurs.
22517    pub fn send_no_shutdown_on_err(
22518        self,
22519        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
22520    ) -> Result<(), fidl::Error> {
22521        let _result = self.send_raw(result);
22522        self.drop_without_shutdown();
22523        _result
22524    }
22525
22526    fn send_raw(
22527        &self,
22528        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
22529    ) -> Result<(), fidl::Error> {
22530        self.control_handle.inner.send::<fidl::encoding::ResultType<
22531            BaseSocketGetSendBufferResponse,
22532            fidl_fuchsia_posix::Errno,
22533        >>(
22534            result.map(|value_bytes| (value_bytes,)),
22535            self.tx_id,
22536            0x78a52fd9c7b2410b,
22537            fidl::encoding::DynamicFlags::empty(),
22538        )
22539    }
22540}
22541
22542#[must_use = "FIDL methods require a response to be sent"]
22543#[derive(Debug)]
22544pub struct BaseNetworkSocketSetReceiveBufferResponder {
22545    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22546    tx_id: u32,
22547}
22548
22549/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22550/// if the responder is dropped without sending a response, so that the client
22551/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22552impl std::ops::Drop for BaseNetworkSocketSetReceiveBufferResponder {
22553    fn drop(&mut self) {
22554        self.control_handle.shutdown();
22555        // Safety: drops once, never accessed again
22556        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22557    }
22558}
22559
22560impl fidl::endpoints::Responder for BaseNetworkSocketSetReceiveBufferResponder {
22561    type ControlHandle = BaseNetworkSocketControlHandle;
22562
22563    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22564        &self.control_handle
22565    }
22566
22567    fn drop_without_shutdown(mut self) {
22568        // Safety: drops once, never accessed again due to mem::forget
22569        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22570        // Prevent Drop from running (which would shut down the channel)
22571        std::mem::forget(self);
22572    }
22573}
22574
22575impl BaseNetworkSocketSetReceiveBufferResponder {
22576    /// Sends a response to the FIDL transaction.
22577    ///
22578    /// Sets the channel to shutdown if an error occurs.
22579    pub fn send(
22580        self,
22581        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22582    ) -> Result<(), fidl::Error> {
22583        let _result = self.send_raw(result);
22584        if _result.is_err() {
22585            self.control_handle.shutdown();
22586        }
22587        self.drop_without_shutdown();
22588        _result
22589    }
22590
22591    /// Similar to "send" but does not shutdown the channel if an error occurs.
22592    pub fn send_no_shutdown_on_err(
22593        self,
22594        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22595    ) -> Result<(), fidl::Error> {
22596        let _result = self.send_raw(result);
22597        self.drop_without_shutdown();
22598        _result
22599    }
22600
22601    fn send_raw(
22602        &self,
22603        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22604    ) -> Result<(), fidl::Error> {
22605        self.control_handle.inner.send::<fidl::encoding::ResultType<
22606            fidl::encoding::EmptyStruct,
22607            fidl_fuchsia_posix::Errno,
22608        >>(
22609            result,
22610            self.tx_id,
22611            0x6b0cf2f1919c7001,
22612            fidl::encoding::DynamicFlags::empty(),
22613        )
22614    }
22615}
22616
22617#[must_use = "FIDL methods require a response to be sent"]
22618#[derive(Debug)]
22619pub struct BaseNetworkSocketGetReceiveBufferResponder {
22620    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22621    tx_id: u32,
22622}
22623
22624/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22625/// if the responder is dropped without sending a response, so that the client
22626/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22627impl std::ops::Drop for BaseNetworkSocketGetReceiveBufferResponder {
22628    fn drop(&mut self) {
22629        self.control_handle.shutdown();
22630        // Safety: drops once, never accessed again
22631        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22632    }
22633}
22634
22635impl fidl::endpoints::Responder for BaseNetworkSocketGetReceiveBufferResponder {
22636    type ControlHandle = BaseNetworkSocketControlHandle;
22637
22638    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22639        &self.control_handle
22640    }
22641
22642    fn drop_without_shutdown(mut self) {
22643        // Safety: drops once, never accessed again due to mem::forget
22644        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22645        // Prevent Drop from running (which would shut down the channel)
22646        std::mem::forget(self);
22647    }
22648}
22649
22650impl BaseNetworkSocketGetReceiveBufferResponder {
22651    /// Sends a response to the FIDL transaction.
22652    ///
22653    /// Sets the channel to shutdown if an error occurs.
22654    pub fn send(
22655        self,
22656        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
22657    ) -> Result<(), fidl::Error> {
22658        let _result = self.send_raw(result);
22659        if _result.is_err() {
22660            self.control_handle.shutdown();
22661        }
22662        self.drop_without_shutdown();
22663        _result
22664    }
22665
22666    /// Similar to "send" but does not shutdown the channel if an error occurs.
22667    pub fn send_no_shutdown_on_err(
22668        self,
22669        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
22670    ) -> Result<(), fidl::Error> {
22671        let _result = self.send_raw(result);
22672        self.drop_without_shutdown();
22673        _result
22674    }
22675
22676    fn send_raw(
22677        &self,
22678        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
22679    ) -> Result<(), fidl::Error> {
22680        self.control_handle.inner.send::<fidl::encoding::ResultType<
22681            BaseSocketGetReceiveBufferResponse,
22682            fidl_fuchsia_posix::Errno,
22683        >>(
22684            result.map(|value_bytes| (value_bytes,)),
22685            self.tx_id,
22686            0x14c1a4b64f709e5c,
22687            fidl::encoding::DynamicFlags::empty(),
22688        )
22689    }
22690}
22691
22692#[must_use = "FIDL methods require a response to be sent"]
22693#[derive(Debug)]
22694pub struct BaseNetworkSocketSetKeepAliveResponder {
22695    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22696    tx_id: u32,
22697}
22698
22699/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22700/// if the responder is dropped without sending a response, so that the client
22701/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22702impl std::ops::Drop for BaseNetworkSocketSetKeepAliveResponder {
22703    fn drop(&mut self) {
22704        self.control_handle.shutdown();
22705        // Safety: drops once, never accessed again
22706        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22707    }
22708}
22709
22710impl fidl::endpoints::Responder for BaseNetworkSocketSetKeepAliveResponder {
22711    type ControlHandle = BaseNetworkSocketControlHandle;
22712
22713    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22714        &self.control_handle
22715    }
22716
22717    fn drop_without_shutdown(mut self) {
22718        // Safety: drops once, never accessed again due to mem::forget
22719        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22720        // Prevent Drop from running (which would shut down the channel)
22721        std::mem::forget(self);
22722    }
22723}
22724
22725impl BaseNetworkSocketSetKeepAliveResponder {
22726    /// Sends a response to the FIDL transaction.
22727    ///
22728    /// Sets the channel to shutdown if an error occurs.
22729    pub fn send(
22730        self,
22731        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22732    ) -> Result<(), fidl::Error> {
22733        let _result = self.send_raw(result);
22734        if _result.is_err() {
22735            self.control_handle.shutdown();
22736        }
22737        self.drop_without_shutdown();
22738        _result
22739    }
22740
22741    /// Similar to "send" but does not shutdown the channel if an error occurs.
22742    pub fn send_no_shutdown_on_err(
22743        self,
22744        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22745    ) -> Result<(), fidl::Error> {
22746        let _result = self.send_raw(result);
22747        self.drop_without_shutdown();
22748        _result
22749    }
22750
22751    fn send_raw(
22752        &self,
22753        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22754    ) -> Result<(), fidl::Error> {
22755        self.control_handle.inner.send::<fidl::encoding::ResultType<
22756            fidl::encoding::EmptyStruct,
22757            fidl_fuchsia_posix::Errno,
22758        >>(
22759            result,
22760            self.tx_id,
22761            0x572df8f0b920d2c7,
22762            fidl::encoding::DynamicFlags::empty(),
22763        )
22764    }
22765}
22766
22767#[must_use = "FIDL methods require a response to be sent"]
22768#[derive(Debug)]
22769pub struct BaseNetworkSocketGetKeepAliveResponder {
22770    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22771    tx_id: u32,
22772}
22773
22774/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22775/// if the responder is dropped without sending a response, so that the client
22776/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22777impl std::ops::Drop for BaseNetworkSocketGetKeepAliveResponder {
22778    fn drop(&mut self) {
22779        self.control_handle.shutdown();
22780        // Safety: drops once, never accessed again
22781        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22782    }
22783}
22784
22785impl fidl::endpoints::Responder for BaseNetworkSocketGetKeepAliveResponder {
22786    type ControlHandle = BaseNetworkSocketControlHandle;
22787
22788    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22789        &self.control_handle
22790    }
22791
22792    fn drop_without_shutdown(mut self) {
22793        // Safety: drops once, never accessed again due to mem::forget
22794        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22795        // Prevent Drop from running (which would shut down the channel)
22796        std::mem::forget(self);
22797    }
22798}
22799
22800impl BaseNetworkSocketGetKeepAliveResponder {
22801    /// Sends a response to the FIDL transaction.
22802    ///
22803    /// Sets the channel to shutdown if an error occurs.
22804    pub fn send(
22805        self,
22806        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
22807    ) -> Result<(), fidl::Error> {
22808        let _result = self.send_raw(result);
22809        if _result.is_err() {
22810            self.control_handle.shutdown();
22811        }
22812        self.drop_without_shutdown();
22813        _result
22814    }
22815
22816    /// Similar to "send" but does not shutdown the channel if an error occurs.
22817    pub fn send_no_shutdown_on_err(
22818        self,
22819        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
22820    ) -> Result<(), fidl::Error> {
22821        let _result = self.send_raw(result);
22822        self.drop_without_shutdown();
22823        _result
22824    }
22825
22826    fn send_raw(
22827        &self,
22828        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
22829    ) -> Result<(), fidl::Error> {
22830        self.control_handle.inner.send::<fidl::encoding::ResultType<
22831            BaseSocketGetKeepAliveResponse,
22832            fidl_fuchsia_posix::Errno,
22833        >>(
22834            result.map(|value| (value,)),
22835            self.tx_id,
22836            0x2dd29d3215f2c9d2,
22837            fidl::encoding::DynamicFlags::empty(),
22838        )
22839    }
22840}
22841
22842#[must_use = "FIDL methods require a response to be sent"]
22843#[derive(Debug)]
22844pub struct BaseNetworkSocketSetOutOfBandInlineResponder {
22845    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22846    tx_id: u32,
22847}
22848
22849/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22850/// if the responder is dropped without sending a response, so that the client
22851/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22852impl std::ops::Drop for BaseNetworkSocketSetOutOfBandInlineResponder {
22853    fn drop(&mut self) {
22854        self.control_handle.shutdown();
22855        // Safety: drops once, never accessed again
22856        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22857    }
22858}
22859
22860impl fidl::endpoints::Responder for BaseNetworkSocketSetOutOfBandInlineResponder {
22861    type ControlHandle = BaseNetworkSocketControlHandle;
22862
22863    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22864        &self.control_handle
22865    }
22866
22867    fn drop_without_shutdown(mut self) {
22868        // Safety: drops once, never accessed again due to mem::forget
22869        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22870        // Prevent Drop from running (which would shut down the channel)
22871        std::mem::forget(self);
22872    }
22873}
22874
22875impl BaseNetworkSocketSetOutOfBandInlineResponder {
22876    /// Sends a response to the FIDL transaction.
22877    ///
22878    /// Sets the channel to shutdown if an error occurs.
22879    pub fn send(
22880        self,
22881        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22882    ) -> Result<(), fidl::Error> {
22883        let _result = self.send_raw(result);
22884        if _result.is_err() {
22885            self.control_handle.shutdown();
22886        }
22887        self.drop_without_shutdown();
22888        _result
22889    }
22890
22891    /// Similar to "send" but does not shutdown the channel if an error occurs.
22892    pub fn send_no_shutdown_on_err(
22893        self,
22894        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22895    ) -> Result<(), fidl::Error> {
22896        let _result = self.send_raw(result);
22897        self.drop_without_shutdown();
22898        _result
22899    }
22900
22901    fn send_raw(
22902        &self,
22903        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22904    ) -> Result<(), fidl::Error> {
22905        self.control_handle.inner.send::<fidl::encoding::ResultType<
22906            fidl::encoding::EmptyStruct,
22907            fidl_fuchsia_posix::Errno,
22908        >>(
22909            result,
22910            self.tx_id,
22911            0x3ecb49968bee439,
22912            fidl::encoding::DynamicFlags::empty(),
22913        )
22914    }
22915}
22916
22917#[must_use = "FIDL methods require a response to be sent"]
22918#[derive(Debug)]
22919pub struct BaseNetworkSocketGetOutOfBandInlineResponder {
22920    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22921    tx_id: u32,
22922}
22923
22924/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22925/// if the responder is dropped without sending a response, so that the client
22926/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22927impl std::ops::Drop for BaseNetworkSocketGetOutOfBandInlineResponder {
22928    fn drop(&mut self) {
22929        self.control_handle.shutdown();
22930        // Safety: drops once, never accessed again
22931        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22932    }
22933}
22934
22935impl fidl::endpoints::Responder for BaseNetworkSocketGetOutOfBandInlineResponder {
22936    type ControlHandle = BaseNetworkSocketControlHandle;
22937
22938    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22939        &self.control_handle
22940    }
22941
22942    fn drop_without_shutdown(mut self) {
22943        // Safety: drops once, never accessed again due to mem::forget
22944        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22945        // Prevent Drop from running (which would shut down the channel)
22946        std::mem::forget(self);
22947    }
22948}
22949
22950impl BaseNetworkSocketGetOutOfBandInlineResponder {
22951    /// Sends a response to the FIDL transaction.
22952    ///
22953    /// Sets the channel to shutdown if an error occurs.
22954    pub fn send(
22955        self,
22956        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
22957    ) -> Result<(), fidl::Error> {
22958        let _result = self.send_raw(result);
22959        if _result.is_err() {
22960            self.control_handle.shutdown();
22961        }
22962        self.drop_without_shutdown();
22963        _result
22964    }
22965
22966    /// Similar to "send" but does not shutdown the channel if an error occurs.
22967    pub fn send_no_shutdown_on_err(
22968        self,
22969        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
22970    ) -> Result<(), fidl::Error> {
22971        let _result = self.send_raw(result);
22972        self.drop_without_shutdown();
22973        _result
22974    }
22975
22976    fn send_raw(
22977        &self,
22978        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
22979    ) -> Result<(), fidl::Error> {
22980        self.control_handle.inner.send::<fidl::encoding::ResultType<
22981            BaseSocketGetOutOfBandInlineResponse,
22982            fidl_fuchsia_posix::Errno,
22983        >>(
22984            result.map(|value| (value,)),
22985            self.tx_id,
22986            0x348c1ab3aeca1745,
22987            fidl::encoding::DynamicFlags::empty(),
22988        )
22989    }
22990}
22991
22992#[must_use = "FIDL methods require a response to be sent"]
22993#[derive(Debug)]
22994pub struct BaseNetworkSocketSetNoCheckResponder {
22995    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22996    tx_id: u32,
22997}
22998
22999/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23000/// if the responder is dropped without sending a response, so that the client
23001/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23002impl std::ops::Drop for BaseNetworkSocketSetNoCheckResponder {
23003    fn drop(&mut self) {
23004        self.control_handle.shutdown();
23005        // Safety: drops once, never accessed again
23006        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23007    }
23008}
23009
23010impl fidl::endpoints::Responder for BaseNetworkSocketSetNoCheckResponder {
23011    type ControlHandle = BaseNetworkSocketControlHandle;
23012
23013    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23014        &self.control_handle
23015    }
23016
23017    fn drop_without_shutdown(mut self) {
23018        // Safety: drops once, never accessed again due to mem::forget
23019        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23020        // Prevent Drop from running (which would shut down the channel)
23021        std::mem::forget(self);
23022    }
23023}
23024
23025impl BaseNetworkSocketSetNoCheckResponder {
23026    /// Sends a response to the FIDL transaction.
23027    ///
23028    /// Sets the channel to shutdown if an error occurs.
23029    pub fn send(
23030        self,
23031        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23032    ) -> Result<(), fidl::Error> {
23033        let _result = self.send_raw(result);
23034        if _result.is_err() {
23035            self.control_handle.shutdown();
23036        }
23037        self.drop_without_shutdown();
23038        _result
23039    }
23040
23041    /// Similar to "send" but does not shutdown the channel if an error occurs.
23042    pub fn send_no_shutdown_on_err(
23043        self,
23044        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23045    ) -> Result<(), fidl::Error> {
23046        let _result = self.send_raw(result);
23047        self.drop_without_shutdown();
23048        _result
23049    }
23050
23051    fn send_raw(
23052        &self,
23053        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23054    ) -> Result<(), fidl::Error> {
23055        self.control_handle.inner.send::<fidl::encoding::ResultType<
23056            fidl::encoding::EmptyStruct,
23057            fidl_fuchsia_posix::Errno,
23058        >>(
23059            result,
23060            self.tx_id,
23061            0x6bbf00c53a4c78c2,
23062            fidl::encoding::DynamicFlags::empty(),
23063        )
23064    }
23065}
23066
23067#[must_use = "FIDL methods require a response to be sent"]
23068#[derive(Debug)]
23069pub struct BaseNetworkSocketGetNoCheckResponder {
23070    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23071    tx_id: u32,
23072}
23073
23074/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23075/// if the responder is dropped without sending a response, so that the client
23076/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23077impl std::ops::Drop for BaseNetworkSocketGetNoCheckResponder {
23078    fn drop(&mut self) {
23079        self.control_handle.shutdown();
23080        // Safety: drops once, never accessed again
23081        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23082    }
23083}
23084
23085impl fidl::endpoints::Responder for BaseNetworkSocketGetNoCheckResponder {
23086    type ControlHandle = BaseNetworkSocketControlHandle;
23087
23088    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23089        &self.control_handle
23090    }
23091
23092    fn drop_without_shutdown(mut self) {
23093        // Safety: drops once, never accessed again due to mem::forget
23094        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23095        // Prevent Drop from running (which would shut down the channel)
23096        std::mem::forget(self);
23097    }
23098}
23099
23100impl BaseNetworkSocketGetNoCheckResponder {
23101    /// Sends a response to the FIDL transaction.
23102    ///
23103    /// Sets the channel to shutdown if an error occurs.
23104    pub fn send(
23105        self,
23106        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
23107    ) -> Result<(), fidl::Error> {
23108        let _result = self.send_raw(result);
23109        if _result.is_err() {
23110            self.control_handle.shutdown();
23111        }
23112        self.drop_without_shutdown();
23113        _result
23114    }
23115
23116    /// Similar to "send" but does not shutdown the channel if an error occurs.
23117    pub fn send_no_shutdown_on_err(
23118        self,
23119        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
23120    ) -> Result<(), fidl::Error> {
23121        let _result = self.send_raw(result);
23122        self.drop_without_shutdown();
23123        _result
23124    }
23125
23126    fn send_raw(
23127        &self,
23128        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
23129    ) -> Result<(), fidl::Error> {
23130        self.control_handle.inner.send::<fidl::encoding::ResultType<
23131            BaseSocketGetNoCheckResponse,
23132            fidl_fuchsia_posix::Errno,
23133        >>(
23134            result.map(|value| (value,)),
23135            self.tx_id,
23136            0x2cd4249286417694,
23137            fidl::encoding::DynamicFlags::empty(),
23138        )
23139    }
23140}
23141
23142#[must_use = "FIDL methods require a response to be sent"]
23143#[derive(Debug)]
23144pub struct BaseNetworkSocketSetLingerResponder {
23145    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23146    tx_id: u32,
23147}
23148
23149/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23150/// if the responder is dropped without sending a response, so that the client
23151/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23152impl std::ops::Drop for BaseNetworkSocketSetLingerResponder {
23153    fn drop(&mut self) {
23154        self.control_handle.shutdown();
23155        // Safety: drops once, never accessed again
23156        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23157    }
23158}
23159
23160impl fidl::endpoints::Responder for BaseNetworkSocketSetLingerResponder {
23161    type ControlHandle = BaseNetworkSocketControlHandle;
23162
23163    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23164        &self.control_handle
23165    }
23166
23167    fn drop_without_shutdown(mut self) {
23168        // Safety: drops once, never accessed again due to mem::forget
23169        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23170        // Prevent Drop from running (which would shut down the channel)
23171        std::mem::forget(self);
23172    }
23173}
23174
23175impl BaseNetworkSocketSetLingerResponder {
23176    /// Sends a response to the FIDL transaction.
23177    ///
23178    /// Sets the channel to shutdown if an error occurs.
23179    pub fn send(
23180        self,
23181        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23182    ) -> Result<(), fidl::Error> {
23183        let _result = self.send_raw(result);
23184        if _result.is_err() {
23185            self.control_handle.shutdown();
23186        }
23187        self.drop_without_shutdown();
23188        _result
23189    }
23190
23191    /// Similar to "send" but does not shutdown the channel if an error occurs.
23192    pub fn send_no_shutdown_on_err(
23193        self,
23194        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23195    ) -> Result<(), fidl::Error> {
23196        let _result = self.send_raw(result);
23197        self.drop_without_shutdown();
23198        _result
23199    }
23200
23201    fn send_raw(
23202        &self,
23203        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23204    ) -> Result<(), fidl::Error> {
23205        self.control_handle.inner.send::<fidl::encoding::ResultType<
23206            fidl::encoding::EmptyStruct,
23207            fidl_fuchsia_posix::Errno,
23208        >>(
23209            result,
23210            self.tx_id,
23211            0x45386351246e998e,
23212            fidl::encoding::DynamicFlags::empty(),
23213        )
23214    }
23215}
23216
23217#[must_use = "FIDL methods require a response to be sent"]
23218#[derive(Debug)]
23219pub struct BaseNetworkSocketGetLingerResponder {
23220    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23221    tx_id: u32,
23222}
23223
23224/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23225/// if the responder is dropped without sending a response, so that the client
23226/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23227impl std::ops::Drop for BaseNetworkSocketGetLingerResponder {
23228    fn drop(&mut self) {
23229        self.control_handle.shutdown();
23230        // Safety: drops once, never accessed again
23231        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23232    }
23233}
23234
23235impl fidl::endpoints::Responder for BaseNetworkSocketGetLingerResponder {
23236    type ControlHandle = BaseNetworkSocketControlHandle;
23237
23238    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23239        &self.control_handle
23240    }
23241
23242    fn drop_without_shutdown(mut self) {
23243        // Safety: drops once, never accessed again due to mem::forget
23244        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23245        // Prevent Drop from running (which would shut down the channel)
23246        std::mem::forget(self);
23247    }
23248}
23249
23250impl BaseNetworkSocketGetLingerResponder {
23251    /// Sends a response to the FIDL transaction.
23252    ///
23253    /// Sets the channel to shutdown if an error occurs.
23254    pub fn send(
23255        self,
23256        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
23257    ) -> Result<(), fidl::Error> {
23258        let _result = self.send_raw(result);
23259        if _result.is_err() {
23260            self.control_handle.shutdown();
23261        }
23262        self.drop_without_shutdown();
23263        _result
23264    }
23265
23266    /// Similar to "send" but does not shutdown the channel if an error occurs.
23267    pub fn send_no_shutdown_on_err(
23268        self,
23269        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
23270    ) -> Result<(), fidl::Error> {
23271        let _result = self.send_raw(result);
23272        self.drop_without_shutdown();
23273        _result
23274    }
23275
23276    fn send_raw(
23277        &self,
23278        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
23279    ) -> Result<(), fidl::Error> {
23280        self.control_handle.inner.send::<fidl::encoding::ResultType<
23281            BaseSocketGetLingerResponse,
23282            fidl_fuchsia_posix::Errno,
23283        >>(
23284            result,
23285            self.tx_id,
23286            0x48eb20fc5ccb0e45,
23287            fidl::encoding::DynamicFlags::empty(),
23288        )
23289    }
23290}
23291
23292#[must_use = "FIDL methods require a response to be sent"]
23293#[derive(Debug)]
23294pub struct BaseNetworkSocketSetReusePortResponder {
23295    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23296    tx_id: u32,
23297}
23298
23299/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23300/// if the responder is dropped without sending a response, so that the client
23301/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23302impl std::ops::Drop for BaseNetworkSocketSetReusePortResponder {
23303    fn drop(&mut self) {
23304        self.control_handle.shutdown();
23305        // Safety: drops once, never accessed again
23306        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23307    }
23308}
23309
23310impl fidl::endpoints::Responder for BaseNetworkSocketSetReusePortResponder {
23311    type ControlHandle = BaseNetworkSocketControlHandle;
23312
23313    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23314        &self.control_handle
23315    }
23316
23317    fn drop_without_shutdown(mut self) {
23318        // Safety: drops once, never accessed again due to mem::forget
23319        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23320        // Prevent Drop from running (which would shut down the channel)
23321        std::mem::forget(self);
23322    }
23323}
23324
23325impl BaseNetworkSocketSetReusePortResponder {
23326    /// Sends a response to the FIDL transaction.
23327    ///
23328    /// Sets the channel to shutdown if an error occurs.
23329    pub fn send(
23330        self,
23331        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23332    ) -> Result<(), fidl::Error> {
23333        let _result = self.send_raw(result);
23334        if _result.is_err() {
23335            self.control_handle.shutdown();
23336        }
23337        self.drop_without_shutdown();
23338        _result
23339    }
23340
23341    /// Similar to "send" but does not shutdown the channel if an error occurs.
23342    pub fn send_no_shutdown_on_err(
23343        self,
23344        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23345    ) -> Result<(), fidl::Error> {
23346        let _result = self.send_raw(result);
23347        self.drop_without_shutdown();
23348        _result
23349    }
23350
23351    fn send_raw(
23352        &self,
23353        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23354    ) -> Result<(), fidl::Error> {
23355        self.control_handle.inner.send::<fidl::encoding::ResultType<
23356            fidl::encoding::EmptyStruct,
23357            fidl_fuchsia_posix::Errno,
23358        >>(
23359            result,
23360            self.tx_id,
23361            0x24dd3e5cb36d9ccb,
23362            fidl::encoding::DynamicFlags::empty(),
23363        )
23364    }
23365}
23366
23367#[must_use = "FIDL methods require a response to be sent"]
23368#[derive(Debug)]
23369pub struct BaseNetworkSocketGetReusePortResponder {
23370    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23371    tx_id: u32,
23372}
23373
23374/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23375/// if the responder is dropped without sending a response, so that the client
23376/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23377impl std::ops::Drop for BaseNetworkSocketGetReusePortResponder {
23378    fn drop(&mut self) {
23379        self.control_handle.shutdown();
23380        // Safety: drops once, never accessed again
23381        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23382    }
23383}
23384
23385impl fidl::endpoints::Responder for BaseNetworkSocketGetReusePortResponder {
23386    type ControlHandle = BaseNetworkSocketControlHandle;
23387
23388    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23389        &self.control_handle
23390    }
23391
23392    fn drop_without_shutdown(mut self) {
23393        // Safety: drops once, never accessed again due to mem::forget
23394        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23395        // Prevent Drop from running (which would shut down the channel)
23396        std::mem::forget(self);
23397    }
23398}
23399
23400impl BaseNetworkSocketGetReusePortResponder {
23401    /// Sends a response to the FIDL transaction.
23402    ///
23403    /// Sets the channel to shutdown if an error occurs.
23404    pub fn send(
23405        self,
23406        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
23407    ) -> Result<(), fidl::Error> {
23408        let _result = self.send_raw(result);
23409        if _result.is_err() {
23410            self.control_handle.shutdown();
23411        }
23412        self.drop_without_shutdown();
23413        _result
23414    }
23415
23416    /// Similar to "send" but does not shutdown the channel if an error occurs.
23417    pub fn send_no_shutdown_on_err(
23418        self,
23419        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
23420    ) -> Result<(), fidl::Error> {
23421        let _result = self.send_raw(result);
23422        self.drop_without_shutdown();
23423        _result
23424    }
23425
23426    fn send_raw(
23427        &self,
23428        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
23429    ) -> Result<(), fidl::Error> {
23430        self.control_handle.inner.send::<fidl::encoding::ResultType<
23431            BaseSocketGetReusePortResponse,
23432            fidl_fuchsia_posix::Errno,
23433        >>(
23434            result.map(|value| (value,)),
23435            self.tx_id,
23436            0x7a112c1ab54ff828,
23437            fidl::encoding::DynamicFlags::empty(),
23438        )
23439    }
23440}
23441
23442#[must_use = "FIDL methods require a response to be sent"]
23443#[derive(Debug)]
23444pub struct BaseNetworkSocketGetAcceptConnResponder {
23445    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23446    tx_id: u32,
23447}
23448
23449/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23450/// if the responder is dropped without sending a response, so that the client
23451/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23452impl std::ops::Drop for BaseNetworkSocketGetAcceptConnResponder {
23453    fn drop(&mut self) {
23454        self.control_handle.shutdown();
23455        // Safety: drops once, never accessed again
23456        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23457    }
23458}
23459
23460impl fidl::endpoints::Responder for BaseNetworkSocketGetAcceptConnResponder {
23461    type ControlHandle = BaseNetworkSocketControlHandle;
23462
23463    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23464        &self.control_handle
23465    }
23466
23467    fn drop_without_shutdown(mut self) {
23468        // Safety: drops once, never accessed again due to mem::forget
23469        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23470        // Prevent Drop from running (which would shut down the channel)
23471        std::mem::forget(self);
23472    }
23473}
23474
23475impl BaseNetworkSocketGetAcceptConnResponder {
23476    /// Sends a response to the FIDL transaction.
23477    ///
23478    /// Sets the channel to shutdown if an error occurs.
23479    pub fn send(
23480        self,
23481        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
23482    ) -> Result<(), fidl::Error> {
23483        let _result = self.send_raw(result);
23484        if _result.is_err() {
23485            self.control_handle.shutdown();
23486        }
23487        self.drop_without_shutdown();
23488        _result
23489    }
23490
23491    /// Similar to "send" but does not shutdown the channel if an error occurs.
23492    pub fn send_no_shutdown_on_err(
23493        self,
23494        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
23495    ) -> Result<(), fidl::Error> {
23496        let _result = self.send_raw(result);
23497        self.drop_without_shutdown();
23498        _result
23499    }
23500
23501    fn send_raw(
23502        &self,
23503        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
23504    ) -> Result<(), fidl::Error> {
23505        self.control_handle.inner.send::<fidl::encoding::ResultType<
23506            BaseSocketGetAcceptConnResponse,
23507            fidl_fuchsia_posix::Errno,
23508        >>(
23509            result.map(|value| (value,)),
23510            self.tx_id,
23511            0x67ce6db6c2ec8966,
23512            fidl::encoding::DynamicFlags::empty(),
23513        )
23514    }
23515}
23516
23517#[must_use = "FIDL methods require a response to be sent"]
23518#[derive(Debug)]
23519pub struct BaseNetworkSocketSetBindToDeviceResponder {
23520    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23521    tx_id: u32,
23522}
23523
23524/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23525/// if the responder is dropped without sending a response, so that the client
23526/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23527impl std::ops::Drop for BaseNetworkSocketSetBindToDeviceResponder {
23528    fn drop(&mut self) {
23529        self.control_handle.shutdown();
23530        // Safety: drops once, never accessed again
23531        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23532    }
23533}
23534
23535impl fidl::endpoints::Responder for BaseNetworkSocketSetBindToDeviceResponder {
23536    type ControlHandle = BaseNetworkSocketControlHandle;
23537
23538    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23539        &self.control_handle
23540    }
23541
23542    fn drop_without_shutdown(mut self) {
23543        // Safety: drops once, never accessed again due to mem::forget
23544        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23545        // Prevent Drop from running (which would shut down the channel)
23546        std::mem::forget(self);
23547    }
23548}
23549
23550impl BaseNetworkSocketSetBindToDeviceResponder {
23551    /// Sends a response to the FIDL transaction.
23552    ///
23553    /// Sets the channel to shutdown if an error occurs.
23554    pub fn send(
23555        self,
23556        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23557    ) -> Result<(), fidl::Error> {
23558        let _result = self.send_raw(result);
23559        if _result.is_err() {
23560            self.control_handle.shutdown();
23561        }
23562        self.drop_without_shutdown();
23563        _result
23564    }
23565
23566    /// Similar to "send" but does not shutdown the channel if an error occurs.
23567    pub fn send_no_shutdown_on_err(
23568        self,
23569        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23570    ) -> Result<(), fidl::Error> {
23571        let _result = self.send_raw(result);
23572        self.drop_without_shutdown();
23573        _result
23574    }
23575
23576    fn send_raw(
23577        &self,
23578        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23579    ) -> Result<(), fidl::Error> {
23580        self.control_handle.inner.send::<fidl::encoding::ResultType<
23581            fidl::encoding::EmptyStruct,
23582            fidl_fuchsia_posix::Errno,
23583        >>(
23584            result,
23585            self.tx_id,
23586            0x2118b483f28aafc4,
23587            fidl::encoding::DynamicFlags::empty(),
23588        )
23589    }
23590}
23591
23592#[must_use = "FIDL methods require a response to be sent"]
23593#[derive(Debug)]
23594pub struct BaseNetworkSocketGetBindToDeviceResponder {
23595    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23596    tx_id: u32,
23597}
23598
23599/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23600/// if the responder is dropped without sending a response, so that the client
23601/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23602impl std::ops::Drop for BaseNetworkSocketGetBindToDeviceResponder {
23603    fn drop(&mut self) {
23604        self.control_handle.shutdown();
23605        // Safety: drops once, never accessed again
23606        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23607    }
23608}
23609
23610impl fidl::endpoints::Responder for BaseNetworkSocketGetBindToDeviceResponder {
23611    type ControlHandle = BaseNetworkSocketControlHandle;
23612
23613    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23614        &self.control_handle
23615    }
23616
23617    fn drop_without_shutdown(mut self) {
23618        // Safety: drops once, never accessed again due to mem::forget
23619        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23620        // Prevent Drop from running (which would shut down the channel)
23621        std::mem::forget(self);
23622    }
23623}
23624
23625impl BaseNetworkSocketGetBindToDeviceResponder {
23626    /// Sends a response to the FIDL transaction.
23627    ///
23628    /// Sets the channel to shutdown if an error occurs.
23629    pub fn send(
23630        self,
23631        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
23632    ) -> Result<(), fidl::Error> {
23633        let _result = self.send_raw(result);
23634        if _result.is_err() {
23635            self.control_handle.shutdown();
23636        }
23637        self.drop_without_shutdown();
23638        _result
23639    }
23640
23641    /// Similar to "send" but does not shutdown the channel if an error occurs.
23642    pub fn send_no_shutdown_on_err(
23643        self,
23644        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
23645    ) -> Result<(), fidl::Error> {
23646        let _result = self.send_raw(result);
23647        self.drop_without_shutdown();
23648        _result
23649    }
23650
23651    fn send_raw(
23652        &self,
23653        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
23654    ) -> Result<(), fidl::Error> {
23655        self.control_handle.inner.send::<fidl::encoding::ResultType<
23656            BaseSocketGetBindToDeviceResponse,
23657            fidl_fuchsia_posix::Errno,
23658        >>(
23659            result.map(|value| (value,)),
23660            self.tx_id,
23661            0x1ab1fbf0ef7906c8,
23662            fidl::encoding::DynamicFlags::empty(),
23663        )
23664    }
23665}
23666
23667#[must_use = "FIDL methods require a response to be sent"]
23668#[derive(Debug)]
23669pub struct BaseNetworkSocketSetBindToInterfaceIndexResponder {
23670    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23671    tx_id: u32,
23672}
23673
23674/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23675/// if the responder is dropped without sending a response, so that the client
23676/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23677impl std::ops::Drop for BaseNetworkSocketSetBindToInterfaceIndexResponder {
23678    fn drop(&mut self) {
23679        self.control_handle.shutdown();
23680        // Safety: drops once, never accessed again
23681        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23682    }
23683}
23684
23685impl fidl::endpoints::Responder for BaseNetworkSocketSetBindToInterfaceIndexResponder {
23686    type ControlHandle = BaseNetworkSocketControlHandle;
23687
23688    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23689        &self.control_handle
23690    }
23691
23692    fn drop_without_shutdown(mut self) {
23693        // Safety: drops once, never accessed again due to mem::forget
23694        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23695        // Prevent Drop from running (which would shut down the channel)
23696        std::mem::forget(self);
23697    }
23698}
23699
23700impl BaseNetworkSocketSetBindToInterfaceIndexResponder {
23701    /// Sends a response to the FIDL transaction.
23702    ///
23703    /// Sets the channel to shutdown if an error occurs.
23704    pub fn send(
23705        self,
23706        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23707    ) -> Result<(), fidl::Error> {
23708        let _result = self.send_raw(result);
23709        if _result.is_err() {
23710            self.control_handle.shutdown();
23711        }
23712        self.drop_without_shutdown();
23713        _result
23714    }
23715
23716    /// Similar to "send" but does not shutdown the channel if an error occurs.
23717    pub fn send_no_shutdown_on_err(
23718        self,
23719        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23720    ) -> Result<(), fidl::Error> {
23721        let _result = self.send_raw(result);
23722        self.drop_without_shutdown();
23723        _result
23724    }
23725
23726    fn send_raw(
23727        &self,
23728        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23729    ) -> Result<(), fidl::Error> {
23730        self.control_handle.inner.send::<fidl::encoding::ResultType<
23731            fidl::encoding::EmptyStruct,
23732            fidl_fuchsia_posix::Errno,
23733        >>(
23734            result,
23735            self.tx_id,
23736            0x6e387a0def00821,
23737            fidl::encoding::DynamicFlags::empty(),
23738        )
23739    }
23740}
23741
23742#[must_use = "FIDL methods require a response to be sent"]
23743#[derive(Debug)]
23744pub struct BaseNetworkSocketGetBindToInterfaceIndexResponder {
23745    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23746    tx_id: u32,
23747}
23748
23749/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23750/// if the responder is dropped without sending a response, so that the client
23751/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23752impl std::ops::Drop for BaseNetworkSocketGetBindToInterfaceIndexResponder {
23753    fn drop(&mut self) {
23754        self.control_handle.shutdown();
23755        // Safety: drops once, never accessed again
23756        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23757    }
23758}
23759
23760impl fidl::endpoints::Responder for BaseNetworkSocketGetBindToInterfaceIndexResponder {
23761    type ControlHandle = BaseNetworkSocketControlHandle;
23762
23763    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23764        &self.control_handle
23765    }
23766
23767    fn drop_without_shutdown(mut self) {
23768        // Safety: drops once, never accessed again due to mem::forget
23769        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23770        // Prevent Drop from running (which would shut down the channel)
23771        std::mem::forget(self);
23772    }
23773}
23774
23775impl BaseNetworkSocketGetBindToInterfaceIndexResponder {
23776    /// Sends a response to the FIDL transaction.
23777    ///
23778    /// Sets the channel to shutdown if an error occurs.
23779    pub fn send(
23780        self,
23781        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
23782    ) -> Result<(), fidl::Error> {
23783        let _result = self.send_raw(result);
23784        if _result.is_err() {
23785            self.control_handle.shutdown();
23786        }
23787        self.drop_without_shutdown();
23788        _result
23789    }
23790
23791    /// Similar to "send" but does not shutdown the channel if an error occurs.
23792    pub fn send_no_shutdown_on_err(
23793        self,
23794        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
23795    ) -> Result<(), fidl::Error> {
23796        let _result = self.send_raw(result);
23797        self.drop_without_shutdown();
23798        _result
23799    }
23800
23801    fn send_raw(
23802        &self,
23803        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
23804    ) -> Result<(), fidl::Error> {
23805        self.control_handle.inner.send::<fidl::encoding::ResultType<
23806            BaseSocketGetBindToInterfaceIndexResponse,
23807            fidl_fuchsia_posix::Errno,
23808        >>(
23809            result.map(|value| (value,)),
23810            self.tx_id,
23811            0x59c31dd3e3078295,
23812            fidl::encoding::DynamicFlags::empty(),
23813        )
23814    }
23815}
23816
23817#[must_use = "FIDL methods require a response to be sent"]
23818#[derive(Debug)]
23819pub struct BaseNetworkSocketSetTimestampResponder {
23820    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23821    tx_id: u32,
23822}
23823
23824/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23825/// if the responder is dropped without sending a response, so that the client
23826/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23827impl std::ops::Drop for BaseNetworkSocketSetTimestampResponder {
23828    fn drop(&mut self) {
23829        self.control_handle.shutdown();
23830        // Safety: drops once, never accessed again
23831        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23832    }
23833}
23834
23835impl fidl::endpoints::Responder for BaseNetworkSocketSetTimestampResponder {
23836    type ControlHandle = BaseNetworkSocketControlHandle;
23837
23838    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23839        &self.control_handle
23840    }
23841
23842    fn drop_without_shutdown(mut self) {
23843        // Safety: drops once, never accessed again due to mem::forget
23844        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23845        // Prevent Drop from running (which would shut down the channel)
23846        std::mem::forget(self);
23847    }
23848}
23849
23850impl BaseNetworkSocketSetTimestampResponder {
23851    /// Sends a response to the FIDL transaction.
23852    ///
23853    /// Sets the channel to shutdown if an error occurs.
23854    pub fn send(
23855        self,
23856        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23857    ) -> Result<(), fidl::Error> {
23858        let _result = self.send_raw(result);
23859        if _result.is_err() {
23860            self.control_handle.shutdown();
23861        }
23862        self.drop_without_shutdown();
23863        _result
23864    }
23865
23866    /// Similar to "send" but does not shutdown the channel if an error occurs.
23867    pub fn send_no_shutdown_on_err(
23868        self,
23869        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23870    ) -> Result<(), fidl::Error> {
23871        let _result = self.send_raw(result);
23872        self.drop_without_shutdown();
23873        _result
23874    }
23875
23876    fn send_raw(
23877        &self,
23878        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23879    ) -> Result<(), fidl::Error> {
23880        self.control_handle.inner.send::<fidl::encoding::ResultType<
23881            fidl::encoding::EmptyStruct,
23882            fidl_fuchsia_posix::Errno,
23883        >>(
23884            result,
23885            self.tx_id,
23886            0x285d6516c263d839,
23887            fidl::encoding::DynamicFlags::empty(),
23888        )
23889    }
23890}
23891
23892#[must_use = "FIDL methods require a response to be sent"]
23893#[derive(Debug)]
23894pub struct BaseNetworkSocketGetTimestampResponder {
23895    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23896    tx_id: u32,
23897}
23898
23899/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23900/// if the responder is dropped without sending a response, so that the client
23901/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23902impl std::ops::Drop for BaseNetworkSocketGetTimestampResponder {
23903    fn drop(&mut self) {
23904        self.control_handle.shutdown();
23905        // Safety: drops once, never accessed again
23906        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23907    }
23908}
23909
23910impl fidl::endpoints::Responder for BaseNetworkSocketGetTimestampResponder {
23911    type ControlHandle = BaseNetworkSocketControlHandle;
23912
23913    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23914        &self.control_handle
23915    }
23916
23917    fn drop_without_shutdown(mut self) {
23918        // Safety: drops once, never accessed again due to mem::forget
23919        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23920        // Prevent Drop from running (which would shut down the channel)
23921        std::mem::forget(self);
23922    }
23923}
23924
23925impl BaseNetworkSocketGetTimestampResponder {
23926    /// Sends a response to the FIDL transaction.
23927    ///
23928    /// Sets the channel to shutdown if an error occurs.
23929    pub fn send(
23930        self,
23931        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
23932    ) -> Result<(), fidl::Error> {
23933        let _result = self.send_raw(result);
23934        if _result.is_err() {
23935            self.control_handle.shutdown();
23936        }
23937        self.drop_without_shutdown();
23938        _result
23939    }
23940
23941    /// Similar to "send" but does not shutdown the channel if an error occurs.
23942    pub fn send_no_shutdown_on_err(
23943        self,
23944        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
23945    ) -> Result<(), fidl::Error> {
23946        let _result = self.send_raw(result);
23947        self.drop_without_shutdown();
23948        _result
23949    }
23950
23951    fn send_raw(
23952        &self,
23953        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
23954    ) -> Result<(), fidl::Error> {
23955        self.control_handle.inner.send::<fidl::encoding::ResultType<
23956            BaseSocketGetTimestampResponse,
23957            fidl_fuchsia_posix::Errno,
23958        >>(
23959            result.map(|value| (value,)),
23960            self.tx_id,
23961            0x49f2fffbbcc2bd27,
23962            fidl::encoding::DynamicFlags::empty(),
23963        )
23964    }
23965}
23966
23967#[must_use = "FIDL methods require a response to be sent"]
23968#[derive(Debug)]
23969pub struct BaseNetworkSocketSetMarkResponder {
23970    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23971    tx_id: u32,
23972}
23973
23974/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23975/// if the responder is dropped without sending a response, so that the client
23976/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23977impl std::ops::Drop for BaseNetworkSocketSetMarkResponder {
23978    fn drop(&mut self) {
23979        self.control_handle.shutdown();
23980        // Safety: drops once, never accessed again
23981        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23982    }
23983}
23984
23985impl fidl::endpoints::Responder for BaseNetworkSocketSetMarkResponder {
23986    type ControlHandle = BaseNetworkSocketControlHandle;
23987
23988    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23989        &self.control_handle
23990    }
23991
23992    fn drop_without_shutdown(mut self) {
23993        // Safety: drops once, never accessed again due to mem::forget
23994        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23995        // Prevent Drop from running (which would shut down the channel)
23996        std::mem::forget(self);
23997    }
23998}
23999
24000impl BaseNetworkSocketSetMarkResponder {
24001    /// Sends a response to the FIDL transaction.
24002    ///
24003    /// Sets the channel to shutdown if an error occurs.
24004    pub fn send(
24005        self,
24006        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24007    ) -> Result<(), fidl::Error> {
24008        let _result = self.send_raw(result);
24009        if _result.is_err() {
24010            self.control_handle.shutdown();
24011        }
24012        self.drop_without_shutdown();
24013        _result
24014    }
24015
24016    /// Similar to "send" but does not shutdown the channel if an error occurs.
24017    pub fn send_no_shutdown_on_err(
24018        self,
24019        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24020    ) -> Result<(), fidl::Error> {
24021        let _result = self.send_raw(result);
24022        self.drop_without_shutdown();
24023        _result
24024    }
24025
24026    fn send_raw(
24027        &self,
24028        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24029    ) -> Result<(), fidl::Error> {
24030        self.control_handle.inner.send::<fidl::encoding::ResultType<
24031            fidl::encoding::EmptyStruct,
24032            fidl_fuchsia_posix::Errno,
24033        >>(
24034            result,
24035            self.tx_id,
24036            0x6ead6de09f653236,
24037            fidl::encoding::DynamicFlags::empty(),
24038        )
24039    }
24040}
24041
24042#[must_use = "FIDL methods require a response to be sent"]
24043#[derive(Debug)]
24044pub struct BaseNetworkSocketGetMarkResponder {
24045    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24046    tx_id: u32,
24047}
24048
24049/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24050/// if the responder is dropped without sending a response, so that the client
24051/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24052impl std::ops::Drop for BaseNetworkSocketGetMarkResponder {
24053    fn drop(&mut self) {
24054        self.control_handle.shutdown();
24055        // Safety: drops once, never accessed again
24056        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24057    }
24058}
24059
24060impl fidl::endpoints::Responder for BaseNetworkSocketGetMarkResponder {
24061    type ControlHandle = BaseNetworkSocketControlHandle;
24062
24063    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24064        &self.control_handle
24065    }
24066
24067    fn drop_without_shutdown(mut self) {
24068        // Safety: drops once, never accessed again due to mem::forget
24069        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24070        // Prevent Drop from running (which would shut down the channel)
24071        std::mem::forget(self);
24072    }
24073}
24074
24075impl BaseNetworkSocketGetMarkResponder {
24076    /// Sends a response to the FIDL transaction.
24077    ///
24078    /// Sets the channel to shutdown if an error occurs.
24079    pub fn send(
24080        self,
24081        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
24082    ) -> Result<(), fidl::Error> {
24083        let _result = self.send_raw(result);
24084        if _result.is_err() {
24085            self.control_handle.shutdown();
24086        }
24087        self.drop_without_shutdown();
24088        _result
24089    }
24090
24091    /// Similar to "send" but does not shutdown the channel if an error occurs.
24092    pub fn send_no_shutdown_on_err(
24093        self,
24094        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
24095    ) -> Result<(), fidl::Error> {
24096        let _result = self.send_raw(result);
24097        self.drop_without_shutdown();
24098        _result
24099    }
24100
24101    fn send_raw(
24102        &self,
24103        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
24104    ) -> Result<(), fidl::Error> {
24105        self.control_handle.inner.send::<fidl::encoding::ResultType<
24106            BaseSocketGetMarkResponse,
24107            fidl_fuchsia_posix::Errno,
24108        >>(
24109            result.map(|mark| (mark,)),
24110            self.tx_id,
24111            0x57a2752c61d93d47,
24112            fidl::encoding::DynamicFlags::empty(),
24113        )
24114    }
24115}
24116
24117#[must_use = "FIDL methods require a response to be sent"]
24118#[derive(Debug)]
24119pub struct BaseNetworkSocketGetCookieResponder {
24120    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24121    tx_id: u32,
24122}
24123
24124/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24125/// if the responder is dropped without sending a response, so that the client
24126/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24127impl std::ops::Drop for BaseNetworkSocketGetCookieResponder {
24128    fn drop(&mut self) {
24129        self.control_handle.shutdown();
24130        // Safety: drops once, never accessed again
24131        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24132    }
24133}
24134
24135impl fidl::endpoints::Responder for BaseNetworkSocketGetCookieResponder {
24136    type ControlHandle = BaseNetworkSocketControlHandle;
24137
24138    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24139        &self.control_handle
24140    }
24141
24142    fn drop_without_shutdown(mut self) {
24143        // Safety: drops once, never accessed again due to mem::forget
24144        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24145        // Prevent Drop from running (which would shut down the channel)
24146        std::mem::forget(self);
24147    }
24148}
24149
24150impl BaseNetworkSocketGetCookieResponder {
24151    /// Sends a response to the FIDL transaction.
24152    ///
24153    /// Sets the channel to shutdown if an error occurs.
24154    pub fn send(
24155        self,
24156        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
24157    ) -> Result<(), fidl::Error> {
24158        let _result = self.send_raw(result);
24159        if _result.is_err() {
24160            self.control_handle.shutdown();
24161        }
24162        self.drop_without_shutdown();
24163        _result
24164    }
24165
24166    /// Similar to "send" but does not shutdown the channel if an error occurs.
24167    pub fn send_no_shutdown_on_err(
24168        self,
24169        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
24170    ) -> Result<(), fidl::Error> {
24171        let _result = self.send_raw(result);
24172        self.drop_without_shutdown();
24173        _result
24174    }
24175
24176    fn send_raw(
24177        &self,
24178        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
24179    ) -> Result<(), fidl::Error> {
24180        self.control_handle.inner.send::<fidl::encoding::ResultType<
24181            BaseSocketGetCookieResponse,
24182            fidl_fuchsia_posix::Errno,
24183        >>(
24184            result.map(|value| (value,)),
24185            self.tx_id,
24186            0x2c2f47fd8f924e52,
24187            fidl::encoding::DynamicFlags::empty(),
24188        )
24189    }
24190}
24191
24192#[must_use = "FIDL methods require a response to be sent"]
24193#[derive(Debug)]
24194pub struct BaseNetworkSocketBindResponder {
24195    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24196    tx_id: u32,
24197}
24198
24199/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24200/// if the responder is dropped without sending a response, so that the client
24201/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24202impl std::ops::Drop for BaseNetworkSocketBindResponder {
24203    fn drop(&mut self) {
24204        self.control_handle.shutdown();
24205        // Safety: drops once, never accessed again
24206        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24207    }
24208}
24209
24210impl fidl::endpoints::Responder for BaseNetworkSocketBindResponder {
24211    type ControlHandle = BaseNetworkSocketControlHandle;
24212
24213    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24214        &self.control_handle
24215    }
24216
24217    fn drop_without_shutdown(mut self) {
24218        // Safety: drops once, never accessed again due to mem::forget
24219        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24220        // Prevent Drop from running (which would shut down the channel)
24221        std::mem::forget(self);
24222    }
24223}
24224
24225impl BaseNetworkSocketBindResponder {
24226    /// Sends a response to the FIDL transaction.
24227    ///
24228    /// Sets the channel to shutdown if an error occurs.
24229    pub fn send(
24230        self,
24231        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24232    ) -> Result<(), fidl::Error> {
24233        let _result = self.send_raw(result);
24234        if _result.is_err() {
24235            self.control_handle.shutdown();
24236        }
24237        self.drop_without_shutdown();
24238        _result
24239    }
24240
24241    /// Similar to "send" but does not shutdown the channel if an error occurs.
24242    pub fn send_no_shutdown_on_err(
24243        self,
24244        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24245    ) -> Result<(), fidl::Error> {
24246        let _result = self.send_raw(result);
24247        self.drop_without_shutdown();
24248        _result
24249    }
24250
24251    fn send_raw(
24252        &self,
24253        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24254    ) -> Result<(), fidl::Error> {
24255        self.control_handle.inner.send::<fidl::encoding::ResultType<
24256            fidl::encoding::EmptyStruct,
24257            fidl_fuchsia_posix::Errno,
24258        >>(
24259            result,
24260            self.tx_id,
24261            0x4bc6400ae92125d,
24262            fidl::encoding::DynamicFlags::empty(),
24263        )
24264    }
24265}
24266
24267#[must_use = "FIDL methods require a response to be sent"]
24268#[derive(Debug)]
24269pub struct BaseNetworkSocketConnectResponder {
24270    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24271    tx_id: u32,
24272}
24273
24274/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24275/// if the responder is dropped without sending a response, so that the client
24276/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24277impl std::ops::Drop for BaseNetworkSocketConnectResponder {
24278    fn drop(&mut self) {
24279        self.control_handle.shutdown();
24280        // Safety: drops once, never accessed again
24281        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24282    }
24283}
24284
24285impl fidl::endpoints::Responder for BaseNetworkSocketConnectResponder {
24286    type ControlHandle = BaseNetworkSocketControlHandle;
24287
24288    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24289        &self.control_handle
24290    }
24291
24292    fn drop_without_shutdown(mut self) {
24293        // Safety: drops once, never accessed again due to mem::forget
24294        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24295        // Prevent Drop from running (which would shut down the channel)
24296        std::mem::forget(self);
24297    }
24298}
24299
24300impl BaseNetworkSocketConnectResponder {
24301    /// Sends a response to the FIDL transaction.
24302    ///
24303    /// Sets the channel to shutdown if an error occurs.
24304    pub fn send(
24305        self,
24306        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24307    ) -> Result<(), fidl::Error> {
24308        let _result = self.send_raw(result);
24309        if _result.is_err() {
24310            self.control_handle.shutdown();
24311        }
24312        self.drop_without_shutdown();
24313        _result
24314    }
24315
24316    /// Similar to "send" but does not shutdown the channel if an error occurs.
24317    pub fn send_no_shutdown_on_err(
24318        self,
24319        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24320    ) -> Result<(), fidl::Error> {
24321        let _result = self.send_raw(result);
24322        self.drop_without_shutdown();
24323        _result
24324    }
24325
24326    fn send_raw(
24327        &self,
24328        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24329    ) -> Result<(), fidl::Error> {
24330        self.control_handle.inner.send::<fidl::encoding::ResultType<
24331            fidl::encoding::EmptyStruct,
24332            fidl_fuchsia_posix::Errno,
24333        >>(
24334            result,
24335            self.tx_id,
24336            0x5f05f19bfdd38871,
24337            fidl::encoding::DynamicFlags::empty(),
24338        )
24339    }
24340}
24341
24342#[must_use = "FIDL methods require a response to be sent"]
24343#[derive(Debug)]
24344pub struct BaseNetworkSocketDisconnectResponder {
24345    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24346    tx_id: u32,
24347}
24348
24349/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24350/// if the responder is dropped without sending a response, so that the client
24351/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24352impl std::ops::Drop for BaseNetworkSocketDisconnectResponder {
24353    fn drop(&mut self) {
24354        self.control_handle.shutdown();
24355        // Safety: drops once, never accessed again
24356        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24357    }
24358}
24359
24360impl fidl::endpoints::Responder for BaseNetworkSocketDisconnectResponder {
24361    type ControlHandle = BaseNetworkSocketControlHandle;
24362
24363    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24364        &self.control_handle
24365    }
24366
24367    fn drop_without_shutdown(mut self) {
24368        // Safety: drops once, never accessed again due to mem::forget
24369        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24370        // Prevent Drop from running (which would shut down the channel)
24371        std::mem::forget(self);
24372    }
24373}
24374
24375impl BaseNetworkSocketDisconnectResponder {
24376    /// Sends a response to the FIDL transaction.
24377    ///
24378    /// Sets the channel to shutdown if an error occurs.
24379    pub fn send(
24380        self,
24381        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24382    ) -> Result<(), fidl::Error> {
24383        let _result = self.send_raw(result);
24384        if _result.is_err() {
24385            self.control_handle.shutdown();
24386        }
24387        self.drop_without_shutdown();
24388        _result
24389    }
24390
24391    /// Similar to "send" but does not shutdown the channel if an error occurs.
24392    pub fn send_no_shutdown_on_err(
24393        self,
24394        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24395    ) -> Result<(), fidl::Error> {
24396        let _result = self.send_raw(result);
24397        self.drop_without_shutdown();
24398        _result
24399    }
24400
24401    fn send_raw(
24402        &self,
24403        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24404    ) -> Result<(), fidl::Error> {
24405        self.control_handle.inner.send::<fidl::encoding::ResultType<
24406            fidl::encoding::EmptyStruct,
24407            fidl_fuchsia_posix::Errno,
24408        >>(
24409            result,
24410            self.tx_id,
24411            0x74e63b91f7b29b2,
24412            fidl::encoding::DynamicFlags::empty(),
24413        )
24414    }
24415}
24416
24417#[must_use = "FIDL methods require a response to be sent"]
24418#[derive(Debug)]
24419pub struct BaseNetworkSocketGetSockNameResponder {
24420    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24421    tx_id: u32,
24422}
24423
24424/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24425/// if the responder is dropped without sending a response, so that the client
24426/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24427impl std::ops::Drop for BaseNetworkSocketGetSockNameResponder {
24428    fn drop(&mut self) {
24429        self.control_handle.shutdown();
24430        // Safety: drops once, never accessed again
24431        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24432    }
24433}
24434
24435impl fidl::endpoints::Responder for BaseNetworkSocketGetSockNameResponder {
24436    type ControlHandle = BaseNetworkSocketControlHandle;
24437
24438    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24439        &self.control_handle
24440    }
24441
24442    fn drop_without_shutdown(mut self) {
24443        // Safety: drops once, never accessed again due to mem::forget
24444        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24445        // Prevent Drop from running (which would shut down the channel)
24446        std::mem::forget(self);
24447    }
24448}
24449
24450impl BaseNetworkSocketGetSockNameResponder {
24451    /// Sends a response to the FIDL transaction.
24452    ///
24453    /// Sets the channel to shutdown if an error occurs.
24454    pub fn send(
24455        self,
24456        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
24457    ) -> Result<(), fidl::Error> {
24458        let _result = self.send_raw(result);
24459        if _result.is_err() {
24460            self.control_handle.shutdown();
24461        }
24462        self.drop_without_shutdown();
24463        _result
24464    }
24465
24466    /// Similar to "send" but does not shutdown the channel if an error occurs.
24467    pub fn send_no_shutdown_on_err(
24468        self,
24469        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
24470    ) -> Result<(), fidl::Error> {
24471        let _result = self.send_raw(result);
24472        self.drop_without_shutdown();
24473        _result
24474    }
24475
24476    fn send_raw(
24477        &self,
24478        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
24479    ) -> Result<(), fidl::Error> {
24480        self.control_handle.inner.send::<fidl::encoding::ResultType<
24481            BaseNetworkSocketGetSockNameResponse,
24482            fidl_fuchsia_posix::Errno,
24483        >>(
24484            result.map(|addr| (addr,)),
24485            self.tx_id,
24486            0x475f23f84a1a4f85,
24487            fidl::encoding::DynamicFlags::empty(),
24488        )
24489    }
24490}
24491
24492#[must_use = "FIDL methods require a response to be sent"]
24493#[derive(Debug)]
24494pub struct BaseNetworkSocketGetPeerNameResponder {
24495    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24496    tx_id: u32,
24497}
24498
24499/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24500/// if the responder is dropped without sending a response, so that the client
24501/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24502impl std::ops::Drop for BaseNetworkSocketGetPeerNameResponder {
24503    fn drop(&mut self) {
24504        self.control_handle.shutdown();
24505        // Safety: drops once, never accessed again
24506        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24507    }
24508}
24509
24510impl fidl::endpoints::Responder for BaseNetworkSocketGetPeerNameResponder {
24511    type ControlHandle = BaseNetworkSocketControlHandle;
24512
24513    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24514        &self.control_handle
24515    }
24516
24517    fn drop_without_shutdown(mut self) {
24518        // Safety: drops once, never accessed again due to mem::forget
24519        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24520        // Prevent Drop from running (which would shut down the channel)
24521        std::mem::forget(self);
24522    }
24523}
24524
24525impl BaseNetworkSocketGetPeerNameResponder {
24526    /// Sends a response to the FIDL transaction.
24527    ///
24528    /// Sets the channel to shutdown if an error occurs.
24529    pub fn send(
24530        self,
24531        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
24532    ) -> Result<(), fidl::Error> {
24533        let _result = self.send_raw(result);
24534        if _result.is_err() {
24535            self.control_handle.shutdown();
24536        }
24537        self.drop_without_shutdown();
24538        _result
24539    }
24540
24541    /// Similar to "send" but does not shutdown the channel if an error occurs.
24542    pub fn send_no_shutdown_on_err(
24543        self,
24544        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
24545    ) -> Result<(), fidl::Error> {
24546        let _result = self.send_raw(result);
24547        self.drop_without_shutdown();
24548        _result
24549    }
24550
24551    fn send_raw(
24552        &self,
24553        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
24554    ) -> Result<(), fidl::Error> {
24555        self.control_handle.inner.send::<fidl::encoding::ResultType<
24556            BaseNetworkSocketGetPeerNameResponse,
24557            fidl_fuchsia_posix::Errno,
24558        >>(
24559            result.map(|addr| (addr,)),
24560            self.tx_id,
24561            0x1ffecf4bd5b6432e,
24562            fidl::encoding::DynamicFlags::empty(),
24563        )
24564    }
24565}
24566
24567#[must_use = "FIDL methods require a response to be sent"]
24568#[derive(Debug)]
24569pub struct BaseNetworkSocketShutdownResponder {
24570    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24571    tx_id: u32,
24572}
24573
24574/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24575/// if the responder is dropped without sending a response, so that the client
24576/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24577impl std::ops::Drop for BaseNetworkSocketShutdownResponder {
24578    fn drop(&mut self) {
24579        self.control_handle.shutdown();
24580        // Safety: drops once, never accessed again
24581        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24582    }
24583}
24584
24585impl fidl::endpoints::Responder for BaseNetworkSocketShutdownResponder {
24586    type ControlHandle = BaseNetworkSocketControlHandle;
24587
24588    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24589        &self.control_handle
24590    }
24591
24592    fn drop_without_shutdown(mut self) {
24593        // Safety: drops once, never accessed again due to mem::forget
24594        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24595        // Prevent Drop from running (which would shut down the channel)
24596        std::mem::forget(self);
24597    }
24598}
24599
24600impl BaseNetworkSocketShutdownResponder {
24601    /// Sends a response to the FIDL transaction.
24602    ///
24603    /// Sets the channel to shutdown if an error occurs.
24604    pub fn send(
24605        self,
24606        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24607    ) -> Result<(), fidl::Error> {
24608        let _result = self.send_raw(result);
24609        if _result.is_err() {
24610            self.control_handle.shutdown();
24611        }
24612        self.drop_without_shutdown();
24613        _result
24614    }
24615
24616    /// Similar to "send" but does not shutdown the channel if an error occurs.
24617    pub fn send_no_shutdown_on_err(
24618        self,
24619        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24620    ) -> Result<(), fidl::Error> {
24621        let _result = self.send_raw(result);
24622        self.drop_without_shutdown();
24623        _result
24624    }
24625
24626    fn send_raw(
24627        &self,
24628        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24629    ) -> Result<(), fidl::Error> {
24630        self.control_handle.inner.send::<fidl::encoding::ResultType<
24631            fidl::encoding::EmptyStruct,
24632            fidl_fuchsia_posix::Errno,
24633        >>(
24634            result,
24635            self.tx_id,
24636            0x247f38b6db68c336,
24637            fidl::encoding::DynamicFlags::empty(),
24638        )
24639    }
24640}
24641
24642#[must_use = "FIDL methods require a response to be sent"]
24643#[derive(Debug)]
24644pub struct BaseNetworkSocketSetIpTypeOfServiceResponder {
24645    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24646    tx_id: u32,
24647}
24648
24649/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24650/// if the responder is dropped without sending a response, so that the client
24651/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24652impl std::ops::Drop for BaseNetworkSocketSetIpTypeOfServiceResponder {
24653    fn drop(&mut self) {
24654        self.control_handle.shutdown();
24655        // Safety: drops once, never accessed again
24656        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24657    }
24658}
24659
24660impl fidl::endpoints::Responder for BaseNetworkSocketSetIpTypeOfServiceResponder {
24661    type ControlHandle = BaseNetworkSocketControlHandle;
24662
24663    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24664        &self.control_handle
24665    }
24666
24667    fn drop_without_shutdown(mut self) {
24668        // Safety: drops once, never accessed again due to mem::forget
24669        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24670        // Prevent Drop from running (which would shut down the channel)
24671        std::mem::forget(self);
24672    }
24673}
24674
24675impl BaseNetworkSocketSetIpTypeOfServiceResponder {
24676    /// Sends a response to the FIDL transaction.
24677    ///
24678    /// Sets the channel to shutdown if an error occurs.
24679    pub fn send(
24680        self,
24681        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24682    ) -> Result<(), fidl::Error> {
24683        let _result = self.send_raw(result);
24684        if _result.is_err() {
24685            self.control_handle.shutdown();
24686        }
24687        self.drop_without_shutdown();
24688        _result
24689    }
24690
24691    /// Similar to "send" but does not shutdown the channel if an error occurs.
24692    pub fn send_no_shutdown_on_err(
24693        self,
24694        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24695    ) -> Result<(), fidl::Error> {
24696        let _result = self.send_raw(result);
24697        self.drop_without_shutdown();
24698        _result
24699    }
24700
24701    fn send_raw(
24702        &self,
24703        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24704    ) -> Result<(), fidl::Error> {
24705        self.control_handle.inner.send::<fidl::encoding::ResultType<
24706            fidl::encoding::EmptyStruct,
24707            fidl_fuchsia_posix::Errno,
24708        >>(
24709            result,
24710            self.tx_id,
24711            0x995c600475b6d46,
24712            fidl::encoding::DynamicFlags::empty(),
24713        )
24714    }
24715}
24716
24717#[must_use = "FIDL methods require a response to be sent"]
24718#[derive(Debug)]
24719pub struct BaseNetworkSocketGetIpTypeOfServiceResponder {
24720    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24721    tx_id: u32,
24722}
24723
24724/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24725/// if the responder is dropped without sending a response, so that the client
24726/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24727impl std::ops::Drop for BaseNetworkSocketGetIpTypeOfServiceResponder {
24728    fn drop(&mut self) {
24729        self.control_handle.shutdown();
24730        // Safety: drops once, never accessed again
24731        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24732    }
24733}
24734
24735impl fidl::endpoints::Responder for BaseNetworkSocketGetIpTypeOfServiceResponder {
24736    type ControlHandle = BaseNetworkSocketControlHandle;
24737
24738    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24739        &self.control_handle
24740    }
24741
24742    fn drop_without_shutdown(mut self) {
24743        // Safety: drops once, never accessed again due to mem::forget
24744        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24745        // Prevent Drop from running (which would shut down the channel)
24746        std::mem::forget(self);
24747    }
24748}
24749
24750impl BaseNetworkSocketGetIpTypeOfServiceResponder {
24751    /// Sends a response to the FIDL transaction.
24752    ///
24753    /// Sets the channel to shutdown if an error occurs.
24754    pub fn send(
24755        self,
24756        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
24757    ) -> Result<(), fidl::Error> {
24758        let _result = self.send_raw(result);
24759        if _result.is_err() {
24760            self.control_handle.shutdown();
24761        }
24762        self.drop_without_shutdown();
24763        _result
24764    }
24765
24766    /// Similar to "send" but does not shutdown the channel if an error occurs.
24767    pub fn send_no_shutdown_on_err(
24768        self,
24769        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
24770    ) -> Result<(), fidl::Error> {
24771        let _result = self.send_raw(result);
24772        self.drop_without_shutdown();
24773        _result
24774    }
24775
24776    fn send_raw(
24777        &self,
24778        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
24779    ) -> Result<(), fidl::Error> {
24780        self.control_handle.inner.send::<fidl::encoding::ResultType<
24781            BaseNetworkSocketGetIpTypeOfServiceResponse,
24782            fidl_fuchsia_posix::Errno,
24783        >>(
24784            result.map(|value| (value,)),
24785            self.tx_id,
24786            0x3814a04259f75fcb,
24787            fidl::encoding::DynamicFlags::empty(),
24788        )
24789    }
24790}
24791
24792#[must_use = "FIDL methods require a response to be sent"]
24793#[derive(Debug)]
24794pub struct BaseNetworkSocketSetIpTtlResponder {
24795    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24796    tx_id: u32,
24797}
24798
24799/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24800/// if the responder is dropped without sending a response, so that the client
24801/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24802impl std::ops::Drop for BaseNetworkSocketSetIpTtlResponder {
24803    fn drop(&mut self) {
24804        self.control_handle.shutdown();
24805        // Safety: drops once, never accessed again
24806        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24807    }
24808}
24809
24810impl fidl::endpoints::Responder for BaseNetworkSocketSetIpTtlResponder {
24811    type ControlHandle = BaseNetworkSocketControlHandle;
24812
24813    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24814        &self.control_handle
24815    }
24816
24817    fn drop_without_shutdown(mut self) {
24818        // Safety: drops once, never accessed again due to mem::forget
24819        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24820        // Prevent Drop from running (which would shut down the channel)
24821        std::mem::forget(self);
24822    }
24823}
24824
24825impl BaseNetworkSocketSetIpTtlResponder {
24826    /// Sends a response to the FIDL transaction.
24827    ///
24828    /// Sets the channel to shutdown if an error occurs.
24829    pub fn send(
24830        self,
24831        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24832    ) -> Result<(), fidl::Error> {
24833        let _result = self.send_raw(result);
24834        if _result.is_err() {
24835            self.control_handle.shutdown();
24836        }
24837        self.drop_without_shutdown();
24838        _result
24839    }
24840
24841    /// Similar to "send" but does not shutdown the channel if an error occurs.
24842    pub fn send_no_shutdown_on_err(
24843        self,
24844        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24845    ) -> Result<(), fidl::Error> {
24846        let _result = self.send_raw(result);
24847        self.drop_without_shutdown();
24848        _result
24849    }
24850
24851    fn send_raw(
24852        &self,
24853        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24854    ) -> Result<(), fidl::Error> {
24855        self.control_handle.inner.send::<fidl::encoding::ResultType<
24856            fidl::encoding::EmptyStruct,
24857            fidl_fuchsia_posix::Errno,
24858        >>(
24859            result,
24860            self.tx_id,
24861            0x29e2424b433ae1ef,
24862            fidl::encoding::DynamicFlags::empty(),
24863        )
24864    }
24865}
24866
24867#[must_use = "FIDL methods require a response to be sent"]
24868#[derive(Debug)]
24869pub struct BaseNetworkSocketGetIpTtlResponder {
24870    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24871    tx_id: u32,
24872}
24873
24874/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24875/// if the responder is dropped without sending a response, so that the client
24876/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24877impl std::ops::Drop for BaseNetworkSocketGetIpTtlResponder {
24878    fn drop(&mut self) {
24879        self.control_handle.shutdown();
24880        // Safety: drops once, never accessed again
24881        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24882    }
24883}
24884
24885impl fidl::endpoints::Responder for BaseNetworkSocketGetIpTtlResponder {
24886    type ControlHandle = BaseNetworkSocketControlHandle;
24887
24888    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24889        &self.control_handle
24890    }
24891
24892    fn drop_without_shutdown(mut self) {
24893        // Safety: drops once, never accessed again due to mem::forget
24894        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24895        // Prevent Drop from running (which would shut down the channel)
24896        std::mem::forget(self);
24897    }
24898}
24899
24900impl BaseNetworkSocketGetIpTtlResponder {
24901    /// Sends a response to the FIDL transaction.
24902    ///
24903    /// Sets the channel to shutdown if an error occurs.
24904    pub fn send(
24905        self,
24906        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
24907    ) -> Result<(), fidl::Error> {
24908        let _result = self.send_raw(result);
24909        if _result.is_err() {
24910            self.control_handle.shutdown();
24911        }
24912        self.drop_without_shutdown();
24913        _result
24914    }
24915
24916    /// Similar to "send" but does not shutdown the channel if an error occurs.
24917    pub fn send_no_shutdown_on_err(
24918        self,
24919        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
24920    ) -> Result<(), fidl::Error> {
24921        let _result = self.send_raw(result);
24922        self.drop_without_shutdown();
24923        _result
24924    }
24925
24926    fn send_raw(
24927        &self,
24928        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
24929    ) -> Result<(), fidl::Error> {
24930        self.control_handle.inner.send::<fidl::encoding::ResultType<
24931            BaseNetworkSocketGetIpTtlResponse,
24932            fidl_fuchsia_posix::Errno,
24933        >>(
24934            result.map(|value| (value,)),
24935            self.tx_id,
24936            0x47e47fa1f24da471,
24937            fidl::encoding::DynamicFlags::empty(),
24938        )
24939    }
24940}
24941
24942#[must_use = "FIDL methods require a response to be sent"]
24943#[derive(Debug)]
24944pub struct BaseNetworkSocketSetIpPacketInfoResponder {
24945    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24946    tx_id: u32,
24947}
24948
24949/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24950/// if the responder is dropped without sending a response, so that the client
24951/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24952impl std::ops::Drop for BaseNetworkSocketSetIpPacketInfoResponder {
24953    fn drop(&mut self) {
24954        self.control_handle.shutdown();
24955        // Safety: drops once, never accessed again
24956        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24957    }
24958}
24959
24960impl fidl::endpoints::Responder for BaseNetworkSocketSetIpPacketInfoResponder {
24961    type ControlHandle = BaseNetworkSocketControlHandle;
24962
24963    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24964        &self.control_handle
24965    }
24966
24967    fn drop_without_shutdown(mut self) {
24968        // Safety: drops once, never accessed again due to mem::forget
24969        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24970        // Prevent Drop from running (which would shut down the channel)
24971        std::mem::forget(self);
24972    }
24973}
24974
24975impl BaseNetworkSocketSetIpPacketInfoResponder {
24976    /// Sends a response to the FIDL transaction.
24977    ///
24978    /// Sets the channel to shutdown if an error occurs.
24979    pub fn send(
24980        self,
24981        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24982    ) -> Result<(), fidl::Error> {
24983        let _result = self.send_raw(result);
24984        if _result.is_err() {
24985            self.control_handle.shutdown();
24986        }
24987        self.drop_without_shutdown();
24988        _result
24989    }
24990
24991    /// Similar to "send" but does not shutdown the channel if an error occurs.
24992    pub fn send_no_shutdown_on_err(
24993        self,
24994        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24995    ) -> Result<(), fidl::Error> {
24996        let _result = self.send_raw(result);
24997        self.drop_without_shutdown();
24998        _result
24999    }
25000
25001    fn send_raw(
25002        &self,
25003        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25004    ) -> Result<(), fidl::Error> {
25005        self.control_handle.inner.send::<fidl::encoding::ResultType<
25006            fidl::encoding::EmptyStruct,
25007            fidl_fuchsia_posix::Errno,
25008        >>(
25009            result,
25010            self.tx_id,
25011            0x392d16bee20c0e16,
25012            fidl::encoding::DynamicFlags::empty(),
25013        )
25014    }
25015}
25016
25017#[must_use = "FIDL methods require a response to be sent"]
25018#[derive(Debug)]
25019pub struct BaseNetworkSocketGetIpPacketInfoResponder {
25020    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25021    tx_id: u32,
25022}
25023
25024/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25025/// if the responder is dropped without sending a response, so that the client
25026/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25027impl std::ops::Drop for BaseNetworkSocketGetIpPacketInfoResponder {
25028    fn drop(&mut self) {
25029        self.control_handle.shutdown();
25030        // Safety: drops once, never accessed again
25031        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25032    }
25033}
25034
25035impl fidl::endpoints::Responder for BaseNetworkSocketGetIpPacketInfoResponder {
25036    type ControlHandle = BaseNetworkSocketControlHandle;
25037
25038    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25039        &self.control_handle
25040    }
25041
25042    fn drop_without_shutdown(mut self) {
25043        // Safety: drops once, never accessed again due to mem::forget
25044        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25045        // Prevent Drop from running (which would shut down the channel)
25046        std::mem::forget(self);
25047    }
25048}
25049
25050impl BaseNetworkSocketGetIpPacketInfoResponder {
25051    /// Sends a response to the FIDL transaction.
25052    ///
25053    /// Sets the channel to shutdown if an error occurs.
25054    pub fn send(
25055        self,
25056        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
25057    ) -> Result<(), fidl::Error> {
25058        let _result = self.send_raw(result);
25059        if _result.is_err() {
25060            self.control_handle.shutdown();
25061        }
25062        self.drop_without_shutdown();
25063        _result
25064    }
25065
25066    /// Similar to "send" but does not shutdown the channel if an error occurs.
25067    pub fn send_no_shutdown_on_err(
25068        self,
25069        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
25070    ) -> Result<(), fidl::Error> {
25071        let _result = self.send_raw(result);
25072        self.drop_without_shutdown();
25073        _result
25074    }
25075
25076    fn send_raw(
25077        &self,
25078        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
25079    ) -> Result<(), fidl::Error> {
25080        self.control_handle.inner.send::<fidl::encoding::ResultType<
25081            BaseNetworkSocketGetIpPacketInfoResponse,
25082            fidl_fuchsia_posix::Errno,
25083        >>(
25084            result.map(|value| (value,)),
25085            self.tx_id,
25086            0x54b505f242280740,
25087            fidl::encoding::DynamicFlags::empty(),
25088        )
25089    }
25090}
25091
25092#[must_use = "FIDL methods require a response to be sent"]
25093#[derive(Debug)]
25094pub struct BaseNetworkSocketSetIpReceiveTypeOfServiceResponder {
25095    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25096    tx_id: u32,
25097}
25098
25099/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25100/// if the responder is dropped without sending a response, so that the client
25101/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25102impl std::ops::Drop for BaseNetworkSocketSetIpReceiveTypeOfServiceResponder {
25103    fn drop(&mut self) {
25104        self.control_handle.shutdown();
25105        // Safety: drops once, never accessed again
25106        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25107    }
25108}
25109
25110impl fidl::endpoints::Responder for BaseNetworkSocketSetIpReceiveTypeOfServiceResponder {
25111    type ControlHandle = BaseNetworkSocketControlHandle;
25112
25113    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25114        &self.control_handle
25115    }
25116
25117    fn drop_without_shutdown(mut self) {
25118        // Safety: drops once, never accessed again due to mem::forget
25119        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25120        // Prevent Drop from running (which would shut down the channel)
25121        std::mem::forget(self);
25122    }
25123}
25124
25125impl BaseNetworkSocketSetIpReceiveTypeOfServiceResponder {
25126    /// Sends a response to the FIDL transaction.
25127    ///
25128    /// Sets the channel to shutdown if an error occurs.
25129    pub fn send(
25130        self,
25131        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25132    ) -> Result<(), fidl::Error> {
25133        let _result = self.send_raw(result);
25134        if _result.is_err() {
25135            self.control_handle.shutdown();
25136        }
25137        self.drop_without_shutdown();
25138        _result
25139    }
25140
25141    /// Similar to "send" but does not shutdown the channel if an error occurs.
25142    pub fn send_no_shutdown_on_err(
25143        self,
25144        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25145    ) -> Result<(), fidl::Error> {
25146        let _result = self.send_raw(result);
25147        self.drop_without_shutdown();
25148        _result
25149    }
25150
25151    fn send_raw(
25152        &self,
25153        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25154    ) -> Result<(), fidl::Error> {
25155        self.control_handle.inner.send::<fidl::encoding::ResultType<
25156            fidl::encoding::EmptyStruct,
25157            fidl_fuchsia_posix::Errno,
25158        >>(
25159            result,
25160            self.tx_id,
25161            0x6c4f6714995f84ef,
25162            fidl::encoding::DynamicFlags::empty(),
25163        )
25164    }
25165}
25166
25167#[must_use = "FIDL methods require a response to be sent"]
25168#[derive(Debug)]
25169pub struct BaseNetworkSocketGetIpReceiveTypeOfServiceResponder {
25170    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25171    tx_id: u32,
25172}
25173
25174/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25175/// if the responder is dropped without sending a response, so that the client
25176/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25177impl std::ops::Drop for BaseNetworkSocketGetIpReceiveTypeOfServiceResponder {
25178    fn drop(&mut self) {
25179        self.control_handle.shutdown();
25180        // Safety: drops once, never accessed again
25181        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25182    }
25183}
25184
25185impl fidl::endpoints::Responder for BaseNetworkSocketGetIpReceiveTypeOfServiceResponder {
25186    type ControlHandle = BaseNetworkSocketControlHandle;
25187
25188    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25189        &self.control_handle
25190    }
25191
25192    fn drop_without_shutdown(mut self) {
25193        // Safety: drops once, never accessed again due to mem::forget
25194        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25195        // Prevent Drop from running (which would shut down the channel)
25196        std::mem::forget(self);
25197    }
25198}
25199
25200impl BaseNetworkSocketGetIpReceiveTypeOfServiceResponder {
25201    /// Sends a response to the FIDL transaction.
25202    ///
25203    /// Sets the channel to shutdown if an error occurs.
25204    pub fn send(
25205        self,
25206        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
25207    ) -> Result<(), fidl::Error> {
25208        let _result = self.send_raw(result);
25209        if _result.is_err() {
25210            self.control_handle.shutdown();
25211        }
25212        self.drop_without_shutdown();
25213        _result
25214    }
25215
25216    /// Similar to "send" but does not shutdown the channel if an error occurs.
25217    pub fn send_no_shutdown_on_err(
25218        self,
25219        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
25220    ) -> Result<(), fidl::Error> {
25221        let _result = self.send_raw(result);
25222        self.drop_without_shutdown();
25223        _result
25224    }
25225
25226    fn send_raw(
25227        &self,
25228        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
25229    ) -> Result<(), fidl::Error> {
25230        self.control_handle.inner.send::<fidl::encoding::ResultType<
25231            BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
25232            fidl_fuchsia_posix::Errno,
25233        >>(
25234            result.map(|value| (value,)),
25235            self.tx_id,
25236            0x4158ba7dc2795960,
25237            fidl::encoding::DynamicFlags::empty(),
25238        )
25239    }
25240}
25241
25242#[must_use = "FIDL methods require a response to be sent"]
25243#[derive(Debug)]
25244pub struct BaseNetworkSocketSetIpReceiveTtlResponder {
25245    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25246    tx_id: u32,
25247}
25248
25249/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25250/// if the responder is dropped without sending a response, so that the client
25251/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25252impl std::ops::Drop for BaseNetworkSocketSetIpReceiveTtlResponder {
25253    fn drop(&mut self) {
25254        self.control_handle.shutdown();
25255        // Safety: drops once, never accessed again
25256        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25257    }
25258}
25259
25260impl fidl::endpoints::Responder for BaseNetworkSocketSetIpReceiveTtlResponder {
25261    type ControlHandle = BaseNetworkSocketControlHandle;
25262
25263    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25264        &self.control_handle
25265    }
25266
25267    fn drop_without_shutdown(mut self) {
25268        // Safety: drops once, never accessed again due to mem::forget
25269        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25270        // Prevent Drop from running (which would shut down the channel)
25271        std::mem::forget(self);
25272    }
25273}
25274
25275impl BaseNetworkSocketSetIpReceiveTtlResponder {
25276    /// Sends a response to the FIDL transaction.
25277    ///
25278    /// Sets the channel to shutdown if an error occurs.
25279    pub fn send(
25280        self,
25281        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25282    ) -> Result<(), fidl::Error> {
25283        let _result = self.send_raw(result);
25284        if _result.is_err() {
25285            self.control_handle.shutdown();
25286        }
25287        self.drop_without_shutdown();
25288        _result
25289    }
25290
25291    /// Similar to "send" but does not shutdown the channel if an error occurs.
25292    pub fn send_no_shutdown_on_err(
25293        self,
25294        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25295    ) -> Result<(), fidl::Error> {
25296        let _result = self.send_raw(result);
25297        self.drop_without_shutdown();
25298        _result
25299    }
25300
25301    fn send_raw(
25302        &self,
25303        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25304    ) -> Result<(), fidl::Error> {
25305        self.control_handle.inner.send::<fidl::encoding::ResultType<
25306            fidl::encoding::EmptyStruct,
25307            fidl_fuchsia_posix::Errno,
25308        >>(
25309            result,
25310            self.tx_id,
25311            0x46f15be0ce0ab82b,
25312            fidl::encoding::DynamicFlags::empty(),
25313        )
25314    }
25315}
25316
25317#[must_use = "FIDL methods require a response to be sent"]
25318#[derive(Debug)]
25319pub struct BaseNetworkSocketGetIpReceiveTtlResponder {
25320    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25321    tx_id: u32,
25322}
25323
25324/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25325/// if the responder is dropped without sending a response, so that the client
25326/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25327impl std::ops::Drop for BaseNetworkSocketGetIpReceiveTtlResponder {
25328    fn drop(&mut self) {
25329        self.control_handle.shutdown();
25330        // Safety: drops once, never accessed again
25331        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25332    }
25333}
25334
25335impl fidl::endpoints::Responder for BaseNetworkSocketGetIpReceiveTtlResponder {
25336    type ControlHandle = BaseNetworkSocketControlHandle;
25337
25338    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25339        &self.control_handle
25340    }
25341
25342    fn drop_without_shutdown(mut self) {
25343        // Safety: drops once, never accessed again due to mem::forget
25344        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25345        // Prevent Drop from running (which would shut down the channel)
25346        std::mem::forget(self);
25347    }
25348}
25349
25350impl BaseNetworkSocketGetIpReceiveTtlResponder {
25351    /// Sends a response to the FIDL transaction.
25352    ///
25353    /// Sets the channel to shutdown if an error occurs.
25354    pub fn send(
25355        self,
25356        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
25357    ) -> Result<(), fidl::Error> {
25358        let _result = self.send_raw(result);
25359        if _result.is_err() {
25360            self.control_handle.shutdown();
25361        }
25362        self.drop_without_shutdown();
25363        _result
25364    }
25365
25366    /// Similar to "send" but does not shutdown the channel if an error occurs.
25367    pub fn send_no_shutdown_on_err(
25368        self,
25369        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
25370    ) -> Result<(), fidl::Error> {
25371        let _result = self.send_raw(result);
25372        self.drop_without_shutdown();
25373        _result
25374    }
25375
25376    fn send_raw(
25377        &self,
25378        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
25379    ) -> Result<(), fidl::Error> {
25380        self.control_handle.inner.send::<fidl::encoding::ResultType<
25381            BaseNetworkSocketGetIpReceiveTtlResponse,
25382            fidl_fuchsia_posix::Errno,
25383        >>(
25384            result.map(|value| (value,)),
25385            self.tx_id,
25386            0x678ddd5a5dfa2eb5,
25387            fidl::encoding::DynamicFlags::empty(),
25388        )
25389    }
25390}
25391
25392#[must_use = "FIDL methods require a response to be sent"]
25393#[derive(Debug)]
25394pub struct BaseNetworkSocketSetIpMulticastInterfaceResponder {
25395    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25396    tx_id: u32,
25397}
25398
25399/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25400/// if the responder is dropped without sending a response, so that the client
25401/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25402impl std::ops::Drop for BaseNetworkSocketSetIpMulticastInterfaceResponder {
25403    fn drop(&mut self) {
25404        self.control_handle.shutdown();
25405        // Safety: drops once, never accessed again
25406        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25407    }
25408}
25409
25410impl fidl::endpoints::Responder for BaseNetworkSocketSetIpMulticastInterfaceResponder {
25411    type ControlHandle = BaseNetworkSocketControlHandle;
25412
25413    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25414        &self.control_handle
25415    }
25416
25417    fn drop_without_shutdown(mut self) {
25418        // Safety: drops once, never accessed again due to mem::forget
25419        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25420        // Prevent Drop from running (which would shut down the channel)
25421        std::mem::forget(self);
25422    }
25423}
25424
25425impl BaseNetworkSocketSetIpMulticastInterfaceResponder {
25426    /// Sends a response to the FIDL transaction.
25427    ///
25428    /// Sets the channel to shutdown if an error occurs.
25429    pub fn send(
25430        self,
25431        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25432    ) -> Result<(), fidl::Error> {
25433        let _result = self.send_raw(result);
25434        if _result.is_err() {
25435            self.control_handle.shutdown();
25436        }
25437        self.drop_without_shutdown();
25438        _result
25439    }
25440
25441    /// Similar to "send" but does not shutdown the channel if an error occurs.
25442    pub fn send_no_shutdown_on_err(
25443        self,
25444        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25445    ) -> Result<(), fidl::Error> {
25446        let _result = self.send_raw(result);
25447        self.drop_without_shutdown();
25448        _result
25449    }
25450
25451    fn send_raw(
25452        &self,
25453        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25454    ) -> Result<(), fidl::Error> {
25455        self.control_handle.inner.send::<fidl::encoding::ResultType<
25456            fidl::encoding::EmptyStruct,
25457            fidl_fuchsia_posix::Errno,
25458        >>(
25459            result,
25460            self.tx_id,
25461            0x752fbfa9b12befe,
25462            fidl::encoding::DynamicFlags::empty(),
25463        )
25464    }
25465}
25466
25467#[must_use = "FIDL methods require a response to be sent"]
25468#[derive(Debug)]
25469pub struct BaseNetworkSocketGetIpMulticastInterfaceResponder {
25470    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25471    tx_id: u32,
25472}
25473
25474/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25475/// if the responder is dropped without sending a response, so that the client
25476/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25477impl std::ops::Drop for BaseNetworkSocketGetIpMulticastInterfaceResponder {
25478    fn drop(&mut self) {
25479        self.control_handle.shutdown();
25480        // Safety: drops once, never accessed again
25481        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25482    }
25483}
25484
25485impl fidl::endpoints::Responder for BaseNetworkSocketGetIpMulticastInterfaceResponder {
25486    type ControlHandle = BaseNetworkSocketControlHandle;
25487
25488    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25489        &self.control_handle
25490    }
25491
25492    fn drop_without_shutdown(mut self) {
25493        // Safety: drops once, never accessed again due to mem::forget
25494        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25495        // Prevent Drop from running (which would shut down the channel)
25496        std::mem::forget(self);
25497    }
25498}
25499
25500impl BaseNetworkSocketGetIpMulticastInterfaceResponder {
25501    /// Sends a response to the FIDL transaction.
25502    ///
25503    /// Sets the channel to shutdown if an error occurs.
25504    pub fn send(
25505        self,
25506        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
25507    ) -> Result<(), fidl::Error> {
25508        let _result = self.send_raw(result);
25509        if _result.is_err() {
25510            self.control_handle.shutdown();
25511        }
25512        self.drop_without_shutdown();
25513        _result
25514    }
25515
25516    /// Similar to "send" but does not shutdown the channel if an error occurs.
25517    pub fn send_no_shutdown_on_err(
25518        self,
25519        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
25520    ) -> Result<(), fidl::Error> {
25521        let _result = self.send_raw(result);
25522        self.drop_without_shutdown();
25523        _result
25524    }
25525
25526    fn send_raw(
25527        &self,
25528        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
25529    ) -> Result<(), fidl::Error> {
25530        self.control_handle.inner.send::<fidl::encoding::ResultType<
25531            BaseNetworkSocketGetIpMulticastInterfaceResponse,
25532            fidl_fuchsia_posix::Errno,
25533        >>(
25534            result.map(|value| (value,)),
25535            self.tx_id,
25536            0x320bd14c4df046c4,
25537            fidl::encoding::DynamicFlags::empty(),
25538        )
25539    }
25540}
25541
25542#[must_use = "FIDL methods require a response to be sent"]
25543#[derive(Debug)]
25544pub struct BaseNetworkSocketSetIpMulticastTtlResponder {
25545    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25546    tx_id: u32,
25547}
25548
25549/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25550/// if the responder is dropped without sending a response, so that the client
25551/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25552impl std::ops::Drop for BaseNetworkSocketSetIpMulticastTtlResponder {
25553    fn drop(&mut self) {
25554        self.control_handle.shutdown();
25555        // Safety: drops once, never accessed again
25556        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25557    }
25558}
25559
25560impl fidl::endpoints::Responder for BaseNetworkSocketSetIpMulticastTtlResponder {
25561    type ControlHandle = BaseNetworkSocketControlHandle;
25562
25563    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25564        &self.control_handle
25565    }
25566
25567    fn drop_without_shutdown(mut self) {
25568        // Safety: drops once, never accessed again due to mem::forget
25569        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25570        // Prevent Drop from running (which would shut down the channel)
25571        std::mem::forget(self);
25572    }
25573}
25574
25575impl BaseNetworkSocketSetIpMulticastTtlResponder {
25576    /// Sends a response to the FIDL transaction.
25577    ///
25578    /// Sets the channel to shutdown if an error occurs.
25579    pub fn send(
25580        self,
25581        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25582    ) -> Result<(), fidl::Error> {
25583        let _result = self.send_raw(result);
25584        if _result.is_err() {
25585            self.control_handle.shutdown();
25586        }
25587        self.drop_without_shutdown();
25588        _result
25589    }
25590
25591    /// Similar to "send" but does not shutdown the channel if an error occurs.
25592    pub fn send_no_shutdown_on_err(
25593        self,
25594        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25595    ) -> Result<(), fidl::Error> {
25596        let _result = self.send_raw(result);
25597        self.drop_without_shutdown();
25598        _result
25599    }
25600
25601    fn send_raw(
25602        &self,
25603        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25604    ) -> Result<(), fidl::Error> {
25605        self.control_handle.inner.send::<fidl::encoding::ResultType<
25606            fidl::encoding::EmptyStruct,
25607            fidl_fuchsia_posix::Errno,
25608        >>(
25609            result,
25610            self.tx_id,
25611            0x63134d53772916a1,
25612            fidl::encoding::DynamicFlags::empty(),
25613        )
25614    }
25615}
25616
25617#[must_use = "FIDL methods require a response to be sent"]
25618#[derive(Debug)]
25619pub struct BaseNetworkSocketGetIpMulticastTtlResponder {
25620    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25621    tx_id: u32,
25622}
25623
25624/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25625/// if the responder is dropped without sending a response, so that the client
25626/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25627impl std::ops::Drop for BaseNetworkSocketGetIpMulticastTtlResponder {
25628    fn drop(&mut self) {
25629        self.control_handle.shutdown();
25630        // Safety: drops once, never accessed again
25631        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25632    }
25633}
25634
25635impl fidl::endpoints::Responder for BaseNetworkSocketGetIpMulticastTtlResponder {
25636    type ControlHandle = BaseNetworkSocketControlHandle;
25637
25638    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25639        &self.control_handle
25640    }
25641
25642    fn drop_without_shutdown(mut self) {
25643        // Safety: drops once, never accessed again due to mem::forget
25644        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25645        // Prevent Drop from running (which would shut down the channel)
25646        std::mem::forget(self);
25647    }
25648}
25649
25650impl BaseNetworkSocketGetIpMulticastTtlResponder {
25651    /// Sends a response to the FIDL transaction.
25652    ///
25653    /// Sets the channel to shutdown if an error occurs.
25654    pub fn send(
25655        self,
25656        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
25657    ) -> Result<(), fidl::Error> {
25658        let _result = self.send_raw(result);
25659        if _result.is_err() {
25660            self.control_handle.shutdown();
25661        }
25662        self.drop_without_shutdown();
25663        _result
25664    }
25665
25666    /// Similar to "send" but does not shutdown the channel if an error occurs.
25667    pub fn send_no_shutdown_on_err(
25668        self,
25669        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
25670    ) -> Result<(), fidl::Error> {
25671        let _result = self.send_raw(result);
25672        self.drop_without_shutdown();
25673        _result
25674    }
25675
25676    fn send_raw(
25677        &self,
25678        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
25679    ) -> Result<(), fidl::Error> {
25680        self.control_handle.inner.send::<fidl::encoding::ResultType<
25681            BaseNetworkSocketGetIpMulticastTtlResponse,
25682            fidl_fuchsia_posix::Errno,
25683        >>(
25684            result.map(|value| (value,)),
25685            self.tx_id,
25686            0x4665cd378f39e1a,
25687            fidl::encoding::DynamicFlags::empty(),
25688        )
25689    }
25690}
25691
25692#[must_use = "FIDL methods require a response to be sent"]
25693#[derive(Debug)]
25694pub struct BaseNetworkSocketSetIpMulticastLoopbackResponder {
25695    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25696    tx_id: u32,
25697}
25698
25699/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25700/// if the responder is dropped without sending a response, so that the client
25701/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25702impl std::ops::Drop for BaseNetworkSocketSetIpMulticastLoopbackResponder {
25703    fn drop(&mut self) {
25704        self.control_handle.shutdown();
25705        // Safety: drops once, never accessed again
25706        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25707    }
25708}
25709
25710impl fidl::endpoints::Responder for BaseNetworkSocketSetIpMulticastLoopbackResponder {
25711    type ControlHandle = BaseNetworkSocketControlHandle;
25712
25713    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25714        &self.control_handle
25715    }
25716
25717    fn drop_without_shutdown(mut self) {
25718        // Safety: drops once, never accessed again due to mem::forget
25719        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25720        // Prevent Drop from running (which would shut down the channel)
25721        std::mem::forget(self);
25722    }
25723}
25724
25725impl BaseNetworkSocketSetIpMulticastLoopbackResponder {
25726    /// Sends a response to the FIDL transaction.
25727    ///
25728    /// Sets the channel to shutdown if an error occurs.
25729    pub fn send(
25730        self,
25731        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25732    ) -> Result<(), fidl::Error> {
25733        let _result = self.send_raw(result);
25734        if _result.is_err() {
25735            self.control_handle.shutdown();
25736        }
25737        self.drop_without_shutdown();
25738        _result
25739    }
25740
25741    /// Similar to "send" but does not shutdown the channel if an error occurs.
25742    pub fn send_no_shutdown_on_err(
25743        self,
25744        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25745    ) -> Result<(), fidl::Error> {
25746        let _result = self.send_raw(result);
25747        self.drop_without_shutdown();
25748        _result
25749    }
25750
25751    fn send_raw(
25752        &self,
25753        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25754    ) -> Result<(), fidl::Error> {
25755        self.control_handle.inner.send::<fidl::encoding::ResultType<
25756            fidl::encoding::EmptyStruct,
25757            fidl_fuchsia_posix::Errno,
25758        >>(
25759            result,
25760            self.tx_id,
25761            0x20c55c11f00943ea,
25762            fidl::encoding::DynamicFlags::empty(),
25763        )
25764    }
25765}
25766
25767#[must_use = "FIDL methods require a response to be sent"]
25768#[derive(Debug)]
25769pub struct BaseNetworkSocketGetIpMulticastLoopbackResponder {
25770    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25771    tx_id: u32,
25772}
25773
25774/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25775/// if the responder is dropped without sending a response, so that the client
25776/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25777impl std::ops::Drop for BaseNetworkSocketGetIpMulticastLoopbackResponder {
25778    fn drop(&mut self) {
25779        self.control_handle.shutdown();
25780        // Safety: drops once, never accessed again
25781        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25782    }
25783}
25784
25785impl fidl::endpoints::Responder for BaseNetworkSocketGetIpMulticastLoopbackResponder {
25786    type ControlHandle = BaseNetworkSocketControlHandle;
25787
25788    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25789        &self.control_handle
25790    }
25791
25792    fn drop_without_shutdown(mut self) {
25793        // Safety: drops once, never accessed again due to mem::forget
25794        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25795        // Prevent Drop from running (which would shut down the channel)
25796        std::mem::forget(self);
25797    }
25798}
25799
25800impl BaseNetworkSocketGetIpMulticastLoopbackResponder {
25801    /// Sends a response to the FIDL transaction.
25802    ///
25803    /// Sets the channel to shutdown if an error occurs.
25804    pub fn send(
25805        self,
25806        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
25807    ) -> Result<(), fidl::Error> {
25808        let _result = self.send_raw(result);
25809        if _result.is_err() {
25810            self.control_handle.shutdown();
25811        }
25812        self.drop_without_shutdown();
25813        _result
25814    }
25815
25816    /// Similar to "send" but does not shutdown the channel if an error occurs.
25817    pub fn send_no_shutdown_on_err(
25818        self,
25819        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
25820    ) -> Result<(), fidl::Error> {
25821        let _result = self.send_raw(result);
25822        self.drop_without_shutdown();
25823        _result
25824    }
25825
25826    fn send_raw(
25827        &self,
25828        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
25829    ) -> Result<(), fidl::Error> {
25830        self.control_handle.inner.send::<fidl::encoding::ResultType<
25831            BaseNetworkSocketGetIpMulticastLoopbackResponse,
25832            fidl_fuchsia_posix::Errno,
25833        >>(
25834            result.map(|value| (value,)),
25835            self.tx_id,
25836            0x3b6b26ff558298f2,
25837            fidl::encoding::DynamicFlags::empty(),
25838        )
25839    }
25840}
25841
25842#[must_use = "FIDL methods require a response to be sent"]
25843#[derive(Debug)]
25844pub struct BaseNetworkSocketAddIpMembershipResponder {
25845    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25846    tx_id: u32,
25847}
25848
25849/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25850/// if the responder is dropped without sending a response, so that the client
25851/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25852impl std::ops::Drop for BaseNetworkSocketAddIpMembershipResponder {
25853    fn drop(&mut self) {
25854        self.control_handle.shutdown();
25855        // Safety: drops once, never accessed again
25856        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25857    }
25858}
25859
25860impl fidl::endpoints::Responder for BaseNetworkSocketAddIpMembershipResponder {
25861    type ControlHandle = BaseNetworkSocketControlHandle;
25862
25863    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25864        &self.control_handle
25865    }
25866
25867    fn drop_without_shutdown(mut self) {
25868        // Safety: drops once, never accessed again due to mem::forget
25869        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25870        // Prevent Drop from running (which would shut down the channel)
25871        std::mem::forget(self);
25872    }
25873}
25874
25875impl BaseNetworkSocketAddIpMembershipResponder {
25876    /// Sends a response to the FIDL transaction.
25877    ///
25878    /// Sets the channel to shutdown if an error occurs.
25879    pub fn send(
25880        self,
25881        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25882    ) -> Result<(), fidl::Error> {
25883        let _result = self.send_raw(result);
25884        if _result.is_err() {
25885            self.control_handle.shutdown();
25886        }
25887        self.drop_without_shutdown();
25888        _result
25889    }
25890
25891    /// Similar to "send" but does not shutdown the channel if an error occurs.
25892    pub fn send_no_shutdown_on_err(
25893        self,
25894        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25895    ) -> Result<(), fidl::Error> {
25896        let _result = self.send_raw(result);
25897        self.drop_without_shutdown();
25898        _result
25899    }
25900
25901    fn send_raw(
25902        &self,
25903        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25904    ) -> Result<(), fidl::Error> {
25905        self.control_handle.inner.send::<fidl::encoding::ResultType<
25906            fidl::encoding::EmptyStruct,
25907            fidl_fuchsia_posix::Errno,
25908        >>(
25909            result,
25910            self.tx_id,
25911            0x76bc7df115a3b4d0,
25912            fidl::encoding::DynamicFlags::empty(),
25913        )
25914    }
25915}
25916
25917#[must_use = "FIDL methods require a response to be sent"]
25918#[derive(Debug)]
25919pub struct BaseNetworkSocketDropIpMembershipResponder {
25920    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25921    tx_id: u32,
25922}
25923
25924/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25925/// if the responder is dropped without sending a response, so that the client
25926/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25927impl std::ops::Drop for BaseNetworkSocketDropIpMembershipResponder {
25928    fn drop(&mut self) {
25929        self.control_handle.shutdown();
25930        // Safety: drops once, never accessed again
25931        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25932    }
25933}
25934
25935impl fidl::endpoints::Responder for BaseNetworkSocketDropIpMembershipResponder {
25936    type ControlHandle = BaseNetworkSocketControlHandle;
25937
25938    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25939        &self.control_handle
25940    }
25941
25942    fn drop_without_shutdown(mut self) {
25943        // Safety: drops once, never accessed again due to mem::forget
25944        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25945        // Prevent Drop from running (which would shut down the channel)
25946        std::mem::forget(self);
25947    }
25948}
25949
25950impl BaseNetworkSocketDropIpMembershipResponder {
25951    /// Sends a response to the FIDL transaction.
25952    ///
25953    /// Sets the channel to shutdown if an error occurs.
25954    pub fn send(
25955        self,
25956        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25957    ) -> Result<(), fidl::Error> {
25958        let _result = self.send_raw(result);
25959        if _result.is_err() {
25960            self.control_handle.shutdown();
25961        }
25962        self.drop_without_shutdown();
25963        _result
25964    }
25965
25966    /// Similar to "send" but does not shutdown the channel if an error occurs.
25967    pub fn send_no_shutdown_on_err(
25968        self,
25969        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25970    ) -> Result<(), fidl::Error> {
25971        let _result = self.send_raw(result);
25972        self.drop_without_shutdown();
25973        _result
25974    }
25975
25976    fn send_raw(
25977        &self,
25978        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25979    ) -> Result<(), fidl::Error> {
25980        self.control_handle.inner.send::<fidl::encoding::ResultType<
25981            fidl::encoding::EmptyStruct,
25982            fidl_fuchsia_posix::Errno,
25983        >>(
25984            result,
25985            self.tx_id,
25986            0x2888f3099188d03,
25987            fidl::encoding::DynamicFlags::empty(),
25988        )
25989    }
25990}
25991
25992#[must_use = "FIDL methods require a response to be sent"]
25993#[derive(Debug)]
25994pub struct BaseNetworkSocketSetIpTransparentResponder {
25995    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25996    tx_id: u32,
25997}
25998
25999/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26000/// if the responder is dropped without sending a response, so that the client
26001/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26002impl std::ops::Drop for BaseNetworkSocketSetIpTransparentResponder {
26003    fn drop(&mut self) {
26004        self.control_handle.shutdown();
26005        // Safety: drops once, never accessed again
26006        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26007    }
26008}
26009
26010impl fidl::endpoints::Responder for BaseNetworkSocketSetIpTransparentResponder {
26011    type ControlHandle = BaseNetworkSocketControlHandle;
26012
26013    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26014        &self.control_handle
26015    }
26016
26017    fn drop_without_shutdown(mut self) {
26018        // Safety: drops once, never accessed again due to mem::forget
26019        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26020        // Prevent Drop from running (which would shut down the channel)
26021        std::mem::forget(self);
26022    }
26023}
26024
26025impl BaseNetworkSocketSetIpTransparentResponder {
26026    /// Sends a response to the FIDL transaction.
26027    ///
26028    /// Sets the channel to shutdown if an error occurs.
26029    pub fn send(
26030        self,
26031        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26032    ) -> Result<(), fidl::Error> {
26033        let _result = self.send_raw(result);
26034        if _result.is_err() {
26035            self.control_handle.shutdown();
26036        }
26037        self.drop_without_shutdown();
26038        _result
26039    }
26040
26041    /// Similar to "send" but does not shutdown the channel if an error occurs.
26042    pub fn send_no_shutdown_on_err(
26043        self,
26044        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26045    ) -> Result<(), fidl::Error> {
26046        let _result = self.send_raw(result);
26047        self.drop_without_shutdown();
26048        _result
26049    }
26050
26051    fn send_raw(
26052        &self,
26053        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26054    ) -> Result<(), fidl::Error> {
26055        self.control_handle.inner.send::<fidl::encoding::ResultType<
26056            fidl::encoding::EmptyStruct,
26057            fidl_fuchsia_posix::Errno,
26058        >>(
26059            result,
26060            self.tx_id,
26061            0x1ae532b0c066e3a0,
26062            fidl::encoding::DynamicFlags::empty(),
26063        )
26064    }
26065}
26066
26067#[must_use = "FIDL methods require a response to be sent"]
26068#[derive(Debug)]
26069pub struct BaseNetworkSocketGetIpTransparentResponder {
26070    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26071    tx_id: u32,
26072}
26073
26074/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26075/// if the responder is dropped without sending a response, so that the client
26076/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26077impl std::ops::Drop for BaseNetworkSocketGetIpTransparentResponder {
26078    fn drop(&mut self) {
26079        self.control_handle.shutdown();
26080        // Safety: drops once, never accessed again
26081        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26082    }
26083}
26084
26085impl fidl::endpoints::Responder for BaseNetworkSocketGetIpTransparentResponder {
26086    type ControlHandle = BaseNetworkSocketControlHandle;
26087
26088    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26089        &self.control_handle
26090    }
26091
26092    fn drop_without_shutdown(mut self) {
26093        // Safety: drops once, never accessed again due to mem::forget
26094        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26095        // Prevent Drop from running (which would shut down the channel)
26096        std::mem::forget(self);
26097    }
26098}
26099
26100impl BaseNetworkSocketGetIpTransparentResponder {
26101    /// Sends a response to the FIDL transaction.
26102    ///
26103    /// Sets the channel to shutdown if an error occurs.
26104    pub fn send(
26105        self,
26106        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
26107    ) -> Result<(), fidl::Error> {
26108        let _result = self.send_raw(result);
26109        if _result.is_err() {
26110            self.control_handle.shutdown();
26111        }
26112        self.drop_without_shutdown();
26113        _result
26114    }
26115
26116    /// Similar to "send" but does not shutdown the channel if an error occurs.
26117    pub fn send_no_shutdown_on_err(
26118        self,
26119        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
26120    ) -> Result<(), fidl::Error> {
26121        let _result = self.send_raw(result);
26122        self.drop_without_shutdown();
26123        _result
26124    }
26125
26126    fn send_raw(
26127        &self,
26128        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
26129    ) -> Result<(), fidl::Error> {
26130        self.control_handle.inner.send::<fidl::encoding::ResultType<
26131            BaseNetworkSocketGetIpTransparentResponse,
26132            fidl_fuchsia_posix::Errno,
26133        >>(
26134            result.map(|value| (value,)),
26135            self.tx_id,
26136            0x51d43695962ebfb5,
26137            fidl::encoding::DynamicFlags::empty(),
26138        )
26139    }
26140}
26141
26142#[must_use = "FIDL methods require a response to be sent"]
26143#[derive(Debug)]
26144pub struct BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResponder {
26145    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26146    tx_id: u32,
26147}
26148
26149/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26150/// if the responder is dropped without sending a response, so that the client
26151/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26152impl std::ops::Drop for BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResponder {
26153    fn drop(&mut self) {
26154        self.control_handle.shutdown();
26155        // Safety: drops once, never accessed again
26156        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26157    }
26158}
26159
26160impl fidl::endpoints::Responder
26161    for BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResponder
26162{
26163    type ControlHandle = BaseNetworkSocketControlHandle;
26164
26165    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26166        &self.control_handle
26167    }
26168
26169    fn drop_without_shutdown(mut self) {
26170        // Safety: drops once, never accessed again due to mem::forget
26171        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26172        // Prevent Drop from running (which would shut down the channel)
26173        std::mem::forget(self);
26174    }
26175}
26176
26177impl BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResponder {
26178    /// Sends a response to the FIDL transaction.
26179    ///
26180    /// Sets the channel to shutdown if an error occurs.
26181    pub fn send(
26182        self,
26183        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26184    ) -> Result<(), fidl::Error> {
26185        let _result = self.send_raw(result);
26186        if _result.is_err() {
26187            self.control_handle.shutdown();
26188        }
26189        self.drop_without_shutdown();
26190        _result
26191    }
26192
26193    /// Similar to "send" but does not shutdown the channel if an error occurs.
26194    pub fn send_no_shutdown_on_err(
26195        self,
26196        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26197    ) -> Result<(), fidl::Error> {
26198        let _result = self.send_raw(result);
26199        self.drop_without_shutdown();
26200        _result
26201    }
26202
26203    fn send_raw(
26204        &self,
26205        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26206    ) -> Result<(), fidl::Error> {
26207        self.control_handle.inner.send::<fidl::encoding::ResultType<
26208            fidl::encoding::EmptyStruct,
26209            fidl_fuchsia_posix::Errno,
26210        >>(
26211            result,
26212            self.tx_id,
26213            0x4722b4ce52f7840,
26214            fidl::encoding::DynamicFlags::empty(),
26215        )
26216    }
26217}
26218
26219#[must_use = "FIDL methods require a response to be sent"]
26220#[derive(Debug)]
26221pub struct BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponder {
26222    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26223    tx_id: u32,
26224}
26225
26226/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26227/// if the responder is dropped without sending a response, so that the client
26228/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26229impl std::ops::Drop for BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponder {
26230    fn drop(&mut self) {
26231        self.control_handle.shutdown();
26232        // Safety: drops once, never accessed again
26233        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26234    }
26235}
26236
26237impl fidl::endpoints::Responder
26238    for BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponder
26239{
26240    type ControlHandle = BaseNetworkSocketControlHandle;
26241
26242    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26243        &self.control_handle
26244    }
26245
26246    fn drop_without_shutdown(mut self) {
26247        // Safety: drops once, never accessed again due to mem::forget
26248        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26249        // Prevent Drop from running (which would shut down the channel)
26250        std::mem::forget(self);
26251    }
26252}
26253
26254impl BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponder {
26255    /// Sends a response to the FIDL transaction.
26256    ///
26257    /// Sets the channel to shutdown if an error occurs.
26258    pub fn send(
26259        self,
26260        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
26261    ) -> Result<(), fidl::Error> {
26262        let _result = self.send_raw(result);
26263        if _result.is_err() {
26264            self.control_handle.shutdown();
26265        }
26266        self.drop_without_shutdown();
26267        _result
26268    }
26269
26270    /// Similar to "send" but does not shutdown the channel if an error occurs.
26271    pub fn send_no_shutdown_on_err(
26272        self,
26273        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
26274    ) -> Result<(), fidl::Error> {
26275        let _result = self.send_raw(result);
26276        self.drop_without_shutdown();
26277        _result
26278    }
26279
26280    fn send_raw(
26281        &self,
26282        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
26283    ) -> Result<(), fidl::Error> {
26284        self.control_handle.inner.send::<fidl::encoding::ResultType<
26285            BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
26286            fidl_fuchsia_posix::Errno,
26287        >>(
26288            result.map(|value| (value,)),
26289            self.tx_id,
26290            0x2a0e7dc5d6bfdfe9,
26291            fidl::encoding::DynamicFlags::empty(),
26292        )
26293    }
26294}
26295
26296#[must_use = "FIDL methods require a response to be sent"]
26297#[derive(Debug)]
26298pub struct BaseNetworkSocketAddIpv6MembershipResponder {
26299    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26300    tx_id: u32,
26301}
26302
26303/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26304/// if the responder is dropped without sending a response, so that the client
26305/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26306impl std::ops::Drop for BaseNetworkSocketAddIpv6MembershipResponder {
26307    fn drop(&mut self) {
26308        self.control_handle.shutdown();
26309        // Safety: drops once, never accessed again
26310        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26311    }
26312}
26313
26314impl fidl::endpoints::Responder for BaseNetworkSocketAddIpv6MembershipResponder {
26315    type ControlHandle = BaseNetworkSocketControlHandle;
26316
26317    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26318        &self.control_handle
26319    }
26320
26321    fn drop_without_shutdown(mut self) {
26322        // Safety: drops once, never accessed again due to mem::forget
26323        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26324        // Prevent Drop from running (which would shut down the channel)
26325        std::mem::forget(self);
26326    }
26327}
26328
26329impl BaseNetworkSocketAddIpv6MembershipResponder {
26330    /// Sends a response to the FIDL transaction.
26331    ///
26332    /// Sets the channel to shutdown if an error occurs.
26333    pub fn send(
26334        self,
26335        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26336    ) -> Result<(), fidl::Error> {
26337        let _result = self.send_raw(result);
26338        if _result.is_err() {
26339            self.control_handle.shutdown();
26340        }
26341        self.drop_without_shutdown();
26342        _result
26343    }
26344
26345    /// Similar to "send" but does not shutdown the channel if an error occurs.
26346    pub fn send_no_shutdown_on_err(
26347        self,
26348        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26349    ) -> Result<(), fidl::Error> {
26350        let _result = self.send_raw(result);
26351        self.drop_without_shutdown();
26352        _result
26353    }
26354
26355    fn send_raw(
26356        &self,
26357        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26358    ) -> Result<(), fidl::Error> {
26359        self.control_handle.inner.send::<fidl::encoding::ResultType<
26360            fidl::encoding::EmptyStruct,
26361            fidl_fuchsia_posix::Errno,
26362        >>(
26363            result,
26364            self.tx_id,
26365            0x7c94727acb4ea4b3,
26366            fidl::encoding::DynamicFlags::empty(),
26367        )
26368    }
26369}
26370
26371#[must_use = "FIDL methods require a response to be sent"]
26372#[derive(Debug)]
26373pub struct BaseNetworkSocketDropIpv6MembershipResponder {
26374    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26375    tx_id: u32,
26376}
26377
26378/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26379/// if the responder is dropped without sending a response, so that the client
26380/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26381impl std::ops::Drop for BaseNetworkSocketDropIpv6MembershipResponder {
26382    fn drop(&mut self) {
26383        self.control_handle.shutdown();
26384        // Safety: drops once, never accessed again
26385        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26386    }
26387}
26388
26389impl fidl::endpoints::Responder for BaseNetworkSocketDropIpv6MembershipResponder {
26390    type ControlHandle = BaseNetworkSocketControlHandle;
26391
26392    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26393        &self.control_handle
26394    }
26395
26396    fn drop_without_shutdown(mut self) {
26397        // Safety: drops once, never accessed again due to mem::forget
26398        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26399        // Prevent Drop from running (which would shut down the channel)
26400        std::mem::forget(self);
26401    }
26402}
26403
26404impl BaseNetworkSocketDropIpv6MembershipResponder {
26405    /// Sends a response to the FIDL transaction.
26406    ///
26407    /// Sets the channel to shutdown if an error occurs.
26408    pub fn send(
26409        self,
26410        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26411    ) -> Result<(), fidl::Error> {
26412        let _result = self.send_raw(result);
26413        if _result.is_err() {
26414            self.control_handle.shutdown();
26415        }
26416        self.drop_without_shutdown();
26417        _result
26418    }
26419
26420    /// Similar to "send" but does not shutdown the channel if an error occurs.
26421    pub fn send_no_shutdown_on_err(
26422        self,
26423        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26424    ) -> Result<(), fidl::Error> {
26425        let _result = self.send_raw(result);
26426        self.drop_without_shutdown();
26427        _result
26428    }
26429
26430    fn send_raw(
26431        &self,
26432        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26433    ) -> Result<(), fidl::Error> {
26434        self.control_handle.inner.send::<fidl::encoding::ResultType<
26435            fidl::encoding::EmptyStruct,
26436            fidl_fuchsia_posix::Errno,
26437        >>(
26438            result,
26439            self.tx_id,
26440            0x42104c70ccaba304,
26441            fidl::encoding::DynamicFlags::empty(),
26442        )
26443    }
26444}
26445
26446#[must_use = "FIDL methods require a response to be sent"]
26447#[derive(Debug)]
26448pub struct BaseNetworkSocketSetIpv6MulticastInterfaceResponder {
26449    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26450    tx_id: u32,
26451}
26452
26453/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26454/// if the responder is dropped without sending a response, so that the client
26455/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26456impl std::ops::Drop for BaseNetworkSocketSetIpv6MulticastInterfaceResponder {
26457    fn drop(&mut self) {
26458        self.control_handle.shutdown();
26459        // Safety: drops once, never accessed again
26460        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26461    }
26462}
26463
26464impl fidl::endpoints::Responder for BaseNetworkSocketSetIpv6MulticastInterfaceResponder {
26465    type ControlHandle = BaseNetworkSocketControlHandle;
26466
26467    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26468        &self.control_handle
26469    }
26470
26471    fn drop_without_shutdown(mut self) {
26472        // Safety: drops once, never accessed again due to mem::forget
26473        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26474        // Prevent Drop from running (which would shut down the channel)
26475        std::mem::forget(self);
26476    }
26477}
26478
26479impl BaseNetworkSocketSetIpv6MulticastInterfaceResponder {
26480    /// Sends a response to the FIDL transaction.
26481    ///
26482    /// Sets the channel to shutdown if an error occurs.
26483    pub fn send(
26484        self,
26485        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26486    ) -> Result<(), fidl::Error> {
26487        let _result = self.send_raw(result);
26488        if _result.is_err() {
26489            self.control_handle.shutdown();
26490        }
26491        self.drop_without_shutdown();
26492        _result
26493    }
26494
26495    /// Similar to "send" but does not shutdown the channel if an error occurs.
26496    pub fn send_no_shutdown_on_err(
26497        self,
26498        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26499    ) -> Result<(), fidl::Error> {
26500        let _result = self.send_raw(result);
26501        self.drop_without_shutdown();
26502        _result
26503    }
26504
26505    fn send_raw(
26506        &self,
26507        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26508    ) -> Result<(), fidl::Error> {
26509        self.control_handle.inner.send::<fidl::encoding::ResultType<
26510            fidl::encoding::EmptyStruct,
26511            fidl_fuchsia_posix::Errno,
26512        >>(
26513            result,
26514            self.tx_id,
26515            0x135f76db3774ab3b,
26516            fidl::encoding::DynamicFlags::empty(),
26517        )
26518    }
26519}
26520
26521#[must_use = "FIDL methods require a response to be sent"]
26522#[derive(Debug)]
26523pub struct BaseNetworkSocketGetIpv6MulticastInterfaceResponder {
26524    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26525    tx_id: u32,
26526}
26527
26528/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26529/// if the responder is dropped without sending a response, so that the client
26530/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26531impl std::ops::Drop for BaseNetworkSocketGetIpv6MulticastInterfaceResponder {
26532    fn drop(&mut self) {
26533        self.control_handle.shutdown();
26534        // Safety: drops once, never accessed again
26535        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26536    }
26537}
26538
26539impl fidl::endpoints::Responder for BaseNetworkSocketGetIpv6MulticastInterfaceResponder {
26540    type ControlHandle = BaseNetworkSocketControlHandle;
26541
26542    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26543        &self.control_handle
26544    }
26545
26546    fn drop_without_shutdown(mut self) {
26547        // Safety: drops once, never accessed again due to mem::forget
26548        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26549        // Prevent Drop from running (which would shut down the channel)
26550        std::mem::forget(self);
26551    }
26552}
26553
26554impl BaseNetworkSocketGetIpv6MulticastInterfaceResponder {
26555    /// Sends a response to the FIDL transaction.
26556    ///
26557    /// Sets the channel to shutdown if an error occurs.
26558    pub fn send(
26559        self,
26560        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
26561    ) -> Result<(), fidl::Error> {
26562        let _result = self.send_raw(result);
26563        if _result.is_err() {
26564            self.control_handle.shutdown();
26565        }
26566        self.drop_without_shutdown();
26567        _result
26568    }
26569
26570    /// Similar to "send" but does not shutdown the channel if an error occurs.
26571    pub fn send_no_shutdown_on_err(
26572        self,
26573        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
26574    ) -> Result<(), fidl::Error> {
26575        let _result = self.send_raw(result);
26576        self.drop_without_shutdown();
26577        _result
26578    }
26579
26580    fn send_raw(
26581        &self,
26582        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
26583    ) -> Result<(), fidl::Error> {
26584        self.control_handle.inner.send::<fidl::encoding::ResultType<
26585            BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
26586            fidl_fuchsia_posix::Errno,
26587        >>(
26588            result.map(|value| (value,)),
26589            self.tx_id,
26590            0x1f26fcdd348f1882,
26591            fidl::encoding::DynamicFlags::empty(),
26592        )
26593    }
26594}
26595
26596#[must_use = "FIDL methods require a response to be sent"]
26597#[derive(Debug)]
26598pub struct BaseNetworkSocketSetIpv6UnicastHopsResponder {
26599    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26600    tx_id: u32,
26601}
26602
26603/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26604/// if the responder is dropped without sending a response, so that the client
26605/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26606impl std::ops::Drop for BaseNetworkSocketSetIpv6UnicastHopsResponder {
26607    fn drop(&mut self) {
26608        self.control_handle.shutdown();
26609        // Safety: drops once, never accessed again
26610        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26611    }
26612}
26613
26614impl fidl::endpoints::Responder for BaseNetworkSocketSetIpv6UnicastHopsResponder {
26615    type ControlHandle = BaseNetworkSocketControlHandle;
26616
26617    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26618        &self.control_handle
26619    }
26620
26621    fn drop_without_shutdown(mut self) {
26622        // Safety: drops once, never accessed again due to mem::forget
26623        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26624        // Prevent Drop from running (which would shut down the channel)
26625        std::mem::forget(self);
26626    }
26627}
26628
26629impl BaseNetworkSocketSetIpv6UnicastHopsResponder {
26630    /// Sends a response to the FIDL transaction.
26631    ///
26632    /// Sets the channel to shutdown if an error occurs.
26633    pub fn send(
26634        self,
26635        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26636    ) -> Result<(), fidl::Error> {
26637        let _result = self.send_raw(result);
26638        if _result.is_err() {
26639            self.control_handle.shutdown();
26640        }
26641        self.drop_without_shutdown();
26642        _result
26643    }
26644
26645    /// Similar to "send" but does not shutdown the channel if an error occurs.
26646    pub fn send_no_shutdown_on_err(
26647        self,
26648        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26649    ) -> Result<(), fidl::Error> {
26650        let _result = self.send_raw(result);
26651        self.drop_without_shutdown();
26652        _result
26653    }
26654
26655    fn send_raw(
26656        &self,
26657        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26658    ) -> Result<(), fidl::Error> {
26659        self.control_handle.inner.send::<fidl::encoding::ResultType<
26660            fidl::encoding::EmptyStruct,
26661            fidl_fuchsia_posix::Errno,
26662        >>(
26663            result,
26664            self.tx_id,
26665            0x157d51e98f462859,
26666            fidl::encoding::DynamicFlags::empty(),
26667        )
26668    }
26669}
26670
26671#[must_use = "FIDL methods require a response to be sent"]
26672#[derive(Debug)]
26673pub struct BaseNetworkSocketGetIpv6UnicastHopsResponder {
26674    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26675    tx_id: u32,
26676}
26677
26678/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26679/// if the responder is dropped without sending a response, so that the client
26680/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26681impl std::ops::Drop for BaseNetworkSocketGetIpv6UnicastHopsResponder {
26682    fn drop(&mut self) {
26683        self.control_handle.shutdown();
26684        // Safety: drops once, never accessed again
26685        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26686    }
26687}
26688
26689impl fidl::endpoints::Responder for BaseNetworkSocketGetIpv6UnicastHopsResponder {
26690    type ControlHandle = BaseNetworkSocketControlHandle;
26691
26692    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26693        &self.control_handle
26694    }
26695
26696    fn drop_without_shutdown(mut self) {
26697        // Safety: drops once, never accessed again due to mem::forget
26698        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26699        // Prevent Drop from running (which would shut down the channel)
26700        std::mem::forget(self);
26701    }
26702}
26703
26704impl BaseNetworkSocketGetIpv6UnicastHopsResponder {
26705    /// Sends a response to the FIDL transaction.
26706    ///
26707    /// Sets the channel to shutdown if an error occurs.
26708    pub fn send(
26709        self,
26710        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
26711    ) -> Result<(), fidl::Error> {
26712        let _result = self.send_raw(result);
26713        if _result.is_err() {
26714            self.control_handle.shutdown();
26715        }
26716        self.drop_without_shutdown();
26717        _result
26718    }
26719
26720    /// Similar to "send" but does not shutdown the channel if an error occurs.
26721    pub fn send_no_shutdown_on_err(
26722        self,
26723        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
26724    ) -> Result<(), fidl::Error> {
26725        let _result = self.send_raw(result);
26726        self.drop_without_shutdown();
26727        _result
26728    }
26729
26730    fn send_raw(
26731        &self,
26732        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
26733    ) -> Result<(), fidl::Error> {
26734        self.control_handle.inner.send::<fidl::encoding::ResultType<
26735            BaseNetworkSocketGetIpv6UnicastHopsResponse,
26736            fidl_fuchsia_posix::Errno,
26737        >>(
26738            result.map(|value| (value,)),
26739            self.tx_id,
26740            0x21f4641cad8bd8d2,
26741            fidl::encoding::DynamicFlags::empty(),
26742        )
26743    }
26744}
26745
26746#[must_use = "FIDL methods require a response to be sent"]
26747#[derive(Debug)]
26748pub struct BaseNetworkSocketSetIpv6ReceiveHopLimitResponder {
26749    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26750    tx_id: u32,
26751}
26752
26753/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26754/// if the responder is dropped without sending a response, so that the client
26755/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26756impl std::ops::Drop for BaseNetworkSocketSetIpv6ReceiveHopLimitResponder {
26757    fn drop(&mut self) {
26758        self.control_handle.shutdown();
26759        // Safety: drops once, never accessed again
26760        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26761    }
26762}
26763
26764impl fidl::endpoints::Responder for BaseNetworkSocketSetIpv6ReceiveHopLimitResponder {
26765    type ControlHandle = BaseNetworkSocketControlHandle;
26766
26767    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26768        &self.control_handle
26769    }
26770
26771    fn drop_without_shutdown(mut self) {
26772        // Safety: drops once, never accessed again due to mem::forget
26773        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26774        // Prevent Drop from running (which would shut down the channel)
26775        std::mem::forget(self);
26776    }
26777}
26778
26779impl BaseNetworkSocketSetIpv6ReceiveHopLimitResponder {
26780    /// Sends a response to the FIDL transaction.
26781    ///
26782    /// Sets the channel to shutdown if an error occurs.
26783    pub fn send(
26784        self,
26785        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26786    ) -> Result<(), fidl::Error> {
26787        let _result = self.send_raw(result);
26788        if _result.is_err() {
26789            self.control_handle.shutdown();
26790        }
26791        self.drop_without_shutdown();
26792        _result
26793    }
26794
26795    /// Similar to "send" but does not shutdown the channel if an error occurs.
26796    pub fn send_no_shutdown_on_err(
26797        self,
26798        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26799    ) -> Result<(), fidl::Error> {
26800        let _result = self.send_raw(result);
26801        self.drop_without_shutdown();
26802        _result
26803    }
26804
26805    fn send_raw(
26806        &self,
26807        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26808    ) -> Result<(), fidl::Error> {
26809        self.control_handle.inner.send::<fidl::encoding::ResultType<
26810            fidl::encoding::EmptyStruct,
26811            fidl_fuchsia_posix::Errno,
26812        >>(
26813            result,
26814            self.tx_id,
26815            0x5c24808ed2e84a1e,
26816            fidl::encoding::DynamicFlags::empty(),
26817        )
26818    }
26819}
26820
26821#[must_use = "FIDL methods require a response to be sent"]
26822#[derive(Debug)]
26823pub struct BaseNetworkSocketGetIpv6ReceiveHopLimitResponder {
26824    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26825    tx_id: u32,
26826}
26827
26828/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26829/// if the responder is dropped without sending a response, so that the client
26830/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26831impl std::ops::Drop for BaseNetworkSocketGetIpv6ReceiveHopLimitResponder {
26832    fn drop(&mut self) {
26833        self.control_handle.shutdown();
26834        // Safety: drops once, never accessed again
26835        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26836    }
26837}
26838
26839impl fidl::endpoints::Responder for BaseNetworkSocketGetIpv6ReceiveHopLimitResponder {
26840    type ControlHandle = BaseNetworkSocketControlHandle;
26841
26842    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26843        &self.control_handle
26844    }
26845
26846    fn drop_without_shutdown(mut self) {
26847        // Safety: drops once, never accessed again due to mem::forget
26848        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26849        // Prevent Drop from running (which would shut down the channel)
26850        std::mem::forget(self);
26851    }
26852}
26853
26854impl BaseNetworkSocketGetIpv6ReceiveHopLimitResponder {
26855    /// Sends a response to the FIDL transaction.
26856    ///
26857    /// Sets the channel to shutdown if an error occurs.
26858    pub fn send(
26859        self,
26860        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
26861    ) -> Result<(), fidl::Error> {
26862        let _result = self.send_raw(result);
26863        if _result.is_err() {
26864            self.control_handle.shutdown();
26865        }
26866        self.drop_without_shutdown();
26867        _result
26868    }
26869
26870    /// Similar to "send" but does not shutdown the channel if an error occurs.
26871    pub fn send_no_shutdown_on_err(
26872        self,
26873        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
26874    ) -> Result<(), fidl::Error> {
26875        let _result = self.send_raw(result);
26876        self.drop_without_shutdown();
26877        _result
26878    }
26879
26880    fn send_raw(
26881        &self,
26882        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
26883    ) -> Result<(), fidl::Error> {
26884        self.control_handle.inner.send::<fidl::encoding::ResultType<
26885            BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
26886            fidl_fuchsia_posix::Errno,
26887        >>(
26888            result.map(|value| (value,)),
26889            self.tx_id,
26890            0x341e06689885b4c0,
26891            fidl::encoding::DynamicFlags::empty(),
26892        )
26893    }
26894}
26895
26896#[must_use = "FIDL methods require a response to be sent"]
26897#[derive(Debug)]
26898pub struct BaseNetworkSocketSetIpv6MulticastHopsResponder {
26899    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26900    tx_id: u32,
26901}
26902
26903/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26904/// if the responder is dropped without sending a response, so that the client
26905/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26906impl std::ops::Drop for BaseNetworkSocketSetIpv6MulticastHopsResponder {
26907    fn drop(&mut self) {
26908        self.control_handle.shutdown();
26909        // Safety: drops once, never accessed again
26910        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26911    }
26912}
26913
26914impl fidl::endpoints::Responder for BaseNetworkSocketSetIpv6MulticastHopsResponder {
26915    type ControlHandle = BaseNetworkSocketControlHandle;
26916
26917    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26918        &self.control_handle
26919    }
26920
26921    fn drop_without_shutdown(mut self) {
26922        // Safety: drops once, never accessed again due to mem::forget
26923        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26924        // Prevent Drop from running (which would shut down the channel)
26925        std::mem::forget(self);
26926    }
26927}
26928
26929impl BaseNetworkSocketSetIpv6MulticastHopsResponder {
26930    /// Sends a response to the FIDL transaction.
26931    ///
26932    /// Sets the channel to shutdown if an error occurs.
26933    pub fn send(
26934        self,
26935        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26936    ) -> Result<(), fidl::Error> {
26937        let _result = self.send_raw(result);
26938        if _result.is_err() {
26939            self.control_handle.shutdown();
26940        }
26941        self.drop_without_shutdown();
26942        _result
26943    }
26944
26945    /// Similar to "send" but does not shutdown the channel if an error occurs.
26946    pub fn send_no_shutdown_on_err(
26947        self,
26948        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26949    ) -> Result<(), fidl::Error> {
26950        let _result = self.send_raw(result);
26951        self.drop_without_shutdown();
26952        _result
26953    }
26954
26955    fn send_raw(
26956        &self,
26957        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26958    ) -> Result<(), fidl::Error> {
26959        self.control_handle.inner.send::<fidl::encoding::ResultType<
26960            fidl::encoding::EmptyStruct,
26961            fidl_fuchsia_posix::Errno,
26962        >>(
26963            result,
26964            self.tx_id,
26965            0x25b9cd4d181f82c1,
26966            fidl::encoding::DynamicFlags::empty(),
26967        )
26968    }
26969}
26970
26971#[must_use = "FIDL methods require a response to be sent"]
26972#[derive(Debug)]
26973pub struct BaseNetworkSocketGetIpv6MulticastHopsResponder {
26974    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26975    tx_id: u32,
26976}
26977
26978/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26979/// if the responder is dropped without sending a response, so that the client
26980/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26981impl std::ops::Drop for BaseNetworkSocketGetIpv6MulticastHopsResponder {
26982    fn drop(&mut self) {
26983        self.control_handle.shutdown();
26984        // Safety: drops once, never accessed again
26985        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26986    }
26987}
26988
26989impl fidl::endpoints::Responder for BaseNetworkSocketGetIpv6MulticastHopsResponder {
26990    type ControlHandle = BaseNetworkSocketControlHandle;
26991
26992    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26993        &self.control_handle
26994    }
26995
26996    fn drop_without_shutdown(mut self) {
26997        // Safety: drops once, never accessed again due to mem::forget
26998        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26999        // Prevent Drop from running (which would shut down the channel)
27000        std::mem::forget(self);
27001    }
27002}
27003
27004impl BaseNetworkSocketGetIpv6MulticastHopsResponder {
27005    /// Sends a response to the FIDL transaction.
27006    ///
27007    /// Sets the channel to shutdown if an error occurs.
27008    pub fn send(
27009        self,
27010        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
27011    ) -> Result<(), fidl::Error> {
27012        let _result = self.send_raw(result);
27013        if _result.is_err() {
27014            self.control_handle.shutdown();
27015        }
27016        self.drop_without_shutdown();
27017        _result
27018    }
27019
27020    /// Similar to "send" but does not shutdown the channel if an error occurs.
27021    pub fn send_no_shutdown_on_err(
27022        self,
27023        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
27024    ) -> Result<(), fidl::Error> {
27025        let _result = self.send_raw(result);
27026        self.drop_without_shutdown();
27027        _result
27028    }
27029
27030    fn send_raw(
27031        &self,
27032        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
27033    ) -> Result<(), fidl::Error> {
27034        self.control_handle.inner.send::<fidl::encoding::ResultType<
27035            BaseNetworkSocketGetIpv6MulticastHopsResponse,
27036            fidl_fuchsia_posix::Errno,
27037        >>(
27038            result.map(|value| (value,)),
27039            self.tx_id,
27040            0x52916948a365012a,
27041            fidl::encoding::DynamicFlags::empty(),
27042        )
27043    }
27044}
27045
27046#[must_use = "FIDL methods require a response to be sent"]
27047#[derive(Debug)]
27048pub struct BaseNetworkSocketSetIpv6MulticastLoopbackResponder {
27049    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27050    tx_id: u32,
27051}
27052
27053/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27054/// if the responder is dropped without sending a response, so that the client
27055/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27056impl std::ops::Drop for BaseNetworkSocketSetIpv6MulticastLoopbackResponder {
27057    fn drop(&mut self) {
27058        self.control_handle.shutdown();
27059        // Safety: drops once, never accessed again
27060        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27061    }
27062}
27063
27064impl fidl::endpoints::Responder for BaseNetworkSocketSetIpv6MulticastLoopbackResponder {
27065    type ControlHandle = BaseNetworkSocketControlHandle;
27066
27067    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27068        &self.control_handle
27069    }
27070
27071    fn drop_without_shutdown(mut self) {
27072        // Safety: drops once, never accessed again due to mem::forget
27073        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27074        // Prevent Drop from running (which would shut down the channel)
27075        std::mem::forget(self);
27076    }
27077}
27078
27079impl BaseNetworkSocketSetIpv6MulticastLoopbackResponder {
27080    /// Sends a response to the FIDL transaction.
27081    ///
27082    /// Sets the channel to shutdown if an error occurs.
27083    pub fn send(
27084        self,
27085        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27086    ) -> Result<(), fidl::Error> {
27087        let _result = self.send_raw(result);
27088        if _result.is_err() {
27089            self.control_handle.shutdown();
27090        }
27091        self.drop_without_shutdown();
27092        _result
27093    }
27094
27095    /// Similar to "send" but does not shutdown the channel if an error occurs.
27096    pub fn send_no_shutdown_on_err(
27097        self,
27098        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27099    ) -> Result<(), fidl::Error> {
27100        let _result = self.send_raw(result);
27101        self.drop_without_shutdown();
27102        _result
27103    }
27104
27105    fn send_raw(
27106        &self,
27107        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27108    ) -> Result<(), fidl::Error> {
27109        self.control_handle.inner.send::<fidl::encoding::ResultType<
27110            fidl::encoding::EmptyStruct,
27111            fidl_fuchsia_posix::Errno,
27112        >>(
27113            result,
27114            self.tx_id,
27115            0x55701c409ff41b40,
27116            fidl::encoding::DynamicFlags::empty(),
27117        )
27118    }
27119}
27120
27121#[must_use = "FIDL methods require a response to be sent"]
27122#[derive(Debug)]
27123pub struct BaseNetworkSocketGetIpv6MulticastLoopbackResponder {
27124    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27125    tx_id: u32,
27126}
27127
27128/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27129/// if the responder is dropped without sending a response, so that the client
27130/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27131impl std::ops::Drop for BaseNetworkSocketGetIpv6MulticastLoopbackResponder {
27132    fn drop(&mut self) {
27133        self.control_handle.shutdown();
27134        // Safety: drops once, never accessed again
27135        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27136    }
27137}
27138
27139impl fidl::endpoints::Responder for BaseNetworkSocketGetIpv6MulticastLoopbackResponder {
27140    type ControlHandle = BaseNetworkSocketControlHandle;
27141
27142    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27143        &self.control_handle
27144    }
27145
27146    fn drop_without_shutdown(mut self) {
27147        // Safety: drops once, never accessed again due to mem::forget
27148        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27149        // Prevent Drop from running (which would shut down the channel)
27150        std::mem::forget(self);
27151    }
27152}
27153
27154impl BaseNetworkSocketGetIpv6MulticastLoopbackResponder {
27155    /// Sends a response to the FIDL transaction.
27156    ///
27157    /// Sets the channel to shutdown if an error occurs.
27158    pub fn send(
27159        self,
27160        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
27161    ) -> Result<(), fidl::Error> {
27162        let _result = self.send_raw(result);
27163        if _result.is_err() {
27164            self.control_handle.shutdown();
27165        }
27166        self.drop_without_shutdown();
27167        _result
27168    }
27169
27170    /// Similar to "send" but does not shutdown the channel if an error occurs.
27171    pub fn send_no_shutdown_on_err(
27172        self,
27173        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
27174    ) -> Result<(), fidl::Error> {
27175        let _result = self.send_raw(result);
27176        self.drop_without_shutdown();
27177        _result
27178    }
27179
27180    fn send_raw(
27181        &self,
27182        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
27183    ) -> Result<(), fidl::Error> {
27184        self.control_handle.inner.send::<fidl::encoding::ResultType<
27185            BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
27186            fidl_fuchsia_posix::Errno,
27187        >>(
27188            result.map(|value| (value,)),
27189            self.tx_id,
27190            0x4415b701fde319c3,
27191            fidl::encoding::DynamicFlags::empty(),
27192        )
27193    }
27194}
27195
27196#[must_use = "FIDL methods require a response to be sent"]
27197#[derive(Debug)]
27198pub struct BaseNetworkSocketSetIpv6OnlyResponder {
27199    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27200    tx_id: u32,
27201}
27202
27203/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27204/// if the responder is dropped without sending a response, so that the client
27205/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27206impl std::ops::Drop for BaseNetworkSocketSetIpv6OnlyResponder {
27207    fn drop(&mut self) {
27208        self.control_handle.shutdown();
27209        // Safety: drops once, never accessed again
27210        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27211    }
27212}
27213
27214impl fidl::endpoints::Responder for BaseNetworkSocketSetIpv6OnlyResponder {
27215    type ControlHandle = BaseNetworkSocketControlHandle;
27216
27217    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27218        &self.control_handle
27219    }
27220
27221    fn drop_without_shutdown(mut self) {
27222        // Safety: drops once, never accessed again due to mem::forget
27223        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27224        // Prevent Drop from running (which would shut down the channel)
27225        std::mem::forget(self);
27226    }
27227}
27228
27229impl BaseNetworkSocketSetIpv6OnlyResponder {
27230    /// Sends a response to the FIDL transaction.
27231    ///
27232    /// Sets the channel to shutdown if an error occurs.
27233    pub fn send(
27234        self,
27235        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27236    ) -> Result<(), fidl::Error> {
27237        let _result = self.send_raw(result);
27238        if _result.is_err() {
27239            self.control_handle.shutdown();
27240        }
27241        self.drop_without_shutdown();
27242        _result
27243    }
27244
27245    /// Similar to "send" but does not shutdown the channel if an error occurs.
27246    pub fn send_no_shutdown_on_err(
27247        self,
27248        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27249    ) -> Result<(), fidl::Error> {
27250        let _result = self.send_raw(result);
27251        self.drop_without_shutdown();
27252        _result
27253    }
27254
27255    fn send_raw(
27256        &self,
27257        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27258    ) -> Result<(), fidl::Error> {
27259        self.control_handle.inner.send::<fidl::encoding::ResultType<
27260            fidl::encoding::EmptyStruct,
27261            fidl_fuchsia_posix::Errno,
27262        >>(
27263            result,
27264            self.tx_id,
27265            0x4873f1364758cbba,
27266            fidl::encoding::DynamicFlags::empty(),
27267        )
27268    }
27269}
27270
27271#[must_use = "FIDL methods require a response to be sent"]
27272#[derive(Debug)]
27273pub struct BaseNetworkSocketGetIpv6OnlyResponder {
27274    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27275    tx_id: u32,
27276}
27277
27278/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27279/// if the responder is dropped without sending a response, so that the client
27280/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27281impl std::ops::Drop for BaseNetworkSocketGetIpv6OnlyResponder {
27282    fn drop(&mut self) {
27283        self.control_handle.shutdown();
27284        // Safety: drops once, never accessed again
27285        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27286    }
27287}
27288
27289impl fidl::endpoints::Responder for BaseNetworkSocketGetIpv6OnlyResponder {
27290    type ControlHandle = BaseNetworkSocketControlHandle;
27291
27292    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27293        &self.control_handle
27294    }
27295
27296    fn drop_without_shutdown(mut self) {
27297        // Safety: drops once, never accessed again due to mem::forget
27298        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27299        // Prevent Drop from running (which would shut down the channel)
27300        std::mem::forget(self);
27301    }
27302}
27303
27304impl BaseNetworkSocketGetIpv6OnlyResponder {
27305    /// Sends a response to the FIDL transaction.
27306    ///
27307    /// Sets the channel to shutdown if an error occurs.
27308    pub fn send(
27309        self,
27310        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
27311    ) -> Result<(), fidl::Error> {
27312        let _result = self.send_raw(result);
27313        if _result.is_err() {
27314            self.control_handle.shutdown();
27315        }
27316        self.drop_without_shutdown();
27317        _result
27318    }
27319
27320    /// Similar to "send" but does not shutdown the channel if an error occurs.
27321    pub fn send_no_shutdown_on_err(
27322        self,
27323        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
27324    ) -> Result<(), fidl::Error> {
27325        let _result = self.send_raw(result);
27326        self.drop_without_shutdown();
27327        _result
27328    }
27329
27330    fn send_raw(
27331        &self,
27332        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
27333    ) -> Result<(), fidl::Error> {
27334        self.control_handle.inner.send::<fidl::encoding::ResultType<
27335            BaseNetworkSocketGetIpv6OnlyResponse,
27336            fidl_fuchsia_posix::Errno,
27337        >>(
27338            result.map(|value| (value,)),
27339            self.tx_id,
27340            0x4aa3340a1a26b89c,
27341            fidl::encoding::DynamicFlags::empty(),
27342        )
27343    }
27344}
27345
27346#[must_use = "FIDL methods require a response to be sent"]
27347#[derive(Debug)]
27348pub struct BaseNetworkSocketSetIpv6ReceiveTrafficClassResponder {
27349    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27350    tx_id: u32,
27351}
27352
27353/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27354/// if the responder is dropped without sending a response, so that the client
27355/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27356impl std::ops::Drop for BaseNetworkSocketSetIpv6ReceiveTrafficClassResponder {
27357    fn drop(&mut self) {
27358        self.control_handle.shutdown();
27359        // Safety: drops once, never accessed again
27360        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27361    }
27362}
27363
27364impl fidl::endpoints::Responder for BaseNetworkSocketSetIpv6ReceiveTrafficClassResponder {
27365    type ControlHandle = BaseNetworkSocketControlHandle;
27366
27367    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27368        &self.control_handle
27369    }
27370
27371    fn drop_without_shutdown(mut self) {
27372        // Safety: drops once, never accessed again due to mem::forget
27373        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27374        // Prevent Drop from running (which would shut down the channel)
27375        std::mem::forget(self);
27376    }
27377}
27378
27379impl BaseNetworkSocketSetIpv6ReceiveTrafficClassResponder {
27380    /// Sends a response to the FIDL transaction.
27381    ///
27382    /// Sets the channel to shutdown if an error occurs.
27383    pub fn send(
27384        self,
27385        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27386    ) -> Result<(), fidl::Error> {
27387        let _result = self.send_raw(result);
27388        if _result.is_err() {
27389            self.control_handle.shutdown();
27390        }
27391        self.drop_without_shutdown();
27392        _result
27393    }
27394
27395    /// Similar to "send" but does not shutdown the channel if an error occurs.
27396    pub fn send_no_shutdown_on_err(
27397        self,
27398        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27399    ) -> Result<(), fidl::Error> {
27400        let _result = self.send_raw(result);
27401        self.drop_without_shutdown();
27402        _result
27403    }
27404
27405    fn send_raw(
27406        &self,
27407        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27408    ) -> Result<(), fidl::Error> {
27409        self.control_handle.inner.send::<fidl::encoding::ResultType<
27410            fidl::encoding::EmptyStruct,
27411            fidl_fuchsia_posix::Errno,
27412        >>(
27413            result,
27414            self.tx_id,
27415            0x58f07c8788d099a0,
27416            fidl::encoding::DynamicFlags::empty(),
27417        )
27418    }
27419}
27420
27421#[must_use = "FIDL methods require a response to be sent"]
27422#[derive(Debug)]
27423pub struct BaseNetworkSocketGetIpv6ReceiveTrafficClassResponder {
27424    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27425    tx_id: u32,
27426}
27427
27428/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27429/// if the responder is dropped without sending a response, so that the client
27430/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27431impl std::ops::Drop for BaseNetworkSocketGetIpv6ReceiveTrafficClassResponder {
27432    fn drop(&mut self) {
27433        self.control_handle.shutdown();
27434        // Safety: drops once, never accessed again
27435        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27436    }
27437}
27438
27439impl fidl::endpoints::Responder for BaseNetworkSocketGetIpv6ReceiveTrafficClassResponder {
27440    type ControlHandle = BaseNetworkSocketControlHandle;
27441
27442    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27443        &self.control_handle
27444    }
27445
27446    fn drop_without_shutdown(mut self) {
27447        // Safety: drops once, never accessed again due to mem::forget
27448        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27449        // Prevent Drop from running (which would shut down the channel)
27450        std::mem::forget(self);
27451    }
27452}
27453
27454impl BaseNetworkSocketGetIpv6ReceiveTrafficClassResponder {
27455    /// Sends a response to the FIDL transaction.
27456    ///
27457    /// Sets the channel to shutdown if an error occurs.
27458    pub fn send(
27459        self,
27460        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
27461    ) -> Result<(), fidl::Error> {
27462        let _result = self.send_raw(result);
27463        if _result.is_err() {
27464            self.control_handle.shutdown();
27465        }
27466        self.drop_without_shutdown();
27467        _result
27468    }
27469
27470    /// Similar to "send" but does not shutdown the channel if an error occurs.
27471    pub fn send_no_shutdown_on_err(
27472        self,
27473        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
27474    ) -> Result<(), fidl::Error> {
27475        let _result = self.send_raw(result);
27476        self.drop_without_shutdown();
27477        _result
27478    }
27479
27480    fn send_raw(
27481        &self,
27482        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
27483    ) -> Result<(), fidl::Error> {
27484        self.control_handle.inner.send::<fidl::encoding::ResultType<
27485            BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
27486            fidl_fuchsia_posix::Errno,
27487        >>(
27488            result.map(|value| (value,)),
27489            self.tx_id,
27490            0x2e334df1da553ffa,
27491            fidl::encoding::DynamicFlags::empty(),
27492        )
27493    }
27494}
27495
27496#[must_use = "FIDL methods require a response to be sent"]
27497#[derive(Debug)]
27498pub struct BaseNetworkSocketSetIpv6TrafficClassResponder {
27499    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27500    tx_id: u32,
27501}
27502
27503/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27504/// if the responder is dropped without sending a response, so that the client
27505/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27506impl std::ops::Drop for BaseNetworkSocketSetIpv6TrafficClassResponder {
27507    fn drop(&mut self) {
27508        self.control_handle.shutdown();
27509        // Safety: drops once, never accessed again
27510        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27511    }
27512}
27513
27514impl fidl::endpoints::Responder for BaseNetworkSocketSetIpv6TrafficClassResponder {
27515    type ControlHandle = BaseNetworkSocketControlHandle;
27516
27517    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27518        &self.control_handle
27519    }
27520
27521    fn drop_without_shutdown(mut self) {
27522        // Safety: drops once, never accessed again due to mem::forget
27523        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27524        // Prevent Drop from running (which would shut down the channel)
27525        std::mem::forget(self);
27526    }
27527}
27528
27529impl BaseNetworkSocketSetIpv6TrafficClassResponder {
27530    /// Sends a response to the FIDL transaction.
27531    ///
27532    /// Sets the channel to shutdown if an error occurs.
27533    pub fn send(
27534        self,
27535        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27536    ) -> Result<(), fidl::Error> {
27537        let _result = self.send_raw(result);
27538        if _result.is_err() {
27539            self.control_handle.shutdown();
27540        }
27541        self.drop_without_shutdown();
27542        _result
27543    }
27544
27545    /// Similar to "send" but does not shutdown the channel if an error occurs.
27546    pub fn send_no_shutdown_on_err(
27547        self,
27548        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27549    ) -> Result<(), fidl::Error> {
27550        let _result = self.send_raw(result);
27551        self.drop_without_shutdown();
27552        _result
27553    }
27554
27555    fn send_raw(
27556        &self,
27557        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27558    ) -> Result<(), fidl::Error> {
27559        self.control_handle.inner.send::<fidl::encoding::ResultType<
27560            fidl::encoding::EmptyStruct,
27561            fidl_fuchsia_posix::Errno,
27562        >>(
27563            result,
27564            self.tx_id,
27565            0x6af077800c5a0b4f,
27566            fidl::encoding::DynamicFlags::empty(),
27567        )
27568    }
27569}
27570
27571#[must_use = "FIDL methods require a response to be sent"]
27572#[derive(Debug)]
27573pub struct BaseNetworkSocketGetIpv6TrafficClassResponder {
27574    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27575    tx_id: u32,
27576}
27577
27578/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27579/// if the responder is dropped without sending a response, so that the client
27580/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27581impl std::ops::Drop for BaseNetworkSocketGetIpv6TrafficClassResponder {
27582    fn drop(&mut self) {
27583        self.control_handle.shutdown();
27584        // Safety: drops once, never accessed again
27585        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27586    }
27587}
27588
27589impl fidl::endpoints::Responder for BaseNetworkSocketGetIpv6TrafficClassResponder {
27590    type ControlHandle = BaseNetworkSocketControlHandle;
27591
27592    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27593        &self.control_handle
27594    }
27595
27596    fn drop_without_shutdown(mut self) {
27597        // Safety: drops once, never accessed again due to mem::forget
27598        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27599        // Prevent Drop from running (which would shut down the channel)
27600        std::mem::forget(self);
27601    }
27602}
27603
27604impl BaseNetworkSocketGetIpv6TrafficClassResponder {
27605    /// Sends a response to the FIDL transaction.
27606    ///
27607    /// Sets the channel to shutdown if an error occurs.
27608    pub fn send(
27609        self,
27610        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
27611    ) -> Result<(), fidl::Error> {
27612        let _result = self.send_raw(result);
27613        if _result.is_err() {
27614            self.control_handle.shutdown();
27615        }
27616        self.drop_without_shutdown();
27617        _result
27618    }
27619
27620    /// Similar to "send" but does not shutdown the channel if an error occurs.
27621    pub fn send_no_shutdown_on_err(
27622        self,
27623        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
27624    ) -> Result<(), fidl::Error> {
27625        let _result = self.send_raw(result);
27626        self.drop_without_shutdown();
27627        _result
27628    }
27629
27630    fn send_raw(
27631        &self,
27632        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
27633    ) -> Result<(), fidl::Error> {
27634        self.control_handle.inner.send::<fidl::encoding::ResultType<
27635            BaseNetworkSocketGetIpv6TrafficClassResponse,
27636            fidl_fuchsia_posix::Errno,
27637        >>(
27638            result.map(|value| (value,)),
27639            self.tx_id,
27640            0x6baf6eed8fc2f04,
27641            fidl::encoding::DynamicFlags::empty(),
27642        )
27643    }
27644}
27645
27646#[must_use = "FIDL methods require a response to be sent"]
27647#[derive(Debug)]
27648pub struct BaseNetworkSocketSetIpv6ReceivePacketInfoResponder {
27649    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27650    tx_id: u32,
27651}
27652
27653/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27654/// if the responder is dropped without sending a response, so that the client
27655/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27656impl std::ops::Drop for BaseNetworkSocketSetIpv6ReceivePacketInfoResponder {
27657    fn drop(&mut self) {
27658        self.control_handle.shutdown();
27659        // Safety: drops once, never accessed again
27660        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27661    }
27662}
27663
27664impl fidl::endpoints::Responder for BaseNetworkSocketSetIpv6ReceivePacketInfoResponder {
27665    type ControlHandle = BaseNetworkSocketControlHandle;
27666
27667    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27668        &self.control_handle
27669    }
27670
27671    fn drop_without_shutdown(mut self) {
27672        // Safety: drops once, never accessed again due to mem::forget
27673        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27674        // Prevent Drop from running (which would shut down the channel)
27675        std::mem::forget(self);
27676    }
27677}
27678
27679impl BaseNetworkSocketSetIpv6ReceivePacketInfoResponder {
27680    /// Sends a response to the FIDL transaction.
27681    ///
27682    /// Sets the channel to shutdown if an error occurs.
27683    pub fn send(
27684        self,
27685        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27686    ) -> Result<(), fidl::Error> {
27687        let _result = self.send_raw(result);
27688        if _result.is_err() {
27689            self.control_handle.shutdown();
27690        }
27691        self.drop_without_shutdown();
27692        _result
27693    }
27694
27695    /// Similar to "send" but does not shutdown the channel if an error occurs.
27696    pub fn send_no_shutdown_on_err(
27697        self,
27698        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27699    ) -> Result<(), fidl::Error> {
27700        let _result = self.send_raw(result);
27701        self.drop_without_shutdown();
27702        _result
27703    }
27704
27705    fn send_raw(
27706        &self,
27707        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27708    ) -> Result<(), fidl::Error> {
27709        self.control_handle.inner.send::<fidl::encoding::ResultType<
27710            fidl::encoding::EmptyStruct,
27711            fidl_fuchsia_posix::Errno,
27712        >>(
27713            result,
27714            self.tx_id,
27715            0x19259775b1a92768,
27716            fidl::encoding::DynamicFlags::empty(),
27717        )
27718    }
27719}
27720
27721#[must_use = "FIDL methods require a response to be sent"]
27722#[derive(Debug)]
27723pub struct BaseNetworkSocketGetIpv6ReceivePacketInfoResponder {
27724    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27725    tx_id: u32,
27726}
27727
27728/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27729/// if the responder is dropped without sending a response, so that the client
27730/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27731impl std::ops::Drop for BaseNetworkSocketGetIpv6ReceivePacketInfoResponder {
27732    fn drop(&mut self) {
27733        self.control_handle.shutdown();
27734        // Safety: drops once, never accessed again
27735        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27736    }
27737}
27738
27739impl fidl::endpoints::Responder for BaseNetworkSocketGetIpv6ReceivePacketInfoResponder {
27740    type ControlHandle = BaseNetworkSocketControlHandle;
27741
27742    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27743        &self.control_handle
27744    }
27745
27746    fn drop_without_shutdown(mut self) {
27747        // Safety: drops once, never accessed again due to mem::forget
27748        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27749        // Prevent Drop from running (which would shut down the channel)
27750        std::mem::forget(self);
27751    }
27752}
27753
27754impl BaseNetworkSocketGetIpv6ReceivePacketInfoResponder {
27755    /// Sends a response to the FIDL transaction.
27756    ///
27757    /// Sets the channel to shutdown if an error occurs.
27758    pub fn send(
27759        self,
27760        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
27761    ) -> Result<(), fidl::Error> {
27762        let _result = self.send_raw(result);
27763        if _result.is_err() {
27764            self.control_handle.shutdown();
27765        }
27766        self.drop_without_shutdown();
27767        _result
27768    }
27769
27770    /// Similar to "send" but does not shutdown the channel if an error occurs.
27771    pub fn send_no_shutdown_on_err(
27772        self,
27773        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
27774    ) -> Result<(), fidl::Error> {
27775        let _result = self.send_raw(result);
27776        self.drop_without_shutdown();
27777        _result
27778    }
27779
27780    fn send_raw(
27781        &self,
27782        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
27783    ) -> Result<(), fidl::Error> {
27784        self.control_handle.inner.send::<fidl::encoding::ResultType<
27785            BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
27786            fidl_fuchsia_posix::Errno,
27787        >>(
27788            result.map(|value| (value,)),
27789            self.tx_id,
27790            0x7acd4a2775baec75,
27791            fidl::encoding::DynamicFlags::empty(),
27792        )
27793    }
27794}
27795
27796#[must_use = "FIDL methods require a response to be sent"]
27797#[derive(Debug)]
27798pub struct BaseNetworkSocketGetOriginalDestinationResponder {
27799    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27800    tx_id: u32,
27801}
27802
27803/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27804/// if the responder is dropped without sending a response, so that the client
27805/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27806impl std::ops::Drop for BaseNetworkSocketGetOriginalDestinationResponder {
27807    fn drop(&mut self) {
27808        self.control_handle.shutdown();
27809        // Safety: drops once, never accessed again
27810        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27811    }
27812}
27813
27814impl fidl::endpoints::Responder for BaseNetworkSocketGetOriginalDestinationResponder {
27815    type ControlHandle = BaseNetworkSocketControlHandle;
27816
27817    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27818        &self.control_handle
27819    }
27820
27821    fn drop_without_shutdown(mut self) {
27822        // Safety: drops once, never accessed again due to mem::forget
27823        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27824        // Prevent Drop from running (which would shut down the channel)
27825        std::mem::forget(self);
27826    }
27827}
27828
27829impl BaseNetworkSocketGetOriginalDestinationResponder {
27830    /// Sends a response to the FIDL transaction.
27831    ///
27832    /// Sets the channel to shutdown if an error occurs.
27833    pub fn send(
27834        self,
27835        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
27836    ) -> Result<(), fidl::Error> {
27837        let _result = self.send_raw(result);
27838        if _result.is_err() {
27839            self.control_handle.shutdown();
27840        }
27841        self.drop_without_shutdown();
27842        _result
27843    }
27844
27845    /// Similar to "send" but does not shutdown the channel if an error occurs.
27846    pub fn send_no_shutdown_on_err(
27847        self,
27848        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
27849    ) -> Result<(), fidl::Error> {
27850        let _result = self.send_raw(result);
27851        self.drop_without_shutdown();
27852        _result
27853    }
27854
27855    fn send_raw(
27856        &self,
27857        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
27858    ) -> Result<(), fidl::Error> {
27859        self.control_handle.inner.send::<fidl::encoding::ResultType<
27860            BaseNetworkSocketGetOriginalDestinationResponse,
27861            fidl_fuchsia_posix::Errno,
27862        >>(
27863            result.map(|value| (value,)),
27864            self.tx_id,
27865            0x38bf28f0dafdbac0,
27866            fidl::encoding::DynamicFlags::empty(),
27867        )
27868    }
27869}
27870
27871#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
27872pub struct BaseSocketMarker;
27873
27874impl fidl::endpoints::ProtocolMarker for BaseSocketMarker {
27875    type Proxy = BaseSocketProxy;
27876    type RequestStream = BaseSocketRequestStream;
27877    #[cfg(target_os = "fuchsia")]
27878    type SynchronousProxy = BaseSocketSynchronousProxy;
27879
27880    const DEBUG_NAME: &'static str = "(anonymous) BaseSocket";
27881}
27882pub type BaseSocketSetReuseAddressResult = Result<(), fidl_fuchsia_posix::Errno>;
27883pub type BaseSocketGetReuseAddressResult = Result<bool, fidl_fuchsia_posix::Errno>;
27884pub type BaseSocketGetErrorResult = Result<(), fidl_fuchsia_posix::Errno>;
27885pub type BaseSocketSetBroadcastResult = Result<(), fidl_fuchsia_posix::Errno>;
27886pub type BaseSocketGetBroadcastResult = Result<bool, fidl_fuchsia_posix::Errno>;
27887pub type BaseSocketSetSendBufferResult = Result<(), fidl_fuchsia_posix::Errno>;
27888pub type BaseSocketGetSendBufferResult = Result<u64, fidl_fuchsia_posix::Errno>;
27889pub type BaseSocketSetReceiveBufferResult = Result<(), fidl_fuchsia_posix::Errno>;
27890pub type BaseSocketGetReceiveBufferResult = Result<u64, fidl_fuchsia_posix::Errno>;
27891pub type BaseSocketSetKeepAliveResult = Result<(), fidl_fuchsia_posix::Errno>;
27892pub type BaseSocketGetKeepAliveResult = Result<bool, fidl_fuchsia_posix::Errno>;
27893pub type BaseSocketSetOutOfBandInlineResult = Result<(), fidl_fuchsia_posix::Errno>;
27894pub type BaseSocketGetOutOfBandInlineResult = Result<bool, fidl_fuchsia_posix::Errno>;
27895pub type BaseSocketSetNoCheckResult = Result<(), fidl_fuchsia_posix::Errno>;
27896pub type BaseSocketGetNoCheckResult = Result<bool, fidl_fuchsia_posix::Errno>;
27897pub type BaseSocketSetLingerResult = Result<(), fidl_fuchsia_posix::Errno>;
27898pub type BaseSocketGetLingerResult = Result<(bool, u32), fidl_fuchsia_posix::Errno>;
27899pub type BaseSocketSetReusePortResult = Result<(), fidl_fuchsia_posix::Errno>;
27900pub type BaseSocketGetReusePortResult = Result<bool, fidl_fuchsia_posix::Errno>;
27901pub type BaseSocketGetAcceptConnResult = Result<bool, fidl_fuchsia_posix::Errno>;
27902pub type BaseSocketSetBindToDeviceResult = Result<(), fidl_fuchsia_posix::Errno>;
27903pub type BaseSocketGetBindToDeviceResult = Result<String, fidl_fuchsia_posix::Errno>;
27904pub type BaseSocketSetBindToInterfaceIndexResult = Result<(), fidl_fuchsia_posix::Errno>;
27905pub type BaseSocketGetBindToInterfaceIndexResult = Result<u64, fidl_fuchsia_posix::Errno>;
27906pub type BaseSocketSetTimestampResult = Result<(), fidl_fuchsia_posix::Errno>;
27907pub type BaseSocketGetTimestampResult = Result<TimestampOption, fidl_fuchsia_posix::Errno>;
27908pub type BaseSocketSetMarkResult = Result<(), fidl_fuchsia_posix::Errno>;
27909pub type BaseSocketGetMarkResult = Result<OptionalUint32, fidl_fuchsia_posix::Errno>;
27910pub type BaseSocketGetCookieResult = Result<u64, fidl_fuchsia_posix::Errno>;
27911
27912pub trait BaseSocketProxyInterface: Send + Sync {
27913    fn r#clone(
27914        &self,
27915        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
27916    ) -> Result<(), fidl::Error>;
27917    type CloseResponseFut: std::future::Future<
27918            Output = Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error>,
27919        > + Send;
27920    fn r#close(&self) -> Self::CloseResponseFut;
27921    type QueryResponseFut: std::future::Future<Output = Result<Vec<u8>, fidl::Error>> + Send;
27922    fn r#query(&self) -> Self::QueryResponseFut;
27923    type SetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketSetReuseAddressResult, fidl::Error>>
27924        + Send;
27925    fn r#set_reuse_address(&self, value: bool) -> Self::SetReuseAddressResponseFut;
27926    type GetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketGetReuseAddressResult, fidl::Error>>
27927        + Send;
27928    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut;
27929    type GetErrorResponseFut: std::future::Future<Output = Result<BaseSocketGetErrorResult, fidl::Error>>
27930        + Send;
27931    fn r#get_error(&self) -> Self::GetErrorResponseFut;
27932    type SetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketSetBroadcastResult, fidl::Error>>
27933        + Send;
27934    fn r#set_broadcast(&self, value: bool) -> Self::SetBroadcastResponseFut;
27935    type GetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketGetBroadcastResult, fidl::Error>>
27936        + Send;
27937    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut;
27938    type SetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetSendBufferResult, fidl::Error>>
27939        + Send;
27940    fn r#set_send_buffer(&self, value_bytes: u64) -> Self::SetSendBufferResponseFut;
27941    type GetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetSendBufferResult, fidl::Error>>
27942        + Send;
27943    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut;
27944    type SetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetReceiveBufferResult, fidl::Error>>
27945        + Send;
27946    fn r#set_receive_buffer(&self, value_bytes: u64) -> Self::SetReceiveBufferResponseFut;
27947    type GetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetReceiveBufferResult, fidl::Error>>
27948        + Send;
27949    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut;
27950    type SetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketSetKeepAliveResult, fidl::Error>>
27951        + Send;
27952    fn r#set_keep_alive(&self, value: bool) -> Self::SetKeepAliveResponseFut;
27953    type GetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketGetKeepAliveResult, fidl::Error>>
27954        + Send;
27955    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut;
27956    type SetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketSetOutOfBandInlineResult, fidl::Error>>
27957        + Send;
27958    fn r#set_out_of_band_inline(&self, value: bool) -> Self::SetOutOfBandInlineResponseFut;
27959    type GetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketGetOutOfBandInlineResult, fidl::Error>>
27960        + Send;
27961    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut;
27962    type SetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketSetNoCheckResult, fidl::Error>>
27963        + Send;
27964    fn r#set_no_check(&self, value: bool) -> Self::SetNoCheckResponseFut;
27965    type GetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketGetNoCheckResult, fidl::Error>>
27966        + Send;
27967    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut;
27968    type SetLingerResponseFut: std::future::Future<Output = Result<BaseSocketSetLingerResult, fidl::Error>>
27969        + Send;
27970    fn r#set_linger(&self, linger: bool, length_secs: u32) -> Self::SetLingerResponseFut;
27971    type GetLingerResponseFut: std::future::Future<Output = Result<BaseSocketGetLingerResult, fidl::Error>>
27972        + Send;
27973    fn r#get_linger(&self) -> Self::GetLingerResponseFut;
27974    type SetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketSetReusePortResult, fidl::Error>>
27975        + Send;
27976    fn r#set_reuse_port(&self, value: bool) -> Self::SetReusePortResponseFut;
27977    type GetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketGetReusePortResult, fidl::Error>>
27978        + Send;
27979    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut;
27980    type GetAcceptConnResponseFut: std::future::Future<Output = Result<BaseSocketGetAcceptConnResult, fidl::Error>>
27981        + Send;
27982    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut;
27983    type SetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToDeviceResult, fidl::Error>>
27984        + Send;
27985    fn r#set_bind_to_device(&self, value: &str) -> Self::SetBindToDeviceResponseFut;
27986    type GetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToDeviceResult, fidl::Error>>
27987        + Send;
27988    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut;
27989    type SetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error>>
27990        + Send;
27991    fn r#set_bind_to_interface_index(&self, value: u64)
27992        -> Self::SetBindToInterfaceIndexResponseFut;
27993    type GetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error>>
27994        + Send;
27995    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut;
27996    type SetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketSetTimestampResult, fidl::Error>>
27997        + Send;
27998    fn r#set_timestamp(&self, value: TimestampOption) -> Self::SetTimestampResponseFut;
27999    type GetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketGetTimestampResult, fidl::Error>>
28000        + Send;
28001    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut;
28002    type SetMarkResponseFut: std::future::Future<Output = Result<BaseSocketSetMarkResult, fidl::Error>>
28003        + Send;
28004    fn r#set_mark(
28005        &self,
28006        domain: fidl_fuchsia_net::MarkDomain,
28007        mark: &OptionalUint32,
28008    ) -> Self::SetMarkResponseFut;
28009    type GetMarkResponseFut: std::future::Future<Output = Result<BaseSocketGetMarkResult, fidl::Error>>
28010        + Send;
28011    fn r#get_mark(&self, domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut;
28012    type GetCookieResponseFut: std::future::Future<Output = Result<BaseSocketGetCookieResult, fidl::Error>>
28013        + Send;
28014    fn r#get_cookie(&self) -> Self::GetCookieResponseFut;
28015}
28016#[derive(Debug)]
28017#[cfg(target_os = "fuchsia")]
28018pub struct BaseSocketSynchronousProxy {
28019    client: fidl::client::sync::Client,
28020}
28021
28022#[cfg(target_os = "fuchsia")]
28023impl fidl::endpoints::SynchronousProxy for BaseSocketSynchronousProxy {
28024    type Proxy = BaseSocketProxy;
28025    type Protocol = BaseSocketMarker;
28026
28027    fn from_channel(inner: fidl::Channel) -> Self {
28028        Self::new(inner)
28029    }
28030
28031    fn into_channel(self) -> fidl::Channel {
28032        self.client.into_channel()
28033    }
28034
28035    fn as_channel(&self) -> &fidl::Channel {
28036        self.client.as_channel()
28037    }
28038}
28039
28040#[cfg(target_os = "fuchsia")]
28041impl BaseSocketSynchronousProxy {
28042    pub fn new(channel: fidl::Channel) -> Self {
28043        let protocol_name = <BaseSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
28044        Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
28045    }
28046
28047    pub fn into_channel(self) -> fidl::Channel {
28048        self.client.into_channel()
28049    }
28050
28051    /// Waits until an event arrives and returns it. It is safe for other
28052    /// threads to make concurrent requests while waiting for an event.
28053    pub fn wait_for_event(
28054        &self,
28055        deadline: zx::MonotonicInstant,
28056    ) -> Result<BaseSocketEvent, fidl::Error> {
28057        BaseSocketEvent::decode(self.client.wait_for_event(deadline)?)
28058    }
28059
28060    pub fn r#clone(
28061        &self,
28062        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
28063    ) -> Result<(), fidl::Error> {
28064        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
28065            (request,),
28066            0x20d8a7aba2168a79,
28067            fidl::encoding::DynamicFlags::empty(),
28068        )
28069    }
28070
28071    /// Terminates the connection.
28072    ///
28073    /// After calling `Close`, the client must not send any other requests.
28074    ///
28075    /// Servers, after sending the status response, should close the connection
28076    /// regardless of status and without sending an epitaph.
28077    ///
28078    /// Closing the client end of the channel should be semantically equivalent
28079    /// to calling `Close` without knowing when the close has completed or its
28080    /// status.
28081    pub fn r#close(
28082        &self,
28083        ___deadline: zx::MonotonicInstant,
28084    ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
28085        let _response = self.client.send_query::<
28086            fidl::encoding::EmptyPayload,
28087            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
28088        >(
28089            (),
28090            0x5ac5d459ad7f657e,
28091            fidl::encoding::DynamicFlags::empty(),
28092            ___deadline,
28093        )?;
28094        Ok(_response.map(|x| x))
28095    }
28096
28097    pub fn r#query(&self, ___deadline: zx::MonotonicInstant) -> Result<Vec<u8>, fidl::Error> {
28098        let _response = self.client.send_query::<
28099            fidl::encoding::EmptyPayload,
28100            fidl_fuchsia_unknown::QueryableQueryResponse,
28101        >(
28102            (),
28103            0x2658edee9decfc06,
28104            fidl::encoding::DynamicFlags::empty(),
28105            ___deadline,
28106        )?;
28107        Ok(_response.protocol)
28108    }
28109
28110    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
28111    pub fn r#set_reuse_address(
28112        &self,
28113        mut value: bool,
28114        ___deadline: zx::MonotonicInstant,
28115    ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
28116        let _response =
28117            self.client.send_query::<BaseSocketSetReuseAddressRequest, fidl::encoding::ResultType<
28118                fidl::encoding::EmptyStruct,
28119                fidl_fuchsia_posix::Errno,
28120            >>(
28121                (value,),
28122                0x1fd74ee8b9a4a876,
28123                fidl::encoding::DynamicFlags::empty(),
28124                ___deadline,
28125            )?;
28126        Ok(_response.map(|x| x))
28127    }
28128
28129    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
28130    pub fn r#get_reuse_address(
28131        &self,
28132        ___deadline: zx::MonotonicInstant,
28133    ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
28134        let _response = self
28135            .client
28136            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28137                BaseSocketGetReuseAddressResponse,
28138                fidl_fuchsia_posix::Errno,
28139            >>(
28140                (), 0x67b7206b8d1bc0a5, fidl::encoding::DynamicFlags::empty(), ___deadline
28141            )?;
28142        Ok(_response.map(|x| x.value))
28143    }
28144
28145    /// Get `SOL_SOCKET` -> `SO_ERROR`.
28146    /// Returns the last error if there is an error set on the socket.
28147    pub fn r#get_error(
28148        &self,
28149        ___deadline: zx::MonotonicInstant,
28150    ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
28151        let _response =
28152            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28153                fidl::encoding::EmptyStruct,
28154                fidl_fuchsia_posix::Errno,
28155            >>(
28156                (),
28157                0x5aad39b33e5f6ebb,
28158                fidl::encoding::DynamicFlags::empty(),
28159                ___deadline,
28160            )?;
28161        Ok(_response.map(|x| x))
28162    }
28163
28164    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
28165    pub fn r#set_broadcast(
28166        &self,
28167        mut value: bool,
28168        ___deadline: zx::MonotonicInstant,
28169    ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
28170        let _response =
28171            self.client.send_query::<BaseSocketSetBroadcastRequest, fidl::encoding::ResultType<
28172                fidl::encoding::EmptyStruct,
28173                fidl_fuchsia_posix::Errno,
28174            >>(
28175                (value,),
28176                0x6023e081ce3cd947,
28177                fidl::encoding::DynamicFlags::empty(),
28178                ___deadline,
28179            )?;
28180        Ok(_response.map(|x| x))
28181    }
28182
28183    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
28184    pub fn r#get_broadcast(
28185        &self,
28186        ___deadline: zx::MonotonicInstant,
28187    ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
28188        let _response =
28189            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28190                BaseSocketGetBroadcastResponse,
28191                fidl_fuchsia_posix::Errno,
28192            >>(
28193                (),
28194                0x68796fc556f9780d,
28195                fidl::encoding::DynamicFlags::empty(),
28196                ___deadline,
28197            )?;
28198        Ok(_response.map(|x| x.value))
28199    }
28200
28201    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
28202    pub fn r#set_send_buffer(
28203        &self,
28204        mut value_bytes: u64,
28205        ___deadline: zx::MonotonicInstant,
28206    ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
28207        let _response =
28208            self.client.send_query::<BaseSocketSetSendBufferRequest, fidl::encoding::ResultType<
28209                fidl::encoding::EmptyStruct,
28210                fidl_fuchsia_posix::Errno,
28211            >>(
28212                (value_bytes,),
28213                0x756eac32d73a7a70,
28214                fidl::encoding::DynamicFlags::empty(),
28215                ___deadline,
28216            )?;
28217        Ok(_response.map(|x| x))
28218    }
28219
28220    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
28221    pub fn r#get_send_buffer(
28222        &self,
28223        ___deadline: zx::MonotonicInstant,
28224    ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
28225        let _response = self
28226            .client
28227            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28228                BaseSocketGetSendBufferResponse,
28229                fidl_fuchsia_posix::Errno,
28230            >>(
28231                (), 0x78a52fd9c7b2410b, fidl::encoding::DynamicFlags::empty(), ___deadline
28232            )?;
28233        Ok(_response.map(|x| x.value_bytes))
28234    }
28235
28236    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
28237    pub fn r#set_receive_buffer(
28238        &self,
28239        mut value_bytes: u64,
28240        ___deadline: zx::MonotonicInstant,
28241    ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
28242        let _response =
28243            self.client
28244                .send_query::<BaseSocketSetReceiveBufferRequest, fidl::encoding::ResultType<
28245                    fidl::encoding::EmptyStruct,
28246                    fidl_fuchsia_posix::Errno,
28247                >>(
28248                    (value_bytes,),
28249                    0x6b0cf2f1919c7001,
28250                    fidl::encoding::DynamicFlags::empty(),
28251                    ___deadline,
28252                )?;
28253        Ok(_response.map(|x| x))
28254    }
28255
28256    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
28257    pub fn r#get_receive_buffer(
28258        &self,
28259        ___deadline: zx::MonotonicInstant,
28260    ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
28261        let _response = self
28262            .client
28263            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28264                BaseSocketGetReceiveBufferResponse,
28265                fidl_fuchsia_posix::Errno,
28266            >>(
28267                (), 0x14c1a4b64f709e5c, fidl::encoding::DynamicFlags::empty(), ___deadline
28268            )?;
28269        Ok(_response.map(|x| x.value_bytes))
28270    }
28271
28272    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
28273    pub fn r#set_keep_alive(
28274        &self,
28275        mut value: bool,
28276        ___deadline: zx::MonotonicInstant,
28277    ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
28278        let _response =
28279            self.client.send_query::<BaseSocketSetKeepAliveRequest, fidl::encoding::ResultType<
28280                fidl::encoding::EmptyStruct,
28281                fidl_fuchsia_posix::Errno,
28282            >>(
28283                (value,),
28284                0x572df8f0b920d2c7,
28285                fidl::encoding::DynamicFlags::empty(),
28286                ___deadline,
28287            )?;
28288        Ok(_response.map(|x| x))
28289    }
28290
28291    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
28292    pub fn r#get_keep_alive(
28293        &self,
28294        ___deadline: zx::MonotonicInstant,
28295    ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
28296        let _response =
28297            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28298                BaseSocketGetKeepAliveResponse,
28299                fidl_fuchsia_posix::Errno,
28300            >>(
28301                (),
28302                0x2dd29d3215f2c9d2,
28303                fidl::encoding::DynamicFlags::empty(),
28304                ___deadline,
28305            )?;
28306        Ok(_response.map(|x| x.value))
28307    }
28308
28309    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
28310    pub fn r#set_out_of_band_inline(
28311        &self,
28312        mut value: bool,
28313        ___deadline: zx::MonotonicInstant,
28314    ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
28315        let _response =
28316            self.client
28317                .send_query::<BaseSocketSetOutOfBandInlineRequest, fidl::encoding::ResultType<
28318                    fidl::encoding::EmptyStruct,
28319                    fidl_fuchsia_posix::Errno,
28320                >>(
28321                    (value,),
28322                    0x3ecb49968bee439,
28323                    fidl::encoding::DynamicFlags::empty(),
28324                    ___deadline,
28325                )?;
28326        Ok(_response.map(|x| x))
28327    }
28328
28329    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
28330    pub fn r#get_out_of_band_inline(
28331        &self,
28332        ___deadline: zx::MonotonicInstant,
28333    ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
28334        let _response = self
28335            .client
28336            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28337                BaseSocketGetOutOfBandInlineResponse,
28338                fidl_fuchsia_posix::Errno,
28339            >>(
28340                (), 0x348c1ab3aeca1745, fidl::encoding::DynamicFlags::empty(), ___deadline
28341            )?;
28342        Ok(_response.map(|x| x.value))
28343    }
28344
28345    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
28346    pub fn r#set_no_check(
28347        &self,
28348        mut value: bool,
28349        ___deadline: zx::MonotonicInstant,
28350    ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
28351        let _response =
28352            self.client.send_query::<BaseSocketSetNoCheckRequest, fidl::encoding::ResultType<
28353                fidl::encoding::EmptyStruct,
28354                fidl_fuchsia_posix::Errno,
28355            >>(
28356                (value,),
28357                0x6bbf00c53a4c78c2,
28358                fidl::encoding::DynamicFlags::empty(),
28359                ___deadline,
28360            )?;
28361        Ok(_response.map(|x| x))
28362    }
28363
28364    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
28365    pub fn r#get_no_check(
28366        &self,
28367        ___deadline: zx::MonotonicInstant,
28368    ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
28369        let _response =
28370            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28371                BaseSocketGetNoCheckResponse,
28372                fidl_fuchsia_posix::Errno,
28373            >>(
28374                (),
28375                0x2cd4249286417694,
28376                fidl::encoding::DynamicFlags::empty(),
28377                ___deadline,
28378            )?;
28379        Ok(_response.map(|x| x.value))
28380    }
28381
28382    /// Set `SOL_SOCKET` -> `SO_LINGER`.
28383    pub fn r#set_linger(
28384        &self,
28385        mut linger: bool,
28386        mut length_secs: u32,
28387        ___deadline: zx::MonotonicInstant,
28388    ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
28389        let _response =
28390            self.client.send_query::<BaseSocketSetLingerRequest, fidl::encoding::ResultType<
28391                fidl::encoding::EmptyStruct,
28392                fidl_fuchsia_posix::Errno,
28393            >>(
28394                (linger, length_secs),
28395                0x45386351246e998e,
28396                fidl::encoding::DynamicFlags::empty(),
28397                ___deadline,
28398            )?;
28399        Ok(_response.map(|x| x))
28400    }
28401
28402    /// Get `SOL_SOCKET` -> `SO_LINGER`.
28403    pub fn r#get_linger(
28404        &self,
28405        ___deadline: zx::MonotonicInstant,
28406    ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
28407        let _response =
28408            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28409                BaseSocketGetLingerResponse,
28410                fidl_fuchsia_posix::Errno,
28411            >>(
28412                (),
28413                0x48eb20fc5ccb0e45,
28414                fidl::encoding::DynamicFlags::empty(),
28415                ___deadline,
28416            )?;
28417        Ok(_response.map(|x| (x.linger, x.length_secs)))
28418    }
28419
28420    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
28421    pub fn r#set_reuse_port(
28422        &self,
28423        mut value: bool,
28424        ___deadline: zx::MonotonicInstant,
28425    ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
28426        let _response =
28427            self.client.send_query::<BaseSocketSetReusePortRequest, fidl::encoding::ResultType<
28428                fidl::encoding::EmptyStruct,
28429                fidl_fuchsia_posix::Errno,
28430            >>(
28431                (value,),
28432                0x24dd3e5cb36d9ccb,
28433                fidl::encoding::DynamicFlags::empty(),
28434                ___deadline,
28435            )?;
28436        Ok(_response.map(|x| x))
28437    }
28438
28439    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
28440    pub fn r#get_reuse_port(
28441        &self,
28442        ___deadline: zx::MonotonicInstant,
28443    ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
28444        let _response =
28445            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28446                BaseSocketGetReusePortResponse,
28447                fidl_fuchsia_posix::Errno,
28448            >>(
28449                (),
28450                0x7a112c1ab54ff828,
28451                fidl::encoding::DynamicFlags::empty(),
28452                ___deadline,
28453            )?;
28454        Ok(_response.map(|x| x.value))
28455    }
28456
28457    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
28458    pub fn r#get_accept_conn(
28459        &self,
28460        ___deadline: zx::MonotonicInstant,
28461    ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
28462        let _response = self
28463            .client
28464            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28465                BaseSocketGetAcceptConnResponse,
28466                fidl_fuchsia_posix::Errno,
28467            >>(
28468                (), 0x67ce6db6c2ec8966, fidl::encoding::DynamicFlags::empty(), ___deadline
28469            )?;
28470        Ok(_response.map(|x| x.value))
28471    }
28472
28473    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
28474    pub fn r#set_bind_to_device(
28475        &self,
28476        mut value: &str,
28477        ___deadline: zx::MonotonicInstant,
28478    ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
28479        let _response =
28480            self.client.send_query::<BaseSocketSetBindToDeviceRequest, fidl::encoding::ResultType<
28481                fidl::encoding::EmptyStruct,
28482                fidl_fuchsia_posix::Errno,
28483            >>(
28484                (value,),
28485                0x2118b483f28aafc4,
28486                fidl::encoding::DynamicFlags::empty(),
28487                ___deadline,
28488            )?;
28489        Ok(_response.map(|x| x))
28490    }
28491
28492    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
28493    pub fn r#get_bind_to_device(
28494        &self,
28495        ___deadline: zx::MonotonicInstant,
28496    ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
28497        let _response = self
28498            .client
28499            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28500                BaseSocketGetBindToDeviceResponse,
28501                fidl_fuchsia_posix::Errno,
28502            >>(
28503                (), 0x1ab1fbf0ef7906c8, fidl::encoding::DynamicFlags::empty(), ___deadline
28504            )?;
28505        Ok(_response.map(|x| x.value))
28506    }
28507
28508    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
28509    /// If `value` is 0, this clears the bound interface.
28510    pub fn r#set_bind_to_interface_index(
28511        &self,
28512        mut value: u64,
28513        ___deadline: zx::MonotonicInstant,
28514    ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
28515        let _response =
28516            self.client
28517                .send_query::<BaseSocketSetBindToInterfaceIndexRequest, fidl::encoding::ResultType<
28518                    fidl::encoding::EmptyStruct,
28519                    fidl_fuchsia_posix::Errno,
28520                >>(
28521                    (value,),
28522                    0x6e387a0def00821,
28523                    fidl::encoding::DynamicFlags::empty(),
28524                    ___deadline,
28525                )?;
28526        Ok(_response.map(|x| x))
28527    }
28528
28529    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
28530    pub fn r#get_bind_to_interface_index(
28531        &self,
28532        ___deadline: zx::MonotonicInstant,
28533    ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
28534        let _response = self
28535            .client
28536            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28537                BaseSocketGetBindToInterfaceIndexResponse,
28538                fidl_fuchsia_posix::Errno,
28539            >>(
28540                (), 0x59c31dd3e3078295, fidl::encoding::DynamicFlags::empty(), ___deadline
28541            )?;
28542        Ok(_response.map(|x| x.value))
28543    }
28544
28545    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
28546    pub fn r#set_timestamp(
28547        &self,
28548        mut value: TimestampOption,
28549        ___deadline: zx::MonotonicInstant,
28550    ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
28551        let _response =
28552            self.client.send_query::<BaseSocketSetTimestampRequest, fidl::encoding::ResultType<
28553                fidl::encoding::EmptyStruct,
28554                fidl_fuchsia_posix::Errno,
28555            >>(
28556                (value,),
28557                0x285d6516c263d839,
28558                fidl::encoding::DynamicFlags::empty(),
28559                ___deadline,
28560            )?;
28561        Ok(_response.map(|x| x))
28562    }
28563
28564    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
28565    pub fn r#get_timestamp(
28566        &self,
28567        ___deadline: zx::MonotonicInstant,
28568    ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
28569        let _response =
28570            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28571                BaseSocketGetTimestampResponse,
28572                fidl_fuchsia_posix::Errno,
28573            >>(
28574                (),
28575                0x49f2fffbbcc2bd27,
28576                fidl::encoding::DynamicFlags::empty(),
28577                ___deadline,
28578            )?;
28579        Ok(_response.map(|x| x.value))
28580    }
28581
28582    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
28583    /// unlike the standard SO_MARK, this API has multiple mark domains and each
28584    /// mark can be set independently in each domain.
28585    pub fn r#set_mark(
28586        &self,
28587        mut domain: fidl_fuchsia_net::MarkDomain,
28588        mut mark: &OptionalUint32,
28589        ___deadline: zx::MonotonicInstant,
28590    ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
28591        let _response =
28592            self.client.send_query::<BaseSocketSetMarkRequest, fidl::encoding::ResultType<
28593                fidl::encoding::EmptyStruct,
28594                fidl_fuchsia_posix::Errno,
28595            >>(
28596                (domain, mark),
28597                0x6ead6de09f653236,
28598                fidl::encoding::DynamicFlags::empty(),
28599                ___deadline,
28600            )?;
28601        Ok(_response.map(|x| x))
28602    }
28603
28604    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
28605    /// unlike the standard SO_MARK, this API has multiple mark domains and each
28606    /// mark can be retrieved independently in each domain.
28607    pub fn r#get_mark(
28608        &self,
28609        mut domain: fidl_fuchsia_net::MarkDomain,
28610        ___deadline: zx::MonotonicInstant,
28611    ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
28612        let _response =
28613            self.client.send_query::<BaseSocketGetMarkRequest, fidl::encoding::ResultType<
28614                BaseSocketGetMarkResponse,
28615                fidl_fuchsia_posix::Errno,
28616            >>(
28617                (domain,),
28618                0x57a2752c61d93d47,
28619                fidl::encoding::DynamicFlags::empty(),
28620                ___deadline,
28621            )?;
28622        Ok(_response.map(|x| x.mark))
28623    }
28624
28625    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
28626    pub fn r#get_cookie(
28627        &self,
28628        ___deadline: zx::MonotonicInstant,
28629    ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
28630        let _response =
28631            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28632                BaseSocketGetCookieResponse,
28633                fidl_fuchsia_posix::Errno,
28634            >>(
28635                (),
28636                0x2c2f47fd8f924e52,
28637                fidl::encoding::DynamicFlags::empty(),
28638                ___deadline,
28639            )?;
28640        Ok(_response.map(|x| x.value))
28641    }
28642}
28643
28644#[cfg(target_os = "fuchsia")]
28645impl From<BaseSocketSynchronousProxy> for zx::Handle {
28646    fn from(value: BaseSocketSynchronousProxy) -> Self {
28647        value.into_channel().into()
28648    }
28649}
28650
28651#[cfg(target_os = "fuchsia")]
28652impl From<fidl::Channel> for BaseSocketSynchronousProxy {
28653    fn from(value: fidl::Channel) -> Self {
28654        Self::new(value)
28655    }
28656}
28657
28658#[cfg(target_os = "fuchsia")]
28659impl fidl::endpoints::FromClient for BaseSocketSynchronousProxy {
28660    type Protocol = BaseSocketMarker;
28661
28662    fn from_client(value: fidl::endpoints::ClientEnd<BaseSocketMarker>) -> Self {
28663        Self::new(value.into_channel())
28664    }
28665}
28666
28667#[derive(Debug, Clone)]
28668pub struct BaseSocketProxy {
28669    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
28670}
28671
28672impl fidl::endpoints::Proxy for BaseSocketProxy {
28673    type Protocol = BaseSocketMarker;
28674
28675    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
28676        Self::new(inner)
28677    }
28678
28679    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
28680        self.client.into_channel().map_err(|client| Self { client })
28681    }
28682
28683    fn as_channel(&self) -> &::fidl::AsyncChannel {
28684        self.client.as_channel()
28685    }
28686}
28687
28688impl BaseSocketProxy {
28689    /// Create a new Proxy for fuchsia.posix.socket/BaseSocket.
28690    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
28691        let protocol_name = <BaseSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
28692        Self { client: fidl::client::Client::new(channel, protocol_name) }
28693    }
28694
28695    /// Get a Stream of events from the remote end of the protocol.
28696    ///
28697    /// # Panics
28698    ///
28699    /// Panics if the event stream was already taken.
28700    pub fn take_event_stream(&self) -> BaseSocketEventStream {
28701        BaseSocketEventStream { event_receiver: self.client.take_event_receiver() }
28702    }
28703
28704    pub fn r#clone(
28705        &self,
28706        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
28707    ) -> Result<(), fidl::Error> {
28708        BaseSocketProxyInterface::r#clone(self, request)
28709    }
28710
28711    /// Terminates the connection.
28712    ///
28713    /// After calling `Close`, the client must not send any other requests.
28714    ///
28715    /// Servers, after sending the status response, should close the connection
28716    /// regardless of status and without sending an epitaph.
28717    ///
28718    /// Closing the client end of the channel should be semantically equivalent
28719    /// to calling `Close` without knowing when the close has completed or its
28720    /// status.
28721    pub fn r#close(
28722        &self,
28723    ) -> fidl::client::QueryResponseFut<
28724        fidl_fuchsia_unknown::CloseableCloseResult,
28725        fidl::encoding::DefaultFuchsiaResourceDialect,
28726    > {
28727        BaseSocketProxyInterface::r#close(self)
28728    }
28729
28730    pub fn r#query(
28731        &self,
28732    ) -> fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>
28733    {
28734        BaseSocketProxyInterface::r#query(self)
28735    }
28736
28737    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
28738    pub fn r#set_reuse_address(
28739        &self,
28740        mut value: bool,
28741    ) -> fidl::client::QueryResponseFut<
28742        BaseSocketSetReuseAddressResult,
28743        fidl::encoding::DefaultFuchsiaResourceDialect,
28744    > {
28745        BaseSocketProxyInterface::r#set_reuse_address(self, value)
28746    }
28747
28748    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
28749    pub fn r#get_reuse_address(
28750        &self,
28751    ) -> fidl::client::QueryResponseFut<
28752        BaseSocketGetReuseAddressResult,
28753        fidl::encoding::DefaultFuchsiaResourceDialect,
28754    > {
28755        BaseSocketProxyInterface::r#get_reuse_address(self)
28756    }
28757
28758    /// Get `SOL_SOCKET` -> `SO_ERROR`.
28759    /// Returns the last error if there is an error set on the socket.
28760    pub fn r#get_error(
28761        &self,
28762    ) -> fidl::client::QueryResponseFut<
28763        BaseSocketGetErrorResult,
28764        fidl::encoding::DefaultFuchsiaResourceDialect,
28765    > {
28766        BaseSocketProxyInterface::r#get_error(self)
28767    }
28768
28769    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
28770    pub fn r#set_broadcast(
28771        &self,
28772        mut value: bool,
28773    ) -> fidl::client::QueryResponseFut<
28774        BaseSocketSetBroadcastResult,
28775        fidl::encoding::DefaultFuchsiaResourceDialect,
28776    > {
28777        BaseSocketProxyInterface::r#set_broadcast(self, value)
28778    }
28779
28780    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
28781    pub fn r#get_broadcast(
28782        &self,
28783    ) -> fidl::client::QueryResponseFut<
28784        BaseSocketGetBroadcastResult,
28785        fidl::encoding::DefaultFuchsiaResourceDialect,
28786    > {
28787        BaseSocketProxyInterface::r#get_broadcast(self)
28788    }
28789
28790    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
28791    pub fn r#set_send_buffer(
28792        &self,
28793        mut value_bytes: u64,
28794    ) -> fidl::client::QueryResponseFut<
28795        BaseSocketSetSendBufferResult,
28796        fidl::encoding::DefaultFuchsiaResourceDialect,
28797    > {
28798        BaseSocketProxyInterface::r#set_send_buffer(self, value_bytes)
28799    }
28800
28801    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
28802    pub fn r#get_send_buffer(
28803        &self,
28804    ) -> fidl::client::QueryResponseFut<
28805        BaseSocketGetSendBufferResult,
28806        fidl::encoding::DefaultFuchsiaResourceDialect,
28807    > {
28808        BaseSocketProxyInterface::r#get_send_buffer(self)
28809    }
28810
28811    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
28812    pub fn r#set_receive_buffer(
28813        &self,
28814        mut value_bytes: u64,
28815    ) -> fidl::client::QueryResponseFut<
28816        BaseSocketSetReceiveBufferResult,
28817        fidl::encoding::DefaultFuchsiaResourceDialect,
28818    > {
28819        BaseSocketProxyInterface::r#set_receive_buffer(self, value_bytes)
28820    }
28821
28822    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
28823    pub fn r#get_receive_buffer(
28824        &self,
28825    ) -> fidl::client::QueryResponseFut<
28826        BaseSocketGetReceiveBufferResult,
28827        fidl::encoding::DefaultFuchsiaResourceDialect,
28828    > {
28829        BaseSocketProxyInterface::r#get_receive_buffer(self)
28830    }
28831
28832    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
28833    pub fn r#set_keep_alive(
28834        &self,
28835        mut value: bool,
28836    ) -> fidl::client::QueryResponseFut<
28837        BaseSocketSetKeepAliveResult,
28838        fidl::encoding::DefaultFuchsiaResourceDialect,
28839    > {
28840        BaseSocketProxyInterface::r#set_keep_alive(self, value)
28841    }
28842
28843    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
28844    pub fn r#get_keep_alive(
28845        &self,
28846    ) -> fidl::client::QueryResponseFut<
28847        BaseSocketGetKeepAliveResult,
28848        fidl::encoding::DefaultFuchsiaResourceDialect,
28849    > {
28850        BaseSocketProxyInterface::r#get_keep_alive(self)
28851    }
28852
28853    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
28854    pub fn r#set_out_of_band_inline(
28855        &self,
28856        mut value: bool,
28857    ) -> fidl::client::QueryResponseFut<
28858        BaseSocketSetOutOfBandInlineResult,
28859        fidl::encoding::DefaultFuchsiaResourceDialect,
28860    > {
28861        BaseSocketProxyInterface::r#set_out_of_band_inline(self, value)
28862    }
28863
28864    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
28865    pub fn r#get_out_of_band_inline(
28866        &self,
28867    ) -> fidl::client::QueryResponseFut<
28868        BaseSocketGetOutOfBandInlineResult,
28869        fidl::encoding::DefaultFuchsiaResourceDialect,
28870    > {
28871        BaseSocketProxyInterface::r#get_out_of_band_inline(self)
28872    }
28873
28874    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
28875    pub fn r#set_no_check(
28876        &self,
28877        mut value: bool,
28878    ) -> fidl::client::QueryResponseFut<
28879        BaseSocketSetNoCheckResult,
28880        fidl::encoding::DefaultFuchsiaResourceDialect,
28881    > {
28882        BaseSocketProxyInterface::r#set_no_check(self, value)
28883    }
28884
28885    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
28886    pub fn r#get_no_check(
28887        &self,
28888    ) -> fidl::client::QueryResponseFut<
28889        BaseSocketGetNoCheckResult,
28890        fidl::encoding::DefaultFuchsiaResourceDialect,
28891    > {
28892        BaseSocketProxyInterface::r#get_no_check(self)
28893    }
28894
28895    /// Set `SOL_SOCKET` -> `SO_LINGER`.
28896    pub fn r#set_linger(
28897        &self,
28898        mut linger: bool,
28899        mut length_secs: u32,
28900    ) -> fidl::client::QueryResponseFut<
28901        BaseSocketSetLingerResult,
28902        fidl::encoding::DefaultFuchsiaResourceDialect,
28903    > {
28904        BaseSocketProxyInterface::r#set_linger(self, linger, length_secs)
28905    }
28906
28907    /// Get `SOL_SOCKET` -> `SO_LINGER`.
28908    pub fn r#get_linger(
28909        &self,
28910    ) -> fidl::client::QueryResponseFut<
28911        BaseSocketGetLingerResult,
28912        fidl::encoding::DefaultFuchsiaResourceDialect,
28913    > {
28914        BaseSocketProxyInterface::r#get_linger(self)
28915    }
28916
28917    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
28918    pub fn r#set_reuse_port(
28919        &self,
28920        mut value: bool,
28921    ) -> fidl::client::QueryResponseFut<
28922        BaseSocketSetReusePortResult,
28923        fidl::encoding::DefaultFuchsiaResourceDialect,
28924    > {
28925        BaseSocketProxyInterface::r#set_reuse_port(self, value)
28926    }
28927
28928    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
28929    pub fn r#get_reuse_port(
28930        &self,
28931    ) -> fidl::client::QueryResponseFut<
28932        BaseSocketGetReusePortResult,
28933        fidl::encoding::DefaultFuchsiaResourceDialect,
28934    > {
28935        BaseSocketProxyInterface::r#get_reuse_port(self)
28936    }
28937
28938    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
28939    pub fn r#get_accept_conn(
28940        &self,
28941    ) -> fidl::client::QueryResponseFut<
28942        BaseSocketGetAcceptConnResult,
28943        fidl::encoding::DefaultFuchsiaResourceDialect,
28944    > {
28945        BaseSocketProxyInterface::r#get_accept_conn(self)
28946    }
28947
28948    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
28949    pub fn r#set_bind_to_device(
28950        &self,
28951        mut value: &str,
28952    ) -> fidl::client::QueryResponseFut<
28953        BaseSocketSetBindToDeviceResult,
28954        fidl::encoding::DefaultFuchsiaResourceDialect,
28955    > {
28956        BaseSocketProxyInterface::r#set_bind_to_device(self, value)
28957    }
28958
28959    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
28960    pub fn r#get_bind_to_device(
28961        &self,
28962    ) -> fidl::client::QueryResponseFut<
28963        BaseSocketGetBindToDeviceResult,
28964        fidl::encoding::DefaultFuchsiaResourceDialect,
28965    > {
28966        BaseSocketProxyInterface::r#get_bind_to_device(self)
28967    }
28968
28969    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
28970    /// If `value` is 0, this clears the bound interface.
28971    pub fn r#set_bind_to_interface_index(
28972        &self,
28973        mut value: u64,
28974    ) -> fidl::client::QueryResponseFut<
28975        BaseSocketSetBindToInterfaceIndexResult,
28976        fidl::encoding::DefaultFuchsiaResourceDialect,
28977    > {
28978        BaseSocketProxyInterface::r#set_bind_to_interface_index(self, value)
28979    }
28980
28981    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
28982    pub fn r#get_bind_to_interface_index(
28983        &self,
28984    ) -> fidl::client::QueryResponseFut<
28985        BaseSocketGetBindToInterfaceIndexResult,
28986        fidl::encoding::DefaultFuchsiaResourceDialect,
28987    > {
28988        BaseSocketProxyInterface::r#get_bind_to_interface_index(self)
28989    }
28990
28991    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
28992    pub fn r#set_timestamp(
28993        &self,
28994        mut value: TimestampOption,
28995    ) -> fidl::client::QueryResponseFut<
28996        BaseSocketSetTimestampResult,
28997        fidl::encoding::DefaultFuchsiaResourceDialect,
28998    > {
28999        BaseSocketProxyInterface::r#set_timestamp(self, value)
29000    }
29001
29002    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
29003    pub fn r#get_timestamp(
29004        &self,
29005    ) -> fidl::client::QueryResponseFut<
29006        BaseSocketGetTimestampResult,
29007        fidl::encoding::DefaultFuchsiaResourceDialect,
29008    > {
29009        BaseSocketProxyInterface::r#get_timestamp(self)
29010    }
29011
29012    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
29013    /// unlike the standard SO_MARK, this API has multiple mark domains and each
29014    /// mark can be set independently in each domain.
29015    pub fn r#set_mark(
29016        &self,
29017        mut domain: fidl_fuchsia_net::MarkDomain,
29018        mut mark: &OptionalUint32,
29019    ) -> fidl::client::QueryResponseFut<
29020        BaseSocketSetMarkResult,
29021        fidl::encoding::DefaultFuchsiaResourceDialect,
29022    > {
29023        BaseSocketProxyInterface::r#set_mark(self, domain, mark)
29024    }
29025
29026    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
29027    /// unlike the standard SO_MARK, this API has multiple mark domains and each
29028    /// mark can be retrieved independently in each domain.
29029    pub fn r#get_mark(
29030        &self,
29031        mut domain: fidl_fuchsia_net::MarkDomain,
29032    ) -> fidl::client::QueryResponseFut<
29033        BaseSocketGetMarkResult,
29034        fidl::encoding::DefaultFuchsiaResourceDialect,
29035    > {
29036        BaseSocketProxyInterface::r#get_mark(self, domain)
29037    }
29038
29039    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
29040    pub fn r#get_cookie(
29041        &self,
29042    ) -> fidl::client::QueryResponseFut<
29043        BaseSocketGetCookieResult,
29044        fidl::encoding::DefaultFuchsiaResourceDialect,
29045    > {
29046        BaseSocketProxyInterface::r#get_cookie(self)
29047    }
29048}
29049
29050impl BaseSocketProxyInterface for BaseSocketProxy {
29051    fn r#clone(
29052        &self,
29053        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
29054    ) -> Result<(), fidl::Error> {
29055        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
29056            (request,),
29057            0x20d8a7aba2168a79,
29058            fidl::encoding::DynamicFlags::empty(),
29059        )
29060    }
29061
29062    type CloseResponseFut = fidl::client::QueryResponseFut<
29063        fidl_fuchsia_unknown::CloseableCloseResult,
29064        fidl::encoding::DefaultFuchsiaResourceDialect,
29065    >;
29066    fn r#close(&self) -> Self::CloseResponseFut {
29067        fn _decode(
29068            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29069        ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
29070            let _response = fidl::client::decode_transaction_body::<
29071                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
29072                fidl::encoding::DefaultFuchsiaResourceDialect,
29073                0x5ac5d459ad7f657e,
29074            >(_buf?)?;
29075            Ok(_response.map(|x| x))
29076        }
29077        self.client.send_query_and_decode::<
29078            fidl::encoding::EmptyPayload,
29079            fidl_fuchsia_unknown::CloseableCloseResult,
29080        >(
29081            (),
29082            0x5ac5d459ad7f657e,
29083            fidl::encoding::DynamicFlags::empty(),
29084            _decode,
29085        )
29086    }
29087
29088    type QueryResponseFut =
29089        fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>;
29090    fn r#query(&self) -> Self::QueryResponseFut {
29091        fn _decode(
29092            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29093        ) -> Result<Vec<u8>, fidl::Error> {
29094            let _response = fidl::client::decode_transaction_body::<
29095                fidl_fuchsia_unknown::QueryableQueryResponse,
29096                fidl::encoding::DefaultFuchsiaResourceDialect,
29097                0x2658edee9decfc06,
29098            >(_buf?)?;
29099            Ok(_response.protocol)
29100        }
29101        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, Vec<u8>>(
29102            (),
29103            0x2658edee9decfc06,
29104            fidl::encoding::DynamicFlags::empty(),
29105            _decode,
29106        )
29107    }
29108
29109    type SetReuseAddressResponseFut = fidl::client::QueryResponseFut<
29110        BaseSocketSetReuseAddressResult,
29111        fidl::encoding::DefaultFuchsiaResourceDialect,
29112    >;
29113    fn r#set_reuse_address(&self, mut value: bool) -> Self::SetReuseAddressResponseFut {
29114        fn _decode(
29115            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29116        ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
29117            let _response = fidl::client::decode_transaction_body::<
29118                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29119                fidl::encoding::DefaultFuchsiaResourceDialect,
29120                0x1fd74ee8b9a4a876,
29121            >(_buf?)?;
29122            Ok(_response.map(|x| x))
29123        }
29124        self.client.send_query_and_decode::<
29125            BaseSocketSetReuseAddressRequest,
29126            BaseSocketSetReuseAddressResult,
29127        >(
29128            (value,),
29129            0x1fd74ee8b9a4a876,
29130            fidl::encoding::DynamicFlags::empty(),
29131            _decode,
29132        )
29133    }
29134
29135    type GetReuseAddressResponseFut = fidl::client::QueryResponseFut<
29136        BaseSocketGetReuseAddressResult,
29137        fidl::encoding::DefaultFuchsiaResourceDialect,
29138    >;
29139    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut {
29140        fn _decode(
29141            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29142        ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
29143            let _response = fidl::client::decode_transaction_body::<
29144                fidl::encoding::ResultType<
29145                    BaseSocketGetReuseAddressResponse,
29146                    fidl_fuchsia_posix::Errno,
29147                >,
29148                fidl::encoding::DefaultFuchsiaResourceDialect,
29149                0x67b7206b8d1bc0a5,
29150            >(_buf?)?;
29151            Ok(_response.map(|x| x.value))
29152        }
29153        self.client
29154            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReuseAddressResult>(
29155                (),
29156                0x67b7206b8d1bc0a5,
29157                fidl::encoding::DynamicFlags::empty(),
29158                _decode,
29159            )
29160    }
29161
29162    type GetErrorResponseFut = fidl::client::QueryResponseFut<
29163        BaseSocketGetErrorResult,
29164        fidl::encoding::DefaultFuchsiaResourceDialect,
29165    >;
29166    fn r#get_error(&self) -> Self::GetErrorResponseFut {
29167        fn _decode(
29168            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29169        ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
29170            let _response = fidl::client::decode_transaction_body::<
29171                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29172                fidl::encoding::DefaultFuchsiaResourceDialect,
29173                0x5aad39b33e5f6ebb,
29174            >(_buf?)?;
29175            Ok(_response.map(|x| x))
29176        }
29177        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetErrorResult>(
29178            (),
29179            0x5aad39b33e5f6ebb,
29180            fidl::encoding::DynamicFlags::empty(),
29181            _decode,
29182        )
29183    }
29184
29185    type SetBroadcastResponseFut = fidl::client::QueryResponseFut<
29186        BaseSocketSetBroadcastResult,
29187        fidl::encoding::DefaultFuchsiaResourceDialect,
29188    >;
29189    fn r#set_broadcast(&self, mut value: bool) -> Self::SetBroadcastResponseFut {
29190        fn _decode(
29191            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29192        ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
29193            let _response = fidl::client::decode_transaction_body::<
29194                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29195                fidl::encoding::DefaultFuchsiaResourceDialect,
29196                0x6023e081ce3cd947,
29197            >(_buf?)?;
29198            Ok(_response.map(|x| x))
29199        }
29200        self.client
29201            .send_query_and_decode::<BaseSocketSetBroadcastRequest, BaseSocketSetBroadcastResult>(
29202                (value,),
29203                0x6023e081ce3cd947,
29204                fidl::encoding::DynamicFlags::empty(),
29205                _decode,
29206            )
29207    }
29208
29209    type GetBroadcastResponseFut = fidl::client::QueryResponseFut<
29210        BaseSocketGetBroadcastResult,
29211        fidl::encoding::DefaultFuchsiaResourceDialect,
29212    >;
29213    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut {
29214        fn _decode(
29215            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29216        ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
29217            let _response = fidl::client::decode_transaction_body::<
29218                fidl::encoding::ResultType<
29219                    BaseSocketGetBroadcastResponse,
29220                    fidl_fuchsia_posix::Errno,
29221                >,
29222                fidl::encoding::DefaultFuchsiaResourceDialect,
29223                0x68796fc556f9780d,
29224            >(_buf?)?;
29225            Ok(_response.map(|x| x.value))
29226        }
29227        self.client
29228            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBroadcastResult>(
29229                (),
29230                0x68796fc556f9780d,
29231                fidl::encoding::DynamicFlags::empty(),
29232                _decode,
29233            )
29234    }
29235
29236    type SetSendBufferResponseFut = fidl::client::QueryResponseFut<
29237        BaseSocketSetSendBufferResult,
29238        fidl::encoding::DefaultFuchsiaResourceDialect,
29239    >;
29240    fn r#set_send_buffer(&self, mut value_bytes: u64) -> Self::SetSendBufferResponseFut {
29241        fn _decode(
29242            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29243        ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
29244            let _response = fidl::client::decode_transaction_body::<
29245                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29246                fidl::encoding::DefaultFuchsiaResourceDialect,
29247                0x756eac32d73a7a70,
29248            >(_buf?)?;
29249            Ok(_response.map(|x| x))
29250        }
29251        self.client
29252            .send_query_and_decode::<BaseSocketSetSendBufferRequest, BaseSocketSetSendBufferResult>(
29253                (value_bytes,),
29254                0x756eac32d73a7a70,
29255                fidl::encoding::DynamicFlags::empty(),
29256                _decode,
29257            )
29258    }
29259
29260    type GetSendBufferResponseFut = fidl::client::QueryResponseFut<
29261        BaseSocketGetSendBufferResult,
29262        fidl::encoding::DefaultFuchsiaResourceDialect,
29263    >;
29264    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut {
29265        fn _decode(
29266            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29267        ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
29268            let _response = fidl::client::decode_transaction_body::<
29269                fidl::encoding::ResultType<
29270                    BaseSocketGetSendBufferResponse,
29271                    fidl_fuchsia_posix::Errno,
29272                >,
29273                fidl::encoding::DefaultFuchsiaResourceDialect,
29274                0x78a52fd9c7b2410b,
29275            >(_buf?)?;
29276            Ok(_response.map(|x| x.value_bytes))
29277        }
29278        self.client
29279            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetSendBufferResult>(
29280                (),
29281                0x78a52fd9c7b2410b,
29282                fidl::encoding::DynamicFlags::empty(),
29283                _decode,
29284            )
29285    }
29286
29287    type SetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
29288        BaseSocketSetReceiveBufferResult,
29289        fidl::encoding::DefaultFuchsiaResourceDialect,
29290    >;
29291    fn r#set_receive_buffer(&self, mut value_bytes: u64) -> Self::SetReceiveBufferResponseFut {
29292        fn _decode(
29293            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29294        ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
29295            let _response = fidl::client::decode_transaction_body::<
29296                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29297                fidl::encoding::DefaultFuchsiaResourceDialect,
29298                0x6b0cf2f1919c7001,
29299            >(_buf?)?;
29300            Ok(_response.map(|x| x))
29301        }
29302        self.client.send_query_and_decode::<
29303            BaseSocketSetReceiveBufferRequest,
29304            BaseSocketSetReceiveBufferResult,
29305        >(
29306            (value_bytes,),
29307            0x6b0cf2f1919c7001,
29308            fidl::encoding::DynamicFlags::empty(),
29309            _decode,
29310        )
29311    }
29312
29313    type GetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
29314        BaseSocketGetReceiveBufferResult,
29315        fidl::encoding::DefaultFuchsiaResourceDialect,
29316    >;
29317    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut {
29318        fn _decode(
29319            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29320        ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
29321            let _response = fidl::client::decode_transaction_body::<
29322                fidl::encoding::ResultType<
29323                    BaseSocketGetReceiveBufferResponse,
29324                    fidl_fuchsia_posix::Errno,
29325                >,
29326                fidl::encoding::DefaultFuchsiaResourceDialect,
29327                0x14c1a4b64f709e5c,
29328            >(_buf?)?;
29329            Ok(_response.map(|x| x.value_bytes))
29330        }
29331        self.client.send_query_and_decode::<
29332            fidl::encoding::EmptyPayload,
29333            BaseSocketGetReceiveBufferResult,
29334        >(
29335            (),
29336            0x14c1a4b64f709e5c,
29337            fidl::encoding::DynamicFlags::empty(),
29338            _decode,
29339        )
29340    }
29341
29342    type SetKeepAliveResponseFut = fidl::client::QueryResponseFut<
29343        BaseSocketSetKeepAliveResult,
29344        fidl::encoding::DefaultFuchsiaResourceDialect,
29345    >;
29346    fn r#set_keep_alive(&self, mut value: bool) -> Self::SetKeepAliveResponseFut {
29347        fn _decode(
29348            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29349        ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
29350            let _response = fidl::client::decode_transaction_body::<
29351                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29352                fidl::encoding::DefaultFuchsiaResourceDialect,
29353                0x572df8f0b920d2c7,
29354            >(_buf?)?;
29355            Ok(_response.map(|x| x))
29356        }
29357        self.client
29358            .send_query_and_decode::<BaseSocketSetKeepAliveRequest, BaseSocketSetKeepAliveResult>(
29359                (value,),
29360                0x572df8f0b920d2c7,
29361                fidl::encoding::DynamicFlags::empty(),
29362                _decode,
29363            )
29364    }
29365
29366    type GetKeepAliveResponseFut = fidl::client::QueryResponseFut<
29367        BaseSocketGetKeepAliveResult,
29368        fidl::encoding::DefaultFuchsiaResourceDialect,
29369    >;
29370    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut {
29371        fn _decode(
29372            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29373        ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
29374            let _response = fidl::client::decode_transaction_body::<
29375                fidl::encoding::ResultType<
29376                    BaseSocketGetKeepAliveResponse,
29377                    fidl_fuchsia_posix::Errno,
29378                >,
29379                fidl::encoding::DefaultFuchsiaResourceDialect,
29380                0x2dd29d3215f2c9d2,
29381            >(_buf?)?;
29382            Ok(_response.map(|x| x.value))
29383        }
29384        self.client
29385            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetKeepAliveResult>(
29386                (),
29387                0x2dd29d3215f2c9d2,
29388                fidl::encoding::DynamicFlags::empty(),
29389                _decode,
29390            )
29391    }
29392
29393    type SetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
29394        BaseSocketSetOutOfBandInlineResult,
29395        fidl::encoding::DefaultFuchsiaResourceDialect,
29396    >;
29397    fn r#set_out_of_band_inline(&self, mut value: bool) -> Self::SetOutOfBandInlineResponseFut {
29398        fn _decode(
29399            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29400        ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
29401            let _response = fidl::client::decode_transaction_body::<
29402                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29403                fidl::encoding::DefaultFuchsiaResourceDialect,
29404                0x3ecb49968bee439,
29405            >(_buf?)?;
29406            Ok(_response.map(|x| x))
29407        }
29408        self.client.send_query_and_decode::<
29409            BaseSocketSetOutOfBandInlineRequest,
29410            BaseSocketSetOutOfBandInlineResult,
29411        >(
29412            (value,),
29413            0x3ecb49968bee439,
29414            fidl::encoding::DynamicFlags::empty(),
29415            _decode,
29416        )
29417    }
29418
29419    type GetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
29420        BaseSocketGetOutOfBandInlineResult,
29421        fidl::encoding::DefaultFuchsiaResourceDialect,
29422    >;
29423    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut {
29424        fn _decode(
29425            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29426        ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
29427            let _response = fidl::client::decode_transaction_body::<
29428                fidl::encoding::ResultType<
29429                    BaseSocketGetOutOfBandInlineResponse,
29430                    fidl_fuchsia_posix::Errno,
29431                >,
29432                fidl::encoding::DefaultFuchsiaResourceDialect,
29433                0x348c1ab3aeca1745,
29434            >(_buf?)?;
29435            Ok(_response.map(|x| x.value))
29436        }
29437        self.client.send_query_and_decode::<
29438            fidl::encoding::EmptyPayload,
29439            BaseSocketGetOutOfBandInlineResult,
29440        >(
29441            (),
29442            0x348c1ab3aeca1745,
29443            fidl::encoding::DynamicFlags::empty(),
29444            _decode,
29445        )
29446    }
29447
29448    type SetNoCheckResponseFut = fidl::client::QueryResponseFut<
29449        BaseSocketSetNoCheckResult,
29450        fidl::encoding::DefaultFuchsiaResourceDialect,
29451    >;
29452    fn r#set_no_check(&self, mut value: bool) -> Self::SetNoCheckResponseFut {
29453        fn _decode(
29454            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29455        ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
29456            let _response = fidl::client::decode_transaction_body::<
29457                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29458                fidl::encoding::DefaultFuchsiaResourceDialect,
29459                0x6bbf00c53a4c78c2,
29460            >(_buf?)?;
29461            Ok(_response.map(|x| x))
29462        }
29463        self.client
29464            .send_query_and_decode::<BaseSocketSetNoCheckRequest, BaseSocketSetNoCheckResult>(
29465                (value,),
29466                0x6bbf00c53a4c78c2,
29467                fidl::encoding::DynamicFlags::empty(),
29468                _decode,
29469            )
29470    }
29471
29472    type GetNoCheckResponseFut = fidl::client::QueryResponseFut<
29473        BaseSocketGetNoCheckResult,
29474        fidl::encoding::DefaultFuchsiaResourceDialect,
29475    >;
29476    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut {
29477        fn _decode(
29478            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29479        ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
29480            let _response = fidl::client::decode_transaction_body::<
29481                fidl::encoding::ResultType<BaseSocketGetNoCheckResponse, fidl_fuchsia_posix::Errno>,
29482                fidl::encoding::DefaultFuchsiaResourceDialect,
29483                0x2cd4249286417694,
29484            >(_buf?)?;
29485            Ok(_response.map(|x| x.value))
29486        }
29487        self.client
29488            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetNoCheckResult>(
29489                (),
29490                0x2cd4249286417694,
29491                fidl::encoding::DynamicFlags::empty(),
29492                _decode,
29493            )
29494    }
29495
29496    type SetLingerResponseFut = fidl::client::QueryResponseFut<
29497        BaseSocketSetLingerResult,
29498        fidl::encoding::DefaultFuchsiaResourceDialect,
29499    >;
29500    fn r#set_linger(&self, mut linger: bool, mut length_secs: u32) -> Self::SetLingerResponseFut {
29501        fn _decode(
29502            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29503        ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
29504            let _response = fidl::client::decode_transaction_body::<
29505                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29506                fidl::encoding::DefaultFuchsiaResourceDialect,
29507                0x45386351246e998e,
29508            >(_buf?)?;
29509            Ok(_response.map(|x| x))
29510        }
29511        self.client.send_query_and_decode::<BaseSocketSetLingerRequest, BaseSocketSetLingerResult>(
29512            (linger, length_secs),
29513            0x45386351246e998e,
29514            fidl::encoding::DynamicFlags::empty(),
29515            _decode,
29516        )
29517    }
29518
29519    type GetLingerResponseFut = fidl::client::QueryResponseFut<
29520        BaseSocketGetLingerResult,
29521        fidl::encoding::DefaultFuchsiaResourceDialect,
29522    >;
29523    fn r#get_linger(&self) -> Self::GetLingerResponseFut {
29524        fn _decode(
29525            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29526        ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
29527            let _response = fidl::client::decode_transaction_body::<
29528                fidl::encoding::ResultType<BaseSocketGetLingerResponse, fidl_fuchsia_posix::Errno>,
29529                fidl::encoding::DefaultFuchsiaResourceDialect,
29530                0x48eb20fc5ccb0e45,
29531            >(_buf?)?;
29532            Ok(_response.map(|x| (x.linger, x.length_secs)))
29533        }
29534        self.client
29535            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetLingerResult>(
29536                (),
29537                0x48eb20fc5ccb0e45,
29538                fidl::encoding::DynamicFlags::empty(),
29539                _decode,
29540            )
29541    }
29542
29543    type SetReusePortResponseFut = fidl::client::QueryResponseFut<
29544        BaseSocketSetReusePortResult,
29545        fidl::encoding::DefaultFuchsiaResourceDialect,
29546    >;
29547    fn r#set_reuse_port(&self, mut value: bool) -> Self::SetReusePortResponseFut {
29548        fn _decode(
29549            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29550        ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
29551            let _response = fidl::client::decode_transaction_body::<
29552                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29553                fidl::encoding::DefaultFuchsiaResourceDialect,
29554                0x24dd3e5cb36d9ccb,
29555            >(_buf?)?;
29556            Ok(_response.map(|x| x))
29557        }
29558        self.client
29559            .send_query_and_decode::<BaseSocketSetReusePortRequest, BaseSocketSetReusePortResult>(
29560                (value,),
29561                0x24dd3e5cb36d9ccb,
29562                fidl::encoding::DynamicFlags::empty(),
29563                _decode,
29564            )
29565    }
29566
29567    type GetReusePortResponseFut = fidl::client::QueryResponseFut<
29568        BaseSocketGetReusePortResult,
29569        fidl::encoding::DefaultFuchsiaResourceDialect,
29570    >;
29571    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut {
29572        fn _decode(
29573            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29574        ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
29575            let _response = fidl::client::decode_transaction_body::<
29576                fidl::encoding::ResultType<
29577                    BaseSocketGetReusePortResponse,
29578                    fidl_fuchsia_posix::Errno,
29579                >,
29580                fidl::encoding::DefaultFuchsiaResourceDialect,
29581                0x7a112c1ab54ff828,
29582            >(_buf?)?;
29583            Ok(_response.map(|x| x.value))
29584        }
29585        self.client
29586            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReusePortResult>(
29587                (),
29588                0x7a112c1ab54ff828,
29589                fidl::encoding::DynamicFlags::empty(),
29590                _decode,
29591            )
29592    }
29593
29594    type GetAcceptConnResponseFut = fidl::client::QueryResponseFut<
29595        BaseSocketGetAcceptConnResult,
29596        fidl::encoding::DefaultFuchsiaResourceDialect,
29597    >;
29598    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut {
29599        fn _decode(
29600            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29601        ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
29602            let _response = fidl::client::decode_transaction_body::<
29603                fidl::encoding::ResultType<
29604                    BaseSocketGetAcceptConnResponse,
29605                    fidl_fuchsia_posix::Errno,
29606                >,
29607                fidl::encoding::DefaultFuchsiaResourceDialect,
29608                0x67ce6db6c2ec8966,
29609            >(_buf?)?;
29610            Ok(_response.map(|x| x.value))
29611        }
29612        self.client
29613            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetAcceptConnResult>(
29614                (),
29615                0x67ce6db6c2ec8966,
29616                fidl::encoding::DynamicFlags::empty(),
29617                _decode,
29618            )
29619    }
29620
29621    type SetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
29622        BaseSocketSetBindToDeviceResult,
29623        fidl::encoding::DefaultFuchsiaResourceDialect,
29624    >;
29625    fn r#set_bind_to_device(&self, mut value: &str) -> Self::SetBindToDeviceResponseFut {
29626        fn _decode(
29627            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29628        ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
29629            let _response = fidl::client::decode_transaction_body::<
29630                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29631                fidl::encoding::DefaultFuchsiaResourceDialect,
29632                0x2118b483f28aafc4,
29633            >(_buf?)?;
29634            Ok(_response.map(|x| x))
29635        }
29636        self.client.send_query_and_decode::<
29637            BaseSocketSetBindToDeviceRequest,
29638            BaseSocketSetBindToDeviceResult,
29639        >(
29640            (value,),
29641            0x2118b483f28aafc4,
29642            fidl::encoding::DynamicFlags::empty(),
29643            _decode,
29644        )
29645    }
29646
29647    type GetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
29648        BaseSocketGetBindToDeviceResult,
29649        fidl::encoding::DefaultFuchsiaResourceDialect,
29650    >;
29651    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut {
29652        fn _decode(
29653            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29654        ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
29655            let _response = fidl::client::decode_transaction_body::<
29656                fidl::encoding::ResultType<
29657                    BaseSocketGetBindToDeviceResponse,
29658                    fidl_fuchsia_posix::Errno,
29659                >,
29660                fidl::encoding::DefaultFuchsiaResourceDialect,
29661                0x1ab1fbf0ef7906c8,
29662            >(_buf?)?;
29663            Ok(_response.map(|x| x.value))
29664        }
29665        self.client
29666            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBindToDeviceResult>(
29667                (),
29668                0x1ab1fbf0ef7906c8,
29669                fidl::encoding::DynamicFlags::empty(),
29670                _decode,
29671            )
29672    }
29673
29674    type SetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
29675        BaseSocketSetBindToInterfaceIndexResult,
29676        fidl::encoding::DefaultFuchsiaResourceDialect,
29677    >;
29678    fn r#set_bind_to_interface_index(
29679        &self,
29680        mut value: u64,
29681    ) -> Self::SetBindToInterfaceIndexResponseFut {
29682        fn _decode(
29683            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29684        ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
29685            let _response = fidl::client::decode_transaction_body::<
29686                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29687                fidl::encoding::DefaultFuchsiaResourceDialect,
29688                0x6e387a0def00821,
29689            >(_buf?)?;
29690            Ok(_response.map(|x| x))
29691        }
29692        self.client.send_query_and_decode::<
29693            BaseSocketSetBindToInterfaceIndexRequest,
29694            BaseSocketSetBindToInterfaceIndexResult,
29695        >(
29696            (value,),
29697            0x6e387a0def00821,
29698            fidl::encoding::DynamicFlags::empty(),
29699            _decode,
29700        )
29701    }
29702
29703    type GetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
29704        BaseSocketGetBindToInterfaceIndexResult,
29705        fidl::encoding::DefaultFuchsiaResourceDialect,
29706    >;
29707    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut {
29708        fn _decode(
29709            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29710        ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
29711            let _response = fidl::client::decode_transaction_body::<
29712                fidl::encoding::ResultType<
29713                    BaseSocketGetBindToInterfaceIndexResponse,
29714                    fidl_fuchsia_posix::Errno,
29715                >,
29716                fidl::encoding::DefaultFuchsiaResourceDialect,
29717                0x59c31dd3e3078295,
29718            >(_buf?)?;
29719            Ok(_response.map(|x| x.value))
29720        }
29721        self.client.send_query_and_decode::<
29722            fidl::encoding::EmptyPayload,
29723            BaseSocketGetBindToInterfaceIndexResult,
29724        >(
29725            (),
29726            0x59c31dd3e3078295,
29727            fidl::encoding::DynamicFlags::empty(),
29728            _decode,
29729        )
29730    }
29731
29732    type SetTimestampResponseFut = fidl::client::QueryResponseFut<
29733        BaseSocketSetTimestampResult,
29734        fidl::encoding::DefaultFuchsiaResourceDialect,
29735    >;
29736    fn r#set_timestamp(&self, mut value: TimestampOption) -> Self::SetTimestampResponseFut {
29737        fn _decode(
29738            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29739        ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
29740            let _response = fidl::client::decode_transaction_body::<
29741                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29742                fidl::encoding::DefaultFuchsiaResourceDialect,
29743                0x285d6516c263d839,
29744            >(_buf?)?;
29745            Ok(_response.map(|x| x))
29746        }
29747        self.client
29748            .send_query_and_decode::<BaseSocketSetTimestampRequest, BaseSocketSetTimestampResult>(
29749                (value,),
29750                0x285d6516c263d839,
29751                fidl::encoding::DynamicFlags::empty(),
29752                _decode,
29753            )
29754    }
29755
29756    type GetTimestampResponseFut = fidl::client::QueryResponseFut<
29757        BaseSocketGetTimestampResult,
29758        fidl::encoding::DefaultFuchsiaResourceDialect,
29759    >;
29760    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut {
29761        fn _decode(
29762            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29763        ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
29764            let _response = fidl::client::decode_transaction_body::<
29765                fidl::encoding::ResultType<
29766                    BaseSocketGetTimestampResponse,
29767                    fidl_fuchsia_posix::Errno,
29768                >,
29769                fidl::encoding::DefaultFuchsiaResourceDialect,
29770                0x49f2fffbbcc2bd27,
29771            >(_buf?)?;
29772            Ok(_response.map(|x| x.value))
29773        }
29774        self.client
29775            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetTimestampResult>(
29776                (),
29777                0x49f2fffbbcc2bd27,
29778                fidl::encoding::DynamicFlags::empty(),
29779                _decode,
29780            )
29781    }
29782
29783    type SetMarkResponseFut = fidl::client::QueryResponseFut<
29784        BaseSocketSetMarkResult,
29785        fidl::encoding::DefaultFuchsiaResourceDialect,
29786    >;
29787    fn r#set_mark(
29788        &self,
29789        mut domain: fidl_fuchsia_net::MarkDomain,
29790        mut mark: &OptionalUint32,
29791    ) -> Self::SetMarkResponseFut {
29792        fn _decode(
29793            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29794        ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
29795            let _response = fidl::client::decode_transaction_body::<
29796                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29797                fidl::encoding::DefaultFuchsiaResourceDialect,
29798                0x6ead6de09f653236,
29799            >(_buf?)?;
29800            Ok(_response.map(|x| x))
29801        }
29802        self.client.send_query_and_decode::<BaseSocketSetMarkRequest, BaseSocketSetMarkResult>(
29803            (domain, mark),
29804            0x6ead6de09f653236,
29805            fidl::encoding::DynamicFlags::empty(),
29806            _decode,
29807        )
29808    }
29809
29810    type GetMarkResponseFut = fidl::client::QueryResponseFut<
29811        BaseSocketGetMarkResult,
29812        fidl::encoding::DefaultFuchsiaResourceDialect,
29813    >;
29814    fn r#get_mark(&self, mut domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut {
29815        fn _decode(
29816            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29817        ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
29818            let _response = fidl::client::decode_transaction_body::<
29819                fidl::encoding::ResultType<BaseSocketGetMarkResponse, fidl_fuchsia_posix::Errno>,
29820                fidl::encoding::DefaultFuchsiaResourceDialect,
29821                0x57a2752c61d93d47,
29822            >(_buf?)?;
29823            Ok(_response.map(|x| x.mark))
29824        }
29825        self.client.send_query_and_decode::<BaseSocketGetMarkRequest, BaseSocketGetMarkResult>(
29826            (domain,),
29827            0x57a2752c61d93d47,
29828            fidl::encoding::DynamicFlags::empty(),
29829            _decode,
29830        )
29831    }
29832
29833    type GetCookieResponseFut = fidl::client::QueryResponseFut<
29834        BaseSocketGetCookieResult,
29835        fidl::encoding::DefaultFuchsiaResourceDialect,
29836    >;
29837    fn r#get_cookie(&self) -> Self::GetCookieResponseFut {
29838        fn _decode(
29839            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29840        ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
29841            let _response = fidl::client::decode_transaction_body::<
29842                fidl::encoding::ResultType<BaseSocketGetCookieResponse, fidl_fuchsia_posix::Errno>,
29843                fidl::encoding::DefaultFuchsiaResourceDialect,
29844                0x2c2f47fd8f924e52,
29845            >(_buf?)?;
29846            Ok(_response.map(|x| x.value))
29847        }
29848        self.client
29849            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetCookieResult>(
29850                (),
29851                0x2c2f47fd8f924e52,
29852                fidl::encoding::DynamicFlags::empty(),
29853                _decode,
29854            )
29855    }
29856}
29857
29858pub struct BaseSocketEventStream {
29859    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
29860}
29861
29862impl std::marker::Unpin for BaseSocketEventStream {}
29863
29864impl futures::stream::FusedStream for BaseSocketEventStream {
29865    fn is_terminated(&self) -> bool {
29866        self.event_receiver.is_terminated()
29867    }
29868}
29869
29870impl futures::Stream for BaseSocketEventStream {
29871    type Item = Result<BaseSocketEvent, fidl::Error>;
29872
29873    fn poll_next(
29874        mut self: std::pin::Pin<&mut Self>,
29875        cx: &mut std::task::Context<'_>,
29876    ) -> std::task::Poll<Option<Self::Item>> {
29877        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
29878            &mut self.event_receiver,
29879            cx
29880        )?) {
29881            Some(buf) => std::task::Poll::Ready(Some(BaseSocketEvent::decode(buf))),
29882            None => std::task::Poll::Ready(None),
29883        }
29884    }
29885}
29886
29887#[derive(Debug)]
29888pub enum BaseSocketEvent {}
29889
29890impl BaseSocketEvent {
29891    /// Decodes a message buffer as a [`BaseSocketEvent`].
29892    fn decode(
29893        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
29894    ) -> Result<BaseSocketEvent, fidl::Error> {
29895        let (bytes, _handles) = buf.split_mut();
29896        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
29897        debug_assert_eq!(tx_header.tx_id, 0);
29898        match tx_header.ordinal {
29899            _ => Err(fidl::Error::UnknownOrdinal {
29900                ordinal: tx_header.ordinal,
29901                protocol_name: <BaseSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
29902            }),
29903        }
29904    }
29905}
29906
29907/// A Stream of incoming requests for fuchsia.posix.socket/BaseSocket.
29908pub struct BaseSocketRequestStream {
29909    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
29910    is_terminated: bool,
29911}
29912
29913impl std::marker::Unpin for BaseSocketRequestStream {}
29914
29915impl futures::stream::FusedStream for BaseSocketRequestStream {
29916    fn is_terminated(&self) -> bool {
29917        self.is_terminated
29918    }
29919}
29920
29921impl fidl::endpoints::RequestStream for BaseSocketRequestStream {
29922    type Protocol = BaseSocketMarker;
29923    type ControlHandle = BaseSocketControlHandle;
29924
29925    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
29926        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
29927    }
29928
29929    fn control_handle(&self) -> Self::ControlHandle {
29930        BaseSocketControlHandle { inner: self.inner.clone() }
29931    }
29932
29933    fn into_inner(
29934        self,
29935    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
29936    {
29937        (self.inner, self.is_terminated)
29938    }
29939
29940    fn from_inner(
29941        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
29942        is_terminated: bool,
29943    ) -> Self {
29944        Self { inner, is_terminated }
29945    }
29946}
29947
29948impl futures::Stream for BaseSocketRequestStream {
29949    type Item = Result<BaseSocketRequest, fidl::Error>;
29950
29951    fn poll_next(
29952        mut self: std::pin::Pin<&mut Self>,
29953        cx: &mut std::task::Context<'_>,
29954    ) -> std::task::Poll<Option<Self::Item>> {
29955        let this = &mut *self;
29956        if this.inner.check_shutdown(cx) {
29957            this.is_terminated = true;
29958            return std::task::Poll::Ready(None);
29959        }
29960        if this.is_terminated {
29961            panic!("polled BaseSocketRequestStream after completion");
29962        }
29963        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
29964            |bytes, handles| {
29965                match this.inner.channel().read_etc(cx, bytes, handles) {
29966                    std::task::Poll::Ready(Ok(())) => {}
29967                    std::task::Poll::Pending => return std::task::Poll::Pending,
29968                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
29969                        this.is_terminated = true;
29970                        return std::task::Poll::Ready(None);
29971                    }
29972                    std::task::Poll::Ready(Err(e)) => {
29973                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
29974                            e.into(),
29975                        ))))
29976                    }
29977                }
29978
29979                // A message has been received from the channel
29980                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
29981
29982                std::task::Poll::Ready(Some(match header.ordinal {
29983                    0x20d8a7aba2168a79 => {
29984                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
29985                        let mut req = fidl::new_empty!(
29986                            fidl_fuchsia_unknown::CloneableCloneRequest,
29987                            fidl::encoding::DefaultFuchsiaResourceDialect
29988                        );
29989                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl_fuchsia_unknown::CloneableCloneRequest>(&header, _body_bytes, handles, &mut req)?;
29990                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
29991                        Ok(BaseSocketRequest::Clone { request: req.request, control_handle })
29992                    }
29993                    0x5ac5d459ad7f657e => {
29994                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
29995                        let mut req = fidl::new_empty!(
29996                            fidl::encoding::EmptyPayload,
29997                            fidl::encoding::DefaultFuchsiaResourceDialect
29998                        );
29999                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30000                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30001                        Ok(BaseSocketRequest::Close {
30002                            responder: BaseSocketCloseResponder {
30003                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30004                                tx_id: header.tx_id,
30005                            },
30006                        })
30007                    }
30008                    0x2658edee9decfc06 => {
30009                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30010                        let mut req = fidl::new_empty!(
30011                            fidl::encoding::EmptyPayload,
30012                            fidl::encoding::DefaultFuchsiaResourceDialect
30013                        );
30014                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30015                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30016                        Ok(BaseSocketRequest::Query {
30017                            responder: BaseSocketQueryResponder {
30018                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30019                                tx_id: header.tx_id,
30020                            },
30021                        })
30022                    }
30023                    0x1fd74ee8b9a4a876 => {
30024                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30025                        let mut req = fidl::new_empty!(
30026                            BaseSocketSetReuseAddressRequest,
30027                            fidl::encoding::DefaultFuchsiaResourceDialect
30028                        );
30029                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReuseAddressRequest>(&header, _body_bytes, handles, &mut req)?;
30030                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30031                        Ok(BaseSocketRequest::SetReuseAddress {
30032                            value: req.value,
30033
30034                            responder: BaseSocketSetReuseAddressResponder {
30035                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30036                                tx_id: header.tx_id,
30037                            },
30038                        })
30039                    }
30040                    0x67b7206b8d1bc0a5 => {
30041                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30042                        let mut req = fidl::new_empty!(
30043                            fidl::encoding::EmptyPayload,
30044                            fidl::encoding::DefaultFuchsiaResourceDialect
30045                        );
30046                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30047                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30048                        Ok(BaseSocketRequest::GetReuseAddress {
30049                            responder: BaseSocketGetReuseAddressResponder {
30050                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30051                                tx_id: header.tx_id,
30052                            },
30053                        })
30054                    }
30055                    0x5aad39b33e5f6ebb => {
30056                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30057                        let mut req = fidl::new_empty!(
30058                            fidl::encoding::EmptyPayload,
30059                            fidl::encoding::DefaultFuchsiaResourceDialect
30060                        );
30061                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30062                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30063                        Ok(BaseSocketRequest::GetError {
30064                            responder: BaseSocketGetErrorResponder {
30065                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30066                                tx_id: header.tx_id,
30067                            },
30068                        })
30069                    }
30070                    0x6023e081ce3cd947 => {
30071                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30072                        let mut req = fidl::new_empty!(
30073                            BaseSocketSetBroadcastRequest,
30074                            fidl::encoding::DefaultFuchsiaResourceDialect
30075                        );
30076                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBroadcastRequest>(&header, _body_bytes, handles, &mut req)?;
30077                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30078                        Ok(BaseSocketRequest::SetBroadcast {
30079                            value: req.value,
30080
30081                            responder: BaseSocketSetBroadcastResponder {
30082                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30083                                tx_id: header.tx_id,
30084                            },
30085                        })
30086                    }
30087                    0x68796fc556f9780d => {
30088                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30089                        let mut req = fidl::new_empty!(
30090                            fidl::encoding::EmptyPayload,
30091                            fidl::encoding::DefaultFuchsiaResourceDialect
30092                        );
30093                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30094                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30095                        Ok(BaseSocketRequest::GetBroadcast {
30096                            responder: BaseSocketGetBroadcastResponder {
30097                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30098                                tx_id: header.tx_id,
30099                            },
30100                        })
30101                    }
30102                    0x756eac32d73a7a70 => {
30103                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30104                        let mut req = fidl::new_empty!(
30105                            BaseSocketSetSendBufferRequest,
30106                            fidl::encoding::DefaultFuchsiaResourceDialect
30107                        );
30108                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetSendBufferRequest>(&header, _body_bytes, handles, &mut req)?;
30109                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30110                        Ok(BaseSocketRequest::SetSendBuffer {
30111                            value_bytes: req.value_bytes,
30112
30113                            responder: BaseSocketSetSendBufferResponder {
30114                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30115                                tx_id: header.tx_id,
30116                            },
30117                        })
30118                    }
30119                    0x78a52fd9c7b2410b => {
30120                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30121                        let mut req = fidl::new_empty!(
30122                            fidl::encoding::EmptyPayload,
30123                            fidl::encoding::DefaultFuchsiaResourceDialect
30124                        );
30125                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30126                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30127                        Ok(BaseSocketRequest::GetSendBuffer {
30128                            responder: BaseSocketGetSendBufferResponder {
30129                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30130                                tx_id: header.tx_id,
30131                            },
30132                        })
30133                    }
30134                    0x6b0cf2f1919c7001 => {
30135                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30136                        let mut req = fidl::new_empty!(
30137                            BaseSocketSetReceiveBufferRequest,
30138                            fidl::encoding::DefaultFuchsiaResourceDialect
30139                        );
30140                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReceiveBufferRequest>(&header, _body_bytes, handles, &mut req)?;
30141                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30142                        Ok(BaseSocketRequest::SetReceiveBuffer {
30143                            value_bytes: req.value_bytes,
30144
30145                            responder: BaseSocketSetReceiveBufferResponder {
30146                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30147                                tx_id: header.tx_id,
30148                            },
30149                        })
30150                    }
30151                    0x14c1a4b64f709e5c => {
30152                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30153                        let mut req = fidl::new_empty!(
30154                            fidl::encoding::EmptyPayload,
30155                            fidl::encoding::DefaultFuchsiaResourceDialect
30156                        );
30157                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30158                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30159                        Ok(BaseSocketRequest::GetReceiveBuffer {
30160                            responder: BaseSocketGetReceiveBufferResponder {
30161                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30162                                tx_id: header.tx_id,
30163                            },
30164                        })
30165                    }
30166                    0x572df8f0b920d2c7 => {
30167                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30168                        let mut req = fidl::new_empty!(
30169                            BaseSocketSetKeepAliveRequest,
30170                            fidl::encoding::DefaultFuchsiaResourceDialect
30171                        );
30172                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetKeepAliveRequest>(&header, _body_bytes, handles, &mut req)?;
30173                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30174                        Ok(BaseSocketRequest::SetKeepAlive {
30175                            value: req.value,
30176
30177                            responder: BaseSocketSetKeepAliveResponder {
30178                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30179                                tx_id: header.tx_id,
30180                            },
30181                        })
30182                    }
30183                    0x2dd29d3215f2c9d2 => {
30184                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30185                        let mut req = fidl::new_empty!(
30186                            fidl::encoding::EmptyPayload,
30187                            fidl::encoding::DefaultFuchsiaResourceDialect
30188                        );
30189                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30190                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30191                        Ok(BaseSocketRequest::GetKeepAlive {
30192                            responder: BaseSocketGetKeepAliveResponder {
30193                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30194                                tx_id: header.tx_id,
30195                            },
30196                        })
30197                    }
30198                    0x3ecb49968bee439 => {
30199                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30200                        let mut req = fidl::new_empty!(
30201                            BaseSocketSetOutOfBandInlineRequest,
30202                            fidl::encoding::DefaultFuchsiaResourceDialect
30203                        );
30204                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetOutOfBandInlineRequest>(&header, _body_bytes, handles, &mut req)?;
30205                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30206                        Ok(BaseSocketRequest::SetOutOfBandInline {
30207                            value: req.value,
30208
30209                            responder: BaseSocketSetOutOfBandInlineResponder {
30210                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30211                                tx_id: header.tx_id,
30212                            },
30213                        })
30214                    }
30215                    0x348c1ab3aeca1745 => {
30216                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30217                        let mut req = fidl::new_empty!(
30218                            fidl::encoding::EmptyPayload,
30219                            fidl::encoding::DefaultFuchsiaResourceDialect
30220                        );
30221                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30222                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30223                        Ok(BaseSocketRequest::GetOutOfBandInline {
30224                            responder: BaseSocketGetOutOfBandInlineResponder {
30225                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30226                                tx_id: header.tx_id,
30227                            },
30228                        })
30229                    }
30230                    0x6bbf00c53a4c78c2 => {
30231                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30232                        let mut req = fidl::new_empty!(
30233                            BaseSocketSetNoCheckRequest,
30234                            fidl::encoding::DefaultFuchsiaResourceDialect
30235                        );
30236                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetNoCheckRequest>(&header, _body_bytes, handles, &mut req)?;
30237                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30238                        Ok(BaseSocketRequest::SetNoCheck {
30239                            value: req.value,
30240
30241                            responder: BaseSocketSetNoCheckResponder {
30242                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30243                                tx_id: header.tx_id,
30244                            },
30245                        })
30246                    }
30247                    0x2cd4249286417694 => {
30248                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30249                        let mut req = fidl::new_empty!(
30250                            fidl::encoding::EmptyPayload,
30251                            fidl::encoding::DefaultFuchsiaResourceDialect
30252                        );
30253                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30254                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30255                        Ok(BaseSocketRequest::GetNoCheck {
30256                            responder: BaseSocketGetNoCheckResponder {
30257                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30258                                tx_id: header.tx_id,
30259                            },
30260                        })
30261                    }
30262                    0x45386351246e998e => {
30263                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30264                        let mut req = fidl::new_empty!(
30265                            BaseSocketSetLingerRequest,
30266                            fidl::encoding::DefaultFuchsiaResourceDialect
30267                        );
30268                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetLingerRequest>(&header, _body_bytes, handles, &mut req)?;
30269                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30270                        Ok(BaseSocketRequest::SetLinger {
30271                            linger: req.linger,
30272                            length_secs: req.length_secs,
30273
30274                            responder: BaseSocketSetLingerResponder {
30275                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30276                                tx_id: header.tx_id,
30277                            },
30278                        })
30279                    }
30280                    0x48eb20fc5ccb0e45 => {
30281                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30282                        let mut req = fidl::new_empty!(
30283                            fidl::encoding::EmptyPayload,
30284                            fidl::encoding::DefaultFuchsiaResourceDialect
30285                        );
30286                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30287                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30288                        Ok(BaseSocketRequest::GetLinger {
30289                            responder: BaseSocketGetLingerResponder {
30290                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30291                                tx_id: header.tx_id,
30292                            },
30293                        })
30294                    }
30295                    0x24dd3e5cb36d9ccb => {
30296                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30297                        let mut req = fidl::new_empty!(
30298                            BaseSocketSetReusePortRequest,
30299                            fidl::encoding::DefaultFuchsiaResourceDialect
30300                        );
30301                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReusePortRequest>(&header, _body_bytes, handles, &mut req)?;
30302                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30303                        Ok(BaseSocketRequest::SetReusePort {
30304                            value: req.value,
30305
30306                            responder: BaseSocketSetReusePortResponder {
30307                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30308                                tx_id: header.tx_id,
30309                            },
30310                        })
30311                    }
30312                    0x7a112c1ab54ff828 => {
30313                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30314                        let mut req = fidl::new_empty!(
30315                            fidl::encoding::EmptyPayload,
30316                            fidl::encoding::DefaultFuchsiaResourceDialect
30317                        );
30318                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30319                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30320                        Ok(BaseSocketRequest::GetReusePort {
30321                            responder: BaseSocketGetReusePortResponder {
30322                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30323                                tx_id: header.tx_id,
30324                            },
30325                        })
30326                    }
30327                    0x67ce6db6c2ec8966 => {
30328                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30329                        let mut req = fidl::new_empty!(
30330                            fidl::encoding::EmptyPayload,
30331                            fidl::encoding::DefaultFuchsiaResourceDialect
30332                        );
30333                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30334                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30335                        Ok(BaseSocketRequest::GetAcceptConn {
30336                            responder: BaseSocketGetAcceptConnResponder {
30337                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30338                                tx_id: header.tx_id,
30339                            },
30340                        })
30341                    }
30342                    0x2118b483f28aafc4 => {
30343                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30344                        let mut req = fidl::new_empty!(
30345                            BaseSocketSetBindToDeviceRequest,
30346                            fidl::encoding::DefaultFuchsiaResourceDialect
30347                        );
30348                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToDeviceRequest>(&header, _body_bytes, handles, &mut req)?;
30349                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30350                        Ok(BaseSocketRequest::SetBindToDevice {
30351                            value: req.value,
30352
30353                            responder: BaseSocketSetBindToDeviceResponder {
30354                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30355                                tx_id: header.tx_id,
30356                            },
30357                        })
30358                    }
30359                    0x1ab1fbf0ef7906c8 => {
30360                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30361                        let mut req = fidl::new_empty!(
30362                            fidl::encoding::EmptyPayload,
30363                            fidl::encoding::DefaultFuchsiaResourceDialect
30364                        );
30365                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30366                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30367                        Ok(BaseSocketRequest::GetBindToDevice {
30368                            responder: BaseSocketGetBindToDeviceResponder {
30369                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30370                                tx_id: header.tx_id,
30371                            },
30372                        })
30373                    }
30374                    0x6e387a0def00821 => {
30375                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30376                        let mut req = fidl::new_empty!(
30377                            BaseSocketSetBindToInterfaceIndexRequest,
30378                            fidl::encoding::DefaultFuchsiaResourceDialect
30379                        );
30380                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToInterfaceIndexRequest>(&header, _body_bytes, handles, &mut req)?;
30381                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30382                        Ok(BaseSocketRequest::SetBindToInterfaceIndex {
30383                            value: req.value,
30384
30385                            responder: BaseSocketSetBindToInterfaceIndexResponder {
30386                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30387                                tx_id: header.tx_id,
30388                            },
30389                        })
30390                    }
30391                    0x59c31dd3e3078295 => {
30392                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30393                        let mut req = fidl::new_empty!(
30394                            fidl::encoding::EmptyPayload,
30395                            fidl::encoding::DefaultFuchsiaResourceDialect
30396                        );
30397                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30398                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30399                        Ok(BaseSocketRequest::GetBindToInterfaceIndex {
30400                            responder: BaseSocketGetBindToInterfaceIndexResponder {
30401                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30402                                tx_id: header.tx_id,
30403                            },
30404                        })
30405                    }
30406                    0x285d6516c263d839 => {
30407                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30408                        let mut req = fidl::new_empty!(
30409                            BaseSocketSetTimestampRequest,
30410                            fidl::encoding::DefaultFuchsiaResourceDialect
30411                        );
30412                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetTimestampRequest>(&header, _body_bytes, handles, &mut req)?;
30413                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30414                        Ok(BaseSocketRequest::SetTimestamp {
30415                            value: req.value,
30416
30417                            responder: BaseSocketSetTimestampResponder {
30418                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30419                                tx_id: header.tx_id,
30420                            },
30421                        })
30422                    }
30423                    0x49f2fffbbcc2bd27 => {
30424                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30425                        let mut req = fidl::new_empty!(
30426                            fidl::encoding::EmptyPayload,
30427                            fidl::encoding::DefaultFuchsiaResourceDialect
30428                        );
30429                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30430                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30431                        Ok(BaseSocketRequest::GetTimestamp {
30432                            responder: BaseSocketGetTimestampResponder {
30433                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30434                                tx_id: header.tx_id,
30435                            },
30436                        })
30437                    }
30438                    0x6ead6de09f653236 => {
30439                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30440                        let mut req = fidl::new_empty!(
30441                            BaseSocketSetMarkRequest,
30442                            fidl::encoding::DefaultFuchsiaResourceDialect
30443                        );
30444                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
30445                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30446                        Ok(BaseSocketRequest::SetMark {
30447                            domain: req.domain,
30448                            mark: req.mark,
30449
30450                            responder: BaseSocketSetMarkResponder {
30451                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30452                                tx_id: header.tx_id,
30453                            },
30454                        })
30455                    }
30456                    0x57a2752c61d93d47 => {
30457                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30458                        let mut req = fidl::new_empty!(
30459                            BaseSocketGetMarkRequest,
30460                            fidl::encoding::DefaultFuchsiaResourceDialect
30461                        );
30462                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketGetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
30463                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30464                        Ok(BaseSocketRequest::GetMark {
30465                            domain: req.domain,
30466
30467                            responder: BaseSocketGetMarkResponder {
30468                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30469                                tx_id: header.tx_id,
30470                            },
30471                        })
30472                    }
30473                    0x2c2f47fd8f924e52 => {
30474                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30475                        let mut req = fidl::new_empty!(
30476                            fidl::encoding::EmptyPayload,
30477                            fidl::encoding::DefaultFuchsiaResourceDialect
30478                        );
30479                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30480                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30481                        Ok(BaseSocketRequest::GetCookie {
30482                            responder: BaseSocketGetCookieResponder {
30483                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30484                                tx_id: header.tx_id,
30485                            },
30486                        })
30487                    }
30488                    _ => Err(fidl::Error::UnknownOrdinal {
30489                        ordinal: header.ordinal,
30490                        protocol_name:
30491                            <BaseSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
30492                    }),
30493                }))
30494            },
30495        )
30496    }
30497}
30498
30499/// A socket.
30500#[derive(Debug)]
30501pub enum BaseSocketRequest {
30502    Clone {
30503        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
30504        control_handle: BaseSocketControlHandle,
30505    },
30506    /// Terminates the connection.
30507    ///
30508    /// After calling `Close`, the client must not send any other requests.
30509    ///
30510    /// Servers, after sending the status response, should close the connection
30511    /// regardless of status and without sending an epitaph.
30512    ///
30513    /// Closing the client end of the channel should be semantically equivalent
30514    /// to calling `Close` without knowing when the close has completed or its
30515    /// status.
30516    Close {
30517        responder: BaseSocketCloseResponder,
30518    },
30519    Query {
30520        responder: BaseSocketQueryResponder,
30521    },
30522    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
30523    SetReuseAddress {
30524        value: bool,
30525        responder: BaseSocketSetReuseAddressResponder,
30526    },
30527    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
30528    GetReuseAddress {
30529        responder: BaseSocketGetReuseAddressResponder,
30530    },
30531    /// Get `SOL_SOCKET` -> `SO_ERROR`.
30532    /// Returns the last error if there is an error set on the socket.
30533    GetError {
30534        responder: BaseSocketGetErrorResponder,
30535    },
30536    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
30537    SetBroadcast {
30538        value: bool,
30539        responder: BaseSocketSetBroadcastResponder,
30540    },
30541    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
30542    GetBroadcast {
30543        responder: BaseSocketGetBroadcastResponder,
30544    },
30545    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
30546    SetSendBuffer {
30547        value_bytes: u64,
30548        responder: BaseSocketSetSendBufferResponder,
30549    },
30550    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
30551    GetSendBuffer {
30552        responder: BaseSocketGetSendBufferResponder,
30553    },
30554    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
30555    SetReceiveBuffer {
30556        value_bytes: u64,
30557        responder: BaseSocketSetReceiveBufferResponder,
30558    },
30559    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
30560    GetReceiveBuffer {
30561        responder: BaseSocketGetReceiveBufferResponder,
30562    },
30563    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
30564    SetKeepAlive {
30565        value: bool,
30566        responder: BaseSocketSetKeepAliveResponder,
30567    },
30568    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
30569    GetKeepAlive {
30570        responder: BaseSocketGetKeepAliveResponder,
30571    },
30572    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
30573    SetOutOfBandInline {
30574        value: bool,
30575        responder: BaseSocketSetOutOfBandInlineResponder,
30576    },
30577    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
30578    GetOutOfBandInline {
30579        responder: BaseSocketGetOutOfBandInlineResponder,
30580    },
30581    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
30582    SetNoCheck {
30583        value: bool,
30584        responder: BaseSocketSetNoCheckResponder,
30585    },
30586    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
30587    GetNoCheck {
30588        responder: BaseSocketGetNoCheckResponder,
30589    },
30590    /// Set `SOL_SOCKET` -> `SO_LINGER`.
30591    SetLinger {
30592        linger: bool,
30593        length_secs: u32,
30594        responder: BaseSocketSetLingerResponder,
30595    },
30596    /// Get `SOL_SOCKET` -> `SO_LINGER`.
30597    GetLinger {
30598        responder: BaseSocketGetLingerResponder,
30599    },
30600    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
30601    SetReusePort {
30602        value: bool,
30603        responder: BaseSocketSetReusePortResponder,
30604    },
30605    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
30606    GetReusePort {
30607        responder: BaseSocketGetReusePortResponder,
30608    },
30609    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
30610    GetAcceptConn {
30611        responder: BaseSocketGetAcceptConnResponder,
30612    },
30613    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
30614    SetBindToDevice {
30615        value: String,
30616        responder: BaseSocketSetBindToDeviceResponder,
30617    },
30618    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
30619    GetBindToDevice {
30620        responder: BaseSocketGetBindToDeviceResponder,
30621    },
30622    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
30623    /// If `value` is 0, this clears the bound interface.
30624    SetBindToInterfaceIndex {
30625        value: u64,
30626        responder: BaseSocketSetBindToInterfaceIndexResponder,
30627    },
30628    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
30629    GetBindToInterfaceIndex {
30630        responder: BaseSocketGetBindToInterfaceIndexResponder,
30631    },
30632    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
30633    SetTimestamp {
30634        value: TimestampOption,
30635        responder: BaseSocketSetTimestampResponder,
30636    },
30637    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
30638    GetTimestamp {
30639        responder: BaseSocketGetTimestampResponder,
30640    },
30641    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
30642    /// unlike the standard SO_MARK, this API has multiple mark domains and each
30643    /// mark can be set independently in each domain.
30644    SetMark {
30645        domain: fidl_fuchsia_net::MarkDomain,
30646        mark: OptionalUint32,
30647        responder: BaseSocketSetMarkResponder,
30648    },
30649    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
30650    /// unlike the standard SO_MARK, this API has multiple mark domains and each
30651    /// mark can be retrieved independently in each domain.
30652    GetMark {
30653        domain: fidl_fuchsia_net::MarkDomain,
30654        responder: BaseSocketGetMarkResponder,
30655    },
30656    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
30657    GetCookie {
30658        responder: BaseSocketGetCookieResponder,
30659    },
30660}
30661
30662impl BaseSocketRequest {
30663    #[allow(irrefutable_let_patterns)]
30664    pub fn into_clone(
30665        self,
30666    ) -> Option<(
30667        fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
30668        BaseSocketControlHandle,
30669    )> {
30670        if let BaseSocketRequest::Clone { request, control_handle } = self {
30671            Some((request, control_handle))
30672        } else {
30673            None
30674        }
30675    }
30676
30677    #[allow(irrefutable_let_patterns)]
30678    pub fn into_close(self) -> Option<(BaseSocketCloseResponder)> {
30679        if let BaseSocketRequest::Close { responder } = self {
30680            Some((responder))
30681        } else {
30682            None
30683        }
30684    }
30685
30686    #[allow(irrefutable_let_patterns)]
30687    pub fn into_query(self) -> Option<(BaseSocketQueryResponder)> {
30688        if let BaseSocketRequest::Query { responder } = self {
30689            Some((responder))
30690        } else {
30691            None
30692        }
30693    }
30694
30695    #[allow(irrefutable_let_patterns)]
30696    pub fn into_set_reuse_address(self) -> Option<(bool, BaseSocketSetReuseAddressResponder)> {
30697        if let BaseSocketRequest::SetReuseAddress { value, responder } = self {
30698            Some((value, responder))
30699        } else {
30700            None
30701        }
30702    }
30703
30704    #[allow(irrefutable_let_patterns)]
30705    pub fn into_get_reuse_address(self) -> Option<(BaseSocketGetReuseAddressResponder)> {
30706        if let BaseSocketRequest::GetReuseAddress { responder } = self {
30707            Some((responder))
30708        } else {
30709            None
30710        }
30711    }
30712
30713    #[allow(irrefutable_let_patterns)]
30714    pub fn into_get_error(self) -> Option<(BaseSocketGetErrorResponder)> {
30715        if let BaseSocketRequest::GetError { responder } = self {
30716            Some((responder))
30717        } else {
30718            None
30719        }
30720    }
30721
30722    #[allow(irrefutable_let_patterns)]
30723    pub fn into_set_broadcast(self) -> Option<(bool, BaseSocketSetBroadcastResponder)> {
30724        if let BaseSocketRequest::SetBroadcast { value, responder } = self {
30725            Some((value, responder))
30726        } else {
30727            None
30728        }
30729    }
30730
30731    #[allow(irrefutable_let_patterns)]
30732    pub fn into_get_broadcast(self) -> Option<(BaseSocketGetBroadcastResponder)> {
30733        if let BaseSocketRequest::GetBroadcast { responder } = self {
30734            Some((responder))
30735        } else {
30736            None
30737        }
30738    }
30739
30740    #[allow(irrefutable_let_patterns)]
30741    pub fn into_set_send_buffer(self) -> Option<(u64, BaseSocketSetSendBufferResponder)> {
30742        if let BaseSocketRequest::SetSendBuffer { value_bytes, responder } = self {
30743            Some((value_bytes, responder))
30744        } else {
30745            None
30746        }
30747    }
30748
30749    #[allow(irrefutable_let_patterns)]
30750    pub fn into_get_send_buffer(self) -> Option<(BaseSocketGetSendBufferResponder)> {
30751        if let BaseSocketRequest::GetSendBuffer { responder } = self {
30752            Some((responder))
30753        } else {
30754            None
30755        }
30756    }
30757
30758    #[allow(irrefutable_let_patterns)]
30759    pub fn into_set_receive_buffer(self) -> Option<(u64, BaseSocketSetReceiveBufferResponder)> {
30760        if let BaseSocketRequest::SetReceiveBuffer { value_bytes, responder } = self {
30761            Some((value_bytes, responder))
30762        } else {
30763            None
30764        }
30765    }
30766
30767    #[allow(irrefutable_let_patterns)]
30768    pub fn into_get_receive_buffer(self) -> Option<(BaseSocketGetReceiveBufferResponder)> {
30769        if let BaseSocketRequest::GetReceiveBuffer { responder } = self {
30770            Some((responder))
30771        } else {
30772            None
30773        }
30774    }
30775
30776    #[allow(irrefutable_let_patterns)]
30777    pub fn into_set_keep_alive(self) -> Option<(bool, BaseSocketSetKeepAliveResponder)> {
30778        if let BaseSocketRequest::SetKeepAlive { value, responder } = self {
30779            Some((value, responder))
30780        } else {
30781            None
30782        }
30783    }
30784
30785    #[allow(irrefutable_let_patterns)]
30786    pub fn into_get_keep_alive(self) -> Option<(BaseSocketGetKeepAliveResponder)> {
30787        if let BaseSocketRequest::GetKeepAlive { responder } = self {
30788            Some((responder))
30789        } else {
30790            None
30791        }
30792    }
30793
30794    #[allow(irrefutable_let_patterns)]
30795    pub fn into_set_out_of_band_inline(
30796        self,
30797    ) -> Option<(bool, BaseSocketSetOutOfBandInlineResponder)> {
30798        if let BaseSocketRequest::SetOutOfBandInline { value, responder } = self {
30799            Some((value, responder))
30800        } else {
30801            None
30802        }
30803    }
30804
30805    #[allow(irrefutable_let_patterns)]
30806    pub fn into_get_out_of_band_inline(self) -> Option<(BaseSocketGetOutOfBandInlineResponder)> {
30807        if let BaseSocketRequest::GetOutOfBandInline { responder } = self {
30808            Some((responder))
30809        } else {
30810            None
30811        }
30812    }
30813
30814    #[allow(irrefutable_let_patterns)]
30815    pub fn into_set_no_check(self) -> Option<(bool, BaseSocketSetNoCheckResponder)> {
30816        if let BaseSocketRequest::SetNoCheck { value, responder } = self {
30817            Some((value, responder))
30818        } else {
30819            None
30820        }
30821    }
30822
30823    #[allow(irrefutable_let_patterns)]
30824    pub fn into_get_no_check(self) -> Option<(BaseSocketGetNoCheckResponder)> {
30825        if let BaseSocketRequest::GetNoCheck { responder } = self {
30826            Some((responder))
30827        } else {
30828            None
30829        }
30830    }
30831
30832    #[allow(irrefutable_let_patterns)]
30833    pub fn into_set_linger(self) -> Option<(bool, u32, BaseSocketSetLingerResponder)> {
30834        if let BaseSocketRequest::SetLinger { linger, length_secs, responder } = self {
30835            Some((linger, length_secs, responder))
30836        } else {
30837            None
30838        }
30839    }
30840
30841    #[allow(irrefutable_let_patterns)]
30842    pub fn into_get_linger(self) -> Option<(BaseSocketGetLingerResponder)> {
30843        if let BaseSocketRequest::GetLinger { responder } = self {
30844            Some((responder))
30845        } else {
30846            None
30847        }
30848    }
30849
30850    #[allow(irrefutable_let_patterns)]
30851    pub fn into_set_reuse_port(self) -> Option<(bool, BaseSocketSetReusePortResponder)> {
30852        if let BaseSocketRequest::SetReusePort { value, responder } = self {
30853            Some((value, responder))
30854        } else {
30855            None
30856        }
30857    }
30858
30859    #[allow(irrefutable_let_patterns)]
30860    pub fn into_get_reuse_port(self) -> Option<(BaseSocketGetReusePortResponder)> {
30861        if let BaseSocketRequest::GetReusePort { responder } = self {
30862            Some((responder))
30863        } else {
30864            None
30865        }
30866    }
30867
30868    #[allow(irrefutable_let_patterns)]
30869    pub fn into_get_accept_conn(self) -> Option<(BaseSocketGetAcceptConnResponder)> {
30870        if let BaseSocketRequest::GetAcceptConn { responder } = self {
30871            Some((responder))
30872        } else {
30873            None
30874        }
30875    }
30876
30877    #[allow(irrefutable_let_patterns)]
30878    pub fn into_set_bind_to_device(self) -> Option<(String, BaseSocketSetBindToDeviceResponder)> {
30879        if let BaseSocketRequest::SetBindToDevice { value, responder } = self {
30880            Some((value, responder))
30881        } else {
30882            None
30883        }
30884    }
30885
30886    #[allow(irrefutable_let_patterns)]
30887    pub fn into_get_bind_to_device(self) -> Option<(BaseSocketGetBindToDeviceResponder)> {
30888        if let BaseSocketRequest::GetBindToDevice { responder } = self {
30889            Some((responder))
30890        } else {
30891            None
30892        }
30893    }
30894
30895    #[allow(irrefutable_let_patterns)]
30896    pub fn into_set_bind_to_interface_index(
30897        self,
30898    ) -> Option<(u64, BaseSocketSetBindToInterfaceIndexResponder)> {
30899        if let BaseSocketRequest::SetBindToInterfaceIndex { value, responder } = self {
30900            Some((value, responder))
30901        } else {
30902            None
30903        }
30904    }
30905
30906    #[allow(irrefutable_let_patterns)]
30907    pub fn into_get_bind_to_interface_index(
30908        self,
30909    ) -> Option<(BaseSocketGetBindToInterfaceIndexResponder)> {
30910        if let BaseSocketRequest::GetBindToInterfaceIndex { responder } = self {
30911            Some((responder))
30912        } else {
30913            None
30914        }
30915    }
30916
30917    #[allow(irrefutable_let_patterns)]
30918    pub fn into_set_timestamp(self) -> Option<(TimestampOption, BaseSocketSetTimestampResponder)> {
30919        if let BaseSocketRequest::SetTimestamp { value, responder } = self {
30920            Some((value, responder))
30921        } else {
30922            None
30923        }
30924    }
30925
30926    #[allow(irrefutable_let_patterns)]
30927    pub fn into_get_timestamp(self) -> Option<(BaseSocketGetTimestampResponder)> {
30928        if let BaseSocketRequest::GetTimestamp { responder } = self {
30929            Some((responder))
30930        } else {
30931            None
30932        }
30933    }
30934
30935    #[allow(irrefutable_let_patterns)]
30936    pub fn into_set_mark(
30937        self,
30938    ) -> Option<(fidl_fuchsia_net::MarkDomain, OptionalUint32, BaseSocketSetMarkResponder)> {
30939        if let BaseSocketRequest::SetMark { domain, mark, responder } = self {
30940            Some((domain, mark, responder))
30941        } else {
30942            None
30943        }
30944    }
30945
30946    #[allow(irrefutable_let_patterns)]
30947    pub fn into_get_mark(
30948        self,
30949    ) -> Option<(fidl_fuchsia_net::MarkDomain, BaseSocketGetMarkResponder)> {
30950        if let BaseSocketRequest::GetMark { domain, responder } = self {
30951            Some((domain, responder))
30952        } else {
30953            None
30954        }
30955    }
30956
30957    #[allow(irrefutable_let_patterns)]
30958    pub fn into_get_cookie(self) -> Option<(BaseSocketGetCookieResponder)> {
30959        if let BaseSocketRequest::GetCookie { responder } = self {
30960            Some((responder))
30961        } else {
30962            None
30963        }
30964    }
30965
30966    /// Name of the method defined in FIDL
30967    pub fn method_name(&self) -> &'static str {
30968        match *self {
30969            BaseSocketRequest::Clone { .. } => "clone",
30970            BaseSocketRequest::Close { .. } => "close",
30971            BaseSocketRequest::Query { .. } => "query",
30972            BaseSocketRequest::SetReuseAddress { .. } => "set_reuse_address",
30973            BaseSocketRequest::GetReuseAddress { .. } => "get_reuse_address",
30974            BaseSocketRequest::GetError { .. } => "get_error",
30975            BaseSocketRequest::SetBroadcast { .. } => "set_broadcast",
30976            BaseSocketRequest::GetBroadcast { .. } => "get_broadcast",
30977            BaseSocketRequest::SetSendBuffer { .. } => "set_send_buffer",
30978            BaseSocketRequest::GetSendBuffer { .. } => "get_send_buffer",
30979            BaseSocketRequest::SetReceiveBuffer { .. } => "set_receive_buffer",
30980            BaseSocketRequest::GetReceiveBuffer { .. } => "get_receive_buffer",
30981            BaseSocketRequest::SetKeepAlive { .. } => "set_keep_alive",
30982            BaseSocketRequest::GetKeepAlive { .. } => "get_keep_alive",
30983            BaseSocketRequest::SetOutOfBandInline { .. } => "set_out_of_band_inline",
30984            BaseSocketRequest::GetOutOfBandInline { .. } => "get_out_of_band_inline",
30985            BaseSocketRequest::SetNoCheck { .. } => "set_no_check",
30986            BaseSocketRequest::GetNoCheck { .. } => "get_no_check",
30987            BaseSocketRequest::SetLinger { .. } => "set_linger",
30988            BaseSocketRequest::GetLinger { .. } => "get_linger",
30989            BaseSocketRequest::SetReusePort { .. } => "set_reuse_port",
30990            BaseSocketRequest::GetReusePort { .. } => "get_reuse_port",
30991            BaseSocketRequest::GetAcceptConn { .. } => "get_accept_conn",
30992            BaseSocketRequest::SetBindToDevice { .. } => "set_bind_to_device",
30993            BaseSocketRequest::GetBindToDevice { .. } => "get_bind_to_device",
30994            BaseSocketRequest::SetBindToInterfaceIndex { .. } => "set_bind_to_interface_index",
30995            BaseSocketRequest::GetBindToInterfaceIndex { .. } => "get_bind_to_interface_index",
30996            BaseSocketRequest::SetTimestamp { .. } => "set_timestamp",
30997            BaseSocketRequest::GetTimestamp { .. } => "get_timestamp",
30998            BaseSocketRequest::SetMark { .. } => "set_mark",
30999            BaseSocketRequest::GetMark { .. } => "get_mark",
31000            BaseSocketRequest::GetCookie { .. } => "get_cookie",
31001        }
31002    }
31003}
31004
31005#[derive(Debug, Clone)]
31006pub struct BaseSocketControlHandle {
31007    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
31008}
31009
31010impl fidl::endpoints::ControlHandle for BaseSocketControlHandle {
31011    fn shutdown(&self) {
31012        self.inner.shutdown()
31013    }
31014    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
31015        self.inner.shutdown_with_epitaph(status)
31016    }
31017
31018    fn is_closed(&self) -> bool {
31019        self.inner.channel().is_closed()
31020    }
31021    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
31022        self.inner.channel().on_closed()
31023    }
31024
31025    #[cfg(target_os = "fuchsia")]
31026    fn signal_peer(
31027        &self,
31028        clear_mask: zx::Signals,
31029        set_mask: zx::Signals,
31030    ) -> Result<(), zx_status::Status> {
31031        use fidl::Peered;
31032        self.inner.channel().signal_peer(clear_mask, set_mask)
31033    }
31034}
31035
31036impl BaseSocketControlHandle {}
31037
31038#[must_use = "FIDL methods require a response to be sent"]
31039#[derive(Debug)]
31040pub struct BaseSocketCloseResponder {
31041    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
31042    tx_id: u32,
31043}
31044
31045/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
31046/// if the responder is dropped without sending a response, so that the client
31047/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
31048impl std::ops::Drop for BaseSocketCloseResponder {
31049    fn drop(&mut self) {
31050        self.control_handle.shutdown();
31051        // Safety: drops once, never accessed again
31052        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31053    }
31054}
31055
31056impl fidl::endpoints::Responder for BaseSocketCloseResponder {
31057    type ControlHandle = BaseSocketControlHandle;
31058
31059    fn control_handle(&self) -> &BaseSocketControlHandle {
31060        &self.control_handle
31061    }
31062
31063    fn drop_without_shutdown(mut self) {
31064        // Safety: drops once, never accessed again due to mem::forget
31065        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31066        // Prevent Drop from running (which would shut down the channel)
31067        std::mem::forget(self);
31068    }
31069}
31070
31071impl BaseSocketCloseResponder {
31072    /// Sends a response to the FIDL transaction.
31073    ///
31074    /// Sets the channel to shutdown if an error occurs.
31075    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
31076        let _result = self.send_raw(result);
31077        if _result.is_err() {
31078            self.control_handle.shutdown();
31079        }
31080        self.drop_without_shutdown();
31081        _result
31082    }
31083
31084    /// Similar to "send" but does not shutdown the channel if an error occurs.
31085    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
31086        let _result = self.send_raw(result);
31087        self.drop_without_shutdown();
31088        _result
31089    }
31090
31091    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
31092        self.control_handle
31093            .inner
31094            .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>>(
31095                result,
31096                self.tx_id,
31097                0x5ac5d459ad7f657e,
31098                fidl::encoding::DynamicFlags::empty(),
31099            )
31100    }
31101}
31102
31103#[must_use = "FIDL methods require a response to be sent"]
31104#[derive(Debug)]
31105pub struct BaseSocketQueryResponder {
31106    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
31107    tx_id: u32,
31108}
31109
31110/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
31111/// if the responder is dropped without sending a response, so that the client
31112/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
31113impl std::ops::Drop for BaseSocketQueryResponder {
31114    fn drop(&mut self) {
31115        self.control_handle.shutdown();
31116        // Safety: drops once, never accessed again
31117        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31118    }
31119}
31120
31121impl fidl::endpoints::Responder for BaseSocketQueryResponder {
31122    type ControlHandle = BaseSocketControlHandle;
31123
31124    fn control_handle(&self) -> &BaseSocketControlHandle {
31125        &self.control_handle
31126    }
31127
31128    fn drop_without_shutdown(mut self) {
31129        // Safety: drops once, never accessed again due to mem::forget
31130        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31131        // Prevent Drop from running (which would shut down the channel)
31132        std::mem::forget(self);
31133    }
31134}
31135
31136impl BaseSocketQueryResponder {
31137    /// Sends a response to the FIDL transaction.
31138    ///
31139    /// Sets the channel to shutdown if an error occurs.
31140    pub fn send(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
31141        let _result = self.send_raw(protocol);
31142        if _result.is_err() {
31143            self.control_handle.shutdown();
31144        }
31145        self.drop_without_shutdown();
31146        _result
31147    }
31148
31149    /// Similar to "send" but does not shutdown the channel if an error occurs.
31150    pub fn send_no_shutdown_on_err(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
31151        let _result = self.send_raw(protocol);
31152        self.drop_without_shutdown();
31153        _result
31154    }
31155
31156    fn send_raw(&self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
31157        self.control_handle.inner.send::<fidl_fuchsia_unknown::QueryableQueryResponse>(
31158            (protocol,),
31159            self.tx_id,
31160            0x2658edee9decfc06,
31161            fidl::encoding::DynamicFlags::empty(),
31162        )
31163    }
31164}
31165
31166#[must_use = "FIDL methods require a response to be sent"]
31167#[derive(Debug)]
31168pub struct BaseSocketSetReuseAddressResponder {
31169    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
31170    tx_id: u32,
31171}
31172
31173/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
31174/// if the responder is dropped without sending a response, so that the client
31175/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
31176impl std::ops::Drop for BaseSocketSetReuseAddressResponder {
31177    fn drop(&mut self) {
31178        self.control_handle.shutdown();
31179        // Safety: drops once, never accessed again
31180        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31181    }
31182}
31183
31184impl fidl::endpoints::Responder for BaseSocketSetReuseAddressResponder {
31185    type ControlHandle = BaseSocketControlHandle;
31186
31187    fn control_handle(&self) -> &BaseSocketControlHandle {
31188        &self.control_handle
31189    }
31190
31191    fn drop_without_shutdown(mut self) {
31192        // Safety: drops once, never accessed again due to mem::forget
31193        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31194        // Prevent Drop from running (which would shut down the channel)
31195        std::mem::forget(self);
31196    }
31197}
31198
31199impl BaseSocketSetReuseAddressResponder {
31200    /// Sends a response to the FIDL transaction.
31201    ///
31202    /// Sets the channel to shutdown if an error occurs.
31203    pub fn send(
31204        self,
31205        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31206    ) -> Result<(), fidl::Error> {
31207        let _result = self.send_raw(result);
31208        if _result.is_err() {
31209            self.control_handle.shutdown();
31210        }
31211        self.drop_without_shutdown();
31212        _result
31213    }
31214
31215    /// Similar to "send" but does not shutdown the channel if an error occurs.
31216    pub fn send_no_shutdown_on_err(
31217        self,
31218        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31219    ) -> Result<(), fidl::Error> {
31220        let _result = self.send_raw(result);
31221        self.drop_without_shutdown();
31222        _result
31223    }
31224
31225    fn send_raw(
31226        &self,
31227        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31228    ) -> Result<(), fidl::Error> {
31229        self.control_handle.inner.send::<fidl::encoding::ResultType<
31230            fidl::encoding::EmptyStruct,
31231            fidl_fuchsia_posix::Errno,
31232        >>(
31233            result,
31234            self.tx_id,
31235            0x1fd74ee8b9a4a876,
31236            fidl::encoding::DynamicFlags::empty(),
31237        )
31238    }
31239}
31240
31241#[must_use = "FIDL methods require a response to be sent"]
31242#[derive(Debug)]
31243pub struct BaseSocketGetReuseAddressResponder {
31244    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
31245    tx_id: u32,
31246}
31247
31248/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
31249/// if the responder is dropped without sending a response, so that the client
31250/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
31251impl std::ops::Drop for BaseSocketGetReuseAddressResponder {
31252    fn drop(&mut self) {
31253        self.control_handle.shutdown();
31254        // Safety: drops once, never accessed again
31255        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31256    }
31257}
31258
31259impl fidl::endpoints::Responder for BaseSocketGetReuseAddressResponder {
31260    type ControlHandle = BaseSocketControlHandle;
31261
31262    fn control_handle(&self) -> &BaseSocketControlHandle {
31263        &self.control_handle
31264    }
31265
31266    fn drop_without_shutdown(mut self) {
31267        // Safety: drops once, never accessed again due to mem::forget
31268        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31269        // Prevent Drop from running (which would shut down the channel)
31270        std::mem::forget(self);
31271    }
31272}
31273
31274impl BaseSocketGetReuseAddressResponder {
31275    /// Sends a response to the FIDL transaction.
31276    ///
31277    /// Sets the channel to shutdown if an error occurs.
31278    pub fn send(
31279        self,
31280        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
31281    ) -> Result<(), fidl::Error> {
31282        let _result = self.send_raw(result);
31283        if _result.is_err() {
31284            self.control_handle.shutdown();
31285        }
31286        self.drop_without_shutdown();
31287        _result
31288    }
31289
31290    /// Similar to "send" but does not shutdown the channel if an error occurs.
31291    pub fn send_no_shutdown_on_err(
31292        self,
31293        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
31294    ) -> Result<(), fidl::Error> {
31295        let _result = self.send_raw(result);
31296        self.drop_without_shutdown();
31297        _result
31298    }
31299
31300    fn send_raw(
31301        &self,
31302        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
31303    ) -> Result<(), fidl::Error> {
31304        self.control_handle.inner.send::<fidl::encoding::ResultType<
31305            BaseSocketGetReuseAddressResponse,
31306            fidl_fuchsia_posix::Errno,
31307        >>(
31308            result.map(|value| (value,)),
31309            self.tx_id,
31310            0x67b7206b8d1bc0a5,
31311            fidl::encoding::DynamicFlags::empty(),
31312        )
31313    }
31314}
31315
31316#[must_use = "FIDL methods require a response to be sent"]
31317#[derive(Debug)]
31318pub struct BaseSocketGetErrorResponder {
31319    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
31320    tx_id: u32,
31321}
31322
31323/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
31324/// if the responder is dropped without sending a response, so that the client
31325/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
31326impl std::ops::Drop for BaseSocketGetErrorResponder {
31327    fn drop(&mut self) {
31328        self.control_handle.shutdown();
31329        // Safety: drops once, never accessed again
31330        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31331    }
31332}
31333
31334impl fidl::endpoints::Responder for BaseSocketGetErrorResponder {
31335    type ControlHandle = BaseSocketControlHandle;
31336
31337    fn control_handle(&self) -> &BaseSocketControlHandle {
31338        &self.control_handle
31339    }
31340
31341    fn drop_without_shutdown(mut self) {
31342        // Safety: drops once, never accessed again due to mem::forget
31343        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31344        // Prevent Drop from running (which would shut down the channel)
31345        std::mem::forget(self);
31346    }
31347}
31348
31349impl BaseSocketGetErrorResponder {
31350    /// Sends a response to the FIDL transaction.
31351    ///
31352    /// Sets the channel to shutdown if an error occurs.
31353    pub fn send(
31354        self,
31355        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31356    ) -> Result<(), fidl::Error> {
31357        let _result = self.send_raw(result);
31358        if _result.is_err() {
31359            self.control_handle.shutdown();
31360        }
31361        self.drop_without_shutdown();
31362        _result
31363    }
31364
31365    /// Similar to "send" but does not shutdown the channel if an error occurs.
31366    pub fn send_no_shutdown_on_err(
31367        self,
31368        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31369    ) -> Result<(), fidl::Error> {
31370        let _result = self.send_raw(result);
31371        self.drop_without_shutdown();
31372        _result
31373    }
31374
31375    fn send_raw(
31376        &self,
31377        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31378    ) -> Result<(), fidl::Error> {
31379        self.control_handle.inner.send::<fidl::encoding::ResultType<
31380            fidl::encoding::EmptyStruct,
31381            fidl_fuchsia_posix::Errno,
31382        >>(
31383            result,
31384            self.tx_id,
31385            0x5aad39b33e5f6ebb,
31386            fidl::encoding::DynamicFlags::empty(),
31387        )
31388    }
31389}
31390
31391#[must_use = "FIDL methods require a response to be sent"]
31392#[derive(Debug)]
31393pub struct BaseSocketSetBroadcastResponder {
31394    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
31395    tx_id: u32,
31396}
31397
31398/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
31399/// if the responder is dropped without sending a response, so that the client
31400/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
31401impl std::ops::Drop for BaseSocketSetBroadcastResponder {
31402    fn drop(&mut self) {
31403        self.control_handle.shutdown();
31404        // Safety: drops once, never accessed again
31405        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31406    }
31407}
31408
31409impl fidl::endpoints::Responder for BaseSocketSetBroadcastResponder {
31410    type ControlHandle = BaseSocketControlHandle;
31411
31412    fn control_handle(&self) -> &BaseSocketControlHandle {
31413        &self.control_handle
31414    }
31415
31416    fn drop_without_shutdown(mut self) {
31417        // Safety: drops once, never accessed again due to mem::forget
31418        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31419        // Prevent Drop from running (which would shut down the channel)
31420        std::mem::forget(self);
31421    }
31422}
31423
31424impl BaseSocketSetBroadcastResponder {
31425    /// Sends a response to the FIDL transaction.
31426    ///
31427    /// Sets the channel to shutdown if an error occurs.
31428    pub fn send(
31429        self,
31430        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31431    ) -> Result<(), fidl::Error> {
31432        let _result = self.send_raw(result);
31433        if _result.is_err() {
31434            self.control_handle.shutdown();
31435        }
31436        self.drop_without_shutdown();
31437        _result
31438    }
31439
31440    /// Similar to "send" but does not shutdown the channel if an error occurs.
31441    pub fn send_no_shutdown_on_err(
31442        self,
31443        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31444    ) -> Result<(), fidl::Error> {
31445        let _result = self.send_raw(result);
31446        self.drop_without_shutdown();
31447        _result
31448    }
31449
31450    fn send_raw(
31451        &self,
31452        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31453    ) -> Result<(), fidl::Error> {
31454        self.control_handle.inner.send::<fidl::encoding::ResultType<
31455            fidl::encoding::EmptyStruct,
31456            fidl_fuchsia_posix::Errno,
31457        >>(
31458            result,
31459            self.tx_id,
31460            0x6023e081ce3cd947,
31461            fidl::encoding::DynamicFlags::empty(),
31462        )
31463    }
31464}
31465
31466#[must_use = "FIDL methods require a response to be sent"]
31467#[derive(Debug)]
31468pub struct BaseSocketGetBroadcastResponder {
31469    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
31470    tx_id: u32,
31471}
31472
31473/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
31474/// if the responder is dropped without sending a response, so that the client
31475/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
31476impl std::ops::Drop for BaseSocketGetBroadcastResponder {
31477    fn drop(&mut self) {
31478        self.control_handle.shutdown();
31479        // Safety: drops once, never accessed again
31480        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31481    }
31482}
31483
31484impl fidl::endpoints::Responder for BaseSocketGetBroadcastResponder {
31485    type ControlHandle = BaseSocketControlHandle;
31486
31487    fn control_handle(&self) -> &BaseSocketControlHandle {
31488        &self.control_handle
31489    }
31490
31491    fn drop_without_shutdown(mut self) {
31492        // Safety: drops once, never accessed again due to mem::forget
31493        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31494        // Prevent Drop from running (which would shut down the channel)
31495        std::mem::forget(self);
31496    }
31497}
31498
31499impl BaseSocketGetBroadcastResponder {
31500    /// Sends a response to the FIDL transaction.
31501    ///
31502    /// Sets the channel to shutdown if an error occurs.
31503    pub fn send(
31504        self,
31505        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
31506    ) -> Result<(), fidl::Error> {
31507        let _result = self.send_raw(result);
31508        if _result.is_err() {
31509            self.control_handle.shutdown();
31510        }
31511        self.drop_without_shutdown();
31512        _result
31513    }
31514
31515    /// Similar to "send" but does not shutdown the channel if an error occurs.
31516    pub fn send_no_shutdown_on_err(
31517        self,
31518        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
31519    ) -> Result<(), fidl::Error> {
31520        let _result = self.send_raw(result);
31521        self.drop_without_shutdown();
31522        _result
31523    }
31524
31525    fn send_raw(
31526        &self,
31527        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
31528    ) -> Result<(), fidl::Error> {
31529        self.control_handle.inner.send::<fidl::encoding::ResultType<
31530            BaseSocketGetBroadcastResponse,
31531            fidl_fuchsia_posix::Errno,
31532        >>(
31533            result.map(|value| (value,)),
31534            self.tx_id,
31535            0x68796fc556f9780d,
31536            fidl::encoding::DynamicFlags::empty(),
31537        )
31538    }
31539}
31540
31541#[must_use = "FIDL methods require a response to be sent"]
31542#[derive(Debug)]
31543pub struct BaseSocketSetSendBufferResponder {
31544    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
31545    tx_id: u32,
31546}
31547
31548/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
31549/// if the responder is dropped without sending a response, so that the client
31550/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
31551impl std::ops::Drop for BaseSocketSetSendBufferResponder {
31552    fn drop(&mut self) {
31553        self.control_handle.shutdown();
31554        // Safety: drops once, never accessed again
31555        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31556    }
31557}
31558
31559impl fidl::endpoints::Responder for BaseSocketSetSendBufferResponder {
31560    type ControlHandle = BaseSocketControlHandle;
31561
31562    fn control_handle(&self) -> &BaseSocketControlHandle {
31563        &self.control_handle
31564    }
31565
31566    fn drop_without_shutdown(mut self) {
31567        // Safety: drops once, never accessed again due to mem::forget
31568        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31569        // Prevent Drop from running (which would shut down the channel)
31570        std::mem::forget(self);
31571    }
31572}
31573
31574impl BaseSocketSetSendBufferResponder {
31575    /// Sends a response to the FIDL transaction.
31576    ///
31577    /// Sets the channel to shutdown if an error occurs.
31578    pub fn send(
31579        self,
31580        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31581    ) -> Result<(), fidl::Error> {
31582        let _result = self.send_raw(result);
31583        if _result.is_err() {
31584            self.control_handle.shutdown();
31585        }
31586        self.drop_without_shutdown();
31587        _result
31588    }
31589
31590    /// Similar to "send" but does not shutdown the channel if an error occurs.
31591    pub fn send_no_shutdown_on_err(
31592        self,
31593        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31594    ) -> Result<(), fidl::Error> {
31595        let _result = self.send_raw(result);
31596        self.drop_without_shutdown();
31597        _result
31598    }
31599
31600    fn send_raw(
31601        &self,
31602        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31603    ) -> Result<(), fidl::Error> {
31604        self.control_handle.inner.send::<fidl::encoding::ResultType<
31605            fidl::encoding::EmptyStruct,
31606            fidl_fuchsia_posix::Errno,
31607        >>(
31608            result,
31609            self.tx_id,
31610            0x756eac32d73a7a70,
31611            fidl::encoding::DynamicFlags::empty(),
31612        )
31613    }
31614}
31615
31616#[must_use = "FIDL methods require a response to be sent"]
31617#[derive(Debug)]
31618pub struct BaseSocketGetSendBufferResponder {
31619    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
31620    tx_id: u32,
31621}
31622
31623/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
31624/// if the responder is dropped without sending a response, so that the client
31625/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
31626impl std::ops::Drop for BaseSocketGetSendBufferResponder {
31627    fn drop(&mut self) {
31628        self.control_handle.shutdown();
31629        // Safety: drops once, never accessed again
31630        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31631    }
31632}
31633
31634impl fidl::endpoints::Responder for BaseSocketGetSendBufferResponder {
31635    type ControlHandle = BaseSocketControlHandle;
31636
31637    fn control_handle(&self) -> &BaseSocketControlHandle {
31638        &self.control_handle
31639    }
31640
31641    fn drop_without_shutdown(mut self) {
31642        // Safety: drops once, never accessed again due to mem::forget
31643        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31644        // Prevent Drop from running (which would shut down the channel)
31645        std::mem::forget(self);
31646    }
31647}
31648
31649impl BaseSocketGetSendBufferResponder {
31650    /// Sends a response to the FIDL transaction.
31651    ///
31652    /// Sets the channel to shutdown if an error occurs.
31653    pub fn send(
31654        self,
31655        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
31656    ) -> Result<(), fidl::Error> {
31657        let _result = self.send_raw(result);
31658        if _result.is_err() {
31659            self.control_handle.shutdown();
31660        }
31661        self.drop_without_shutdown();
31662        _result
31663    }
31664
31665    /// Similar to "send" but does not shutdown the channel if an error occurs.
31666    pub fn send_no_shutdown_on_err(
31667        self,
31668        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
31669    ) -> Result<(), fidl::Error> {
31670        let _result = self.send_raw(result);
31671        self.drop_without_shutdown();
31672        _result
31673    }
31674
31675    fn send_raw(
31676        &self,
31677        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
31678    ) -> Result<(), fidl::Error> {
31679        self.control_handle.inner.send::<fidl::encoding::ResultType<
31680            BaseSocketGetSendBufferResponse,
31681            fidl_fuchsia_posix::Errno,
31682        >>(
31683            result.map(|value_bytes| (value_bytes,)),
31684            self.tx_id,
31685            0x78a52fd9c7b2410b,
31686            fidl::encoding::DynamicFlags::empty(),
31687        )
31688    }
31689}
31690
31691#[must_use = "FIDL methods require a response to be sent"]
31692#[derive(Debug)]
31693pub struct BaseSocketSetReceiveBufferResponder {
31694    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
31695    tx_id: u32,
31696}
31697
31698/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
31699/// if the responder is dropped without sending a response, so that the client
31700/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
31701impl std::ops::Drop for BaseSocketSetReceiveBufferResponder {
31702    fn drop(&mut self) {
31703        self.control_handle.shutdown();
31704        // Safety: drops once, never accessed again
31705        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31706    }
31707}
31708
31709impl fidl::endpoints::Responder for BaseSocketSetReceiveBufferResponder {
31710    type ControlHandle = BaseSocketControlHandle;
31711
31712    fn control_handle(&self) -> &BaseSocketControlHandle {
31713        &self.control_handle
31714    }
31715
31716    fn drop_without_shutdown(mut self) {
31717        // Safety: drops once, never accessed again due to mem::forget
31718        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31719        // Prevent Drop from running (which would shut down the channel)
31720        std::mem::forget(self);
31721    }
31722}
31723
31724impl BaseSocketSetReceiveBufferResponder {
31725    /// Sends a response to the FIDL transaction.
31726    ///
31727    /// Sets the channel to shutdown if an error occurs.
31728    pub fn send(
31729        self,
31730        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31731    ) -> Result<(), fidl::Error> {
31732        let _result = self.send_raw(result);
31733        if _result.is_err() {
31734            self.control_handle.shutdown();
31735        }
31736        self.drop_without_shutdown();
31737        _result
31738    }
31739
31740    /// Similar to "send" but does not shutdown the channel if an error occurs.
31741    pub fn send_no_shutdown_on_err(
31742        self,
31743        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31744    ) -> Result<(), fidl::Error> {
31745        let _result = self.send_raw(result);
31746        self.drop_without_shutdown();
31747        _result
31748    }
31749
31750    fn send_raw(
31751        &self,
31752        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31753    ) -> Result<(), fidl::Error> {
31754        self.control_handle.inner.send::<fidl::encoding::ResultType<
31755            fidl::encoding::EmptyStruct,
31756            fidl_fuchsia_posix::Errno,
31757        >>(
31758            result,
31759            self.tx_id,
31760            0x6b0cf2f1919c7001,
31761            fidl::encoding::DynamicFlags::empty(),
31762        )
31763    }
31764}
31765
31766#[must_use = "FIDL methods require a response to be sent"]
31767#[derive(Debug)]
31768pub struct BaseSocketGetReceiveBufferResponder {
31769    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
31770    tx_id: u32,
31771}
31772
31773/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
31774/// if the responder is dropped without sending a response, so that the client
31775/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
31776impl std::ops::Drop for BaseSocketGetReceiveBufferResponder {
31777    fn drop(&mut self) {
31778        self.control_handle.shutdown();
31779        // Safety: drops once, never accessed again
31780        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31781    }
31782}
31783
31784impl fidl::endpoints::Responder for BaseSocketGetReceiveBufferResponder {
31785    type ControlHandle = BaseSocketControlHandle;
31786
31787    fn control_handle(&self) -> &BaseSocketControlHandle {
31788        &self.control_handle
31789    }
31790
31791    fn drop_without_shutdown(mut self) {
31792        // Safety: drops once, never accessed again due to mem::forget
31793        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31794        // Prevent Drop from running (which would shut down the channel)
31795        std::mem::forget(self);
31796    }
31797}
31798
31799impl BaseSocketGetReceiveBufferResponder {
31800    /// Sends a response to the FIDL transaction.
31801    ///
31802    /// Sets the channel to shutdown if an error occurs.
31803    pub fn send(
31804        self,
31805        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
31806    ) -> Result<(), fidl::Error> {
31807        let _result = self.send_raw(result);
31808        if _result.is_err() {
31809            self.control_handle.shutdown();
31810        }
31811        self.drop_without_shutdown();
31812        _result
31813    }
31814
31815    /// Similar to "send" but does not shutdown the channel if an error occurs.
31816    pub fn send_no_shutdown_on_err(
31817        self,
31818        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
31819    ) -> Result<(), fidl::Error> {
31820        let _result = self.send_raw(result);
31821        self.drop_without_shutdown();
31822        _result
31823    }
31824
31825    fn send_raw(
31826        &self,
31827        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
31828    ) -> Result<(), fidl::Error> {
31829        self.control_handle.inner.send::<fidl::encoding::ResultType<
31830            BaseSocketGetReceiveBufferResponse,
31831            fidl_fuchsia_posix::Errno,
31832        >>(
31833            result.map(|value_bytes| (value_bytes,)),
31834            self.tx_id,
31835            0x14c1a4b64f709e5c,
31836            fidl::encoding::DynamicFlags::empty(),
31837        )
31838    }
31839}
31840
31841#[must_use = "FIDL methods require a response to be sent"]
31842#[derive(Debug)]
31843pub struct BaseSocketSetKeepAliveResponder {
31844    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
31845    tx_id: u32,
31846}
31847
31848/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
31849/// if the responder is dropped without sending a response, so that the client
31850/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
31851impl std::ops::Drop for BaseSocketSetKeepAliveResponder {
31852    fn drop(&mut self) {
31853        self.control_handle.shutdown();
31854        // Safety: drops once, never accessed again
31855        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31856    }
31857}
31858
31859impl fidl::endpoints::Responder for BaseSocketSetKeepAliveResponder {
31860    type ControlHandle = BaseSocketControlHandle;
31861
31862    fn control_handle(&self) -> &BaseSocketControlHandle {
31863        &self.control_handle
31864    }
31865
31866    fn drop_without_shutdown(mut self) {
31867        // Safety: drops once, never accessed again due to mem::forget
31868        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31869        // Prevent Drop from running (which would shut down the channel)
31870        std::mem::forget(self);
31871    }
31872}
31873
31874impl BaseSocketSetKeepAliveResponder {
31875    /// Sends a response to the FIDL transaction.
31876    ///
31877    /// Sets the channel to shutdown if an error occurs.
31878    pub fn send(
31879        self,
31880        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31881    ) -> Result<(), fidl::Error> {
31882        let _result = self.send_raw(result);
31883        if _result.is_err() {
31884            self.control_handle.shutdown();
31885        }
31886        self.drop_without_shutdown();
31887        _result
31888    }
31889
31890    /// Similar to "send" but does not shutdown the channel if an error occurs.
31891    pub fn send_no_shutdown_on_err(
31892        self,
31893        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31894    ) -> Result<(), fidl::Error> {
31895        let _result = self.send_raw(result);
31896        self.drop_without_shutdown();
31897        _result
31898    }
31899
31900    fn send_raw(
31901        &self,
31902        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31903    ) -> Result<(), fidl::Error> {
31904        self.control_handle.inner.send::<fidl::encoding::ResultType<
31905            fidl::encoding::EmptyStruct,
31906            fidl_fuchsia_posix::Errno,
31907        >>(
31908            result,
31909            self.tx_id,
31910            0x572df8f0b920d2c7,
31911            fidl::encoding::DynamicFlags::empty(),
31912        )
31913    }
31914}
31915
31916#[must_use = "FIDL methods require a response to be sent"]
31917#[derive(Debug)]
31918pub struct BaseSocketGetKeepAliveResponder {
31919    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
31920    tx_id: u32,
31921}
31922
31923/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
31924/// if the responder is dropped without sending a response, so that the client
31925/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
31926impl std::ops::Drop for BaseSocketGetKeepAliveResponder {
31927    fn drop(&mut self) {
31928        self.control_handle.shutdown();
31929        // Safety: drops once, never accessed again
31930        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31931    }
31932}
31933
31934impl fidl::endpoints::Responder for BaseSocketGetKeepAliveResponder {
31935    type ControlHandle = BaseSocketControlHandle;
31936
31937    fn control_handle(&self) -> &BaseSocketControlHandle {
31938        &self.control_handle
31939    }
31940
31941    fn drop_without_shutdown(mut self) {
31942        // Safety: drops once, never accessed again due to mem::forget
31943        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31944        // Prevent Drop from running (which would shut down the channel)
31945        std::mem::forget(self);
31946    }
31947}
31948
31949impl BaseSocketGetKeepAliveResponder {
31950    /// Sends a response to the FIDL transaction.
31951    ///
31952    /// Sets the channel to shutdown if an error occurs.
31953    pub fn send(
31954        self,
31955        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
31956    ) -> Result<(), fidl::Error> {
31957        let _result = self.send_raw(result);
31958        if _result.is_err() {
31959            self.control_handle.shutdown();
31960        }
31961        self.drop_without_shutdown();
31962        _result
31963    }
31964
31965    /// Similar to "send" but does not shutdown the channel if an error occurs.
31966    pub fn send_no_shutdown_on_err(
31967        self,
31968        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
31969    ) -> Result<(), fidl::Error> {
31970        let _result = self.send_raw(result);
31971        self.drop_without_shutdown();
31972        _result
31973    }
31974
31975    fn send_raw(
31976        &self,
31977        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
31978    ) -> Result<(), fidl::Error> {
31979        self.control_handle.inner.send::<fidl::encoding::ResultType<
31980            BaseSocketGetKeepAliveResponse,
31981            fidl_fuchsia_posix::Errno,
31982        >>(
31983            result.map(|value| (value,)),
31984            self.tx_id,
31985            0x2dd29d3215f2c9d2,
31986            fidl::encoding::DynamicFlags::empty(),
31987        )
31988    }
31989}
31990
31991#[must_use = "FIDL methods require a response to be sent"]
31992#[derive(Debug)]
31993pub struct BaseSocketSetOutOfBandInlineResponder {
31994    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
31995    tx_id: u32,
31996}
31997
31998/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
31999/// if the responder is dropped without sending a response, so that the client
32000/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32001impl std::ops::Drop for BaseSocketSetOutOfBandInlineResponder {
32002    fn drop(&mut self) {
32003        self.control_handle.shutdown();
32004        // Safety: drops once, never accessed again
32005        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32006    }
32007}
32008
32009impl fidl::endpoints::Responder for BaseSocketSetOutOfBandInlineResponder {
32010    type ControlHandle = BaseSocketControlHandle;
32011
32012    fn control_handle(&self) -> &BaseSocketControlHandle {
32013        &self.control_handle
32014    }
32015
32016    fn drop_without_shutdown(mut self) {
32017        // Safety: drops once, never accessed again due to mem::forget
32018        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32019        // Prevent Drop from running (which would shut down the channel)
32020        std::mem::forget(self);
32021    }
32022}
32023
32024impl BaseSocketSetOutOfBandInlineResponder {
32025    /// Sends a response to the FIDL transaction.
32026    ///
32027    /// Sets the channel to shutdown if an error occurs.
32028    pub fn send(
32029        self,
32030        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32031    ) -> Result<(), fidl::Error> {
32032        let _result = self.send_raw(result);
32033        if _result.is_err() {
32034            self.control_handle.shutdown();
32035        }
32036        self.drop_without_shutdown();
32037        _result
32038    }
32039
32040    /// Similar to "send" but does not shutdown the channel if an error occurs.
32041    pub fn send_no_shutdown_on_err(
32042        self,
32043        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32044    ) -> Result<(), fidl::Error> {
32045        let _result = self.send_raw(result);
32046        self.drop_without_shutdown();
32047        _result
32048    }
32049
32050    fn send_raw(
32051        &self,
32052        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32053    ) -> Result<(), fidl::Error> {
32054        self.control_handle.inner.send::<fidl::encoding::ResultType<
32055            fidl::encoding::EmptyStruct,
32056            fidl_fuchsia_posix::Errno,
32057        >>(
32058            result,
32059            self.tx_id,
32060            0x3ecb49968bee439,
32061            fidl::encoding::DynamicFlags::empty(),
32062        )
32063    }
32064}
32065
32066#[must_use = "FIDL methods require a response to be sent"]
32067#[derive(Debug)]
32068pub struct BaseSocketGetOutOfBandInlineResponder {
32069    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32070    tx_id: u32,
32071}
32072
32073/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32074/// if the responder is dropped without sending a response, so that the client
32075/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32076impl std::ops::Drop for BaseSocketGetOutOfBandInlineResponder {
32077    fn drop(&mut self) {
32078        self.control_handle.shutdown();
32079        // Safety: drops once, never accessed again
32080        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32081    }
32082}
32083
32084impl fidl::endpoints::Responder for BaseSocketGetOutOfBandInlineResponder {
32085    type ControlHandle = BaseSocketControlHandle;
32086
32087    fn control_handle(&self) -> &BaseSocketControlHandle {
32088        &self.control_handle
32089    }
32090
32091    fn drop_without_shutdown(mut self) {
32092        // Safety: drops once, never accessed again due to mem::forget
32093        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32094        // Prevent Drop from running (which would shut down the channel)
32095        std::mem::forget(self);
32096    }
32097}
32098
32099impl BaseSocketGetOutOfBandInlineResponder {
32100    /// Sends a response to the FIDL transaction.
32101    ///
32102    /// Sets the channel to shutdown if an error occurs.
32103    pub fn send(
32104        self,
32105        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32106    ) -> Result<(), fidl::Error> {
32107        let _result = self.send_raw(result);
32108        if _result.is_err() {
32109            self.control_handle.shutdown();
32110        }
32111        self.drop_without_shutdown();
32112        _result
32113    }
32114
32115    /// Similar to "send" but does not shutdown the channel if an error occurs.
32116    pub fn send_no_shutdown_on_err(
32117        self,
32118        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32119    ) -> Result<(), fidl::Error> {
32120        let _result = self.send_raw(result);
32121        self.drop_without_shutdown();
32122        _result
32123    }
32124
32125    fn send_raw(
32126        &self,
32127        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32128    ) -> Result<(), fidl::Error> {
32129        self.control_handle.inner.send::<fidl::encoding::ResultType<
32130            BaseSocketGetOutOfBandInlineResponse,
32131            fidl_fuchsia_posix::Errno,
32132        >>(
32133            result.map(|value| (value,)),
32134            self.tx_id,
32135            0x348c1ab3aeca1745,
32136            fidl::encoding::DynamicFlags::empty(),
32137        )
32138    }
32139}
32140
32141#[must_use = "FIDL methods require a response to be sent"]
32142#[derive(Debug)]
32143pub struct BaseSocketSetNoCheckResponder {
32144    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32145    tx_id: u32,
32146}
32147
32148/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32149/// if the responder is dropped without sending a response, so that the client
32150/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32151impl std::ops::Drop for BaseSocketSetNoCheckResponder {
32152    fn drop(&mut self) {
32153        self.control_handle.shutdown();
32154        // Safety: drops once, never accessed again
32155        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32156    }
32157}
32158
32159impl fidl::endpoints::Responder for BaseSocketSetNoCheckResponder {
32160    type ControlHandle = BaseSocketControlHandle;
32161
32162    fn control_handle(&self) -> &BaseSocketControlHandle {
32163        &self.control_handle
32164    }
32165
32166    fn drop_without_shutdown(mut self) {
32167        // Safety: drops once, never accessed again due to mem::forget
32168        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32169        // Prevent Drop from running (which would shut down the channel)
32170        std::mem::forget(self);
32171    }
32172}
32173
32174impl BaseSocketSetNoCheckResponder {
32175    /// Sends a response to the FIDL transaction.
32176    ///
32177    /// Sets the channel to shutdown if an error occurs.
32178    pub fn send(
32179        self,
32180        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32181    ) -> Result<(), fidl::Error> {
32182        let _result = self.send_raw(result);
32183        if _result.is_err() {
32184            self.control_handle.shutdown();
32185        }
32186        self.drop_without_shutdown();
32187        _result
32188    }
32189
32190    /// Similar to "send" but does not shutdown the channel if an error occurs.
32191    pub fn send_no_shutdown_on_err(
32192        self,
32193        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32194    ) -> Result<(), fidl::Error> {
32195        let _result = self.send_raw(result);
32196        self.drop_without_shutdown();
32197        _result
32198    }
32199
32200    fn send_raw(
32201        &self,
32202        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32203    ) -> Result<(), fidl::Error> {
32204        self.control_handle.inner.send::<fidl::encoding::ResultType<
32205            fidl::encoding::EmptyStruct,
32206            fidl_fuchsia_posix::Errno,
32207        >>(
32208            result,
32209            self.tx_id,
32210            0x6bbf00c53a4c78c2,
32211            fidl::encoding::DynamicFlags::empty(),
32212        )
32213    }
32214}
32215
32216#[must_use = "FIDL methods require a response to be sent"]
32217#[derive(Debug)]
32218pub struct BaseSocketGetNoCheckResponder {
32219    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32220    tx_id: u32,
32221}
32222
32223/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32224/// if the responder is dropped without sending a response, so that the client
32225/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32226impl std::ops::Drop for BaseSocketGetNoCheckResponder {
32227    fn drop(&mut self) {
32228        self.control_handle.shutdown();
32229        // Safety: drops once, never accessed again
32230        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32231    }
32232}
32233
32234impl fidl::endpoints::Responder for BaseSocketGetNoCheckResponder {
32235    type ControlHandle = BaseSocketControlHandle;
32236
32237    fn control_handle(&self) -> &BaseSocketControlHandle {
32238        &self.control_handle
32239    }
32240
32241    fn drop_without_shutdown(mut self) {
32242        // Safety: drops once, never accessed again due to mem::forget
32243        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32244        // Prevent Drop from running (which would shut down the channel)
32245        std::mem::forget(self);
32246    }
32247}
32248
32249impl BaseSocketGetNoCheckResponder {
32250    /// Sends a response to the FIDL transaction.
32251    ///
32252    /// Sets the channel to shutdown if an error occurs.
32253    pub fn send(
32254        self,
32255        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32256    ) -> Result<(), fidl::Error> {
32257        let _result = self.send_raw(result);
32258        if _result.is_err() {
32259            self.control_handle.shutdown();
32260        }
32261        self.drop_without_shutdown();
32262        _result
32263    }
32264
32265    /// Similar to "send" but does not shutdown the channel if an error occurs.
32266    pub fn send_no_shutdown_on_err(
32267        self,
32268        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32269    ) -> Result<(), fidl::Error> {
32270        let _result = self.send_raw(result);
32271        self.drop_without_shutdown();
32272        _result
32273    }
32274
32275    fn send_raw(
32276        &self,
32277        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32278    ) -> Result<(), fidl::Error> {
32279        self.control_handle.inner.send::<fidl::encoding::ResultType<
32280            BaseSocketGetNoCheckResponse,
32281            fidl_fuchsia_posix::Errno,
32282        >>(
32283            result.map(|value| (value,)),
32284            self.tx_id,
32285            0x2cd4249286417694,
32286            fidl::encoding::DynamicFlags::empty(),
32287        )
32288    }
32289}
32290
32291#[must_use = "FIDL methods require a response to be sent"]
32292#[derive(Debug)]
32293pub struct BaseSocketSetLingerResponder {
32294    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32295    tx_id: u32,
32296}
32297
32298/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32299/// if the responder is dropped without sending a response, so that the client
32300/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32301impl std::ops::Drop for BaseSocketSetLingerResponder {
32302    fn drop(&mut self) {
32303        self.control_handle.shutdown();
32304        // Safety: drops once, never accessed again
32305        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32306    }
32307}
32308
32309impl fidl::endpoints::Responder for BaseSocketSetLingerResponder {
32310    type ControlHandle = BaseSocketControlHandle;
32311
32312    fn control_handle(&self) -> &BaseSocketControlHandle {
32313        &self.control_handle
32314    }
32315
32316    fn drop_without_shutdown(mut self) {
32317        // Safety: drops once, never accessed again due to mem::forget
32318        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32319        // Prevent Drop from running (which would shut down the channel)
32320        std::mem::forget(self);
32321    }
32322}
32323
32324impl BaseSocketSetLingerResponder {
32325    /// Sends a response to the FIDL transaction.
32326    ///
32327    /// Sets the channel to shutdown if an error occurs.
32328    pub fn send(
32329        self,
32330        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32331    ) -> Result<(), fidl::Error> {
32332        let _result = self.send_raw(result);
32333        if _result.is_err() {
32334            self.control_handle.shutdown();
32335        }
32336        self.drop_without_shutdown();
32337        _result
32338    }
32339
32340    /// Similar to "send" but does not shutdown the channel if an error occurs.
32341    pub fn send_no_shutdown_on_err(
32342        self,
32343        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32344    ) -> Result<(), fidl::Error> {
32345        let _result = self.send_raw(result);
32346        self.drop_without_shutdown();
32347        _result
32348    }
32349
32350    fn send_raw(
32351        &self,
32352        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32353    ) -> Result<(), fidl::Error> {
32354        self.control_handle.inner.send::<fidl::encoding::ResultType<
32355            fidl::encoding::EmptyStruct,
32356            fidl_fuchsia_posix::Errno,
32357        >>(
32358            result,
32359            self.tx_id,
32360            0x45386351246e998e,
32361            fidl::encoding::DynamicFlags::empty(),
32362        )
32363    }
32364}
32365
32366#[must_use = "FIDL methods require a response to be sent"]
32367#[derive(Debug)]
32368pub struct BaseSocketGetLingerResponder {
32369    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32370    tx_id: u32,
32371}
32372
32373/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32374/// if the responder is dropped without sending a response, so that the client
32375/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32376impl std::ops::Drop for BaseSocketGetLingerResponder {
32377    fn drop(&mut self) {
32378        self.control_handle.shutdown();
32379        // Safety: drops once, never accessed again
32380        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32381    }
32382}
32383
32384impl fidl::endpoints::Responder for BaseSocketGetLingerResponder {
32385    type ControlHandle = BaseSocketControlHandle;
32386
32387    fn control_handle(&self) -> &BaseSocketControlHandle {
32388        &self.control_handle
32389    }
32390
32391    fn drop_without_shutdown(mut self) {
32392        // Safety: drops once, never accessed again due to mem::forget
32393        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32394        // Prevent Drop from running (which would shut down the channel)
32395        std::mem::forget(self);
32396    }
32397}
32398
32399impl BaseSocketGetLingerResponder {
32400    /// Sends a response to the FIDL transaction.
32401    ///
32402    /// Sets the channel to shutdown if an error occurs.
32403    pub fn send(
32404        self,
32405        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
32406    ) -> Result<(), fidl::Error> {
32407        let _result = self.send_raw(result);
32408        if _result.is_err() {
32409            self.control_handle.shutdown();
32410        }
32411        self.drop_without_shutdown();
32412        _result
32413    }
32414
32415    /// Similar to "send" but does not shutdown the channel if an error occurs.
32416    pub fn send_no_shutdown_on_err(
32417        self,
32418        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
32419    ) -> Result<(), fidl::Error> {
32420        let _result = self.send_raw(result);
32421        self.drop_without_shutdown();
32422        _result
32423    }
32424
32425    fn send_raw(
32426        &self,
32427        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
32428    ) -> Result<(), fidl::Error> {
32429        self.control_handle.inner.send::<fidl::encoding::ResultType<
32430            BaseSocketGetLingerResponse,
32431            fidl_fuchsia_posix::Errno,
32432        >>(
32433            result,
32434            self.tx_id,
32435            0x48eb20fc5ccb0e45,
32436            fidl::encoding::DynamicFlags::empty(),
32437        )
32438    }
32439}
32440
32441#[must_use = "FIDL methods require a response to be sent"]
32442#[derive(Debug)]
32443pub struct BaseSocketSetReusePortResponder {
32444    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32445    tx_id: u32,
32446}
32447
32448/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32449/// if the responder is dropped without sending a response, so that the client
32450/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32451impl std::ops::Drop for BaseSocketSetReusePortResponder {
32452    fn drop(&mut self) {
32453        self.control_handle.shutdown();
32454        // Safety: drops once, never accessed again
32455        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32456    }
32457}
32458
32459impl fidl::endpoints::Responder for BaseSocketSetReusePortResponder {
32460    type ControlHandle = BaseSocketControlHandle;
32461
32462    fn control_handle(&self) -> &BaseSocketControlHandle {
32463        &self.control_handle
32464    }
32465
32466    fn drop_without_shutdown(mut self) {
32467        // Safety: drops once, never accessed again due to mem::forget
32468        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32469        // Prevent Drop from running (which would shut down the channel)
32470        std::mem::forget(self);
32471    }
32472}
32473
32474impl BaseSocketSetReusePortResponder {
32475    /// Sends a response to the FIDL transaction.
32476    ///
32477    /// Sets the channel to shutdown if an error occurs.
32478    pub fn send(
32479        self,
32480        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32481    ) -> Result<(), fidl::Error> {
32482        let _result = self.send_raw(result);
32483        if _result.is_err() {
32484            self.control_handle.shutdown();
32485        }
32486        self.drop_without_shutdown();
32487        _result
32488    }
32489
32490    /// Similar to "send" but does not shutdown the channel if an error occurs.
32491    pub fn send_no_shutdown_on_err(
32492        self,
32493        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32494    ) -> Result<(), fidl::Error> {
32495        let _result = self.send_raw(result);
32496        self.drop_without_shutdown();
32497        _result
32498    }
32499
32500    fn send_raw(
32501        &self,
32502        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32503    ) -> Result<(), fidl::Error> {
32504        self.control_handle.inner.send::<fidl::encoding::ResultType<
32505            fidl::encoding::EmptyStruct,
32506            fidl_fuchsia_posix::Errno,
32507        >>(
32508            result,
32509            self.tx_id,
32510            0x24dd3e5cb36d9ccb,
32511            fidl::encoding::DynamicFlags::empty(),
32512        )
32513    }
32514}
32515
32516#[must_use = "FIDL methods require a response to be sent"]
32517#[derive(Debug)]
32518pub struct BaseSocketGetReusePortResponder {
32519    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32520    tx_id: u32,
32521}
32522
32523/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32524/// if the responder is dropped without sending a response, so that the client
32525/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32526impl std::ops::Drop for BaseSocketGetReusePortResponder {
32527    fn drop(&mut self) {
32528        self.control_handle.shutdown();
32529        // Safety: drops once, never accessed again
32530        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32531    }
32532}
32533
32534impl fidl::endpoints::Responder for BaseSocketGetReusePortResponder {
32535    type ControlHandle = BaseSocketControlHandle;
32536
32537    fn control_handle(&self) -> &BaseSocketControlHandle {
32538        &self.control_handle
32539    }
32540
32541    fn drop_without_shutdown(mut self) {
32542        // Safety: drops once, never accessed again due to mem::forget
32543        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32544        // Prevent Drop from running (which would shut down the channel)
32545        std::mem::forget(self);
32546    }
32547}
32548
32549impl BaseSocketGetReusePortResponder {
32550    /// Sends a response to the FIDL transaction.
32551    ///
32552    /// Sets the channel to shutdown if an error occurs.
32553    pub fn send(
32554        self,
32555        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32556    ) -> Result<(), fidl::Error> {
32557        let _result = self.send_raw(result);
32558        if _result.is_err() {
32559            self.control_handle.shutdown();
32560        }
32561        self.drop_without_shutdown();
32562        _result
32563    }
32564
32565    /// Similar to "send" but does not shutdown the channel if an error occurs.
32566    pub fn send_no_shutdown_on_err(
32567        self,
32568        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32569    ) -> Result<(), fidl::Error> {
32570        let _result = self.send_raw(result);
32571        self.drop_without_shutdown();
32572        _result
32573    }
32574
32575    fn send_raw(
32576        &self,
32577        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32578    ) -> Result<(), fidl::Error> {
32579        self.control_handle.inner.send::<fidl::encoding::ResultType<
32580            BaseSocketGetReusePortResponse,
32581            fidl_fuchsia_posix::Errno,
32582        >>(
32583            result.map(|value| (value,)),
32584            self.tx_id,
32585            0x7a112c1ab54ff828,
32586            fidl::encoding::DynamicFlags::empty(),
32587        )
32588    }
32589}
32590
32591#[must_use = "FIDL methods require a response to be sent"]
32592#[derive(Debug)]
32593pub struct BaseSocketGetAcceptConnResponder {
32594    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32595    tx_id: u32,
32596}
32597
32598/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32599/// if the responder is dropped without sending a response, so that the client
32600/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32601impl std::ops::Drop for BaseSocketGetAcceptConnResponder {
32602    fn drop(&mut self) {
32603        self.control_handle.shutdown();
32604        // Safety: drops once, never accessed again
32605        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32606    }
32607}
32608
32609impl fidl::endpoints::Responder for BaseSocketGetAcceptConnResponder {
32610    type ControlHandle = BaseSocketControlHandle;
32611
32612    fn control_handle(&self) -> &BaseSocketControlHandle {
32613        &self.control_handle
32614    }
32615
32616    fn drop_without_shutdown(mut self) {
32617        // Safety: drops once, never accessed again due to mem::forget
32618        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32619        // Prevent Drop from running (which would shut down the channel)
32620        std::mem::forget(self);
32621    }
32622}
32623
32624impl BaseSocketGetAcceptConnResponder {
32625    /// Sends a response to the FIDL transaction.
32626    ///
32627    /// Sets the channel to shutdown if an error occurs.
32628    pub fn send(
32629        self,
32630        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32631    ) -> Result<(), fidl::Error> {
32632        let _result = self.send_raw(result);
32633        if _result.is_err() {
32634            self.control_handle.shutdown();
32635        }
32636        self.drop_without_shutdown();
32637        _result
32638    }
32639
32640    /// Similar to "send" but does not shutdown the channel if an error occurs.
32641    pub fn send_no_shutdown_on_err(
32642        self,
32643        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32644    ) -> Result<(), fidl::Error> {
32645        let _result = self.send_raw(result);
32646        self.drop_without_shutdown();
32647        _result
32648    }
32649
32650    fn send_raw(
32651        &self,
32652        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32653    ) -> Result<(), fidl::Error> {
32654        self.control_handle.inner.send::<fidl::encoding::ResultType<
32655            BaseSocketGetAcceptConnResponse,
32656            fidl_fuchsia_posix::Errno,
32657        >>(
32658            result.map(|value| (value,)),
32659            self.tx_id,
32660            0x67ce6db6c2ec8966,
32661            fidl::encoding::DynamicFlags::empty(),
32662        )
32663    }
32664}
32665
32666#[must_use = "FIDL methods require a response to be sent"]
32667#[derive(Debug)]
32668pub struct BaseSocketSetBindToDeviceResponder {
32669    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32670    tx_id: u32,
32671}
32672
32673/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32674/// if the responder is dropped without sending a response, so that the client
32675/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32676impl std::ops::Drop for BaseSocketSetBindToDeviceResponder {
32677    fn drop(&mut self) {
32678        self.control_handle.shutdown();
32679        // Safety: drops once, never accessed again
32680        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32681    }
32682}
32683
32684impl fidl::endpoints::Responder for BaseSocketSetBindToDeviceResponder {
32685    type ControlHandle = BaseSocketControlHandle;
32686
32687    fn control_handle(&self) -> &BaseSocketControlHandle {
32688        &self.control_handle
32689    }
32690
32691    fn drop_without_shutdown(mut self) {
32692        // Safety: drops once, never accessed again due to mem::forget
32693        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32694        // Prevent Drop from running (which would shut down the channel)
32695        std::mem::forget(self);
32696    }
32697}
32698
32699impl BaseSocketSetBindToDeviceResponder {
32700    /// Sends a response to the FIDL transaction.
32701    ///
32702    /// Sets the channel to shutdown if an error occurs.
32703    pub fn send(
32704        self,
32705        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32706    ) -> Result<(), fidl::Error> {
32707        let _result = self.send_raw(result);
32708        if _result.is_err() {
32709            self.control_handle.shutdown();
32710        }
32711        self.drop_without_shutdown();
32712        _result
32713    }
32714
32715    /// Similar to "send" but does not shutdown the channel if an error occurs.
32716    pub fn send_no_shutdown_on_err(
32717        self,
32718        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32719    ) -> Result<(), fidl::Error> {
32720        let _result = self.send_raw(result);
32721        self.drop_without_shutdown();
32722        _result
32723    }
32724
32725    fn send_raw(
32726        &self,
32727        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32728    ) -> Result<(), fidl::Error> {
32729        self.control_handle.inner.send::<fidl::encoding::ResultType<
32730            fidl::encoding::EmptyStruct,
32731            fidl_fuchsia_posix::Errno,
32732        >>(
32733            result,
32734            self.tx_id,
32735            0x2118b483f28aafc4,
32736            fidl::encoding::DynamicFlags::empty(),
32737        )
32738    }
32739}
32740
32741#[must_use = "FIDL methods require a response to be sent"]
32742#[derive(Debug)]
32743pub struct BaseSocketGetBindToDeviceResponder {
32744    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32745    tx_id: u32,
32746}
32747
32748/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32749/// if the responder is dropped without sending a response, so that the client
32750/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32751impl std::ops::Drop for BaseSocketGetBindToDeviceResponder {
32752    fn drop(&mut self) {
32753        self.control_handle.shutdown();
32754        // Safety: drops once, never accessed again
32755        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32756    }
32757}
32758
32759impl fidl::endpoints::Responder for BaseSocketGetBindToDeviceResponder {
32760    type ControlHandle = BaseSocketControlHandle;
32761
32762    fn control_handle(&self) -> &BaseSocketControlHandle {
32763        &self.control_handle
32764    }
32765
32766    fn drop_without_shutdown(mut self) {
32767        // Safety: drops once, never accessed again due to mem::forget
32768        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32769        // Prevent Drop from running (which would shut down the channel)
32770        std::mem::forget(self);
32771    }
32772}
32773
32774impl BaseSocketGetBindToDeviceResponder {
32775    /// Sends a response to the FIDL transaction.
32776    ///
32777    /// Sets the channel to shutdown if an error occurs.
32778    pub fn send(
32779        self,
32780        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
32781    ) -> Result<(), fidl::Error> {
32782        let _result = self.send_raw(result);
32783        if _result.is_err() {
32784            self.control_handle.shutdown();
32785        }
32786        self.drop_without_shutdown();
32787        _result
32788    }
32789
32790    /// Similar to "send" but does not shutdown the channel if an error occurs.
32791    pub fn send_no_shutdown_on_err(
32792        self,
32793        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
32794    ) -> Result<(), fidl::Error> {
32795        let _result = self.send_raw(result);
32796        self.drop_without_shutdown();
32797        _result
32798    }
32799
32800    fn send_raw(
32801        &self,
32802        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
32803    ) -> Result<(), fidl::Error> {
32804        self.control_handle.inner.send::<fidl::encoding::ResultType<
32805            BaseSocketGetBindToDeviceResponse,
32806            fidl_fuchsia_posix::Errno,
32807        >>(
32808            result.map(|value| (value,)),
32809            self.tx_id,
32810            0x1ab1fbf0ef7906c8,
32811            fidl::encoding::DynamicFlags::empty(),
32812        )
32813    }
32814}
32815
32816#[must_use = "FIDL methods require a response to be sent"]
32817#[derive(Debug)]
32818pub struct BaseSocketSetBindToInterfaceIndexResponder {
32819    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32820    tx_id: u32,
32821}
32822
32823/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32824/// if the responder is dropped without sending a response, so that the client
32825/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32826impl std::ops::Drop for BaseSocketSetBindToInterfaceIndexResponder {
32827    fn drop(&mut self) {
32828        self.control_handle.shutdown();
32829        // Safety: drops once, never accessed again
32830        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32831    }
32832}
32833
32834impl fidl::endpoints::Responder for BaseSocketSetBindToInterfaceIndexResponder {
32835    type ControlHandle = BaseSocketControlHandle;
32836
32837    fn control_handle(&self) -> &BaseSocketControlHandle {
32838        &self.control_handle
32839    }
32840
32841    fn drop_without_shutdown(mut self) {
32842        // Safety: drops once, never accessed again due to mem::forget
32843        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32844        // Prevent Drop from running (which would shut down the channel)
32845        std::mem::forget(self);
32846    }
32847}
32848
32849impl BaseSocketSetBindToInterfaceIndexResponder {
32850    /// Sends a response to the FIDL transaction.
32851    ///
32852    /// Sets the channel to shutdown if an error occurs.
32853    pub fn send(
32854        self,
32855        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32856    ) -> Result<(), fidl::Error> {
32857        let _result = self.send_raw(result);
32858        if _result.is_err() {
32859            self.control_handle.shutdown();
32860        }
32861        self.drop_without_shutdown();
32862        _result
32863    }
32864
32865    /// Similar to "send" but does not shutdown the channel if an error occurs.
32866    pub fn send_no_shutdown_on_err(
32867        self,
32868        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32869    ) -> Result<(), fidl::Error> {
32870        let _result = self.send_raw(result);
32871        self.drop_without_shutdown();
32872        _result
32873    }
32874
32875    fn send_raw(
32876        &self,
32877        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32878    ) -> Result<(), fidl::Error> {
32879        self.control_handle.inner.send::<fidl::encoding::ResultType<
32880            fidl::encoding::EmptyStruct,
32881            fidl_fuchsia_posix::Errno,
32882        >>(
32883            result,
32884            self.tx_id,
32885            0x6e387a0def00821,
32886            fidl::encoding::DynamicFlags::empty(),
32887        )
32888    }
32889}
32890
32891#[must_use = "FIDL methods require a response to be sent"]
32892#[derive(Debug)]
32893pub struct BaseSocketGetBindToInterfaceIndexResponder {
32894    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32895    tx_id: u32,
32896}
32897
32898/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32899/// if the responder is dropped without sending a response, so that the client
32900/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32901impl std::ops::Drop for BaseSocketGetBindToInterfaceIndexResponder {
32902    fn drop(&mut self) {
32903        self.control_handle.shutdown();
32904        // Safety: drops once, never accessed again
32905        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32906    }
32907}
32908
32909impl fidl::endpoints::Responder for BaseSocketGetBindToInterfaceIndexResponder {
32910    type ControlHandle = BaseSocketControlHandle;
32911
32912    fn control_handle(&self) -> &BaseSocketControlHandle {
32913        &self.control_handle
32914    }
32915
32916    fn drop_without_shutdown(mut self) {
32917        // Safety: drops once, never accessed again due to mem::forget
32918        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32919        // Prevent Drop from running (which would shut down the channel)
32920        std::mem::forget(self);
32921    }
32922}
32923
32924impl BaseSocketGetBindToInterfaceIndexResponder {
32925    /// Sends a response to the FIDL transaction.
32926    ///
32927    /// Sets the channel to shutdown if an error occurs.
32928    pub fn send(
32929        self,
32930        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
32931    ) -> Result<(), fidl::Error> {
32932        let _result = self.send_raw(result);
32933        if _result.is_err() {
32934            self.control_handle.shutdown();
32935        }
32936        self.drop_without_shutdown();
32937        _result
32938    }
32939
32940    /// Similar to "send" but does not shutdown the channel if an error occurs.
32941    pub fn send_no_shutdown_on_err(
32942        self,
32943        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
32944    ) -> Result<(), fidl::Error> {
32945        let _result = self.send_raw(result);
32946        self.drop_without_shutdown();
32947        _result
32948    }
32949
32950    fn send_raw(
32951        &self,
32952        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
32953    ) -> Result<(), fidl::Error> {
32954        self.control_handle.inner.send::<fidl::encoding::ResultType<
32955            BaseSocketGetBindToInterfaceIndexResponse,
32956            fidl_fuchsia_posix::Errno,
32957        >>(
32958            result.map(|value| (value,)),
32959            self.tx_id,
32960            0x59c31dd3e3078295,
32961            fidl::encoding::DynamicFlags::empty(),
32962        )
32963    }
32964}
32965
32966#[must_use = "FIDL methods require a response to be sent"]
32967#[derive(Debug)]
32968pub struct BaseSocketSetTimestampResponder {
32969    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32970    tx_id: u32,
32971}
32972
32973/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32974/// if the responder is dropped without sending a response, so that the client
32975/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32976impl std::ops::Drop for BaseSocketSetTimestampResponder {
32977    fn drop(&mut self) {
32978        self.control_handle.shutdown();
32979        // Safety: drops once, never accessed again
32980        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32981    }
32982}
32983
32984impl fidl::endpoints::Responder for BaseSocketSetTimestampResponder {
32985    type ControlHandle = BaseSocketControlHandle;
32986
32987    fn control_handle(&self) -> &BaseSocketControlHandle {
32988        &self.control_handle
32989    }
32990
32991    fn drop_without_shutdown(mut self) {
32992        // Safety: drops once, never accessed again due to mem::forget
32993        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32994        // Prevent Drop from running (which would shut down the channel)
32995        std::mem::forget(self);
32996    }
32997}
32998
32999impl BaseSocketSetTimestampResponder {
33000    /// Sends a response to the FIDL transaction.
33001    ///
33002    /// Sets the channel to shutdown if an error occurs.
33003    pub fn send(
33004        self,
33005        mut result: Result<(), fidl_fuchsia_posix::Errno>,
33006    ) -> Result<(), fidl::Error> {
33007        let _result = self.send_raw(result);
33008        if _result.is_err() {
33009            self.control_handle.shutdown();
33010        }
33011        self.drop_without_shutdown();
33012        _result
33013    }
33014
33015    /// Similar to "send" but does not shutdown the channel if an error occurs.
33016    pub fn send_no_shutdown_on_err(
33017        self,
33018        mut result: Result<(), fidl_fuchsia_posix::Errno>,
33019    ) -> Result<(), fidl::Error> {
33020        let _result = self.send_raw(result);
33021        self.drop_without_shutdown();
33022        _result
33023    }
33024
33025    fn send_raw(
33026        &self,
33027        mut result: Result<(), fidl_fuchsia_posix::Errno>,
33028    ) -> Result<(), fidl::Error> {
33029        self.control_handle.inner.send::<fidl::encoding::ResultType<
33030            fidl::encoding::EmptyStruct,
33031            fidl_fuchsia_posix::Errno,
33032        >>(
33033            result,
33034            self.tx_id,
33035            0x285d6516c263d839,
33036            fidl::encoding::DynamicFlags::empty(),
33037        )
33038    }
33039}
33040
33041#[must_use = "FIDL methods require a response to be sent"]
33042#[derive(Debug)]
33043pub struct BaseSocketGetTimestampResponder {
33044    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
33045    tx_id: u32,
33046}
33047
33048/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
33049/// if the responder is dropped without sending a response, so that the client
33050/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
33051impl std::ops::Drop for BaseSocketGetTimestampResponder {
33052    fn drop(&mut self) {
33053        self.control_handle.shutdown();
33054        // Safety: drops once, never accessed again
33055        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33056    }
33057}
33058
33059impl fidl::endpoints::Responder for BaseSocketGetTimestampResponder {
33060    type ControlHandle = BaseSocketControlHandle;
33061
33062    fn control_handle(&self) -> &BaseSocketControlHandle {
33063        &self.control_handle
33064    }
33065
33066    fn drop_without_shutdown(mut self) {
33067        // Safety: drops once, never accessed again due to mem::forget
33068        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33069        // Prevent Drop from running (which would shut down the channel)
33070        std::mem::forget(self);
33071    }
33072}
33073
33074impl BaseSocketGetTimestampResponder {
33075    /// Sends a response to the FIDL transaction.
33076    ///
33077    /// Sets the channel to shutdown if an error occurs.
33078    pub fn send(
33079        self,
33080        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
33081    ) -> Result<(), fidl::Error> {
33082        let _result = self.send_raw(result);
33083        if _result.is_err() {
33084            self.control_handle.shutdown();
33085        }
33086        self.drop_without_shutdown();
33087        _result
33088    }
33089
33090    /// Similar to "send" but does not shutdown the channel if an error occurs.
33091    pub fn send_no_shutdown_on_err(
33092        self,
33093        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
33094    ) -> Result<(), fidl::Error> {
33095        let _result = self.send_raw(result);
33096        self.drop_without_shutdown();
33097        _result
33098    }
33099
33100    fn send_raw(
33101        &self,
33102        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
33103    ) -> Result<(), fidl::Error> {
33104        self.control_handle.inner.send::<fidl::encoding::ResultType<
33105            BaseSocketGetTimestampResponse,
33106            fidl_fuchsia_posix::Errno,
33107        >>(
33108            result.map(|value| (value,)),
33109            self.tx_id,
33110            0x49f2fffbbcc2bd27,
33111            fidl::encoding::DynamicFlags::empty(),
33112        )
33113    }
33114}
33115
33116#[must_use = "FIDL methods require a response to be sent"]
33117#[derive(Debug)]
33118pub struct BaseSocketSetMarkResponder {
33119    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
33120    tx_id: u32,
33121}
33122
33123/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
33124/// if the responder is dropped without sending a response, so that the client
33125/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
33126impl std::ops::Drop for BaseSocketSetMarkResponder {
33127    fn drop(&mut self) {
33128        self.control_handle.shutdown();
33129        // Safety: drops once, never accessed again
33130        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33131    }
33132}
33133
33134impl fidl::endpoints::Responder for BaseSocketSetMarkResponder {
33135    type ControlHandle = BaseSocketControlHandle;
33136
33137    fn control_handle(&self) -> &BaseSocketControlHandle {
33138        &self.control_handle
33139    }
33140
33141    fn drop_without_shutdown(mut self) {
33142        // Safety: drops once, never accessed again due to mem::forget
33143        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33144        // Prevent Drop from running (which would shut down the channel)
33145        std::mem::forget(self);
33146    }
33147}
33148
33149impl BaseSocketSetMarkResponder {
33150    /// Sends a response to the FIDL transaction.
33151    ///
33152    /// Sets the channel to shutdown if an error occurs.
33153    pub fn send(
33154        self,
33155        mut result: Result<(), fidl_fuchsia_posix::Errno>,
33156    ) -> Result<(), fidl::Error> {
33157        let _result = self.send_raw(result);
33158        if _result.is_err() {
33159            self.control_handle.shutdown();
33160        }
33161        self.drop_without_shutdown();
33162        _result
33163    }
33164
33165    /// Similar to "send" but does not shutdown the channel if an error occurs.
33166    pub fn send_no_shutdown_on_err(
33167        self,
33168        mut result: Result<(), fidl_fuchsia_posix::Errno>,
33169    ) -> Result<(), fidl::Error> {
33170        let _result = self.send_raw(result);
33171        self.drop_without_shutdown();
33172        _result
33173    }
33174
33175    fn send_raw(
33176        &self,
33177        mut result: Result<(), fidl_fuchsia_posix::Errno>,
33178    ) -> Result<(), fidl::Error> {
33179        self.control_handle.inner.send::<fidl::encoding::ResultType<
33180            fidl::encoding::EmptyStruct,
33181            fidl_fuchsia_posix::Errno,
33182        >>(
33183            result,
33184            self.tx_id,
33185            0x6ead6de09f653236,
33186            fidl::encoding::DynamicFlags::empty(),
33187        )
33188    }
33189}
33190
33191#[must_use = "FIDL methods require a response to be sent"]
33192#[derive(Debug)]
33193pub struct BaseSocketGetMarkResponder {
33194    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
33195    tx_id: u32,
33196}
33197
33198/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
33199/// if the responder is dropped without sending a response, so that the client
33200/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
33201impl std::ops::Drop for BaseSocketGetMarkResponder {
33202    fn drop(&mut self) {
33203        self.control_handle.shutdown();
33204        // Safety: drops once, never accessed again
33205        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33206    }
33207}
33208
33209impl fidl::endpoints::Responder for BaseSocketGetMarkResponder {
33210    type ControlHandle = BaseSocketControlHandle;
33211
33212    fn control_handle(&self) -> &BaseSocketControlHandle {
33213        &self.control_handle
33214    }
33215
33216    fn drop_without_shutdown(mut self) {
33217        // Safety: drops once, never accessed again due to mem::forget
33218        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33219        // Prevent Drop from running (which would shut down the channel)
33220        std::mem::forget(self);
33221    }
33222}
33223
33224impl BaseSocketGetMarkResponder {
33225    /// Sends a response to the FIDL transaction.
33226    ///
33227    /// Sets the channel to shutdown if an error occurs.
33228    pub fn send(
33229        self,
33230        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
33231    ) -> Result<(), fidl::Error> {
33232        let _result = self.send_raw(result);
33233        if _result.is_err() {
33234            self.control_handle.shutdown();
33235        }
33236        self.drop_without_shutdown();
33237        _result
33238    }
33239
33240    /// Similar to "send" but does not shutdown the channel if an error occurs.
33241    pub fn send_no_shutdown_on_err(
33242        self,
33243        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
33244    ) -> Result<(), fidl::Error> {
33245        let _result = self.send_raw(result);
33246        self.drop_without_shutdown();
33247        _result
33248    }
33249
33250    fn send_raw(
33251        &self,
33252        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
33253    ) -> Result<(), fidl::Error> {
33254        self.control_handle.inner.send::<fidl::encoding::ResultType<
33255            BaseSocketGetMarkResponse,
33256            fidl_fuchsia_posix::Errno,
33257        >>(
33258            result.map(|mark| (mark,)),
33259            self.tx_id,
33260            0x57a2752c61d93d47,
33261            fidl::encoding::DynamicFlags::empty(),
33262        )
33263    }
33264}
33265
33266#[must_use = "FIDL methods require a response to be sent"]
33267#[derive(Debug)]
33268pub struct BaseSocketGetCookieResponder {
33269    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
33270    tx_id: u32,
33271}
33272
33273/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
33274/// if the responder is dropped without sending a response, so that the client
33275/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
33276impl std::ops::Drop for BaseSocketGetCookieResponder {
33277    fn drop(&mut self) {
33278        self.control_handle.shutdown();
33279        // Safety: drops once, never accessed again
33280        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33281    }
33282}
33283
33284impl fidl::endpoints::Responder for BaseSocketGetCookieResponder {
33285    type ControlHandle = BaseSocketControlHandle;
33286
33287    fn control_handle(&self) -> &BaseSocketControlHandle {
33288        &self.control_handle
33289    }
33290
33291    fn drop_without_shutdown(mut self) {
33292        // Safety: drops once, never accessed again due to mem::forget
33293        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33294        // Prevent Drop from running (which would shut down the channel)
33295        std::mem::forget(self);
33296    }
33297}
33298
33299impl BaseSocketGetCookieResponder {
33300    /// Sends a response to the FIDL transaction.
33301    ///
33302    /// Sets the channel to shutdown if an error occurs.
33303    pub fn send(
33304        self,
33305        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
33306    ) -> Result<(), fidl::Error> {
33307        let _result = self.send_raw(result);
33308        if _result.is_err() {
33309            self.control_handle.shutdown();
33310        }
33311        self.drop_without_shutdown();
33312        _result
33313    }
33314
33315    /// Similar to "send" but does not shutdown the channel if an error occurs.
33316    pub fn send_no_shutdown_on_err(
33317        self,
33318        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
33319    ) -> Result<(), fidl::Error> {
33320        let _result = self.send_raw(result);
33321        self.drop_without_shutdown();
33322        _result
33323    }
33324
33325    fn send_raw(
33326        &self,
33327        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
33328    ) -> Result<(), fidl::Error> {
33329        self.control_handle.inner.send::<fidl::encoding::ResultType<
33330            BaseSocketGetCookieResponse,
33331            fidl_fuchsia_posix::Errno,
33332        >>(
33333            result.map(|value| (value,)),
33334            self.tx_id,
33335            0x2c2f47fd8f924e52,
33336            fidl::encoding::DynamicFlags::empty(),
33337        )
33338    }
33339}
33340
33341#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
33342pub struct DatagramSocketMarker;
33343
33344impl fidl::endpoints::ProtocolMarker for DatagramSocketMarker {
33345    type Proxy = DatagramSocketProxy;
33346    type RequestStream = DatagramSocketRequestStream;
33347    #[cfg(target_os = "fuchsia")]
33348    type SynchronousProxy = DatagramSocketSynchronousProxy;
33349
33350    const DEBUG_NAME: &'static str = "fuchsia.posix.socket.DatagramSocket";
33351}
33352impl fidl::endpoints::DiscoverableProtocolMarker for DatagramSocketMarker {}
33353pub type DatagramSocketSendMsgPreflightResult =
33354    Result<DatagramSocketSendMsgPreflightResponse, fidl_fuchsia_posix::Errno>;
33355pub type DatagramSocketRecvMsgPostflightResult =
33356    Result<DatagramSocketRecvMsgPostflightResponse, fidl_fuchsia_posix::Errno>;
33357
33358pub trait DatagramSocketProxyInterface: Send + Sync {
33359    fn r#clone(
33360        &self,
33361        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
33362    ) -> Result<(), fidl::Error>;
33363    type CloseResponseFut: std::future::Future<
33364            Output = Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error>,
33365        > + Send;
33366    fn r#close(&self) -> Self::CloseResponseFut;
33367    type QueryResponseFut: std::future::Future<Output = Result<Vec<u8>, fidl::Error>> + Send;
33368    fn r#query(&self) -> Self::QueryResponseFut;
33369    type SetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketSetReuseAddressResult, fidl::Error>>
33370        + Send;
33371    fn r#set_reuse_address(&self, value: bool) -> Self::SetReuseAddressResponseFut;
33372    type GetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketGetReuseAddressResult, fidl::Error>>
33373        + Send;
33374    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut;
33375    type GetErrorResponseFut: std::future::Future<Output = Result<BaseSocketGetErrorResult, fidl::Error>>
33376        + Send;
33377    fn r#get_error(&self) -> Self::GetErrorResponseFut;
33378    type SetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketSetBroadcastResult, fidl::Error>>
33379        + Send;
33380    fn r#set_broadcast(&self, value: bool) -> Self::SetBroadcastResponseFut;
33381    type GetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketGetBroadcastResult, fidl::Error>>
33382        + Send;
33383    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut;
33384    type SetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetSendBufferResult, fidl::Error>>
33385        + Send;
33386    fn r#set_send_buffer(&self, value_bytes: u64) -> Self::SetSendBufferResponseFut;
33387    type GetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetSendBufferResult, fidl::Error>>
33388        + Send;
33389    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut;
33390    type SetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetReceiveBufferResult, fidl::Error>>
33391        + Send;
33392    fn r#set_receive_buffer(&self, value_bytes: u64) -> Self::SetReceiveBufferResponseFut;
33393    type GetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetReceiveBufferResult, fidl::Error>>
33394        + Send;
33395    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut;
33396    type SetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketSetKeepAliveResult, fidl::Error>>
33397        + Send;
33398    fn r#set_keep_alive(&self, value: bool) -> Self::SetKeepAliveResponseFut;
33399    type GetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketGetKeepAliveResult, fidl::Error>>
33400        + Send;
33401    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut;
33402    type SetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketSetOutOfBandInlineResult, fidl::Error>>
33403        + Send;
33404    fn r#set_out_of_band_inline(&self, value: bool) -> Self::SetOutOfBandInlineResponseFut;
33405    type GetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketGetOutOfBandInlineResult, fidl::Error>>
33406        + Send;
33407    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut;
33408    type SetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketSetNoCheckResult, fidl::Error>>
33409        + Send;
33410    fn r#set_no_check(&self, value: bool) -> Self::SetNoCheckResponseFut;
33411    type GetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketGetNoCheckResult, fidl::Error>>
33412        + Send;
33413    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut;
33414    type SetLingerResponseFut: std::future::Future<Output = Result<BaseSocketSetLingerResult, fidl::Error>>
33415        + Send;
33416    fn r#set_linger(&self, linger: bool, length_secs: u32) -> Self::SetLingerResponseFut;
33417    type GetLingerResponseFut: std::future::Future<Output = Result<BaseSocketGetLingerResult, fidl::Error>>
33418        + Send;
33419    fn r#get_linger(&self) -> Self::GetLingerResponseFut;
33420    type SetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketSetReusePortResult, fidl::Error>>
33421        + Send;
33422    fn r#set_reuse_port(&self, value: bool) -> Self::SetReusePortResponseFut;
33423    type GetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketGetReusePortResult, fidl::Error>>
33424        + Send;
33425    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut;
33426    type GetAcceptConnResponseFut: std::future::Future<Output = Result<BaseSocketGetAcceptConnResult, fidl::Error>>
33427        + Send;
33428    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut;
33429    type SetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToDeviceResult, fidl::Error>>
33430        + Send;
33431    fn r#set_bind_to_device(&self, value: &str) -> Self::SetBindToDeviceResponseFut;
33432    type GetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToDeviceResult, fidl::Error>>
33433        + Send;
33434    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut;
33435    type SetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error>>
33436        + Send;
33437    fn r#set_bind_to_interface_index(&self, value: u64)
33438        -> Self::SetBindToInterfaceIndexResponseFut;
33439    type GetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error>>
33440        + Send;
33441    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut;
33442    type SetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketSetTimestampResult, fidl::Error>>
33443        + Send;
33444    fn r#set_timestamp(&self, value: TimestampOption) -> Self::SetTimestampResponseFut;
33445    type GetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketGetTimestampResult, fidl::Error>>
33446        + Send;
33447    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut;
33448    type SetMarkResponseFut: std::future::Future<Output = Result<BaseSocketSetMarkResult, fidl::Error>>
33449        + Send;
33450    fn r#set_mark(
33451        &self,
33452        domain: fidl_fuchsia_net::MarkDomain,
33453        mark: &OptionalUint32,
33454    ) -> Self::SetMarkResponseFut;
33455    type GetMarkResponseFut: std::future::Future<Output = Result<BaseSocketGetMarkResult, fidl::Error>>
33456        + Send;
33457    fn r#get_mark(&self, domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut;
33458    type GetCookieResponseFut: std::future::Future<Output = Result<BaseSocketGetCookieResult, fidl::Error>>
33459        + Send;
33460    fn r#get_cookie(&self) -> Self::GetCookieResponseFut;
33461    type BindResponseFut: std::future::Future<Output = Result<BaseNetworkSocketBindResult, fidl::Error>>
33462        + Send;
33463    fn r#bind(&self, addr: &fidl_fuchsia_net::SocketAddress) -> Self::BindResponseFut;
33464    type ConnectResponseFut: std::future::Future<Output = Result<BaseNetworkSocketConnectResult, fidl::Error>>
33465        + Send;
33466    fn r#connect(&self, addr: &fidl_fuchsia_net::SocketAddress) -> Self::ConnectResponseFut;
33467    type DisconnectResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDisconnectResult, fidl::Error>>
33468        + Send;
33469    fn r#disconnect(&self) -> Self::DisconnectResponseFut;
33470    type GetSockNameResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetSockNameResult, fidl::Error>>
33471        + Send;
33472    fn r#get_sock_name(&self) -> Self::GetSockNameResponseFut;
33473    type GetPeerNameResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetPeerNameResult, fidl::Error>>
33474        + Send;
33475    fn r#get_peer_name(&self) -> Self::GetPeerNameResponseFut;
33476    type ShutdownResponseFut: std::future::Future<Output = Result<BaseNetworkSocketShutdownResult, fidl::Error>>
33477        + Send;
33478    fn r#shutdown(&self, mode: ShutdownMode) -> Self::ShutdownResponseFut;
33479    type SetIpTypeOfServiceResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error>>
33480        + Send;
33481    fn r#set_ip_type_of_service(&self, value: u8) -> Self::SetIpTypeOfServiceResponseFut;
33482    type GetIpTypeOfServiceResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error>>
33483        + Send;
33484    fn r#get_ip_type_of_service(&self) -> Self::GetIpTypeOfServiceResponseFut;
33485    type SetIpTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTtlResult, fidl::Error>>
33486        + Send;
33487    fn r#set_ip_ttl(&self, value: &OptionalUint8) -> Self::SetIpTtlResponseFut;
33488    type GetIpTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTtlResult, fidl::Error>>
33489        + Send;
33490    fn r#get_ip_ttl(&self) -> Self::GetIpTtlResponseFut;
33491    type SetIpPacketInfoResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error>>
33492        + Send;
33493    fn r#set_ip_packet_info(&self, value: bool) -> Self::SetIpPacketInfoResponseFut;
33494    type GetIpPacketInfoResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error>>
33495        + Send;
33496    fn r#get_ip_packet_info(&self) -> Self::GetIpPacketInfoResponseFut;
33497    type SetIpReceiveTypeOfServiceResponseFut: std::future::Future<
33498            Output = Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error>,
33499        > + Send;
33500    fn r#set_ip_receive_type_of_service(
33501        &self,
33502        value: bool,
33503    ) -> Self::SetIpReceiveTypeOfServiceResponseFut;
33504    type GetIpReceiveTypeOfServiceResponseFut: std::future::Future<
33505            Output = Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error>,
33506        > + Send;
33507    fn r#get_ip_receive_type_of_service(&self) -> Self::GetIpReceiveTypeOfServiceResponseFut;
33508    type SetIpReceiveTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error>>
33509        + Send;
33510    fn r#set_ip_receive_ttl(&self, value: bool) -> Self::SetIpReceiveTtlResponseFut;
33511    type GetIpReceiveTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error>>
33512        + Send;
33513    fn r#get_ip_receive_ttl(&self) -> Self::GetIpReceiveTtlResponseFut;
33514    type SetIpMulticastInterfaceResponseFut: std::future::Future<
33515            Output = Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error>,
33516        > + Send;
33517    fn r#set_ip_multicast_interface(
33518        &self,
33519        iface: u64,
33520        address: &fidl_fuchsia_net::Ipv4Address,
33521    ) -> Self::SetIpMulticastInterfaceResponseFut;
33522    type GetIpMulticastInterfaceResponseFut: std::future::Future<
33523            Output = Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error>,
33524        > + Send;
33525    fn r#get_ip_multicast_interface(&self) -> Self::GetIpMulticastInterfaceResponseFut;
33526    type SetIpMulticastTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error>>
33527        + Send;
33528    fn r#set_ip_multicast_ttl(&self, value: &OptionalUint8) -> Self::SetIpMulticastTtlResponseFut;
33529    type GetIpMulticastTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error>>
33530        + Send;
33531    fn r#get_ip_multicast_ttl(&self) -> Self::GetIpMulticastTtlResponseFut;
33532    type SetIpMulticastLoopbackResponseFut: std::future::Future<
33533            Output = Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error>,
33534        > + Send;
33535    fn r#set_ip_multicast_loopback(&self, value: bool) -> Self::SetIpMulticastLoopbackResponseFut;
33536    type GetIpMulticastLoopbackResponseFut: std::future::Future<
33537            Output = Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error>,
33538        > + Send;
33539    fn r#get_ip_multicast_loopback(&self) -> Self::GetIpMulticastLoopbackResponseFut;
33540    type AddIpMembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error>>
33541        + Send;
33542    fn r#add_ip_membership(
33543        &self,
33544        membership: &IpMulticastMembership,
33545    ) -> Self::AddIpMembershipResponseFut;
33546    type DropIpMembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error>>
33547        + Send;
33548    fn r#drop_ip_membership(
33549        &self,
33550        membership: &IpMulticastMembership,
33551    ) -> Self::DropIpMembershipResponseFut;
33552    type SetIpTransparentResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error>>
33553        + Send;
33554    fn r#set_ip_transparent(&self, value: bool) -> Self::SetIpTransparentResponseFut;
33555    type GetIpTransparentResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error>>
33556        + Send;
33557    fn r#get_ip_transparent(&self) -> Self::GetIpTransparentResponseFut;
33558    type SetIpReceiveOriginalDestinationAddressResponseFut: std::future::Future<
33559            Output = Result<
33560                BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
33561                fidl::Error,
33562            >,
33563        > + Send;
33564    fn r#set_ip_receive_original_destination_address(
33565        &self,
33566        value: bool,
33567    ) -> Self::SetIpReceiveOriginalDestinationAddressResponseFut;
33568    type GetIpReceiveOriginalDestinationAddressResponseFut: std::future::Future<
33569            Output = Result<
33570                BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
33571                fidl::Error,
33572            >,
33573        > + Send;
33574    fn r#get_ip_receive_original_destination_address(
33575        &self,
33576    ) -> Self::GetIpReceiveOriginalDestinationAddressResponseFut;
33577    type AddIpv6MembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error>>
33578        + Send;
33579    fn r#add_ipv6_membership(
33580        &self,
33581        membership: &Ipv6MulticastMembership,
33582    ) -> Self::AddIpv6MembershipResponseFut;
33583    type DropIpv6MembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error>>
33584        + Send;
33585    fn r#drop_ipv6_membership(
33586        &self,
33587        membership: &Ipv6MulticastMembership,
33588    ) -> Self::DropIpv6MembershipResponseFut;
33589    type SetIpv6MulticastInterfaceResponseFut: std::future::Future<
33590            Output = Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error>,
33591        > + Send;
33592    fn r#set_ipv6_multicast_interface(
33593        &self,
33594        value: u64,
33595    ) -> Self::SetIpv6MulticastInterfaceResponseFut;
33596    type GetIpv6MulticastInterfaceResponseFut: std::future::Future<
33597            Output = Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error>,
33598        > + Send;
33599    fn r#get_ipv6_multicast_interface(&self) -> Self::GetIpv6MulticastInterfaceResponseFut;
33600    type SetIpv6UnicastHopsResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error>>
33601        + Send;
33602    fn r#set_ipv6_unicast_hops(&self, value: &OptionalUint8)
33603        -> Self::SetIpv6UnicastHopsResponseFut;
33604    type GetIpv6UnicastHopsResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error>>
33605        + Send;
33606    fn r#get_ipv6_unicast_hops(&self) -> Self::GetIpv6UnicastHopsResponseFut;
33607    type SetIpv6ReceiveHopLimitResponseFut: std::future::Future<
33608            Output = Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error>,
33609        > + Send;
33610    fn r#set_ipv6_receive_hop_limit(&self, value: bool) -> Self::SetIpv6ReceiveHopLimitResponseFut;
33611    type GetIpv6ReceiveHopLimitResponseFut: std::future::Future<
33612            Output = Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error>,
33613        > + Send;
33614    fn r#get_ipv6_receive_hop_limit(&self) -> Self::GetIpv6ReceiveHopLimitResponseFut;
33615    type SetIpv6MulticastHopsResponseFut: std::future::Future<
33616            Output = Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error>,
33617        > + Send;
33618    fn r#set_ipv6_multicast_hops(
33619        &self,
33620        value: &OptionalUint8,
33621    ) -> Self::SetIpv6MulticastHopsResponseFut;
33622    type GetIpv6MulticastHopsResponseFut: std::future::Future<
33623            Output = Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error>,
33624        > + Send;
33625    fn r#get_ipv6_multicast_hops(&self) -> Self::GetIpv6MulticastHopsResponseFut;
33626    type SetIpv6MulticastLoopbackResponseFut: std::future::Future<
33627            Output = Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error>,
33628        > + Send;
33629    fn r#set_ipv6_multicast_loopback(
33630        &self,
33631        value: bool,
33632    ) -> Self::SetIpv6MulticastLoopbackResponseFut;
33633    type GetIpv6MulticastLoopbackResponseFut: std::future::Future<
33634            Output = Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error>,
33635        > + Send;
33636    fn r#get_ipv6_multicast_loopback(&self) -> Self::GetIpv6MulticastLoopbackResponseFut;
33637    type SetIpv6OnlyResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error>>
33638        + Send;
33639    fn r#set_ipv6_only(&self, value: bool) -> Self::SetIpv6OnlyResponseFut;
33640    type GetIpv6OnlyResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error>>
33641        + Send;
33642    fn r#get_ipv6_only(&self) -> Self::GetIpv6OnlyResponseFut;
33643    type SetIpv6ReceiveTrafficClassResponseFut: std::future::Future<
33644            Output = Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error>,
33645        > + Send;
33646    fn r#set_ipv6_receive_traffic_class(
33647        &self,
33648        value: bool,
33649    ) -> Self::SetIpv6ReceiveTrafficClassResponseFut;
33650    type GetIpv6ReceiveTrafficClassResponseFut: std::future::Future<
33651            Output = Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error>,
33652        > + Send;
33653    fn r#get_ipv6_receive_traffic_class(&self) -> Self::GetIpv6ReceiveTrafficClassResponseFut;
33654    type SetIpv6TrafficClassResponseFut: std::future::Future<
33655            Output = Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error>,
33656        > + Send;
33657    fn r#set_ipv6_traffic_class(
33658        &self,
33659        value: &OptionalUint8,
33660    ) -> Self::SetIpv6TrafficClassResponseFut;
33661    type GetIpv6TrafficClassResponseFut: std::future::Future<
33662            Output = Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error>,
33663        > + Send;
33664    fn r#get_ipv6_traffic_class(&self) -> Self::GetIpv6TrafficClassResponseFut;
33665    type SetIpv6ReceivePacketInfoResponseFut: std::future::Future<
33666            Output = Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error>,
33667        > + Send;
33668    fn r#set_ipv6_receive_packet_info(
33669        &self,
33670        value: bool,
33671    ) -> Self::SetIpv6ReceivePacketInfoResponseFut;
33672    type GetIpv6ReceivePacketInfoResponseFut: std::future::Future<
33673            Output = Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error>,
33674        > + Send;
33675    fn r#get_ipv6_receive_packet_info(&self) -> Self::GetIpv6ReceivePacketInfoResponseFut;
33676    type GetOriginalDestinationResponseFut: std::future::Future<
33677            Output = Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error>,
33678        > + Send;
33679    fn r#get_original_destination(&self) -> Self::GetOriginalDestinationResponseFut;
33680    type GetInfoResponseFut: std::future::Future<Output = Result<BaseDatagramSocketGetInfoResult, fidl::Error>>
33681        + Send;
33682    fn r#get_info(&self) -> Self::GetInfoResponseFut;
33683    type DescribeResponseFut: std::future::Future<Output = Result<DatagramSocketDescribeResponse, fidl::Error>>
33684        + Send;
33685    fn r#describe(&self) -> Self::DescribeResponseFut;
33686    type SendMsgPreflightResponseFut: std::future::Future<Output = Result<DatagramSocketSendMsgPreflightResult, fidl::Error>>
33687        + Send;
33688    fn r#send_msg_preflight(
33689        &self,
33690        payload: &DatagramSocketSendMsgPreflightRequest,
33691    ) -> Self::SendMsgPreflightResponseFut;
33692    type RecvMsgPostflightResponseFut: std::future::Future<Output = Result<DatagramSocketRecvMsgPostflightResult, fidl::Error>>
33693        + Send;
33694    fn r#recv_msg_postflight(&self) -> Self::RecvMsgPostflightResponseFut;
33695}
33696#[derive(Debug)]
33697#[cfg(target_os = "fuchsia")]
33698pub struct DatagramSocketSynchronousProxy {
33699    client: fidl::client::sync::Client,
33700}
33701
33702#[cfg(target_os = "fuchsia")]
33703impl fidl::endpoints::SynchronousProxy for DatagramSocketSynchronousProxy {
33704    type Proxy = DatagramSocketProxy;
33705    type Protocol = DatagramSocketMarker;
33706
33707    fn from_channel(inner: fidl::Channel) -> Self {
33708        Self::new(inner)
33709    }
33710
33711    fn into_channel(self) -> fidl::Channel {
33712        self.client.into_channel()
33713    }
33714
33715    fn as_channel(&self) -> &fidl::Channel {
33716        self.client.as_channel()
33717    }
33718}
33719
33720#[cfg(target_os = "fuchsia")]
33721impl DatagramSocketSynchronousProxy {
33722    pub fn new(channel: fidl::Channel) -> Self {
33723        let protocol_name = <DatagramSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
33724        Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
33725    }
33726
33727    pub fn into_channel(self) -> fidl::Channel {
33728        self.client.into_channel()
33729    }
33730
33731    /// Waits until an event arrives and returns it. It is safe for other
33732    /// threads to make concurrent requests while waiting for an event.
33733    pub fn wait_for_event(
33734        &self,
33735        deadline: zx::MonotonicInstant,
33736    ) -> Result<DatagramSocketEvent, fidl::Error> {
33737        DatagramSocketEvent::decode(self.client.wait_for_event(deadline)?)
33738    }
33739
33740    pub fn r#clone(
33741        &self,
33742        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
33743    ) -> Result<(), fidl::Error> {
33744        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
33745            (request,),
33746            0x20d8a7aba2168a79,
33747            fidl::encoding::DynamicFlags::empty(),
33748        )
33749    }
33750
33751    /// Terminates the connection.
33752    ///
33753    /// After calling `Close`, the client must not send any other requests.
33754    ///
33755    /// Servers, after sending the status response, should close the connection
33756    /// regardless of status and without sending an epitaph.
33757    ///
33758    /// Closing the client end of the channel should be semantically equivalent
33759    /// to calling `Close` without knowing when the close has completed or its
33760    /// status.
33761    pub fn r#close(
33762        &self,
33763        ___deadline: zx::MonotonicInstant,
33764    ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
33765        let _response = self.client.send_query::<
33766            fidl::encoding::EmptyPayload,
33767            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
33768        >(
33769            (),
33770            0x5ac5d459ad7f657e,
33771            fidl::encoding::DynamicFlags::empty(),
33772            ___deadline,
33773        )?;
33774        Ok(_response.map(|x| x))
33775    }
33776
33777    pub fn r#query(&self, ___deadline: zx::MonotonicInstant) -> Result<Vec<u8>, fidl::Error> {
33778        let _response = self.client.send_query::<
33779            fidl::encoding::EmptyPayload,
33780            fidl_fuchsia_unknown::QueryableQueryResponse,
33781        >(
33782            (),
33783            0x2658edee9decfc06,
33784            fidl::encoding::DynamicFlags::empty(),
33785            ___deadline,
33786        )?;
33787        Ok(_response.protocol)
33788    }
33789
33790    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
33791    pub fn r#set_reuse_address(
33792        &self,
33793        mut value: bool,
33794        ___deadline: zx::MonotonicInstant,
33795    ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
33796        let _response =
33797            self.client.send_query::<BaseSocketSetReuseAddressRequest, fidl::encoding::ResultType<
33798                fidl::encoding::EmptyStruct,
33799                fidl_fuchsia_posix::Errno,
33800            >>(
33801                (value,),
33802                0x1fd74ee8b9a4a876,
33803                fidl::encoding::DynamicFlags::empty(),
33804                ___deadline,
33805            )?;
33806        Ok(_response.map(|x| x))
33807    }
33808
33809    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
33810    pub fn r#get_reuse_address(
33811        &self,
33812        ___deadline: zx::MonotonicInstant,
33813    ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
33814        let _response = self
33815            .client
33816            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
33817                BaseSocketGetReuseAddressResponse,
33818                fidl_fuchsia_posix::Errno,
33819            >>(
33820                (), 0x67b7206b8d1bc0a5, fidl::encoding::DynamicFlags::empty(), ___deadline
33821            )?;
33822        Ok(_response.map(|x| x.value))
33823    }
33824
33825    /// Get `SOL_SOCKET` -> `SO_ERROR`.
33826    /// Returns the last error if there is an error set on the socket.
33827    pub fn r#get_error(
33828        &self,
33829        ___deadline: zx::MonotonicInstant,
33830    ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
33831        let _response =
33832            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
33833                fidl::encoding::EmptyStruct,
33834                fidl_fuchsia_posix::Errno,
33835            >>(
33836                (),
33837                0x5aad39b33e5f6ebb,
33838                fidl::encoding::DynamicFlags::empty(),
33839                ___deadline,
33840            )?;
33841        Ok(_response.map(|x| x))
33842    }
33843
33844    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
33845    pub fn r#set_broadcast(
33846        &self,
33847        mut value: bool,
33848        ___deadline: zx::MonotonicInstant,
33849    ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
33850        let _response =
33851            self.client.send_query::<BaseSocketSetBroadcastRequest, fidl::encoding::ResultType<
33852                fidl::encoding::EmptyStruct,
33853                fidl_fuchsia_posix::Errno,
33854            >>(
33855                (value,),
33856                0x6023e081ce3cd947,
33857                fidl::encoding::DynamicFlags::empty(),
33858                ___deadline,
33859            )?;
33860        Ok(_response.map(|x| x))
33861    }
33862
33863    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
33864    pub fn r#get_broadcast(
33865        &self,
33866        ___deadline: zx::MonotonicInstant,
33867    ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
33868        let _response =
33869            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
33870                BaseSocketGetBroadcastResponse,
33871                fidl_fuchsia_posix::Errno,
33872            >>(
33873                (),
33874                0x68796fc556f9780d,
33875                fidl::encoding::DynamicFlags::empty(),
33876                ___deadline,
33877            )?;
33878        Ok(_response.map(|x| x.value))
33879    }
33880
33881    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
33882    pub fn r#set_send_buffer(
33883        &self,
33884        mut value_bytes: u64,
33885        ___deadline: zx::MonotonicInstant,
33886    ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
33887        let _response =
33888            self.client.send_query::<BaseSocketSetSendBufferRequest, fidl::encoding::ResultType<
33889                fidl::encoding::EmptyStruct,
33890                fidl_fuchsia_posix::Errno,
33891            >>(
33892                (value_bytes,),
33893                0x756eac32d73a7a70,
33894                fidl::encoding::DynamicFlags::empty(),
33895                ___deadline,
33896            )?;
33897        Ok(_response.map(|x| x))
33898    }
33899
33900    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
33901    pub fn r#get_send_buffer(
33902        &self,
33903        ___deadline: zx::MonotonicInstant,
33904    ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
33905        let _response = self
33906            .client
33907            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
33908                BaseSocketGetSendBufferResponse,
33909                fidl_fuchsia_posix::Errno,
33910            >>(
33911                (), 0x78a52fd9c7b2410b, fidl::encoding::DynamicFlags::empty(), ___deadline
33912            )?;
33913        Ok(_response.map(|x| x.value_bytes))
33914    }
33915
33916    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
33917    pub fn r#set_receive_buffer(
33918        &self,
33919        mut value_bytes: u64,
33920        ___deadline: zx::MonotonicInstant,
33921    ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
33922        let _response =
33923            self.client
33924                .send_query::<BaseSocketSetReceiveBufferRequest, fidl::encoding::ResultType<
33925                    fidl::encoding::EmptyStruct,
33926                    fidl_fuchsia_posix::Errno,
33927                >>(
33928                    (value_bytes,),
33929                    0x6b0cf2f1919c7001,
33930                    fidl::encoding::DynamicFlags::empty(),
33931                    ___deadline,
33932                )?;
33933        Ok(_response.map(|x| x))
33934    }
33935
33936    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
33937    pub fn r#get_receive_buffer(
33938        &self,
33939        ___deadline: zx::MonotonicInstant,
33940    ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
33941        let _response = self
33942            .client
33943            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
33944                BaseSocketGetReceiveBufferResponse,
33945                fidl_fuchsia_posix::Errno,
33946            >>(
33947                (), 0x14c1a4b64f709e5c, fidl::encoding::DynamicFlags::empty(), ___deadline
33948            )?;
33949        Ok(_response.map(|x| x.value_bytes))
33950    }
33951
33952    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
33953    pub fn r#set_keep_alive(
33954        &self,
33955        mut value: bool,
33956        ___deadline: zx::MonotonicInstant,
33957    ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
33958        let _response =
33959            self.client.send_query::<BaseSocketSetKeepAliveRequest, fidl::encoding::ResultType<
33960                fidl::encoding::EmptyStruct,
33961                fidl_fuchsia_posix::Errno,
33962            >>(
33963                (value,),
33964                0x572df8f0b920d2c7,
33965                fidl::encoding::DynamicFlags::empty(),
33966                ___deadline,
33967            )?;
33968        Ok(_response.map(|x| x))
33969    }
33970
33971    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
33972    pub fn r#get_keep_alive(
33973        &self,
33974        ___deadline: zx::MonotonicInstant,
33975    ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
33976        let _response =
33977            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
33978                BaseSocketGetKeepAliveResponse,
33979                fidl_fuchsia_posix::Errno,
33980            >>(
33981                (),
33982                0x2dd29d3215f2c9d2,
33983                fidl::encoding::DynamicFlags::empty(),
33984                ___deadline,
33985            )?;
33986        Ok(_response.map(|x| x.value))
33987    }
33988
33989    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
33990    pub fn r#set_out_of_band_inline(
33991        &self,
33992        mut value: bool,
33993        ___deadline: zx::MonotonicInstant,
33994    ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
33995        let _response =
33996            self.client
33997                .send_query::<BaseSocketSetOutOfBandInlineRequest, fidl::encoding::ResultType<
33998                    fidl::encoding::EmptyStruct,
33999                    fidl_fuchsia_posix::Errno,
34000                >>(
34001                    (value,),
34002                    0x3ecb49968bee439,
34003                    fidl::encoding::DynamicFlags::empty(),
34004                    ___deadline,
34005                )?;
34006        Ok(_response.map(|x| x))
34007    }
34008
34009    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
34010    pub fn r#get_out_of_band_inline(
34011        &self,
34012        ___deadline: zx::MonotonicInstant,
34013    ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
34014        let _response = self
34015            .client
34016            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34017                BaseSocketGetOutOfBandInlineResponse,
34018                fidl_fuchsia_posix::Errno,
34019            >>(
34020                (), 0x348c1ab3aeca1745, fidl::encoding::DynamicFlags::empty(), ___deadline
34021            )?;
34022        Ok(_response.map(|x| x.value))
34023    }
34024
34025    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
34026    pub fn r#set_no_check(
34027        &self,
34028        mut value: bool,
34029        ___deadline: zx::MonotonicInstant,
34030    ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
34031        let _response =
34032            self.client.send_query::<BaseSocketSetNoCheckRequest, fidl::encoding::ResultType<
34033                fidl::encoding::EmptyStruct,
34034                fidl_fuchsia_posix::Errno,
34035            >>(
34036                (value,),
34037                0x6bbf00c53a4c78c2,
34038                fidl::encoding::DynamicFlags::empty(),
34039                ___deadline,
34040            )?;
34041        Ok(_response.map(|x| x))
34042    }
34043
34044    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
34045    pub fn r#get_no_check(
34046        &self,
34047        ___deadline: zx::MonotonicInstant,
34048    ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
34049        let _response =
34050            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34051                BaseSocketGetNoCheckResponse,
34052                fidl_fuchsia_posix::Errno,
34053            >>(
34054                (),
34055                0x2cd4249286417694,
34056                fidl::encoding::DynamicFlags::empty(),
34057                ___deadline,
34058            )?;
34059        Ok(_response.map(|x| x.value))
34060    }
34061
34062    /// Set `SOL_SOCKET` -> `SO_LINGER`.
34063    pub fn r#set_linger(
34064        &self,
34065        mut linger: bool,
34066        mut length_secs: u32,
34067        ___deadline: zx::MonotonicInstant,
34068    ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
34069        let _response =
34070            self.client.send_query::<BaseSocketSetLingerRequest, fidl::encoding::ResultType<
34071                fidl::encoding::EmptyStruct,
34072                fidl_fuchsia_posix::Errno,
34073            >>(
34074                (linger, length_secs),
34075                0x45386351246e998e,
34076                fidl::encoding::DynamicFlags::empty(),
34077                ___deadline,
34078            )?;
34079        Ok(_response.map(|x| x))
34080    }
34081
34082    /// Get `SOL_SOCKET` -> `SO_LINGER`.
34083    pub fn r#get_linger(
34084        &self,
34085        ___deadline: zx::MonotonicInstant,
34086    ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
34087        let _response =
34088            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34089                BaseSocketGetLingerResponse,
34090                fidl_fuchsia_posix::Errno,
34091            >>(
34092                (),
34093                0x48eb20fc5ccb0e45,
34094                fidl::encoding::DynamicFlags::empty(),
34095                ___deadline,
34096            )?;
34097        Ok(_response.map(|x| (x.linger, x.length_secs)))
34098    }
34099
34100    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
34101    pub fn r#set_reuse_port(
34102        &self,
34103        mut value: bool,
34104        ___deadline: zx::MonotonicInstant,
34105    ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
34106        let _response =
34107            self.client.send_query::<BaseSocketSetReusePortRequest, fidl::encoding::ResultType<
34108                fidl::encoding::EmptyStruct,
34109                fidl_fuchsia_posix::Errno,
34110            >>(
34111                (value,),
34112                0x24dd3e5cb36d9ccb,
34113                fidl::encoding::DynamicFlags::empty(),
34114                ___deadline,
34115            )?;
34116        Ok(_response.map(|x| x))
34117    }
34118
34119    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
34120    pub fn r#get_reuse_port(
34121        &self,
34122        ___deadline: zx::MonotonicInstant,
34123    ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
34124        let _response =
34125            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34126                BaseSocketGetReusePortResponse,
34127                fidl_fuchsia_posix::Errno,
34128            >>(
34129                (),
34130                0x7a112c1ab54ff828,
34131                fidl::encoding::DynamicFlags::empty(),
34132                ___deadline,
34133            )?;
34134        Ok(_response.map(|x| x.value))
34135    }
34136
34137    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
34138    pub fn r#get_accept_conn(
34139        &self,
34140        ___deadline: zx::MonotonicInstant,
34141    ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
34142        let _response = self
34143            .client
34144            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34145                BaseSocketGetAcceptConnResponse,
34146                fidl_fuchsia_posix::Errno,
34147            >>(
34148                (), 0x67ce6db6c2ec8966, fidl::encoding::DynamicFlags::empty(), ___deadline
34149            )?;
34150        Ok(_response.map(|x| x.value))
34151    }
34152
34153    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
34154    pub fn r#set_bind_to_device(
34155        &self,
34156        mut value: &str,
34157        ___deadline: zx::MonotonicInstant,
34158    ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
34159        let _response =
34160            self.client.send_query::<BaseSocketSetBindToDeviceRequest, fidl::encoding::ResultType<
34161                fidl::encoding::EmptyStruct,
34162                fidl_fuchsia_posix::Errno,
34163            >>(
34164                (value,),
34165                0x2118b483f28aafc4,
34166                fidl::encoding::DynamicFlags::empty(),
34167                ___deadline,
34168            )?;
34169        Ok(_response.map(|x| x))
34170    }
34171
34172    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
34173    pub fn r#get_bind_to_device(
34174        &self,
34175        ___deadline: zx::MonotonicInstant,
34176    ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
34177        let _response = self
34178            .client
34179            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34180                BaseSocketGetBindToDeviceResponse,
34181                fidl_fuchsia_posix::Errno,
34182            >>(
34183                (), 0x1ab1fbf0ef7906c8, fidl::encoding::DynamicFlags::empty(), ___deadline
34184            )?;
34185        Ok(_response.map(|x| x.value))
34186    }
34187
34188    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
34189    /// If `value` is 0, this clears the bound interface.
34190    pub fn r#set_bind_to_interface_index(
34191        &self,
34192        mut value: u64,
34193        ___deadline: zx::MonotonicInstant,
34194    ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
34195        let _response =
34196            self.client
34197                .send_query::<BaseSocketSetBindToInterfaceIndexRequest, fidl::encoding::ResultType<
34198                    fidl::encoding::EmptyStruct,
34199                    fidl_fuchsia_posix::Errno,
34200                >>(
34201                    (value,),
34202                    0x6e387a0def00821,
34203                    fidl::encoding::DynamicFlags::empty(),
34204                    ___deadline,
34205                )?;
34206        Ok(_response.map(|x| x))
34207    }
34208
34209    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
34210    pub fn r#get_bind_to_interface_index(
34211        &self,
34212        ___deadline: zx::MonotonicInstant,
34213    ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
34214        let _response = self
34215            .client
34216            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34217                BaseSocketGetBindToInterfaceIndexResponse,
34218                fidl_fuchsia_posix::Errno,
34219            >>(
34220                (), 0x59c31dd3e3078295, fidl::encoding::DynamicFlags::empty(), ___deadline
34221            )?;
34222        Ok(_response.map(|x| x.value))
34223    }
34224
34225    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
34226    pub fn r#set_timestamp(
34227        &self,
34228        mut value: TimestampOption,
34229        ___deadline: zx::MonotonicInstant,
34230    ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
34231        let _response =
34232            self.client.send_query::<BaseSocketSetTimestampRequest, fidl::encoding::ResultType<
34233                fidl::encoding::EmptyStruct,
34234                fidl_fuchsia_posix::Errno,
34235            >>(
34236                (value,),
34237                0x285d6516c263d839,
34238                fidl::encoding::DynamicFlags::empty(),
34239                ___deadline,
34240            )?;
34241        Ok(_response.map(|x| x))
34242    }
34243
34244    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
34245    pub fn r#get_timestamp(
34246        &self,
34247        ___deadline: zx::MonotonicInstant,
34248    ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
34249        let _response =
34250            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34251                BaseSocketGetTimestampResponse,
34252                fidl_fuchsia_posix::Errno,
34253            >>(
34254                (),
34255                0x49f2fffbbcc2bd27,
34256                fidl::encoding::DynamicFlags::empty(),
34257                ___deadline,
34258            )?;
34259        Ok(_response.map(|x| x.value))
34260    }
34261
34262    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
34263    /// unlike the standard SO_MARK, this API has multiple mark domains and each
34264    /// mark can be set independently in each domain.
34265    pub fn r#set_mark(
34266        &self,
34267        mut domain: fidl_fuchsia_net::MarkDomain,
34268        mut mark: &OptionalUint32,
34269        ___deadline: zx::MonotonicInstant,
34270    ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
34271        let _response =
34272            self.client.send_query::<BaseSocketSetMarkRequest, fidl::encoding::ResultType<
34273                fidl::encoding::EmptyStruct,
34274                fidl_fuchsia_posix::Errno,
34275            >>(
34276                (domain, mark),
34277                0x6ead6de09f653236,
34278                fidl::encoding::DynamicFlags::empty(),
34279                ___deadline,
34280            )?;
34281        Ok(_response.map(|x| x))
34282    }
34283
34284    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
34285    /// unlike the standard SO_MARK, this API has multiple mark domains and each
34286    /// mark can be retrieved independently in each domain.
34287    pub fn r#get_mark(
34288        &self,
34289        mut domain: fidl_fuchsia_net::MarkDomain,
34290        ___deadline: zx::MonotonicInstant,
34291    ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
34292        let _response =
34293            self.client.send_query::<BaseSocketGetMarkRequest, fidl::encoding::ResultType<
34294                BaseSocketGetMarkResponse,
34295                fidl_fuchsia_posix::Errno,
34296            >>(
34297                (domain,),
34298                0x57a2752c61d93d47,
34299                fidl::encoding::DynamicFlags::empty(),
34300                ___deadline,
34301            )?;
34302        Ok(_response.map(|x| x.mark))
34303    }
34304
34305    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
34306    pub fn r#get_cookie(
34307        &self,
34308        ___deadline: zx::MonotonicInstant,
34309    ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
34310        let _response =
34311            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34312                BaseSocketGetCookieResponse,
34313                fidl_fuchsia_posix::Errno,
34314            >>(
34315                (),
34316                0x2c2f47fd8f924e52,
34317                fidl::encoding::DynamicFlags::empty(),
34318                ___deadline,
34319            )?;
34320        Ok(_response.map(|x| x.value))
34321    }
34322
34323    /// Sets the local address used for the socket.
34324    pub fn r#bind(
34325        &self,
34326        mut addr: &fidl_fuchsia_net::SocketAddress,
34327        ___deadline: zx::MonotonicInstant,
34328    ) -> Result<BaseNetworkSocketBindResult, fidl::Error> {
34329        let _response =
34330            self.client.send_query::<BaseNetworkSocketBindRequest, fidl::encoding::ResultType<
34331                fidl::encoding::EmptyStruct,
34332                fidl_fuchsia_posix::Errno,
34333            >>(
34334                (addr,),
34335                0x4bc6400ae92125d,
34336                fidl::encoding::DynamicFlags::empty(),
34337                ___deadline,
34338            )?;
34339        Ok(_response.map(|x| x))
34340    }
34341
34342    /// Initiates a connection to a remote address.
34343    pub fn r#connect(
34344        &self,
34345        mut addr: &fidl_fuchsia_net::SocketAddress,
34346        ___deadline: zx::MonotonicInstant,
34347    ) -> Result<BaseNetworkSocketConnectResult, fidl::Error> {
34348        let _response =
34349            self.client.send_query::<BaseNetworkSocketConnectRequest, fidl::encoding::ResultType<
34350                fidl::encoding::EmptyStruct,
34351                fidl_fuchsia_posix::Errno,
34352            >>(
34353                (addr,),
34354                0x5f05f19bfdd38871,
34355                fidl::encoding::DynamicFlags::empty(),
34356                ___deadline,
34357            )?;
34358        Ok(_response.map(|x| x))
34359    }
34360
34361    /// Clears connection information from this socket.
34362    pub fn r#disconnect(
34363        &self,
34364        ___deadline: zx::MonotonicInstant,
34365    ) -> Result<BaseNetworkSocketDisconnectResult, fidl::Error> {
34366        let _response =
34367            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34368                fidl::encoding::EmptyStruct,
34369                fidl_fuchsia_posix::Errno,
34370            >>(
34371                (),
34372                0x74e63b91f7b29b2,
34373                fidl::encoding::DynamicFlags::empty(),
34374                ___deadline,
34375            )?;
34376        Ok(_response.map(|x| x))
34377    }
34378
34379    /// Retrieves the local socket address.
34380    pub fn r#get_sock_name(
34381        &self,
34382        ___deadline: zx::MonotonicInstant,
34383    ) -> Result<BaseNetworkSocketGetSockNameResult, fidl::Error> {
34384        let _response = self
34385            .client
34386            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34387                BaseNetworkSocketGetSockNameResponse,
34388                fidl_fuchsia_posix::Errno,
34389            >>(
34390                (), 0x475f23f84a1a4f85, fidl::encoding::DynamicFlags::empty(), ___deadline
34391            )?;
34392        Ok(_response.map(|x| x.addr))
34393    }
34394
34395    /// Retrieves the remote socket address.
34396    pub fn r#get_peer_name(
34397        &self,
34398        ___deadline: zx::MonotonicInstant,
34399    ) -> Result<BaseNetworkSocketGetPeerNameResult, fidl::Error> {
34400        let _response = self
34401            .client
34402            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34403                BaseNetworkSocketGetPeerNameResponse,
34404                fidl_fuchsia_posix::Errno,
34405            >>(
34406                (), 0x1ffecf4bd5b6432e, fidl::encoding::DynamicFlags::empty(), ___deadline
34407            )?;
34408        Ok(_response.map(|x| x.addr))
34409    }
34410
34411    /// Shuts down part of the socket.
34412    pub fn r#shutdown(
34413        &self,
34414        mut mode: ShutdownMode,
34415        ___deadline: zx::MonotonicInstant,
34416    ) -> Result<BaseNetworkSocketShutdownResult, fidl::Error> {
34417        let _response =
34418            self.client.send_query::<BaseNetworkSocketShutdownRequest, fidl::encoding::ResultType<
34419                fidl::encoding::EmptyStruct,
34420                fidl_fuchsia_posix::Errno,
34421            >>(
34422                (mode,),
34423                0x247f38b6db68c336,
34424                fidl::encoding::DynamicFlags::empty(),
34425                ___deadline,
34426            )?;
34427        Ok(_response.map(|x| x))
34428    }
34429
34430    /// Set `SOL_IP` -> `IP_TOS`.
34431    pub fn r#set_ip_type_of_service(
34432        &self,
34433        mut value: u8,
34434        ___deadline: zx::MonotonicInstant,
34435    ) -> Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error> {
34436        let _response = self.client.send_query::<
34437            BaseNetworkSocketSetIpTypeOfServiceRequest,
34438            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
34439        >(
34440            (value,),
34441            0x995c600475b6d46,
34442            fidl::encoding::DynamicFlags::empty(),
34443            ___deadline,
34444        )?;
34445        Ok(_response.map(|x| x))
34446    }
34447
34448    /// Get `SOL_IP` -> `IP_TOS`.
34449    pub fn r#get_ip_type_of_service(
34450        &self,
34451        ___deadline: zx::MonotonicInstant,
34452    ) -> Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error> {
34453        let _response = self
34454            .client
34455            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34456                BaseNetworkSocketGetIpTypeOfServiceResponse,
34457                fidl_fuchsia_posix::Errno,
34458            >>(
34459                (), 0x3814a04259f75fcb, fidl::encoding::DynamicFlags::empty(), ___deadline
34460            )?;
34461        Ok(_response.map(|x| x.value))
34462    }
34463
34464    /// Set `SOL_IP` -> `IP_TTL`.
34465    pub fn r#set_ip_ttl(
34466        &self,
34467        mut value: &OptionalUint8,
34468        ___deadline: zx::MonotonicInstant,
34469    ) -> Result<BaseNetworkSocketSetIpTtlResult, fidl::Error> {
34470        let _response =
34471            self.client.send_query::<BaseNetworkSocketSetIpTtlRequest, fidl::encoding::ResultType<
34472                fidl::encoding::EmptyStruct,
34473                fidl_fuchsia_posix::Errno,
34474            >>(
34475                (value,),
34476                0x29e2424b433ae1ef,
34477                fidl::encoding::DynamicFlags::empty(),
34478                ___deadline,
34479            )?;
34480        Ok(_response.map(|x| x))
34481    }
34482
34483    /// Get `SOL_IP` -> `IP_TTL`.
34484    pub fn r#get_ip_ttl(
34485        &self,
34486        ___deadline: zx::MonotonicInstant,
34487    ) -> Result<BaseNetworkSocketGetIpTtlResult, fidl::Error> {
34488        let _response = self
34489            .client
34490            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34491                BaseNetworkSocketGetIpTtlResponse,
34492                fidl_fuchsia_posix::Errno,
34493            >>(
34494                (), 0x47e47fa1f24da471, fidl::encoding::DynamicFlags::empty(), ___deadline
34495            )?;
34496        Ok(_response.map(|x| x.value))
34497    }
34498
34499    /// Set `SOL_IP` -> `IP_PKTINFO`.
34500    pub fn r#set_ip_packet_info(
34501        &self,
34502        mut value: bool,
34503        ___deadline: zx::MonotonicInstant,
34504    ) -> Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error> {
34505        let _response =
34506            self.client
34507                .send_query::<BaseNetworkSocketSetIpPacketInfoRequest, fidl::encoding::ResultType<
34508                    fidl::encoding::EmptyStruct,
34509                    fidl_fuchsia_posix::Errno,
34510                >>(
34511                    (value,),
34512                    0x392d16bee20c0e16,
34513                    fidl::encoding::DynamicFlags::empty(),
34514                    ___deadline,
34515                )?;
34516        Ok(_response.map(|x| x))
34517    }
34518
34519    /// Get `SOL_IP` -> `IP_PKTINFO`.
34520    pub fn r#get_ip_packet_info(
34521        &self,
34522        ___deadline: zx::MonotonicInstant,
34523    ) -> Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error> {
34524        let _response = self
34525            .client
34526            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34527                BaseNetworkSocketGetIpPacketInfoResponse,
34528                fidl_fuchsia_posix::Errno,
34529            >>(
34530                (), 0x54b505f242280740, fidl::encoding::DynamicFlags::empty(), ___deadline
34531            )?;
34532        Ok(_response.map(|x| x.value))
34533    }
34534
34535    /// Set `SOL_IP` -> `IP_RECVTOS`.
34536    pub fn r#set_ip_receive_type_of_service(
34537        &self,
34538        mut value: bool,
34539        ___deadline: zx::MonotonicInstant,
34540    ) -> Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error> {
34541        let _response = self.client.send_query::<
34542            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
34543            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
34544        >(
34545            (value,),
34546            0x6c4f6714995f84ef,
34547            fidl::encoding::DynamicFlags::empty(),
34548            ___deadline,
34549        )?;
34550        Ok(_response.map(|x| x))
34551    }
34552
34553    /// Get `SOL_IP` -> `IP_RECVTOS`.
34554    pub fn r#get_ip_receive_type_of_service(
34555        &self,
34556        ___deadline: zx::MonotonicInstant,
34557    ) -> Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error> {
34558        let _response = self
34559            .client
34560            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34561                BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
34562                fidl_fuchsia_posix::Errno,
34563            >>(
34564                (), 0x4158ba7dc2795960, fidl::encoding::DynamicFlags::empty(), ___deadline
34565            )?;
34566        Ok(_response.map(|x| x.value))
34567    }
34568
34569    /// Set `SOL_IP` -> `IP_RECVTTL`.
34570    pub fn r#set_ip_receive_ttl(
34571        &self,
34572        mut value: bool,
34573        ___deadline: zx::MonotonicInstant,
34574    ) -> Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error> {
34575        let _response =
34576            self.client
34577                .send_query::<BaseNetworkSocketSetIpReceiveTtlRequest, fidl::encoding::ResultType<
34578                    fidl::encoding::EmptyStruct,
34579                    fidl_fuchsia_posix::Errno,
34580                >>(
34581                    (value,),
34582                    0x46f15be0ce0ab82b,
34583                    fidl::encoding::DynamicFlags::empty(),
34584                    ___deadline,
34585                )?;
34586        Ok(_response.map(|x| x))
34587    }
34588
34589    /// Get `SOL_IP` -> `IP_RECVTTL`.
34590    pub fn r#get_ip_receive_ttl(
34591        &self,
34592        ___deadline: zx::MonotonicInstant,
34593    ) -> Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error> {
34594        let _response = self
34595            .client
34596            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34597                BaseNetworkSocketGetIpReceiveTtlResponse,
34598                fidl_fuchsia_posix::Errno,
34599            >>(
34600                (), 0x678ddd5a5dfa2eb5, fidl::encoding::DynamicFlags::empty(), ___deadline
34601            )?;
34602        Ok(_response.map(|x| x.value))
34603    }
34604
34605    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
34606    pub fn r#set_ip_multicast_interface(
34607        &self,
34608        mut iface: u64,
34609        mut address: &fidl_fuchsia_net::Ipv4Address,
34610        ___deadline: zx::MonotonicInstant,
34611    ) -> Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error> {
34612        let _response = self.client.send_query::<
34613            BaseNetworkSocketSetIpMulticastInterfaceRequest,
34614            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
34615        >(
34616            (iface, address,),
34617            0x752fbfa9b12befe,
34618            fidl::encoding::DynamicFlags::empty(),
34619            ___deadline,
34620        )?;
34621        Ok(_response.map(|x| x))
34622    }
34623
34624    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
34625    pub fn r#get_ip_multicast_interface(
34626        &self,
34627        ___deadline: zx::MonotonicInstant,
34628    ) -> Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error> {
34629        let _response = self
34630            .client
34631            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34632                BaseNetworkSocketGetIpMulticastInterfaceResponse,
34633                fidl_fuchsia_posix::Errno,
34634            >>(
34635                (), 0x320bd14c4df046c4, fidl::encoding::DynamicFlags::empty(), ___deadline
34636            )?;
34637        Ok(_response.map(|x| x.value))
34638    }
34639
34640    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
34641    pub fn r#set_ip_multicast_ttl(
34642        &self,
34643        mut value: &OptionalUint8,
34644        ___deadline: zx::MonotonicInstant,
34645    ) -> Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error> {
34646        let _response =
34647            self.client
34648                .send_query::<BaseNetworkSocketSetIpMulticastTtlRequest, fidl::encoding::ResultType<
34649                    fidl::encoding::EmptyStruct,
34650                    fidl_fuchsia_posix::Errno,
34651                >>(
34652                    (value,),
34653                    0x63134d53772916a1,
34654                    fidl::encoding::DynamicFlags::empty(),
34655                    ___deadline,
34656                )?;
34657        Ok(_response.map(|x| x))
34658    }
34659
34660    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
34661    pub fn r#get_ip_multicast_ttl(
34662        &self,
34663        ___deadline: zx::MonotonicInstant,
34664    ) -> Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error> {
34665        let _response = self
34666            .client
34667            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34668                BaseNetworkSocketGetIpMulticastTtlResponse,
34669                fidl_fuchsia_posix::Errno,
34670            >>(
34671                (), 0x4665cd378f39e1a, fidl::encoding::DynamicFlags::empty(), ___deadline
34672            )?;
34673        Ok(_response.map(|x| x.value))
34674    }
34675
34676    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
34677    pub fn r#set_ip_multicast_loopback(
34678        &self,
34679        mut value: bool,
34680        ___deadline: zx::MonotonicInstant,
34681    ) -> Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error> {
34682        let _response = self.client.send_query::<
34683            BaseNetworkSocketSetIpMulticastLoopbackRequest,
34684            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
34685        >(
34686            (value,),
34687            0x20c55c11f00943ea,
34688            fidl::encoding::DynamicFlags::empty(),
34689            ___deadline,
34690        )?;
34691        Ok(_response.map(|x| x))
34692    }
34693
34694    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
34695    pub fn r#get_ip_multicast_loopback(
34696        &self,
34697        ___deadline: zx::MonotonicInstant,
34698    ) -> Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error> {
34699        let _response = self
34700            .client
34701            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34702                BaseNetworkSocketGetIpMulticastLoopbackResponse,
34703                fidl_fuchsia_posix::Errno,
34704            >>(
34705                (), 0x3b6b26ff558298f2, fidl::encoding::DynamicFlags::empty(), ___deadline
34706            )?;
34707        Ok(_response.map(|x| x.value))
34708    }
34709
34710    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
34711    pub fn r#add_ip_membership(
34712        &self,
34713        mut membership: &IpMulticastMembership,
34714        ___deadline: zx::MonotonicInstant,
34715    ) -> Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error> {
34716        let _response =
34717            self.client
34718                .send_query::<BaseNetworkSocketAddIpMembershipRequest, fidl::encoding::ResultType<
34719                    fidl::encoding::EmptyStruct,
34720                    fidl_fuchsia_posix::Errno,
34721                >>(
34722                    (membership,),
34723                    0x76bc7df115a3b4d0,
34724                    fidl::encoding::DynamicFlags::empty(),
34725                    ___deadline,
34726                )?;
34727        Ok(_response.map(|x| x))
34728    }
34729
34730    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
34731    pub fn r#drop_ip_membership(
34732        &self,
34733        mut membership: &IpMulticastMembership,
34734        ___deadline: zx::MonotonicInstant,
34735    ) -> Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error> {
34736        let _response =
34737            self.client
34738                .send_query::<BaseNetworkSocketDropIpMembershipRequest, fidl::encoding::ResultType<
34739                    fidl::encoding::EmptyStruct,
34740                    fidl_fuchsia_posix::Errno,
34741                >>(
34742                    (membership,),
34743                    0x2888f3099188d03,
34744                    fidl::encoding::DynamicFlags::empty(),
34745                    ___deadline,
34746                )?;
34747        Ok(_response.map(|x| x))
34748    }
34749
34750    /// Set `SOL_IP` -> `IP_TRANSPARENT`
34751    pub fn r#set_ip_transparent(
34752        &self,
34753        mut value: bool,
34754        ___deadline: zx::MonotonicInstant,
34755    ) -> Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error> {
34756        let _response =
34757            self.client
34758                .send_query::<BaseNetworkSocketSetIpTransparentRequest, fidl::encoding::ResultType<
34759                    fidl::encoding::EmptyStruct,
34760                    fidl_fuchsia_posix::Errno,
34761                >>(
34762                    (value,),
34763                    0x1ae532b0c066e3a0,
34764                    fidl::encoding::DynamicFlags::empty(),
34765                    ___deadline,
34766                )?;
34767        Ok(_response.map(|x| x))
34768    }
34769
34770    /// Get `SOL_IP` -> `IP_TRANSPARENT`
34771    pub fn r#get_ip_transparent(
34772        &self,
34773        ___deadline: zx::MonotonicInstant,
34774    ) -> Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error> {
34775        let _response = self
34776            .client
34777            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34778                BaseNetworkSocketGetIpTransparentResponse,
34779                fidl_fuchsia_posix::Errno,
34780            >>(
34781                (), 0x51d43695962ebfb5, fidl::encoding::DynamicFlags::empty(), ___deadline
34782            )?;
34783        Ok(_response.map(|x| x.value))
34784    }
34785
34786    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
34787    pub fn r#set_ip_receive_original_destination_address(
34788        &self,
34789        mut value: bool,
34790        ___deadline: zx::MonotonicInstant,
34791    ) -> Result<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult, fidl::Error> {
34792        let _response = self.client.send_query::<
34793            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
34794            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
34795        >(
34796            (value,),
34797            0x4722b4ce52f7840,
34798            fidl::encoding::DynamicFlags::empty(),
34799            ___deadline,
34800        )?;
34801        Ok(_response.map(|x| x))
34802    }
34803
34804    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
34805    pub fn r#get_ip_receive_original_destination_address(
34806        &self,
34807        ___deadline: zx::MonotonicInstant,
34808    ) -> Result<BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult, fidl::Error> {
34809        let _response = self
34810            .client
34811            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34812                BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
34813                fidl_fuchsia_posix::Errno,
34814            >>(
34815                (), 0x2a0e7dc5d6bfdfe9, fidl::encoding::DynamicFlags::empty(), ___deadline
34816            )?;
34817        Ok(_response.map(|x| x.value))
34818    }
34819
34820    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
34821    pub fn r#add_ipv6_membership(
34822        &self,
34823        mut membership: &Ipv6MulticastMembership,
34824        ___deadline: zx::MonotonicInstant,
34825    ) -> Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error> {
34826        let _response =
34827            self.client
34828                .send_query::<BaseNetworkSocketAddIpv6MembershipRequest, fidl::encoding::ResultType<
34829                    fidl::encoding::EmptyStruct,
34830                    fidl_fuchsia_posix::Errno,
34831                >>(
34832                    (membership,),
34833                    0x7c94727acb4ea4b3,
34834                    fidl::encoding::DynamicFlags::empty(),
34835                    ___deadline,
34836                )?;
34837        Ok(_response.map(|x| x))
34838    }
34839
34840    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
34841    pub fn r#drop_ipv6_membership(
34842        &self,
34843        mut membership: &Ipv6MulticastMembership,
34844        ___deadline: zx::MonotonicInstant,
34845    ) -> Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error> {
34846        let _response = self.client.send_query::<
34847            BaseNetworkSocketDropIpv6MembershipRequest,
34848            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
34849        >(
34850            (membership,),
34851            0x42104c70ccaba304,
34852            fidl::encoding::DynamicFlags::empty(),
34853            ___deadline,
34854        )?;
34855        Ok(_response.map(|x| x))
34856    }
34857
34858    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
34859    pub fn r#set_ipv6_multicast_interface(
34860        &self,
34861        mut value: u64,
34862        ___deadline: zx::MonotonicInstant,
34863    ) -> Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error> {
34864        let _response = self.client.send_query::<
34865            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
34866            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
34867        >(
34868            (value,),
34869            0x135f76db3774ab3b,
34870            fidl::encoding::DynamicFlags::empty(),
34871            ___deadline,
34872        )?;
34873        Ok(_response.map(|x| x))
34874    }
34875
34876    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
34877    pub fn r#get_ipv6_multicast_interface(
34878        &self,
34879        ___deadline: zx::MonotonicInstant,
34880    ) -> Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error> {
34881        let _response = self
34882            .client
34883            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34884                BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
34885                fidl_fuchsia_posix::Errno,
34886            >>(
34887                (), 0x1f26fcdd348f1882, fidl::encoding::DynamicFlags::empty(), ___deadline
34888            )?;
34889        Ok(_response.map(|x| x.value))
34890    }
34891
34892    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
34893    pub fn r#set_ipv6_unicast_hops(
34894        &self,
34895        mut value: &OptionalUint8,
34896        ___deadline: zx::MonotonicInstant,
34897    ) -> Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error> {
34898        let _response = self.client.send_query::<
34899            BaseNetworkSocketSetIpv6UnicastHopsRequest,
34900            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
34901        >(
34902            (value,),
34903            0x157d51e98f462859,
34904            fidl::encoding::DynamicFlags::empty(),
34905            ___deadline,
34906        )?;
34907        Ok(_response.map(|x| x))
34908    }
34909
34910    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
34911    pub fn r#get_ipv6_unicast_hops(
34912        &self,
34913        ___deadline: zx::MonotonicInstant,
34914    ) -> Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error> {
34915        let _response = self
34916            .client
34917            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34918                BaseNetworkSocketGetIpv6UnicastHopsResponse,
34919                fidl_fuchsia_posix::Errno,
34920            >>(
34921                (), 0x21f4641cad8bd8d2, fidl::encoding::DynamicFlags::empty(), ___deadline
34922            )?;
34923        Ok(_response.map(|x| x.value))
34924    }
34925
34926    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
34927    pub fn r#set_ipv6_receive_hop_limit(
34928        &self,
34929        mut value: bool,
34930        ___deadline: zx::MonotonicInstant,
34931    ) -> Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error> {
34932        let _response = self.client.send_query::<
34933            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
34934            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
34935        >(
34936            (value,),
34937            0x5c24808ed2e84a1e,
34938            fidl::encoding::DynamicFlags::empty(),
34939            ___deadline,
34940        )?;
34941        Ok(_response.map(|x| x))
34942    }
34943
34944    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
34945    pub fn r#get_ipv6_receive_hop_limit(
34946        &self,
34947        ___deadline: zx::MonotonicInstant,
34948    ) -> Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error> {
34949        let _response = self
34950            .client
34951            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34952                BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
34953                fidl_fuchsia_posix::Errno,
34954            >>(
34955                (), 0x341e06689885b4c0, fidl::encoding::DynamicFlags::empty(), ___deadline
34956            )?;
34957        Ok(_response.map(|x| x.value))
34958    }
34959
34960    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
34961    pub fn r#set_ipv6_multicast_hops(
34962        &self,
34963        mut value: &OptionalUint8,
34964        ___deadline: zx::MonotonicInstant,
34965    ) -> Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error> {
34966        let _response = self.client.send_query::<
34967            BaseNetworkSocketSetIpv6MulticastHopsRequest,
34968            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
34969        >(
34970            (value,),
34971            0x25b9cd4d181f82c1,
34972            fidl::encoding::DynamicFlags::empty(),
34973            ___deadline,
34974        )?;
34975        Ok(_response.map(|x| x))
34976    }
34977
34978    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
34979    pub fn r#get_ipv6_multicast_hops(
34980        &self,
34981        ___deadline: zx::MonotonicInstant,
34982    ) -> Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error> {
34983        let _response = self
34984            .client
34985            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34986                BaseNetworkSocketGetIpv6MulticastHopsResponse,
34987                fidl_fuchsia_posix::Errno,
34988            >>(
34989                (), 0x52916948a365012a, fidl::encoding::DynamicFlags::empty(), ___deadline
34990            )?;
34991        Ok(_response.map(|x| x.value))
34992    }
34993
34994    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
34995    pub fn r#set_ipv6_multicast_loopback(
34996        &self,
34997        mut value: bool,
34998        ___deadline: zx::MonotonicInstant,
34999    ) -> Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error> {
35000        let _response = self.client.send_query::<
35001            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
35002            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
35003        >(
35004            (value,),
35005            0x55701c409ff41b40,
35006            fidl::encoding::DynamicFlags::empty(),
35007            ___deadline,
35008        )?;
35009        Ok(_response.map(|x| x))
35010    }
35011
35012    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
35013    pub fn r#get_ipv6_multicast_loopback(
35014        &self,
35015        ___deadline: zx::MonotonicInstant,
35016    ) -> Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error> {
35017        let _response = self
35018            .client
35019            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35020                BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
35021                fidl_fuchsia_posix::Errno,
35022            >>(
35023                (), 0x4415b701fde319c3, fidl::encoding::DynamicFlags::empty(), ___deadline
35024            )?;
35025        Ok(_response.map(|x| x.value))
35026    }
35027
35028    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
35029    pub fn r#set_ipv6_only(
35030        &self,
35031        mut value: bool,
35032        ___deadline: zx::MonotonicInstant,
35033    ) -> Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error> {
35034        let _response =
35035            self.client
35036                .send_query::<BaseNetworkSocketSetIpv6OnlyRequest, fidl::encoding::ResultType<
35037                    fidl::encoding::EmptyStruct,
35038                    fidl_fuchsia_posix::Errno,
35039                >>(
35040                    (value,),
35041                    0x4873f1364758cbba,
35042                    fidl::encoding::DynamicFlags::empty(),
35043                    ___deadline,
35044                )?;
35045        Ok(_response.map(|x| x))
35046    }
35047
35048    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
35049    pub fn r#get_ipv6_only(
35050        &self,
35051        ___deadline: zx::MonotonicInstant,
35052    ) -> Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error> {
35053        let _response = self
35054            .client
35055            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35056                BaseNetworkSocketGetIpv6OnlyResponse,
35057                fidl_fuchsia_posix::Errno,
35058            >>(
35059                (), 0x4aa3340a1a26b89c, fidl::encoding::DynamicFlags::empty(), ___deadline
35060            )?;
35061        Ok(_response.map(|x| x.value))
35062    }
35063
35064    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
35065    pub fn r#set_ipv6_receive_traffic_class(
35066        &self,
35067        mut value: bool,
35068        ___deadline: zx::MonotonicInstant,
35069    ) -> Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error> {
35070        let _response = self.client.send_query::<
35071            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
35072            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
35073        >(
35074            (value,),
35075            0x58f07c8788d099a0,
35076            fidl::encoding::DynamicFlags::empty(),
35077            ___deadline,
35078        )?;
35079        Ok(_response.map(|x| x))
35080    }
35081
35082    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
35083    pub fn r#get_ipv6_receive_traffic_class(
35084        &self,
35085        ___deadline: zx::MonotonicInstant,
35086    ) -> Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error> {
35087        let _response = self
35088            .client
35089            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35090                BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
35091                fidl_fuchsia_posix::Errno,
35092            >>(
35093                (), 0x2e334df1da553ffa, fidl::encoding::DynamicFlags::empty(), ___deadline
35094            )?;
35095        Ok(_response.map(|x| x.value))
35096    }
35097
35098    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
35099    pub fn r#set_ipv6_traffic_class(
35100        &self,
35101        mut value: &OptionalUint8,
35102        ___deadline: zx::MonotonicInstant,
35103    ) -> Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error> {
35104        let _response = self.client.send_query::<
35105            BaseNetworkSocketSetIpv6TrafficClassRequest,
35106            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
35107        >(
35108            (value,),
35109            0x6af077800c5a0b4f,
35110            fidl::encoding::DynamicFlags::empty(),
35111            ___deadline,
35112        )?;
35113        Ok(_response.map(|x| x))
35114    }
35115
35116    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
35117    pub fn r#get_ipv6_traffic_class(
35118        &self,
35119        ___deadline: zx::MonotonicInstant,
35120    ) -> Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error> {
35121        let _response = self
35122            .client
35123            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35124                BaseNetworkSocketGetIpv6TrafficClassResponse,
35125                fidl_fuchsia_posix::Errno,
35126            >>(
35127                (), 0x6baf6eed8fc2f04, fidl::encoding::DynamicFlags::empty(), ___deadline
35128            )?;
35129        Ok(_response.map(|x| x.value))
35130    }
35131
35132    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
35133    pub fn r#set_ipv6_receive_packet_info(
35134        &self,
35135        mut value: bool,
35136        ___deadline: zx::MonotonicInstant,
35137    ) -> Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error> {
35138        let _response = self.client.send_query::<
35139            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
35140            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
35141        >(
35142            (value,),
35143            0x19259775b1a92768,
35144            fidl::encoding::DynamicFlags::empty(),
35145            ___deadline,
35146        )?;
35147        Ok(_response.map(|x| x))
35148    }
35149
35150    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
35151    pub fn r#get_ipv6_receive_packet_info(
35152        &self,
35153        ___deadline: zx::MonotonicInstant,
35154    ) -> Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error> {
35155        let _response = self
35156            .client
35157            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35158                BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
35159                fidl_fuchsia_posix::Errno,
35160            >>(
35161                (), 0x7acd4a2775baec75, fidl::encoding::DynamicFlags::empty(), ___deadline
35162            )?;
35163        Ok(_response.map(|x| x.value))
35164    }
35165
35166    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
35167    pub fn r#get_original_destination(
35168        &self,
35169        ___deadline: zx::MonotonicInstant,
35170    ) -> Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error> {
35171        let _response = self
35172            .client
35173            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35174                BaseNetworkSocketGetOriginalDestinationResponse,
35175                fidl_fuchsia_posix::Errno,
35176            >>(
35177                (), 0x38bf28f0dafdbac0, fidl::encoding::DynamicFlags::empty(), ___deadline
35178            )?;
35179        Ok(_response.map(|x| x.value))
35180    }
35181
35182    /// Retrieves creation information from the socket.
35183    ///
35184    /// - response `domain` the socket's associated domain.
35185    /// - response `proto` the socket's associated protocol.
35186    pub fn r#get_info(
35187        &self,
35188        ___deadline: zx::MonotonicInstant,
35189    ) -> Result<BaseDatagramSocketGetInfoResult, fidl::Error> {
35190        let _response = self
35191            .client
35192            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35193                BaseDatagramSocketGetInfoResponse,
35194                fidl_fuchsia_posix::Errno,
35195            >>(
35196                (), 0x48aa0a1f6a32d2ed, fidl::encoding::DynamicFlags::empty(), ___deadline
35197            )?;
35198        Ok(_response.map(|x| (x.domain, x.proto)))
35199    }
35200
35201    pub fn r#describe(
35202        &self,
35203        ___deadline: zx::MonotonicInstant,
35204    ) -> Result<DatagramSocketDescribeResponse, fidl::Error> {
35205        let _response = self
35206            .client
35207            .send_query::<fidl::encoding::EmptyPayload, DatagramSocketDescribeResponse>(
35208                (),
35209                0xbf1e2f0a86601f3,
35210                fidl::encoding::DynamicFlags::empty(),
35211                ___deadline,
35212            )?;
35213        Ok(_response)
35214    }
35215
35216    /// Validates that data can be sent.
35217    ///
35218    /// + request `args` the requested disposition of data to be sent.
35219    /// - response the constraints sent data must satisfy.
35220    /// * error the error code indicating the reason for validation failure.
35221    pub fn r#send_msg_preflight(
35222        &self,
35223        mut payload: &DatagramSocketSendMsgPreflightRequest,
35224        ___deadline: zx::MonotonicInstant,
35225    ) -> Result<DatagramSocketSendMsgPreflightResult, fidl::Error> {
35226        let _response = self
35227            .client
35228            .send_query::<DatagramSocketSendMsgPreflightRequest, fidl::encoding::ResultType<
35229                DatagramSocketSendMsgPreflightResponse,
35230                fidl_fuchsia_posix::Errno,
35231            >>(
35232                payload, 0x5362e668e777248a, fidl::encoding::DynamicFlags::empty(), ___deadline
35233            )?;
35234        Ok(_response.map(|x| x))
35235    }
35236
35237    /// Returns the set of requested control messages.
35238    ///
35239    /// - response the set of currently requested control messages.
35240    pub fn r#recv_msg_postflight(
35241        &self,
35242        ___deadline: zx::MonotonicInstant,
35243    ) -> Result<DatagramSocketRecvMsgPostflightResult, fidl::Error> {
35244        let _response = self
35245            .client
35246            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35247                DatagramSocketRecvMsgPostflightResponse,
35248                fidl_fuchsia_posix::Errno,
35249            >>(
35250                (), 0x1a7cdeca5f3eb8e2, fidl::encoding::DynamicFlags::empty(), ___deadline
35251            )?;
35252        Ok(_response.map(|x| x))
35253    }
35254}
35255
35256#[cfg(target_os = "fuchsia")]
35257impl From<DatagramSocketSynchronousProxy> for zx::Handle {
35258    fn from(value: DatagramSocketSynchronousProxy) -> Self {
35259        value.into_channel().into()
35260    }
35261}
35262
35263#[cfg(target_os = "fuchsia")]
35264impl From<fidl::Channel> for DatagramSocketSynchronousProxy {
35265    fn from(value: fidl::Channel) -> Self {
35266        Self::new(value)
35267    }
35268}
35269
35270#[cfg(target_os = "fuchsia")]
35271impl fidl::endpoints::FromClient for DatagramSocketSynchronousProxy {
35272    type Protocol = DatagramSocketMarker;
35273
35274    fn from_client(value: fidl::endpoints::ClientEnd<DatagramSocketMarker>) -> Self {
35275        Self::new(value.into_channel())
35276    }
35277}
35278
35279#[derive(Debug, Clone)]
35280pub struct DatagramSocketProxy {
35281    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
35282}
35283
35284impl fidl::endpoints::Proxy for DatagramSocketProxy {
35285    type Protocol = DatagramSocketMarker;
35286
35287    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
35288        Self::new(inner)
35289    }
35290
35291    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
35292        self.client.into_channel().map_err(|client| Self { client })
35293    }
35294
35295    fn as_channel(&self) -> &::fidl::AsyncChannel {
35296        self.client.as_channel()
35297    }
35298}
35299
35300impl DatagramSocketProxy {
35301    /// Create a new Proxy for fuchsia.posix.socket/DatagramSocket.
35302    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
35303        let protocol_name = <DatagramSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
35304        Self { client: fidl::client::Client::new(channel, protocol_name) }
35305    }
35306
35307    /// Get a Stream of events from the remote end of the protocol.
35308    ///
35309    /// # Panics
35310    ///
35311    /// Panics if the event stream was already taken.
35312    pub fn take_event_stream(&self) -> DatagramSocketEventStream {
35313        DatagramSocketEventStream { event_receiver: self.client.take_event_receiver() }
35314    }
35315
35316    pub fn r#clone(
35317        &self,
35318        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
35319    ) -> Result<(), fidl::Error> {
35320        DatagramSocketProxyInterface::r#clone(self, request)
35321    }
35322
35323    /// Terminates the connection.
35324    ///
35325    /// After calling `Close`, the client must not send any other requests.
35326    ///
35327    /// Servers, after sending the status response, should close the connection
35328    /// regardless of status and without sending an epitaph.
35329    ///
35330    /// Closing the client end of the channel should be semantically equivalent
35331    /// to calling `Close` without knowing when the close has completed or its
35332    /// status.
35333    pub fn r#close(
35334        &self,
35335    ) -> fidl::client::QueryResponseFut<
35336        fidl_fuchsia_unknown::CloseableCloseResult,
35337        fidl::encoding::DefaultFuchsiaResourceDialect,
35338    > {
35339        DatagramSocketProxyInterface::r#close(self)
35340    }
35341
35342    pub fn r#query(
35343        &self,
35344    ) -> fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>
35345    {
35346        DatagramSocketProxyInterface::r#query(self)
35347    }
35348
35349    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
35350    pub fn r#set_reuse_address(
35351        &self,
35352        mut value: bool,
35353    ) -> fidl::client::QueryResponseFut<
35354        BaseSocketSetReuseAddressResult,
35355        fidl::encoding::DefaultFuchsiaResourceDialect,
35356    > {
35357        DatagramSocketProxyInterface::r#set_reuse_address(self, value)
35358    }
35359
35360    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
35361    pub fn r#get_reuse_address(
35362        &self,
35363    ) -> fidl::client::QueryResponseFut<
35364        BaseSocketGetReuseAddressResult,
35365        fidl::encoding::DefaultFuchsiaResourceDialect,
35366    > {
35367        DatagramSocketProxyInterface::r#get_reuse_address(self)
35368    }
35369
35370    /// Get `SOL_SOCKET` -> `SO_ERROR`.
35371    /// Returns the last error if there is an error set on the socket.
35372    pub fn r#get_error(
35373        &self,
35374    ) -> fidl::client::QueryResponseFut<
35375        BaseSocketGetErrorResult,
35376        fidl::encoding::DefaultFuchsiaResourceDialect,
35377    > {
35378        DatagramSocketProxyInterface::r#get_error(self)
35379    }
35380
35381    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
35382    pub fn r#set_broadcast(
35383        &self,
35384        mut value: bool,
35385    ) -> fidl::client::QueryResponseFut<
35386        BaseSocketSetBroadcastResult,
35387        fidl::encoding::DefaultFuchsiaResourceDialect,
35388    > {
35389        DatagramSocketProxyInterface::r#set_broadcast(self, value)
35390    }
35391
35392    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
35393    pub fn r#get_broadcast(
35394        &self,
35395    ) -> fidl::client::QueryResponseFut<
35396        BaseSocketGetBroadcastResult,
35397        fidl::encoding::DefaultFuchsiaResourceDialect,
35398    > {
35399        DatagramSocketProxyInterface::r#get_broadcast(self)
35400    }
35401
35402    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
35403    pub fn r#set_send_buffer(
35404        &self,
35405        mut value_bytes: u64,
35406    ) -> fidl::client::QueryResponseFut<
35407        BaseSocketSetSendBufferResult,
35408        fidl::encoding::DefaultFuchsiaResourceDialect,
35409    > {
35410        DatagramSocketProxyInterface::r#set_send_buffer(self, value_bytes)
35411    }
35412
35413    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
35414    pub fn r#get_send_buffer(
35415        &self,
35416    ) -> fidl::client::QueryResponseFut<
35417        BaseSocketGetSendBufferResult,
35418        fidl::encoding::DefaultFuchsiaResourceDialect,
35419    > {
35420        DatagramSocketProxyInterface::r#get_send_buffer(self)
35421    }
35422
35423    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
35424    pub fn r#set_receive_buffer(
35425        &self,
35426        mut value_bytes: u64,
35427    ) -> fidl::client::QueryResponseFut<
35428        BaseSocketSetReceiveBufferResult,
35429        fidl::encoding::DefaultFuchsiaResourceDialect,
35430    > {
35431        DatagramSocketProxyInterface::r#set_receive_buffer(self, value_bytes)
35432    }
35433
35434    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
35435    pub fn r#get_receive_buffer(
35436        &self,
35437    ) -> fidl::client::QueryResponseFut<
35438        BaseSocketGetReceiveBufferResult,
35439        fidl::encoding::DefaultFuchsiaResourceDialect,
35440    > {
35441        DatagramSocketProxyInterface::r#get_receive_buffer(self)
35442    }
35443
35444    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
35445    pub fn r#set_keep_alive(
35446        &self,
35447        mut value: bool,
35448    ) -> fidl::client::QueryResponseFut<
35449        BaseSocketSetKeepAliveResult,
35450        fidl::encoding::DefaultFuchsiaResourceDialect,
35451    > {
35452        DatagramSocketProxyInterface::r#set_keep_alive(self, value)
35453    }
35454
35455    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
35456    pub fn r#get_keep_alive(
35457        &self,
35458    ) -> fidl::client::QueryResponseFut<
35459        BaseSocketGetKeepAliveResult,
35460        fidl::encoding::DefaultFuchsiaResourceDialect,
35461    > {
35462        DatagramSocketProxyInterface::r#get_keep_alive(self)
35463    }
35464
35465    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
35466    pub fn r#set_out_of_band_inline(
35467        &self,
35468        mut value: bool,
35469    ) -> fidl::client::QueryResponseFut<
35470        BaseSocketSetOutOfBandInlineResult,
35471        fidl::encoding::DefaultFuchsiaResourceDialect,
35472    > {
35473        DatagramSocketProxyInterface::r#set_out_of_band_inline(self, value)
35474    }
35475
35476    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
35477    pub fn r#get_out_of_band_inline(
35478        &self,
35479    ) -> fidl::client::QueryResponseFut<
35480        BaseSocketGetOutOfBandInlineResult,
35481        fidl::encoding::DefaultFuchsiaResourceDialect,
35482    > {
35483        DatagramSocketProxyInterface::r#get_out_of_band_inline(self)
35484    }
35485
35486    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
35487    pub fn r#set_no_check(
35488        &self,
35489        mut value: bool,
35490    ) -> fidl::client::QueryResponseFut<
35491        BaseSocketSetNoCheckResult,
35492        fidl::encoding::DefaultFuchsiaResourceDialect,
35493    > {
35494        DatagramSocketProxyInterface::r#set_no_check(self, value)
35495    }
35496
35497    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
35498    pub fn r#get_no_check(
35499        &self,
35500    ) -> fidl::client::QueryResponseFut<
35501        BaseSocketGetNoCheckResult,
35502        fidl::encoding::DefaultFuchsiaResourceDialect,
35503    > {
35504        DatagramSocketProxyInterface::r#get_no_check(self)
35505    }
35506
35507    /// Set `SOL_SOCKET` -> `SO_LINGER`.
35508    pub fn r#set_linger(
35509        &self,
35510        mut linger: bool,
35511        mut length_secs: u32,
35512    ) -> fidl::client::QueryResponseFut<
35513        BaseSocketSetLingerResult,
35514        fidl::encoding::DefaultFuchsiaResourceDialect,
35515    > {
35516        DatagramSocketProxyInterface::r#set_linger(self, linger, length_secs)
35517    }
35518
35519    /// Get `SOL_SOCKET` -> `SO_LINGER`.
35520    pub fn r#get_linger(
35521        &self,
35522    ) -> fidl::client::QueryResponseFut<
35523        BaseSocketGetLingerResult,
35524        fidl::encoding::DefaultFuchsiaResourceDialect,
35525    > {
35526        DatagramSocketProxyInterface::r#get_linger(self)
35527    }
35528
35529    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
35530    pub fn r#set_reuse_port(
35531        &self,
35532        mut value: bool,
35533    ) -> fidl::client::QueryResponseFut<
35534        BaseSocketSetReusePortResult,
35535        fidl::encoding::DefaultFuchsiaResourceDialect,
35536    > {
35537        DatagramSocketProxyInterface::r#set_reuse_port(self, value)
35538    }
35539
35540    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
35541    pub fn r#get_reuse_port(
35542        &self,
35543    ) -> fidl::client::QueryResponseFut<
35544        BaseSocketGetReusePortResult,
35545        fidl::encoding::DefaultFuchsiaResourceDialect,
35546    > {
35547        DatagramSocketProxyInterface::r#get_reuse_port(self)
35548    }
35549
35550    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
35551    pub fn r#get_accept_conn(
35552        &self,
35553    ) -> fidl::client::QueryResponseFut<
35554        BaseSocketGetAcceptConnResult,
35555        fidl::encoding::DefaultFuchsiaResourceDialect,
35556    > {
35557        DatagramSocketProxyInterface::r#get_accept_conn(self)
35558    }
35559
35560    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
35561    pub fn r#set_bind_to_device(
35562        &self,
35563        mut value: &str,
35564    ) -> fidl::client::QueryResponseFut<
35565        BaseSocketSetBindToDeviceResult,
35566        fidl::encoding::DefaultFuchsiaResourceDialect,
35567    > {
35568        DatagramSocketProxyInterface::r#set_bind_to_device(self, value)
35569    }
35570
35571    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
35572    pub fn r#get_bind_to_device(
35573        &self,
35574    ) -> fidl::client::QueryResponseFut<
35575        BaseSocketGetBindToDeviceResult,
35576        fidl::encoding::DefaultFuchsiaResourceDialect,
35577    > {
35578        DatagramSocketProxyInterface::r#get_bind_to_device(self)
35579    }
35580
35581    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
35582    /// If `value` is 0, this clears the bound interface.
35583    pub fn r#set_bind_to_interface_index(
35584        &self,
35585        mut value: u64,
35586    ) -> fidl::client::QueryResponseFut<
35587        BaseSocketSetBindToInterfaceIndexResult,
35588        fidl::encoding::DefaultFuchsiaResourceDialect,
35589    > {
35590        DatagramSocketProxyInterface::r#set_bind_to_interface_index(self, value)
35591    }
35592
35593    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
35594    pub fn r#get_bind_to_interface_index(
35595        &self,
35596    ) -> fidl::client::QueryResponseFut<
35597        BaseSocketGetBindToInterfaceIndexResult,
35598        fidl::encoding::DefaultFuchsiaResourceDialect,
35599    > {
35600        DatagramSocketProxyInterface::r#get_bind_to_interface_index(self)
35601    }
35602
35603    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
35604    pub fn r#set_timestamp(
35605        &self,
35606        mut value: TimestampOption,
35607    ) -> fidl::client::QueryResponseFut<
35608        BaseSocketSetTimestampResult,
35609        fidl::encoding::DefaultFuchsiaResourceDialect,
35610    > {
35611        DatagramSocketProxyInterface::r#set_timestamp(self, value)
35612    }
35613
35614    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
35615    pub fn r#get_timestamp(
35616        &self,
35617    ) -> fidl::client::QueryResponseFut<
35618        BaseSocketGetTimestampResult,
35619        fidl::encoding::DefaultFuchsiaResourceDialect,
35620    > {
35621        DatagramSocketProxyInterface::r#get_timestamp(self)
35622    }
35623
35624    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
35625    /// unlike the standard SO_MARK, this API has multiple mark domains and each
35626    /// mark can be set independently in each domain.
35627    pub fn r#set_mark(
35628        &self,
35629        mut domain: fidl_fuchsia_net::MarkDomain,
35630        mut mark: &OptionalUint32,
35631    ) -> fidl::client::QueryResponseFut<
35632        BaseSocketSetMarkResult,
35633        fidl::encoding::DefaultFuchsiaResourceDialect,
35634    > {
35635        DatagramSocketProxyInterface::r#set_mark(self, domain, mark)
35636    }
35637
35638    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
35639    /// unlike the standard SO_MARK, this API has multiple mark domains and each
35640    /// mark can be retrieved independently in each domain.
35641    pub fn r#get_mark(
35642        &self,
35643        mut domain: fidl_fuchsia_net::MarkDomain,
35644    ) -> fidl::client::QueryResponseFut<
35645        BaseSocketGetMarkResult,
35646        fidl::encoding::DefaultFuchsiaResourceDialect,
35647    > {
35648        DatagramSocketProxyInterface::r#get_mark(self, domain)
35649    }
35650
35651    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
35652    pub fn r#get_cookie(
35653        &self,
35654    ) -> fidl::client::QueryResponseFut<
35655        BaseSocketGetCookieResult,
35656        fidl::encoding::DefaultFuchsiaResourceDialect,
35657    > {
35658        DatagramSocketProxyInterface::r#get_cookie(self)
35659    }
35660
35661    /// Sets the local address used for the socket.
35662    pub fn r#bind(
35663        &self,
35664        mut addr: &fidl_fuchsia_net::SocketAddress,
35665    ) -> fidl::client::QueryResponseFut<
35666        BaseNetworkSocketBindResult,
35667        fidl::encoding::DefaultFuchsiaResourceDialect,
35668    > {
35669        DatagramSocketProxyInterface::r#bind(self, addr)
35670    }
35671
35672    /// Initiates a connection to a remote address.
35673    pub fn r#connect(
35674        &self,
35675        mut addr: &fidl_fuchsia_net::SocketAddress,
35676    ) -> fidl::client::QueryResponseFut<
35677        BaseNetworkSocketConnectResult,
35678        fidl::encoding::DefaultFuchsiaResourceDialect,
35679    > {
35680        DatagramSocketProxyInterface::r#connect(self, addr)
35681    }
35682
35683    /// Clears connection information from this socket.
35684    pub fn r#disconnect(
35685        &self,
35686    ) -> fidl::client::QueryResponseFut<
35687        BaseNetworkSocketDisconnectResult,
35688        fidl::encoding::DefaultFuchsiaResourceDialect,
35689    > {
35690        DatagramSocketProxyInterface::r#disconnect(self)
35691    }
35692
35693    /// Retrieves the local socket address.
35694    pub fn r#get_sock_name(
35695        &self,
35696    ) -> fidl::client::QueryResponseFut<
35697        BaseNetworkSocketGetSockNameResult,
35698        fidl::encoding::DefaultFuchsiaResourceDialect,
35699    > {
35700        DatagramSocketProxyInterface::r#get_sock_name(self)
35701    }
35702
35703    /// Retrieves the remote socket address.
35704    pub fn r#get_peer_name(
35705        &self,
35706    ) -> fidl::client::QueryResponseFut<
35707        BaseNetworkSocketGetPeerNameResult,
35708        fidl::encoding::DefaultFuchsiaResourceDialect,
35709    > {
35710        DatagramSocketProxyInterface::r#get_peer_name(self)
35711    }
35712
35713    /// Shuts down part of the socket.
35714    pub fn r#shutdown(
35715        &self,
35716        mut mode: ShutdownMode,
35717    ) -> fidl::client::QueryResponseFut<
35718        BaseNetworkSocketShutdownResult,
35719        fidl::encoding::DefaultFuchsiaResourceDialect,
35720    > {
35721        DatagramSocketProxyInterface::r#shutdown(self, mode)
35722    }
35723
35724    /// Set `SOL_IP` -> `IP_TOS`.
35725    pub fn r#set_ip_type_of_service(
35726        &self,
35727        mut value: u8,
35728    ) -> fidl::client::QueryResponseFut<
35729        BaseNetworkSocketSetIpTypeOfServiceResult,
35730        fidl::encoding::DefaultFuchsiaResourceDialect,
35731    > {
35732        DatagramSocketProxyInterface::r#set_ip_type_of_service(self, value)
35733    }
35734
35735    /// Get `SOL_IP` -> `IP_TOS`.
35736    pub fn r#get_ip_type_of_service(
35737        &self,
35738    ) -> fidl::client::QueryResponseFut<
35739        BaseNetworkSocketGetIpTypeOfServiceResult,
35740        fidl::encoding::DefaultFuchsiaResourceDialect,
35741    > {
35742        DatagramSocketProxyInterface::r#get_ip_type_of_service(self)
35743    }
35744
35745    /// Set `SOL_IP` -> `IP_TTL`.
35746    pub fn r#set_ip_ttl(
35747        &self,
35748        mut value: &OptionalUint8,
35749    ) -> fidl::client::QueryResponseFut<
35750        BaseNetworkSocketSetIpTtlResult,
35751        fidl::encoding::DefaultFuchsiaResourceDialect,
35752    > {
35753        DatagramSocketProxyInterface::r#set_ip_ttl(self, value)
35754    }
35755
35756    /// Get `SOL_IP` -> `IP_TTL`.
35757    pub fn r#get_ip_ttl(
35758        &self,
35759    ) -> fidl::client::QueryResponseFut<
35760        BaseNetworkSocketGetIpTtlResult,
35761        fidl::encoding::DefaultFuchsiaResourceDialect,
35762    > {
35763        DatagramSocketProxyInterface::r#get_ip_ttl(self)
35764    }
35765
35766    /// Set `SOL_IP` -> `IP_PKTINFO`.
35767    pub fn r#set_ip_packet_info(
35768        &self,
35769        mut value: bool,
35770    ) -> fidl::client::QueryResponseFut<
35771        BaseNetworkSocketSetIpPacketInfoResult,
35772        fidl::encoding::DefaultFuchsiaResourceDialect,
35773    > {
35774        DatagramSocketProxyInterface::r#set_ip_packet_info(self, value)
35775    }
35776
35777    /// Get `SOL_IP` -> `IP_PKTINFO`.
35778    pub fn r#get_ip_packet_info(
35779        &self,
35780    ) -> fidl::client::QueryResponseFut<
35781        BaseNetworkSocketGetIpPacketInfoResult,
35782        fidl::encoding::DefaultFuchsiaResourceDialect,
35783    > {
35784        DatagramSocketProxyInterface::r#get_ip_packet_info(self)
35785    }
35786
35787    /// Set `SOL_IP` -> `IP_RECVTOS`.
35788    pub fn r#set_ip_receive_type_of_service(
35789        &self,
35790        mut value: bool,
35791    ) -> fidl::client::QueryResponseFut<
35792        BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
35793        fidl::encoding::DefaultFuchsiaResourceDialect,
35794    > {
35795        DatagramSocketProxyInterface::r#set_ip_receive_type_of_service(self, value)
35796    }
35797
35798    /// Get `SOL_IP` -> `IP_RECVTOS`.
35799    pub fn r#get_ip_receive_type_of_service(
35800        &self,
35801    ) -> fidl::client::QueryResponseFut<
35802        BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
35803        fidl::encoding::DefaultFuchsiaResourceDialect,
35804    > {
35805        DatagramSocketProxyInterface::r#get_ip_receive_type_of_service(self)
35806    }
35807
35808    /// Set `SOL_IP` -> `IP_RECVTTL`.
35809    pub fn r#set_ip_receive_ttl(
35810        &self,
35811        mut value: bool,
35812    ) -> fidl::client::QueryResponseFut<
35813        BaseNetworkSocketSetIpReceiveTtlResult,
35814        fidl::encoding::DefaultFuchsiaResourceDialect,
35815    > {
35816        DatagramSocketProxyInterface::r#set_ip_receive_ttl(self, value)
35817    }
35818
35819    /// Get `SOL_IP` -> `IP_RECVTTL`.
35820    pub fn r#get_ip_receive_ttl(
35821        &self,
35822    ) -> fidl::client::QueryResponseFut<
35823        BaseNetworkSocketGetIpReceiveTtlResult,
35824        fidl::encoding::DefaultFuchsiaResourceDialect,
35825    > {
35826        DatagramSocketProxyInterface::r#get_ip_receive_ttl(self)
35827    }
35828
35829    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
35830    pub fn r#set_ip_multicast_interface(
35831        &self,
35832        mut iface: u64,
35833        mut address: &fidl_fuchsia_net::Ipv4Address,
35834    ) -> fidl::client::QueryResponseFut<
35835        BaseNetworkSocketSetIpMulticastInterfaceResult,
35836        fidl::encoding::DefaultFuchsiaResourceDialect,
35837    > {
35838        DatagramSocketProxyInterface::r#set_ip_multicast_interface(self, iface, address)
35839    }
35840
35841    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
35842    pub fn r#get_ip_multicast_interface(
35843        &self,
35844    ) -> fidl::client::QueryResponseFut<
35845        BaseNetworkSocketGetIpMulticastInterfaceResult,
35846        fidl::encoding::DefaultFuchsiaResourceDialect,
35847    > {
35848        DatagramSocketProxyInterface::r#get_ip_multicast_interface(self)
35849    }
35850
35851    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
35852    pub fn r#set_ip_multicast_ttl(
35853        &self,
35854        mut value: &OptionalUint8,
35855    ) -> fidl::client::QueryResponseFut<
35856        BaseNetworkSocketSetIpMulticastTtlResult,
35857        fidl::encoding::DefaultFuchsiaResourceDialect,
35858    > {
35859        DatagramSocketProxyInterface::r#set_ip_multicast_ttl(self, value)
35860    }
35861
35862    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
35863    pub fn r#get_ip_multicast_ttl(
35864        &self,
35865    ) -> fidl::client::QueryResponseFut<
35866        BaseNetworkSocketGetIpMulticastTtlResult,
35867        fidl::encoding::DefaultFuchsiaResourceDialect,
35868    > {
35869        DatagramSocketProxyInterface::r#get_ip_multicast_ttl(self)
35870    }
35871
35872    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
35873    pub fn r#set_ip_multicast_loopback(
35874        &self,
35875        mut value: bool,
35876    ) -> fidl::client::QueryResponseFut<
35877        BaseNetworkSocketSetIpMulticastLoopbackResult,
35878        fidl::encoding::DefaultFuchsiaResourceDialect,
35879    > {
35880        DatagramSocketProxyInterface::r#set_ip_multicast_loopback(self, value)
35881    }
35882
35883    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
35884    pub fn r#get_ip_multicast_loopback(
35885        &self,
35886    ) -> fidl::client::QueryResponseFut<
35887        BaseNetworkSocketGetIpMulticastLoopbackResult,
35888        fidl::encoding::DefaultFuchsiaResourceDialect,
35889    > {
35890        DatagramSocketProxyInterface::r#get_ip_multicast_loopback(self)
35891    }
35892
35893    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
35894    pub fn r#add_ip_membership(
35895        &self,
35896        mut membership: &IpMulticastMembership,
35897    ) -> fidl::client::QueryResponseFut<
35898        BaseNetworkSocketAddIpMembershipResult,
35899        fidl::encoding::DefaultFuchsiaResourceDialect,
35900    > {
35901        DatagramSocketProxyInterface::r#add_ip_membership(self, membership)
35902    }
35903
35904    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
35905    pub fn r#drop_ip_membership(
35906        &self,
35907        mut membership: &IpMulticastMembership,
35908    ) -> fidl::client::QueryResponseFut<
35909        BaseNetworkSocketDropIpMembershipResult,
35910        fidl::encoding::DefaultFuchsiaResourceDialect,
35911    > {
35912        DatagramSocketProxyInterface::r#drop_ip_membership(self, membership)
35913    }
35914
35915    /// Set `SOL_IP` -> `IP_TRANSPARENT`
35916    pub fn r#set_ip_transparent(
35917        &self,
35918        mut value: bool,
35919    ) -> fidl::client::QueryResponseFut<
35920        BaseNetworkSocketSetIpTransparentResult,
35921        fidl::encoding::DefaultFuchsiaResourceDialect,
35922    > {
35923        DatagramSocketProxyInterface::r#set_ip_transparent(self, value)
35924    }
35925
35926    /// Get `SOL_IP` -> `IP_TRANSPARENT`
35927    pub fn r#get_ip_transparent(
35928        &self,
35929    ) -> fidl::client::QueryResponseFut<
35930        BaseNetworkSocketGetIpTransparentResult,
35931        fidl::encoding::DefaultFuchsiaResourceDialect,
35932    > {
35933        DatagramSocketProxyInterface::r#get_ip_transparent(self)
35934    }
35935
35936    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
35937    pub fn r#set_ip_receive_original_destination_address(
35938        &self,
35939        mut value: bool,
35940    ) -> fidl::client::QueryResponseFut<
35941        BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
35942        fidl::encoding::DefaultFuchsiaResourceDialect,
35943    > {
35944        DatagramSocketProxyInterface::r#set_ip_receive_original_destination_address(self, value)
35945    }
35946
35947    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
35948    pub fn r#get_ip_receive_original_destination_address(
35949        &self,
35950    ) -> fidl::client::QueryResponseFut<
35951        BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
35952        fidl::encoding::DefaultFuchsiaResourceDialect,
35953    > {
35954        DatagramSocketProxyInterface::r#get_ip_receive_original_destination_address(self)
35955    }
35956
35957    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
35958    pub fn r#add_ipv6_membership(
35959        &self,
35960        mut membership: &Ipv6MulticastMembership,
35961    ) -> fidl::client::QueryResponseFut<
35962        BaseNetworkSocketAddIpv6MembershipResult,
35963        fidl::encoding::DefaultFuchsiaResourceDialect,
35964    > {
35965        DatagramSocketProxyInterface::r#add_ipv6_membership(self, membership)
35966    }
35967
35968    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
35969    pub fn r#drop_ipv6_membership(
35970        &self,
35971        mut membership: &Ipv6MulticastMembership,
35972    ) -> fidl::client::QueryResponseFut<
35973        BaseNetworkSocketDropIpv6MembershipResult,
35974        fidl::encoding::DefaultFuchsiaResourceDialect,
35975    > {
35976        DatagramSocketProxyInterface::r#drop_ipv6_membership(self, membership)
35977    }
35978
35979    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
35980    pub fn r#set_ipv6_multicast_interface(
35981        &self,
35982        mut value: u64,
35983    ) -> fidl::client::QueryResponseFut<
35984        BaseNetworkSocketSetIpv6MulticastInterfaceResult,
35985        fidl::encoding::DefaultFuchsiaResourceDialect,
35986    > {
35987        DatagramSocketProxyInterface::r#set_ipv6_multicast_interface(self, value)
35988    }
35989
35990    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
35991    pub fn r#get_ipv6_multicast_interface(
35992        &self,
35993    ) -> fidl::client::QueryResponseFut<
35994        BaseNetworkSocketGetIpv6MulticastInterfaceResult,
35995        fidl::encoding::DefaultFuchsiaResourceDialect,
35996    > {
35997        DatagramSocketProxyInterface::r#get_ipv6_multicast_interface(self)
35998    }
35999
36000    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
36001    pub fn r#set_ipv6_unicast_hops(
36002        &self,
36003        mut value: &OptionalUint8,
36004    ) -> fidl::client::QueryResponseFut<
36005        BaseNetworkSocketSetIpv6UnicastHopsResult,
36006        fidl::encoding::DefaultFuchsiaResourceDialect,
36007    > {
36008        DatagramSocketProxyInterface::r#set_ipv6_unicast_hops(self, value)
36009    }
36010
36011    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
36012    pub fn r#get_ipv6_unicast_hops(
36013        &self,
36014    ) -> fidl::client::QueryResponseFut<
36015        BaseNetworkSocketGetIpv6UnicastHopsResult,
36016        fidl::encoding::DefaultFuchsiaResourceDialect,
36017    > {
36018        DatagramSocketProxyInterface::r#get_ipv6_unicast_hops(self)
36019    }
36020
36021    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
36022    pub fn r#set_ipv6_receive_hop_limit(
36023        &self,
36024        mut value: bool,
36025    ) -> fidl::client::QueryResponseFut<
36026        BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
36027        fidl::encoding::DefaultFuchsiaResourceDialect,
36028    > {
36029        DatagramSocketProxyInterface::r#set_ipv6_receive_hop_limit(self, value)
36030    }
36031
36032    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
36033    pub fn r#get_ipv6_receive_hop_limit(
36034        &self,
36035    ) -> fidl::client::QueryResponseFut<
36036        BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
36037        fidl::encoding::DefaultFuchsiaResourceDialect,
36038    > {
36039        DatagramSocketProxyInterface::r#get_ipv6_receive_hop_limit(self)
36040    }
36041
36042    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
36043    pub fn r#set_ipv6_multicast_hops(
36044        &self,
36045        mut value: &OptionalUint8,
36046    ) -> fidl::client::QueryResponseFut<
36047        BaseNetworkSocketSetIpv6MulticastHopsResult,
36048        fidl::encoding::DefaultFuchsiaResourceDialect,
36049    > {
36050        DatagramSocketProxyInterface::r#set_ipv6_multicast_hops(self, value)
36051    }
36052
36053    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
36054    pub fn r#get_ipv6_multicast_hops(
36055        &self,
36056    ) -> fidl::client::QueryResponseFut<
36057        BaseNetworkSocketGetIpv6MulticastHopsResult,
36058        fidl::encoding::DefaultFuchsiaResourceDialect,
36059    > {
36060        DatagramSocketProxyInterface::r#get_ipv6_multicast_hops(self)
36061    }
36062
36063    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
36064    pub fn r#set_ipv6_multicast_loopback(
36065        &self,
36066        mut value: bool,
36067    ) -> fidl::client::QueryResponseFut<
36068        BaseNetworkSocketSetIpv6MulticastLoopbackResult,
36069        fidl::encoding::DefaultFuchsiaResourceDialect,
36070    > {
36071        DatagramSocketProxyInterface::r#set_ipv6_multicast_loopback(self, value)
36072    }
36073
36074    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
36075    pub fn r#get_ipv6_multicast_loopback(
36076        &self,
36077    ) -> fidl::client::QueryResponseFut<
36078        BaseNetworkSocketGetIpv6MulticastLoopbackResult,
36079        fidl::encoding::DefaultFuchsiaResourceDialect,
36080    > {
36081        DatagramSocketProxyInterface::r#get_ipv6_multicast_loopback(self)
36082    }
36083
36084    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
36085    pub fn r#set_ipv6_only(
36086        &self,
36087        mut value: bool,
36088    ) -> fidl::client::QueryResponseFut<
36089        BaseNetworkSocketSetIpv6OnlyResult,
36090        fidl::encoding::DefaultFuchsiaResourceDialect,
36091    > {
36092        DatagramSocketProxyInterface::r#set_ipv6_only(self, value)
36093    }
36094
36095    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
36096    pub fn r#get_ipv6_only(
36097        &self,
36098    ) -> fidl::client::QueryResponseFut<
36099        BaseNetworkSocketGetIpv6OnlyResult,
36100        fidl::encoding::DefaultFuchsiaResourceDialect,
36101    > {
36102        DatagramSocketProxyInterface::r#get_ipv6_only(self)
36103    }
36104
36105    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
36106    pub fn r#set_ipv6_receive_traffic_class(
36107        &self,
36108        mut value: bool,
36109    ) -> fidl::client::QueryResponseFut<
36110        BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
36111        fidl::encoding::DefaultFuchsiaResourceDialect,
36112    > {
36113        DatagramSocketProxyInterface::r#set_ipv6_receive_traffic_class(self, value)
36114    }
36115
36116    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
36117    pub fn r#get_ipv6_receive_traffic_class(
36118        &self,
36119    ) -> fidl::client::QueryResponseFut<
36120        BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
36121        fidl::encoding::DefaultFuchsiaResourceDialect,
36122    > {
36123        DatagramSocketProxyInterface::r#get_ipv6_receive_traffic_class(self)
36124    }
36125
36126    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
36127    pub fn r#set_ipv6_traffic_class(
36128        &self,
36129        mut value: &OptionalUint8,
36130    ) -> fidl::client::QueryResponseFut<
36131        BaseNetworkSocketSetIpv6TrafficClassResult,
36132        fidl::encoding::DefaultFuchsiaResourceDialect,
36133    > {
36134        DatagramSocketProxyInterface::r#set_ipv6_traffic_class(self, value)
36135    }
36136
36137    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
36138    pub fn r#get_ipv6_traffic_class(
36139        &self,
36140    ) -> fidl::client::QueryResponseFut<
36141        BaseNetworkSocketGetIpv6TrafficClassResult,
36142        fidl::encoding::DefaultFuchsiaResourceDialect,
36143    > {
36144        DatagramSocketProxyInterface::r#get_ipv6_traffic_class(self)
36145    }
36146
36147    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
36148    pub fn r#set_ipv6_receive_packet_info(
36149        &self,
36150        mut value: bool,
36151    ) -> fidl::client::QueryResponseFut<
36152        BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
36153        fidl::encoding::DefaultFuchsiaResourceDialect,
36154    > {
36155        DatagramSocketProxyInterface::r#set_ipv6_receive_packet_info(self, value)
36156    }
36157
36158    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
36159    pub fn r#get_ipv6_receive_packet_info(
36160        &self,
36161    ) -> fidl::client::QueryResponseFut<
36162        BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
36163        fidl::encoding::DefaultFuchsiaResourceDialect,
36164    > {
36165        DatagramSocketProxyInterface::r#get_ipv6_receive_packet_info(self)
36166    }
36167
36168    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
36169    pub fn r#get_original_destination(
36170        &self,
36171    ) -> fidl::client::QueryResponseFut<
36172        BaseNetworkSocketGetOriginalDestinationResult,
36173        fidl::encoding::DefaultFuchsiaResourceDialect,
36174    > {
36175        DatagramSocketProxyInterface::r#get_original_destination(self)
36176    }
36177
36178    /// Retrieves creation information from the socket.
36179    ///
36180    /// - response `domain` the socket's associated domain.
36181    /// - response `proto` the socket's associated protocol.
36182    pub fn r#get_info(
36183        &self,
36184    ) -> fidl::client::QueryResponseFut<
36185        BaseDatagramSocketGetInfoResult,
36186        fidl::encoding::DefaultFuchsiaResourceDialect,
36187    > {
36188        DatagramSocketProxyInterface::r#get_info(self)
36189    }
36190
36191    pub fn r#describe(
36192        &self,
36193    ) -> fidl::client::QueryResponseFut<
36194        DatagramSocketDescribeResponse,
36195        fidl::encoding::DefaultFuchsiaResourceDialect,
36196    > {
36197        DatagramSocketProxyInterface::r#describe(self)
36198    }
36199
36200    /// Validates that data can be sent.
36201    ///
36202    /// + request `args` the requested disposition of data to be sent.
36203    /// - response the constraints sent data must satisfy.
36204    /// * error the error code indicating the reason for validation failure.
36205    pub fn r#send_msg_preflight(
36206        &self,
36207        mut payload: &DatagramSocketSendMsgPreflightRequest,
36208    ) -> fidl::client::QueryResponseFut<
36209        DatagramSocketSendMsgPreflightResult,
36210        fidl::encoding::DefaultFuchsiaResourceDialect,
36211    > {
36212        DatagramSocketProxyInterface::r#send_msg_preflight(self, payload)
36213    }
36214
36215    /// Returns the set of requested control messages.
36216    ///
36217    /// - response the set of currently requested control messages.
36218    pub fn r#recv_msg_postflight(
36219        &self,
36220    ) -> fidl::client::QueryResponseFut<
36221        DatagramSocketRecvMsgPostflightResult,
36222        fidl::encoding::DefaultFuchsiaResourceDialect,
36223    > {
36224        DatagramSocketProxyInterface::r#recv_msg_postflight(self)
36225    }
36226}
36227
36228impl DatagramSocketProxyInterface for DatagramSocketProxy {
36229    fn r#clone(
36230        &self,
36231        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
36232    ) -> Result<(), fidl::Error> {
36233        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
36234            (request,),
36235            0x20d8a7aba2168a79,
36236            fidl::encoding::DynamicFlags::empty(),
36237        )
36238    }
36239
36240    type CloseResponseFut = fidl::client::QueryResponseFut<
36241        fidl_fuchsia_unknown::CloseableCloseResult,
36242        fidl::encoding::DefaultFuchsiaResourceDialect,
36243    >;
36244    fn r#close(&self) -> Self::CloseResponseFut {
36245        fn _decode(
36246            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36247        ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
36248            let _response = fidl::client::decode_transaction_body::<
36249                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
36250                fidl::encoding::DefaultFuchsiaResourceDialect,
36251                0x5ac5d459ad7f657e,
36252            >(_buf?)?;
36253            Ok(_response.map(|x| x))
36254        }
36255        self.client.send_query_and_decode::<
36256            fidl::encoding::EmptyPayload,
36257            fidl_fuchsia_unknown::CloseableCloseResult,
36258        >(
36259            (),
36260            0x5ac5d459ad7f657e,
36261            fidl::encoding::DynamicFlags::empty(),
36262            _decode,
36263        )
36264    }
36265
36266    type QueryResponseFut =
36267        fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>;
36268    fn r#query(&self) -> Self::QueryResponseFut {
36269        fn _decode(
36270            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36271        ) -> Result<Vec<u8>, fidl::Error> {
36272            let _response = fidl::client::decode_transaction_body::<
36273                fidl_fuchsia_unknown::QueryableQueryResponse,
36274                fidl::encoding::DefaultFuchsiaResourceDialect,
36275                0x2658edee9decfc06,
36276            >(_buf?)?;
36277            Ok(_response.protocol)
36278        }
36279        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, Vec<u8>>(
36280            (),
36281            0x2658edee9decfc06,
36282            fidl::encoding::DynamicFlags::empty(),
36283            _decode,
36284        )
36285    }
36286
36287    type SetReuseAddressResponseFut = fidl::client::QueryResponseFut<
36288        BaseSocketSetReuseAddressResult,
36289        fidl::encoding::DefaultFuchsiaResourceDialect,
36290    >;
36291    fn r#set_reuse_address(&self, mut value: bool) -> Self::SetReuseAddressResponseFut {
36292        fn _decode(
36293            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36294        ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
36295            let _response = fidl::client::decode_transaction_body::<
36296                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
36297                fidl::encoding::DefaultFuchsiaResourceDialect,
36298                0x1fd74ee8b9a4a876,
36299            >(_buf?)?;
36300            Ok(_response.map(|x| x))
36301        }
36302        self.client.send_query_and_decode::<
36303            BaseSocketSetReuseAddressRequest,
36304            BaseSocketSetReuseAddressResult,
36305        >(
36306            (value,),
36307            0x1fd74ee8b9a4a876,
36308            fidl::encoding::DynamicFlags::empty(),
36309            _decode,
36310        )
36311    }
36312
36313    type GetReuseAddressResponseFut = fidl::client::QueryResponseFut<
36314        BaseSocketGetReuseAddressResult,
36315        fidl::encoding::DefaultFuchsiaResourceDialect,
36316    >;
36317    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut {
36318        fn _decode(
36319            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36320        ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
36321            let _response = fidl::client::decode_transaction_body::<
36322                fidl::encoding::ResultType<
36323                    BaseSocketGetReuseAddressResponse,
36324                    fidl_fuchsia_posix::Errno,
36325                >,
36326                fidl::encoding::DefaultFuchsiaResourceDialect,
36327                0x67b7206b8d1bc0a5,
36328            >(_buf?)?;
36329            Ok(_response.map(|x| x.value))
36330        }
36331        self.client
36332            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReuseAddressResult>(
36333                (),
36334                0x67b7206b8d1bc0a5,
36335                fidl::encoding::DynamicFlags::empty(),
36336                _decode,
36337            )
36338    }
36339
36340    type GetErrorResponseFut = fidl::client::QueryResponseFut<
36341        BaseSocketGetErrorResult,
36342        fidl::encoding::DefaultFuchsiaResourceDialect,
36343    >;
36344    fn r#get_error(&self) -> Self::GetErrorResponseFut {
36345        fn _decode(
36346            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36347        ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
36348            let _response = fidl::client::decode_transaction_body::<
36349                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
36350                fidl::encoding::DefaultFuchsiaResourceDialect,
36351                0x5aad39b33e5f6ebb,
36352            >(_buf?)?;
36353            Ok(_response.map(|x| x))
36354        }
36355        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetErrorResult>(
36356            (),
36357            0x5aad39b33e5f6ebb,
36358            fidl::encoding::DynamicFlags::empty(),
36359            _decode,
36360        )
36361    }
36362
36363    type SetBroadcastResponseFut = fidl::client::QueryResponseFut<
36364        BaseSocketSetBroadcastResult,
36365        fidl::encoding::DefaultFuchsiaResourceDialect,
36366    >;
36367    fn r#set_broadcast(&self, mut value: bool) -> Self::SetBroadcastResponseFut {
36368        fn _decode(
36369            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36370        ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
36371            let _response = fidl::client::decode_transaction_body::<
36372                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
36373                fidl::encoding::DefaultFuchsiaResourceDialect,
36374                0x6023e081ce3cd947,
36375            >(_buf?)?;
36376            Ok(_response.map(|x| x))
36377        }
36378        self.client
36379            .send_query_and_decode::<BaseSocketSetBroadcastRequest, BaseSocketSetBroadcastResult>(
36380                (value,),
36381                0x6023e081ce3cd947,
36382                fidl::encoding::DynamicFlags::empty(),
36383                _decode,
36384            )
36385    }
36386
36387    type GetBroadcastResponseFut = fidl::client::QueryResponseFut<
36388        BaseSocketGetBroadcastResult,
36389        fidl::encoding::DefaultFuchsiaResourceDialect,
36390    >;
36391    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut {
36392        fn _decode(
36393            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36394        ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
36395            let _response = fidl::client::decode_transaction_body::<
36396                fidl::encoding::ResultType<
36397                    BaseSocketGetBroadcastResponse,
36398                    fidl_fuchsia_posix::Errno,
36399                >,
36400                fidl::encoding::DefaultFuchsiaResourceDialect,
36401                0x68796fc556f9780d,
36402            >(_buf?)?;
36403            Ok(_response.map(|x| x.value))
36404        }
36405        self.client
36406            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBroadcastResult>(
36407                (),
36408                0x68796fc556f9780d,
36409                fidl::encoding::DynamicFlags::empty(),
36410                _decode,
36411            )
36412    }
36413
36414    type SetSendBufferResponseFut = fidl::client::QueryResponseFut<
36415        BaseSocketSetSendBufferResult,
36416        fidl::encoding::DefaultFuchsiaResourceDialect,
36417    >;
36418    fn r#set_send_buffer(&self, mut value_bytes: u64) -> Self::SetSendBufferResponseFut {
36419        fn _decode(
36420            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36421        ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
36422            let _response = fidl::client::decode_transaction_body::<
36423                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
36424                fidl::encoding::DefaultFuchsiaResourceDialect,
36425                0x756eac32d73a7a70,
36426            >(_buf?)?;
36427            Ok(_response.map(|x| x))
36428        }
36429        self.client
36430            .send_query_and_decode::<BaseSocketSetSendBufferRequest, BaseSocketSetSendBufferResult>(
36431                (value_bytes,),
36432                0x756eac32d73a7a70,
36433                fidl::encoding::DynamicFlags::empty(),
36434                _decode,
36435            )
36436    }
36437
36438    type GetSendBufferResponseFut = fidl::client::QueryResponseFut<
36439        BaseSocketGetSendBufferResult,
36440        fidl::encoding::DefaultFuchsiaResourceDialect,
36441    >;
36442    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut {
36443        fn _decode(
36444            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36445        ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
36446            let _response = fidl::client::decode_transaction_body::<
36447                fidl::encoding::ResultType<
36448                    BaseSocketGetSendBufferResponse,
36449                    fidl_fuchsia_posix::Errno,
36450                >,
36451                fidl::encoding::DefaultFuchsiaResourceDialect,
36452                0x78a52fd9c7b2410b,
36453            >(_buf?)?;
36454            Ok(_response.map(|x| x.value_bytes))
36455        }
36456        self.client
36457            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetSendBufferResult>(
36458                (),
36459                0x78a52fd9c7b2410b,
36460                fidl::encoding::DynamicFlags::empty(),
36461                _decode,
36462            )
36463    }
36464
36465    type SetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
36466        BaseSocketSetReceiveBufferResult,
36467        fidl::encoding::DefaultFuchsiaResourceDialect,
36468    >;
36469    fn r#set_receive_buffer(&self, mut value_bytes: u64) -> Self::SetReceiveBufferResponseFut {
36470        fn _decode(
36471            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36472        ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
36473            let _response = fidl::client::decode_transaction_body::<
36474                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
36475                fidl::encoding::DefaultFuchsiaResourceDialect,
36476                0x6b0cf2f1919c7001,
36477            >(_buf?)?;
36478            Ok(_response.map(|x| x))
36479        }
36480        self.client.send_query_and_decode::<
36481            BaseSocketSetReceiveBufferRequest,
36482            BaseSocketSetReceiveBufferResult,
36483        >(
36484            (value_bytes,),
36485            0x6b0cf2f1919c7001,
36486            fidl::encoding::DynamicFlags::empty(),
36487            _decode,
36488        )
36489    }
36490
36491    type GetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
36492        BaseSocketGetReceiveBufferResult,
36493        fidl::encoding::DefaultFuchsiaResourceDialect,
36494    >;
36495    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut {
36496        fn _decode(
36497            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36498        ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
36499            let _response = fidl::client::decode_transaction_body::<
36500                fidl::encoding::ResultType<
36501                    BaseSocketGetReceiveBufferResponse,
36502                    fidl_fuchsia_posix::Errno,
36503                >,
36504                fidl::encoding::DefaultFuchsiaResourceDialect,
36505                0x14c1a4b64f709e5c,
36506            >(_buf?)?;
36507            Ok(_response.map(|x| x.value_bytes))
36508        }
36509        self.client.send_query_and_decode::<
36510            fidl::encoding::EmptyPayload,
36511            BaseSocketGetReceiveBufferResult,
36512        >(
36513            (),
36514            0x14c1a4b64f709e5c,
36515            fidl::encoding::DynamicFlags::empty(),
36516            _decode,
36517        )
36518    }
36519
36520    type SetKeepAliveResponseFut = fidl::client::QueryResponseFut<
36521        BaseSocketSetKeepAliveResult,
36522        fidl::encoding::DefaultFuchsiaResourceDialect,
36523    >;
36524    fn r#set_keep_alive(&self, mut value: bool) -> Self::SetKeepAliveResponseFut {
36525        fn _decode(
36526            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36527        ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
36528            let _response = fidl::client::decode_transaction_body::<
36529                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
36530                fidl::encoding::DefaultFuchsiaResourceDialect,
36531                0x572df8f0b920d2c7,
36532            >(_buf?)?;
36533            Ok(_response.map(|x| x))
36534        }
36535        self.client
36536            .send_query_and_decode::<BaseSocketSetKeepAliveRequest, BaseSocketSetKeepAliveResult>(
36537                (value,),
36538                0x572df8f0b920d2c7,
36539                fidl::encoding::DynamicFlags::empty(),
36540                _decode,
36541            )
36542    }
36543
36544    type GetKeepAliveResponseFut = fidl::client::QueryResponseFut<
36545        BaseSocketGetKeepAliveResult,
36546        fidl::encoding::DefaultFuchsiaResourceDialect,
36547    >;
36548    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut {
36549        fn _decode(
36550            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36551        ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
36552            let _response = fidl::client::decode_transaction_body::<
36553                fidl::encoding::ResultType<
36554                    BaseSocketGetKeepAliveResponse,
36555                    fidl_fuchsia_posix::Errno,
36556                >,
36557                fidl::encoding::DefaultFuchsiaResourceDialect,
36558                0x2dd29d3215f2c9d2,
36559            >(_buf?)?;
36560            Ok(_response.map(|x| x.value))
36561        }
36562        self.client
36563            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetKeepAliveResult>(
36564                (),
36565                0x2dd29d3215f2c9d2,
36566                fidl::encoding::DynamicFlags::empty(),
36567                _decode,
36568            )
36569    }
36570
36571    type SetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
36572        BaseSocketSetOutOfBandInlineResult,
36573        fidl::encoding::DefaultFuchsiaResourceDialect,
36574    >;
36575    fn r#set_out_of_band_inline(&self, mut value: bool) -> Self::SetOutOfBandInlineResponseFut {
36576        fn _decode(
36577            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36578        ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
36579            let _response = fidl::client::decode_transaction_body::<
36580                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
36581                fidl::encoding::DefaultFuchsiaResourceDialect,
36582                0x3ecb49968bee439,
36583            >(_buf?)?;
36584            Ok(_response.map(|x| x))
36585        }
36586        self.client.send_query_and_decode::<
36587            BaseSocketSetOutOfBandInlineRequest,
36588            BaseSocketSetOutOfBandInlineResult,
36589        >(
36590            (value,),
36591            0x3ecb49968bee439,
36592            fidl::encoding::DynamicFlags::empty(),
36593            _decode,
36594        )
36595    }
36596
36597    type GetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
36598        BaseSocketGetOutOfBandInlineResult,
36599        fidl::encoding::DefaultFuchsiaResourceDialect,
36600    >;
36601    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut {
36602        fn _decode(
36603            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36604        ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
36605            let _response = fidl::client::decode_transaction_body::<
36606                fidl::encoding::ResultType<
36607                    BaseSocketGetOutOfBandInlineResponse,
36608                    fidl_fuchsia_posix::Errno,
36609                >,
36610                fidl::encoding::DefaultFuchsiaResourceDialect,
36611                0x348c1ab3aeca1745,
36612            >(_buf?)?;
36613            Ok(_response.map(|x| x.value))
36614        }
36615        self.client.send_query_and_decode::<
36616            fidl::encoding::EmptyPayload,
36617            BaseSocketGetOutOfBandInlineResult,
36618        >(
36619            (),
36620            0x348c1ab3aeca1745,
36621            fidl::encoding::DynamicFlags::empty(),
36622            _decode,
36623        )
36624    }
36625
36626    type SetNoCheckResponseFut = fidl::client::QueryResponseFut<
36627        BaseSocketSetNoCheckResult,
36628        fidl::encoding::DefaultFuchsiaResourceDialect,
36629    >;
36630    fn r#set_no_check(&self, mut value: bool) -> Self::SetNoCheckResponseFut {
36631        fn _decode(
36632            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36633        ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
36634            let _response = fidl::client::decode_transaction_body::<
36635                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
36636                fidl::encoding::DefaultFuchsiaResourceDialect,
36637                0x6bbf00c53a4c78c2,
36638            >(_buf?)?;
36639            Ok(_response.map(|x| x))
36640        }
36641        self.client
36642            .send_query_and_decode::<BaseSocketSetNoCheckRequest, BaseSocketSetNoCheckResult>(
36643                (value,),
36644                0x6bbf00c53a4c78c2,
36645                fidl::encoding::DynamicFlags::empty(),
36646                _decode,
36647            )
36648    }
36649
36650    type GetNoCheckResponseFut = fidl::client::QueryResponseFut<
36651        BaseSocketGetNoCheckResult,
36652        fidl::encoding::DefaultFuchsiaResourceDialect,
36653    >;
36654    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut {
36655        fn _decode(
36656            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36657        ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
36658            let _response = fidl::client::decode_transaction_body::<
36659                fidl::encoding::ResultType<BaseSocketGetNoCheckResponse, fidl_fuchsia_posix::Errno>,
36660                fidl::encoding::DefaultFuchsiaResourceDialect,
36661                0x2cd4249286417694,
36662            >(_buf?)?;
36663            Ok(_response.map(|x| x.value))
36664        }
36665        self.client
36666            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetNoCheckResult>(
36667                (),
36668                0x2cd4249286417694,
36669                fidl::encoding::DynamicFlags::empty(),
36670                _decode,
36671            )
36672    }
36673
36674    type SetLingerResponseFut = fidl::client::QueryResponseFut<
36675        BaseSocketSetLingerResult,
36676        fidl::encoding::DefaultFuchsiaResourceDialect,
36677    >;
36678    fn r#set_linger(&self, mut linger: bool, mut length_secs: u32) -> Self::SetLingerResponseFut {
36679        fn _decode(
36680            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36681        ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
36682            let _response = fidl::client::decode_transaction_body::<
36683                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
36684                fidl::encoding::DefaultFuchsiaResourceDialect,
36685                0x45386351246e998e,
36686            >(_buf?)?;
36687            Ok(_response.map(|x| x))
36688        }
36689        self.client.send_query_and_decode::<BaseSocketSetLingerRequest, BaseSocketSetLingerResult>(
36690            (linger, length_secs),
36691            0x45386351246e998e,
36692            fidl::encoding::DynamicFlags::empty(),
36693            _decode,
36694        )
36695    }
36696
36697    type GetLingerResponseFut = fidl::client::QueryResponseFut<
36698        BaseSocketGetLingerResult,
36699        fidl::encoding::DefaultFuchsiaResourceDialect,
36700    >;
36701    fn r#get_linger(&self) -> Self::GetLingerResponseFut {
36702        fn _decode(
36703            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36704        ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
36705            let _response = fidl::client::decode_transaction_body::<
36706                fidl::encoding::ResultType<BaseSocketGetLingerResponse, fidl_fuchsia_posix::Errno>,
36707                fidl::encoding::DefaultFuchsiaResourceDialect,
36708                0x48eb20fc5ccb0e45,
36709            >(_buf?)?;
36710            Ok(_response.map(|x| (x.linger, x.length_secs)))
36711        }
36712        self.client
36713            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetLingerResult>(
36714                (),
36715                0x48eb20fc5ccb0e45,
36716                fidl::encoding::DynamicFlags::empty(),
36717                _decode,
36718            )
36719    }
36720
36721    type SetReusePortResponseFut = fidl::client::QueryResponseFut<
36722        BaseSocketSetReusePortResult,
36723        fidl::encoding::DefaultFuchsiaResourceDialect,
36724    >;
36725    fn r#set_reuse_port(&self, mut value: bool) -> Self::SetReusePortResponseFut {
36726        fn _decode(
36727            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36728        ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
36729            let _response = fidl::client::decode_transaction_body::<
36730                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
36731                fidl::encoding::DefaultFuchsiaResourceDialect,
36732                0x24dd3e5cb36d9ccb,
36733            >(_buf?)?;
36734            Ok(_response.map(|x| x))
36735        }
36736        self.client
36737            .send_query_and_decode::<BaseSocketSetReusePortRequest, BaseSocketSetReusePortResult>(
36738                (value,),
36739                0x24dd3e5cb36d9ccb,
36740                fidl::encoding::DynamicFlags::empty(),
36741                _decode,
36742            )
36743    }
36744
36745    type GetReusePortResponseFut = fidl::client::QueryResponseFut<
36746        BaseSocketGetReusePortResult,
36747        fidl::encoding::DefaultFuchsiaResourceDialect,
36748    >;
36749    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut {
36750        fn _decode(
36751            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36752        ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
36753            let _response = fidl::client::decode_transaction_body::<
36754                fidl::encoding::ResultType<
36755                    BaseSocketGetReusePortResponse,
36756                    fidl_fuchsia_posix::Errno,
36757                >,
36758                fidl::encoding::DefaultFuchsiaResourceDialect,
36759                0x7a112c1ab54ff828,
36760            >(_buf?)?;
36761            Ok(_response.map(|x| x.value))
36762        }
36763        self.client
36764            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReusePortResult>(
36765                (),
36766                0x7a112c1ab54ff828,
36767                fidl::encoding::DynamicFlags::empty(),
36768                _decode,
36769            )
36770    }
36771
36772    type GetAcceptConnResponseFut = fidl::client::QueryResponseFut<
36773        BaseSocketGetAcceptConnResult,
36774        fidl::encoding::DefaultFuchsiaResourceDialect,
36775    >;
36776    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut {
36777        fn _decode(
36778            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36779        ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
36780            let _response = fidl::client::decode_transaction_body::<
36781                fidl::encoding::ResultType<
36782                    BaseSocketGetAcceptConnResponse,
36783                    fidl_fuchsia_posix::Errno,
36784                >,
36785                fidl::encoding::DefaultFuchsiaResourceDialect,
36786                0x67ce6db6c2ec8966,
36787            >(_buf?)?;
36788            Ok(_response.map(|x| x.value))
36789        }
36790        self.client
36791            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetAcceptConnResult>(
36792                (),
36793                0x67ce6db6c2ec8966,
36794                fidl::encoding::DynamicFlags::empty(),
36795                _decode,
36796            )
36797    }
36798
36799    type SetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
36800        BaseSocketSetBindToDeviceResult,
36801        fidl::encoding::DefaultFuchsiaResourceDialect,
36802    >;
36803    fn r#set_bind_to_device(&self, mut value: &str) -> Self::SetBindToDeviceResponseFut {
36804        fn _decode(
36805            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36806        ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
36807            let _response = fidl::client::decode_transaction_body::<
36808                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
36809                fidl::encoding::DefaultFuchsiaResourceDialect,
36810                0x2118b483f28aafc4,
36811            >(_buf?)?;
36812            Ok(_response.map(|x| x))
36813        }
36814        self.client.send_query_and_decode::<
36815            BaseSocketSetBindToDeviceRequest,
36816            BaseSocketSetBindToDeviceResult,
36817        >(
36818            (value,),
36819            0x2118b483f28aafc4,
36820            fidl::encoding::DynamicFlags::empty(),
36821            _decode,
36822        )
36823    }
36824
36825    type GetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
36826        BaseSocketGetBindToDeviceResult,
36827        fidl::encoding::DefaultFuchsiaResourceDialect,
36828    >;
36829    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut {
36830        fn _decode(
36831            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36832        ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
36833            let _response = fidl::client::decode_transaction_body::<
36834                fidl::encoding::ResultType<
36835                    BaseSocketGetBindToDeviceResponse,
36836                    fidl_fuchsia_posix::Errno,
36837                >,
36838                fidl::encoding::DefaultFuchsiaResourceDialect,
36839                0x1ab1fbf0ef7906c8,
36840            >(_buf?)?;
36841            Ok(_response.map(|x| x.value))
36842        }
36843        self.client
36844            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBindToDeviceResult>(
36845                (),
36846                0x1ab1fbf0ef7906c8,
36847                fidl::encoding::DynamicFlags::empty(),
36848                _decode,
36849            )
36850    }
36851
36852    type SetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
36853        BaseSocketSetBindToInterfaceIndexResult,
36854        fidl::encoding::DefaultFuchsiaResourceDialect,
36855    >;
36856    fn r#set_bind_to_interface_index(
36857        &self,
36858        mut value: u64,
36859    ) -> Self::SetBindToInterfaceIndexResponseFut {
36860        fn _decode(
36861            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36862        ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
36863            let _response = fidl::client::decode_transaction_body::<
36864                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
36865                fidl::encoding::DefaultFuchsiaResourceDialect,
36866                0x6e387a0def00821,
36867            >(_buf?)?;
36868            Ok(_response.map(|x| x))
36869        }
36870        self.client.send_query_and_decode::<
36871            BaseSocketSetBindToInterfaceIndexRequest,
36872            BaseSocketSetBindToInterfaceIndexResult,
36873        >(
36874            (value,),
36875            0x6e387a0def00821,
36876            fidl::encoding::DynamicFlags::empty(),
36877            _decode,
36878        )
36879    }
36880
36881    type GetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
36882        BaseSocketGetBindToInterfaceIndexResult,
36883        fidl::encoding::DefaultFuchsiaResourceDialect,
36884    >;
36885    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut {
36886        fn _decode(
36887            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36888        ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
36889            let _response = fidl::client::decode_transaction_body::<
36890                fidl::encoding::ResultType<
36891                    BaseSocketGetBindToInterfaceIndexResponse,
36892                    fidl_fuchsia_posix::Errno,
36893                >,
36894                fidl::encoding::DefaultFuchsiaResourceDialect,
36895                0x59c31dd3e3078295,
36896            >(_buf?)?;
36897            Ok(_response.map(|x| x.value))
36898        }
36899        self.client.send_query_and_decode::<
36900            fidl::encoding::EmptyPayload,
36901            BaseSocketGetBindToInterfaceIndexResult,
36902        >(
36903            (),
36904            0x59c31dd3e3078295,
36905            fidl::encoding::DynamicFlags::empty(),
36906            _decode,
36907        )
36908    }
36909
36910    type SetTimestampResponseFut = fidl::client::QueryResponseFut<
36911        BaseSocketSetTimestampResult,
36912        fidl::encoding::DefaultFuchsiaResourceDialect,
36913    >;
36914    fn r#set_timestamp(&self, mut value: TimestampOption) -> Self::SetTimestampResponseFut {
36915        fn _decode(
36916            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36917        ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
36918            let _response = fidl::client::decode_transaction_body::<
36919                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
36920                fidl::encoding::DefaultFuchsiaResourceDialect,
36921                0x285d6516c263d839,
36922            >(_buf?)?;
36923            Ok(_response.map(|x| x))
36924        }
36925        self.client
36926            .send_query_and_decode::<BaseSocketSetTimestampRequest, BaseSocketSetTimestampResult>(
36927                (value,),
36928                0x285d6516c263d839,
36929                fidl::encoding::DynamicFlags::empty(),
36930                _decode,
36931            )
36932    }
36933
36934    type GetTimestampResponseFut = fidl::client::QueryResponseFut<
36935        BaseSocketGetTimestampResult,
36936        fidl::encoding::DefaultFuchsiaResourceDialect,
36937    >;
36938    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut {
36939        fn _decode(
36940            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36941        ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
36942            let _response = fidl::client::decode_transaction_body::<
36943                fidl::encoding::ResultType<
36944                    BaseSocketGetTimestampResponse,
36945                    fidl_fuchsia_posix::Errno,
36946                >,
36947                fidl::encoding::DefaultFuchsiaResourceDialect,
36948                0x49f2fffbbcc2bd27,
36949            >(_buf?)?;
36950            Ok(_response.map(|x| x.value))
36951        }
36952        self.client
36953            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetTimestampResult>(
36954                (),
36955                0x49f2fffbbcc2bd27,
36956                fidl::encoding::DynamicFlags::empty(),
36957                _decode,
36958            )
36959    }
36960
36961    type SetMarkResponseFut = fidl::client::QueryResponseFut<
36962        BaseSocketSetMarkResult,
36963        fidl::encoding::DefaultFuchsiaResourceDialect,
36964    >;
36965    fn r#set_mark(
36966        &self,
36967        mut domain: fidl_fuchsia_net::MarkDomain,
36968        mut mark: &OptionalUint32,
36969    ) -> Self::SetMarkResponseFut {
36970        fn _decode(
36971            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36972        ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
36973            let _response = fidl::client::decode_transaction_body::<
36974                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
36975                fidl::encoding::DefaultFuchsiaResourceDialect,
36976                0x6ead6de09f653236,
36977            >(_buf?)?;
36978            Ok(_response.map(|x| x))
36979        }
36980        self.client.send_query_and_decode::<BaseSocketSetMarkRequest, BaseSocketSetMarkResult>(
36981            (domain, mark),
36982            0x6ead6de09f653236,
36983            fidl::encoding::DynamicFlags::empty(),
36984            _decode,
36985        )
36986    }
36987
36988    type GetMarkResponseFut = fidl::client::QueryResponseFut<
36989        BaseSocketGetMarkResult,
36990        fidl::encoding::DefaultFuchsiaResourceDialect,
36991    >;
36992    fn r#get_mark(&self, mut domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut {
36993        fn _decode(
36994            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36995        ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
36996            let _response = fidl::client::decode_transaction_body::<
36997                fidl::encoding::ResultType<BaseSocketGetMarkResponse, fidl_fuchsia_posix::Errno>,
36998                fidl::encoding::DefaultFuchsiaResourceDialect,
36999                0x57a2752c61d93d47,
37000            >(_buf?)?;
37001            Ok(_response.map(|x| x.mark))
37002        }
37003        self.client.send_query_and_decode::<BaseSocketGetMarkRequest, BaseSocketGetMarkResult>(
37004            (domain,),
37005            0x57a2752c61d93d47,
37006            fidl::encoding::DynamicFlags::empty(),
37007            _decode,
37008        )
37009    }
37010
37011    type GetCookieResponseFut = fidl::client::QueryResponseFut<
37012        BaseSocketGetCookieResult,
37013        fidl::encoding::DefaultFuchsiaResourceDialect,
37014    >;
37015    fn r#get_cookie(&self) -> Self::GetCookieResponseFut {
37016        fn _decode(
37017            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37018        ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
37019            let _response = fidl::client::decode_transaction_body::<
37020                fidl::encoding::ResultType<BaseSocketGetCookieResponse, fidl_fuchsia_posix::Errno>,
37021                fidl::encoding::DefaultFuchsiaResourceDialect,
37022                0x2c2f47fd8f924e52,
37023            >(_buf?)?;
37024            Ok(_response.map(|x| x.value))
37025        }
37026        self.client
37027            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetCookieResult>(
37028                (),
37029                0x2c2f47fd8f924e52,
37030                fidl::encoding::DynamicFlags::empty(),
37031                _decode,
37032            )
37033    }
37034
37035    type BindResponseFut = fidl::client::QueryResponseFut<
37036        BaseNetworkSocketBindResult,
37037        fidl::encoding::DefaultFuchsiaResourceDialect,
37038    >;
37039    fn r#bind(&self, mut addr: &fidl_fuchsia_net::SocketAddress) -> Self::BindResponseFut {
37040        fn _decode(
37041            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37042        ) -> Result<BaseNetworkSocketBindResult, fidl::Error> {
37043            let _response = fidl::client::decode_transaction_body::<
37044                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37045                fidl::encoding::DefaultFuchsiaResourceDialect,
37046                0x4bc6400ae92125d,
37047            >(_buf?)?;
37048            Ok(_response.map(|x| x))
37049        }
37050        self.client
37051            .send_query_and_decode::<BaseNetworkSocketBindRequest, BaseNetworkSocketBindResult>(
37052                (addr,),
37053                0x4bc6400ae92125d,
37054                fidl::encoding::DynamicFlags::empty(),
37055                _decode,
37056            )
37057    }
37058
37059    type ConnectResponseFut = fidl::client::QueryResponseFut<
37060        BaseNetworkSocketConnectResult,
37061        fidl::encoding::DefaultFuchsiaResourceDialect,
37062    >;
37063    fn r#connect(&self, mut addr: &fidl_fuchsia_net::SocketAddress) -> Self::ConnectResponseFut {
37064        fn _decode(
37065            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37066        ) -> Result<BaseNetworkSocketConnectResult, 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                0x5f05f19bfdd38871,
37071            >(_buf?)?;
37072            Ok(_response.map(|x| x))
37073        }
37074        self.client.send_query_and_decode::<
37075            BaseNetworkSocketConnectRequest,
37076            BaseNetworkSocketConnectResult,
37077        >(
37078            (addr,),
37079            0x5f05f19bfdd38871,
37080            fidl::encoding::DynamicFlags::empty(),
37081            _decode,
37082        )
37083    }
37084
37085    type DisconnectResponseFut = fidl::client::QueryResponseFut<
37086        BaseNetworkSocketDisconnectResult,
37087        fidl::encoding::DefaultFuchsiaResourceDialect,
37088    >;
37089    fn r#disconnect(&self) -> Self::DisconnectResponseFut {
37090        fn _decode(
37091            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37092        ) -> Result<BaseNetworkSocketDisconnectResult, fidl::Error> {
37093            let _response = fidl::client::decode_transaction_body::<
37094                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37095                fidl::encoding::DefaultFuchsiaResourceDialect,
37096                0x74e63b91f7b29b2,
37097            >(_buf?)?;
37098            Ok(_response.map(|x| x))
37099        }
37100        self.client.send_query_and_decode::<
37101            fidl::encoding::EmptyPayload,
37102            BaseNetworkSocketDisconnectResult,
37103        >(
37104            (),
37105            0x74e63b91f7b29b2,
37106            fidl::encoding::DynamicFlags::empty(),
37107            _decode,
37108        )
37109    }
37110
37111    type GetSockNameResponseFut = fidl::client::QueryResponseFut<
37112        BaseNetworkSocketGetSockNameResult,
37113        fidl::encoding::DefaultFuchsiaResourceDialect,
37114    >;
37115    fn r#get_sock_name(&self) -> Self::GetSockNameResponseFut {
37116        fn _decode(
37117            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37118        ) -> Result<BaseNetworkSocketGetSockNameResult, fidl::Error> {
37119            let _response = fidl::client::decode_transaction_body::<
37120                fidl::encoding::ResultType<
37121                    BaseNetworkSocketGetSockNameResponse,
37122                    fidl_fuchsia_posix::Errno,
37123                >,
37124                fidl::encoding::DefaultFuchsiaResourceDialect,
37125                0x475f23f84a1a4f85,
37126            >(_buf?)?;
37127            Ok(_response.map(|x| x.addr))
37128        }
37129        self.client.send_query_and_decode::<
37130            fidl::encoding::EmptyPayload,
37131            BaseNetworkSocketGetSockNameResult,
37132        >(
37133            (),
37134            0x475f23f84a1a4f85,
37135            fidl::encoding::DynamicFlags::empty(),
37136            _decode,
37137        )
37138    }
37139
37140    type GetPeerNameResponseFut = fidl::client::QueryResponseFut<
37141        BaseNetworkSocketGetPeerNameResult,
37142        fidl::encoding::DefaultFuchsiaResourceDialect,
37143    >;
37144    fn r#get_peer_name(&self) -> Self::GetPeerNameResponseFut {
37145        fn _decode(
37146            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37147        ) -> Result<BaseNetworkSocketGetPeerNameResult, fidl::Error> {
37148            let _response = fidl::client::decode_transaction_body::<
37149                fidl::encoding::ResultType<
37150                    BaseNetworkSocketGetPeerNameResponse,
37151                    fidl_fuchsia_posix::Errno,
37152                >,
37153                fidl::encoding::DefaultFuchsiaResourceDialect,
37154                0x1ffecf4bd5b6432e,
37155            >(_buf?)?;
37156            Ok(_response.map(|x| x.addr))
37157        }
37158        self.client.send_query_and_decode::<
37159            fidl::encoding::EmptyPayload,
37160            BaseNetworkSocketGetPeerNameResult,
37161        >(
37162            (),
37163            0x1ffecf4bd5b6432e,
37164            fidl::encoding::DynamicFlags::empty(),
37165            _decode,
37166        )
37167    }
37168
37169    type ShutdownResponseFut = fidl::client::QueryResponseFut<
37170        BaseNetworkSocketShutdownResult,
37171        fidl::encoding::DefaultFuchsiaResourceDialect,
37172    >;
37173    fn r#shutdown(&self, mut mode: ShutdownMode) -> Self::ShutdownResponseFut {
37174        fn _decode(
37175            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37176        ) -> Result<BaseNetworkSocketShutdownResult, fidl::Error> {
37177            let _response = fidl::client::decode_transaction_body::<
37178                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37179                fidl::encoding::DefaultFuchsiaResourceDialect,
37180                0x247f38b6db68c336,
37181            >(_buf?)?;
37182            Ok(_response.map(|x| x))
37183        }
37184        self.client.send_query_and_decode::<
37185            BaseNetworkSocketShutdownRequest,
37186            BaseNetworkSocketShutdownResult,
37187        >(
37188            (mode,),
37189            0x247f38b6db68c336,
37190            fidl::encoding::DynamicFlags::empty(),
37191            _decode,
37192        )
37193    }
37194
37195    type SetIpTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
37196        BaseNetworkSocketSetIpTypeOfServiceResult,
37197        fidl::encoding::DefaultFuchsiaResourceDialect,
37198    >;
37199    fn r#set_ip_type_of_service(&self, mut value: u8) -> Self::SetIpTypeOfServiceResponseFut {
37200        fn _decode(
37201            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37202        ) -> Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error> {
37203            let _response = fidl::client::decode_transaction_body::<
37204                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37205                fidl::encoding::DefaultFuchsiaResourceDialect,
37206                0x995c600475b6d46,
37207            >(_buf?)?;
37208            Ok(_response.map(|x| x))
37209        }
37210        self.client.send_query_and_decode::<
37211            BaseNetworkSocketSetIpTypeOfServiceRequest,
37212            BaseNetworkSocketSetIpTypeOfServiceResult,
37213        >(
37214            (value,),
37215            0x995c600475b6d46,
37216            fidl::encoding::DynamicFlags::empty(),
37217            _decode,
37218        )
37219    }
37220
37221    type GetIpTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
37222        BaseNetworkSocketGetIpTypeOfServiceResult,
37223        fidl::encoding::DefaultFuchsiaResourceDialect,
37224    >;
37225    fn r#get_ip_type_of_service(&self) -> Self::GetIpTypeOfServiceResponseFut {
37226        fn _decode(
37227            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37228        ) -> Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error> {
37229            let _response = fidl::client::decode_transaction_body::<
37230                fidl::encoding::ResultType<
37231                    BaseNetworkSocketGetIpTypeOfServiceResponse,
37232                    fidl_fuchsia_posix::Errno,
37233                >,
37234                fidl::encoding::DefaultFuchsiaResourceDialect,
37235                0x3814a04259f75fcb,
37236            >(_buf?)?;
37237            Ok(_response.map(|x| x.value))
37238        }
37239        self.client.send_query_and_decode::<
37240            fidl::encoding::EmptyPayload,
37241            BaseNetworkSocketGetIpTypeOfServiceResult,
37242        >(
37243            (),
37244            0x3814a04259f75fcb,
37245            fidl::encoding::DynamicFlags::empty(),
37246            _decode,
37247        )
37248    }
37249
37250    type SetIpTtlResponseFut = fidl::client::QueryResponseFut<
37251        BaseNetworkSocketSetIpTtlResult,
37252        fidl::encoding::DefaultFuchsiaResourceDialect,
37253    >;
37254    fn r#set_ip_ttl(&self, mut value: &OptionalUint8) -> Self::SetIpTtlResponseFut {
37255        fn _decode(
37256            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37257        ) -> Result<BaseNetworkSocketSetIpTtlResult, fidl::Error> {
37258            let _response = fidl::client::decode_transaction_body::<
37259                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37260                fidl::encoding::DefaultFuchsiaResourceDialect,
37261                0x29e2424b433ae1ef,
37262            >(_buf?)?;
37263            Ok(_response.map(|x| x))
37264        }
37265        self.client.send_query_and_decode::<
37266            BaseNetworkSocketSetIpTtlRequest,
37267            BaseNetworkSocketSetIpTtlResult,
37268        >(
37269            (value,),
37270            0x29e2424b433ae1ef,
37271            fidl::encoding::DynamicFlags::empty(),
37272            _decode,
37273        )
37274    }
37275
37276    type GetIpTtlResponseFut = fidl::client::QueryResponseFut<
37277        BaseNetworkSocketGetIpTtlResult,
37278        fidl::encoding::DefaultFuchsiaResourceDialect,
37279    >;
37280    fn r#get_ip_ttl(&self) -> Self::GetIpTtlResponseFut {
37281        fn _decode(
37282            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37283        ) -> Result<BaseNetworkSocketGetIpTtlResult, fidl::Error> {
37284            let _response = fidl::client::decode_transaction_body::<
37285                fidl::encoding::ResultType<
37286                    BaseNetworkSocketGetIpTtlResponse,
37287                    fidl_fuchsia_posix::Errno,
37288                >,
37289                fidl::encoding::DefaultFuchsiaResourceDialect,
37290                0x47e47fa1f24da471,
37291            >(_buf?)?;
37292            Ok(_response.map(|x| x.value))
37293        }
37294        self.client
37295            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseNetworkSocketGetIpTtlResult>(
37296                (),
37297                0x47e47fa1f24da471,
37298                fidl::encoding::DynamicFlags::empty(),
37299                _decode,
37300            )
37301    }
37302
37303    type SetIpPacketInfoResponseFut = fidl::client::QueryResponseFut<
37304        BaseNetworkSocketSetIpPacketInfoResult,
37305        fidl::encoding::DefaultFuchsiaResourceDialect,
37306    >;
37307    fn r#set_ip_packet_info(&self, mut value: bool) -> Self::SetIpPacketInfoResponseFut {
37308        fn _decode(
37309            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37310        ) -> Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error> {
37311            let _response = fidl::client::decode_transaction_body::<
37312                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37313                fidl::encoding::DefaultFuchsiaResourceDialect,
37314                0x392d16bee20c0e16,
37315            >(_buf?)?;
37316            Ok(_response.map(|x| x))
37317        }
37318        self.client.send_query_and_decode::<
37319            BaseNetworkSocketSetIpPacketInfoRequest,
37320            BaseNetworkSocketSetIpPacketInfoResult,
37321        >(
37322            (value,),
37323            0x392d16bee20c0e16,
37324            fidl::encoding::DynamicFlags::empty(),
37325            _decode,
37326        )
37327    }
37328
37329    type GetIpPacketInfoResponseFut = fidl::client::QueryResponseFut<
37330        BaseNetworkSocketGetIpPacketInfoResult,
37331        fidl::encoding::DefaultFuchsiaResourceDialect,
37332    >;
37333    fn r#get_ip_packet_info(&self) -> Self::GetIpPacketInfoResponseFut {
37334        fn _decode(
37335            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37336        ) -> Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error> {
37337            let _response = fidl::client::decode_transaction_body::<
37338                fidl::encoding::ResultType<
37339                    BaseNetworkSocketGetIpPacketInfoResponse,
37340                    fidl_fuchsia_posix::Errno,
37341                >,
37342                fidl::encoding::DefaultFuchsiaResourceDialect,
37343                0x54b505f242280740,
37344            >(_buf?)?;
37345            Ok(_response.map(|x| x.value))
37346        }
37347        self.client.send_query_and_decode::<
37348            fidl::encoding::EmptyPayload,
37349            BaseNetworkSocketGetIpPacketInfoResult,
37350        >(
37351            (),
37352            0x54b505f242280740,
37353            fidl::encoding::DynamicFlags::empty(),
37354            _decode,
37355        )
37356    }
37357
37358    type SetIpReceiveTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
37359        BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
37360        fidl::encoding::DefaultFuchsiaResourceDialect,
37361    >;
37362    fn r#set_ip_receive_type_of_service(
37363        &self,
37364        mut value: bool,
37365    ) -> Self::SetIpReceiveTypeOfServiceResponseFut {
37366        fn _decode(
37367            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37368        ) -> Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error> {
37369            let _response = fidl::client::decode_transaction_body::<
37370                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37371                fidl::encoding::DefaultFuchsiaResourceDialect,
37372                0x6c4f6714995f84ef,
37373            >(_buf?)?;
37374            Ok(_response.map(|x| x))
37375        }
37376        self.client.send_query_and_decode::<
37377            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
37378            BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
37379        >(
37380            (value,),
37381            0x6c4f6714995f84ef,
37382            fidl::encoding::DynamicFlags::empty(),
37383            _decode,
37384        )
37385    }
37386
37387    type GetIpReceiveTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
37388        BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
37389        fidl::encoding::DefaultFuchsiaResourceDialect,
37390    >;
37391    fn r#get_ip_receive_type_of_service(&self) -> Self::GetIpReceiveTypeOfServiceResponseFut {
37392        fn _decode(
37393            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37394        ) -> Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error> {
37395            let _response = fidl::client::decode_transaction_body::<
37396                fidl::encoding::ResultType<
37397                    BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
37398                    fidl_fuchsia_posix::Errno,
37399                >,
37400                fidl::encoding::DefaultFuchsiaResourceDialect,
37401                0x4158ba7dc2795960,
37402            >(_buf?)?;
37403            Ok(_response.map(|x| x.value))
37404        }
37405        self.client.send_query_and_decode::<
37406            fidl::encoding::EmptyPayload,
37407            BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
37408        >(
37409            (),
37410            0x4158ba7dc2795960,
37411            fidl::encoding::DynamicFlags::empty(),
37412            _decode,
37413        )
37414    }
37415
37416    type SetIpReceiveTtlResponseFut = fidl::client::QueryResponseFut<
37417        BaseNetworkSocketSetIpReceiveTtlResult,
37418        fidl::encoding::DefaultFuchsiaResourceDialect,
37419    >;
37420    fn r#set_ip_receive_ttl(&self, mut value: bool) -> Self::SetIpReceiveTtlResponseFut {
37421        fn _decode(
37422            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37423        ) -> Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error> {
37424            let _response = fidl::client::decode_transaction_body::<
37425                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37426                fidl::encoding::DefaultFuchsiaResourceDialect,
37427                0x46f15be0ce0ab82b,
37428            >(_buf?)?;
37429            Ok(_response.map(|x| x))
37430        }
37431        self.client.send_query_and_decode::<
37432            BaseNetworkSocketSetIpReceiveTtlRequest,
37433            BaseNetworkSocketSetIpReceiveTtlResult,
37434        >(
37435            (value,),
37436            0x46f15be0ce0ab82b,
37437            fidl::encoding::DynamicFlags::empty(),
37438            _decode,
37439        )
37440    }
37441
37442    type GetIpReceiveTtlResponseFut = fidl::client::QueryResponseFut<
37443        BaseNetworkSocketGetIpReceiveTtlResult,
37444        fidl::encoding::DefaultFuchsiaResourceDialect,
37445    >;
37446    fn r#get_ip_receive_ttl(&self) -> Self::GetIpReceiveTtlResponseFut {
37447        fn _decode(
37448            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37449        ) -> Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error> {
37450            let _response = fidl::client::decode_transaction_body::<
37451                fidl::encoding::ResultType<
37452                    BaseNetworkSocketGetIpReceiveTtlResponse,
37453                    fidl_fuchsia_posix::Errno,
37454                >,
37455                fidl::encoding::DefaultFuchsiaResourceDialect,
37456                0x678ddd5a5dfa2eb5,
37457            >(_buf?)?;
37458            Ok(_response.map(|x| x.value))
37459        }
37460        self.client.send_query_and_decode::<
37461            fidl::encoding::EmptyPayload,
37462            BaseNetworkSocketGetIpReceiveTtlResult,
37463        >(
37464            (),
37465            0x678ddd5a5dfa2eb5,
37466            fidl::encoding::DynamicFlags::empty(),
37467            _decode,
37468        )
37469    }
37470
37471    type SetIpMulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
37472        BaseNetworkSocketSetIpMulticastInterfaceResult,
37473        fidl::encoding::DefaultFuchsiaResourceDialect,
37474    >;
37475    fn r#set_ip_multicast_interface(
37476        &self,
37477        mut iface: u64,
37478        mut address: &fidl_fuchsia_net::Ipv4Address,
37479    ) -> Self::SetIpMulticastInterfaceResponseFut {
37480        fn _decode(
37481            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37482        ) -> Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error> {
37483            let _response = fidl::client::decode_transaction_body::<
37484                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37485                fidl::encoding::DefaultFuchsiaResourceDialect,
37486                0x752fbfa9b12befe,
37487            >(_buf?)?;
37488            Ok(_response.map(|x| x))
37489        }
37490        self.client.send_query_and_decode::<
37491            BaseNetworkSocketSetIpMulticastInterfaceRequest,
37492            BaseNetworkSocketSetIpMulticastInterfaceResult,
37493        >(
37494            (iface, address,),
37495            0x752fbfa9b12befe,
37496            fidl::encoding::DynamicFlags::empty(),
37497            _decode,
37498        )
37499    }
37500
37501    type GetIpMulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
37502        BaseNetworkSocketGetIpMulticastInterfaceResult,
37503        fidl::encoding::DefaultFuchsiaResourceDialect,
37504    >;
37505    fn r#get_ip_multicast_interface(&self) -> Self::GetIpMulticastInterfaceResponseFut {
37506        fn _decode(
37507            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37508        ) -> Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error> {
37509            let _response = fidl::client::decode_transaction_body::<
37510                fidl::encoding::ResultType<
37511                    BaseNetworkSocketGetIpMulticastInterfaceResponse,
37512                    fidl_fuchsia_posix::Errno,
37513                >,
37514                fidl::encoding::DefaultFuchsiaResourceDialect,
37515                0x320bd14c4df046c4,
37516            >(_buf?)?;
37517            Ok(_response.map(|x| x.value))
37518        }
37519        self.client.send_query_and_decode::<
37520            fidl::encoding::EmptyPayload,
37521            BaseNetworkSocketGetIpMulticastInterfaceResult,
37522        >(
37523            (),
37524            0x320bd14c4df046c4,
37525            fidl::encoding::DynamicFlags::empty(),
37526            _decode,
37527        )
37528    }
37529
37530    type SetIpMulticastTtlResponseFut = fidl::client::QueryResponseFut<
37531        BaseNetworkSocketSetIpMulticastTtlResult,
37532        fidl::encoding::DefaultFuchsiaResourceDialect,
37533    >;
37534    fn r#set_ip_multicast_ttl(
37535        &self,
37536        mut value: &OptionalUint8,
37537    ) -> Self::SetIpMulticastTtlResponseFut {
37538        fn _decode(
37539            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37540        ) -> Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error> {
37541            let _response = fidl::client::decode_transaction_body::<
37542                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37543                fidl::encoding::DefaultFuchsiaResourceDialect,
37544                0x63134d53772916a1,
37545            >(_buf?)?;
37546            Ok(_response.map(|x| x))
37547        }
37548        self.client.send_query_and_decode::<
37549            BaseNetworkSocketSetIpMulticastTtlRequest,
37550            BaseNetworkSocketSetIpMulticastTtlResult,
37551        >(
37552            (value,),
37553            0x63134d53772916a1,
37554            fidl::encoding::DynamicFlags::empty(),
37555            _decode,
37556        )
37557    }
37558
37559    type GetIpMulticastTtlResponseFut = fidl::client::QueryResponseFut<
37560        BaseNetworkSocketGetIpMulticastTtlResult,
37561        fidl::encoding::DefaultFuchsiaResourceDialect,
37562    >;
37563    fn r#get_ip_multicast_ttl(&self) -> Self::GetIpMulticastTtlResponseFut {
37564        fn _decode(
37565            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37566        ) -> Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error> {
37567            let _response = fidl::client::decode_transaction_body::<
37568                fidl::encoding::ResultType<
37569                    BaseNetworkSocketGetIpMulticastTtlResponse,
37570                    fidl_fuchsia_posix::Errno,
37571                >,
37572                fidl::encoding::DefaultFuchsiaResourceDialect,
37573                0x4665cd378f39e1a,
37574            >(_buf?)?;
37575            Ok(_response.map(|x| x.value))
37576        }
37577        self.client.send_query_and_decode::<
37578            fidl::encoding::EmptyPayload,
37579            BaseNetworkSocketGetIpMulticastTtlResult,
37580        >(
37581            (),
37582            0x4665cd378f39e1a,
37583            fidl::encoding::DynamicFlags::empty(),
37584            _decode,
37585        )
37586    }
37587
37588    type SetIpMulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
37589        BaseNetworkSocketSetIpMulticastLoopbackResult,
37590        fidl::encoding::DefaultFuchsiaResourceDialect,
37591    >;
37592    fn r#set_ip_multicast_loopback(
37593        &self,
37594        mut value: bool,
37595    ) -> Self::SetIpMulticastLoopbackResponseFut {
37596        fn _decode(
37597            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37598        ) -> Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error> {
37599            let _response = fidl::client::decode_transaction_body::<
37600                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37601                fidl::encoding::DefaultFuchsiaResourceDialect,
37602                0x20c55c11f00943ea,
37603            >(_buf?)?;
37604            Ok(_response.map(|x| x))
37605        }
37606        self.client.send_query_and_decode::<
37607            BaseNetworkSocketSetIpMulticastLoopbackRequest,
37608            BaseNetworkSocketSetIpMulticastLoopbackResult,
37609        >(
37610            (value,),
37611            0x20c55c11f00943ea,
37612            fidl::encoding::DynamicFlags::empty(),
37613            _decode,
37614        )
37615    }
37616
37617    type GetIpMulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
37618        BaseNetworkSocketGetIpMulticastLoopbackResult,
37619        fidl::encoding::DefaultFuchsiaResourceDialect,
37620    >;
37621    fn r#get_ip_multicast_loopback(&self) -> Self::GetIpMulticastLoopbackResponseFut {
37622        fn _decode(
37623            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37624        ) -> Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error> {
37625            let _response = fidl::client::decode_transaction_body::<
37626                fidl::encoding::ResultType<
37627                    BaseNetworkSocketGetIpMulticastLoopbackResponse,
37628                    fidl_fuchsia_posix::Errno,
37629                >,
37630                fidl::encoding::DefaultFuchsiaResourceDialect,
37631                0x3b6b26ff558298f2,
37632            >(_buf?)?;
37633            Ok(_response.map(|x| x.value))
37634        }
37635        self.client.send_query_and_decode::<
37636            fidl::encoding::EmptyPayload,
37637            BaseNetworkSocketGetIpMulticastLoopbackResult,
37638        >(
37639            (),
37640            0x3b6b26ff558298f2,
37641            fidl::encoding::DynamicFlags::empty(),
37642            _decode,
37643        )
37644    }
37645
37646    type AddIpMembershipResponseFut = fidl::client::QueryResponseFut<
37647        BaseNetworkSocketAddIpMembershipResult,
37648        fidl::encoding::DefaultFuchsiaResourceDialect,
37649    >;
37650    fn r#add_ip_membership(
37651        &self,
37652        mut membership: &IpMulticastMembership,
37653    ) -> Self::AddIpMembershipResponseFut {
37654        fn _decode(
37655            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37656        ) -> Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error> {
37657            let _response = fidl::client::decode_transaction_body::<
37658                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37659                fidl::encoding::DefaultFuchsiaResourceDialect,
37660                0x76bc7df115a3b4d0,
37661            >(_buf?)?;
37662            Ok(_response.map(|x| x))
37663        }
37664        self.client.send_query_and_decode::<
37665            BaseNetworkSocketAddIpMembershipRequest,
37666            BaseNetworkSocketAddIpMembershipResult,
37667        >(
37668            (membership,),
37669            0x76bc7df115a3b4d0,
37670            fidl::encoding::DynamicFlags::empty(),
37671            _decode,
37672        )
37673    }
37674
37675    type DropIpMembershipResponseFut = fidl::client::QueryResponseFut<
37676        BaseNetworkSocketDropIpMembershipResult,
37677        fidl::encoding::DefaultFuchsiaResourceDialect,
37678    >;
37679    fn r#drop_ip_membership(
37680        &self,
37681        mut membership: &IpMulticastMembership,
37682    ) -> Self::DropIpMembershipResponseFut {
37683        fn _decode(
37684            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37685        ) -> Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error> {
37686            let _response = fidl::client::decode_transaction_body::<
37687                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37688                fidl::encoding::DefaultFuchsiaResourceDialect,
37689                0x2888f3099188d03,
37690            >(_buf?)?;
37691            Ok(_response.map(|x| x))
37692        }
37693        self.client.send_query_and_decode::<
37694            BaseNetworkSocketDropIpMembershipRequest,
37695            BaseNetworkSocketDropIpMembershipResult,
37696        >(
37697            (membership,),
37698            0x2888f3099188d03,
37699            fidl::encoding::DynamicFlags::empty(),
37700            _decode,
37701        )
37702    }
37703
37704    type SetIpTransparentResponseFut = fidl::client::QueryResponseFut<
37705        BaseNetworkSocketSetIpTransparentResult,
37706        fidl::encoding::DefaultFuchsiaResourceDialect,
37707    >;
37708    fn r#set_ip_transparent(&self, mut value: bool) -> Self::SetIpTransparentResponseFut {
37709        fn _decode(
37710            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37711        ) -> Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error> {
37712            let _response = fidl::client::decode_transaction_body::<
37713                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37714                fidl::encoding::DefaultFuchsiaResourceDialect,
37715                0x1ae532b0c066e3a0,
37716            >(_buf?)?;
37717            Ok(_response.map(|x| x))
37718        }
37719        self.client.send_query_and_decode::<
37720            BaseNetworkSocketSetIpTransparentRequest,
37721            BaseNetworkSocketSetIpTransparentResult,
37722        >(
37723            (value,),
37724            0x1ae532b0c066e3a0,
37725            fidl::encoding::DynamicFlags::empty(),
37726            _decode,
37727        )
37728    }
37729
37730    type GetIpTransparentResponseFut = fidl::client::QueryResponseFut<
37731        BaseNetworkSocketGetIpTransparentResult,
37732        fidl::encoding::DefaultFuchsiaResourceDialect,
37733    >;
37734    fn r#get_ip_transparent(&self) -> Self::GetIpTransparentResponseFut {
37735        fn _decode(
37736            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37737        ) -> Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error> {
37738            let _response = fidl::client::decode_transaction_body::<
37739                fidl::encoding::ResultType<
37740                    BaseNetworkSocketGetIpTransparentResponse,
37741                    fidl_fuchsia_posix::Errno,
37742                >,
37743                fidl::encoding::DefaultFuchsiaResourceDialect,
37744                0x51d43695962ebfb5,
37745            >(_buf?)?;
37746            Ok(_response.map(|x| x.value))
37747        }
37748        self.client.send_query_and_decode::<
37749            fidl::encoding::EmptyPayload,
37750            BaseNetworkSocketGetIpTransparentResult,
37751        >(
37752            (),
37753            0x51d43695962ebfb5,
37754            fidl::encoding::DynamicFlags::empty(),
37755            _decode,
37756        )
37757    }
37758
37759    type SetIpReceiveOriginalDestinationAddressResponseFut = fidl::client::QueryResponseFut<
37760        BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
37761        fidl::encoding::DefaultFuchsiaResourceDialect,
37762    >;
37763    fn r#set_ip_receive_original_destination_address(
37764        &self,
37765        mut value: bool,
37766    ) -> Self::SetIpReceiveOriginalDestinationAddressResponseFut {
37767        fn _decode(
37768            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37769        ) -> Result<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult, fidl::Error>
37770        {
37771            let _response = fidl::client::decode_transaction_body::<
37772                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37773                fidl::encoding::DefaultFuchsiaResourceDialect,
37774                0x4722b4ce52f7840,
37775            >(_buf?)?;
37776            Ok(_response.map(|x| x))
37777        }
37778        self.client.send_query_and_decode::<
37779            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
37780            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
37781        >(
37782            (value,),
37783            0x4722b4ce52f7840,
37784            fidl::encoding::DynamicFlags::empty(),
37785            _decode,
37786        )
37787    }
37788
37789    type GetIpReceiveOriginalDestinationAddressResponseFut = fidl::client::QueryResponseFut<
37790        BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
37791        fidl::encoding::DefaultFuchsiaResourceDialect,
37792    >;
37793    fn r#get_ip_receive_original_destination_address(
37794        &self,
37795    ) -> Self::GetIpReceiveOriginalDestinationAddressResponseFut {
37796        fn _decode(
37797            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37798        ) -> Result<BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult, fidl::Error>
37799        {
37800            let _response = fidl::client::decode_transaction_body::<
37801                fidl::encoding::ResultType<
37802                    BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
37803                    fidl_fuchsia_posix::Errno,
37804                >,
37805                fidl::encoding::DefaultFuchsiaResourceDialect,
37806                0x2a0e7dc5d6bfdfe9,
37807            >(_buf?)?;
37808            Ok(_response.map(|x| x.value))
37809        }
37810        self.client.send_query_and_decode::<
37811            fidl::encoding::EmptyPayload,
37812            BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
37813        >(
37814            (),
37815            0x2a0e7dc5d6bfdfe9,
37816            fidl::encoding::DynamicFlags::empty(),
37817            _decode,
37818        )
37819    }
37820
37821    type AddIpv6MembershipResponseFut = fidl::client::QueryResponseFut<
37822        BaseNetworkSocketAddIpv6MembershipResult,
37823        fidl::encoding::DefaultFuchsiaResourceDialect,
37824    >;
37825    fn r#add_ipv6_membership(
37826        &self,
37827        mut membership: &Ipv6MulticastMembership,
37828    ) -> Self::AddIpv6MembershipResponseFut {
37829        fn _decode(
37830            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37831        ) -> Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error> {
37832            let _response = fidl::client::decode_transaction_body::<
37833                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37834                fidl::encoding::DefaultFuchsiaResourceDialect,
37835                0x7c94727acb4ea4b3,
37836            >(_buf?)?;
37837            Ok(_response.map(|x| x))
37838        }
37839        self.client.send_query_and_decode::<
37840            BaseNetworkSocketAddIpv6MembershipRequest,
37841            BaseNetworkSocketAddIpv6MembershipResult,
37842        >(
37843            (membership,),
37844            0x7c94727acb4ea4b3,
37845            fidl::encoding::DynamicFlags::empty(),
37846            _decode,
37847        )
37848    }
37849
37850    type DropIpv6MembershipResponseFut = fidl::client::QueryResponseFut<
37851        BaseNetworkSocketDropIpv6MembershipResult,
37852        fidl::encoding::DefaultFuchsiaResourceDialect,
37853    >;
37854    fn r#drop_ipv6_membership(
37855        &self,
37856        mut membership: &Ipv6MulticastMembership,
37857    ) -> Self::DropIpv6MembershipResponseFut {
37858        fn _decode(
37859            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37860        ) -> Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error> {
37861            let _response = fidl::client::decode_transaction_body::<
37862                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37863                fidl::encoding::DefaultFuchsiaResourceDialect,
37864                0x42104c70ccaba304,
37865            >(_buf?)?;
37866            Ok(_response.map(|x| x))
37867        }
37868        self.client.send_query_and_decode::<
37869            BaseNetworkSocketDropIpv6MembershipRequest,
37870            BaseNetworkSocketDropIpv6MembershipResult,
37871        >(
37872            (membership,),
37873            0x42104c70ccaba304,
37874            fidl::encoding::DynamicFlags::empty(),
37875            _decode,
37876        )
37877    }
37878
37879    type SetIpv6MulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
37880        BaseNetworkSocketSetIpv6MulticastInterfaceResult,
37881        fidl::encoding::DefaultFuchsiaResourceDialect,
37882    >;
37883    fn r#set_ipv6_multicast_interface(
37884        &self,
37885        mut value: u64,
37886    ) -> Self::SetIpv6MulticastInterfaceResponseFut {
37887        fn _decode(
37888            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37889        ) -> Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error> {
37890            let _response = fidl::client::decode_transaction_body::<
37891                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37892                fidl::encoding::DefaultFuchsiaResourceDialect,
37893                0x135f76db3774ab3b,
37894            >(_buf?)?;
37895            Ok(_response.map(|x| x))
37896        }
37897        self.client.send_query_and_decode::<
37898            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
37899            BaseNetworkSocketSetIpv6MulticastInterfaceResult,
37900        >(
37901            (value,),
37902            0x135f76db3774ab3b,
37903            fidl::encoding::DynamicFlags::empty(),
37904            _decode,
37905        )
37906    }
37907
37908    type GetIpv6MulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
37909        BaseNetworkSocketGetIpv6MulticastInterfaceResult,
37910        fidl::encoding::DefaultFuchsiaResourceDialect,
37911    >;
37912    fn r#get_ipv6_multicast_interface(&self) -> Self::GetIpv6MulticastInterfaceResponseFut {
37913        fn _decode(
37914            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37915        ) -> Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error> {
37916            let _response = fidl::client::decode_transaction_body::<
37917                fidl::encoding::ResultType<
37918                    BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
37919                    fidl_fuchsia_posix::Errno,
37920                >,
37921                fidl::encoding::DefaultFuchsiaResourceDialect,
37922                0x1f26fcdd348f1882,
37923            >(_buf?)?;
37924            Ok(_response.map(|x| x.value))
37925        }
37926        self.client.send_query_and_decode::<
37927            fidl::encoding::EmptyPayload,
37928            BaseNetworkSocketGetIpv6MulticastInterfaceResult,
37929        >(
37930            (),
37931            0x1f26fcdd348f1882,
37932            fidl::encoding::DynamicFlags::empty(),
37933            _decode,
37934        )
37935    }
37936
37937    type SetIpv6UnicastHopsResponseFut = fidl::client::QueryResponseFut<
37938        BaseNetworkSocketSetIpv6UnicastHopsResult,
37939        fidl::encoding::DefaultFuchsiaResourceDialect,
37940    >;
37941    fn r#set_ipv6_unicast_hops(
37942        &self,
37943        mut value: &OptionalUint8,
37944    ) -> Self::SetIpv6UnicastHopsResponseFut {
37945        fn _decode(
37946            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37947        ) -> Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error> {
37948            let _response = fidl::client::decode_transaction_body::<
37949                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37950                fidl::encoding::DefaultFuchsiaResourceDialect,
37951                0x157d51e98f462859,
37952            >(_buf?)?;
37953            Ok(_response.map(|x| x))
37954        }
37955        self.client.send_query_and_decode::<
37956            BaseNetworkSocketSetIpv6UnicastHopsRequest,
37957            BaseNetworkSocketSetIpv6UnicastHopsResult,
37958        >(
37959            (value,),
37960            0x157d51e98f462859,
37961            fidl::encoding::DynamicFlags::empty(),
37962            _decode,
37963        )
37964    }
37965
37966    type GetIpv6UnicastHopsResponseFut = fidl::client::QueryResponseFut<
37967        BaseNetworkSocketGetIpv6UnicastHopsResult,
37968        fidl::encoding::DefaultFuchsiaResourceDialect,
37969    >;
37970    fn r#get_ipv6_unicast_hops(&self) -> Self::GetIpv6UnicastHopsResponseFut {
37971        fn _decode(
37972            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37973        ) -> Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error> {
37974            let _response = fidl::client::decode_transaction_body::<
37975                fidl::encoding::ResultType<
37976                    BaseNetworkSocketGetIpv6UnicastHopsResponse,
37977                    fidl_fuchsia_posix::Errno,
37978                >,
37979                fidl::encoding::DefaultFuchsiaResourceDialect,
37980                0x21f4641cad8bd8d2,
37981            >(_buf?)?;
37982            Ok(_response.map(|x| x.value))
37983        }
37984        self.client.send_query_and_decode::<
37985            fidl::encoding::EmptyPayload,
37986            BaseNetworkSocketGetIpv6UnicastHopsResult,
37987        >(
37988            (),
37989            0x21f4641cad8bd8d2,
37990            fidl::encoding::DynamicFlags::empty(),
37991            _decode,
37992        )
37993    }
37994
37995    type SetIpv6ReceiveHopLimitResponseFut = fidl::client::QueryResponseFut<
37996        BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
37997        fidl::encoding::DefaultFuchsiaResourceDialect,
37998    >;
37999    fn r#set_ipv6_receive_hop_limit(
38000        &self,
38001        mut value: bool,
38002    ) -> Self::SetIpv6ReceiveHopLimitResponseFut {
38003        fn _decode(
38004            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38005        ) -> Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error> {
38006            let _response = fidl::client::decode_transaction_body::<
38007                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
38008                fidl::encoding::DefaultFuchsiaResourceDialect,
38009                0x5c24808ed2e84a1e,
38010            >(_buf?)?;
38011            Ok(_response.map(|x| x))
38012        }
38013        self.client.send_query_and_decode::<
38014            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
38015            BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
38016        >(
38017            (value,),
38018            0x5c24808ed2e84a1e,
38019            fidl::encoding::DynamicFlags::empty(),
38020            _decode,
38021        )
38022    }
38023
38024    type GetIpv6ReceiveHopLimitResponseFut = fidl::client::QueryResponseFut<
38025        BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
38026        fidl::encoding::DefaultFuchsiaResourceDialect,
38027    >;
38028    fn r#get_ipv6_receive_hop_limit(&self) -> Self::GetIpv6ReceiveHopLimitResponseFut {
38029        fn _decode(
38030            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38031        ) -> Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error> {
38032            let _response = fidl::client::decode_transaction_body::<
38033                fidl::encoding::ResultType<
38034                    BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
38035                    fidl_fuchsia_posix::Errno,
38036                >,
38037                fidl::encoding::DefaultFuchsiaResourceDialect,
38038                0x341e06689885b4c0,
38039            >(_buf?)?;
38040            Ok(_response.map(|x| x.value))
38041        }
38042        self.client.send_query_and_decode::<
38043            fidl::encoding::EmptyPayload,
38044            BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
38045        >(
38046            (),
38047            0x341e06689885b4c0,
38048            fidl::encoding::DynamicFlags::empty(),
38049            _decode,
38050        )
38051    }
38052
38053    type SetIpv6MulticastHopsResponseFut = fidl::client::QueryResponseFut<
38054        BaseNetworkSocketSetIpv6MulticastHopsResult,
38055        fidl::encoding::DefaultFuchsiaResourceDialect,
38056    >;
38057    fn r#set_ipv6_multicast_hops(
38058        &self,
38059        mut value: &OptionalUint8,
38060    ) -> Self::SetIpv6MulticastHopsResponseFut {
38061        fn _decode(
38062            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38063        ) -> Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error> {
38064            let _response = fidl::client::decode_transaction_body::<
38065                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
38066                fidl::encoding::DefaultFuchsiaResourceDialect,
38067                0x25b9cd4d181f82c1,
38068            >(_buf?)?;
38069            Ok(_response.map(|x| x))
38070        }
38071        self.client.send_query_and_decode::<
38072            BaseNetworkSocketSetIpv6MulticastHopsRequest,
38073            BaseNetworkSocketSetIpv6MulticastHopsResult,
38074        >(
38075            (value,),
38076            0x25b9cd4d181f82c1,
38077            fidl::encoding::DynamicFlags::empty(),
38078            _decode,
38079        )
38080    }
38081
38082    type GetIpv6MulticastHopsResponseFut = fidl::client::QueryResponseFut<
38083        BaseNetworkSocketGetIpv6MulticastHopsResult,
38084        fidl::encoding::DefaultFuchsiaResourceDialect,
38085    >;
38086    fn r#get_ipv6_multicast_hops(&self) -> Self::GetIpv6MulticastHopsResponseFut {
38087        fn _decode(
38088            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38089        ) -> Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error> {
38090            let _response = fidl::client::decode_transaction_body::<
38091                fidl::encoding::ResultType<
38092                    BaseNetworkSocketGetIpv6MulticastHopsResponse,
38093                    fidl_fuchsia_posix::Errno,
38094                >,
38095                fidl::encoding::DefaultFuchsiaResourceDialect,
38096                0x52916948a365012a,
38097            >(_buf?)?;
38098            Ok(_response.map(|x| x.value))
38099        }
38100        self.client.send_query_and_decode::<
38101            fidl::encoding::EmptyPayload,
38102            BaseNetworkSocketGetIpv6MulticastHopsResult,
38103        >(
38104            (),
38105            0x52916948a365012a,
38106            fidl::encoding::DynamicFlags::empty(),
38107            _decode,
38108        )
38109    }
38110
38111    type SetIpv6MulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
38112        BaseNetworkSocketSetIpv6MulticastLoopbackResult,
38113        fidl::encoding::DefaultFuchsiaResourceDialect,
38114    >;
38115    fn r#set_ipv6_multicast_loopback(
38116        &self,
38117        mut value: bool,
38118    ) -> Self::SetIpv6MulticastLoopbackResponseFut {
38119        fn _decode(
38120            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38121        ) -> Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error> {
38122            let _response = fidl::client::decode_transaction_body::<
38123                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
38124                fidl::encoding::DefaultFuchsiaResourceDialect,
38125                0x55701c409ff41b40,
38126            >(_buf?)?;
38127            Ok(_response.map(|x| x))
38128        }
38129        self.client.send_query_and_decode::<
38130            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
38131            BaseNetworkSocketSetIpv6MulticastLoopbackResult,
38132        >(
38133            (value,),
38134            0x55701c409ff41b40,
38135            fidl::encoding::DynamicFlags::empty(),
38136            _decode,
38137        )
38138    }
38139
38140    type GetIpv6MulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
38141        BaseNetworkSocketGetIpv6MulticastLoopbackResult,
38142        fidl::encoding::DefaultFuchsiaResourceDialect,
38143    >;
38144    fn r#get_ipv6_multicast_loopback(&self) -> Self::GetIpv6MulticastLoopbackResponseFut {
38145        fn _decode(
38146            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38147        ) -> Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error> {
38148            let _response = fidl::client::decode_transaction_body::<
38149                fidl::encoding::ResultType<
38150                    BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
38151                    fidl_fuchsia_posix::Errno,
38152                >,
38153                fidl::encoding::DefaultFuchsiaResourceDialect,
38154                0x4415b701fde319c3,
38155            >(_buf?)?;
38156            Ok(_response.map(|x| x.value))
38157        }
38158        self.client.send_query_and_decode::<
38159            fidl::encoding::EmptyPayload,
38160            BaseNetworkSocketGetIpv6MulticastLoopbackResult,
38161        >(
38162            (),
38163            0x4415b701fde319c3,
38164            fidl::encoding::DynamicFlags::empty(),
38165            _decode,
38166        )
38167    }
38168
38169    type SetIpv6OnlyResponseFut = fidl::client::QueryResponseFut<
38170        BaseNetworkSocketSetIpv6OnlyResult,
38171        fidl::encoding::DefaultFuchsiaResourceDialect,
38172    >;
38173    fn r#set_ipv6_only(&self, mut value: bool) -> Self::SetIpv6OnlyResponseFut {
38174        fn _decode(
38175            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38176        ) -> Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error> {
38177            let _response = fidl::client::decode_transaction_body::<
38178                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
38179                fidl::encoding::DefaultFuchsiaResourceDialect,
38180                0x4873f1364758cbba,
38181            >(_buf?)?;
38182            Ok(_response.map(|x| x))
38183        }
38184        self.client.send_query_and_decode::<
38185            BaseNetworkSocketSetIpv6OnlyRequest,
38186            BaseNetworkSocketSetIpv6OnlyResult,
38187        >(
38188            (value,),
38189            0x4873f1364758cbba,
38190            fidl::encoding::DynamicFlags::empty(),
38191            _decode,
38192        )
38193    }
38194
38195    type GetIpv6OnlyResponseFut = fidl::client::QueryResponseFut<
38196        BaseNetworkSocketGetIpv6OnlyResult,
38197        fidl::encoding::DefaultFuchsiaResourceDialect,
38198    >;
38199    fn r#get_ipv6_only(&self) -> Self::GetIpv6OnlyResponseFut {
38200        fn _decode(
38201            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38202        ) -> Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error> {
38203            let _response = fidl::client::decode_transaction_body::<
38204                fidl::encoding::ResultType<
38205                    BaseNetworkSocketGetIpv6OnlyResponse,
38206                    fidl_fuchsia_posix::Errno,
38207                >,
38208                fidl::encoding::DefaultFuchsiaResourceDialect,
38209                0x4aa3340a1a26b89c,
38210            >(_buf?)?;
38211            Ok(_response.map(|x| x.value))
38212        }
38213        self.client.send_query_and_decode::<
38214            fidl::encoding::EmptyPayload,
38215            BaseNetworkSocketGetIpv6OnlyResult,
38216        >(
38217            (),
38218            0x4aa3340a1a26b89c,
38219            fidl::encoding::DynamicFlags::empty(),
38220            _decode,
38221        )
38222    }
38223
38224    type SetIpv6ReceiveTrafficClassResponseFut = fidl::client::QueryResponseFut<
38225        BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
38226        fidl::encoding::DefaultFuchsiaResourceDialect,
38227    >;
38228    fn r#set_ipv6_receive_traffic_class(
38229        &self,
38230        mut value: bool,
38231    ) -> Self::SetIpv6ReceiveTrafficClassResponseFut {
38232        fn _decode(
38233            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38234        ) -> Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error> {
38235            let _response = fidl::client::decode_transaction_body::<
38236                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
38237                fidl::encoding::DefaultFuchsiaResourceDialect,
38238                0x58f07c8788d099a0,
38239            >(_buf?)?;
38240            Ok(_response.map(|x| x))
38241        }
38242        self.client.send_query_and_decode::<
38243            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
38244            BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
38245        >(
38246            (value,),
38247            0x58f07c8788d099a0,
38248            fidl::encoding::DynamicFlags::empty(),
38249            _decode,
38250        )
38251    }
38252
38253    type GetIpv6ReceiveTrafficClassResponseFut = fidl::client::QueryResponseFut<
38254        BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
38255        fidl::encoding::DefaultFuchsiaResourceDialect,
38256    >;
38257    fn r#get_ipv6_receive_traffic_class(&self) -> Self::GetIpv6ReceiveTrafficClassResponseFut {
38258        fn _decode(
38259            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38260        ) -> Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error> {
38261            let _response = fidl::client::decode_transaction_body::<
38262                fidl::encoding::ResultType<
38263                    BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
38264                    fidl_fuchsia_posix::Errno,
38265                >,
38266                fidl::encoding::DefaultFuchsiaResourceDialect,
38267                0x2e334df1da553ffa,
38268            >(_buf?)?;
38269            Ok(_response.map(|x| x.value))
38270        }
38271        self.client.send_query_and_decode::<
38272            fidl::encoding::EmptyPayload,
38273            BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
38274        >(
38275            (),
38276            0x2e334df1da553ffa,
38277            fidl::encoding::DynamicFlags::empty(),
38278            _decode,
38279        )
38280    }
38281
38282    type SetIpv6TrafficClassResponseFut = fidl::client::QueryResponseFut<
38283        BaseNetworkSocketSetIpv6TrafficClassResult,
38284        fidl::encoding::DefaultFuchsiaResourceDialect,
38285    >;
38286    fn r#set_ipv6_traffic_class(
38287        &self,
38288        mut value: &OptionalUint8,
38289    ) -> Self::SetIpv6TrafficClassResponseFut {
38290        fn _decode(
38291            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38292        ) -> Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error> {
38293            let _response = fidl::client::decode_transaction_body::<
38294                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
38295                fidl::encoding::DefaultFuchsiaResourceDialect,
38296                0x6af077800c5a0b4f,
38297            >(_buf?)?;
38298            Ok(_response.map(|x| x))
38299        }
38300        self.client.send_query_and_decode::<
38301            BaseNetworkSocketSetIpv6TrafficClassRequest,
38302            BaseNetworkSocketSetIpv6TrafficClassResult,
38303        >(
38304            (value,),
38305            0x6af077800c5a0b4f,
38306            fidl::encoding::DynamicFlags::empty(),
38307            _decode,
38308        )
38309    }
38310
38311    type GetIpv6TrafficClassResponseFut = fidl::client::QueryResponseFut<
38312        BaseNetworkSocketGetIpv6TrafficClassResult,
38313        fidl::encoding::DefaultFuchsiaResourceDialect,
38314    >;
38315    fn r#get_ipv6_traffic_class(&self) -> Self::GetIpv6TrafficClassResponseFut {
38316        fn _decode(
38317            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38318        ) -> Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error> {
38319            let _response = fidl::client::decode_transaction_body::<
38320                fidl::encoding::ResultType<
38321                    BaseNetworkSocketGetIpv6TrafficClassResponse,
38322                    fidl_fuchsia_posix::Errno,
38323                >,
38324                fidl::encoding::DefaultFuchsiaResourceDialect,
38325                0x6baf6eed8fc2f04,
38326            >(_buf?)?;
38327            Ok(_response.map(|x| x.value))
38328        }
38329        self.client.send_query_and_decode::<
38330            fidl::encoding::EmptyPayload,
38331            BaseNetworkSocketGetIpv6TrafficClassResult,
38332        >(
38333            (),
38334            0x6baf6eed8fc2f04,
38335            fidl::encoding::DynamicFlags::empty(),
38336            _decode,
38337        )
38338    }
38339
38340    type SetIpv6ReceivePacketInfoResponseFut = fidl::client::QueryResponseFut<
38341        BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
38342        fidl::encoding::DefaultFuchsiaResourceDialect,
38343    >;
38344    fn r#set_ipv6_receive_packet_info(
38345        &self,
38346        mut value: bool,
38347    ) -> Self::SetIpv6ReceivePacketInfoResponseFut {
38348        fn _decode(
38349            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38350        ) -> Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error> {
38351            let _response = fidl::client::decode_transaction_body::<
38352                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
38353                fidl::encoding::DefaultFuchsiaResourceDialect,
38354                0x19259775b1a92768,
38355            >(_buf?)?;
38356            Ok(_response.map(|x| x))
38357        }
38358        self.client.send_query_and_decode::<
38359            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
38360            BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
38361        >(
38362            (value,),
38363            0x19259775b1a92768,
38364            fidl::encoding::DynamicFlags::empty(),
38365            _decode,
38366        )
38367    }
38368
38369    type GetIpv6ReceivePacketInfoResponseFut = fidl::client::QueryResponseFut<
38370        BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
38371        fidl::encoding::DefaultFuchsiaResourceDialect,
38372    >;
38373    fn r#get_ipv6_receive_packet_info(&self) -> Self::GetIpv6ReceivePacketInfoResponseFut {
38374        fn _decode(
38375            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38376        ) -> Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error> {
38377            let _response = fidl::client::decode_transaction_body::<
38378                fidl::encoding::ResultType<
38379                    BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
38380                    fidl_fuchsia_posix::Errno,
38381                >,
38382                fidl::encoding::DefaultFuchsiaResourceDialect,
38383                0x7acd4a2775baec75,
38384            >(_buf?)?;
38385            Ok(_response.map(|x| x.value))
38386        }
38387        self.client.send_query_and_decode::<
38388            fidl::encoding::EmptyPayload,
38389            BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
38390        >(
38391            (),
38392            0x7acd4a2775baec75,
38393            fidl::encoding::DynamicFlags::empty(),
38394            _decode,
38395        )
38396    }
38397
38398    type GetOriginalDestinationResponseFut = fidl::client::QueryResponseFut<
38399        BaseNetworkSocketGetOriginalDestinationResult,
38400        fidl::encoding::DefaultFuchsiaResourceDialect,
38401    >;
38402    fn r#get_original_destination(&self) -> Self::GetOriginalDestinationResponseFut {
38403        fn _decode(
38404            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38405        ) -> Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error> {
38406            let _response = fidl::client::decode_transaction_body::<
38407                fidl::encoding::ResultType<
38408                    BaseNetworkSocketGetOriginalDestinationResponse,
38409                    fidl_fuchsia_posix::Errno,
38410                >,
38411                fidl::encoding::DefaultFuchsiaResourceDialect,
38412                0x38bf28f0dafdbac0,
38413            >(_buf?)?;
38414            Ok(_response.map(|x| x.value))
38415        }
38416        self.client.send_query_and_decode::<
38417            fidl::encoding::EmptyPayload,
38418            BaseNetworkSocketGetOriginalDestinationResult,
38419        >(
38420            (),
38421            0x38bf28f0dafdbac0,
38422            fidl::encoding::DynamicFlags::empty(),
38423            _decode,
38424        )
38425    }
38426
38427    type GetInfoResponseFut = fidl::client::QueryResponseFut<
38428        BaseDatagramSocketGetInfoResult,
38429        fidl::encoding::DefaultFuchsiaResourceDialect,
38430    >;
38431    fn r#get_info(&self) -> Self::GetInfoResponseFut {
38432        fn _decode(
38433            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38434        ) -> Result<BaseDatagramSocketGetInfoResult, fidl::Error> {
38435            let _response = fidl::client::decode_transaction_body::<
38436                fidl::encoding::ResultType<
38437                    BaseDatagramSocketGetInfoResponse,
38438                    fidl_fuchsia_posix::Errno,
38439                >,
38440                fidl::encoding::DefaultFuchsiaResourceDialect,
38441                0x48aa0a1f6a32d2ed,
38442            >(_buf?)?;
38443            Ok(_response.map(|x| (x.domain, x.proto)))
38444        }
38445        self.client
38446            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseDatagramSocketGetInfoResult>(
38447                (),
38448                0x48aa0a1f6a32d2ed,
38449                fidl::encoding::DynamicFlags::empty(),
38450                _decode,
38451            )
38452    }
38453
38454    type DescribeResponseFut = fidl::client::QueryResponseFut<
38455        DatagramSocketDescribeResponse,
38456        fidl::encoding::DefaultFuchsiaResourceDialect,
38457    >;
38458    fn r#describe(&self) -> Self::DescribeResponseFut {
38459        fn _decode(
38460            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38461        ) -> Result<DatagramSocketDescribeResponse, fidl::Error> {
38462            let _response = fidl::client::decode_transaction_body::<
38463                DatagramSocketDescribeResponse,
38464                fidl::encoding::DefaultFuchsiaResourceDialect,
38465                0xbf1e2f0a86601f3,
38466            >(_buf?)?;
38467            Ok(_response)
38468        }
38469        self.client
38470            .send_query_and_decode::<fidl::encoding::EmptyPayload, DatagramSocketDescribeResponse>(
38471                (),
38472                0xbf1e2f0a86601f3,
38473                fidl::encoding::DynamicFlags::empty(),
38474                _decode,
38475            )
38476    }
38477
38478    type SendMsgPreflightResponseFut = fidl::client::QueryResponseFut<
38479        DatagramSocketSendMsgPreflightResult,
38480        fidl::encoding::DefaultFuchsiaResourceDialect,
38481    >;
38482    fn r#send_msg_preflight(
38483        &self,
38484        mut payload: &DatagramSocketSendMsgPreflightRequest,
38485    ) -> Self::SendMsgPreflightResponseFut {
38486        fn _decode(
38487            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38488        ) -> Result<DatagramSocketSendMsgPreflightResult, fidl::Error> {
38489            let _response = fidl::client::decode_transaction_body::<
38490                fidl::encoding::ResultType<
38491                    DatagramSocketSendMsgPreflightResponse,
38492                    fidl_fuchsia_posix::Errno,
38493                >,
38494                fidl::encoding::DefaultFuchsiaResourceDialect,
38495                0x5362e668e777248a,
38496            >(_buf?)?;
38497            Ok(_response.map(|x| x))
38498        }
38499        self.client.send_query_and_decode::<
38500            DatagramSocketSendMsgPreflightRequest,
38501            DatagramSocketSendMsgPreflightResult,
38502        >(
38503            payload,
38504            0x5362e668e777248a,
38505            fidl::encoding::DynamicFlags::empty(),
38506            _decode,
38507        )
38508    }
38509
38510    type RecvMsgPostflightResponseFut = fidl::client::QueryResponseFut<
38511        DatagramSocketRecvMsgPostflightResult,
38512        fidl::encoding::DefaultFuchsiaResourceDialect,
38513    >;
38514    fn r#recv_msg_postflight(&self) -> Self::RecvMsgPostflightResponseFut {
38515        fn _decode(
38516            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38517        ) -> Result<DatagramSocketRecvMsgPostflightResult, fidl::Error> {
38518            let _response = fidl::client::decode_transaction_body::<
38519                fidl::encoding::ResultType<
38520                    DatagramSocketRecvMsgPostflightResponse,
38521                    fidl_fuchsia_posix::Errno,
38522                >,
38523                fidl::encoding::DefaultFuchsiaResourceDialect,
38524                0x1a7cdeca5f3eb8e2,
38525            >(_buf?)?;
38526            Ok(_response.map(|x| x))
38527        }
38528        self.client.send_query_and_decode::<
38529            fidl::encoding::EmptyPayload,
38530            DatagramSocketRecvMsgPostflightResult,
38531        >(
38532            (),
38533            0x1a7cdeca5f3eb8e2,
38534            fidl::encoding::DynamicFlags::empty(),
38535            _decode,
38536        )
38537    }
38538}
38539
38540pub struct DatagramSocketEventStream {
38541    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
38542}
38543
38544impl std::marker::Unpin for DatagramSocketEventStream {}
38545
38546impl futures::stream::FusedStream for DatagramSocketEventStream {
38547    fn is_terminated(&self) -> bool {
38548        self.event_receiver.is_terminated()
38549    }
38550}
38551
38552impl futures::Stream for DatagramSocketEventStream {
38553    type Item = Result<DatagramSocketEvent, fidl::Error>;
38554
38555    fn poll_next(
38556        mut self: std::pin::Pin<&mut Self>,
38557        cx: &mut std::task::Context<'_>,
38558    ) -> std::task::Poll<Option<Self::Item>> {
38559        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
38560            &mut self.event_receiver,
38561            cx
38562        )?) {
38563            Some(buf) => std::task::Poll::Ready(Some(DatagramSocketEvent::decode(buf))),
38564            None => std::task::Poll::Ready(None),
38565        }
38566    }
38567}
38568
38569#[derive(Debug)]
38570pub enum DatagramSocketEvent {}
38571
38572impl DatagramSocketEvent {
38573    /// Decodes a message buffer as a [`DatagramSocketEvent`].
38574    fn decode(
38575        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
38576    ) -> Result<DatagramSocketEvent, fidl::Error> {
38577        let (bytes, _handles) = buf.split_mut();
38578        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
38579        debug_assert_eq!(tx_header.tx_id, 0);
38580        match tx_header.ordinal {
38581            _ => Err(fidl::Error::UnknownOrdinal {
38582                ordinal: tx_header.ordinal,
38583                protocol_name:
38584                    <DatagramSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
38585            }),
38586        }
38587    }
38588}
38589
38590/// A Stream of incoming requests for fuchsia.posix.socket/DatagramSocket.
38591pub struct DatagramSocketRequestStream {
38592    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
38593    is_terminated: bool,
38594}
38595
38596impl std::marker::Unpin for DatagramSocketRequestStream {}
38597
38598impl futures::stream::FusedStream for DatagramSocketRequestStream {
38599    fn is_terminated(&self) -> bool {
38600        self.is_terminated
38601    }
38602}
38603
38604impl fidl::endpoints::RequestStream for DatagramSocketRequestStream {
38605    type Protocol = DatagramSocketMarker;
38606    type ControlHandle = DatagramSocketControlHandle;
38607
38608    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
38609        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
38610    }
38611
38612    fn control_handle(&self) -> Self::ControlHandle {
38613        DatagramSocketControlHandle { inner: self.inner.clone() }
38614    }
38615
38616    fn into_inner(
38617        self,
38618    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
38619    {
38620        (self.inner, self.is_terminated)
38621    }
38622
38623    fn from_inner(
38624        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
38625        is_terminated: bool,
38626    ) -> Self {
38627        Self { inner, is_terminated }
38628    }
38629}
38630
38631impl futures::Stream for DatagramSocketRequestStream {
38632    type Item = Result<DatagramSocketRequest, fidl::Error>;
38633
38634    fn poll_next(
38635        mut self: std::pin::Pin<&mut Self>,
38636        cx: &mut std::task::Context<'_>,
38637    ) -> std::task::Poll<Option<Self::Item>> {
38638        let this = &mut *self;
38639        if this.inner.check_shutdown(cx) {
38640            this.is_terminated = true;
38641            return std::task::Poll::Ready(None);
38642        }
38643        if this.is_terminated {
38644            panic!("polled DatagramSocketRequestStream after completion");
38645        }
38646        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
38647            |bytes, handles| {
38648                match this.inner.channel().read_etc(cx, bytes, handles) {
38649                    std::task::Poll::Ready(Ok(())) => {}
38650                    std::task::Poll::Pending => return std::task::Poll::Pending,
38651                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
38652                        this.is_terminated = true;
38653                        return std::task::Poll::Ready(None);
38654                    }
38655                    std::task::Poll::Ready(Err(e)) => {
38656                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
38657                            e.into(),
38658                        ))))
38659                    }
38660                }
38661
38662                // A message has been received from the channel
38663                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
38664
38665                std::task::Poll::Ready(Some(match header.ordinal {
38666                    0x20d8a7aba2168a79 => {
38667                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
38668                        let mut req = fidl::new_empty!(
38669                            fidl_fuchsia_unknown::CloneableCloneRequest,
38670                            fidl::encoding::DefaultFuchsiaResourceDialect
38671                        );
38672                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl_fuchsia_unknown::CloneableCloneRequest>(&header, _body_bytes, handles, &mut req)?;
38673                        let control_handle =
38674                            DatagramSocketControlHandle { inner: this.inner.clone() };
38675                        Ok(DatagramSocketRequest::Clone { request: req.request, control_handle })
38676                    }
38677                    0x5ac5d459ad7f657e => {
38678                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38679                        let mut req = fidl::new_empty!(
38680                            fidl::encoding::EmptyPayload,
38681                            fidl::encoding::DefaultFuchsiaResourceDialect
38682                        );
38683                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
38684                        let control_handle =
38685                            DatagramSocketControlHandle { inner: this.inner.clone() };
38686                        Ok(DatagramSocketRequest::Close {
38687                            responder: DatagramSocketCloseResponder {
38688                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38689                                tx_id: header.tx_id,
38690                            },
38691                        })
38692                    }
38693                    0x2658edee9decfc06 => {
38694                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38695                        let mut req = fidl::new_empty!(
38696                            fidl::encoding::EmptyPayload,
38697                            fidl::encoding::DefaultFuchsiaResourceDialect
38698                        );
38699                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
38700                        let control_handle =
38701                            DatagramSocketControlHandle { inner: this.inner.clone() };
38702                        Ok(DatagramSocketRequest::Query {
38703                            responder: DatagramSocketQueryResponder {
38704                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38705                                tx_id: header.tx_id,
38706                            },
38707                        })
38708                    }
38709                    0x1fd74ee8b9a4a876 => {
38710                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38711                        let mut req = fidl::new_empty!(
38712                            BaseSocketSetReuseAddressRequest,
38713                            fidl::encoding::DefaultFuchsiaResourceDialect
38714                        );
38715                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReuseAddressRequest>(&header, _body_bytes, handles, &mut req)?;
38716                        let control_handle =
38717                            DatagramSocketControlHandle { inner: this.inner.clone() };
38718                        Ok(DatagramSocketRequest::SetReuseAddress {
38719                            value: req.value,
38720
38721                            responder: DatagramSocketSetReuseAddressResponder {
38722                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38723                                tx_id: header.tx_id,
38724                            },
38725                        })
38726                    }
38727                    0x67b7206b8d1bc0a5 => {
38728                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38729                        let mut req = fidl::new_empty!(
38730                            fidl::encoding::EmptyPayload,
38731                            fidl::encoding::DefaultFuchsiaResourceDialect
38732                        );
38733                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
38734                        let control_handle =
38735                            DatagramSocketControlHandle { inner: this.inner.clone() };
38736                        Ok(DatagramSocketRequest::GetReuseAddress {
38737                            responder: DatagramSocketGetReuseAddressResponder {
38738                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38739                                tx_id: header.tx_id,
38740                            },
38741                        })
38742                    }
38743                    0x5aad39b33e5f6ebb => {
38744                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38745                        let mut req = fidl::new_empty!(
38746                            fidl::encoding::EmptyPayload,
38747                            fidl::encoding::DefaultFuchsiaResourceDialect
38748                        );
38749                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
38750                        let control_handle =
38751                            DatagramSocketControlHandle { inner: this.inner.clone() };
38752                        Ok(DatagramSocketRequest::GetError {
38753                            responder: DatagramSocketGetErrorResponder {
38754                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38755                                tx_id: header.tx_id,
38756                            },
38757                        })
38758                    }
38759                    0x6023e081ce3cd947 => {
38760                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38761                        let mut req = fidl::new_empty!(
38762                            BaseSocketSetBroadcastRequest,
38763                            fidl::encoding::DefaultFuchsiaResourceDialect
38764                        );
38765                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBroadcastRequest>(&header, _body_bytes, handles, &mut req)?;
38766                        let control_handle =
38767                            DatagramSocketControlHandle { inner: this.inner.clone() };
38768                        Ok(DatagramSocketRequest::SetBroadcast {
38769                            value: req.value,
38770
38771                            responder: DatagramSocketSetBroadcastResponder {
38772                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38773                                tx_id: header.tx_id,
38774                            },
38775                        })
38776                    }
38777                    0x68796fc556f9780d => {
38778                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38779                        let mut req = fidl::new_empty!(
38780                            fidl::encoding::EmptyPayload,
38781                            fidl::encoding::DefaultFuchsiaResourceDialect
38782                        );
38783                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
38784                        let control_handle =
38785                            DatagramSocketControlHandle { inner: this.inner.clone() };
38786                        Ok(DatagramSocketRequest::GetBroadcast {
38787                            responder: DatagramSocketGetBroadcastResponder {
38788                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38789                                tx_id: header.tx_id,
38790                            },
38791                        })
38792                    }
38793                    0x756eac32d73a7a70 => {
38794                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38795                        let mut req = fidl::new_empty!(
38796                            BaseSocketSetSendBufferRequest,
38797                            fidl::encoding::DefaultFuchsiaResourceDialect
38798                        );
38799                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetSendBufferRequest>(&header, _body_bytes, handles, &mut req)?;
38800                        let control_handle =
38801                            DatagramSocketControlHandle { inner: this.inner.clone() };
38802                        Ok(DatagramSocketRequest::SetSendBuffer {
38803                            value_bytes: req.value_bytes,
38804
38805                            responder: DatagramSocketSetSendBufferResponder {
38806                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38807                                tx_id: header.tx_id,
38808                            },
38809                        })
38810                    }
38811                    0x78a52fd9c7b2410b => {
38812                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38813                        let mut req = fidl::new_empty!(
38814                            fidl::encoding::EmptyPayload,
38815                            fidl::encoding::DefaultFuchsiaResourceDialect
38816                        );
38817                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
38818                        let control_handle =
38819                            DatagramSocketControlHandle { inner: this.inner.clone() };
38820                        Ok(DatagramSocketRequest::GetSendBuffer {
38821                            responder: DatagramSocketGetSendBufferResponder {
38822                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38823                                tx_id: header.tx_id,
38824                            },
38825                        })
38826                    }
38827                    0x6b0cf2f1919c7001 => {
38828                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38829                        let mut req = fidl::new_empty!(
38830                            BaseSocketSetReceiveBufferRequest,
38831                            fidl::encoding::DefaultFuchsiaResourceDialect
38832                        );
38833                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReceiveBufferRequest>(&header, _body_bytes, handles, &mut req)?;
38834                        let control_handle =
38835                            DatagramSocketControlHandle { inner: this.inner.clone() };
38836                        Ok(DatagramSocketRequest::SetReceiveBuffer {
38837                            value_bytes: req.value_bytes,
38838
38839                            responder: DatagramSocketSetReceiveBufferResponder {
38840                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38841                                tx_id: header.tx_id,
38842                            },
38843                        })
38844                    }
38845                    0x14c1a4b64f709e5c => {
38846                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38847                        let mut req = fidl::new_empty!(
38848                            fidl::encoding::EmptyPayload,
38849                            fidl::encoding::DefaultFuchsiaResourceDialect
38850                        );
38851                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
38852                        let control_handle =
38853                            DatagramSocketControlHandle { inner: this.inner.clone() };
38854                        Ok(DatagramSocketRequest::GetReceiveBuffer {
38855                            responder: DatagramSocketGetReceiveBufferResponder {
38856                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38857                                tx_id: header.tx_id,
38858                            },
38859                        })
38860                    }
38861                    0x572df8f0b920d2c7 => {
38862                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38863                        let mut req = fidl::new_empty!(
38864                            BaseSocketSetKeepAliveRequest,
38865                            fidl::encoding::DefaultFuchsiaResourceDialect
38866                        );
38867                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetKeepAliveRequest>(&header, _body_bytes, handles, &mut req)?;
38868                        let control_handle =
38869                            DatagramSocketControlHandle { inner: this.inner.clone() };
38870                        Ok(DatagramSocketRequest::SetKeepAlive {
38871                            value: req.value,
38872
38873                            responder: DatagramSocketSetKeepAliveResponder {
38874                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38875                                tx_id: header.tx_id,
38876                            },
38877                        })
38878                    }
38879                    0x2dd29d3215f2c9d2 => {
38880                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38881                        let mut req = fidl::new_empty!(
38882                            fidl::encoding::EmptyPayload,
38883                            fidl::encoding::DefaultFuchsiaResourceDialect
38884                        );
38885                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
38886                        let control_handle =
38887                            DatagramSocketControlHandle { inner: this.inner.clone() };
38888                        Ok(DatagramSocketRequest::GetKeepAlive {
38889                            responder: DatagramSocketGetKeepAliveResponder {
38890                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38891                                tx_id: header.tx_id,
38892                            },
38893                        })
38894                    }
38895                    0x3ecb49968bee439 => {
38896                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38897                        let mut req = fidl::new_empty!(
38898                            BaseSocketSetOutOfBandInlineRequest,
38899                            fidl::encoding::DefaultFuchsiaResourceDialect
38900                        );
38901                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetOutOfBandInlineRequest>(&header, _body_bytes, handles, &mut req)?;
38902                        let control_handle =
38903                            DatagramSocketControlHandle { inner: this.inner.clone() };
38904                        Ok(DatagramSocketRequest::SetOutOfBandInline {
38905                            value: req.value,
38906
38907                            responder: DatagramSocketSetOutOfBandInlineResponder {
38908                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38909                                tx_id: header.tx_id,
38910                            },
38911                        })
38912                    }
38913                    0x348c1ab3aeca1745 => {
38914                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38915                        let mut req = fidl::new_empty!(
38916                            fidl::encoding::EmptyPayload,
38917                            fidl::encoding::DefaultFuchsiaResourceDialect
38918                        );
38919                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
38920                        let control_handle =
38921                            DatagramSocketControlHandle { inner: this.inner.clone() };
38922                        Ok(DatagramSocketRequest::GetOutOfBandInline {
38923                            responder: DatagramSocketGetOutOfBandInlineResponder {
38924                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38925                                tx_id: header.tx_id,
38926                            },
38927                        })
38928                    }
38929                    0x6bbf00c53a4c78c2 => {
38930                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38931                        let mut req = fidl::new_empty!(
38932                            BaseSocketSetNoCheckRequest,
38933                            fidl::encoding::DefaultFuchsiaResourceDialect
38934                        );
38935                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetNoCheckRequest>(&header, _body_bytes, handles, &mut req)?;
38936                        let control_handle =
38937                            DatagramSocketControlHandle { inner: this.inner.clone() };
38938                        Ok(DatagramSocketRequest::SetNoCheck {
38939                            value: req.value,
38940
38941                            responder: DatagramSocketSetNoCheckResponder {
38942                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38943                                tx_id: header.tx_id,
38944                            },
38945                        })
38946                    }
38947                    0x2cd4249286417694 => {
38948                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38949                        let mut req = fidl::new_empty!(
38950                            fidl::encoding::EmptyPayload,
38951                            fidl::encoding::DefaultFuchsiaResourceDialect
38952                        );
38953                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
38954                        let control_handle =
38955                            DatagramSocketControlHandle { inner: this.inner.clone() };
38956                        Ok(DatagramSocketRequest::GetNoCheck {
38957                            responder: DatagramSocketGetNoCheckResponder {
38958                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38959                                tx_id: header.tx_id,
38960                            },
38961                        })
38962                    }
38963                    0x45386351246e998e => {
38964                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38965                        let mut req = fidl::new_empty!(
38966                            BaseSocketSetLingerRequest,
38967                            fidl::encoding::DefaultFuchsiaResourceDialect
38968                        );
38969                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetLingerRequest>(&header, _body_bytes, handles, &mut req)?;
38970                        let control_handle =
38971                            DatagramSocketControlHandle { inner: this.inner.clone() };
38972                        Ok(DatagramSocketRequest::SetLinger {
38973                            linger: req.linger,
38974                            length_secs: req.length_secs,
38975
38976                            responder: DatagramSocketSetLingerResponder {
38977                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38978                                tx_id: header.tx_id,
38979                            },
38980                        })
38981                    }
38982                    0x48eb20fc5ccb0e45 => {
38983                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38984                        let mut req = fidl::new_empty!(
38985                            fidl::encoding::EmptyPayload,
38986                            fidl::encoding::DefaultFuchsiaResourceDialect
38987                        );
38988                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
38989                        let control_handle =
38990                            DatagramSocketControlHandle { inner: this.inner.clone() };
38991                        Ok(DatagramSocketRequest::GetLinger {
38992                            responder: DatagramSocketGetLingerResponder {
38993                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38994                                tx_id: header.tx_id,
38995                            },
38996                        })
38997                    }
38998                    0x24dd3e5cb36d9ccb => {
38999                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39000                        let mut req = fidl::new_empty!(
39001                            BaseSocketSetReusePortRequest,
39002                            fidl::encoding::DefaultFuchsiaResourceDialect
39003                        );
39004                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReusePortRequest>(&header, _body_bytes, handles, &mut req)?;
39005                        let control_handle =
39006                            DatagramSocketControlHandle { inner: this.inner.clone() };
39007                        Ok(DatagramSocketRequest::SetReusePort {
39008                            value: req.value,
39009
39010                            responder: DatagramSocketSetReusePortResponder {
39011                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39012                                tx_id: header.tx_id,
39013                            },
39014                        })
39015                    }
39016                    0x7a112c1ab54ff828 => {
39017                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39018                        let mut req = fidl::new_empty!(
39019                            fidl::encoding::EmptyPayload,
39020                            fidl::encoding::DefaultFuchsiaResourceDialect
39021                        );
39022                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39023                        let control_handle =
39024                            DatagramSocketControlHandle { inner: this.inner.clone() };
39025                        Ok(DatagramSocketRequest::GetReusePort {
39026                            responder: DatagramSocketGetReusePortResponder {
39027                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39028                                tx_id: header.tx_id,
39029                            },
39030                        })
39031                    }
39032                    0x67ce6db6c2ec8966 => {
39033                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39034                        let mut req = fidl::new_empty!(
39035                            fidl::encoding::EmptyPayload,
39036                            fidl::encoding::DefaultFuchsiaResourceDialect
39037                        );
39038                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39039                        let control_handle =
39040                            DatagramSocketControlHandle { inner: this.inner.clone() };
39041                        Ok(DatagramSocketRequest::GetAcceptConn {
39042                            responder: DatagramSocketGetAcceptConnResponder {
39043                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39044                                tx_id: header.tx_id,
39045                            },
39046                        })
39047                    }
39048                    0x2118b483f28aafc4 => {
39049                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39050                        let mut req = fidl::new_empty!(
39051                            BaseSocketSetBindToDeviceRequest,
39052                            fidl::encoding::DefaultFuchsiaResourceDialect
39053                        );
39054                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToDeviceRequest>(&header, _body_bytes, handles, &mut req)?;
39055                        let control_handle =
39056                            DatagramSocketControlHandle { inner: this.inner.clone() };
39057                        Ok(DatagramSocketRequest::SetBindToDevice {
39058                            value: req.value,
39059
39060                            responder: DatagramSocketSetBindToDeviceResponder {
39061                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39062                                tx_id: header.tx_id,
39063                            },
39064                        })
39065                    }
39066                    0x1ab1fbf0ef7906c8 => {
39067                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39068                        let mut req = fidl::new_empty!(
39069                            fidl::encoding::EmptyPayload,
39070                            fidl::encoding::DefaultFuchsiaResourceDialect
39071                        );
39072                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39073                        let control_handle =
39074                            DatagramSocketControlHandle { inner: this.inner.clone() };
39075                        Ok(DatagramSocketRequest::GetBindToDevice {
39076                            responder: DatagramSocketGetBindToDeviceResponder {
39077                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39078                                tx_id: header.tx_id,
39079                            },
39080                        })
39081                    }
39082                    0x6e387a0def00821 => {
39083                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39084                        let mut req = fidl::new_empty!(
39085                            BaseSocketSetBindToInterfaceIndexRequest,
39086                            fidl::encoding::DefaultFuchsiaResourceDialect
39087                        );
39088                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToInterfaceIndexRequest>(&header, _body_bytes, handles, &mut req)?;
39089                        let control_handle =
39090                            DatagramSocketControlHandle { inner: this.inner.clone() };
39091                        Ok(DatagramSocketRequest::SetBindToInterfaceIndex {
39092                            value: req.value,
39093
39094                            responder: DatagramSocketSetBindToInterfaceIndexResponder {
39095                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39096                                tx_id: header.tx_id,
39097                            },
39098                        })
39099                    }
39100                    0x59c31dd3e3078295 => {
39101                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39102                        let mut req = fidl::new_empty!(
39103                            fidl::encoding::EmptyPayload,
39104                            fidl::encoding::DefaultFuchsiaResourceDialect
39105                        );
39106                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39107                        let control_handle =
39108                            DatagramSocketControlHandle { inner: this.inner.clone() };
39109                        Ok(DatagramSocketRequest::GetBindToInterfaceIndex {
39110                            responder: DatagramSocketGetBindToInterfaceIndexResponder {
39111                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39112                                tx_id: header.tx_id,
39113                            },
39114                        })
39115                    }
39116                    0x285d6516c263d839 => {
39117                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39118                        let mut req = fidl::new_empty!(
39119                            BaseSocketSetTimestampRequest,
39120                            fidl::encoding::DefaultFuchsiaResourceDialect
39121                        );
39122                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetTimestampRequest>(&header, _body_bytes, handles, &mut req)?;
39123                        let control_handle =
39124                            DatagramSocketControlHandle { inner: this.inner.clone() };
39125                        Ok(DatagramSocketRequest::SetTimestamp {
39126                            value: req.value,
39127
39128                            responder: DatagramSocketSetTimestampResponder {
39129                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39130                                tx_id: header.tx_id,
39131                            },
39132                        })
39133                    }
39134                    0x49f2fffbbcc2bd27 => {
39135                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39136                        let mut req = fidl::new_empty!(
39137                            fidl::encoding::EmptyPayload,
39138                            fidl::encoding::DefaultFuchsiaResourceDialect
39139                        );
39140                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39141                        let control_handle =
39142                            DatagramSocketControlHandle { inner: this.inner.clone() };
39143                        Ok(DatagramSocketRequest::GetTimestamp {
39144                            responder: DatagramSocketGetTimestampResponder {
39145                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39146                                tx_id: header.tx_id,
39147                            },
39148                        })
39149                    }
39150                    0x6ead6de09f653236 => {
39151                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39152                        let mut req = fidl::new_empty!(
39153                            BaseSocketSetMarkRequest,
39154                            fidl::encoding::DefaultFuchsiaResourceDialect
39155                        );
39156                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
39157                        let control_handle =
39158                            DatagramSocketControlHandle { inner: this.inner.clone() };
39159                        Ok(DatagramSocketRequest::SetMark {
39160                            domain: req.domain,
39161                            mark: req.mark,
39162
39163                            responder: DatagramSocketSetMarkResponder {
39164                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39165                                tx_id: header.tx_id,
39166                            },
39167                        })
39168                    }
39169                    0x57a2752c61d93d47 => {
39170                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39171                        let mut req = fidl::new_empty!(
39172                            BaseSocketGetMarkRequest,
39173                            fidl::encoding::DefaultFuchsiaResourceDialect
39174                        );
39175                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketGetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
39176                        let control_handle =
39177                            DatagramSocketControlHandle { inner: this.inner.clone() };
39178                        Ok(DatagramSocketRequest::GetMark {
39179                            domain: req.domain,
39180
39181                            responder: DatagramSocketGetMarkResponder {
39182                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39183                                tx_id: header.tx_id,
39184                            },
39185                        })
39186                    }
39187                    0x2c2f47fd8f924e52 => {
39188                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39189                        let mut req = fidl::new_empty!(
39190                            fidl::encoding::EmptyPayload,
39191                            fidl::encoding::DefaultFuchsiaResourceDialect
39192                        );
39193                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39194                        let control_handle =
39195                            DatagramSocketControlHandle { inner: this.inner.clone() };
39196                        Ok(DatagramSocketRequest::GetCookie {
39197                            responder: DatagramSocketGetCookieResponder {
39198                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39199                                tx_id: header.tx_id,
39200                            },
39201                        })
39202                    }
39203                    0x4bc6400ae92125d => {
39204                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39205                        let mut req = fidl::new_empty!(
39206                            BaseNetworkSocketBindRequest,
39207                            fidl::encoding::DefaultFuchsiaResourceDialect
39208                        );
39209                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketBindRequest>(&header, _body_bytes, handles, &mut req)?;
39210                        let control_handle =
39211                            DatagramSocketControlHandle { inner: this.inner.clone() };
39212                        Ok(DatagramSocketRequest::Bind {
39213                            addr: req.addr,
39214
39215                            responder: DatagramSocketBindResponder {
39216                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39217                                tx_id: header.tx_id,
39218                            },
39219                        })
39220                    }
39221                    0x5f05f19bfdd38871 => {
39222                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39223                        let mut req = fidl::new_empty!(
39224                            BaseNetworkSocketConnectRequest,
39225                            fidl::encoding::DefaultFuchsiaResourceDialect
39226                        );
39227                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketConnectRequest>(&header, _body_bytes, handles, &mut req)?;
39228                        let control_handle =
39229                            DatagramSocketControlHandle { inner: this.inner.clone() };
39230                        Ok(DatagramSocketRequest::Connect {
39231                            addr: req.addr,
39232
39233                            responder: DatagramSocketConnectResponder {
39234                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39235                                tx_id: header.tx_id,
39236                            },
39237                        })
39238                    }
39239                    0x74e63b91f7b29b2 => {
39240                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39241                        let mut req = fidl::new_empty!(
39242                            fidl::encoding::EmptyPayload,
39243                            fidl::encoding::DefaultFuchsiaResourceDialect
39244                        );
39245                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39246                        let control_handle =
39247                            DatagramSocketControlHandle { inner: this.inner.clone() };
39248                        Ok(DatagramSocketRequest::Disconnect {
39249                            responder: DatagramSocketDisconnectResponder {
39250                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39251                                tx_id: header.tx_id,
39252                            },
39253                        })
39254                    }
39255                    0x475f23f84a1a4f85 => {
39256                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39257                        let mut req = fidl::new_empty!(
39258                            fidl::encoding::EmptyPayload,
39259                            fidl::encoding::DefaultFuchsiaResourceDialect
39260                        );
39261                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39262                        let control_handle =
39263                            DatagramSocketControlHandle { inner: this.inner.clone() };
39264                        Ok(DatagramSocketRequest::GetSockName {
39265                            responder: DatagramSocketGetSockNameResponder {
39266                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39267                                tx_id: header.tx_id,
39268                            },
39269                        })
39270                    }
39271                    0x1ffecf4bd5b6432e => {
39272                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39273                        let mut req = fidl::new_empty!(
39274                            fidl::encoding::EmptyPayload,
39275                            fidl::encoding::DefaultFuchsiaResourceDialect
39276                        );
39277                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39278                        let control_handle =
39279                            DatagramSocketControlHandle { inner: this.inner.clone() };
39280                        Ok(DatagramSocketRequest::GetPeerName {
39281                            responder: DatagramSocketGetPeerNameResponder {
39282                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39283                                tx_id: header.tx_id,
39284                            },
39285                        })
39286                    }
39287                    0x247f38b6db68c336 => {
39288                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39289                        let mut req = fidl::new_empty!(
39290                            BaseNetworkSocketShutdownRequest,
39291                            fidl::encoding::DefaultFuchsiaResourceDialect
39292                        );
39293                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketShutdownRequest>(&header, _body_bytes, handles, &mut req)?;
39294                        let control_handle =
39295                            DatagramSocketControlHandle { inner: this.inner.clone() };
39296                        Ok(DatagramSocketRequest::Shutdown {
39297                            mode: req.mode,
39298
39299                            responder: DatagramSocketShutdownResponder {
39300                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39301                                tx_id: header.tx_id,
39302                            },
39303                        })
39304                    }
39305                    0x995c600475b6d46 => {
39306                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39307                        let mut req = fidl::new_empty!(
39308                            BaseNetworkSocketSetIpTypeOfServiceRequest,
39309                            fidl::encoding::DefaultFuchsiaResourceDialect
39310                        );
39311                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTypeOfServiceRequest>(&header, _body_bytes, handles, &mut req)?;
39312                        let control_handle =
39313                            DatagramSocketControlHandle { inner: this.inner.clone() };
39314                        Ok(DatagramSocketRequest::SetIpTypeOfService {
39315                            value: req.value,
39316
39317                            responder: DatagramSocketSetIpTypeOfServiceResponder {
39318                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39319                                tx_id: header.tx_id,
39320                            },
39321                        })
39322                    }
39323                    0x3814a04259f75fcb => {
39324                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39325                        let mut req = fidl::new_empty!(
39326                            fidl::encoding::EmptyPayload,
39327                            fidl::encoding::DefaultFuchsiaResourceDialect
39328                        );
39329                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39330                        let control_handle =
39331                            DatagramSocketControlHandle { inner: this.inner.clone() };
39332                        Ok(DatagramSocketRequest::GetIpTypeOfService {
39333                            responder: DatagramSocketGetIpTypeOfServiceResponder {
39334                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39335                                tx_id: header.tx_id,
39336                            },
39337                        })
39338                    }
39339                    0x29e2424b433ae1ef => {
39340                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39341                        let mut req = fidl::new_empty!(
39342                            BaseNetworkSocketSetIpTtlRequest,
39343                            fidl::encoding::DefaultFuchsiaResourceDialect
39344                        );
39345                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTtlRequest>(&header, _body_bytes, handles, &mut req)?;
39346                        let control_handle =
39347                            DatagramSocketControlHandle { inner: this.inner.clone() };
39348                        Ok(DatagramSocketRequest::SetIpTtl {
39349                            value: req.value,
39350
39351                            responder: DatagramSocketSetIpTtlResponder {
39352                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39353                                tx_id: header.tx_id,
39354                            },
39355                        })
39356                    }
39357                    0x47e47fa1f24da471 => {
39358                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39359                        let mut req = fidl::new_empty!(
39360                            fidl::encoding::EmptyPayload,
39361                            fidl::encoding::DefaultFuchsiaResourceDialect
39362                        );
39363                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39364                        let control_handle =
39365                            DatagramSocketControlHandle { inner: this.inner.clone() };
39366                        Ok(DatagramSocketRequest::GetIpTtl {
39367                            responder: DatagramSocketGetIpTtlResponder {
39368                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39369                                tx_id: header.tx_id,
39370                            },
39371                        })
39372                    }
39373                    0x392d16bee20c0e16 => {
39374                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39375                        let mut req = fidl::new_empty!(
39376                            BaseNetworkSocketSetIpPacketInfoRequest,
39377                            fidl::encoding::DefaultFuchsiaResourceDialect
39378                        );
39379                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpPacketInfoRequest>(&header, _body_bytes, handles, &mut req)?;
39380                        let control_handle =
39381                            DatagramSocketControlHandle { inner: this.inner.clone() };
39382                        Ok(DatagramSocketRequest::SetIpPacketInfo {
39383                            value: req.value,
39384
39385                            responder: DatagramSocketSetIpPacketInfoResponder {
39386                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39387                                tx_id: header.tx_id,
39388                            },
39389                        })
39390                    }
39391                    0x54b505f242280740 => {
39392                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39393                        let mut req = fidl::new_empty!(
39394                            fidl::encoding::EmptyPayload,
39395                            fidl::encoding::DefaultFuchsiaResourceDialect
39396                        );
39397                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39398                        let control_handle =
39399                            DatagramSocketControlHandle { inner: this.inner.clone() };
39400                        Ok(DatagramSocketRequest::GetIpPacketInfo {
39401                            responder: DatagramSocketGetIpPacketInfoResponder {
39402                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39403                                tx_id: header.tx_id,
39404                            },
39405                        })
39406                    }
39407                    0x6c4f6714995f84ef => {
39408                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39409                        let mut req = fidl::new_empty!(
39410                            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
39411                            fidl::encoding::DefaultFuchsiaResourceDialect
39412                        );
39413                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveTypeOfServiceRequest>(&header, _body_bytes, handles, &mut req)?;
39414                        let control_handle =
39415                            DatagramSocketControlHandle { inner: this.inner.clone() };
39416                        Ok(DatagramSocketRequest::SetIpReceiveTypeOfService {
39417                            value: req.value,
39418
39419                            responder: DatagramSocketSetIpReceiveTypeOfServiceResponder {
39420                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39421                                tx_id: header.tx_id,
39422                            },
39423                        })
39424                    }
39425                    0x4158ba7dc2795960 => {
39426                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39427                        let mut req = fidl::new_empty!(
39428                            fidl::encoding::EmptyPayload,
39429                            fidl::encoding::DefaultFuchsiaResourceDialect
39430                        );
39431                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39432                        let control_handle =
39433                            DatagramSocketControlHandle { inner: this.inner.clone() };
39434                        Ok(DatagramSocketRequest::GetIpReceiveTypeOfService {
39435                            responder: DatagramSocketGetIpReceiveTypeOfServiceResponder {
39436                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39437                                tx_id: header.tx_id,
39438                            },
39439                        })
39440                    }
39441                    0x46f15be0ce0ab82b => {
39442                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39443                        let mut req = fidl::new_empty!(
39444                            BaseNetworkSocketSetIpReceiveTtlRequest,
39445                            fidl::encoding::DefaultFuchsiaResourceDialect
39446                        );
39447                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveTtlRequest>(&header, _body_bytes, handles, &mut req)?;
39448                        let control_handle =
39449                            DatagramSocketControlHandle { inner: this.inner.clone() };
39450                        Ok(DatagramSocketRequest::SetIpReceiveTtl {
39451                            value: req.value,
39452
39453                            responder: DatagramSocketSetIpReceiveTtlResponder {
39454                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39455                                tx_id: header.tx_id,
39456                            },
39457                        })
39458                    }
39459                    0x678ddd5a5dfa2eb5 => {
39460                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39461                        let mut req = fidl::new_empty!(
39462                            fidl::encoding::EmptyPayload,
39463                            fidl::encoding::DefaultFuchsiaResourceDialect
39464                        );
39465                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39466                        let control_handle =
39467                            DatagramSocketControlHandle { inner: this.inner.clone() };
39468                        Ok(DatagramSocketRequest::GetIpReceiveTtl {
39469                            responder: DatagramSocketGetIpReceiveTtlResponder {
39470                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39471                                tx_id: header.tx_id,
39472                            },
39473                        })
39474                    }
39475                    0x752fbfa9b12befe => {
39476                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39477                        let mut req = fidl::new_empty!(
39478                            BaseNetworkSocketSetIpMulticastInterfaceRequest,
39479                            fidl::encoding::DefaultFuchsiaResourceDialect
39480                        );
39481                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastInterfaceRequest>(&header, _body_bytes, handles, &mut req)?;
39482                        let control_handle =
39483                            DatagramSocketControlHandle { inner: this.inner.clone() };
39484                        Ok(DatagramSocketRequest::SetIpMulticastInterface {
39485                            iface: req.iface,
39486                            address: req.address,
39487
39488                            responder: DatagramSocketSetIpMulticastInterfaceResponder {
39489                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39490                                tx_id: header.tx_id,
39491                            },
39492                        })
39493                    }
39494                    0x320bd14c4df046c4 => {
39495                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39496                        let mut req = fidl::new_empty!(
39497                            fidl::encoding::EmptyPayload,
39498                            fidl::encoding::DefaultFuchsiaResourceDialect
39499                        );
39500                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39501                        let control_handle =
39502                            DatagramSocketControlHandle { inner: this.inner.clone() };
39503                        Ok(DatagramSocketRequest::GetIpMulticastInterface {
39504                            responder: DatagramSocketGetIpMulticastInterfaceResponder {
39505                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39506                                tx_id: header.tx_id,
39507                            },
39508                        })
39509                    }
39510                    0x63134d53772916a1 => {
39511                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39512                        let mut req = fidl::new_empty!(
39513                            BaseNetworkSocketSetIpMulticastTtlRequest,
39514                            fidl::encoding::DefaultFuchsiaResourceDialect
39515                        );
39516                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastTtlRequest>(&header, _body_bytes, handles, &mut req)?;
39517                        let control_handle =
39518                            DatagramSocketControlHandle { inner: this.inner.clone() };
39519                        Ok(DatagramSocketRequest::SetIpMulticastTtl {
39520                            value: req.value,
39521
39522                            responder: DatagramSocketSetIpMulticastTtlResponder {
39523                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39524                                tx_id: header.tx_id,
39525                            },
39526                        })
39527                    }
39528                    0x4665cd378f39e1a => {
39529                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39530                        let mut req = fidl::new_empty!(
39531                            fidl::encoding::EmptyPayload,
39532                            fidl::encoding::DefaultFuchsiaResourceDialect
39533                        );
39534                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39535                        let control_handle =
39536                            DatagramSocketControlHandle { inner: this.inner.clone() };
39537                        Ok(DatagramSocketRequest::GetIpMulticastTtl {
39538                            responder: DatagramSocketGetIpMulticastTtlResponder {
39539                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39540                                tx_id: header.tx_id,
39541                            },
39542                        })
39543                    }
39544                    0x20c55c11f00943ea => {
39545                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39546                        let mut req = fidl::new_empty!(
39547                            BaseNetworkSocketSetIpMulticastLoopbackRequest,
39548                            fidl::encoding::DefaultFuchsiaResourceDialect
39549                        );
39550                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastLoopbackRequest>(&header, _body_bytes, handles, &mut req)?;
39551                        let control_handle =
39552                            DatagramSocketControlHandle { inner: this.inner.clone() };
39553                        Ok(DatagramSocketRequest::SetIpMulticastLoopback {
39554                            value: req.value,
39555
39556                            responder: DatagramSocketSetIpMulticastLoopbackResponder {
39557                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39558                                tx_id: header.tx_id,
39559                            },
39560                        })
39561                    }
39562                    0x3b6b26ff558298f2 => {
39563                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39564                        let mut req = fidl::new_empty!(
39565                            fidl::encoding::EmptyPayload,
39566                            fidl::encoding::DefaultFuchsiaResourceDialect
39567                        );
39568                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39569                        let control_handle =
39570                            DatagramSocketControlHandle { inner: this.inner.clone() };
39571                        Ok(DatagramSocketRequest::GetIpMulticastLoopback {
39572                            responder: DatagramSocketGetIpMulticastLoopbackResponder {
39573                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39574                                tx_id: header.tx_id,
39575                            },
39576                        })
39577                    }
39578                    0x76bc7df115a3b4d0 => {
39579                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39580                        let mut req = fidl::new_empty!(
39581                            BaseNetworkSocketAddIpMembershipRequest,
39582                            fidl::encoding::DefaultFuchsiaResourceDialect
39583                        );
39584                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketAddIpMembershipRequest>(&header, _body_bytes, handles, &mut req)?;
39585                        let control_handle =
39586                            DatagramSocketControlHandle { inner: this.inner.clone() };
39587                        Ok(DatagramSocketRequest::AddIpMembership {
39588                            membership: req.membership,
39589
39590                            responder: DatagramSocketAddIpMembershipResponder {
39591                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39592                                tx_id: header.tx_id,
39593                            },
39594                        })
39595                    }
39596                    0x2888f3099188d03 => {
39597                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39598                        let mut req = fidl::new_empty!(
39599                            BaseNetworkSocketDropIpMembershipRequest,
39600                            fidl::encoding::DefaultFuchsiaResourceDialect
39601                        );
39602                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketDropIpMembershipRequest>(&header, _body_bytes, handles, &mut req)?;
39603                        let control_handle =
39604                            DatagramSocketControlHandle { inner: this.inner.clone() };
39605                        Ok(DatagramSocketRequest::DropIpMembership {
39606                            membership: req.membership,
39607
39608                            responder: DatagramSocketDropIpMembershipResponder {
39609                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39610                                tx_id: header.tx_id,
39611                            },
39612                        })
39613                    }
39614                    0x1ae532b0c066e3a0 => {
39615                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39616                        let mut req = fidl::new_empty!(
39617                            BaseNetworkSocketSetIpTransparentRequest,
39618                            fidl::encoding::DefaultFuchsiaResourceDialect
39619                        );
39620                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTransparentRequest>(&header, _body_bytes, handles, &mut req)?;
39621                        let control_handle =
39622                            DatagramSocketControlHandle { inner: this.inner.clone() };
39623                        Ok(DatagramSocketRequest::SetIpTransparent {
39624                            value: req.value,
39625
39626                            responder: DatagramSocketSetIpTransparentResponder {
39627                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39628                                tx_id: header.tx_id,
39629                            },
39630                        })
39631                    }
39632                    0x51d43695962ebfb5 => {
39633                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39634                        let mut req = fidl::new_empty!(
39635                            fidl::encoding::EmptyPayload,
39636                            fidl::encoding::DefaultFuchsiaResourceDialect
39637                        );
39638                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39639                        let control_handle =
39640                            DatagramSocketControlHandle { inner: this.inner.clone() };
39641                        Ok(DatagramSocketRequest::GetIpTransparent {
39642                            responder: DatagramSocketGetIpTransparentResponder {
39643                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39644                                tx_id: header.tx_id,
39645                            },
39646                        })
39647                    }
39648                    0x4722b4ce52f7840 => {
39649                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39650                        let mut req = fidl::new_empty!(
39651                            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
39652                            fidl::encoding::DefaultFuchsiaResourceDialect
39653                        );
39654                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest>(&header, _body_bytes, handles, &mut req)?;
39655                        let control_handle =
39656                            DatagramSocketControlHandle { inner: this.inner.clone() };
39657                        Ok(DatagramSocketRequest::SetIpReceiveOriginalDestinationAddress {
39658                            value: req.value,
39659
39660                            responder:
39661                                DatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
39662                                    control_handle: std::mem::ManuallyDrop::new(control_handle),
39663                                    tx_id: header.tx_id,
39664                                },
39665                        })
39666                    }
39667                    0x2a0e7dc5d6bfdfe9 => {
39668                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39669                        let mut req = fidl::new_empty!(
39670                            fidl::encoding::EmptyPayload,
39671                            fidl::encoding::DefaultFuchsiaResourceDialect
39672                        );
39673                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39674                        let control_handle =
39675                            DatagramSocketControlHandle { inner: this.inner.clone() };
39676                        Ok(DatagramSocketRequest::GetIpReceiveOriginalDestinationAddress {
39677                            responder:
39678                                DatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
39679                                    control_handle: std::mem::ManuallyDrop::new(control_handle),
39680                                    tx_id: header.tx_id,
39681                                },
39682                        })
39683                    }
39684                    0x7c94727acb4ea4b3 => {
39685                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39686                        let mut req = fidl::new_empty!(
39687                            BaseNetworkSocketAddIpv6MembershipRequest,
39688                            fidl::encoding::DefaultFuchsiaResourceDialect
39689                        );
39690                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketAddIpv6MembershipRequest>(&header, _body_bytes, handles, &mut req)?;
39691                        let control_handle =
39692                            DatagramSocketControlHandle { inner: this.inner.clone() };
39693                        Ok(DatagramSocketRequest::AddIpv6Membership {
39694                            membership: req.membership,
39695
39696                            responder: DatagramSocketAddIpv6MembershipResponder {
39697                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39698                                tx_id: header.tx_id,
39699                            },
39700                        })
39701                    }
39702                    0x42104c70ccaba304 => {
39703                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39704                        let mut req = fidl::new_empty!(
39705                            BaseNetworkSocketDropIpv6MembershipRequest,
39706                            fidl::encoding::DefaultFuchsiaResourceDialect
39707                        );
39708                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketDropIpv6MembershipRequest>(&header, _body_bytes, handles, &mut req)?;
39709                        let control_handle =
39710                            DatagramSocketControlHandle { inner: this.inner.clone() };
39711                        Ok(DatagramSocketRequest::DropIpv6Membership {
39712                            membership: req.membership,
39713
39714                            responder: DatagramSocketDropIpv6MembershipResponder {
39715                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39716                                tx_id: header.tx_id,
39717                            },
39718                        })
39719                    }
39720                    0x135f76db3774ab3b => {
39721                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39722                        let mut req = fidl::new_empty!(
39723                            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
39724                            fidl::encoding::DefaultFuchsiaResourceDialect
39725                        );
39726                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastInterfaceRequest>(&header, _body_bytes, handles, &mut req)?;
39727                        let control_handle =
39728                            DatagramSocketControlHandle { inner: this.inner.clone() };
39729                        Ok(DatagramSocketRequest::SetIpv6MulticastInterface {
39730                            value: req.value,
39731
39732                            responder: DatagramSocketSetIpv6MulticastInterfaceResponder {
39733                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39734                                tx_id: header.tx_id,
39735                            },
39736                        })
39737                    }
39738                    0x1f26fcdd348f1882 => {
39739                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39740                        let mut req = fidl::new_empty!(
39741                            fidl::encoding::EmptyPayload,
39742                            fidl::encoding::DefaultFuchsiaResourceDialect
39743                        );
39744                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39745                        let control_handle =
39746                            DatagramSocketControlHandle { inner: this.inner.clone() };
39747                        Ok(DatagramSocketRequest::GetIpv6MulticastInterface {
39748                            responder: DatagramSocketGetIpv6MulticastInterfaceResponder {
39749                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39750                                tx_id: header.tx_id,
39751                            },
39752                        })
39753                    }
39754                    0x157d51e98f462859 => {
39755                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39756                        let mut req = fidl::new_empty!(
39757                            BaseNetworkSocketSetIpv6UnicastHopsRequest,
39758                            fidl::encoding::DefaultFuchsiaResourceDialect
39759                        );
39760                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6UnicastHopsRequest>(&header, _body_bytes, handles, &mut req)?;
39761                        let control_handle =
39762                            DatagramSocketControlHandle { inner: this.inner.clone() };
39763                        Ok(DatagramSocketRequest::SetIpv6UnicastHops {
39764                            value: req.value,
39765
39766                            responder: DatagramSocketSetIpv6UnicastHopsResponder {
39767                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39768                                tx_id: header.tx_id,
39769                            },
39770                        })
39771                    }
39772                    0x21f4641cad8bd8d2 => {
39773                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39774                        let mut req = fidl::new_empty!(
39775                            fidl::encoding::EmptyPayload,
39776                            fidl::encoding::DefaultFuchsiaResourceDialect
39777                        );
39778                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39779                        let control_handle =
39780                            DatagramSocketControlHandle { inner: this.inner.clone() };
39781                        Ok(DatagramSocketRequest::GetIpv6UnicastHops {
39782                            responder: DatagramSocketGetIpv6UnicastHopsResponder {
39783                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39784                                tx_id: header.tx_id,
39785                            },
39786                        })
39787                    }
39788                    0x5c24808ed2e84a1e => {
39789                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39790                        let mut req = fidl::new_empty!(
39791                            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
39792                            fidl::encoding::DefaultFuchsiaResourceDialect
39793                        );
39794                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceiveHopLimitRequest>(&header, _body_bytes, handles, &mut req)?;
39795                        let control_handle =
39796                            DatagramSocketControlHandle { inner: this.inner.clone() };
39797                        Ok(DatagramSocketRequest::SetIpv6ReceiveHopLimit {
39798                            value: req.value,
39799
39800                            responder: DatagramSocketSetIpv6ReceiveHopLimitResponder {
39801                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39802                                tx_id: header.tx_id,
39803                            },
39804                        })
39805                    }
39806                    0x341e06689885b4c0 => {
39807                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39808                        let mut req = fidl::new_empty!(
39809                            fidl::encoding::EmptyPayload,
39810                            fidl::encoding::DefaultFuchsiaResourceDialect
39811                        );
39812                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39813                        let control_handle =
39814                            DatagramSocketControlHandle { inner: this.inner.clone() };
39815                        Ok(DatagramSocketRequest::GetIpv6ReceiveHopLimit {
39816                            responder: DatagramSocketGetIpv6ReceiveHopLimitResponder {
39817                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39818                                tx_id: header.tx_id,
39819                            },
39820                        })
39821                    }
39822                    0x25b9cd4d181f82c1 => {
39823                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39824                        let mut req = fidl::new_empty!(
39825                            BaseNetworkSocketSetIpv6MulticastHopsRequest,
39826                            fidl::encoding::DefaultFuchsiaResourceDialect
39827                        );
39828                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastHopsRequest>(&header, _body_bytes, handles, &mut req)?;
39829                        let control_handle =
39830                            DatagramSocketControlHandle { inner: this.inner.clone() };
39831                        Ok(DatagramSocketRequest::SetIpv6MulticastHops {
39832                            value: req.value,
39833
39834                            responder: DatagramSocketSetIpv6MulticastHopsResponder {
39835                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39836                                tx_id: header.tx_id,
39837                            },
39838                        })
39839                    }
39840                    0x52916948a365012a => {
39841                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39842                        let mut req = fidl::new_empty!(
39843                            fidl::encoding::EmptyPayload,
39844                            fidl::encoding::DefaultFuchsiaResourceDialect
39845                        );
39846                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39847                        let control_handle =
39848                            DatagramSocketControlHandle { inner: this.inner.clone() };
39849                        Ok(DatagramSocketRequest::GetIpv6MulticastHops {
39850                            responder: DatagramSocketGetIpv6MulticastHopsResponder {
39851                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39852                                tx_id: header.tx_id,
39853                            },
39854                        })
39855                    }
39856                    0x55701c409ff41b40 => {
39857                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39858                        let mut req = fidl::new_empty!(
39859                            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
39860                            fidl::encoding::DefaultFuchsiaResourceDialect
39861                        );
39862                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastLoopbackRequest>(&header, _body_bytes, handles, &mut req)?;
39863                        let control_handle =
39864                            DatagramSocketControlHandle { inner: this.inner.clone() };
39865                        Ok(DatagramSocketRequest::SetIpv6MulticastLoopback {
39866                            value: req.value,
39867
39868                            responder: DatagramSocketSetIpv6MulticastLoopbackResponder {
39869                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39870                                tx_id: header.tx_id,
39871                            },
39872                        })
39873                    }
39874                    0x4415b701fde319c3 => {
39875                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39876                        let mut req = fidl::new_empty!(
39877                            fidl::encoding::EmptyPayload,
39878                            fidl::encoding::DefaultFuchsiaResourceDialect
39879                        );
39880                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39881                        let control_handle =
39882                            DatagramSocketControlHandle { inner: this.inner.clone() };
39883                        Ok(DatagramSocketRequest::GetIpv6MulticastLoopback {
39884                            responder: DatagramSocketGetIpv6MulticastLoopbackResponder {
39885                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39886                                tx_id: header.tx_id,
39887                            },
39888                        })
39889                    }
39890                    0x4873f1364758cbba => {
39891                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39892                        let mut req = fidl::new_empty!(
39893                            BaseNetworkSocketSetIpv6OnlyRequest,
39894                            fidl::encoding::DefaultFuchsiaResourceDialect
39895                        );
39896                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6OnlyRequest>(&header, _body_bytes, handles, &mut req)?;
39897                        let control_handle =
39898                            DatagramSocketControlHandle { inner: this.inner.clone() };
39899                        Ok(DatagramSocketRequest::SetIpv6Only {
39900                            value: req.value,
39901
39902                            responder: DatagramSocketSetIpv6OnlyResponder {
39903                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39904                                tx_id: header.tx_id,
39905                            },
39906                        })
39907                    }
39908                    0x4aa3340a1a26b89c => {
39909                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39910                        let mut req = fidl::new_empty!(
39911                            fidl::encoding::EmptyPayload,
39912                            fidl::encoding::DefaultFuchsiaResourceDialect
39913                        );
39914                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39915                        let control_handle =
39916                            DatagramSocketControlHandle { inner: this.inner.clone() };
39917                        Ok(DatagramSocketRequest::GetIpv6Only {
39918                            responder: DatagramSocketGetIpv6OnlyResponder {
39919                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39920                                tx_id: header.tx_id,
39921                            },
39922                        })
39923                    }
39924                    0x58f07c8788d099a0 => {
39925                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39926                        let mut req = fidl::new_empty!(
39927                            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
39928                            fidl::encoding::DefaultFuchsiaResourceDialect
39929                        );
39930                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest>(&header, _body_bytes, handles, &mut req)?;
39931                        let control_handle =
39932                            DatagramSocketControlHandle { inner: this.inner.clone() };
39933                        Ok(DatagramSocketRequest::SetIpv6ReceiveTrafficClass {
39934                            value: req.value,
39935
39936                            responder: DatagramSocketSetIpv6ReceiveTrafficClassResponder {
39937                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39938                                tx_id: header.tx_id,
39939                            },
39940                        })
39941                    }
39942                    0x2e334df1da553ffa => {
39943                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39944                        let mut req = fidl::new_empty!(
39945                            fidl::encoding::EmptyPayload,
39946                            fidl::encoding::DefaultFuchsiaResourceDialect
39947                        );
39948                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39949                        let control_handle =
39950                            DatagramSocketControlHandle { inner: this.inner.clone() };
39951                        Ok(DatagramSocketRequest::GetIpv6ReceiveTrafficClass {
39952                            responder: DatagramSocketGetIpv6ReceiveTrafficClassResponder {
39953                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39954                                tx_id: header.tx_id,
39955                            },
39956                        })
39957                    }
39958                    0x6af077800c5a0b4f => {
39959                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39960                        let mut req = fidl::new_empty!(
39961                            BaseNetworkSocketSetIpv6TrafficClassRequest,
39962                            fidl::encoding::DefaultFuchsiaResourceDialect
39963                        );
39964                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6TrafficClassRequest>(&header, _body_bytes, handles, &mut req)?;
39965                        let control_handle =
39966                            DatagramSocketControlHandle { inner: this.inner.clone() };
39967                        Ok(DatagramSocketRequest::SetIpv6TrafficClass {
39968                            value: req.value,
39969
39970                            responder: DatagramSocketSetIpv6TrafficClassResponder {
39971                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39972                                tx_id: header.tx_id,
39973                            },
39974                        })
39975                    }
39976                    0x6baf6eed8fc2f04 => {
39977                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39978                        let mut req = fidl::new_empty!(
39979                            fidl::encoding::EmptyPayload,
39980                            fidl::encoding::DefaultFuchsiaResourceDialect
39981                        );
39982                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39983                        let control_handle =
39984                            DatagramSocketControlHandle { inner: this.inner.clone() };
39985                        Ok(DatagramSocketRequest::GetIpv6TrafficClass {
39986                            responder: DatagramSocketGetIpv6TrafficClassResponder {
39987                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39988                                tx_id: header.tx_id,
39989                            },
39990                        })
39991                    }
39992                    0x19259775b1a92768 => {
39993                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39994                        let mut req = fidl::new_empty!(
39995                            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
39996                            fidl::encoding::DefaultFuchsiaResourceDialect
39997                        );
39998                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceivePacketInfoRequest>(&header, _body_bytes, handles, &mut req)?;
39999                        let control_handle =
40000                            DatagramSocketControlHandle { inner: this.inner.clone() };
40001                        Ok(DatagramSocketRequest::SetIpv6ReceivePacketInfo {
40002                            value: req.value,
40003
40004                            responder: DatagramSocketSetIpv6ReceivePacketInfoResponder {
40005                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40006                                tx_id: header.tx_id,
40007                            },
40008                        })
40009                    }
40010                    0x7acd4a2775baec75 => {
40011                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40012                        let mut req = fidl::new_empty!(
40013                            fidl::encoding::EmptyPayload,
40014                            fidl::encoding::DefaultFuchsiaResourceDialect
40015                        );
40016                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
40017                        let control_handle =
40018                            DatagramSocketControlHandle { inner: this.inner.clone() };
40019                        Ok(DatagramSocketRequest::GetIpv6ReceivePacketInfo {
40020                            responder: DatagramSocketGetIpv6ReceivePacketInfoResponder {
40021                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40022                                tx_id: header.tx_id,
40023                            },
40024                        })
40025                    }
40026                    0x38bf28f0dafdbac0 => {
40027                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40028                        let mut req = fidl::new_empty!(
40029                            fidl::encoding::EmptyPayload,
40030                            fidl::encoding::DefaultFuchsiaResourceDialect
40031                        );
40032                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
40033                        let control_handle =
40034                            DatagramSocketControlHandle { inner: this.inner.clone() };
40035                        Ok(DatagramSocketRequest::GetOriginalDestination {
40036                            responder: DatagramSocketGetOriginalDestinationResponder {
40037                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40038                                tx_id: header.tx_id,
40039                            },
40040                        })
40041                    }
40042                    0x48aa0a1f6a32d2ed => {
40043                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40044                        let mut req = fidl::new_empty!(
40045                            fidl::encoding::EmptyPayload,
40046                            fidl::encoding::DefaultFuchsiaResourceDialect
40047                        );
40048                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
40049                        let control_handle =
40050                            DatagramSocketControlHandle { inner: this.inner.clone() };
40051                        Ok(DatagramSocketRequest::GetInfo {
40052                            responder: DatagramSocketGetInfoResponder {
40053                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40054                                tx_id: header.tx_id,
40055                            },
40056                        })
40057                    }
40058                    0xbf1e2f0a86601f3 => {
40059                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40060                        let mut req = fidl::new_empty!(
40061                            fidl::encoding::EmptyPayload,
40062                            fidl::encoding::DefaultFuchsiaResourceDialect
40063                        );
40064                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
40065                        let control_handle =
40066                            DatagramSocketControlHandle { inner: this.inner.clone() };
40067                        Ok(DatagramSocketRequest::Describe {
40068                            responder: DatagramSocketDescribeResponder {
40069                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40070                                tx_id: header.tx_id,
40071                            },
40072                        })
40073                    }
40074                    0x5362e668e777248a => {
40075                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40076                        let mut req = fidl::new_empty!(
40077                            DatagramSocketSendMsgPreflightRequest,
40078                            fidl::encoding::DefaultFuchsiaResourceDialect
40079                        );
40080                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<DatagramSocketSendMsgPreflightRequest>(&header, _body_bytes, handles, &mut req)?;
40081                        let control_handle =
40082                            DatagramSocketControlHandle { inner: this.inner.clone() };
40083                        Ok(DatagramSocketRequest::SendMsgPreflight {
40084                            payload: req,
40085                            responder: DatagramSocketSendMsgPreflightResponder {
40086                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40087                                tx_id: header.tx_id,
40088                            },
40089                        })
40090                    }
40091                    0x1a7cdeca5f3eb8e2 => {
40092                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40093                        let mut req = fidl::new_empty!(
40094                            fidl::encoding::EmptyPayload,
40095                            fidl::encoding::DefaultFuchsiaResourceDialect
40096                        );
40097                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
40098                        let control_handle =
40099                            DatagramSocketControlHandle { inner: this.inner.clone() };
40100                        Ok(DatagramSocketRequest::RecvMsgPostflight {
40101                            responder: DatagramSocketRecvMsgPostflightResponder {
40102                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40103                                tx_id: header.tx_id,
40104                            },
40105                        })
40106                    }
40107                    _ => Err(fidl::Error::UnknownOrdinal {
40108                        ordinal: header.ordinal,
40109                        protocol_name:
40110                            <DatagramSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
40111                    }),
40112                }))
40113            },
40114        )
40115    }
40116}
40117
40118/// A datagram socket.
40119#[derive(Debug)]
40120pub enum DatagramSocketRequest {
40121    Clone {
40122        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
40123        control_handle: DatagramSocketControlHandle,
40124    },
40125    /// Terminates the connection.
40126    ///
40127    /// After calling `Close`, the client must not send any other requests.
40128    ///
40129    /// Servers, after sending the status response, should close the connection
40130    /// regardless of status and without sending an epitaph.
40131    ///
40132    /// Closing the client end of the channel should be semantically equivalent
40133    /// to calling `Close` without knowing when the close has completed or its
40134    /// status.
40135    Close {
40136        responder: DatagramSocketCloseResponder,
40137    },
40138    Query {
40139        responder: DatagramSocketQueryResponder,
40140    },
40141    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
40142    SetReuseAddress {
40143        value: bool,
40144        responder: DatagramSocketSetReuseAddressResponder,
40145    },
40146    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
40147    GetReuseAddress {
40148        responder: DatagramSocketGetReuseAddressResponder,
40149    },
40150    /// Get `SOL_SOCKET` -> `SO_ERROR`.
40151    /// Returns the last error if there is an error set on the socket.
40152    GetError {
40153        responder: DatagramSocketGetErrorResponder,
40154    },
40155    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
40156    SetBroadcast {
40157        value: bool,
40158        responder: DatagramSocketSetBroadcastResponder,
40159    },
40160    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
40161    GetBroadcast {
40162        responder: DatagramSocketGetBroadcastResponder,
40163    },
40164    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
40165    SetSendBuffer {
40166        value_bytes: u64,
40167        responder: DatagramSocketSetSendBufferResponder,
40168    },
40169    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
40170    GetSendBuffer {
40171        responder: DatagramSocketGetSendBufferResponder,
40172    },
40173    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
40174    SetReceiveBuffer {
40175        value_bytes: u64,
40176        responder: DatagramSocketSetReceiveBufferResponder,
40177    },
40178    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
40179    GetReceiveBuffer {
40180        responder: DatagramSocketGetReceiveBufferResponder,
40181    },
40182    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
40183    SetKeepAlive {
40184        value: bool,
40185        responder: DatagramSocketSetKeepAliveResponder,
40186    },
40187    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
40188    GetKeepAlive {
40189        responder: DatagramSocketGetKeepAliveResponder,
40190    },
40191    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
40192    SetOutOfBandInline {
40193        value: bool,
40194        responder: DatagramSocketSetOutOfBandInlineResponder,
40195    },
40196    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
40197    GetOutOfBandInline {
40198        responder: DatagramSocketGetOutOfBandInlineResponder,
40199    },
40200    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
40201    SetNoCheck {
40202        value: bool,
40203        responder: DatagramSocketSetNoCheckResponder,
40204    },
40205    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
40206    GetNoCheck {
40207        responder: DatagramSocketGetNoCheckResponder,
40208    },
40209    /// Set `SOL_SOCKET` -> `SO_LINGER`.
40210    SetLinger {
40211        linger: bool,
40212        length_secs: u32,
40213        responder: DatagramSocketSetLingerResponder,
40214    },
40215    /// Get `SOL_SOCKET` -> `SO_LINGER`.
40216    GetLinger {
40217        responder: DatagramSocketGetLingerResponder,
40218    },
40219    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
40220    SetReusePort {
40221        value: bool,
40222        responder: DatagramSocketSetReusePortResponder,
40223    },
40224    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
40225    GetReusePort {
40226        responder: DatagramSocketGetReusePortResponder,
40227    },
40228    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
40229    GetAcceptConn {
40230        responder: DatagramSocketGetAcceptConnResponder,
40231    },
40232    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
40233    SetBindToDevice {
40234        value: String,
40235        responder: DatagramSocketSetBindToDeviceResponder,
40236    },
40237    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
40238    GetBindToDevice {
40239        responder: DatagramSocketGetBindToDeviceResponder,
40240    },
40241    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
40242    /// If `value` is 0, this clears the bound interface.
40243    SetBindToInterfaceIndex {
40244        value: u64,
40245        responder: DatagramSocketSetBindToInterfaceIndexResponder,
40246    },
40247    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
40248    GetBindToInterfaceIndex {
40249        responder: DatagramSocketGetBindToInterfaceIndexResponder,
40250    },
40251    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
40252    SetTimestamp {
40253        value: TimestampOption,
40254        responder: DatagramSocketSetTimestampResponder,
40255    },
40256    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
40257    GetTimestamp {
40258        responder: DatagramSocketGetTimestampResponder,
40259    },
40260    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
40261    /// unlike the standard SO_MARK, this API has multiple mark domains and each
40262    /// mark can be set independently in each domain.
40263    SetMark {
40264        domain: fidl_fuchsia_net::MarkDomain,
40265        mark: OptionalUint32,
40266        responder: DatagramSocketSetMarkResponder,
40267    },
40268    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
40269    /// unlike the standard SO_MARK, this API has multiple mark domains and each
40270    /// mark can be retrieved independently in each domain.
40271    GetMark {
40272        domain: fidl_fuchsia_net::MarkDomain,
40273        responder: DatagramSocketGetMarkResponder,
40274    },
40275    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
40276    GetCookie {
40277        responder: DatagramSocketGetCookieResponder,
40278    },
40279    /// Sets the local address used for the socket.
40280    Bind {
40281        addr: fidl_fuchsia_net::SocketAddress,
40282        responder: DatagramSocketBindResponder,
40283    },
40284    /// Initiates a connection to a remote address.
40285    Connect {
40286        addr: fidl_fuchsia_net::SocketAddress,
40287        responder: DatagramSocketConnectResponder,
40288    },
40289    /// Clears connection information from this socket.
40290    Disconnect {
40291        responder: DatagramSocketDisconnectResponder,
40292    },
40293    /// Retrieves the local socket address.
40294    GetSockName {
40295        responder: DatagramSocketGetSockNameResponder,
40296    },
40297    /// Retrieves the remote socket address.
40298    GetPeerName {
40299        responder: DatagramSocketGetPeerNameResponder,
40300    },
40301    /// Shuts down part of the socket.
40302    Shutdown {
40303        mode: ShutdownMode,
40304        responder: DatagramSocketShutdownResponder,
40305    },
40306    /// Set `SOL_IP` -> `IP_TOS`.
40307    SetIpTypeOfService {
40308        value: u8,
40309        responder: DatagramSocketSetIpTypeOfServiceResponder,
40310    },
40311    /// Get `SOL_IP` -> `IP_TOS`.
40312    GetIpTypeOfService {
40313        responder: DatagramSocketGetIpTypeOfServiceResponder,
40314    },
40315    /// Set `SOL_IP` -> `IP_TTL`.
40316    SetIpTtl {
40317        value: OptionalUint8,
40318        responder: DatagramSocketSetIpTtlResponder,
40319    },
40320    /// Get `SOL_IP` -> `IP_TTL`.
40321    GetIpTtl {
40322        responder: DatagramSocketGetIpTtlResponder,
40323    },
40324    /// Set `SOL_IP` -> `IP_PKTINFO`.
40325    SetIpPacketInfo {
40326        value: bool,
40327        responder: DatagramSocketSetIpPacketInfoResponder,
40328    },
40329    /// Get `SOL_IP` -> `IP_PKTINFO`.
40330    GetIpPacketInfo {
40331        responder: DatagramSocketGetIpPacketInfoResponder,
40332    },
40333    /// Set `SOL_IP` -> `IP_RECVTOS`.
40334    SetIpReceiveTypeOfService {
40335        value: bool,
40336        responder: DatagramSocketSetIpReceiveTypeOfServiceResponder,
40337    },
40338    /// Get `SOL_IP` -> `IP_RECVTOS`.
40339    GetIpReceiveTypeOfService {
40340        responder: DatagramSocketGetIpReceiveTypeOfServiceResponder,
40341    },
40342    /// Set `SOL_IP` -> `IP_RECVTTL`.
40343    SetIpReceiveTtl {
40344        value: bool,
40345        responder: DatagramSocketSetIpReceiveTtlResponder,
40346    },
40347    /// Get `SOL_IP` -> `IP_RECVTTL`.
40348    GetIpReceiveTtl {
40349        responder: DatagramSocketGetIpReceiveTtlResponder,
40350    },
40351    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
40352    SetIpMulticastInterface {
40353        iface: u64,
40354        address: fidl_fuchsia_net::Ipv4Address,
40355        responder: DatagramSocketSetIpMulticastInterfaceResponder,
40356    },
40357    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
40358    GetIpMulticastInterface {
40359        responder: DatagramSocketGetIpMulticastInterfaceResponder,
40360    },
40361    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
40362    SetIpMulticastTtl {
40363        value: OptionalUint8,
40364        responder: DatagramSocketSetIpMulticastTtlResponder,
40365    },
40366    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
40367    GetIpMulticastTtl {
40368        responder: DatagramSocketGetIpMulticastTtlResponder,
40369    },
40370    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
40371    SetIpMulticastLoopback {
40372        value: bool,
40373        responder: DatagramSocketSetIpMulticastLoopbackResponder,
40374    },
40375    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
40376    GetIpMulticastLoopback {
40377        responder: DatagramSocketGetIpMulticastLoopbackResponder,
40378    },
40379    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
40380    AddIpMembership {
40381        membership: IpMulticastMembership,
40382        responder: DatagramSocketAddIpMembershipResponder,
40383    },
40384    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
40385    DropIpMembership {
40386        membership: IpMulticastMembership,
40387        responder: DatagramSocketDropIpMembershipResponder,
40388    },
40389    /// Set `SOL_IP` -> `IP_TRANSPARENT`
40390    SetIpTransparent {
40391        value: bool,
40392        responder: DatagramSocketSetIpTransparentResponder,
40393    },
40394    /// Get `SOL_IP` -> `IP_TRANSPARENT`
40395    GetIpTransparent {
40396        responder: DatagramSocketGetIpTransparentResponder,
40397    },
40398    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
40399    SetIpReceiveOriginalDestinationAddress {
40400        value: bool,
40401        responder: DatagramSocketSetIpReceiveOriginalDestinationAddressResponder,
40402    },
40403    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
40404    GetIpReceiveOriginalDestinationAddress {
40405        responder: DatagramSocketGetIpReceiveOriginalDestinationAddressResponder,
40406    },
40407    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
40408    AddIpv6Membership {
40409        membership: Ipv6MulticastMembership,
40410        responder: DatagramSocketAddIpv6MembershipResponder,
40411    },
40412    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
40413    DropIpv6Membership {
40414        membership: Ipv6MulticastMembership,
40415        responder: DatagramSocketDropIpv6MembershipResponder,
40416    },
40417    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
40418    SetIpv6MulticastInterface {
40419        value: u64,
40420        responder: DatagramSocketSetIpv6MulticastInterfaceResponder,
40421    },
40422    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
40423    GetIpv6MulticastInterface {
40424        responder: DatagramSocketGetIpv6MulticastInterfaceResponder,
40425    },
40426    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
40427    SetIpv6UnicastHops {
40428        value: OptionalUint8,
40429        responder: DatagramSocketSetIpv6UnicastHopsResponder,
40430    },
40431    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
40432    GetIpv6UnicastHops {
40433        responder: DatagramSocketGetIpv6UnicastHopsResponder,
40434    },
40435    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
40436    SetIpv6ReceiveHopLimit {
40437        value: bool,
40438        responder: DatagramSocketSetIpv6ReceiveHopLimitResponder,
40439    },
40440    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
40441    GetIpv6ReceiveHopLimit {
40442        responder: DatagramSocketGetIpv6ReceiveHopLimitResponder,
40443    },
40444    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
40445    SetIpv6MulticastHops {
40446        value: OptionalUint8,
40447        responder: DatagramSocketSetIpv6MulticastHopsResponder,
40448    },
40449    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
40450    GetIpv6MulticastHops {
40451        responder: DatagramSocketGetIpv6MulticastHopsResponder,
40452    },
40453    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
40454    SetIpv6MulticastLoopback {
40455        value: bool,
40456        responder: DatagramSocketSetIpv6MulticastLoopbackResponder,
40457    },
40458    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
40459    GetIpv6MulticastLoopback {
40460        responder: DatagramSocketGetIpv6MulticastLoopbackResponder,
40461    },
40462    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
40463    SetIpv6Only {
40464        value: bool,
40465        responder: DatagramSocketSetIpv6OnlyResponder,
40466    },
40467    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
40468    GetIpv6Only {
40469        responder: DatagramSocketGetIpv6OnlyResponder,
40470    },
40471    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
40472    SetIpv6ReceiveTrafficClass {
40473        value: bool,
40474        responder: DatagramSocketSetIpv6ReceiveTrafficClassResponder,
40475    },
40476    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
40477    GetIpv6ReceiveTrafficClass {
40478        responder: DatagramSocketGetIpv6ReceiveTrafficClassResponder,
40479    },
40480    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
40481    SetIpv6TrafficClass {
40482        value: OptionalUint8,
40483        responder: DatagramSocketSetIpv6TrafficClassResponder,
40484    },
40485    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
40486    GetIpv6TrafficClass {
40487        responder: DatagramSocketGetIpv6TrafficClassResponder,
40488    },
40489    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
40490    SetIpv6ReceivePacketInfo {
40491        value: bool,
40492        responder: DatagramSocketSetIpv6ReceivePacketInfoResponder,
40493    },
40494    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
40495    GetIpv6ReceivePacketInfo {
40496        responder: DatagramSocketGetIpv6ReceivePacketInfoResponder,
40497    },
40498    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
40499    GetOriginalDestination {
40500        responder: DatagramSocketGetOriginalDestinationResponder,
40501    },
40502    /// Retrieves creation information from the socket.
40503    ///
40504    /// - response `domain` the socket's associated domain.
40505    /// - response `proto` the socket's associated protocol.
40506    GetInfo {
40507        responder: DatagramSocketGetInfoResponder,
40508    },
40509    Describe {
40510        responder: DatagramSocketDescribeResponder,
40511    },
40512    /// Validates that data can be sent.
40513    ///
40514    /// + request `args` the requested disposition of data to be sent.
40515    /// - response the constraints sent data must satisfy.
40516    /// * error the error code indicating the reason for validation failure.
40517    SendMsgPreflight {
40518        payload: DatagramSocketSendMsgPreflightRequest,
40519        responder: DatagramSocketSendMsgPreflightResponder,
40520    },
40521    /// Returns the set of requested control messages.
40522    ///
40523    /// - response the set of currently requested control messages.
40524    RecvMsgPostflight {
40525        responder: DatagramSocketRecvMsgPostflightResponder,
40526    },
40527}
40528
40529impl DatagramSocketRequest {
40530    #[allow(irrefutable_let_patterns)]
40531    pub fn into_clone(
40532        self,
40533    ) -> Option<(
40534        fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
40535        DatagramSocketControlHandle,
40536    )> {
40537        if let DatagramSocketRequest::Clone { request, control_handle } = self {
40538            Some((request, control_handle))
40539        } else {
40540            None
40541        }
40542    }
40543
40544    #[allow(irrefutable_let_patterns)]
40545    pub fn into_close(self) -> Option<(DatagramSocketCloseResponder)> {
40546        if let DatagramSocketRequest::Close { responder } = self {
40547            Some((responder))
40548        } else {
40549            None
40550        }
40551    }
40552
40553    #[allow(irrefutable_let_patterns)]
40554    pub fn into_query(self) -> Option<(DatagramSocketQueryResponder)> {
40555        if let DatagramSocketRequest::Query { responder } = self {
40556            Some((responder))
40557        } else {
40558            None
40559        }
40560    }
40561
40562    #[allow(irrefutable_let_patterns)]
40563    pub fn into_set_reuse_address(self) -> Option<(bool, DatagramSocketSetReuseAddressResponder)> {
40564        if let DatagramSocketRequest::SetReuseAddress { value, responder } = self {
40565            Some((value, responder))
40566        } else {
40567            None
40568        }
40569    }
40570
40571    #[allow(irrefutable_let_patterns)]
40572    pub fn into_get_reuse_address(self) -> Option<(DatagramSocketGetReuseAddressResponder)> {
40573        if let DatagramSocketRequest::GetReuseAddress { responder } = self {
40574            Some((responder))
40575        } else {
40576            None
40577        }
40578    }
40579
40580    #[allow(irrefutable_let_patterns)]
40581    pub fn into_get_error(self) -> Option<(DatagramSocketGetErrorResponder)> {
40582        if let DatagramSocketRequest::GetError { responder } = self {
40583            Some((responder))
40584        } else {
40585            None
40586        }
40587    }
40588
40589    #[allow(irrefutable_let_patterns)]
40590    pub fn into_set_broadcast(self) -> Option<(bool, DatagramSocketSetBroadcastResponder)> {
40591        if let DatagramSocketRequest::SetBroadcast { value, responder } = self {
40592            Some((value, responder))
40593        } else {
40594            None
40595        }
40596    }
40597
40598    #[allow(irrefutable_let_patterns)]
40599    pub fn into_get_broadcast(self) -> Option<(DatagramSocketGetBroadcastResponder)> {
40600        if let DatagramSocketRequest::GetBroadcast { responder } = self {
40601            Some((responder))
40602        } else {
40603            None
40604        }
40605    }
40606
40607    #[allow(irrefutable_let_patterns)]
40608    pub fn into_set_send_buffer(self) -> Option<(u64, DatagramSocketSetSendBufferResponder)> {
40609        if let DatagramSocketRequest::SetSendBuffer { value_bytes, responder } = self {
40610            Some((value_bytes, responder))
40611        } else {
40612            None
40613        }
40614    }
40615
40616    #[allow(irrefutable_let_patterns)]
40617    pub fn into_get_send_buffer(self) -> Option<(DatagramSocketGetSendBufferResponder)> {
40618        if let DatagramSocketRequest::GetSendBuffer { responder } = self {
40619            Some((responder))
40620        } else {
40621            None
40622        }
40623    }
40624
40625    #[allow(irrefutable_let_patterns)]
40626    pub fn into_set_receive_buffer(self) -> Option<(u64, DatagramSocketSetReceiveBufferResponder)> {
40627        if let DatagramSocketRequest::SetReceiveBuffer { value_bytes, responder } = self {
40628            Some((value_bytes, responder))
40629        } else {
40630            None
40631        }
40632    }
40633
40634    #[allow(irrefutable_let_patterns)]
40635    pub fn into_get_receive_buffer(self) -> Option<(DatagramSocketGetReceiveBufferResponder)> {
40636        if let DatagramSocketRequest::GetReceiveBuffer { responder } = self {
40637            Some((responder))
40638        } else {
40639            None
40640        }
40641    }
40642
40643    #[allow(irrefutable_let_patterns)]
40644    pub fn into_set_keep_alive(self) -> Option<(bool, DatagramSocketSetKeepAliveResponder)> {
40645        if let DatagramSocketRequest::SetKeepAlive { value, responder } = self {
40646            Some((value, responder))
40647        } else {
40648            None
40649        }
40650    }
40651
40652    #[allow(irrefutable_let_patterns)]
40653    pub fn into_get_keep_alive(self) -> Option<(DatagramSocketGetKeepAliveResponder)> {
40654        if let DatagramSocketRequest::GetKeepAlive { responder } = self {
40655            Some((responder))
40656        } else {
40657            None
40658        }
40659    }
40660
40661    #[allow(irrefutable_let_patterns)]
40662    pub fn into_set_out_of_band_inline(
40663        self,
40664    ) -> Option<(bool, DatagramSocketSetOutOfBandInlineResponder)> {
40665        if let DatagramSocketRequest::SetOutOfBandInline { value, responder } = self {
40666            Some((value, responder))
40667        } else {
40668            None
40669        }
40670    }
40671
40672    #[allow(irrefutable_let_patterns)]
40673    pub fn into_get_out_of_band_inline(
40674        self,
40675    ) -> Option<(DatagramSocketGetOutOfBandInlineResponder)> {
40676        if let DatagramSocketRequest::GetOutOfBandInline { responder } = self {
40677            Some((responder))
40678        } else {
40679            None
40680        }
40681    }
40682
40683    #[allow(irrefutable_let_patterns)]
40684    pub fn into_set_no_check(self) -> Option<(bool, DatagramSocketSetNoCheckResponder)> {
40685        if let DatagramSocketRequest::SetNoCheck { value, responder } = self {
40686            Some((value, responder))
40687        } else {
40688            None
40689        }
40690    }
40691
40692    #[allow(irrefutable_let_patterns)]
40693    pub fn into_get_no_check(self) -> Option<(DatagramSocketGetNoCheckResponder)> {
40694        if let DatagramSocketRequest::GetNoCheck { responder } = self {
40695            Some((responder))
40696        } else {
40697            None
40698        }
40699    }
40700
40701    #[allow(irrefutable_let_patterns)]
40702    pub fn into_set_linger(self) -> Option<(bool, u32, DatagramSocketSetLingerResponder)> {
40703        if let DatagramSocketRequest::SetLinger { linger, length_secs, responder } = self {
40704            Some((linger, length_secs, responder))
40705        } else {
40706            None
40707        }
40708    }
40709
40710    #[allow(irrefutable_let_patterns)]
40711    pub fn into_get_linger(self) -> Option<(DatagramSocketGetLingerResponder)> {
40712        if let DatagramSocketRequest::GetLinger { responder } = self {
40713            Some((responder))
40714        } else {
40715            None
40716        }
40717    }
40718
40719    #[allow(irrefutable_let_patterns)]
40720    pub fn into_set_reuse_port(self) -> Option<(bool, DatagramSocketSetReusePortResponder)> {
40721        if let DatagramSocketRequest::SetReusePort { value, responder } = self {
40722            Some((value, responder))
40723        } else {
40724            None
40725        }
40726    }
40727
40728    #[allow(irrefutable_let_patterns)]
40729    pub fn into_get_reuse_port(self) -> Option<(DatagramSocketGetReusePortResponder)> {
40730        if let DatagramSocketRequest::GetReusePort { responder } = self {
40731            Some((responder))
40732        } else {
40733            None
40734        }
40735    }
40736
40737    #[allow(irrefutable_let_patterns)]
40738    pub fn into_get_accept_conn(self) -> Option<(DatagramSocketGetAcceptConnResponder)> {
40739        if let DatagramSocketRequest::GetAcceptConn { responder } = self {
40740            Some((responder))
40741        } else {
40742            None
40743        }
40744    }
40745
40746    #[allow(irrefutable_let_patterns)]
40747    pub fn into_set_bind_to_device(
40748        self,
40749    ) -> Option<(String, DatagramSocketSetBindToDeviceResponder)> {
40750        if let DatagramSocketRequest::SetBindToDevice { value, responder } = self {
40751            Some((value, responder))
40752        } else {
40753            None
40754        }
40755    }
40756
40757    #[allow(irrefutable_let_patterns)]
40758    pub fn into_get_bind_to_device(self) -> Option<(DatagramSocketGetBindToDeviceResponder)> {
40759        if let DatagramSocketRequest::GetBindToDevice { responder } = self {
40760            Some((responder))
40761        } else {
40762            None
40763        }
40764    }
40765
40766    #[allow(irrefutable_let_patterns)]
40767    pub fn into_set_bind_to_interface_index(
40768        self,
40769    ) -> Option<(u64, DatagramSocketSetBindToInterfaceIndexResponder)> {
40770        if let DatagramSocketRequest::SetBindToInterfaceIndex { value, responder } = self {
40771            Some((value, responder))
40772        } else {
40773            None
40774        }
40775    }
40776
40777    #[allow(irrefutable_let_patterns)]
40778    pub fn into_get_bind_to_interface_index(
40779        self,
40780    ) -> Option<(DatagramSocketGetBindToInterfaceIndexResponder)> {
40781        if let DatagramSocketRequest::GetBindToInterfaceIndex { responder } = self {
40782            Some((responder))
40783        } else {
40784            None
40785        }
40786    }
40787
40788    #[allow(irrefutable_let_patterns)]
40789    pub fn into_set_timestamp(
40790        self,
40791    ) -> Option<(TimestampOption, DatagramSocketSetTimestampResponder)> {
40792        if let DatagramSocketRequest::SetTimestamp { value, responder } = self {
40793            Some((value, responder))
40794        } else {
40795            None
40796        }
40797    }
40798
40799    #[allow(irrefutable_let_patterns)]
40800    pub fn into_get_timestamp(self) -> Option<(DatagramSocketGetTimestampResponder)> {
40801        if let DatagramSocketRequest::GetTimestamp { responder } = self {
40802            Some((responder))
40803        } else {
40804            None
40805        }
40806    }
40807
40808    #[allow(irrefutable_let_patterns)]
40809    pub fn into_set_mark(
40810        self,
40811    ) -> Option<(fidl_fuchsia_net::MarkDomain, OptionalUint32, DatagramSocketSetMarkResponder)>
40812    {
40813        if let DatagramSocketRequest::SetMark { domain, mark, responder } = self {
40814            Some((domain, mark, responder))
40815        } else {
40816            None
40817        }
40818    }
40819
40820    #[allow(irrefutable_let_patterns)]
40821    pub fn into_get_mark(
40822        self,
40823    ) -> Option<(fidl_fuchsia_net::MarkDomain, DatagramSocketGetMarkResponder)> {
40824        if let DatagramSocketRequest::GetMark { domain, responder } = self {
40825            Some((domain, responder))
40826        } else {
40827            None
40828        }
40829    }
40830
40831    #[allow(irrefutable_let_patterns)]
40832    pub fn into_get_cookie(self) -> Option<(DatagramSocketGetCookieResponder)> {
40833        if let DatagramSocketRequest::GetCookie { responder } = self {
40834            Some((responder))
40835        } else {
40836            None
40837        }
40838    }
40839
40840    #[allow(irrefutable_let_patterns)]
40841    pub fn into_bind(
40842        self,
40843    ) -> Option<(fidl_fuchsia_net::SocketAddress, DatagramSocketBindResponder)> {
40844        if let DatagramSocketRequest::Bind { addr, responder } = self {
40845            Some((addr, responder))
40846        } else {
40847            None
40848        }
40849    }
40850
40851    #[allow(irrefutable_let_patterns)]
40852    pub fn into_connect(
40853        self,
40854    ) -> Option<(fidl_fuchsia_net::SocketAddress, DatagramSocketConnectResponder)> {
40855        if let DatagramSocketRequest::Connect { addr, responder } = self {
40856            Some((addr, responder))
40857        } else {
40858            None
40859        }
40860    }
40861
40862    #[allow(irrefutable_let_patterns)]
40863    pub fn into_disconnect(self) -> Option<(DatagramSocketDisconnectResponder)> {
40864        if let DatagramSocketRequest::Disconnect { responder } = self {
40865            Some((responder))
40866        } else {
40867            None
40868        }
40869    }
40870
40871    #[allow(irrefutable_let_patterns)]
40872    pub fn into_get_sock_name(self) -> Option<(DatagramSocketGetSockNameResponder)> {
40873        if let DatagramSocketRequest::GetSockName { responder } = self {
40874            Some((responder))
40875        } else {
40876            None
40877        }
40878    }
40879
40880    #[allow(irrefutable_let_patterns)]
40881    pub fn into_get_peer_name(self) -> Option<(DatagramSocketGetPeerNameResponder)> {
40882        if let DatagramSocketRequest::GetPeerName { responder } = self {
40883            Some((responder))
40884        } else {
40885            None
40886        }
40887    }
40888
40889    #[allow(irrefutable_let_patterns)]
40890    pub fn into_shutdown(self) -> Option<(ShutdownMode, DatagramSocketShutdownResponder)> {
40891        if let DatagramSocketRequest::Shutdown { mode, responder } = self {
40892            Some((mode, responder))
40893        } else {
40894            None
40895        }
40896    }
40897
40898    #[allow(irrefutable_let_patterns)]
40899    pub fn into_set_ip_type_of_service(
40900        self,
40901    ) -> Option<(u8, DatagramSocketSetIpTypeOfServiceResponder)> {
40902        if let DatagramSocketRequest::SetIpTypeOfService { value, responder } = self {
40903            Some((value, responder))
40904        } else {
40905            None
40906        }
40907    }
40908
40909    #[allow(irrefutable_let_patterns)]
40910    pub fn into_get_ip_type_of_service(
40911        self,
40912    ) -> Option<(DatagramSocketGetIpTypeOfServiceResponder)> {
40913        if let DatagramSocketRequest::GetIpTypeOfService { responder } = self {
40914            Some((responder))
40915        } else {
40916            None
40917        }
40918    }
40919
40920    #[allow(irrefutable_let_patterns)]
40921    pub fn into_set_ip_ttl(self) -> Option<(OptionalUint8, DatagramSocketSetIpTtlResponder)> {
40922        if let DatagramSocketRequest::SetIpTtl { value, responder } = self {
40923            Some((value, responder))
40924        } else {
40925            None
40926        }
40927    }
40928
40929    #[allow(irrefutable_let_patterns)]
40930    pub fn into_get_ip_ttl(self) -> Option<(DatagramSocketGetIpTtlResponder)> {
40931        if let DatagramSocketRequest::GetIpTtl { responder } = self {
40932            Some((responder))
40933        } else {
40934            None
40935        }
40936    }
40937
40938    #[allow(irrefutable_let_patterns)]
40939    pub fn into_set_ip_packet_info(self) -> Option<(bool, DatagramSocketSetIpPacketInfoResponder)> {
40940        if let DatagramSocketRequest::SetIpPacketInfo { value, responder } = self {
40941            Some((value, responder))
40942        } else {
40943            None
40944        }
40945    }
40946
40947    #[allow(irrefutable_let_patterns)]
40948    pub fn into_get_ip_packet_info(self) -> Option<(DatagramSocketGetIpPacketInfoResponder)> {
40949        if let DatagramSocketRequest::GetIpPacketInfo { responder } = self {
40950            Some((responder))
40951        } else {
40952            None
40953        }
40954    }
40955
40956    #[allow(irrefutable_let_patterns)]
40957    pub fn into_set_ip_receive_type_of_service(
40958        self,
40959    ) -> Option<(bool, DatagramSocketSetIpReceiveTypeOfServiceResponder)> {
40960        if let DatagramSocketRequest::SetIpReceiveTypeOfService { value, responder } = self {
40961            Some((value, responder))
40962        } else {
40963            None
40964        }
40965    }
40966
40967    #[allow(irrefutable_let_patterns)]
40968    pub fn into_get_ip_receive_type_of_service(
40969        self,
40970    ) -> Option<(DatagramSocketGetIpReceiveTypeOfServiceResponder)> {
40971        if let DatagramSocketRequest::GetIpReceiveTypeOfService { responder } = self {
40972            Some((responder))
40973        } else {
40974            None
40975        }
40976    }
40977
40978    #[allow(irrefutable_let_patterns)]
40979    pub fn into_set_ip_receive_ttl(self) -> Option<(bool, DatagramSocketSetIpReceiveTtlResponder)> {
40980        if let DatagramSocketRequest::SetIpReceiveTtl { value, responder } = self {
40981            Some((value, responder))
40982        } else {
40983            None
40984        }
40985    }
40986
40987    #[allow(irrefutable_let_patterns)]
40988    pub fn into_get_ip_receive_ttl(self) -> Option<(DatagramSocketGetIpReceiveTtlResponder)> {
40989        if let DatagramSocketRequest::GetIpReceiveTtl { responder } = self {
40990            Some((responder))
40991        } else {
40992            None
40993        }
40994    }
40995
40996    #[allow(irrefutable_let_patterns)]
40997    pub fn into_set_ip_multicast_interface(
40998        self,
40999    ) -> Option<(u64, fidl_fuchsia_net::Ipv4Address, DatagramSocketSetIpMulticastInterfaceResponder)>
41000    {
41001        if let DatagramSocketRequest::SetIpMulticastInterface { iface, address, responder } = self {
41002            Some((iface, address, responder))
41003        } else {
41004            None
41005        }
41006    }
41007
41008    #[allow(irrefutable_let_patterns)]
41009    pub fn into_get_ip_multicast_interface(
41010        self,
41011    ) -> Option<(DatagramSocketGetIpMulticastInterfaceResponder)> {
41012        if let DatagramSocketRequest::GetIpMulticastInterface { responder } = self {
41013            Some((responder))
41014        } else {
41015            None
41016        }
41017    }
41018
41019    #[allow(irrefutable_let_patterns)]
41020    pub fn into_set_ip_multicast_ttl(
41021        self,
41022    ) -> Option<(OptionalUint8, DatagramSocketSetIpMulticastTtlResponder)> {
41023        if let DatagramSocketRequest::SetIpMulticastTtl { value, responder } = self {
41024            Some((value, responder))
41025        } else {
41026            None
41027        }
41028    }
41029
41030    #[allow(irrefutable_let_patterns)]
41031    pub fn into_get_ip_multicast_ttl(self) -> Option<(DatagramSocketGetIpMulticastTtlResponder)> {
41032        if let DatagramSocketRequest::GetIpMulticastTtl { responder } = self {
41033            Some((responder))
41034        } else {
41035            None
41036        }
41037    }
41038
41039    #[allow(irrefutable_let_patterns)]
41040    pub fn into_set_ip_multicast_loopback(
41041        self,
41042    ) -> Option<(bool, DatagramSocketSetIpMulticastLoopbackResponder)> {
41043        if let DatagramSocketRequest::SetIpMulticastLoopback { value, responder } = self {
41044            Some((value, responder))
41045        } else {
41046            None
41047        }
41048    }
41049
41050    #[allow(irrefutable_let_patterns)]
41051    pub fn into_get_ip_multicast_loopback(
41052        self,
41053    ) -> Option<(DatagramSocketGetIpMulticastLoopbackResponder)> {
41054        if let DatagramSocketRequest::GetIpMulticastLoopback { responder } = self {
41055            Some((responder))
41056        } else {
41057            None
41058        }
41059    }
41060
41061    #[allow(irrefutable_let_patterns)]
41062    pub fn into_add_ip_membership(
41063        self,
41064    ) -> Option<(IpMulticastMembership, DatagramSocketAddIpMembershipResponder)> {
41065        if let DatagramSocketRequest::AddIpMembership { membership, responder } = self {
41066            Some((membership, responder))
41067        } else {
41068            None
41069        }
41070    }
41071
41072    #[allow(irrefutable_let_patterns)]
41073    pub fn into_drop_ip_membership(
41074        self,
41075    ) -> Option<(IpMulticastMembership, DatagramSocketDropIpMembershipResponder)> {
41076        if let DatagramSocketRequest::DropIpMembership { membership, responder } = self {
41077            Some((membership, responder))
41078        } else {
41079            None
41080        }
41081    }
41082
41083    #[allow(irrefutable_let_patterns)]
41084    pub fn into_set_ip_transparent(
41085        self,
41086    ) -> Option<(bool, DatagramSocketSetIpTransparentResponder)> {
41087        if let DatagramSocketRequest::SetIpTransparent { value, responder } = self {
41088            Some((value, responder))
41089        } else {
41090            None
41091        }
41092    }
41093
41094    #[allow(irrefutable_let_patterns)]
41095    pub fn into_get_ip_transparent(self) -> Option<(DatagramSocketGetIpTransparentResponder)> {
41096        if let DatagramSocketRequest::GetIpTransparent { responder } = self {
41097            Some((responder))
41098        } else {
41099            None
41100        }
41101    }
41102
41103    #[allow(irrefutable_let_patterns)]
41104    pub fn into_set_ip_receive_original_destination_address(
41105        self,
41106    ) -> Option<(bool, DatagramSocketSetIpReceiveOriginalDestinationAddressResponder)> {
41107        if let DatagramSocketRequest::SetIpReceiveOriginalDestinationAddress { value, responder } =
41108            self
41109        {
41110            Some((value, responder))
41111        } else {
41112            None
41113        }
41114    }
41115
41116    #[allow(irrefutable_let_patterns)]
41117    pub fn into_get_ip_receive_original_destination_address(
41118        self,
41119    ) -> Option<(DatagramSocketGetIpReceiveOriginalDestinationAddressResponder)> {
41120        if let DatagramSocketRequest::GetIpReceiveOriginalDestinationAddress { responder } = self {
41121            Some((responder))
41122        } else {
41123            None
41124        }
41125    }
41126
41127    #[allow(irrefutable_let_patterns)]
41128    pub fn into_add_ipv6_membership(
41129        self,
41130    ) -> Option<(Ipv6MulticastMembership, DatagramSocketAddIpv6MembershipResponder)> {
41131        if let DatagramSocketRequest::AddIpv6Membership { membership, responder } = self {
41132            Some((membership, responder))
41133        } else {
41134            None
41135        }
41136    }
41137
41138    #[allow(irrefutable_let_patterns)]
41139    pub fn into_drop_ipv6_membership(
41140        self,
41141    ) -> Option<(Ipv6MulticastMembership, DatagramSocketDropIpv6MembershipResponder)> {
41142        if let DatagramSocketRequest::DropIpv6Membership { membership, responder } = self {
41143            Some((membership, responder))
41144        } else {
41145            None
41146        }
41147    }
41148
41149    #[allow(irrefutable_let_patterns)]
41150    pub fn into_set_ipv6_multicast_interface(
41151        self,
41152    ) -> Option<(u64, DatagramSocketSetIpv6MulticastInterfaceResponder)> {
41153        if let DatagramSocketRequest::SetIpv6MulticastInterface { value, responder } = self {
41154            Some((value, responder))
41155        } else {
41156            None
41157        }
41158    }
41159
41160    #[allow(irrefutable_let_patterns)]
41161    pub fn into_get_ipv6_multicast_interface(
41162        self,
41163    ) -> Option<(DatagramSocketGetIpv6MulticastInterfaceResponder)> {
41164        if let DatagramSocketRequest::GetIpv6MulticastInterface { responder } = self {
41165            Some((responder))
41166        } else {
41167            None
41168        }
41169    }
41170
41171    #[allow(irrefutable_let_patterns)]
41172    pub fn into_set_ipv6_unicast_hops(
41173        self,
41174    ) -> Option<(OptionalUint8, DatagramSocketSetIpv6UnicastHopsResponder)> {
41175        if let DatagramSocketRequest::SetIpv6UnicastHops { value, responder } = self {
41176            Some((value, responder))
41177        } else {
41178            None
41179        }
41180    }
41181
41182    #[allow(irrefutable_let_patterns)]
41183    pub fn into_get_ipv6_unicast_hops(self) -> Option<(DatagramSocketGetIpv6UnicastHopsResponder)> {
41184        if let DatagramSocketRequest::GetIpv6UnicastHops { responder } = self {
41185            Some((responder))
41186        } else {
41187            None
41188        }
41189    }
41190
41191    #[allow(irrefutable_let_patterns)]
41192    pub fn into_set_ipv6_receive_hop_limit(
41193        self,
41194    ) -> Option<(bool, DatagramSocketSetIpv6ReceiveHopLimitResponder)> {
41195        if let DatagramSocketRequest::SetIpv6ReceiveHopLimit { value, responder } = self {
41196            Some((value, responder))
41197        } else {
41198            None
41199        }
41200    }
41201
41202    #[allow(irrefutable_let_patterns)]
41203    pub fn into_get_ipv6_receive_hop_limit(
41204        self,
41205    ) -> Option<(DatagramSocketGetIpv6ReceiveHopLimitResponder)> {
41206        if let DatagramSocketRequest::GetIpv6ReceiveHopLimit { responder } = self {
41207            Some((responder))
41208        } else {
41209            None
41210        }
41211    }
41212
41213    #[allow(irrefutable_let_patterns)]
41214    pub fn into_set_ipv6_multicast_hops(
41215        self,
41216    ) -> Option<(OptionalUint8, DatagramSocketSetIpv6MulticastHopsResponder)> {
41217        if let DatagramSocketRequest::SetIpv6MulticastHops { value, responder } = self {
41218            Some((value, responder))
41219        } else {
41220            None
41221        }
41222    }
41223
41224    #[allow(irrefutable_let_patterns)]
41225    pub fn into_get_ipv6_multicast_hops(
41226        self,
41227    ) -> Option<(DatagramSocketGetIpv6MulticastHopsResponder)> {
41228        if let DatagramSocketRequest::GetIpv6MulticastHops { responder } = self {
41229            Some((responder))
41230        } else {
41231            None
41232        }
41233    }
41234
41235    #[allow(irrefutable_let_patterns)]
41236    pub fn into_set_ipv6_multicast_loopback(
41237        self,
41238    ) -> Option<(bool, DatagramSocketSetIpv6MulticastLoopbackResponder)> {
41239        if let DatagramSocketRequest::SetIpv6MulticastLoopback { value, responder } = self {
41240            Some((value, responder))
41241        } else {
41242            None
41243        }
41244    }
41245
41246    #[allow(irrefutable_let_patterns)]
41247    pub fn into_get_ipv6_multicast_loopback(
41248        self,
41249    ) -> Option<(DatagramSocketGetIpv6MulticastLoopbackResponder)> {
41250        if let DatagramSocketRequest::GetIpv6MulticastLoopback { responder } = self {
41251            Some((responder))
41252        } else {
41253            None
41254        }
41255    }
41256
41257    #[allow(irrefutable_let_patterns)]
41258    pub fn into_set_ipv6_only(self) -> Option<(bool, DatagramSocketSetIpv6OnlyResponder)> {
41259        if let DatagramSocketRequest::SetIpv6Only { value, responder } = self {
41260            Some((value, responder))
41261        } else {
41262            None
41263        }
41264    }
41265
41266    #[allow(irrefutable_let_patterns)]
41267    pub fn into_get_ipv6_only(self) -> Option<(DatagramSocketGetIpv6OnlyResponder)> {
41268        if let DatagramSocketRequest::GetIpv6Only { responder } = self {
41269            Some((responder))
41270        } else {
41271            None
41272        }
41273    }
41274
41275    #[allow(irrefutable_let_patterns)]
41276    pub fn into_set_ipv6_receive_traffic_class(
41277        self,
41278    ) -> Option<(bool, DatagramSocketSetIpv6ReceiveTrafficClassResponder)> {
41279        if let DatagramSocketRequest::SetIpv6ReceiveTrafficClass { value, responder } = self {
41280            Some((value, responder))
41281        } else {
41282            None
41283        }
41284    }
41285
41286    #[allow(irrefutable_let_patterns)]
41287    pub fn into_get_ipv6_receive_traffic_class(
41288        self,
41289    ) -> Option<(DatagramSocketGetIpv6ReceiveTrafficClassResponder)> {
41290        if let DatagramSocketRequest::GetIpv6ReceiveTrafficClass { responder } = self {
41291            Some((responder))
41292        } else {
41293            None
41294        }
41295    }
41296
41297    #[allow(irrefutable_let_patterns)]
41298    pub fn into_set_ipv6_traffic_class(
41299        self,
41300    ) -> Option<(OptionalUint8, DatagramSocketSetIpv6TrafficClassResponder)> {
41301        if let DatagramSocketRequest::SetIpv6TrafficClass { value, responder } = self {
41302            Some((value, responder))
41303        } else {
41304            None
41305        }
41306    }
41307
41308    #[allow(irrefutable_let_patterns)]
41309    pub fn into_get_ipv6_traffic_class(
41310        self,
41311    ) -> Option<(DatagramSocketGetIpv6TrafficClassResponder)> {
41312        if let DatagramSocketRequest::GetIpv6TrafficClass { responder } = self {
41313            Some((responder))
41314        } else {
41315            None
41316        }
41317    }
41318
41319    #[allow(irrefutable_let_patterns)]
41320    pub fn into_set_ipv6_receive_packet_info(
41321        self,
41322    ) -> Option<(bool, DatagramSocketSetIpv6ReceivePacketInfoResponder)> {
41323        if let DatagramSocketRequest::SetIpv6ReceivePacketInfo { value, responder } = self {
41324            Some((value, responder))
41325        } else {
41326            None
41327        }
41328    }
41329
41330    #[allow(irrefutable_let_patterns)]
41331    pub fn into_get_ipv6_receive_packet_info(
41332        self,
41333    ) -> Option<(DatagramSocketGetIpv6ReceivePacketInfoResponder)> {
41334        if let DatagramSocketRequest::GetIpv6ReceivePacketInfo { responder } = self {
41335            Some((responder))
41336        } else {
41337            None
41338        }
41339    }
41340
41341    #[allow(irrefutable_let_patterns)]
41342    pub fn into_get_original_destination(
41343        self,
41344    ) -> Option<(DatagramSocketGetOriginalDestinationResponder)> {
41345        if let DatagramSocketRequest::GetOriginalDestination { responder } = self {
41346            Some((responder))
41347        } else {
41348            None
41349        }
41350    }
41351
41352    #[allow(irrefutable_let_patterns)]
41353    pub fn into_get_info(self) -> Option<(DatagramSocketGetInfoResponder)> {
41354        if let DatagramSocketRequest::GetInfo { responder } = self {
41355            Some((responder))
41356        } else {
41357            None
41358        }
41359    }
41360
41361    #[allow(irrefutable_let_patterns)]
41362    pub fn into_describe(self) -> Option<(DatagramSocketDescribeResponder)> {
41363        if let DatagramSocketRequest::Describe { responder } = self {
41364            Some((responder))
41365        } else {
41366            None
41367        }
41368    }
41369
41370    #[allow(irrefutable_let_patterns)]
41371    pub fn into_send_msg_preflight(
41372        self,
41373    ) -> Option<(DatagramSocketSendMsgPreflightRequest, DatagramSocketSendMsgPreflightResponder)>
41374    {
41375        if let DatagramSocketRequest::SendMsgPreflight { payload, responder } = self {
41376            Some((payload, responder))
41377        } else {
41378            None
41379        }
41380    }
41381
41382    #[allow(irrefutable_let_patterns)]
41383    pub fn into_recv_msg_postflight(self) -> Option<(DatagramSocketRecvMsgPostflightResponder)> {
41384        if let DatagramSocketRequest::RecvMsgPostflight { responder } = self {
41385            Some((responder))
41386        } else {
41387            None
41388        }
41389    }
41390
41391    /// Name of the method defined in FIDL
41392    pub fn method_name(&self) -> &'static str {
41393        match *self {
41394            DatagramSocketRequest::Clone { .. } => "clone",
41395            DatagramSocketRequest::Close { .. } => "close",
41396            DatagramSocketRequest::Query { .. } => "query",
41397            DatagramSocketRequest::SetReuseAddress { .. } => "set_reuse_address",
41398            DatagramSocketRequest::GetReuseAddress { .. } => "get_reuse_address",
41399            DatagramSocketRequest::GetError { .. } => "get_error",
41400            DatagramSocketRequest::SetBroadcast { .. } => "set_broadcast",
41401            DatagramSocketRequest::GetBroadcast { .. } => "get_broadcast",
41402            DatagramSocketRequest::SetSendBuffer { .. } => "set_send_buffer",
41403            DatagramSocketRequest::GetSendBuffer { .. } => "get_send_buffer",
41404            DatagramSocketRequest::SetReceiveBuffer { .. } => "set_receive_buffer",
41405            DatagramSocketRequest::GetReceiveBuffer { .. } => "get_receive_buffer",
41406            DatagramSocketRequest::SetKeepAlive { .. } => "set_keep_alive",
41407            DatagramSocketRequest::GetKeepAlive { .. } => "get_keep_alive",
41408            DatagramSocketRequest::SetOutOfBandInline { .. } => "set_out_of_band_inline",
41409            DatagramSocketRequest::GetOutOfBandInline { .. } => "get_out_of_band_inline",
41410            DatagramSocketRequest::SetNoCheck { .. } => "set_no_check",
41411            DatagramSocketRequest::GetNoCheck { .. } => "get_no_check",
41412            DatagramSocketRequest::SetLinger { .. } => "set_linger",
41413            DatagramSocketRequest::GetLinger { .. } => "get_linger",
41414            DatagramSocketRequest::SetReusePort { .. } => "set_reuse_port",
41415            DatagramSocketRequest::GetReusePort { .. } => "get_reuse_port",
41416            DatagramSocketRequest::GetAcceptConn { .. } => "get_accept_conn",
41417            DatagramSocketRequest::SetBindToDevice { .. } => "set_bind_to_device",
41418            DatagramSocketRequest::GetBindToDevice { .. } => "get_bind_to_device",
41419            DatagramSocketRequest::SetBindToInterfaceIndex { .. } => "set_bind_to_interface_index",
41420            DatagramSocketRequest::GetBindToInterfaceIndex { .. } => "get_bind_to_interface_index",
41421            DatagramSocketRequest::SetTimestamp { .. } => "set_timestamp",
41422            DatagramSocketRequest::GetTimestamp { .. } => "get_timestamp",
41423            DatagramSocketRequest::SetMark { .. } => "set_mark",
41424            DatagramSocketRequest::GetMark { .. } => "get_mark",
41425            DatagramSocketRequest::GetCookie { .. } => "get_cookie",
41426            DatagramSocketRequest::Bind { .. } => "bind",
41427            DatagramSocketRequest::Connect { .. } => "connect",
41428            DatagramSocketRequest::Disconnect { .. } => "disconnect",
41429            DatagramSocketRequest::GetSockName { .. } => "get_sock_name",
41430            DatagramSocketRequest::GetPeerName { .. } => "get_peer_name",
41431            DatagramSocketRequest::Shutdown { .. } => "shutdown",
41432            DatagramSocketRequest::SetIpTypeOfService { .. } => "set_ip_type_of_service",
41433            DatagramSocketRequest::GetIpTypeOfService { .. } => "get_ip_type_of_service",
41434            DatagramSocketRequest::SetIpTtl { .. } => "set_ip_ttl",
41435            DatagramSocketRequest::GetIpTtl { .. } => "get_ip_ttl",
41436            DatagramSocketRequest::SetIpPacketInfo { .. } => "set_ip_packet_info",
41437            DatagramSocketRequest::GetIpPacketInfo { .. } => "get_ip_packet_info",
41438            DatagramSocketRequest::SetIpReceiveTypeOfService { .. } => {
41439                "set_ip_receive_type_of_service"
41440            }
41441            DatagramSocketRequest::GetIpReceiveTypeOfService { .. } => {
41442                "get_ip_receive_type_of_service"
41443            }
41444            DatagramSocketRequest::SetIpReceiveTtl { .. } => "set_ip_receive_ttl",
41445            DatagramSocketRequest::GetIpReceiveTtl { .. } => "get_ip_receive_ttl",
41446            DatagramSocketRequest::SetIpMulticastInterface { .. } => "set_ip_multicast_interface",
41447            DatagramSocketRequest::GetIpMulticastInterface { .. } => "get_ip_multicast_interface",
41448            DatagramSocketRequest::SetIpMulticastTtl { .. } => "set_ip_multicast_ttl",
41449            DatagramSocketRequest::GetIpMulticastTtl { .. } => "get_ip_multicast_ttl",
41450            DatagramSocketRequest::SetIpMulticastLoopback { .. } => "set_ip_multicast_loopback",
41451            DatagramSocketRequest::GetIpMulticastLoopback { .. } => "get_ip_multicast_loopback",
41452            DatagramSocketRequest::AddIpMembership { .. } => "add_ip_membership",
41453            DatagramSocketRequest::DropIpMembership { .. } => "drop_ip_membership",
41454            DatagramSocketRequest::SetIpTransparent { .. } => "set_ip_transparent",
41455            DatagramSocketRequest::GetIpTransparent { .. } => "get_ip_transparent",
41456            DatagramSocketRequest::SetIpReceiveOriginalDestinationAddress { .. } => {
41457                "set_ip_receive_original_destination_address"
41458            }
41459            DatagramSocketRequest::GetIpReceiveOriginalDestinationAddress { .. } => {
41460                "get_ip_receive_original_destination_address"
41461            }
41462            DatagramSocketRequest::AddIpv6Membership { .. } => "add_ipv6_membership",
41463            DatagramSocketRequest::DropIpv6Membership { .. } => "drop_ipv6_membership",
41464            DatagramSocketRequest::SetIpv6MulticastInterface { .. } => {
41465                "set_ipv6_multicast_interface"
41466            }
41467            DatagramSocketRequest::GetIpv6MulticastInterface { .. } => {
41468                "get_ipv6_multicast_interface"
41469            }
41470            DatagramSocketRequest::SetIpv6UnicastHops { .. } => "set_ipv6_unicast_hops",
41471            DatagramSocketRequest::GetIpv6UnicastHops { .. } => "get_ipv6_unicast_hops",
41472            DatagramSocketRequest::SetIpv6ReceiveHopLimit { .. } => "set_ipv6_receive_hop_limit",
41473            DatagramSocketRequest::GetIpv6ReceiveHopLimit { .. } => "get_ipv6_receive_hop_limit",
41474            DatagramSocketRequest::SetIpv6MulticastHops { .. } => "set_ipv6_multicast_hops",
41475            DatagramSocketRequest::GetIpv6MulticastHops { .. } => "get_ipv6_multicast_hops",
41476            DatagramSocketRequest::SetIpv6MulticastLoopback { .. } => "set_ipv6_multicast_loopback",
41477            DatagramSocketRequest::GetIpv6MulticastLoopback { .. } => "get_ipv6_multicast_loopback",
41478            DatagramSocketRequest::SetIpv6Only { .. } => "set_ipv6_only",
41479            DatagramSocketRequest::GetIpv6Only { .. } => "get_ipv6_only",
41480            DatagramSocketRequest::SetIpv6ReceiveTrafficClass { .. } => {
41481                "set_ipv6_receive_traffic_class"
41482            }
41483            DatagramSocketRequest::GetIpv6ReceiveTrafficClass { .. } => {
41484                "get_ipv6_receive_traffic_class"
41485            }
41486            DatagramSocketRequest::SetIpv6TrafficClass { .. } => "set_ipv6_traffic_class",
41487            DatagramSocketRequest::GetIpv6TrafficClass { .. } => "get_ipv6_traffic_class",
41488            DatagramSocketRequest::SetIpv6ReceivePacketInfo { .. } => {
41489                "set_ipv6_receive_packet_info"
41490            }
41491            DatagramSocketRequest::GetIpv6ReceivePacketInfo { .. } => {
41492                "get_ipv6_receive_packet_info"
41493            }
41494            DatagramSocketRequest::GetOriginalDestination { .. } => "get_original_destination",
41495            DatagramSocketRequest::GetInfo { .. } => "get_info",
41496            DatagramSocketRequest::Describe { .. } => "describe",
41497            DatagramSocketRequest::SendMsgPreflight { .. } => "send_msg_preflight",
41498            DatagramSocketRequest::RecvMsgPostflight { .. } => "recv_msg_postflight",
41499        }
41500    }
41501}
41502
41503#[derive(Debug, Clone)]
41504pub struct DatagramSocketControlHandle {
41505    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
41506}
41507
41508impl fidl::endpoints::ControlHandle for DatagramSocketControlHandle {
41509    fn shutdown(&self) {
41510        self.inner.shutdown()
41511    }
41512    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
41513        self.inner.shutdown_with_epitaph(status)
41514    }
41515
41516    fn is_closed(&self) -> bool {
41517        self.inner.channel().is_closed()
41518    }
41519    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
41520        self.inner.channel().on_closed()
41521    }
41522
41523    #[cfg(target_os = "fuchsia")]
41524    fn signal_peer(
41525        &self,
41526        clear_mask: zx::Signals,
41527        set_mask: zx::Signals,
41528    ) -> Result<(), zx_status::Status> {
41529        use fidl::Peered;
41530        self.inner.channel().signal_peer(clear_mask, set_mask)
41531    }
41532}
41533
41534impl DatagramSocketControlHandle {}
41535
41536#[must_use = "FIDL methods require a response to be sent"]
41537#[derive(Debug)]
41538pub struct DatagramSocketCloseResponder {
41539    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
41540    tx_id: u32,
41541}
41542
41543/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
41544/// if the responder is dropped without sending a response, so that the client
41545/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
41546impl std::ops::Drop for DatagramSocketCloseResponder {
41547    fn drop(&mut self) {
41548        self.control_handle.shutdown();
41549        // Safety: drops once, never accessed again
41550        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
41551    }
41552}
41553
41554impl fidl::endpoints::Responder for DatagramSocketCloseResponder {
41555    type ControlHandle = DatagramSocketControlHandle;
41556
41557    fn control_handle(&self) -> &DatagramSocketControlHandle {
41558        &self.control_handle
41559    }
41560
41561    fn drop_without_shutdown(mut self) {
41562        // Safety: drops once, never accessed again due to mem::forget
41563        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
41564        // Prevent Drop from running (which would shut down the channel)
41565        std::mem::forget(self);
41566    }
41567}
41568
41569impl DatagramSocketCloseResponder {
41570    /// Sends a response to the FIDL transaction.
41571    ///
41572    /// Sets the channel to shutdown if an error occurs.
41573    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
41574        let _result = self.send_raw(result);
41575        if _result.is_err() {
41576            self.control_handle.shutdown();
41577        }
41578        self.drop_without_shutdown();
41579        _result
41580    }
41581
41582    /// Similar to "send" but does not shutdown the channel if an error occurs.
41583    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
41584        let _result = self.send_raw(result);
41585        self.drop_without_shutdown();
41586        _result
41587    }
41588
41589    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
41590        self.control_handle
41591            .inner
41592            .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>>(
41593                result,
41594                self.tx_id,
41595                0x5ac5d459ad7f657e,
41596                fidl::encoding::DynamicFlags::empty(),
41597            )
41598    }
41599}
41600
41601#[must_use = "FIDL methods require a response to be sent"]
41602#[derive(Debug)]
41603pub struct DatagramSocketQueryResponder {
41604    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
41605    tx_id: u32,
41606}
41607
41608/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
41609/// if the responder is dropped without sending a response, so that the client
41610/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
41611impl std::ops::Drop for DatagramSocketQueryResponder {
41612    fn drop(&mut self) {
41613        self.control_handle.shutdown();
41614        // Safety: drops once, never accessed again
41615        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
41616    }
41617}
41618
41619impl fidl::endpoints::Responder for DatagramSocketQueryResponder {
41620    type ControlHandle = DatagramSocketControlHandle;
41621
41622    fn control_handle(&self) -> &DatagramSocketControlHandle {
41623        &self.control_handle
41624    }
41625
41626    fn drop_without_shutdown(mut self) {
41627        // Safety: drops once, never accessed again due to mem::forget
41628        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
41629        // Prevent Drop from running (which would shut down the channel)
41630        std::mem::forget(self);
41631    }
41632}
41633
41634impl DatagramSocketQueryResponder {
41635    /// Sends a response to the FIDL transaction.
41636    ///
41637    /// Sets the channel to shutdown if an error occurs.
41638    pub fn send(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
41639        let _result = self.send_raw(protocol);
41640        if _result.is_err() {
41641            self.control_handle.shutdown();
41642        }
41643        self.drop_without_shutdown();
41644        _result
41645    }
41646
41647    /// Similar to "send" but does not shutdown the channel if an error occurs.
41648    pub fn send_no_shutdown_on_err(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
41649        let _result = self.send_raw(protocol);
41650        self.drop_without_shutdown();
41651        _result
41652    }
41653
41654    fn send_raw(&self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
41655        self.control_handle.inner.send::<fidl_fuchsia_unknown::QueryableQueryResponse>(
41656            (protocol,),
41657            self.tx_id,
41658            0x2658edee9decfc06,
41659            fidl::encoding::DynamicFlags::empty(),
41660        )
41661    }
41662}
41663
41664#[must_use = "FIDL methods require a response to be sent"]
41665#[derive(Debug)]
41666pub struct DatagramSocketSetReuseAddressResponder {
41667    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
41668    tx_id: u32,
41669}
41670
41671/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
41672/// if the responder is dropped without sending a response, so that the client
41673/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
41674impl std::ops::Drop for DatagramSocketSetReuseAddressResponder {
41675    fn drop(&mut self) {
41676        self.control_handle.shutdown();
41677        // Safety: drops once, never accessed again
41678        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
41679    }
41680}
41681
41682impl fidl::endpoints::Responder for DatagramSocketSetReuseAddressResponder {
41683    type ControlHandle = DatagramSocketControlHandle;
41684
41685    fn control_handle(&self) -> &DatagramSocketControlHandle {
41686        &self.control_handle
41687    }
41688
41689    fn drop_without_shutdown(mut self) {
41690        // Safety: drops once, never accessed again due to mem::forget
41691        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
41692        // Prevent Drop from running (which would shut down the channel)
41693        std::mem::forget(self);
41694    }
41695}
41696
41697impl DatagramSocketSetReuseAddressResponder {
41698    /// Sends a response to the FIDL transaction.
41699    ///
41700    /// Sets the channel to shutdown if an error occurs.
41701    pub fn send(
41702        self,
41703        mut result: Result<(), fidl_fuchsia_posix::Errno>,
41704    ) -> Result<(), fidl::Error> {
41705        let _result = self.send_raw(result);
41706        if _result.is_err() {
41707            self.control_handle.shutdown();
41708        }
41709        self.drop_without_shutdown();
41710        _result
41711    }
41712
41713    /// Similar to "send" but does not shutdown the channel if an error occurs.
41714    pub fn send_no_shutdown_on_err(
41715        self,
41716        mut result: Result<(), fidl_fuchsia_posix::Errno>,
41717    ) -> Result<(), fidl::Error> {
41718        let _result = self.send_raw(result);
41719        self.drop_without_shutdown();
41720        _result
41721    }
41722
41723    fn send_raw(
41724        &self,
41725        mut result: Result<(), fidl_fuchsia_posix::Errno>,
41726    ) -> Result<(), fidl::Error> {
41727        self.control_handle.inner.send::<fidl::encoding::ResultType<
41728            fidl::encoding::EmptyStruct,
41729            fidl_fuchsia_posix::Errno,
41730        >>(
41731            result,
41732            self.tx_id,
41733            0x1fd74ee8b9a4a876,
41734            fidl::encoding::DynamicFlags::empty(),
41735        )
41736    }
41737}
41738
41739#[must_use = "FIDL methods require a response to be sent"]
41740#[derive(Debug)]
41741pub struct DatagramSocketGetReuseAddressResponder {
41742    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
41743    tx_id: u32,
41744}
41745
41746/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
41747/// if the responder is dropped without sending a response, so that the client
41748/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
41749impl std::ops::Drop for DatagramSocketGetReuseAddressResponder {
41750    fn drop(&mut self) {
41751        self.control_handle.shutdown();
41752        // Safety: drops once, never accessed again
41753        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
41754    }
41755}
41756
41757impl fidl::endpoints::Responder for DatagramSocketGetReuseAddressResponder {
41758    type ControlHandle = DatagramSocketControlHandle;
41759
41760    fn control_handle(&self) -> &DatagramSocketControlHandle {
41761        &self.control_handle
41762    }
41763
41764    fn drop_without_shutdown(mut self) {
41765        // Safety: drops once, never accessed again due to mem::forget
41766        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
41767        // Prevent Drop from running (which would shut down the channel)
41768        std::mem::forget(self);
41769    }
41770}
41771
41772impl DatagramSocketGetReuseAddressResponder {
41773    /// Sends a response to the FIDL transaction.
41774    ///
41775    /// Sets the channel to shutdown if an error occurs.
41776    pub fn send(
41777        self,
41778        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
41779    ) -> Result<(), fidl::Error> {
41780        let _result = self.send_raw(result);
41781        if _result.is_err() {
41782            self.control_handle.shutdown();
41783        }
41784        self.drop_without_shutdown();
41785        _result
41786    }
41787
41788    /// Similar to "send" but does not shutdown the channel if an error occurs.
41789    pub fn send_no_shutdown_on_err(
41790        self,
41791        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
41792    ) -> Result<(), fidl::Error> {
41793        let _result = self.send_raw(result);
41794        self.drop_without_shutdown();
41795        _result
41796    }
41797
41798    fn send_raw(
41799        &self,
41800        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
41801    ) -> Result<(), fidl::Error> {
41802        self.control_handle.inner.send::<fidl::encoding::ResultType<
41803            BaseSocketGetReuseAddressResponse,
41804            fidl_fuchsia_posix::Errno,
41805        >>(
41806            result.map(|value| (value,)),
41807            self.tx_id,
41808            0x67b7206b8d1bc0a5,
41809            fidl::encoding::DynamicFlags::empty(),
41810        )
41811    }
41812}
41813
41814#[must_use = "FIDL methods require a response to be sent"]
41815#[derive(Debug)]
41816pub struct DatagramSocketGetErrorResponder {
41817    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
41818    tx_id: u32,
41819}
41820
41821/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
41822/// if the responder is dropped without sending a response, so that the client
41823/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
41824impl std::ops::Drop for DatagramSocketGetErrorResponder {
41825    fn drop(&mut self) {
41826        self.control_handle.shutdown();
41827        // Safety: drops once, never accessed again
41828        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
41829    }
41830}
41831
41832impl fidl::endpoints::Responder for DatagramSocketGetErrorResponder {
41833    type ControlHandle = DatagramSocketControlHandle;
41834
41835    fn control_handle(&self) -> &DatagramSocketControlHandle {
41836        &self.control_handle
41837    }
41838
41839    fn drop_without_shutdown(mut self) {
41840        // Safety: drops once, never accessed again due to mem::forget
41841        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
41842        // Prevent Drop from running (which would shut down the channel)
41843        std::mem::forget(self);
41844    }
41845}
41846
41847impl DatagramSocketGetErrorResponder {
41848    /// Sends a response to the FIDL transaction.
41849    ///
41850    /// Sets the channel to shutdown if an error occurs.
41851    pub fn send(
41852        self,
41853        mut result: Result<(), fidl_fuchsia_posix::Errno>,
41854    ) -> Result<(), fidl::Error> {
41855        let _result = self.send_raw(result);
41856        if _result.is_err() {
41857            self.control_handle.shutdown();
41858        }
41859        self.drop_without_shutdown();
41860        _result
41861    }
41862
41863    /// Similar to "send" but does not shutdown the channel if an error occurs.
41864    pub fn send_no_shutdown_on_err(
41865        self,
41866        mut result: Result<(), fidl_fuchsia_posix::Errno>,
41867    ) -> Result<(), fidl::Error> {
41868        let _result = self.send_raw(result);
41869        self.drop_without_shutdown();
41870        _result
41871    }
41872
41873    fn send_raw(
41874        &self,
41875        mut result: Result<(), fidl_fuchsia_posix::Errno>,
41876    ) -> Result<(), fidl::Error> {
41877        self.control_handle.inner.send::<fidl::encoding::ResultType<
41878            fidl::encoding::EmptyStruct,
41879            fidl_fuchsia_posix::Errno,
41880        >>(
41881            result,
41882            self.tx_id,
41883            0x5aad39b33e5f6ebb,
41884            fidl::encoding::DynamicFlags::empty(),
41885        )
41886    }
41887}
41888
41889#[must_use = "FIDL methods require a response to be sent"]
41890#[derive(Debug)]
41891pub struct DatagramSocketSetBroadcastResponder {
41892    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
41893    tx_id: u32,
41894}
41895
41896/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
41897/// if the responder is dropped without sending a response, so that the client
41898/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
41899impl std::ops::Drop for DatagramSocketSetBroadcastResponder {
41900    fn drop(&mut self) {
41901        self.control_handle.shutdown();
41902        // Safety: drops once, never accessed again
41903        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
41904    }
41905}
41906
41907impl fidl::endpoints::Responder for DatagramSocketSetBroadcastResponder {
41908    type ControlHandle = DatagramSocketControlHandle;
41909
41910    fn control_handle(&self) -> &DatagramSocketControlHandle {
41911        &self.control_handle
41912    }
41913
41914    fn drop_without_shutdown(mut self) {
41915        // Safety: drops once, never accessed again due to mem::forget
41916        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
41917        // Prevent Drop from running (which would shut down the channel)
41918        std::mem::forget(self);
41919    }
41920}
41921
41922impl DatagramSocketSetBroadcastResponder {
41923    /// Sends a response to the FIDL transaction.
41924    ///
41925    /// Sets the channel to shutdown if an error occurs.
41926    pub fn send(
41927        self,
41928        mut result: Result<(), fidl_fuchsia_posix::Errno>,
41929    ) -> Result<(), fidl::Error> {
41930        let _result = self.send_raw(result);
41931        if _result.is_err() {
41932            self.control_handle.shutdown();
41933        }
41934        self.drop_without_shutdown();
41935        _result
41936    }
41937
41938    /// Similar to "send" but does not shutdown the channel if an error occurs.
41939    pub fn send_no_shutdown_on_err(
41940        self,
41941        mut result: Result<(), fidl_fuchsia_posix::Errno>,
41942    ) -> Result<(), fidl::Error> {
41943        let _result = self.send_raw(result);
41944        self.drop_without_shutdown();
41945        _result
41946    }
41947
41948    fn send_raw(
41949        &self,
41950        mut result: Result<(), fidl_fuchsia_posix::Errno>,
41951    ) -> Result<(), fidl::Error> {
41952        self.control_handle.inner.send::<fidl::encoding::ResultType<
41953            fidl::encoding::EmptyStruct,
41954            fidl_fuchsia_posix::Errno,
41955        >>(
41956            result,
41957            self.tx_id,
41958            0x6023e081ce3cd947,
41959            fidl::encoding::DynamicFlags::empty(),
41960        )
41961    }
41962}
41963
41964#[must_use = "FIDL methods require a response to be sent"]
41965#[derive(Debug)]
41966pub struct DatagramSocketGetBroadcastResponder {
41967    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
41968    tx_id: u32,
41969}
41970
41971/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
41972/// if the responder is dropped without sending a response, so that the client
41973/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
41974impl std::ops::Drop for DatagramSocketGetBroadcastResponder {
41975    fn drop(&mut self) {
41976        self.control_handle.shutdown();
41977        // Safety: drops once, never accessed again
41978        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
41979    }
41980}
41981
41982impl fidl::endpoints::Responder for DatagramSocketGetBroadcastResponder {
41983    type ControlHandle = DatagramSocketControlHandle;
41984
41985    fn control_handle(&self) -> &DatagramSocketControlHandle {
41986        &self.control_handle
41987    }
41988
41989    fn drop_without_shutdown(mut self) {
41990        // Safety: drops once, never accessed again due to mem::forget
41991        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
41992        // Prevent Drop from running (which would shut down the channel)
41993        std::mem::forget(self);
41994    }
41995}
41996
41997impl DatagramSocketGetBroadcastResponder {
41998    /// Sends a response to the FIDL transaction.
41999    ///
42000    /// Sets the channel to shutdown if an error occurs.
42001    pub fn send(
42002        self,
42003        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
42004    ) -> Result<(), fidl::Error> {
42005        let _result = self.send_raw(result);
42006        if _result.is_err() {
42007            self.control_handle.shutdown();
42008        }
42009        self.drop_without_shutdown();
42010        _result
42011    }
42012
42013    /// Similar to "send" but does not shutdown the channel if an error occurs.
42014    pub fn send_no_shutdown_on_err(
42015        self,
42016        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
42017    ) -> Result<(), fidl::Error> {
42018        let _result = self.send_raw(result);
42019        self.drop_without_shutdown();
42020        _result
42021    }
42022
42023    fn send_raw(
42024        &self,
42025        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
42026    ) -> Result<(), fidl::Error> {
42027        self.control_handle.inner.send::<fidl::encoding::ResultType<
42028            BaseSocketGetBroadcastResponse,
42029            fidl_fuchsia_posix::Errno,
42030        >>(
42031            result.map(|value| (value,)),
42032            self.tx_id,
42033            0x68796fc556f9780d,
42034            fidl::encoding::DynamicFlags::empty(),
42035        )
42036    }
42037}
42038
42039#[must_use = "FIDL methods require a response to be sent"]
42040#[derive(Debug)]
42041pub struct DatagramSocketSetSendBufferResponder {
42042    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42043    tx_id: u32,
42044}
42045
42046/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42047/// if the responder is dropped without sending a response, so that the client
42048/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42049impl std::ops::Drop for DatagramSocketSetSendBufferResponder {
42050    fn drop(&mut self) {
42051        self.control_handle.shutdown();
42052        // Safety: drops once, never accessed again
42053        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42054    }
42055}
42056
42057impl fidl::endpoints::Responder for DatagramSocketSetSendBufferResponder {
42058    type ControlHandle = DatagramSocketControlHandle;
42059
42060    fn control_handle(&self) -> &DatagramSocketControlHandle {
42061        &self.control_handle
42062    }
42063
42064    fn drop_without_shutdown(mut self) {
42065        // Safety: drops once, never accessed again due to mem::forget
42066        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42067        // Prevent Drop from running (which would shut down the channel)
42068        std::mem::forget(self);
42069    }
42070}
42071
42072impl DatagramSocketSetSendBufferResponder {
42073    /// Sends a response to the FIDL transaction.
42074    ///
42075    /// Sets the channel to shutdown if an error occurs.
42076    pub fn send(
42077        self,
42078        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42079    ) -> Result<(), fidl::Error> {
42080        let _result = self.send_raw(result);
42081        if _result.is_err() {
42082            self.control_handle.shutdown();
42083        }
42084        self.drop_without_shutdown();
42085        _result
42086    }
42087
42088    /// Similar to "send" but does not shutdown the channel if an error occurs.
42089    pub fn send_no_shutdown_on_err(
42090        self,
42091        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42092    ) -> Result<(), fidl::Error> {
42093        let _result = self.send_raw(result);
42094        self.drop_without_shutdown();
42095        _result
42096    }
42097
42098    fn send_raw(
42099        &self,
42100        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42101    ) -> Result<(), fidl::Error> {
42102        self.control_handle.inner.send::<fidl::encoding::ResultType<
42103            fidl::encoding::EmptyStruct,
42104            fidl_fuchsia_posix::Errno,
42105        >>(
42106            result,
42107            self.tx_id,
42108            0x756eac32d73a7a70,
42109            fidl::encoding::DynamicFlags::empty(),
42110        )
42111    }
42112}
42113
42114#[must_use = "FIDL methods require a response to be sent"]
42115#[derive(Debug)]
42116pub struct DatagramSocketGetSendBufferResponder {
42117    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42118    tx_id: u32,
42119}
42120
42121/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42122/// if the responder is dropped without sending a response, so that the client
42123/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42124impl std::ops::Drop for DatagramSocketGetSendBufferResponder {
42125    fn drop(&mut self) {
42126        self.control_handle.shutdown();
42127        // Safety: drops once, never accessed again
42128        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42129    }
42130}
42131
42132impl fidl::endpoints::Responder for DatagramSocketGetSendBufferResponder {
42133    type ControlHandle = DatagramSocketControlHandle;
42134
42135    fn control_handle(&self) -> &DatagramSocketControlHandle {
42136        &self.control_handle
42137    }
42138
42139    fn drop_without_shutdown(mut self) {
42140        // Safety: drops once, never accessed again due to mem::forget
42141        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42142        // Prevent Drop from running (which would shut down the channel)
42143        std::mem::forget(self);
42144    }
42145}
42146
42147impl DatagramSocketGetSendBufferResponder {
42148    /// Sends a response to the FIDL transaction.
42149    ///
42150    /// Sets the channel to shutdown if an error occurs.
42151    pub fn send(
42152        self,
42153        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
42154    ) -> Result<(), fidl::Error> {
42155        let _result = self.send_raw(result);
42156        if _result.is_err() {
42157            self.control_handle.shutdown();
42158        }
42159        self.drop_without_shutdown();
42160        _result
42161    }
42162
42163    /// Similar to "send" but does not shutdown the channel if an error occurs.
42164    pub fn send_no_shutdown_on_err(
42165        self,
42166        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
42167    ) -> Result<(), fidl::Error> {
42168        let _result = self.send_raw(result);
42169        self.drop_without_shutdown();
42170        _result
42171    }
42172
42173    fn send_raw(
42174        &self,
42175        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
42176    ) -> Result<(), fidl::Error> {
42177        self.control_handle.inner.send::<fidl::encoding::ResultType<
42178            BaseSocketGetSendBufferResponse,
42179            fidl_fuchsia_posix::Errno,
42180        >>(
42181            result.map(|value_bytes| (value_bytes,)),
42182            self.tx_id,
42183            0x78a52fd9c7b2410b,
42184            fidl::encoding::DynamicFlags::empty(),
42185        )
42186    }
42187}
42188
42189#[must_use = "FIDL methods require a response to be sent"]
42190#[derive(Debug)]
42191pub struct DatagramSocketSetReceiveBufferResponder {
42192    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42193    tx_id: u32,
42194}
42195
42196/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42197/// if the responder is dropped without sending a response, so that the client
42198/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42199impl std::ops::Drop for DatagramSocketSetReceiveBufferResponder {
42200    fn drop(&mut self) {
42201        self.control_handle.shutdown();
42202        // Safety: drops once, never accessed again
42203        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42204    }
42205}
42206
42207impl fidl::endpoints::Responder for DatagramSocketSetReceiveBufferResponder {
42208    type ControlHandle = DatagramSocketControlHandle;
42209
42210    fn control_handle(&self) -> &DatagramSocketControlHandle {
42211        &self.control_handle
42212    }
42213
42214    fn drop_without_shutdown(mut self) {
42215        // Safety: drops once, never accessed again due to mem::forget
42216        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42217        // Prevent Drop from running (which would shut down the channel)
42218        std::mem::forget(self);
42219    }
42220}
42221
42222impl DatagramSocketSetReceiveBufferResponder {
42223    /// Sends a response to the FIDL transaction.
42224    ///
42225    /// Sets the channel to shutdown if an error occurs.
42226    pub fn send(
42227        self,
42228        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42229    ) -> Result<(), fidl::Error> {
42230        let _result = self.send_raw(result);
42231        if _result.is_err() {
42232            self.control_handle.shutdown();
42233        }
42234        self.drop_without_shutdown();
42235        _result
42236    }
42237
42238    /// Similar to "send" but does not shutdown the channel if an error occurs.
42239    pub fn send_no_shutdown_on_err(
42240        self,
42241        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42242    ) -> Result<(), fidl::Error> {
42243        let _result = self.send_raw(result);
42244        self.drop_without_shutdown();
42245        _result
42246    }
42247
42248    fn send_raw(
42249        &self,
42250        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42251    ) -> Result<(), fidl::Error> {
42252        self.control_handle.inner.send::<fidl::encoding::ResultType<
42253            fidl::encoding::EmptyStruct,
42254            fidl_fuchsia_posix::Errno,
42255        >>(
42256            result,
42257            self.tx_id,
42258            0x6b0cf2f1919c7001,
42259            fidl::encoding::DynamicFlags::empty(),
42260        )
42261    }
42262}
42263
42264#[must_use = "FIDL methods require a response to be sent"]
42265#[derive(Debug)]
42266pub struct DatagramSocketGetReceiveBufferResponder {
42267    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42268    tx_id: u32,
42269}
42270
42271/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42272/// if the responder is dropped without sending a response, so that the client
42273/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42274impl std::ops::Drop for DatagramSocketGetReceiveBufferResponder {
42275    fn drop(&mut self) {
42276        self.control_handle.shutdown();
42277        // Safety: drops once, never accessed again
42278        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42279    }
42280}
42281
42282impl fidl::endpoints::Responder for DatagramSocketGetReceiveBufferResponder {
42283    type ControlHandle = DatagramSocketControlHandle;
42284
42285    fn control_handle(&self) -> &DatagramSocketControlHandle {
42286        &self.control_handle
42287    }
42288
42289    fn drop_without_shutdown(mut self) {
42290        // Safety: drops once, never accessed again due to mem::forget
42291        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42292        // Prevent Drop from running (which would shut down the channel)
42293        std::mem::forget(self);
42294    }
42295}
42296
42297impl DatagramSocketGetReceiveBufferResponder {
42298    /// Sends a response to the FIDL transaction.
42299    ///
42300    /// Sets the channel to shutdown if an error occurs.
42301    pub fn send(
42302        self,
42303        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
42304    ) -> Result<(), fidl::Error> {
42305        let _result = self.send_raw(result);
42306        if _result.is_err() {
42307            self.control_handle.shutdown();
42308        }
42309        self.drop_without_shutdown();
42310        _result
42311    }
42312
42313    /// Similar to "send" but does not shutdown the channel if an error occurs.
42314    pub fn send_no_shutdown_on_err(
42315        self,
42316        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
42317    ) -> Result<(), fidl::Error> {
42318        let _result = self.send_raw(result);
42319        self.drop_without_shutdown();
42320        _result
42321    }
42322
42323    fn send_raw(
42324        &self,
42325        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
42326    ) -> Result<(), fidl::Error> {
42327        self.control_handle.inner.send::<fidl::encoding::ResultType<
42328            BaseSocketGetReceiveBufferResponse,
42329            fidl_fuchsia_posix::Errno,
42330        >>(
42331            result.map(|value_bytes| (value_bytes,)),
42332            self.tx_id,
42333            0x14c1a4b64f709e5c,
42334            fidl::encoding::DynamicFlags::empty(),
42335        )
42336    }
42337}
42338
42339#[must_use = "FIDL methods require a response to be sent"]
42340#[derive(Debug)]
42341pub struct DatagramSocketSetKeepAliveResponder {
42342    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42343    tx_id: u32,
42344}
42345
42346/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42347/// if the responder is dropped without sending a response, so that the client
42348/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42349impl std::ops::Drop for DatagramSocketSetKeepAliveResponder {
42350    fn drop(&mut self) {
42351        self.control_handle.shutdown();
42352        // Safety: drops once, never accessed again
42353        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42354    }
42355}
42356
42357impl fidl::endpoints::Responder for DatagramSocketSetKeepAliveResponder {
42358    type ControlHandle = DatagramSocketControlHandle;
42359
42360    fn control_handle(&self) -> &DatagramSocketControlHandle {
42361        &self.control_handle
42362    }
42363
42364    fn drop_without_shutdown(mut self) {
42365        // Safety: drops once, never accessed again due to mem::forget
42366        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42367        // Prevent Drop from running (which would shut down the channel)
42368        std::mem::forget(self);
42369    }
42370}
42371
42372impl DatagramSocketSetKeepAliveResponder {
42373    /// Sends a response to the FIDL transaction.
42374    ///
42375    /// Sets the channel to shutdown if an error occurs.
42376    pub fn send(
42377        self,
42378        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42379    ) -> Result<(), fidl::Error> {
42380        let _result = self.send_raw(result);
42381        if _result.is_err() {
42382            self.control_handle.shutdown();
42383        }
42384        self.drop_without_shutdown();
42385        _result
42386    }
42387
42388    /// Similar to "send" but does not shutdown the channel if an error occurs.
42389    pub fn send_no_shutdown_on_err(
42390        self,
42391        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42392    ) -> Result<(), fidl::Error> {
42393        let _result = self.send_raw(result);
42394        self.drop_without_shutdown();
42395        _result
42396    }
42397
42398    fn send_raw(
42399        &self,
42400        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42401    ) -> Result<(), fidl::Error> {
42402        self.control_handle.inner.send::<fidl::encoding::ResultType<
42403            fidl::encoding::EmptyStruct,
42404            fidl_fuchsia_posix::Errno,
42405        >>(
42406            result,
42407            self.tx_id,
42408            0x572df8f0b920d2c7,
42409            fidl::encoding::DynamicFlags::empty(),
42410        )
42411    }
42412}
42413
42414#[must_use = "FIDL methods require a response to be sent"]
42415#[derive(Debug)]
42416pub struct DatagramSocketGetKeepAliveResponder {
42417    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42418    tx_id: u32,
42419}
42420
42421/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42422/// if the responder is dropped without sending a response, so that the client
42423/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42424impl std::ops::Drop for DatagramSocketGetKeepAliveResponder {
42425    fn drop(&mut self) {
42426        self.control_handle.shutdown();
42427        // Safety: drops once, never accessed again
42428        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42429    }
42430}
42431
42432impl fidl::endpoints::Responder for DatagramSocketGetKeepAliveResponder {
42433    type ControlHandle = DatagramSocketControlHandle;
42434
42435    fn control_handle(&self) -> &DatagramSocketControlHandle {
42436        &self.control_handle
42437    }
42438
42439    fn drop_without_shutdown(mut self) {
42440        // Safety: drops once, never accessed again due to mem::forget
42441        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42442        // Prevent Drop from running (which would shut down the channel)
42443        std::mem::forget(self);
42444    }
42445}
42446
42447impl DatagramSocketGetKeepAliveResponder {
42448    /// Sends a response to the FIDL transaction.
42449    ///
42450    /// Sets the channel to shutdown if an error occurs.
42451    pub fn send(
42452        self,
42453        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
42454    ) -> Result<(), fidl::Error> {
42455        let _result = self.send_raw(result);
42456        if _result.is_err() {
42457            self.control_handle.shutdown();
42458        }
42459        self.drop_without_shutdown();
42460        _result
42461    }
42462
42463    /// Similar to "send" but does not shutdown the channel if an error occurs.
42464    pub fn send_no_shutdown_on_err(
42465        self,
42466        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
42467    ) -> Result<(), fidl::Error> {
42468        let _result = self.send_raw(result);
42469        self.drop_without_shutdown();
42470        _result
42471    }
42472
42473    fn send_raw(
42474        &self,
42475        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
42476    ) -> Result<(), fidl::Error> {
42477        self.control_handle.inner.send::<fidl::encoding::ResultType<
42478            BaseSocketGetKeepAliveResponse,
42479            fidl_fuchsia_posix::Errno,
42480        >>(
42481            result.map(|value| (value,)),
42482            self.tx_id,
42483            0x2dd29d3215f2c9d2,
42484            fidl::encoding::DynamicFlags::empty(),
42485        )
42486    }
42487}
42488
42489#[must_use = "FIDL methods require a response to be sent"]
42490#[derive(Debug)]
42491pub struct DatagramSocketSetOutOfBandInlineResponder {
42492    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42493    tx_id: u32,
42494}
42495
42496/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42497/// if the responder is dropped without sending a response, so that the client
42498/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42499impl std::ops::Drop for DatagramSocketSetOutOfBandInlineResponder {
42500    fn drop(&mut self) {
42501        self.control_handle.shutdown();
42502        // Safety: drops once, never accessed again
42503        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42504    }
42505}
42506
42507impl fidl::endpoints::Responder for DatagramSocketSetOutOfBandInlineResponder {
42508    type ControlHandle = DatagramSocketControlHandle;
42509
42510    fn control_handle(&self) -> &DatagramSocketControlHandle {
42511        &self.control_handle
42512    }
42513
42514    fn drop_without_shutdown(mut self) {
42515        // Safety: drops once, never accessed again due to mem::forget
42516        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42517        // Prevent Drop from running (which would shut down the channel)
42518        std::mem::forget(self);
42519    }
42520}
42521
42522impl DatagramSocketSetOutOfBandInlineResponder {
42523    /// Sends a response to the FIDL transaction.
42524    ///
42525    /// Sets the channel to shutdown if an error occurs.
42526    pub fn send(
42527        self,
42528        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42529    ) -> Result<(), fidl::Error> {
42530        let _result = self.send_raw(result);
42531        if _result.is_err() {
42532            self.control_handle.shutdown();
42533        }
42534        self.drop_without_shutdown();
42535        _result
42536    }
42537
42538    /// Similar to "send" but does not shutdown the channel if an error occurs.
42539    pub fn send_no_shutdown_on_err(
42540        self,
42541        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42542    ) -> Result<(), fidl::Error> {
42543        let _result = self.send_raw(result);
42544        self.drop_without_shutdown();
42545        _result
42546    }
42547
42548    fn send_raw(
42549        &self,
42550        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42551    ) -> Result<(), fidl::Error> {
42552        self.control_handle.inner.send::<fidl::encoding::ResultType<
42553            fidl::encoding::EmptyStruct,
42554            fidl_fuchsia_posix::Errno,
42555        >>(
42556            result,
42557            self.tx_id,
42558            0x3ecb49968bee439,
42559            fidl::encoding::DynamicFlags::empty(),
42560        )
42561    }
42562}
42563
42564#[must_use = "FIDL methods require a response to be sent"]
42565#[derive(Debug)]
42566pub struct DatagramSocketGetOutOfBandInlineResponder {
42567    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42568    tx_id: u32,
42569}
42570
42571/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42572/// if the responder is dropped without sending a response, so that the client
42573/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42574impl std::ops::Drop for DatagramSocketGetOutOfBandInlineResponder {
42575    fn drop(&mut self) {
42576        self.control_handle.shutdown();
42577        // Safety: drops once, never accessed again
42578        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42579    }
42580}
42581
42582impl fidl::endpoints::Responder for DatagramSocketGetOutOfBandInlineResponder {
42583    type ControlHandle = DatagramSocketControlHandle;
42584
42585    fn control_handle(&self) -> &DatagramSocketControlHandle {
42586        &self.control_handle
42587    }
42588
42589    fn drop_without_shutdown(mut self) {
42590        // Safety: drops once, never accessed again due to mem::forget
42591        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42592        // Prevent Drop from running (which would shut down the channel)
42593        std::mem::forget(self);
42594    }
42595}
42596
42597impl DatagramSocketGetOutOfBandInlineResponder {
42598    /// Sends a response to the FIDL transaction.
42599    ///
42600    /// Sets the channel to shutdown if an error occurs.
42601    pub fn send(
42602        self,
42603        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
42604    ) -> Result<(), fidl::Error> {
42605        let _result = self.send_raw(result);
42606        if _result.is_err() {
42607            self.control_handle.shutdown();
42608        }
42609        self.drop_without_shutdown();
42610        _result
42611    }
42612
42613    /// Similar to "send" but does not shutdown the channel if an error occurs.
42614    pub fn send_no_shutdown_on_err(
42615        self,
42616        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
42617    ) -> Result<(), fidl::Error> {
42618        let _result = self.send_raw(result);
42619        self.drop_without_shutdown();
42620        _result
42621    }
42622
42623    fn send_raw(
42624        &self,
42625        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
42626    ) -> Result<(), fidl::Error> {
42627        self.control_handle.inner.send::<fidl::encoding::ResultType<
42628            BaseSocketGetOutOfBandInlineResponse,
42629            fidl_fuchsia_posix::Errno,
42630        >>(
42631            result.map(|value| (value,)),
42632            self.tx_id,
42633            0x348c1ab3aeca1745,
42634            fidl::encoding::DynamicFlags::empty(),
42635        )
42636    }
42637}
42638
42639#[must_use = "FIDL methods require a response to be sent"]
42640#[derive(Debug)]
42641pub struct DatagramSocketSetNoCheckResponder {
42642    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42643    tx_id: u32,
42644}
42645
42646/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42647/// if the responder is dropped without sending a response, so that the client
42648/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42649impl std::ops::Drop for DatagramSocketSetNoCheckResponder {
42650    fn drop(&mut self) {
42651        self.control_handle.shutdown();
42652        // Safety: drops once, never accessed again
42653        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42654    }
42655}
42656
42657impl fidl::endpoints::Responder for DatagramSocketSetNoCheckResponder {
42658    type ControlHandle = DatagramSocketControlHandle;
42659
42660    fn control_handle(&self) -> &DatagramSocketControlHandle {
42661        &self.control_handle
42662    }
42663
42664    fn drop_without_shutdown(mut self) {
42665        // Safety: drops once, never accessed again due to mem::forget
42666        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42667        // Prevent Drop from running (which would shut down the channel)
42668        std::mem::forget(self);
42669    }
42670}
42671
42672impl DatagramSocketSetNoCheckResponder {
42673    /// Sends a response to the FIDL transaction.
42674    ///
42675    /// Sets the channel to shutdown if an error occurs.
42676    pub fn send(
42677        self,
42678        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42679    ) -> Result<(), fidl::Error> {
42680        let _result = self.send_raw(result);
42681        if _result.is_err() {
42682            self.control_handle.shutdown();
42683        }
42684        self.drop_without_shutdown();
42685        _result
42686    }
42687
42688    /// Similar to "send" but does not shutdown the channel if an error occurs.
42689    pub fn send_no_shutdown_on_err(
42690        self,
42691        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42692    ) -> Result<(), fidl::Error> {
42693        let _result = self.send_raw(result);
42694        self.drop_without_shutdown();
42695        _result
42696    }
42697
42698    fn send_raw(
42699        &self,
42700        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42701    ) -> Result<(), fidl::Error> {
42702        self.control_handle.inner.send::<fidl::encoding::ResultType<
42703            fidl::encoding::EmptyStruct,
42704            fidl_fuchsia_posix::Errno,
42705        >>(
42706            result,
42707            self.tx_id,
42708            0x6bbf00c53a4c78c2,
42709            fidl::encoding::DynamicFlags::empty(),
42710        )
42711    }
42712}
42713
42714#[must_use = "FIDL methods require a response to be sent"]
42715#[derive(Debug)]
42716pub struct DatagramSocketGetNoCheckResponder {
42717    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42718    tx_id: u32,
42719}
42720
42721/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42722/// if the responder is dropped without sending a response, so that the client
42723/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42724impl std::ops::Drop for DatagramSocketGetNoCheckResponder {
42725    fn drop(&mut self) {
42726        self.control_handle.shutdown();
42727        // Safety: drops once, never accessed again
42728        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42729    }
42730}
42731
42732impl fidl::endpoints::Responder for DatagramSocketGetNoCheckResponder {
42733    type ControlHandle = DatagramSocketControlHandle;
42734
42735    fn control_handle(&self) -> &DatagramSocketControlHandle {
42736        &self.control_handle
42737    }
42738
42739    fn drop_without_shutdown(mut self) {
42740        // Safety: drops once, never accessed again due to mem::forget
42741        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42742        // Prevent Drop from running (which would shut down the channel)
42743        std::mem::forget(self);
42744    }
42745}
42746
42747impl DatagramSocketGetNoCheckResponder {
42748    /// Sends a response to the FIDL transaction.
42749    ///
42750    /// Sets the channel to shutdown if an error occurs.
42751    pub fn send(
42752        self,
42753        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
42754    ) -> Result<(), fidl::Error> {
42755        let _result = self.send_raw(result);
42756        if _result.is_err() {
42757            self.control_handle.shutdown();
42758        }
42759        self.drop_without_shutdown();
42760        _result
42761    }
42762
42763    /// Similar to "send" but does not shutdown the channel if an error occurs.
42764    pub fn send_no_shutdown_on_err(
42765        self,
42766        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
42767    ) -> Result<(), fidl::Error> {
42768        let _result = self.send_raw(result);
42769        self.drop_without_shutdown();
42770        _result
42771    }
42772
42773    fn send_raw(
42774        &self,
42775        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
42776    ) -> Result<(), fidl::Error> {
42777        self.control_handle.inner.send::<fidl::encoding::ResultType<
42778            BaseSocketGetNoCheckResponse,
42779            fidl_fuchsia_posix::Errno,
42780        >>(
42781            result.map(|value| (value,)),
42782            self.tx_id,
42783            0x2cd4249286417694,
42784            fidl::encoding::DynamicFlags::empty(),
42785        )
42786    }
42787}
42788
42789#[must_use = "FIDL methods require a response to be sent"]
42790#[derive(Debug)]
42791pub struct DatagramSocketSetLingerResponder {
42792    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42793    tx_id: u32,
42794}
42795
42796/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42797/// if the responder is dropped without sending a response, so that the client
42798/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42799impl std::ops::Drop for DatagramSocketSetLingerResponder {
42800    fn drop(&mut self) {
42801        self.control_handle.shutdown();
42802        // Safety: drops once, never accessed again
42803        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42804    }
42805}
42806
42807impl fidl::endpoints::Responder for DatagramSocketSetLingerResponder {
42808    type ControlHandle = DatagramSocketControlHandle;
42809
42810    fn control_handle(&self) -> &DatagramSocketControlHandle {
42811        &self.control_handle
42812    }
42813
42814    fn drop_without_shutdown(mut self) {
42815        // Safety: drops once, never accessed again due to mem::forget
42816        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42817        // Prevent Drop from running (which would shut down the channel)
42818        std::mem::forget(self);
42819    }
42820}
42821
42822impl DatagramSocketSetLingerResponder {
42823    /// Sends a response to the FIDL transaction.
42824    ///
42825    /// Sets the channel to shutdown if an error occurs.
42826    pub fn send(
42827        self,
42828        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42829    ) -> Result<(), fidl::Error> {
42830        let _result = self.send_raw(result);
42831        if _result.is_err() {
42832            self.control_handle.shutdown();
42833        }
42834        self.drop_without_shutdown();
42835        _result
42836    }
42837
42838    /// Similar to "send" but does not shutdown the channel if an error occurs.
42839    pub fn send_no_shutdown_on_err(
42840        self,
42841        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42842    ) -> Result<(), fidl::Error> {
42843        let _result = self.send_raw(result);
42844        self.drop_without_shutdown();
42845        _result
42846    }
42847
42848    fn send_raw(
42849        &self,
42850        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42851    ) -> Result<(), fidl::Error> {
42852        self.control_handle.inner.send::<fidl::encoding::ResultType<
42853            fidl::encoding::EmptyStruct,
42854            fidl_fuchsia_posix::Errno,
42855        >>(
42856            result,
42857            self.tx_id,
42858            0x45386351246e998e,
42859            fidl::encoding::DynamicFlags::empty(),
42860        )
42861    }
42862}
42863
42864#[must_use = "FIDL methods require a response to be sent"]
42865#[derive(Debug)]
42866pub struct DatagramSocketGetLingerResponder {
42867    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42868    tx_id: u32,
42869}
42870
42871/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42872/// if the responder is dropped without sending a response, so that the client
42873/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42874impl std::ops::Drop for DatagramSocketGetLingerResponder {
42875    fn drop(&mut self) {
42876        self.control_handle.shutdown();
42877        // Safety: drops once, never accessed again
42878        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42879    }
42880}
42881
42882impl fidl::endpoints::Responder for DatagramSocketGetLingerResponder {
42883    type ControlHandle = DatagramSocketControlHandle;
42884
42885    fn control_handle(&self) -> &DatagramSocketControlHandle {
42886        &self.control_handle
42887    }
42888
42889    fn drop_without_shutdown(mut self) {
42890        // Safety: drops once, never accessed again due to mem::forget
42891        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42892        // Prevent Drop from running (which would shut down the channel)
42893        std::mem::forget(self);
42894    }
42895}
42896
42897impl DatagramSocketGetLingerResponder {
42898    /// Sends a response to the FIDL transaction.
42899    ///
42900    /// Sets the channel to shutdown if an error occurs.
42901    pub fn send(
42902        self,
42903        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
42904    ) -> Result<(), fidl::Error> {
42905        let _result = self.send_raw(result);
42906        if _result.is_err() {
42907            self.control_handle.shutdown();
42908        }
42909        self.drop_without_shutdown();
42910        _result
42911    }
42912
42913    /// Similar to "send" but does not shutdown the channel if an error occurs.
42914    pub fn send_no_shutdown_on_err(
42915        self,
42916        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
42917    ) -> Result<(), fidl::Error> {
42918        let _result = self.send_raw(result);
42919        self.drop_without_shutdown();
42920        _result
42921    }
42922
42923    fn send_raw(
42924        &self,
42925        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
42926    ) -> Result<(), fidl::Error> {
42927        self.control_handle.inner.send::<fidl::encoding::ResultType<
42928            BaseSocketGetLingerResponse,
42929            fidl_fuchsia_posix::Errno,
42930        >>(
42931            result,
42932            self.tx_id,
42933            0x48eb20fc5ccb0e45,
42934            fidl::encoding::DynamicFlags::empty(),
42935        )
42936    }
42937}
42938
42939#[must_use = "FIDL methods require a response to be sent"]
42940#[derive(Debug)]
42941pub struct DatagramSocketSetReusePortResponder {
42942    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42943    tx_id: u32,
42944}
42945
42946/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42947/// if the responder is dropped without sending a response, so that the client
42948/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42949impl std::ops::Drop for DatagramSocketSetReusePortResponder {
42950    fn drop(&mut self) {
42951        self.control_handle.shutdown();
42952        // Safety: drops once, never accessed again
42953        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42954    }
42955}
42956
42957impl fidl::endpoints::Responder for DatagramSocketSetReusePortResponder {
42958    type ControlHandle = DatagramSocketControlHandle;
42959
42960    fn control_handle(&self) -> &DatagramSocketControlHandle {
42961        &self.control_handle
42962    }
42963
42964    fn drop_without_shutdown(mut self) {
42965        // Safety: drops once, never accessed again due to mem::forget
42966        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42967        // Prevent Drop from running (which would shut down the channel)
42968        std::mem::forget(self);
42969    }
42970}
42971
42972impl DatagramSocketSetReusePortResponder {
42973    /// Sends a response to the FIDL transaction.
42974    ///
42975    /// Sets the channel to shutdown if an error occurs.
42976    pub fn send(
42977        self,
42978        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42979    ) -> Result<(), fidl::Error> {
42980        let _result = self.send_raw(result);
42981        if _result.is_err() {
42982            self.control_handle.shutdown();
42983        }
42984        self.drop_without_shutdown();
42985        _result
42986    }
42987
42988    /// Similar to "send" but does not shutdown the channel if an error occurs.
42989    pub fn send_no_shutdown_on_err(
42990        self,
42991        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42992    ) -> Result<(), fidl::Error> {
42993        let _result = self.send_raw(result);
42994        self.drop_without_shutdown();
42995        _result
42996    }
42997
42998    fn send_raw(
42999        &self,
43000        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43001    ) -> Result<(), fidl::Error> {
43002        self.control_handle.inner.send::<fidl::encoding::ResultType<
43003            fidl::encoding::EmptyStruct,
43004            fidl_fuchsia_posix::Errno,
43005        >>(
43006            result,
43007            self.tx_id,
43008            0x24dd3e5cb36d9ccb,
43009            fidl::encoding::DynamicFlags::empty(),
43010        )
43011    }
43012}
43013
43014#[must_use = "FIDL methods require a response to be sent"]
43015#[derive(Debug)]
43016pub struct DatagramSocketGetReusePortResponder {
43017    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43018    tx_id: u32,
43019}
43020
43021/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43022/// if the responder is dropped without sending a response, so that the client
43023/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43024impl std::ops::Drop for DatagramSocketGetReusePortResponder {
43025    fn drop(&mut self) {
43026        self.control_handle.shutdown();
43027        // Safety: drops once, never accessed again
43028        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43029    }
43030}
43031
43032impl fidl::endpoints::Responder for DatagramSocketGetReusePortResponder {
43033    type ControlHandle = DatagramSocketControlHandle;
43034
43035    fn control_handle(&self) -> &DatagramSocketControlHandle {
43036        &self.control_handle
43037    }
43038
43039    fn drop_without_shutdown(mut self) {
43040        // Safety: drops once, never accessed again due to mem::forget
43041        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43042        // Prevent Drop from running (which would shut down the channel)
43043        std::mem::forget(self);
43044    }
43045}
43046
43047impl DatagramSocketGetReusePortResponder {
43048    /// Sends a response to the FIDL transaction.
43049    ///
43050    /// Sets the channel to shutdown if an error occurs.
43051    pub fn send(
43052        self,
43053        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
43054    ) -> Result<(), fidl::Error> {
43055        let _result = self.send_raw(result);
43056        if _result.is_err() {
43057            self.control_handle.shutdown();
43058        }
43059        self.drop_without_shutdown();
43060        _result
43061    }
43062
43063    /// Similar to "send" but does not shutdown the channel if an error occurs.
43064    pub fn send_no_shutdown_on_err(
43065        self,
43066        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
43067    ) -> Result<(), fidl::Error> {
43068        let _result = self.send_raw(result);
43069        self.drop_without_shutdown();
43070        _result
43071    }
43072
43073    fn send_raw(
43074        &self,
43075        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
43076    ) -> Result<(), fidl::Error> {
43077        self.control_handle.inner.send::<fidl::encoding::ResultType<
43078            BaseSocketGetReusePortResponse,
43079            fidl_fuchsia_posix::Errno,
43080        >>(
43081            result.map(|value| (value,)),
43082            self.tx_id,
43083            0x7a112c1ab54ff828,
43084            fidl::encoding::DynamicFlags::empty(),
43085        )
43086    }
43087}
43088
43089#[must_use = "FIDL methods require a response to be sent"]
43090#[derive(Debug)]
43091pub struct DatagramSocketGetAcceptConnResponder {
43092    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43093    tx_id: u32,
43094}
43095
43096/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43097/// if the responder is dropped without sending a response, so that the client
43098/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43099impl std::ops::Drop for DatagramSocketGetAcceptConnResponder {
43100    fn drop(&mut self) {
43101        self.control_handle.shutdown();
43102        // Safety: drops once, never accessed again
43103        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43104    }
43105}
43106
43107impl fidl::endpoints::Responder for DatagramSocketGetAcceptConnResponder {
43108    type ControlHandle = DatagramSocketControlHandle;
43109
43110    fn control_handle(&self) -> &DatagramSocketControlHandle {
43111        &self.control_handle
43112    }
43113
43114    fn drop_without_shutdown(mut self) {
43115        // Safety: drops once, never accessed again due to mem::forget
43116        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43117        // Prevent Drop from running (which would shut down the channel)
43118        std::mem::forget(self);
43119    }
43120}
43121
43122impl DatagramSocketGetAcceptConnResponder {
43123    /// Sends a response to the FIDL transaction.
43124    ///
43125    /// Sets the channel to shutdown if an error occurs.
43126    pub fn send(
43127        self,
43128        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
43129    ) -> Result<(), fidl::Error> {
43130        let _result = self.send_raw(result);
43131        if _result.is_err() {
43132            self.control_handle.shutdown();
43133        }
43134        self.drop_without_shutdown();
43135        _result
43136    }
43137
43138    /// Similar to "send" but does not shutdown the channel if an error occurs.
43139    pub fn send_no_shutdown_on_err(
43140        self,
43141        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
43142    ) -> Result<(), fidl::Error> {
43143        let _result = self.send_raw(result);
43144        self.drop_without_shutdown();
43145        _result
43146    }
43147
43148    fn send_raw(
43149        &self,
43150        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
43151    ) -> Result<(), fidl::Error> {
43152        self.control_handle.inner.send::<fidl::encoding::ResultType<
43153            BaseSocketGetAcceptConnResponse,
43154            fidl_fuchsia_posix::Errno,
43155        >>(
43156            result.map(|value| (value,)),
43157            self.tx_id,
43158            0x67ce6db6c2ec8966,
43159            fidl::encoding::DynamicFlags::empty(),
43160        )
43161    }
43162}
43163
43164#[must_use = "FIDL methods require a response to be sent"]
43165#[derive(Debug)]
43166pub struct DatagramSocketSetBindToDeviceResponder {
43167    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43168    tx_id: u32,
43169}
43170
43171/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43172/// if the responder is dropped without sending a response, so that the client
43173/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43174impl std::ops::Drop for DatagramSocketSetBindToDeviceResponder {
43175    fn drop(&mut self) {
43176        self.control_handle.shutdown();
43177        // Safety: drops once, never accessed again
43178        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43179    }
43180}
43181
43182impl fidl::endpoints::Responder for DatagramSocketSetBindToDeviceResponder {
43183    type ControlHandle = DatagramSocketControlHandle;
43184
43185    fn control_handle(&self) -> &DatagramSocketControlHandle {
43186        &self.control_handle
43187    }
43188
43189    fn drop_without_shutdown(mut self) {
43190        // Safety: drops once, never accessed again due to mem::forget
43191        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43192        // Prevent Drop from running (which would shut down the channel)
43193        std::mem::forget(self);
43194    }
43195}
43196
43197impl DatagramSocketSetBindToDeviceResponder {
43198    /// Sends a response to the FIDL transaction.
43199    ///
43200    /// Sets the channel to shutdown if an error occurs.
43201    pub fn send(
43202        self,
43203        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43204    ) -> Result<(), fidl::Error> {
43205        let _result = self.send_raw(result);
43206        if _result.is_err() {
43207            self.control_handle.shutdown();
43208        }
43209        self.drop_without_shutdown();
43210        _result
43211    }
43212
43213    /// Similar to "send" but does not shutdown the channel if an error occurs.
43214    pub fn send_no_shutdown_on_err(
43215        self,
43216        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43217    ) -> Result<(), fidl::Error> {
43218        let _result = self.send_raw(result);
43219        self.drop_without_shutdown();
43220        _result
43221    }
43222
43223    fn send_raw(
43224        &self,
43225        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43226    ) -> Result<(), fidl::Error> {
43227        self.control_handle.inner.send::<fidl::encoding::ResultType<
43228            fidl::encoding::EmptyStruct,
43229            fidl_fuchsia_posix::Errno,
43230        >>(
43231            result,
43232            self.tx_id,
43233            0x2118b483f28aafc4,
43234            fidl::encoding::DynamicFlags::empty(),
43235        )
43236    }
43237}
43238
43239#[must_use = "FIDL methods require a response to be sent"]
43240#[derive(Debug)]
43241pub struct DatagramSocketGetBindToDeviceResponder {
43242    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43243    tx_id: u32,
43244}
43245
43246/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43247/// if the responder is dropped without sending a response, so that the client
43248/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43249impl std::ops::Drop for DatagramSocketGetBindToDeviceResponder {
43250    fn drop(&mut self) {
43251        self.control_handle.shutdown();
43252        // Safety: drops once, never accessed again
43253        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43254    }
43255}
43256
43257impl fidl::endpoints::Responder for DatagramSocketGetBindToDeviceResponder {
43258    type ControlHandle = DatagramSocketControlHandle;
43259
43260    fn control_handle(&self) -> &DatagramSocketControlHandle {
43261        &self.control_handle
43262    }
43263
43264    fn drop_without_shutdown(mut self) {
43265        // Safety: drops once, never accessed again due to mem::forget
43266        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43267        // Prevent Drop from running (which would shut down the channel)
43268        std::mem::forget(self);
43269    }
43270}
43271
43272impl DatagramSocketGetBindToDeviceResponder {
43273    /// Sends a response to the FIDL transaction.
43274    ///
43275    /// Sets the channel to shutdown if an error occurs.
43276    pub fn send(
43277        self,
43278        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
43279    ) -> Result<(), fidl::Error> {
43280        let _result = self.send_raw(result);
43281        if _result.is_err() {
43282            self.control_handle.shutdown();
43283        }
43284        self.drop_without_shutdown();
43285        _result
43286    }
43287
43288    /// Similar to "send" but does not shutdown the channel if an error occurs.
43289    pub fn send_no_shutdown_on_err(
43290        self,
43291        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
43292    ) -> Result<(), fidl::Error> {
43293        let _result = self.send_raw(result);
43294        self.drop_without_shutdown();
43295        _result
43296    }
43297
43298    fn send_raw(
43299        &self,
43300        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
43301    ) -> Result<(), fidl::Error> {
43302        self.control_handle.inner.send::<fidl::encoding::ResultType<
43303            BaseSocketGetBindToDeviceResponse,
43304            fidl_fuchsia_posix::Errno,
43305        >>(
43306            result.map(|value| (value,)),
43307            self.tx_id,
43308            0x1ab1fbf0ef7906c8,
43309            fidl::encoding::DynamicFlags::empty(),
43310        )
43311    }
43312}
43313
43314#[must_use = "FIDL methods require a response to be sent"]
43315#[derive(Debug)]
43316pub struct DatagramSocketSetBindToInterfaceIndexResponder {
43317    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43318    tx_id: u32,
43319}
43320
43321/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43322/// if the responder is dropped without sending a response, so that the client
43323/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43324impl std::ops::Drop for DatagramSocketSetBindToInterfaceIndexResponder {
43325    fn drop(&mut self) {
43326        self.control_handle.shutdown();
43327        // Safety: drops once, never accessed again
43328        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43329    }
43330}
43331
43332impl fidl::endpoints::Responder for DatagramSocketSetBindToInterfaceIndexResponder {
43333    type ControlHandle = DatagramSocketControlHandle;
43334
43335    fn control_handle(&self) -> &DatagramSocketControlHandle {
43336        &self.control_handle
43337    }
43338
43339    fn drop_without_shutdown(mut self) {
43340        // Safety: drops once, never accessed again due to mem::forget
43341        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43342        // Prevent Drop from running (which would shut down the channel)
43343        std::mem::forget(self);
43344    }
43345}
43346
43347impl DatagramSocketSetBindToInterfaceIndexResponder {
43348    /// Sends a response to the FIDL transaction.
43349    ///
43350    /// Sets the channel to shutdown if an error occurs.
43351    pub fn send(
43352        self,
43353        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43354    ) -> Result<(), fidl::Error> {
43355        let _result = self.send_raw(result);
43356        if _result.is_err() {
43357            self.control_handle.shutdown();
43358        }
43359        self.drop_without_shutdown();
43360        _result
43361    }
43362
43363    /// Similar to "send" but does not shutdown the channel if an error occurs.
43364    pub fn send_no_shutdown_on_err(
43365        self,
43366        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43367    ) -> Result<(), fidl::Error> {
43368        let _result = self.send_raw(result);
43369        self.drop_without_shutdown();
43370        _result
43371    }
43372
43373    fn send_raw(
43374        &self,
43375        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43376    ) -> Result<(), fidl::Error> {
43377        self.control_handle.inner.send::<fidl::encoding::ResultType<
43378            fidl::encoding::EmptyStruct,
43379            fidl_fuchsia_posix::Errno,
43380        >>(
43381            result,
43382            self.tx_id,
43383            0x6e387a0def00821,
43384            fidl::encoding::DynamicFlags::empty(),
43385        )
43386    }
43387}
43388
43389#[must_use = "FIDL methods require a response to be sent"]
43390#[derive(Debug)]
43391pub struct DatagramSocketGetBindToInterfaceIndexResponder {
43392    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43393    tx_id: u32,
43394}
43395
43396/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43397/// if the responder is dropped without sending a response, so that the client
43398/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43399impl std::ops::Drop for DatagramSocketGetBindToInterfaceIndexResponder {
43400    fn drop(&mut self) {
43401        self.control_handle.shutdown();
43402        // Safety: drops once, never accessed again
43403        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43404    }
43405}
43406
43407impl fidl::endpoints::Responder for DatagramSocketGetBindToInterfaceIndexResponder {
43408    type ControlHandle = DatagramSocketControlHandle;
43409
43410    fn control_handle(&self) -> &DatagramSocketControlHandle {
43411        &self.control_handle
43412    }
43413
43414    fn drop_without_shutdown(mut self) {
43415        // Safety: drops once, never accessed again due to mem::forget
43416        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43417        // Prevent Drop from running (which would shut down the channel)
43418        std::mem::forget(self);
43419    }
43420}
43421
43422impl DatagramSocketGetBindToInterfaceIndexResponder {
43423    /// Sends a response to the FIDL transaction.
43424    ///
43425    /// Sets the channel to shutdown if an error occurs.
43426    pub fn send(
43427        self,
43428        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
43429    ) -> Result<(), fidl::Error> {
43430        let _result = self.send_raw(result);
43431        if _result.is_err() {
43432            self.control_handle.shutdown();
43433        }
43434        self.drop_without_shutdown();
43435        _result
43436    }
43437
43438    /// Similar to "send" but does not shutdown the channel if an error occurs.
43439    pub fn send_no_shutdown_on_err(
43440        self,
43441        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
43442    ) -> Result<(), fidl::Error> {
43443        let _result = self.send_raw(result);
43444        self.drop_without_shutdown();
43445        _result
43446    }
43447
43448    fn send_raw(
43449        &self,
43450        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
43451    ) -> Result<(), fidl::Error> {
43452        self.control_handle.inner.send::<fidl::encoding::ResultType<
43453            BaseSocketGetBindToInterfaceIndexResponse,
43454            fidl_fuchsia_posix::Errno,
43455        >>(
43456            result.map(|value| (value,)),
43457            self.tx_id,
43458            0x59c31dd3e3078295,
43459            fidl::encoding::DynamicFlags::empty(),
43460        )
43461    }
43462}
43463
43464#[must_use = "FIDL methods require a response to be sent"]
43465#[derive(Debug)]
43466pub struct DatagramSocketSetTimestampResponder {
43467    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43468    tx_id: u32,
43469}
43470
43471/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43472/// if the responder is dropped without sending a response, so that the client
43473/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43474impl std::ops::Drop for DatagramSocketSetTimestampResponder {
43475    fn drop(&mut self) {
43476        self.control_handle.shutdown();
43477        // Safety: drops once, never accessed again
43478        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43479    }
43480}
43481
43482impl fidl::endpoints::Responder for DatagramSocketSetTimestampResponder {
43483    type ControlHandle = DatagramSocketControlHandle;
43484
43485    fn control_handle(&self) -> &DatagramSocketControlHandle {
43486        &self.control_handle
43487    }
43488
43489    fn drop_without_shutdown(mut self) {
43490        // Safety: drops once, never accessed again due to mem::forget
43491        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43492        // Prevent Drop from running (which would shut down the channel)
43493        std::mem::forget(self);
43494    }
43495}
43496
43497impl DatagramSocketSetTimestampResponder {
43498    /// Sends a response to the FIDL transaction.
43499    ///
43500    /// Sets the channel to shutdown if an error occurs.
43501    pub fn send(
43502        self,
43503        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43504    ) -> Result<(), fidl::Error> {
43505        let _result = self.send_raw(result);
43506        if _result.is_err() {
43507            self.control_handle.shutdown();
43508        }
43509        self.drop_without_shutdown();
43510        _result
43511    }
43512
43513    /// Similar to "send" but does not shutdown the channel if an error occurs.
43514    pub fn send_no_shutdown_on_err(
43515        self,
43516        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43517    ) -> Result<(), fidl::Error> {
43518        let _result = self.send_raw(result);
43519        self.drop_without_shutdown();
43520        _result
43521    }
43522
43523    fn send_raw(
43524        &self,
43525        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43526    ) -> Result<(), fidl::Error> {
43527        self.control_handle.inner.send::<fidl::encoding::ResultType<
43528            fidl::encoding::EmptyStruct,
43529            fidl_fuchsia_posix::Errno,
43530        >>(
43531            result,
43532            self.tx_id,
43533            0x285d6516c263d839,
43534            fidl::encoding::DynamicFlags::empty(),
43535        )
43536    }
43537}
43538
43539#[must_use = "FIDL methods require a response to be sent"]
43540#[derive(Debug)]
43541pub struct DatagramSocketGetTimestampResponder {
43542    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43543    tx_id: u32,
43544}
43545
43546/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43547/// if the responder is dropped without sending a response, so that the client
43548/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43549impl std::ops::Drop for DatagramSocketGetTimestampResponder {
43550    fn drop(&mut self) {
43551        self.control_handle.shutdown();
43552        // Safety: drops once, never accessed again
43553        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43554    }
43555}
43556
43557impl fidl::endpoints::Responder for DatagramSocketGetTimestampResponder {
43558    type ControlHandle = DatagramSocketControlHandle;
43559
43560    fn control_handle(&self) -> &DatagramSocketControlHandle {
43561        &self.control_handle
43562    }
43563
43564    fn drop_without_shutdown(mut self) {
43565        // Safety: drops once, never accessed again due to mem::forget
43566        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43567        // Prevent Drop from running (which would shut down the channel)
43568        std::mem::forget(self);
43569    }
43570}
43571
43572impl DatagramSocketGetTimestampResponder {
43573    /// Sends a response to the FIDL transaction.
43574    ///
43575    /// Sets the channel to shutdown if an error occurs.
43576    pub fn send(
43577        self,
43578        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
43579    ) -> Result<(), fidl::Error> {
43580        let _result = self.send_raw(result);
43581        if _result.is_err() {
43582            self.control_handle.shutdown();
43583        }
43584        self.drop_without_shutdown();
43585        _result
43586    }
43587
43588    /// Similar to "send" but does not shutdown the channel if an error occurs.
43589    pub fn send_no_shutdown_on_err(
43590        self,
43591        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
43592    ) -> Result<(), fidl::Error> {
43593        let _result = self.send_raw(result);
43594        self.drop_without_shutdown();
43595        _result
43596    }
43597
43598    fn send_raw(
43599        &self,
43600        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
43601    ) -> Result<(), fidl::Error> {
43602        self.control_handle.inner.send::<fidl::encoding::ResultType<
43603            BaseSocketGetTimestampResponse,
43604            fidl_fuchsia_posix::Errno,
43605        >>(
43606            result.map(|value| (value,)),
43607            self.tx_id,
43608            0x49f2fffbbcc2bd27,
43609            fidl::encoding::DynamicFlags::empty(),
43610        )
43611    }
43612}
43613
43614#[must_use = "FIDL methods require a response to be sent"]
43615#[derive(Debug)]
43616pub struct DatagramSocketSetMarkResponder {
43617    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43618    tx_id: u32,
43619}
43620
43621/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43622/// if the responder is dropped without sending a response, so that the client
43623/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43624impl std::ops::Drop for DatagramSocketSetMarkResponder {
43625    fn drop(&mut self) {
43626        self.control_handle.shutdown();
43627        // Safety: drops once, never accessed again
43628        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43629    }
43630}
43631
43632impl fidl::endpoints::Responder for DatagramSocketSetMarkResponder {
43633    type ControlHandle = DatagramSocketControlHandle;
43634
43635    fn control_handle(&self) -> &DatagramSocketControlHandle {
43636        &self.control_handle
43637    }
43638
43639    fn drop_without_shutdown(mut self) {
43640        // Safety: drops once, never accessed again due to mem::forget
43641        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43642        // Prevent Drop from running (which would shut down the channel)
43643        std::mem::forget(self);
43644    }
43645}
43646
43647impl DatagramSocketSetMarkResponder {
43648    /// Sends a response to the FIDL transaction.
43649    ///
43650    /// Sets the channel to shutdown if an error occurs.
43651    pub fn send(
43652        self,
43653        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43654    ) -> Result<(), fidl::Error> {
43655        let _result = self.send_raw(result);
43656        if _result.is_err() {
43657            self.control_handle.shutdown();
43658        }
43659        self.drop_without_shutdown();
43660        _result
43661    }
43662
43663    /// Similar to "send" but does not shutdown the channel if an error occurs.
43664    pub fn send_no_shutdown_on_err(
43665        self,
43666        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43667    ) -> Result<(), fidl::Error> {
43668        let _result = self.send_raw(result);
43669        self.drop_without_shutdown();
43670        _result
43671    }
43672
43673    fn send_raw(
43674        &self,
43675        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43676    ) -> Result<(), fidl::Error> {
43677        self.control_handle.inner.send::<fidl::encoding::ResultType<
43678            fidl::encoding::EmptyStruct,
43679            fidl_fuchsia_posix::Errno,
43680        >>(
43681            result,
43682            self.tx_id,
43683            0x6ead6de09f653236,
43684            fidl::encoding::DynamicFlags::empty(),
43685        )
43686    }
43687}
43688
43689#[must_use = "FIDL methods require a response to be sent"]
43690#[derive(Debug)]
43691pub struct DatagramSocketGetMarkResponder {
43692    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43693    tx_id: u32,
43694}
43695
43696/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43697/// if the responder is dropped without sending a response, so that the client
43698/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43699impl std::ops::Drop for DatagramSocketGetMarkResponder {
43700    fn drop(&mut self) {
43701        self.control_handle.shutdown();
43702        // Safety: drops once, never accessed again
43703        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43704    }
43705}
43706
43707impl fidl::endpoints::Responder for DatagramSocketGetMarkResponder {
43708    type ControlHandle = DatagramSocketControlHandle;
43709
43710    fn control_handle(&self) -> &DatagramSocketControlHandle {
43711        &self.control_handle
43712    }
43713
43714    fn drop_without_shutdown(mut self) {
43715        // Safety: drops once, never accessed again due to mem::forget
43716        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43717        // Prevent Drop from running (which would shut down the channel)
43718        std::mem::forget(self);
43719    }
43720}
43721
43722impl DatagramSocketGetMarkResponder {
43723    /// Sends a response to the FIDL transaction.
43724    ///
43725    /// Sets the channel to shutdown if an error occurs.
43726    pub fn send(
43727        self,
43728        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
43729    ) -> Result<(), fidl::Error> {
43730        let _result = self.send_raw(result);
43731        if _result.is_err() {
43732            self.control_handle.shutdown();
43733        }
43734        self.drop_without_shutdown();
43735        _result
43736    }
43737
43738    /// Similar to "send" but does not shutdown the channel if an error occurs.
43739    pub fn send_no_shutdown_on_err(
43740        self,
43741        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
43742    ) -> Result<(), fidl::Error> {
43743        let _result = self.send_raw(result);
43744        self.drop_without_shutdown();
43745        _result
43746    }
43747
43748    fn send_raw(
43749        &self,
43750        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
43751    ) -> Result<(), fidl::Error> {
43752        self.control_handle.inner.send::<fidl::encoding::ResultType<
43753            BaseSocketGetMarkResponse,
43754            fidl_fuchsia_posix::Errno,
43755        >>(
43756            result.map(|mark| (mark,)),
43757            self.tx_id,
43758            0x57a2752c61d93d47,
43759            fidl::encoding::DynamicFlags::empty(),
43760        )
43761    }
43762}
43763
43764#[must_use = "FIDL methods require a response to be sent"]
43765#[derive(Debug)]
43766pub struct DatagramSocketGetCookieResponder {
43767    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43768    tx_id: u32,
43769}
43770
43771/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43772/// if the responder is dropped without sending a response, so that the client
43773/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43774impl std::ops::Drop for DatagramSocketGetCookieResponder {
43775    fn drop(&mut self) {
43776        self.control_handle.shutdown();
43777        // Safety: drops once, never accessed again
43778        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43779    }
43780}
43781
43782impl fidl::endpoints::Responder for DatagramSocketGetCookieResponder {
43783    type ControlHandle = DatagramSocketControlHandle;
43784
43785    fn control_handle(&self) -> &DatagramSocketControlHandle {
43786        &self.control_handle
43787    }
43788
43789    fn drop_without_shutdown(mut self) {
43790        // Safety: drops once, never accessed again due to mem::forget
43791        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43792        // Prevent Drop from running (which would shut down the channel)
43793        std::mem::forget(self);
43794    }
43795}
43796
43797impl DatagramSocketGetCookieResponder {
43798    /// Sends a response to the FIDL transaction.
43799    ///
43800    /// Sets the channel to shutdown if an error occurs.
43801    pub fn send(
43802        self,
43803        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
43804    ) -> Result<(), fidl::Error> {
43805        let _result = self.send_raw(result);
43806        if _result.is_err() {
43807            self.control_handle.shutdown();
43808        }
43809        self.drop_without_shutdown();
43810        _result
43811    }
43812
43813    /// Similar to "send" but does not shutdown the channel if an error occurs.
43814    pub fn send_no_shutdown_on_err(
43815        self,
43816        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
43817    ) -> Result<(), fidl::Error> {
43818        let _result = self.send_raw(result);
43819        self.drop_without_shutdown();
43820        _result
43821    }
43822
43823    fn send_raw(
43824        &self,
43825        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
43826    ) -> Result<(), fidl::Error> {
43827        self.control_handle.inner.send::<fidl::encoding::ResultType<
43828            BaseSocketGetCookieResponse,
43829            fidl_fuchsia_posix::Errno,
43830        >>(
43831            result.map(|value| (value,)),
43832            self.tx_id,
43833            0x2c2f47fd8f924e52,
43834            fidl::encoding::DynamicFlags::empty(),
43835        )
43836    }
43837}
43838
43839#[must_use = "FIDL methods require a response to be sent"]
43840#[derive(Debug)]
43841pub struct DatagramSocketBindResponder {
43842    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43843    tx_id: u32,
43844}
43845
43846/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43847/// if the responder is dropped without sending a response, so that the client
43848/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43849impl std::ops::Drop for DatagramSocketBindResponder {
43850    fn drop(&mut self) {
43851        self.control_handle.shutdown();
43852        // Safety: drops once, never accessed again
43853        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43854    }
43855}
43856
43857impl fidl::endpoints::Responder for DatagramSocketBindResponder {
43858    type ControlHandle = DatagramSocketControlHandle;
43859
43860    fn control_handle(&self) -> &DatagramSocketControlHandle {
43861        &self.control_handle
43862    }
43863
43864    fn drop_without_shutdown(mut self) {
43865        // Safety: drops once, never accessed again due to mem::forget
43866        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43867        // Prevent Drop from running (which would shut down the channel)
43868        std::mem::forget(self);
43869    }
43870}
43871
43872impl DatagramSocketBindResponder {
43873    /// Sends a response to the FIDL transaction.
43874    ///
43875    /// Sets the channel to shutdown if an error occurs.
43876    pub fn send(
43877        self,
43878        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43879    ) -> Result<(), fidl::Error> {
43880        let _result = self.send_raw(result);
43881        if _result.is_err() {
43882            self.control_handle.shutdown();
43883        }
43884        self.drop_without_shutdown();
43885        _result
43886    }
43887
43888    /// Similar to "send" but does not shutdown the channel if an error occurs.
43889    pub fn send_no_shutdown_on_err(
43890        self,
43891        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43892    ) -> Result<(), fidl::Error> {
43893        let _result = self.send_raw(result);
43894        self.drop_without_shutdown();
43895        _result
43896    }
43897
43898    fn send_raw(
43899        &self,
43900        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43901    ) -> Result<(), fidl::Error> {
43902        self.control_handle.inner.send::<fidl::encoding::ResultType<
43903            fidl::encoding::EmptyStruct,
43904            fidl_fuchsia_posix::Errno,
43905        >>(
43906            result,
43907            self.tx_id,
43908            0x4bc6400ae92125d,
43909            fidl::encoding::DynamicFlags::empty(),
43910        )
43911    }
43912}
43913
43914#[must_use = "FIDL methods require a response to be sent"]
43915#[derive(Debug)]
43916pub struct DatagramSocketConnectResponder {
43917    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43918    tx_id: u32,
43919}
43920
43921/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43922/// if the responder is dropped without sending a response, so that the client
43923/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43924impl std::ops::Drop for DatagramSocketConnectResponder {
43925    fn drop(&mut self) {
43926        self.control_handle.shutdown();
43927        // Safety: drops once, never accessed again
43928        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43929    }
43930}
43931
43932impl fidl::endpoints::Responder for DatagramSocketConnectResponder {
43933    type ControlHandle = DatagramSocketControlHandle;
43934
43935    fn control_handle(&self) -> &DatagramSocketControlHandle {
43936        &self.control_handle
43937    }
43938
43939    fn drop_without_shutdown(mut self) {
43940        // Safety: drops once, never accessed again due to mem::forget
43941        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43942        // Prevent Drop from running (which would shut down the channel)
43943        std::mem::forget(self);
43944    }
43945}
43946
43947impl DatagramSocketConnectResponder {
43948    /// Sends a response to the FIDL transaction.
43949    ///
43950    /// Sets the channel to shutdown if an error occurs.
43951    pub fn send(
43952        self,
43953        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43954    ) -> Result<(), fidl::Error> {
43955        let _result = self.send_raw(result);
43956        if _result.is_err() {
43957            self.control_handle.shutdown();
43958        }
43959        self.drop_without_shutdown();
43960        _result
43961    }
43962
43963    /// Similar to "send" but does not shutdown the channel if an error occurs.
43964    pub fn send_no_shutdown_on_err(
43965        self,
43966        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43967    ) -> Result<(), fidl::Error> {
43968        let _result = self.send_raw(result);
43969        self.drop_without_shutdown();
43970        _result
43971    }
43972
43973    fn send_raw(
43974        &self,
43975        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43976    ) -> Result<(), fidl::Error> {
43977        self.control_handle.inner.send::<fidl::encoding::ResultType<
43978            fidl::encoding::EmptyStruct,
43979            fidl_fuchsia_posix::Errno,
43980        >>(
43981            result,
43982            self.tx_id,
43983            0x5f05f19bfdd38871,
43984            fidl::encoding::DynamicFlags::empty(),
43985        )
43986    }
43987}
43988
43989#[must_use = "FIDL methods require a response to be sent"]
43990#[derive(Debug)]
43991pub struct DatagramSocketDisconnectResponder {
43992    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43993    tx_id: u32,
43994}
43995
43996/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43997/// if the responder is dropped without sending a response, so that the client
43998/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43999impl std::ops::Drop for DatagramSocketDisconnectResponder {
44000    fn drop(&mut self) {
44001        self.control_handle.shutdown();
44002        // Safety: drops once, never accessed again
44003        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44004    }
44005}
44006
44007impl fidl::endpoints::Responder for DatagramSocketDisconnectResponder {
44008    type ControlHandle = DatagramSocketControlHandle;
44009
44010    fn control_handle(&self) -> &DatagramSocketControlHandle {
44011        &self.control_handle
44012    }
44013
44014    fn drop_without_shutdown(mut self) {
44015        // Safety: drops once, never accessed again due to mem::forget
44016        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44017        // Prevent Drop from running (which would shut down the channel)
44018        std::mem::forget(self);
44019    }
44020}
44021
44022impl DatagramSocketDisconnectResponder {
44023    /// Sends a response to the FIDL transaction.
44024    ///
44025    /// Sets the channel to shutdown if an error occurs.
44026    pub fn send(
44027        self,
44028        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44029    ) -> Result<(), fidl::Error> {
44030        let _result = self.send_raw(result);
44031        if _result.is_err() {
44032            self.control_handle.shutdown();
44033        }
44034        self.drop_without_shutdown();
44035        _result
44036    }
44037
44038    /// Similar to "send" but does not shutdown the channel if an error occurs.
44039    pub fn send_no_shutdown_on_err(
44040        self,
44041        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44042    ) -> Result<(), fidl::Error> {
44043        let _result = self.send_raw(result);
44044        self.drop_without_shutdown();
44045        _result
44046    }
44047
44048    fn send_raw(
44049        &self,
44050        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44051    ) -> Result<(), fidl::Error> {
44052        self.control_handle.inner.send::<fidl::encoding::ResultType<
44053            fidl::encoding::EmptyStruct,
44054            fidl_fuchsia_posix::Errno,
44055        >>(
44056            result,
44057            self.tx_id,
44058            0x74e63b91f7b29b2,
44059            fidl::encoding::DynamicFlags::empty(),
44060        )
44061    }
44062}
44063
44064#[must_use = "FIDL methods require a response to be sent"]
44065#[derive(Debug)]
44066pub struct DatagramSocketGetSockNameResponder {
44067    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44068    tx_id: u32,
44069}
44070
44071/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44072/// if the responder is dropped without sending a response, so that the client
44073/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44074impl std::ops::Drop for DatagramSocketGetSockNameResponder {
44075    fn drop(&mut self) {
44076        self.control_handle.shutdown();
44077        // Safety: drops once, never accessed again
44078        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44079    }
44080}
44081
44082impl fidl::endpoints::Responder for DatagramSocketGetSockNameResponder {
44083    type ControlHandle = DatagramSocketControlHandle;
44084
44085    fn control_handle(&self) -> &DatagramSocketControlHandle {
44086        &self.control_handle
44087    }
44088
44089    fn drop_without_shutdown(mut self) {
44090        // Safety: drops once, never accessed again due to mem::forget
44091        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44092        // Prevent Drop from running (which would shut down the channel)
44093        std::mem::forget(self);
44094    }
44095}
44096
44097impl DatagramSocketGetSockNameResponder {
44098    /// Sends a response to the FIDL transaction.
44099    ///
44100    /// Sets the channel to shutdown if an error occurs.
44101    pub fn send(
44102        self,
44103        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
44104    ) -> Result<(), fidl::Error> {
44105        let _result = self.send_raw(result);
44106        if _result.is_err() {
44107            self.control_handle.shutdown();
44108        }
44109        self.drop_without_shutdown();
44110        _result
44111    }
44112
44113    /// Similar to "send" but does not shutdown the channel if an error occurs.
44114    pub fn send_no_shutdown_on_err(
44115        self,
44116        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
44117    ) -> Result<(), fidl::Error> {
44118        let _result = self.send_raw(result);
44119        self.drop_without_shutdown();
44120        _result
44121    }
44122
44123    fn send_raw(
44124        &self,
44125        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
44126    ) -> Result<(), fidl::Error> {
44127        self.control_handle.inner.send::<fidl::encoding::ResultType<
44128            BaseNetworkSocketGetSockNameResponse,
44129            fidl_fuchsia_posix::Errno,
44130        >>(
44131            result.map(|addr| (addr,)),
44132            self.tx_id,
44133            0x475f23f84a1a4f85,
44134            fidl::encoding::DynamicFlags::empty(),
44135        )
44136    }
44137}
44138
44139#[must_use = "FIDL methods require a response to be sent"]
44140#[derive(Debug)]
44141pub struct DatagramSocketGetPeerNameResponder {
44142    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44143    tx_id: u32,
44144}
44145
44146/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44147/// if the responder is dropped without sending a response, so that the client
44148/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44149impl std::ops::Drop for DatagramSocketGetPeerNameResponder {
44150    fn drop(&mut self) {
44151        self.control_handle.shutdown();
44152        // Safety: drops once, never accessed again
44153        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44154    }
44155}
44156
44157impl fidl::endpoints::Responder for DatagramSocketGetPeerNameResponder {
44158    type ControlHandle = DatagramSocketControlHandle;
44159
44160    fn control_handle(&self) -> &DatagramSocketControlHandle {
44161        &self.control_handle
44162    }
44163
44164    fn drop_without_shutdown(mut self) {
44165        // Safety: drops once, never accessed again due to mem::forget
44166        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44167        // Prevent Drop from running (which would shut down the channel)
44168        std::mem::forget(self);
44169    }
44170}
44171
44172impl DatagramSocketGetPeerNameResponder {
44173    /// Sends a response to the FIDL transaction.
44174    ///
44175    /// Sets the channel to shutdown if an error occurs.
44176    pub fn send(
44177        self,
44178        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
44179    ) -> Result<(), fidl::Error> {
44180        let _result = self.send_raw(result);
44181        if _result.is_err() {
44182            self.control_handle.shutdown();
44183        }
44184        self.drop_without_shutdown();
44185        _result
44186    }
44187
44188    /// Similar to "send" but does not shutdown the channel if an error occurs.
44189    pub fn send_no_shutdown_on_err(
44190        self,
44191        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
44192    ) -> Result<(), fidl::Error> {
44193        let _result = self.send_raw(result);
44194        self.drop_without_shutdown();
44195        _result
44196    }
44197
44198    fn send_raw(
44199        &self,
44200        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
44201    ) -> Result<(), fidl::Error> {
44202        self.control_handle.inner.send::<fidl::encoding::ResultType<
44203            BaseNetworkSocketGetPeerNameResponse,
44204            fidl_fuchsia_posix::Errno,
44205        >>(
44206            result.map(|addr| (addr,)),
44207            self.tx_id,
44208            0x1ffecf4bd5b6432e,
44209            fidl::encoding::DynamicFlags::empty(),
44210        )
44211    }
44212}
44213
44214#[must_use = "FIDL methods require a response to be sent"]
44215#[derive(Debug)]
44216pub struct DatagramSocketShutdownResponder {
44217    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44218    tx_id: u32,
44219}
44220
44221/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44222/// if the responder is dropped without sending a response, so that the client
44223/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44224impl std::ops::Drop for DatagramSocketShutdownResponder {
44225    fn drop(&mut self) {
44226        self.control_handle.shutdown();
44227        // Safety: drops once, never accessed again
44228        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44229    }
44230}
44231
44232impl fidl::endpoints::Responder for DatagramSocketShutdownResponder {
44233    type ControlHandle = DatagramSocketControlHandle;
44234
44235    fn control_handle(&self) -> &DatagramSocketControlHandle {
44236        &self.control_handle
44237    }
44238
44239    fn drop_without_shutdown(mut self) {
44240        // Safety: drops once, never accessed again due to mem::forget
44241        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44242        // Prevent Drop from running (which would shut down the channel)
44243        std::mem::forget(self);
44244    }
44245}
44246
44247impl DatagramSocketShutdownResponder {
44248    /// Sends a response to the FIDL transaction.
44249    ///
44250    /// Sets the channel to shutdown if an error occurs.
44251    pub fn send(
44252        self,
44253        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44254    ) -> Result<(), fidl::Error> {
44255        let _result = self.send_raw(result);
44256        if _result.is_err() {
44257            self.control_handle.shutdown();
44258        }
44259        self.drop_without_shutdown();
44260        _result
44261    }
44262
44263    /// Similar to "send" but does not shutdown the channel if an error occurs.
44264    pub fn send_no_shutdown_on_err(
44265        self,
44266        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44267    ) -> Result<(), fidl::Error> {
44268        let _result = self.send_raw(result);
44269        self.drop_without_shutdown();
44270        _result
44271    }
44272
44273    fn send_raw(
44274        &self,
44275        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44276    ) -> Result<(), fidl::Error> {
44277        self.control_handle.inner.send::<fidl::encoding::ResultType<
44278            fidl::encoding::EmptyStruct,
44279            fidl_fuchsia_posix::Errno,
44280        >>(
44281            result,
44282            self.tx_id,
44283            0x247f38b6db68c336,
44284            fidl::encoding::DynamicFlags::empty(),
44285        )
44286    }
44287}
44288
44289#[must_use = "FIDL methods require a response to be sent"]
44290#[derive(Debug)]
44291pub struct DatagramSocketSetIpTypeOfServiceResponder {
44292    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44293    tx_id: u32,
44294}
44295
44296/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44297/// if the responder is dropped without sending a response, so that the client
44298/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44299impl std::ops::Drop for DatagramSocketSetIpTypeOfServiceResponder {
44300    fn drop(&mut self) {
44301        self.control_handle.shutdown();
44302        // Safety: drops once, never accessed again
44303        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44304    }
44305}
44306
44307impl fidl::endpoints::Responder for DatagramSocketSetIpTypeOfServiceResponder {
44308    type ControlHandle = DatagramSocketControlHandle;
44309
44310    fn control_handle(&self) -> &DatagramSocketControlHandle {
44311        &self.control_handle
44312    }
44313
44314    fn drop_without_shutdown(mut self) {
44315        // Safety: drops once, never accessed again due to mem::forget
44316        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44317        // Prevent Drop from running (which would shut down the channel)
44318        std::mem::forget(self);
44319    }
44320}
44321
44322impl DatagramSocketSetIpTypeOfServiceResponder {
44323    /// Sends a response to the FIDL transaction.
44324    ///
44325    /// Sets the channel to shutdown if an error occurs.
44326    pub fn send(
44327        self,
44328        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44329    ) -> Result<(), fidl::Error> {
44330        let _result = self.send_raw(result);
44331        if _result.is_err() {
44332            self.control_handle.shutdown();
44333        }
44334        self.drop_without_shutdown();
44335        _result
44336    }
44337
44338    /// Similar to "send" but does not shutdown the channel if an error occurs.
44339    pub fn send_no_shutdown_on_err(
44340        self,
44341        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44342    ) -> Result<(), fidl::Error> {
44343        let _result = self.send_raw(result);
44344        self.drop_without_shutdown();
44345        _result
44346    }
44347
44348    fn send_raw(
44349        &self,
44350        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44351    ) -> Result<(), fidl::Error> {
44352        self.control_handle.inner.send::<fidl::encoding::ResultType<
44353            fidl::encoding::EmptyStruct,
44354            fidl_fuchsia_posix::Errno,
44355        >>(
44356            result,
44357            self.tx_id,
44358            0x995c600475b6d46,
44359            fidl::encoding::DynamicFlags::empty(),
44360        )
44361    }
44362}
44363
44364#[must_use = "FIDL methods require a response to be sent"]
44365#[derive(Debug)]
44366pub struct DatagramSocketGetIpTypeOfServiceResponder {
44367    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44368    tx_id: u32,
44369}
44370
44371/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44372/// if the responder is dropped without sending a response, so that the client
44373/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44374impl std::ops::Drop for DatagramSocketGetIpTypeOfServiceResponder {
44375    fn drop(&mut self) {
44376        self.control_handle.shutdown();
44377        // Safety: drops once, never accessed again
44378        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44379    }
44380}
44381
44382impl fidl::endpoints::Responder for DatagramSocketGetIpTypeOfServiceResponder {
44383    type ControlHandle = DatagramSocketControlHandle;
44384
44385    fn control_handle(&self) -> &DatagramSocketControlHandle {
44386        &self.control_handle
44387    }
44388
44389    fn drop_without_shutdown(mut self) {
44390        // Safety: drops once, never accessed again due to mem::forget
44391        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44392        // Prevent Drop from running (which would shut down the channel)
44393        std::mem::forget(self);
44394    }
44395}
44396
44397impl DatagramSocketGetIpTypeOfServiceResponder {
44398    /// Sends a response to the FIDL transaction.
44399    ///
44400    /// Sets the channel to shutdown if an error occurs.
44401    pub fn send(
44402        self,
44403        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
44404    ) -> Result<(), fidl::Error> {
44405        let _result = self.send_raw(result);
44406        if _result.is_err() {
44407            self.control_handle.shutdown();
44408        }
44409        self.drop_without_shutdown();
44410        _result
44411    }
44412
44413    /// Similar to "send" but does not shutdown the channel if an error occurs.
44414    pub fn send_no_shutdown_on_err(
44415        self,
44416        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
44417    ) -> Result<(), fidl::Error> {
44418        let _result = self.send_raw(result);
44419        self.drop_without_shutdown();
44420        _result
44421    }
44422
44423    fn send_raw(
44424        &self,
44425        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
44426    ) -> Result<(), fidl::Error> {
44427        self.control_handle.inner.send::<fidl::encoding::ResultType<
44428            BaseNetworkSocketGetIpTypeOfServiceResponse,
44429            fidl_fuchsia_posix::Errno,
44430        >>(
44431            result.map(|value| (value,)),
44432            self.tx_id,
44433            0x3814a04259f75fcb,
44434            fidl::encoding::DynamicFlags::empty(),
44435        )
44436    }
44437}
44438
44439#[must_use = "FIDL methods require a response to be sent"]
44440#[derive(Debug)]
44441pub struct DatagramSocketSetIpTtlResponder {
44442    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44443    tx_id: u32,
44444}
44445
44446/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44447/// if the responder is dropped without sending a response, so that the client
44448/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44449impl std::ops::Drop for DatagramSocketSetIpTtlResponder {
44450    fn drop(&mut self) {
44451        self.control_handle.shutdown();
44452        // Safety: drops once, never accessed again
44453        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44454    }
44455}
44456
44457impl fidl::endpoints::Responder for DatagramSocketSetIpTtlResponder {
44458    type ControlHandle = DatagramSocketControlHandle;
44459
44460    fn control_handle(&self) -> &DatagramSocketControlHandle {
44461        &self.control_handle
44462    }
44463
44464    fn drop_without_shutdown(mut self) {
44465        // Safety: drops once, never accessed again due to mem::forget
44466        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44467        // Prevent Drop from running (which would shut down the channel)
44468        std::mem::forget(self);
44469    }
44470}
44471
44472impl DatagramSocketSetIpTtlResponder {
44473    /// Sends a response to the FIDL transaction.
44474    ///
44475    /// Sets the channel to shutdown if an error occurs.
44476    pub fn send(
44477        self,
44478        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44479    ) -> Result<(), fidl::Error> {
44480        let _result = self.send_raw(result);
44481        if _result.is_err() {
44482            self.control_handle.shutdown();
44483        }
44484        self.drop_without_shutdown();
44485        _result
44486    }
44487
44488    /// Similar to "send" but does not shutdown the channel if an error occurs.
44489    pub fn send_no_shutdown_on_err(
44490        self,
44491        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44492    ) -> Result<(), fidl::Error> {
44493        let _result = self.send_raw(result);
44494        self.drop_without_shutdown();
44495        _result
44496    }
44497
44498    fn send_raw(
44499        &self,
44500        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44501    ) -> Result<(), fidl::Error> {
44502        self.control_handle.inner.send::<fidl::encoding::ResultType<
44503            fidl::encoding::EmptyStruct,
44504            fidl_fuchsia_posix::Errno,
44505        >>(
44506            result,
44507            self.tx_id,
44508            0x29e2424b433ae1ef,
44509            fidl::encoding::DynamicFlags::empty(),
44510        )
44511    }
44512}
44513
44514#[must_use = "FIDL methods require a response to be sent"]
44515#[derive(Debug)]
44516pub struct DatagramSocketGetIpTtlResponder {
44517    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44518    tx_id: u32,
44519}
44520
44521/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44522/// if the responder is dropped without sending a response, so that the client
44523/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44524impl std::ops::Drop for DatagramSocketGetIpTtlResponder {
44525    fn drop(&mut self) {
44526        self.control_handle.shutdown();
44527        // Safety: drops once, never accessed again
44528        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44529    }
44530}
44531
44532impl fidl::endpoints::Responder for DatagramSocketGetIpTtlResponder {
44533    type ControlHandle = DatagramSocketControlHandle;
44534
44535    fn control_handle(&self) -> &DatagramSocketControlHandle {
44536        &self.control_handle
44537    }
44538
44539    fn drop_without_shutdown(mut self) {
44540        // Safety: drops once, never accessed again due to mem::forget
44541        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44542        // Prevent Drop from running (which would shut down the channel)
44543        std::mem::forget(self);
44544    }
44545}
44546
44547impl DatagramSocketGetIpTtlResponder {
44548    /// Sends a response to the FIDL transaction.
44549    ///
44550    /// Sets the channel to shutdown if an error occurs.
44551    pub fn send(
44552        self,
44553        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
44554    ) -> Result<(), fidl::Error> {
44555        let _result = self.send_raw(result);
44556        if _result.is_err() {
44557            self.control_handle.shutdown();
44558        }
44559        self.drop_without_shutdown();
44560        _result
44561    }
44562
44563    /// Similar to "send" but does not shutdown the channel if an error occurs.
44564    pub fn send_no_shutdown_on_err(
44565        self,
44566        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
44567    ) -> Result<(), fidl::Error> {
44568        let _result = self.send_raw(result);
44569        self.drop_without_shutdown();
44570        _result
44571    }
44572
44573    fn send_raw(
44574        &self,
44575        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
44576    ) -> Result<(), fidl::Error> {
44577        self.control_handle.inner.send::<fidl::encoding::ResultType<
44578            BaseNetworkSocketGetIpTtlResponse,
44579            fidl_fuchsia_posix::Errno,
44580        >>(
44581            result.map(|value| (value,)),
44582            self.tx_id,
44583            0x47e47fa1f24da471,
44584            fidl::encoding::DynamicFlags::empty(),
44585        )
44586    }
44587}
44588
44589#[must_use = "FIDL methods require a response to be sent"]
44590#[derive(Debug)]
44591pub struct DatagramSocketSetIpPacketInfoResponder {
44592    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44593    tx_id: u32,
44594}
44595
44596/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44597/// if the responder is dropped without sending a response, so that the client
44598/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44599impl std::ops::Drop for DatagramSocketSetIpPacketInfoResponder {
44600    fn drop(&mut self) {
44601        self.control_handle.shutdown();
44602        // Safety: drops once, never accessed again
44603        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44604    }
44605}
44606
44607impl fidl::endpoints::Responder for DatagramSocketSetIpPacketInfoResponder {
44608    type ControlHandle = DatagramSocketControlHandle;
44609
44610    fn control_handle(&self) -> &DatagramSocketControlHandle {
44611        &self.control_handle
44612    }
44613
44614    fn drop_without_shutdown(mut self) {
44615        // Safety: drops once, never accessed again due to mem::forget
44616        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44617        // Prevent Drop from running (which would shut down the channel)
44618        std::mem::forget(self);
44619    }
44620}
44621
44622impl DatagramSocketSetIpPacketInfoResponder {
44623    /// Sends a response to the FIDL transaction.
44624    ///
44625    /// Sets the channel to shutdown if an error occurs.
44626    pub fn send(
44627        self,
44628        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44629    ) -> Result<(), fidl::Error> {
44630        let _result = self.send_raw(result);
44631        if _result.is_err() {
44632            self.control_handle.shutdown();
44633        }
44634        self.drop_without_shutdown();
44635        _result
44636    }
44637
44638    /// Similar to "send" but does not shutdown the channel if an error occurs.
44639    pub fn send_no_shutdown_on_err(
44640        self,
44641        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44642    ) -> Result<(), fidl::Error> {
44643        let _result = self.send_raw(result);
44644        self.drop_without_shutdown();
44645        _result
44646    }
44647
44648    fn send_raw(
44649        &self,
44650        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44651    ) -> Result<(), fidl::Error> {
44652        self.control_handle.inner.send::<fidl::encoding::ResultType<
44653            fidl::encoding::EmptyStruct,
44654            fidl_fuchsia_posix::Errno,
44655        >>(
44656            result,
44657            self.tx_id,
44658            0x392d16bee20c0e16,
44659            fidl::encoding::DynamicFlags::empty(),
44660        )
44661    }
44662}
44663
44664#[must_use = "FIDL methods require a response to be sent"]
44665#[derive(Debug)]
44666pub struct DatagramSocketGetIpPacketInfoResponder {
44667    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44668    tx_id: u32,
44669}
44670
44671/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44672/// if the responder is dropped without sending a response, so that the client
44673/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44674impl std::ops::Drop for DatagramSocketGetIpPacketInfoResponder {
44675    fn drop(&mut self) {
44676        self.control_handle.shutdown();
44677        // Safety: drops once, never accessed again
44678        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44679    }
44680}
44681
44682impl fidl::endpoints::Responder for DatagramSocketGetIpPacketInfoResponder {
44683    type ControlHandle = DatagramSocketControlHandle;
44684
44685    fn control_handle(&self) -> &DatagramSocketControlHandle {
44686        &self.control_handle
44687    }
44688
44689    fn drop_without_shutdown(mut self) {
44690        // Safety: drops once, never accessed again due to mem::forget
44691        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44692        // Prevent Drop from running (which would shut down the channel)
44693        std::mem::forget(self);
44694    }
44695}
44696
44697impl DatagramSocketGetIpPacketInfoResponder {
44698    /// Sends a response to the FIDL transaction.
44699    ///
44700    /// Sets the channel to shutdown if an error occurs.
44701    pub fn send(
44702        self,
44703        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
44704    ) -> Result<(), fidl::Error> {
44705        let _result = self.send_raw(result);
44706        if _result.is_err() {
44707            self.control_handle.shutdown();
44708        }
44709        self.drop_without_shutdown();
44710        _result
44711    }
44712
44713    /// Similar to "send" but does not shutdown the channel if an error occurs.
44714    pub fn send_no_shutdown_on_err(
44715        self,
44716        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
44717    ) -> Result<(), fidl::Error> {
44718        let _result = self.send_raw(result);
44719        self.drop_without_shutdown();
44720        _result
44721    }
44722
44723    fn send_raw(
44724        &self,
44725        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
44726    ) -> Result<(), fidl::Error> {
44727        self.control_handle.inner.send::<fidl::encoding::ResultType<
44728            BaseNetworkSocketGetIpPacketInfoResponse,
44729            fidl_fuchsia_posix::Errno,
44730        >>(
44731            result.map(|value| (value,)),
44732            self.tx_id,
44733            0x54b505f242280740,
44734            fidl::encoding::DynamicFlags::empty(),
44735        )
44736    }
44737}
44738
44739#[must_use = "FIDL methods require a response to be sent"]
44740#[derive(Debug)]
44741pub struct DatagramSocketSetIpReceiveTypeOfServiceResponder {
44742    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44743    tx_id: u32,
44744}
44745
44746/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44747/// if the responder is dropped without sending a response, so that the client
44748/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44749impl std::ops::Drop for DatagramSocketSetIpReceiveTypeOfServiceResponder {
44750    fn drop(&mut self) {
44751        self.control_handle.shutdown();
44752        // Safety: drops once, never accessed again
44753        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44754    }
44755}
44756
44757impl fidl::endpoints::Responder for DatagramSocketSetIpReceiveTypeOfServiceResponder {
44758    type ControlHandle = DatagramSocketControlHandle;
44759
44760    fn control_handle(&self) -> &DatagramSocketControlHandle {
44761        &self.control_handle
44762    }
44763
44764    fn drop_without_shutdown(mut self) {
44765        // Safety: drops once, never accessed again due to mem::forget
44766        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44767        // Prevent Drop from running (which would shut down the channel)
44768        std::mem::forget(self);
44769    }
44770}
44771
44772impl DatagramSocketSetIpReceiveTypeOfServiceResponder {
44773    /// Sends a response to the FIDL transaction.
44774    ///
44775    /// Sets the channel to shutdown if an error occurs.
44776    pub fn send(
44777        self,
44778        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44779    ) -> Result<(), fidl::Error> {
44780        let _result = self.send_raw(result);
44781        if _result.is_err() {
44782            self.control_handle.shutdown();
44783        }
44784        self.drop_without_shutdown();
44785        _result
44786    }
44787
44788    /// Similar to "send" but does not shutdown the channel if an error occurs.
44789    pub fn send_no_shutdown_on_err(
44790        self,
44791        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44792    ) -> Result<(), fidl::Error> {
44793        let _result = self.send_raw(result);
44794        self.drop_without_shutdown();
44795        _result
44796    }
44797
44798    fn send_raw(
44799        &self,
44800        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44801    ) -> Result<(), fidl::Error> {
44802        self.control_handle.inner.send::<fidl::encoding::ResultType<
44803            fidl::encoding::EmptyStruct,
44804            fidl_fuchsia_posix::Errno,
44805        >>(
44806            result,
44807            self.tx_id,
44808            0x6c4f6714995f84ef,
44809            fidl::encoding::DynamicFlags::empty(),
44810        )
44811    }
44812}
44813
44814#[must_use = "FIDL methods require a response to be sent"]
44815#[derive(Debug)]
44816pub struct DatagramSocketGetIpReceiveTypeOfServiceResponder {
44817    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44818    tx_id: u32,
44819}
44820
44821/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44822/// if the responder is dropped without sending a response, so that the client
44823/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44824impl std::ops::Drop for DatagramSocketGetIpReceiveTypeOfServiceResponder {
44825    fn drop(&mut self) {
44826        self.control_handle.shutdown();
44827        // Safety: drops once, never accessed again
44828        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44829    }
44830}
44831
44832impl fidl::endpoints::Responder for DatagramSocketGetIpReceiveTypeOfServiceResponder {
44833    type ControlHandle = DatagramSocketControlHandle;
44834
44835    fn control_handle(&self) -> &DatagramSocketControlHandle {
44836        &self.control_handle
44837    }
44838
44839    fn drop_without_shutdown(mut self) {
44840        // Safety: drops once, never accessed again due to mem::forget
44841        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44842        // Prevent Drop from running (which would shut down the channel)
44843        std::mem::forget(self);
44844    }
44845}
44846
44847impl DatagramSocketGetIpReceiveTypeOfServiceResponder {
44848    /// Sends a response to the FIDL transaction.
44849    ///
44850    /// Sets the channel to shutdown if an error occurs.
44851    pub fn send(
44852        self,
44853        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
44854    ) -> Result<(), fidl::Error> {
44855        let _result = self.send_raw(result);
44856        if _result.is_err() {
44857            self.control_handle.shutdown();
44858        }
44859        self.drop_without_shutdown();
44860        _result
44861    }
44862
44863    /// Similar to "send" but does not shutdown the channel if an error occurs.
44864    pub fn send_no_shutdown_on_err(
44865        self,
44866        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
44867    ) -> Result<(), fidl::Error> {
44868        let _result = self.send_raw(result);
44869        self.drop_without_shutdown();
44870        _result
44871    }
44872
44873    fn send_raw(
44874        &self,
44875        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
44876    ) -> Result<(), fidl::Error> {
44877        self.control_handle.inner.send::<fidl::encoding::ResultType<
44878            BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
44879            fidl_fuchsia_posix::Errno,
44880        >>(
44881            result.map(|value| (value,)),
44882            self.tx_id,
44883            0x4158ba7dc2795960,
44884            fidl::encoding::DynamicFlags::empty(),
44885        )
44886    }
44887}
44888
44889#[must_use = "FIDL methods require a response to be sent"]
44890#[derive(Debug)]
44891pub struct DatagramSocketSetIpReceiveTtlResponder {
44892    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44893    tx_id: u32,
44894}
44895
44896/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44897/// if the responder is dropped without sending a response, so that the client
44898/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44899impl std::ops::Drop for DatagramSocketSetIpReceiveTtlResponder {
44900    fn drop(&mut self) {
44901        self.control_handle.shutdown();
44902        // Safety: drops once, never accessed again
44903        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44904    }
44905}
44906
44907impl fidl::endpoints::Responder for DatagramSocketSetIpReceiveTtlResponder {
44908    type ControlHandle = DatagramSocketControlHandle;
44909
44910    fn control_handle(&self) -> &DatagramSocketControlHandle {
44911        &self.control_handle
44912    }
44913
44914    fn drop_without_shutdown(mut self) {
44915        // Safety: drops once, never accessed again due to mem::forget
44916        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44917        // Prevent Drop from running (which would shut down the channel)
44918        std::mem::forget(self);
44919    }
44920}
44921
44922impl DatagramSocketSetIpReceiveTtlResponder {
44923    /// Sends a response to the FIDL transaction.
44924    ///
44925    /// Sets the channel to shutdown if an error occurs.
44926    pub fn send(
44927        self,
44928        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44929    ) -> Result<(), fidl::Error> {
44930        let _result = self.send_raw(result);
44931        if _result.is_err() {
44932            self.control_handle.shutdown();
44933        }
44934        self.drop_without_shutdown();
44935        _result
44936    }
44937
44938    /// Similar to "send" but does not shutdown the channel if an error occurs.
44939    pub fn send_no_shutdown_on_err(
44940        self,
44941        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44942    ) -> Result<(), fidl::Error> {
44943        let _result = self.send_raw(result);
44944        self.drop_without_shutdown();
44945        _result
44946    }
44947
44948    fn send_raw(
44949        &self,
44950        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44951    ) -> Result<(), fidl::Error> {
44952        self.control_handle.inner.send::<fidl::encoding::ResultType<
44953            fidl::encoding::EmptyStruct,
44954            fidl_fuchsia_posix::Errno,
44955        >>(
44956            result,
44957            self.tx_id,
44958            0x46f15be0ce0ab82b,
44959            fidl::encoding::DynamicFlags::empty(),
44960        )
44961    }
44962}
44963
44964#[must_use = "FIDL methods require a response to be sent"]
44965#[derive(Debug)]
44966pub struct DatagramSocketGetIpReceiveTtlResponder {
44967    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44968    tx_id: u32,
44969}
44970
44971/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44972/// if the responder is dropped without sending a response, so that the client
44973/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44974impl std::ops::Drop for DatagramSocketGetIpReceiveTtlResponder {
44975    fn drop(&mut self) {
44976        self.control_handle.shutdown();
44977        // Safety: drops once, never accessed again
44978        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44979    }
44980}
44981
44982impl fidl::endpoints::Responder for DatagramSocketGetIpReceiveTtlResponder {
44983    type ControlHandle = DatagramSocketControlHandle;
44984
44985    fn control_handle(&self) -> &DatagramSocketControlHandle {
44986        &self.control_handle
44987    }
44988
44989    fn drop_without_shutdown(mut self) {
44990        // Safety: drops once, never accessed again due to mem::forget
44991        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44992        // Prevent Drop from running (which would shut down the channel)
44993        std::mem::forget(self);
44994    }
44995}
44996
44997impl DatagramSocketGetIpReceiveTtlResponder {
44998    /// Sends a response to the FIDL transaction.
44999    ///
45000    /// Sets the channel to shutdown if an error occurs.
45001    pub fn send(
45002        self,
45003        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
45004    ) -> Result<(), fidl::Error> {
45005        let _result = self.send_raw(result);
45006        if _result.is_err() {
45007            self.control_handle.shutdown();
45008        }
45009        self.drop_without_shutdown();
45010        _result
45011    }
45012
45013    /// Similar to "send" but does not shutdown the channel if an error occurs.
45014    pub fn send_no_shutdown_on_err(
45015        self,
45016        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
45017    ) -> Result<(), fidl::Error> {
45018        let _result = self.send_raw(result);
45019        self.drop_without_shutdown();
45020        _result
45021    }
45022
45023    fn send_raw(
45024        &self,
45025        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
45026    ) -> Result<(), fidl::Error> {
45027        self.control_handle.inner.send::<fidl::encoding::ResultType<
45028            BaseNetworkSocketGetIpReceiveTtlResponse,
45029            fidl_fuchsia_posix::Errno,
45030        >>(
45031            result.map(|value| (value,)),
45032            self.tx_id,
45033            0x678ddd5a5dfa2eb5,
45034            fidl::encoding::DynamicFlags::empty(),
45035        )
45036    }
45037}
45038
45039#[must_use = "FIDL methods require a response to be sent"]
45040#[derive(Debug)]
45041pub struct DatagramSocketSetIpMulticastInterfaceResponder {
45042    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45043    tx_id: u32,
45044}
45045
45046/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45047/// if the responder is dropped without sending a response, so that the client
45048/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45049impl std::ops::Drop for DatagramSocketSetIpMulticastInterfaceResponder {
45050    fn drop(&mut self) {
45051        self.control_handle.shutdown();
45052        // Safety: drops once, never accessed again
45053        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45054    }
45055}
45056
45057impl fidl::endpoints::Responder for DatagramSocketSetIpMulticastInterfaceResponder {
45058    type ControlHandle = DatagramSocketControlHandle;
45059
45060    fn control_handle(&self) -> &DatagramSocketControlHandle {
45061        &self.control_handle
45062    }
45063
45064    fn drop_without_shutdown(mut self) {
45065        // Safety: drops once, never accessed again due to mem::forget
45066        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45067        // Prevent Drop from running (which would shut down the channel)
45068        std::mem::forget(self);
45069    }
45070}
45071
45072impl DatagramSocketSetIpMulticastInterfaceResponder {
45073    /// Sends a response to the FIDL transaction.
45074    ///
45075    /// Sets the channel to shutdown if an error occurs.
45076    pub fn send(
45077        self,
45078        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45079    ) -> Result<(), fidl::Error> {
45080        let _result = self.send_raw(result);
45081        if _result.is_err() {
45082            self.control_handle.shutdown();
45083        }
45084        self.drop_without_shutdown();
45085        _result
45086    }
45087
45088    /// Similar to "send" but does not shutdown the channel if an error occurs.
45089    pub fn send_no_shutdown_on_err(
45090        self,
45091        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45092    ) -> Result<(), fidl::Error> {
45093        let _result = self.send_raw(result);
45094        self.drop_without_shutdown();
45095        _result
45096    }
45097
45098    fn send_raw(
45099        &self,
45100        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45101    ) -> Result<(), fidl::Error> {
45102        self.control_handle.inner.send::<fidl::encoding::ResultType<
45103            fidl::encoding::EmptyStruct,
45104            fidl_fuchsia_posix::Errno,
45105        >>(
45106            result,
45107            self.tx_id,
45108            0x752fbfa9b12befe,
45109            fidl::encoding::DynamicFlags::empty(),
45110        )
45111    }
45112}
45113
45114#[must_use = "FIDL methods require a response to be sent"]
45115#[derive(Debug)]
45116pub struct DatagramSocketGetIpMulticastInterfaceResponder {
45117    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45118    tx_id: u32,
45119}
45120
45121/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45122/// if the responder is dropped without sending a response, so that the client
45123/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45124impl std::ops::Drop for DatagramSocketGetIpMulticastInterfaceResponder {
45125    fn drop(&mut self) {
45126        self.control_handle.shutdown();
45127        // Safety: drops once, never accessed again
45128        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45129    }
45130}
45131
45132impl fidl::endpoints::Responder for DatagramSocketGetIpMulticastInterfaceResponder {
45133    type ControlHandle = DatagramSocketControlHandle;
45134
45135    fn control_handle(&self) -> &DatagramSocketControlHandle {
45136        &self.control_handle
45137    }
45138
45139    fn drop_without_shutdown(mut self) {
45140        // Safety: drops once, never accessed again due to mem::forget
45141        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45142        // Prevent Drop from running (which would shut down the channel)
45143        std::mem::forget(self);
45144    }
45145}
45146
45147impl DatagramSocketGetIpMulticastInterfaceResponder {
45148    /// Sends a response to the FIDL transaction.
45149    ///
45150    /// Sets the channel to shutdown if an error occurs.
45151    pub fn send(
45152        self,
45153        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
45154    ) -> Result<(), fidl::Error> {
45155        let _result = self.send_raw(result);
45156        if _result.is_err() {
45157            self.control_handle.shutdown();
45158        }
45159        self.drop_without_shutdown();
45160        _result
45161    }
45162
45163    /// Similar to "send" but does not shutdown the channel if an error occurs.
45164    pub fn send_no_shutdown_on_err(
45165        self,
45166        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
45167    ) -> Result<(), fidl::Error> {
45168        let _result = self.send_raw(result);
45169        self.drop_without_shutdown();
45170        _result
45171    }
45172
45173    fn send_raw(
45174        &self,
45175        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
45176    ) -> Result<(), fidl::Error> {
45177        self.control_handle.inner.send::<fidl::encoding::ResultType<
45178            BaseNetworkSocketGetIpMulticastInterfaceResponse,
45179            fidl_fuchsia_posix::Errno,
45180        >>(
45181            result.map(|value| (value,)),
45182            self.tx_id,
45183            0x320bd14c4df046c4,
45184            fidl::encoding::DynamicFlags::empty(),
45185        )
45186    }
45187}
45188
45189#[must_use = "FIDL methods require a response to be sent"]
45190#[derive(Debug)]
45191pub struct DatagramSocketSetIpMulticastTtlResponder {
45192    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45193    tx_id: u32,
45194}
45195
45196/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45197/// if the responder is dropped without sending a response, so that the client
45198/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45199impl std::ops::Drop for DatagramSocketSetIpMulticastTtlResponder {
45200    fn drop(&mut self) {
45201        self.control_handle.shutdown();
45202        // Safety: drops once, never accessed again
45203        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45204    }
45205}
45206
45207impl fidl::endpoints::Responder for DatagramSocketSetIpMulticastTtlResponder {
45208    type ControlHandle = DatagramSocketControlHandle;
45209
45210    fn control_handle(&self) -> &DatagramSocketControlHandle {
45211        &self.control_handle
45212    }
45213
45214    fn drop_without_shutdown(mut self) {
45215        // Safety: drops once, never accessed again due to mem::forget
45216        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45217        // Prevent Drop from running (which would shut down the channel)
45218        std::mem::forget(self);
45219    }
45220}
45221
45222impl DatagramSocketSetIpMulticastTtlResponder {
45223    /// Sends a response to the FIDL transaction.
45224    ///
45225    /// Sets the channel to shutdown if an error occurs.
45226    pub fn send(
45227        self,
45228        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45229    ) -> Result<(), fidl::Error> {
45230        let _result = self.send_raw(result);
45231        if _result.is_err() {
45232            self.control_handle.shutdown();
45233        }
45234        self.drop_without_shutdown();
45235        _result
45236    }
45237
45238    /// Similar to "send" but does not shutdown the channel if an error occurs.
45239    pub fn send_no_shutdown_on_err(
45240        self,
45241        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45242    ) -> Result<(), fidl::Error> {
45243        let _result = self.send_raw(result);
45244        self.drop_without_shutdown();
45245        _result
45246    }
45247
45248    fn send_raw(
45249        &self,
45250        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45251    ) -> Result<(), fidl::Error> {
45252        self.control_handle.inner.send::<fidl::encoding::ResultType<
45253            fidl::encoding::EmptyStruct,
45254            fidl_fuchsia_posix::Errno,
45255        >>(
45256            result,
45257            self.tx_id,
45258            0x63134d53772916a1,
45259            fidl::encoding::DynamicFlags::empty(),
45260        )
45261    }
45262}
45263
45264#[must_use = "FIDL methods require a response to be sent"]
45265#[derive(Debug)]
45266pub struct DatagramSocketGetIpMulticastTtlResponder {
45267    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45268    tx_id: u32,
45269}
45270
45271/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45272/// if the responder is dropped without sending a response, so that the client
45273/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45274impl std::ops::Drop for DatagramSocketGetIpMulticastTtlResponder {
45275    fn drop(&mut self) {
45276        self.control_handle.shutdown();
45277        // Safety: drops once, never accessed again
45278        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45279    }
45280}
45281
45282impl fidl::endpoints::Responder for DatagramSocketGetIpMulticastTtlResponder {
45283    type ControlHandle = DatagramSocketControlHandle;
45284
45285    fn control_handle(&self) -> &DatagramSocketControlHandle {
45286        &self.control_handle
45287    }
45288
45289    fn drop_without_shutdown(mut self) {
45290        // Safety: drops once, never accessed again due to mem::forget
45291        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45292        // Prevent Drop from running (which would shut down the channel)
45293        std::mem::forget(self);
45294    }
45295}
45296
45297impl DatagramSocketGetIpMulticastTtlResponder {
45298    /// Sends a response to the FIDL transaction.
45299    ///
45300    /// Sets the channel to shutdown if an error occurs.
45301    pub fn send(
45302        self,
45303        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
45304    ) -> Result<(), fidl::Error> {
45305        let _result = self.send_raw(result);
45306        if _result.is_err() {
45307            self.control_handle.shutdown();
45308        }
45309        self.drop_without_shutdown();
45310        _result
45311    }
45312
45313    /// Similar to "send" but does not shutdown the channel if an error occurs.
45314    pub fn send_no_shutdown_on_err(
45315        self,
45316        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
45317    ) -> Result<(), fidl::Error> {
45318        let _result = self.send_raw(result);
45319        self.drop_without_shutdown();
45320        _result
45321    }
45322
45323    fn send_raw(
45324        &self,
45325        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
45326    ) -> Result<(), fidl::Error> {
45327        self.control_handle.inner.send::<fidl::encoding::ResultType<
45328            BaseNetworkSocketGetIpMulticastTtlResponse,
45329            fidl_fuchsia_posix::Errno,
45330        >>(
45331            result.map(|value| (value,)),
45332            self.tx_id,
45333            0x4665cd378f39e1a,
45334            fidl::encoding::DynamicFlags::empty(),
45335        )
45336    }
45337}
45338
45339#[must_use = "FIDL methods require a response to be sent"]
45340#[derive(Debug)]
45341pub struct DatagramSocketSetIpMulticastLoopbackResponder {
45342    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45343    tx_id: u32,
45344}
45345
45346/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45347/// if the responder is dropped without sending a response, so that the client
45348/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45349impl std::ops::Drop for DatagramSocketSetIpMulticastLoopbackResponder {
45350    fn drop(&mut self) {
45351        self.control_handle.shutdown();
45352        // Safety: drops once, never accessed again
45353        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45354    }
45355}
45356
45357impl fidl::endpoints::Responder for DatagramSocketSetIpMulticastLoopbackResponder {
45358    type ControlHandle = DatagramSocketControlHandle;
45359
45360    fn control_handle(&self) -> &DatagramSocketControlHandle {
45361        &self.control_handle
45362    }
45363
45364    fn drop_without_shutdown(mut self) {
45365        // Safety: drops once, never accessed again due to mem::forget
45366        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45367        // Prevent Drop from running (which would shut down the channel)
45368        std::mem::forget(self);
45369    }
45370}
45371
45372impl DatagramSocketSetIpMulticastLoopbackResponder {
45373    /// Sends a response to the FIDL transaction.
45374    ///
45375    /// Sets the channel to shutdown if an error occurs.
45376    pub fn send(
45377        self,
45378        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45379    ) -> Result<(), fidl::Error> {
45380        let _result = self.send_raw(result);
45381        if _result.is_err() {
45382            self.control_handle.shutdown();
45383        }
45384        self.drop_without_shutdown();
45385        _result
45386    }
45387
45388    /// Similar to "send" but does not shutdown the channel if an error occurs.
45389    pub fn send_no_shutdown_on_err(
45390        self,
45391        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45392    ) -> Result<(), fidl::Error> {
45393        let _result = self.send_raw(result);
45394        self.drop_without_shutdown();
45395        _result
45396    }
45397
45398    fn send_raw(
45399        &self,
45400        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45401    ) -> Result<(), fidl::Error> {
45402        self.control_handle.inner.send::<fidl::encoding::ResultType<
45403            fidl::encoding::EmptyStruct,
45404            fidl_fuchsia_posix::Errno,
45405        >>(
45406            result,
45407            self.tx_id,
45408            0x20c55c11f00943ea,
45409            fidl::encoding::DynamicFlags::empty(),
45410        )
45411    }
45412}
45413
45414#[must_use = "FIDL methods require a response to be sent"]
45415#[derive(Debug)]
45416pub struct DatagramSocketGetIpMulticastLoopbackResponder {
45417    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45418    tx_id: u32,
45419}
45420
45421/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45422/// if the responder is dropped without sending a response, so that the client
45423/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45424impl std::ops::Drop for DatagramSocketGetIpMulticastLoopbackResponder {
45425    fn drop(&mut self) {
45426        self.control_handle.shutdown();
45427        // Safety: drops once, never accessed again
45428        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45429    }
45430}
45431
45432impl fidl::endpoints::Responder for DatagramSocketGetIpMulticastLoopbackResponder {
45433    type ControlHandle = DatagramSocketControlHandle;
45434
45435    fn control_handle(&self) -> &DatagramSocketControlHandle {
45436        &self.control_handle
45437    }
45438
45439    fn drop_without_shutdown(mut self) {
45440        // Safety: drops once, never accessed again due to mem::forget
45441        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45442        // Prevent Drop from running (which would shut down the channel)
45443        std::mem::forget(self);
45444    }
45445}
45446
45447impl DatagramSocketGetIpMulticastLoopbackResponder {
45448    /// Sends a response to the FIDL transaction.
45449    ///
45450    /// Sets the channel to shutdown if an error occurs.
45451    pub fn send(
45452        self,
45453        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
45454    ) -> Result<(), fidl::Error> {
45455        let _result = self.send_raw(result);
45456        if _result.is_err() {
45457            self.control_handle.shutdown();
45458        }
45459        self.drop_without_shutdown();
45460        _result
45461    }
45462
45463    /// Similar to "send" but does not shutdown the channel if an error occurs.
45464    pub fn send_no_shutdown_on_err(
45465        self,
45466        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
45467    ) -> Result<(), fidl::Error> {
45468        let _result = self.send_raw(result);
45469        self.drop_without_shutdown();
45470        _result
45471    }
45472
45473    fn send_raw(
45474        &self,
45475        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
45476    ) -> Result<(), fidl::Error> {
45477        self.control_handle.inner.send::<fidl::encoding::ResultType<
45478            BaseNetworkSocketGetIpMulticastLoopbackResponse,
45479            fidl_fuchsia_posix::Errno,
45480        >>(
45481            result.map(|value| (value,)),
45482            self.tx_id,
45483            0x3b6b26ff558298f2,
45484            fidl::encoding::DynamicFlags::empty(),
45485        )
45486    }
45487}
45488
45489#[must_use = "FIDL methods require a response to be sent"]
45490#[derive(Debug)]
45491pub struct DatagramSocketAddIpMembershipResponder {
45492    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45493    tx_id: u32,
45494}
45495
45496/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45497/// if the responder is dropped without sending a response, so that the client
45498/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45499impl std::ops::Drop for DatagramSocketAddIpMembershipResponder {
45500    fn drop(&mut self) {
45501        self.control_handle.shutdown();
45502        // Safety: drops once, never accessed again
45503        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45504    }
45505}
45506
45507impl fidl::endpoints::Responder for DatagramSocketAddIpMembershipResponder {
45508    type ControlHandle = DatagramSocketControlHandle;
45509
45510    fn control_handle(&self) -> &DatagramSocketControlHandle {
45511        &self.control_handle
45512    }
45513
45514    fn drop_without_shutdown(mut self) {
45515        // Safety: drops once, never accessed again due to mem::forget
45516        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45517        // Prevent Drop from running (which would shut down the channel)
45518        std::mem::forget(self);
45519    }
45520}
45521
45522impl DatagramSocketAddIpMembershipResponder {
45523    /// Sends a response to the FIDL transaction.
45524    ///
45525    /// Sets the channel to shutdown if an error occurs.
45526    pub fn send(
45527        self,
45528        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45529    ) -> Result<(), fidl::Error> {
45530        let _result = self.send_raw(result);
45531        if _result.is_err() {
45532            self.control_handle.shutdown();
45533        }
45534        self.drop_without_shutdown();
45535        _result
45536    }
45537
45538    /// Similar to "send" but does not shutdown the channel if an error occurs.
45539    pub fn send_no_shutdown_on_err(
45540        self,
45541        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45542    ) -> Result<(), fidl::Error> {
45543        let _result = self.send_raw(result);
45544        self.drop_without_shutdown();
45545        _result
45546    }
45547
45548    fn send_raw(
45549        &self,
45550        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45551    ) -> Result<(), fidl::Error> {
45552        self.control_handle.inner.send::<fidl::encoding::ResultType<
45553            fidl::encoding::EmptyStruct,
45554            fidl_fuchsia_posix::Errno,
45555        >>(
45556            result,
45557            self.tx_id,
45558            0x76bc7df115a3b4d0,
45559            fidl::encoding::DynamicFlags::empty(),
45560        )
45561    }
45562}
45563
45564#[must_use = "FIDL methods require a response to be sent"]
45565#[derive(Debug)]
45566pub struct DatagramSocketDropIpMembershipResponder {
45567    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45568    tx_id: u32,
45569}
45570
45571/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45572/// if the responder is dropped without sending a response, so that the client
45573/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45574impl std::ops::Drop for DatagramSocketDropIpMembershipResponder {
45575    fn drop(&mut self) {
45576        self.control_handle.shutdown();
45577        // Safety: drops once, never accessed again
45578        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45579    }
45580}
45581
45582impl fidl::endpoints::Responder for DatagramSocketDropIpMembershipResponder {
45583    type ControlHandle = DatagramSocketControlHandle;
45584
45585    fn control_handle(&self) -> &DatagramSocketControlHandle {
45586        &self.control_handle
45587    }
45588
45589    fn drop_without_shutdown(mut self) {
45590        // Safety: drops once, never accessed again due to mem::forget
45591        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45592        // Prevent Drop from running (which would shut down the channel)
45593        std::mem::forget(self);
45594    }
45595}
45596
45597impl DatagramSocketDropIpMembershipResponder {
45598    /// Sends a response to the FIDL transaction.
45599    ///
45600    /// Sets the channel to shutdown if an error occurs.
45601    pub fn send(
45602        self,
45603        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45604    ) -> Result<(), fidl::Error> {
45605        let _result = self.send_raw(result);
45606        if _result.is_err() {
45607            self.control_handle.shutdown();
45608        }
45609        self.drop_without_shutdown();
45610        _result
45611    }
45612
45613    /// Similar to "send" but does not shutdown the channel if an error occurs.
45614    pub fn send_no_shutdown_on_err(
45615        self,
45616        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45617    ) -> Result<(), fidl::Error> {
45618        let _result = self.send_raw(result);
45619        self.drop_without_shutdown();
45620        _result
45621    }
45622
45623    fn send_raw(
45624        &self,
45625        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45626    ) -> Result<(), fidl::Error> {
45627        self.control_handle.inner.send::<fidl::encoding::ResultType<
45628            fidl::encoding::EmptyStruct,
45629            fidl_fuchsia_posix::Errno,
45630        >>(
45631            result,
45632            self.tx_id,
45633            0x2888f3099188d03,
45634            fidl::encoding::DynamicFlags::empty(),
45635        )
45636    }
45637}
45638
45639#[must_use = "FIDL methods require a response to be sent"]
45640#[derive(Debug)]
45641pub struct DatagramSocketSetIpTransparentResponder {
45642    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45643    tx_id: u32,
45644}
45645
45646/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45647/// if the responder is dropped without sending a response, so that the client
45648/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45649impl std::ops::Drop for DatagramSocketSetIpTransparentResponder {
45650    fn drop(&mut self) {
45651        self.control_handle.shutdown();
45652        // Safety: drops once, never accessed again
45653        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45654    }
45655}
45656
45657impl fidl::endpoints::Responder for DatagramSocketSetIpTransparentResponder {
45658    type ControlHandle = DatagramSocketControlHandle;
45659
45660    fn control_handle(&self) -> &DatagramSocketControlHandle {
45661        &self.control_handle
45662    }
45663
45664    fn drop_without_shutdown(mut self) {
45665        // Safety: drops once, never accessed again due to mem::forget
45666        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45667        // Prevent Drop from running (which would shut down the channel)
45668        std::mem::forget(self);
45669    }
45670}
45671
45672impl DatagramSocketSetIpTransparentResponder {
45673    /// Sends a response to the FIDL transaction.
45674    ///
45675    /// Sets the channel to shutdown if an error occurs.
45676    pub fn send(
45677        self,
45678        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45679    ) -> Result<(), fidl::Error> {
45680        let _result = self.send_raw(result);
45681        if _result.is_err() {
45682            self.control_handle.shutdown();
45683        }
45684        self.drop_without_shutdown();
45685        _result
45686    }
45687
45688    /// Similar to "send" but does not shutdown the channel if an error occurs.
45689    pub fn send_no_shutdown_on_err(
45690        self,
45691        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45692    ) -> Result<(), fidl::Error> {
45693        let _result = self.send_raw(result);
45694        self.drop_without_shutdown();
45695        _result
45696    }
45697
45698    fn send_raw(
45699        &self,
45700        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45701    ) -> Result<(), fidl::Error> {
45702        self.control_handle.inner.send::<fidl::encoding::ResultType<
45703            fidl::encoding::EmptyStruct,
45704            fidl_fuchsia_posix::Errno,
45705        >>(
45706            result,
45707            self.tx_id,
45708            0x1ae532b0c066e3a0,
45709            fidl::encoding::DynamicFlags::empty(),
45710        )
45711    }
45712}
45713
45714#[must_use = "FIDL methods require a response to be sent"]
45715#[derive(Debug)]
45716pub struct DatagramSocketGetIpTransparentResponder {
45717    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45718    tx_id: u32,
45719}
45720
45721/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45722/// if the responder is dropped without sending a response, so that the client
45723/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45724impl std::ops::Drop for DatagramSocketGetIpTransparentResponder {
45725    fn drop(&mut self) {
45726        self.control_handle.shutdown();
45727        // Safety: drops once, never accessed again
45728        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45729    }
45730}
45731
45732impl fidl::endpoints::Responder for DatagramSocketGetIpTransparentResponder {
45733    type ControlHandle = DatagramSocketControlHandle;
45734
45735    fn control_handle(&self) -> &DatagramSocketControlHandle {
45736        &self.control_handle
45737    }
45738
45739    fn drop_without_shutdown(mut self) {
45740        // Safety: drops once, never accessed again due to mem::forget
45741        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45742        // Prevent Drop from running (which would shut down the channel)
45743        std::mem::forget(self);
45744    }
45745}
45746
45747impl DatagramSocketGetIpTransparentResponder {
45748    /// Sends a response to the FIDL transaction.
45749    ///
45750    /// Sets the channel to shutdown if an error occurs.
45751    pub fn send(
45752        self,
45753        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
45754    ) -> Result<(), fidl::Error> {
45755        let _result = self.send_raw(result);
45756        if _result.is_err() {
45757            self.control_handle.shutdown();
45758        }
45759        self.drop_without_shutdown();
45760        _result
45761    }
45762
45763    /// Similar to "send" but does not shutdown the channel if an error occurs.
45764    pub fn send_no_shutdown_on_err(
45765        self,
45766        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
45767    ) -> Result<(), fidl::Error> {
45768        let _result = self.send_raw(result);
45769        self.drop_without_shutdown();
45770        _result
45771    }
45772
45773    fn send_raw(
45774        &self,
45775        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
45776    ) -> Result<(), fidl::Error> {
45777        self.control_handle.inner.send::<fidl::encoding::ResultType<
45778            BaseNetworkSocketGetIpTransparentResponse,
45779            fidl_fuchsia_posix::Errno,
45780        >>(
45781            result.map(|value| (value,)),
45782            self.tx_id,
45783            0x51d43695962ebfb5,
45784            fidl::encoding::DynamicFlags::empty(),
45785        )
45786    }
45787}
45788
45789#[must_use = "FIDL methods require a response to be sent"]
45790#[derive(Debug)]
45791pub struct DatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
45792    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45793    tx_id: u32,
45794}
45795
45796/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45797/// if the responder is dropped without sending a response, so that the client
45798/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45799impl std::ops::Drop for DatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
45800    fn drop(&mut self) {
45801        self.control_handle.shutdown();
45802        // Safety: drops once, never accessed again
45803        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45804    }
45805}
45806
45807impl fidl::endpoints::Responder for DatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
45808    type ControlHandle = DatagramSocketControlHandle;
45809
45810    fn control_handle(&self) -> &DatagramSocketControlHandle {
45811        &self.control_handle
45812    }
45813
45814    fn drop_without_shutdown(mut self) {
45815        // Safety: drops once, never accessed again due to mem::forget
45816        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45817        // Prevent Drop from running (which would shut down the channel)
45818        std::mem::forget(self);
45819    }
45820}
45821
45822impl DatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
45823    /// Sends a response to the FIDL transaction.
45824    ///
45825    /// Sets the channel to shutdown if an error occurs.
45826    pub fn send(
45827        self,
45828        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45829    ) -> Result<(), fidl::Error> {
45830        let _result = self.send_raw(result);
45831        if _result.is_err() {
45832            self.control_handle.shutdown();
45833        }
45834        self.drop_without_shutdown();
45835        _result
45836    }
45837
45838    /// Similar to "send" but does not shutdown the channel if an error occurs.
45839    pub fn send_no_shutdown_on_err(
45840        self,
45841        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45842    ) -> Result<(), fidl::Error> {
45843        let _result = self.send_raw(result);
45844        self.drop_without_shutdown();
45845        _result
45846    }
45847
45848    fn send_raw(
45849        &self,
45850        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45851    ) -> Result<(), fidl::Error> {
45852        self.control_handle.inner.send::<fidl::encoding::ResultType<
45853            fidl::encoding::EmptyStruct,
45854            fidl_fuchsia_posix::Errno,
45855        >>(
45856            result,
45857            self.tx_id,
45858            0x4722b4ce52f7840,
45859            fidl::encoding::DynamicFlags::empty(),
45860        )
45861    }
45862}
45863
45864#[must_use = "FIDL methods require a response to be sent"]
45865#[derive(Debug)]
45866pub struct DatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
45867    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45868    tx_id: u32,
45869}
45870
45871/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45872/// if the responder is dropped without sending a response, so that the client
45873/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45874impl std::ops::Drop for DatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
45875    fn drop(&mut self) {
45876        self.control_handle.shutdown();
45877        // Safety: drops once, never accessed again
45878        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45879    }
45880}
45881
45882impl fidl::endpoints::Responder for DatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
45883    type ControlHandle = DatagramSocketControlHandle;
45884
45885    fn control_handle(&self) -> &DatagramSocketControlHandle {
45886        &self.control_handle
45887    }
45888
45889    fn drop_without_shutdown(mut self) {
45890        // Safety: drops once, never accessed again due to mem::forget
45891        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45892        // Prevent Drop from running (which would shut down the channel)
45893        std::mem::forget(self);
45894    }
45895}
45896
45897impl DatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
45898    /// Sends a response to the FIDL transaction.
45899    ///
45900    /// Sets the channel to shutdown if an error occurs.
45901    pub fn send(
45902        self,
45903        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
45904    ) -> Result<(), fidl::Error> {
45905        let _result = self.send_raw(result);
45906        if _result.is_err() {
45907            self.control_handle.shutdown();
45908        }
45909        self.drop_without_shutdown();
45910        _result
45911    }
45912
45913    /// Similar to "send" but does not shutdown the channel if an error occurs.
45914    pub fn send_no_shutdown_on_err(
45915        self,
45916        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
45917    ) -> Result<(), fidl::Error> {
45918        let _result = self.send_raw(result);
45919        self.drop_without_shutdown();
45920        _result
45921    }
45922
45923    fn send_raw(
45924        &self,
45925        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
45926    ) -> Result<(), fidl::Error> {
45927        self.control_handle.inner.send::<fidl::encoding::ResultType<
45928            BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
45929            fidl_fuchsia_posix::Errno,
45930        >>(
45931            result.map(|value| (value,)),
45932            self.tx_id,
45933            0x2a0e7dc5d6bfdfe9,
45934            fidl::encoding::DynamicFlags::empty(),
45935        )
45936    }
45937}
45938
45939#[must_use = "FIDL methods require a response to be sent"]
45940#[derive(Debug)]
45941pub struct DatagramSocketAddIpv6MembershipResponder {
45942    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45943    tx_id: u32,
45944}
45945
45946/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45947/// if the responder is dropped without sending a response, so that the client
45948/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45949impl std::ops::Drop for DatagramSocketAddIpv6MembershipResponder {
45950    fn drop(&mut self) {
45951        self.control_handle.shutdown();
45952        // Safety: drops once, never accessed again
45953        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45954    }
45955}
45956
45957impl fidl::endpoints::Responder for DatagramSocketAddIpv6MembershipResponder {
45958    type ControlHandle = DatagramSocketControlHandle;
45959
45960    fn control_handle(&self) -> &DatagramSocketControlHandle {
45961        &self.control_handle
45962    }
45963
45964    fn drop_without_shutdown(mut self) {
45965        // Safety: drops once, never accessed again due to mem::forget
45966        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45967        // Prevent Drop from running (which would shut down the channel)
45968        std::mem::forget(self);
45969    }
45970}
45971
45972impl DatagramSocketAddIpv6MembershipResponder {
45973    /// Sends a response to the FIDL transaction.
45974    ///
45975    /// Sets the channel to shutdown if an error occurs.
45976    pub fn send(
45977        self,
45978        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45979    ) -> Result<(), fidl::Error> {
45980        let _result = self.send_raw(result);
45981        if _result.is_err() {
45982            self.control_handle.shutdown();
45983        }
45984        self.drop_without_shutdown();
45985        _result
45986    }
45987
45988    /// Similar to "send" but does not shutdown the channel if an error occurs.
45989    pub fn send_no_shutdown_on_err(
45990        self,
45991        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45992    ) -> Result<(), fidl::Error> {
45993        let _result = self.send_raw(result);
45994        self.drop_without_shutdown();
45995        _result
45996    }
45997
45998    fn send_raw(
45999        &self,
46000        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46001    ) -> Result<(), fidl::Error> {
46002        self.control_handle.inner.send::<fidl::encoding::ResultType<
46003            fidl::encoding::EmptyStruct,
46004            fidl_fuchsia_posix::Errno,
46005        >>(
46006            result,
46007            self.tx_id,
46008            0x7c94727acb4ea4b3,
46009            fidl::encoding::DynamicFlags::empty(),
46010        )
46011    }
46012}
46013
46014#[must_use = "FIDL methods require a response to be sent"]
46015#[derive(Debug)]
46016pub struct DatagramSocketDropIpv6MembershipResponder {
46017    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46018    tx_id: u32,
46019}
46020
46021/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46022/// if the responder is dropped without sending a response, so that the client
46023/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46024impl std::ops::Drop for DatagramSocketDropIpv6MembershipResponder {
46025    fn drop(&mut self) {
46026        self.control_handle.shutdown();
46027        // Safety: drops once, never accessed again
46028        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46029    }
46030}
46031
46032impl fidl::endpoints::Responder for DatagramSocketDropIpv6MembershipResponder {
46033    type ControlHandle = DatagramSocketControlHandle;
46034
46035    fn control_handle(&self) -> &DatagramSocketControlHandle {
46036        &self.control_handle
46037    }
46038
46039    fn drop_without_shutdown(mut self) {
46040        // Safety: drops once, never accessed again due to mem::forget
46041        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46042        // Prevent Drop from running (which would shut down the channel)
46043        std::mem::forget(self);
46044    }
46045}
46046
46047impl DatagramSocketDropIpv6MembershipResponder {
46048    /// Sends a response to the FIDL transaction.
46049    ///
46050    /// Sets the channel to shutdown if an error occurs.
46051    pub fn send(
46052        self,
46053        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46054    ) -> Result<(), fidl::Error> {
46055        let _result = self.send_raw(result);
46056        if _result.is_err() {
46057            self.control_handle.shutdown();
46058        }
46059        self.drop_without_shutdown();
46060        _result
46061    }
46062
46063    /// Similar to "send" but does not shutdown the channel if an error occurs.
46064    pub fn send_no_shutdown_on_err(
46065        self,
46066        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46067    ) -> Result<(), fidl::Error> {
46068        let _result = self.send_raw(result);
46069        self.drop_without_shutdown();
46070        _result
46071    }
46072
46073    fn send_raw(
46074        &self,
46075        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46076    ) -> Result<(), fidl::Error> {
46077        self.control_handle.inner.send::<fidl::encoding::ResultType<
46078            fidl::encoding::EmptyStruct,
46079            fidl_fuchsia_posix::Errno,
46080        >>(
46081            result,
46082            self.tx_id,
46083            0x42104c70ccaba304,
46084            fidl::encoding::DynamicFlags::empty(),
46085        )
46086    }
46087}
46088
46089#[must_use = "FIDL methods require a response to be sent"]
46090#[derive(Debug)]
46091pub struct DatagramSocketSetIpv6MulticastInterfaceResponder {
46092    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46093    tx_id: u32,
46094}
46095
46096/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46097/// if the responder is dropped without sending a response, so that the client
46098/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46099impl std::ops::Drop for DatagramSocketSetIpv6MulticastInterfaceResponder {
46100    fn drop(&mut self) {
46101        self.control_handle.shutdown();
46102        // Safety: drops once, never accessed again
46103        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46104    }
46105}
46106
46107impl fidl::endpoints::Responder for DatagramSocketSetIpv6MulticastInterfaceResponder {
46108    type ControlHandle = DatagramSocketControlHandle;
46109
46110    fn control_handle(&self) -> &DatagramSocketControlHandle {
46111        &self.control_handle
46112    }
46113
46114    fn drop_without_shutdown(mut self) {
46115        // Safety: drops once, never accessed again due to mem::forget
46116        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46117        // Prevent Drop from running (which would shut down the channel)
46118        std::mem::forget(self);
46119    }
46120}
46121
46122impl DatagramSocketSetIpv6MulticastInterfaceResponder {
46123    /// Sends a response to the FIDL transaction.
46124    ///
46125    /// Sets the channel to shutdown if an error occurs.
46126    pub fn send(
46127        self,
46128        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46129    ) -> Result<(), fidl::Error> {
46130        let _result = self.send_raw(result);
46131        if _result.is_err() {
46132            self.control_handle.shutdown();
46133        }
46134        self.drop_without_shutdown();
46135        _result
46136    }
46137
46138    /// Similar to "send" but does not shutdown the channel if an error occurs.
46139    pub fn send_no_shutdown_on_err(
46140        self,
46141        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46142    ) -> Result<(), fidl::Error> {
46143        let _result = self.send_raw(result);
46144        self.drop_without_shutdown();
46145        _result
46146    }
46147
46148    fn send_raw(
46149        &self,
46150        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46151    ) -> Result<(), fidl::Error> {
46152        self.control_handle.inner.send::<fidl::encoding::ResultType<
46153            fidl::encoding::EmptyStruct,
46154            fidl_fuchsia_posix::Errno,
46155        >>(
46156            result,
46157            self.tx_id,
46158            0x135f76db3774ab3b,
46159            fidl::encoding::DynamicFlags::empty(),
46160        )
46161    }
46162}
46163
46164#[must_use = "FIDL methods require a response to be sent"]
46165#[derive(Debug)]
46166pub struct DatagramSocketGetIpv6MulticastInterfaceResponder {
46167    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46168    tx_id: u32,
46169}
46170
46171/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46172/// if the responder is dropped without sending a response, so that the client
46173/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46174impl std::ops::Drop for DatagramSocketGetIpv6MulticastInterfaceResponder {
46175    fn drop(&mut self) {
46176        self.control_handle.shutdown();
46177        // Safety: drops once, never accessed again
46178        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46179    }
46180}
46181
46182impl fidl::endpoints::Responder for DatagramSocketGetIpv6MulticastInterfaceResponder {
46183    type ControlHandle = DatagramSocketControlHandle;
46184
46185    fn control_handle(&self) -> &DatagramSocketControlHandle {
46186        &self.control_handle
46187    }
46188
46189    fn drop_without_shutdown(mut self) {
46190        // Safety: drops once, never accessed again due to mem::forget
46191        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46192        // Prevent Drop from running (which would shut down the channel)
46193        std::mem::forget(self);
46194    }
46195}
46196
46197impl DatagramSocketGetIpv6MulticastInterfaceResponder {
46198    /// Sends a response to the FIDL transaction.
46199    ///
46200    /// Sets the channel to shutdown if an error occurs.
46201    pub fn send(
46202        self,
46203        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
46204    ) -> Result<(), fidl::Error> {
46205        let _result = self.send_raw(result);
46206        if _result.is_err() {
46207            self.control_handle.shutdown();
46208        }
46209        self.drop_without_shutdown();
46210        _result
46211    }
46212
46213    /// Similar to "send" but does not shutdown the channel if an error occurs.
46214    pub fn send_no_shutdown_on_err(
46215        self,
46216        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
46217    ) -> Result<(), fidl::Error> {
46218        let _result = self.send_raw(result);
46219        self.drop_without_shutdown();
46220        _result
46221    }
46222
46223    fn send_raw(
46224        &self,
46225        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
46226    ) -> Result<(), fidl::Error> {
46227        self.control_handle.inner.send::<fidl::encoding::ResultType<
46228            BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
46229            fidl_fuchsia_posix::Errno,
46230        >>(
46231            result.map(|value| (value,)),
46232            self.tx_id,
46233            0x1f26fcdd348f1882,
46234            fidl::encoding::DynamicFlags::empty(),
46235        )
46236    }
46237}
46238
46239#[must_use = "FIDL methods require a response to be sent"]
46240#[derive(Debug)]
46241pub struct DatagramSocketSetIpv6UnicastHopsResponder {
46242    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46243    tx_id: u32,
46244}
46245
46246/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46247/// if the responder is dropped without sending a response, so that the client
46248/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46249impl std::ops::Drop for DatagramSocketSetIpv6UnicastHopsResponder {
46250    fn drop(&mut self) {
46251        self.control_handle.shutdown();
46252        // Safety: drops once, never accessed again
46253        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46254    }
46255}
46256
46257impl fidl::endpoints::Responder for DatagramSocketSetIpv6UnicastHopsResponder {
46258    type ControlHandle = DatagramSocketControlHandle;
46259
46260    fn control_handle(&self) -> &DatagramSocketControlHandle {
46261        &self.control_handle
46262    }
46263
46264    fn drop_without_shutdown(mut self) {
46265        // Safety: drops once, never accessed again due to mem::forget
46266        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46267        // Prevent Drop from running (which would shut down the channel)
46268        std::mem::forget(self);
46269    }
46270}
46271
46272impl DatagramSocketSetIpv6UnicastHopsResponder {
46273    /// Sends a response to the FIDL transaction.
46274    ///
46275    /// Sets the channel to shutdown if an error occurs.
46276    pub fn send(
46277        self,
46278        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46279    ) -> Result<(), fidl::Error> {
46280        let _result = self.send_raw(result);
46281        if _result.is_err() {
46282            self.control_handle.shutdown();
46283        }
46284        self.drop_without_shutdown();
46285        _result
46286    }
46287
46288    /// Similar to "send" but does not shutdown the channel if an error occurs.
46289    pub fn send_no_shutdown_on_err(
46290        self,
46291        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46292    ) -> Result<(), fidl::Error> {
46293        let _result = self.send_raw(result);
46294        self.drop_without_shutdown();
46295        _result
46296    }
46297
46298    fn send_raw(
46299        &self,
46300        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46301    ) -> Result<(), fidl::Error> {
46302        self.control_handle.inner.send::<fidl::encoding::ResultType<
46303            fidl::encoding::EmptyStruct,
46304            fidl_fuchsia_posix::Errno,
46305        >>(
46306            result,
46307            self.tx_id,
46308            0x157d51e98f462859,
46309            fidl::encoding::DynamicFlags::empty(),
46310        )
46311    }
46312}
46313
46314#[must_use = "FIDL methods require a response to be sent"]
46315#[derive(Debug)]
46316pub struct DatagramSocketGetIpv6UnicastHopsResponder {
46317    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46318    tx_id: u32,
46319}
46320
46321/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46322/// if the responder is dropped without sending a response, so that the client
46323/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46324impl std::ops::Drop for DatagramSocketGetIpv6UnicastHopsResponder {
46325    fn drop(&mut self) {
46326        self.control_handle.shutdown();
46327        // Safety: drops once, never accessed again
46328        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46329    }
46330}
46331
46332impl fidl::endpoints::Responder for DatagramSocketGetIpv6UnicastHopsResponder {
46333    type ControlHandle = DatagramSocketControlHandle;
46334
46335    fn control_handle(&self) -> &DatagramSocketControlHandle {
46336        &self.control_handle
46337    }
46338
46339    fn drop_without_shutdown(mut self) {
46340        // Safety: drops once, never accessed again due to mem::forget
46341        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46342        // Prevent Drop from running (which would shut down the channel)
46343        std::mem::forget(self);
46344    }
46345}
46346
46347impl DatagramSocketGetIpv6UnicastHopsResponder {
46348    /// Sends a response to the FIDL transaction.
46349    ///
46350    /// Sets the channel to shutdown if an error occurs.
46351    pub fn send(
46352        self,
46353        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
46354    ) -> Result<(), fidl::Error> {
46355        let _result = self.send_raw(result);
46356        if _result.is_err() {
46357            self.control_handle.shutdown();
46358        }
46359        self.drop_without_shutdown();
46360        _result
46361    }
46362
46363    /// Similar to "send" but does not shutdown the channel if an error occurs.
46364    pub fn send_no_shutdown_on_err(
46365        self,
46366        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
46367    ) -> Result<(), fidl::Error> {
46368        let _result = self.send_raw(result);
46369        self.drop_without_shutdown();
46370        _result
46371    }
46372
46373    fn send_raw(
46374        &self,
46375        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
46376    ) -> Result<(), fidl::Error> {
46377        self.control_handle.inner.send::<fidl::encoding::ResultType<
46378            BaseNetworkSocketGetIpv6UnicastHopsResponse,
46379            fidl_fuchsia_posix::Errno,
46380        >>(
46381            result.map(|value| (value,)),
46382            self.tx_id,
46383            0x21f4641cad8bd8d2,
46384            fidl::encoding::DynamicFlags::empty(),
46385        )
46386    }
46387}
46388
46389#[must_use = "FIDL methods require a response to be sent"]
46390#[derive(Debug)]
46391pub struct DatagramSocketSetIpv6ReceiveHopLimitResponder {
46392    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46393    tx_id: u32,
46394}
46395
46396/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46397/// if the responder is dropped without sending a response, so that the client
46398/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46399impl std::ops::Drop for DatagramSocketSetIpv6ReceiveHopLimitResponder {
46400    fn drop(&mut self) {
46401        self.control_handle.shutdown();
46402        // Safety: drops once, never accessed again
46403        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46404    }
46405}
46406
46407impl fidl::endpoints::Responder for DatagramSocketSetIpv6ReceiveHopLimitResponder {
46408    type ControlHandle = DatagramSocketControlHandle;
46409
46410    fn control_handle(&self) -> &DatagramSocketControlHandle {
46411        &self.control_handle
46412    }
46413
46414    fn drop_without_shutdown(mut self) {
46415        // Safety: drops once, never accessed again due to mem::forget
46416        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46417        // Prevent Drop from running (which would shut down the channel)
46418        std::mem::forget(self);
46419    }
46420}
46421
46422impl DatagramSocketSetIpv6ReceiveHopLimitResponder {
46423    /// Sends a response to the FIDL transaction.
46424    ///
46425    /// Sets the channel to shutdown if an error occurs.
46426    pub fn send(
46427        self,
46428        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46429    ) -> Result<(), fidl::Error> {
46430        let _result = self.send_raw(result);
46431        if _result.is_err() {
46432            self.control_handle.shutdown();
46433        }
46434        self.drop_without_shutdown();
46435        _result
46436    }
46437
46438    /// Similar to "send" but does not shutdown the channel if an error occurs.
46439    pub fn send_no_shutdown_on_err(
46440        self,
46441        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46442    ) -> Result<(), fidl::Error> {
46443        let _result = self.send_raw(result);
46444        self.drop_without_shutdown();
46445        _result
46446    }
46447
46448    fn send_raw(
46449        &self,
46450        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46451    ) -> Result<(), fidl::Error> {
46452        self.control_handle.inner.send::<fidl::encoding::ResultType<
46453            fidl::encoding::EmptyStruct,
46454            fidl_fuchsia_posix::Errno,
46455        >>(
46456            result,
46457            self.tx_id,
46458            0x5c24808ed2e84a1e,
46459            fidl::encoding::DynamicFlags::empty(),
46460        )
46461    }
46462}
46463
46464#[must_use = "FIDL methods require a response to be sent"]
46465#[derive(Debug)]
46466pub struct DatagramSocketGetIpv6ReceiveHopLimitResponder {
46467    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46468    tx_id: u32,
46469}
46470
46471/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46472/// if the responder is dropped without sending a response, so that the client
46473/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46474impl std::ops::Drop for DatagramSocketGetIpv6ReceiveHopLimitResponder {
46475    fn drop(&mut self) {
46476        self.control_handle.shutdown();
46477        // Safety: drops once, never accessed again
46478        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46479    }
46480}
46481
46482impl fidl::endpoints::Responder for DatagramSocketGetIpv6ReceiveHopLimitResponder {
46483    type ControlHandle = DatagramSocketControlHandle;
46484
46485    fn control_handle(&self) -> &DatagramSocketControlHandle {
46486        &self.control_handle
46487    }
46488
46489    fn drop_without_shutdown(mut self) {
46490        // Safety: drops once, never accessed again due to mem::forget
46491        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46492        // Prevent Drop from running (which would shut down the channel)
46493        std::mem::forget(self);
46494    }
46495}
46496
46497impl DatagramSocketGetIpv6ReceiveHopLimitResponder {
46498    /// Sends a response to the FIDL transaction.
46499    ///
46500    /// Sets the channel to shutdown if an error occurs.
46501    pub fn send(
46502        self,
46503        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
46504    ) -> Result<(), fidl::Error> {
46505        let _result = self.send_raw(result);
46506        if _result.is_err() {
46507            self.control_handle.shutdown();
46508        }
46509        self.drop_without_shutdown();
46510        _result
46511    }
46512
46513    /// Similar to "send" but does not shutdown the channel if an error occurs.
46514    pub fn send_no_shutdown_on_err(
46515        self,
46516        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
46517    ) -> Result<(), fidl::Error> {
46518        let _result = self.send_raw(result);
46519        self.drop_without_shutdown();
46520        _result
46521    }
46522
46523    fn send_raw(
46524        &self,
46525        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
46526    ) -> Result<(), fidl::Error> {
46527        self.control_handle.inner.send::<fidl::encoding::ResultType<
46528            BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
46529            fidl_fuchsia_posix::Errno,
46530        >>(
46531            result.map(|value| (value,)),
46532            self.tx_id,
46533            0x341e06689885b4c0,
46534            fidl::encoding::DynamicFlags::empty(),
46535        )
46536    }
46537}
46538
46539#[must_use = "FIDL methods require a response to be sent"]
46540#[derive(Debug)]
46541pub struct DatagramSocketSetIpv6MulticastHopsResponder {
46542    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46543    tx_id: u32,
46544}
46545
46546/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46547/// if the responder is dropped without sending a response, so that the client
46548/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46549impl std::ops::Drop for DatagramSocketSetIpv6MulticastHopsResponder {
46550    fn drop(&mut self) {
46551        self.control_handle.shutdown();
46552        // Safety: drops once, never accessed again
46553        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46554    }
46555}
46556
46557impl fidl::endpoints::Responder for DatagramSocketSetIpv6MulticastHopsResponder {
46558    type ControlHandle = DatagramSocketControlHandle;
46559
46560    fn control_handle(&self) -> &DatagramSocketControlHandle {
46561        &self.control_handle
46562    }
46563
46564    fn drop_without_shutdown(mut self) {
46565        // Safety: drops once, never accessed again due to mem::forget
46566        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46567        // Prevent Drop from running (which would shut down the channel)
46568        std::mem::forget(self);
46569    }
46570}
46571
46572impl DatagramSocketSetIpv6MulticastHopsResponder {
46573    /// Sends a response to the FIDL transaction.
46574    ///
46575    /// Sets the channel to shutdown if an error occurs.
46576    pub fn send(
46577        self,
46578        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46579    ) -> Result<(), fidl::Error> {
46580        let _result = self.send_raw(result);
46581        if _result.is_err() {
46582            self.control_handle.shutdown();
46583        }
46584        self.drop_without_shutdown();
46585        _result
46586    }
46587
46588    /// Similar to "send" but does not shutdown the channel if an error occurs.
46589    pub fn send_no_shutdown_on_err(
46590        self,
46591        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46592    ) -> Result<(), fidl::Error> {
46593        let _result = self.send_raw(result);
46594        self.drop_without_shutdown();
46595        _result
46596    }
46597
46598    fn send_raw(
46599        &self,
46600        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46601    ) -> Result<(), fidl::Error> {
46602        self.control_handle.inner.send::<fidl::encoding::ResultType<
46603            fidl::encoding::EmptyStruct,
46604            fidl_fuchsia_posix::Errno,
46605        >>(
46606            result,
46607            self.tx_id,
46608            0x25b9cd4d181f82c1,
46609            fidl::encoding::DynamicFlags::empty(),
46610        )
46611    }
46612}
46613
46614#[must_use = "FIDL methods require a response to be sent"]
46615#[derive(Debug)]
46616pub struct DatagramSocketGetIpv6MulticastHopsResponder {
46617    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46618    tx_id: u32,
46619}
46620
46621/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46622/// if the responder is dropped without sending a response, so that the client
46623/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46624impl std::ops::Drop for DatagramSocketGetIpv6MulticastHopsResponder {
46625    fn drop(&mut self) {
46626        self.control_handle.shutdown();
46627        // Safety: drops once, never accessed again
46628        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46629    }
46630}
46631
46632impl fidl::endpoints::Responder for DatagramSocketGetIpv6MulticastHopsResponder {
46633    type ControlHandle = DatagramSocketControlHandle;
46634
46635    fn control_handle(&self) -> &DatagramSocketControlHandle {
46636        &self.control_handle
46637    }
46638
46639    fn drop_without_shutdown(mut self) {
46640        // Safety: drops once, never accessed again due to mem::forget
46641        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46642        // Prevent Drop from running (which would shut down the channel)
46643        std::mem::forget(self);
46644    }
46645}
46646
46647impl DatagramSocketGetIpv6MulticastHopsResponder {
46648    /// Sends a response to the FIDL transaction.
46649    ///
46650    /// Sets the channel to shutdown if an error occurs.
46651    pub fn send(
46652        self,
46653        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
46654    ) -> Result<(), fidl::Error> {
46655        let _result = self.send_raw(result);
46656        if _result.is_err() {
46657            self.control_handle.shutdown();
46658        }
46659        self.drop_without_shutdown();
46660        _result
46661    }
46662
46663    /// Similar to "send" but does not shutdown the channel if an error occurs.
46664    pub fn send_no_shutdown_on_err(
46665        self,
46666        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
46667    ) -> Result<(), fidl::Error> {
46668        let _result = self.send_raw(result);
46669        self.drop_without_shutdown();
46670        _result
46671    }
46672
46673    fn send_raw(
46674        &self,
46675        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
46676    ) -> Result<(), fidl::Error> {
46677        self.control_handle.inner.send::<fidl::encoding::ResultType<
46678            BaseNetworkSocketGetIpv6MulticastHopsResponse,
46679            fidl_fuchsia_posix::Errno,
46680        >>(
46681            result.map(|value| (value,)),
46682            self.tx_id,
46683            0x52916948a365012a,
46684            fidl::encoding::DynamicFlags::empty(),
46685        )
46686    }
46687}
46688
46689#[must_use = "FIDL methods require a response to be sent"]
46690#[derive(Debug)]
46691pub struct DatagramSocketSetIpv6MulticastLoopbackResponder {
46692    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46693    tx_id: u32,
46694}
46695
46696/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46697/// if the responder is dropped without sending a response, so that the client
46698/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46699impl std::ops::Drop for DatagramSocketSetIpv6MulticastLoopbackResponder {
46700    fn drop(&mut self) {
46701        self.control_handle.shutdown();
46702        // Safety: drops once, never accessed again
46703        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46704    }
46705}
46706
46707impl fidl::endpoints::Responder for DatagramSocketSetIpv6MulticastLoopbackResponder {
46708    type ControlHandle = DatagramSocketControlHandle;
46709
46710    fn control_handle(&self) -> &DatagramSocketControlHandle {
46711        &self.control_handle
46712    }
46713
46714    fn drop_without_shutdown(mut self) {
46715        // Safety: drops once, never accessed again due to mem::forget
46716        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46717        // Prevent Drop from running (which would shut down the channel)
46718        std::mem::forget(self);
46719    }
46720}
46721
46722impl DatagramSocketSetIpv6MulticastLoopbackResponder {
46723    /// Sends a response to the FIDL transaction.
46724    ///
46725    /// Sets the channel to shutdown if an error occurs.
46726    pub fn send(
46727        self,
46728        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46729    ) -> Result<(), fidl::Error> {
46730        let _result = self.send_raw(result);
46731        if _result.is_err() {
46732            self.control_handle.shutdown();
46733        }
46734        self.drop_without_shutdown();
46735        _result
46736    }
46737
46738    /// Similar to "send" but does not shutdown the channel if an error occurs.
46739    pub fn send_no_shutdown_on_err(
46740        self,
46741        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46742    ) -> Result<(), fidl::Error> {
46743        let _result = self.send_raw(result);
46744        self.drop_without_shutdown();
46745        _result
46746    }
46747
46748    fn send_raw(
46749        &self,
46750        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46751    ) -> Result<(), fidl::Error> {
46752        self.control_handle.inner.send::<fidl::encoding::ResultType<
46753            fidl::encoding::EmptyStruct,
46754            fidl_fuchsia_posix::Errno,
46755        >>(
46756            result,
46757            self.tx_id,
46758            0x55701c409ff41b40,
46759            fidl::encoding::DynamicFlags::empty(),
46760        )
46761    }
46762}
46763
46764#[must_use = "FIDL methods require a response to be sent"]
46765#[derive(Debug)]
46766pub struct DatagramSocketGetIpv6MulticastLoopbackResponder {
46767    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46768    tx_id: u32,
46769}
46770
46771/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46772/// if the responder is dropped without sending a response, so that the client
46773/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46774impl std::ops::Drop for DatagramSocketGetIpv6MulticastLoopbackResponder {
46775    fn drop(&mut self) {
46776        self.control_handle.shutdown();
46777        // Safety: drops once, never accessed again
46778        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46779    }
46780}
46781
46782impl fidl::endpoints::Responder for DatagramSocketGetIpv6MulticastLoopbackResponder {
46783    type ControlHandle = DatagramSocketControlHandle;
46784
46785    fn control_handle(&self) -> &DatagramSocketControlHandle {
46786        &self.control_handle
46787    }
46788
46789    fn drop_without_shutdown(mut self) {
46790        // Safety: drops once, never accessed again due to mem::forget
46791        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46792        // Prevent Drop from running (which would shut down the channel)
46793        std::mem::forget(self);
46794    }
46795}
46796
46797impl DatagramSocketGetIpv6MulticastLoopbackResponder {
46798    /// Sends a response to the FIDL transaction.
46799    ///
46800    /// Sets the channel to shutdown if an error occurs.
46801    pub fn send(
46802        self,
46803        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
46804    ) -> Result<(), fidl::Error> {
46805        let _result = self.send_raw(result);
46806        if _result.is_err() {
46807            self.control_handle.shutdown();
46808        }
46809        self.drop_without_shutdown();
46810        _result
46811    }
46812
46813    /// Similar to "send" but does not shutdown the channel if an error occurs.
46814    pub fn send_no_shutdown_on_err(
46815        self,
46816        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
46817    ) -> Result<(), fidl::Error> {
46818        let _result = self.send_raw(result);
46819        self.drop_without_shutdown();
46820        _result
46821    }
46822
46823    fn send_raw(
46824        &self,
46825        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
46826    ) -> Result<(), fidl::Error> {
46827        self.control_handle.inner.send::<fidl::encoding::ResultType<
46828            BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
46829            fidl_fuchsia_posix::Errno,
46830        >>(
46831            result.map(|value| (value,)),
46832            self.tx_id,
46833            0x4415b701fde319c3,
46834            fidl::encoding::DynamicFlags::empty(),
46835        )
46836    }
46837}
46838
46839#[must_use = "FIDL methods require a response to be sent"]
46840#[derive(Debug)]
46841pub struct DatagramSocketSetIpv6OnlyResponder {
46842    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46843    tx_id: u32,
46844}
46845
46846/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46847/// if the responder is dropped without sending a response, so that the client
46848/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46849impl std::ops::Drop for DatagramSocketSetIpv6OnlyResponder {
46850    fn drop(&mut self) {
46851        self.control_handle.shutdown();
46852        // Safety: drops once, never accessed again
46853        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46854    }
46855}
46856
46857impl fidl::endpoints::Responder for DatagramSocketSetIpv6OnlyResponder {
46858    type ControlHandle = DatagramSocketControlHandle;
46859
46860    fn control_handle(&self) -> &DatagramSocketControlHandle {
46861        &self.control_handle
46862    }
46863
46864    fn drop_without_shutdown(mut self) {
46865        // Safety: drops once, never accessed again due to mem::forget
46866        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46867        // Prevent Drop from running (which would shut down the channel)
46868        std::mem::forget(self);
46869    }
46870}
46871
46872impl DatagramSocketSetIpv6OnlyResponder {
46873    /// Sends a response to the FIDL transaction.
46874    ///
46875    /// Sets the channel to shutdown if an error occurs.
46876    pub fn send(
46877        self,
46878        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46879    ) -> Result<(), fidl::Error> {
46880        let _result = self.send_raw(result);
46881        if _result.is_err() {
46882            self.control_handle.shutdown();
46883        }
46884        self.drop_without_shutdown();
46885        _result
46886    }
46887
46888    /// Similar to "send" but does not shutdown the channel if an error occurs.
46889    pub fn send_no_shutdown_on_err(
46890        self,
46891        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46892    ) -> Result<(), fidl::Error> {
46893        let _result = self.send_raw(result);
46894        self.drop_without_shutdown();
46895        _result
46896    }
46897
46898    fn send_raw(
46899        &self,
46900        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46901    ) -> Result<(), fidl::Error> {
46902        self.control_handle.inner.send::<fidl::encoding::ResultType<
46903            fidl::encoding::EmptyStruct,
46904            fidl_fuchsia_posix::Errno,
46905        >>(
46906            result,
46907            self.tx_id,
46908            0x4873f1364758cbba,
46909            fidl::encoding::DynamicFlags::empty(),
46910        )
46911    }
46912}
46913
46914#[must_use = "FIDL methods require a response to be sent"]
46915#[derive(Debug)]
46916pub struct DatagramSocketGetIpv6OnlyResponder {
46917    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46918    tx_id: u32,
46919}
46920
46921/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46922/// if the responder is dropped without sending a response, so that the client
46923/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46924impl std::ops::Drop for DatagramSocketGetIpv6OnlyResponder {
46925    fn drop(&mut self) {
46926        self.control_handle.shutdown();
46927        // Safety: drops once, never accessed again
46928        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46929    }
46930}
46931
46932impl fidl::endpoints::Responder for DatagramSocketGetIpv6OnlyResponder {
46933    type ControlHandle = DatagramSocketControlHandle;
46934
46935    fn control_handle(&self) -> &DatagramSocketControlHandle {
46936        &self.control_handle
46937    }
46938
46939    fn drop_without_shutdown(mut self) {
46940        // Safety: drops once, never accessed again due to mem::forget
46941        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46942        // Prevent Drop from running (which would shut down the channel)
46943        std::mem::forget(self);
46944    }
46945}
46946
46947impl DatagramSocketGetIpv6OnlyResponder {
46948    /// Sends a response to the FIDL transaction.
46949    ///
46950    /// Sets the channel to shutdown if an error occurs.
46951    pub fn send(
46952        self,
46953        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
46954    ) -> Result<(), fidl::Error> {
46955        let _result = self.send_raw(result);
46956        if _result.is_err() {
46957            self.control_handle.shutdown();
46958        }
46959        self.drop_without_shutdown();
46960        _result
46961    }
46962
46963    /// Similar to "send" but does not shutdown the channel if an error occurs.
46964    pub fn send_no_shutdown_on_err(
46965        self,
46966        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
46967    ) -> Result<(), fidl::Error> {
46968        let _result = self.send_raw(result);
46969        self.drop_without_shutdown();
46970        _result
46971    }
46972
46973    fn send_raw(
46974        &self,
46975        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
46976    ) -> Result<(), fidl::Error> {
46977        self.control_handle.inner.send::<fidl::encoding::ResultType<
46978            BaseNetworkSocketGetIpv6OnlyResponse,
46979            fidl_fuchsia_posix::Errno,
46980        >>(
46981            result.map(|value| (value,)),
46982            self.tx_id,
46983            0x4aa3340a1a26b89c,
46984            fidl::encoding::DynamicFlags::empty(),
46985        )
46986    }
46987}
46988
46989#[must_use = "FIDL methods require a response to be sent"]
46990#[derive(Debug)]
46991pub struct DatagramSocketSetIpv6ReceiveTrafficClassResponder {
46992    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46993    tx_id: u32,
46994}
46995
46996/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46997/// if the responder is dropped without sending a response, so that the client
46998/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46999impl std::ops::Drop for DatagramSocketSetIpv6ReceiveTrafficClassResponder {
47000    fn drop(&mut self) {
47001        self.control_handle.shutdown();
47002        // Safety: drops once, never accessed again
47003        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47004    }
47005}
47006
47007impl fidl::endpoints::Responder for DatagramSocketSetIpv6ReceiveTrafficClassResponder {
47008    type ControlHandle = DatagramSocketControlHandle;
47009
47010    fn control_handle(&self) -> &DatagramSocketControlHandle {
47011        &self.control_handle
47012    }
47013
47014    fn drop_without_shutdown(mut self) {
47015        // Safety: drops once, never accessed again due to mem::forget
47016        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47017        // Prevent Drop from running (which would shut down the channel)
47018        std::mem::forget(self);
47019    }
47020}
47021
47022impl DatagramSocketSetIpv6ReceiveTrafficClassResponder {
47023    /// Sends a response to the FIDL transaction.
47024    ///
47025    /// Sets the channel to shutdown if an error occurs.
47026    pub fn send(
47027        self,
47028        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47029    ) -> Result<(), fidl::Error> {
47030        let _result = self.send_raw(result);
47031        if _result.is_err() {
47032            self.control_handle.shutdown();
47033        }
47034        self.drop_without_shutdown();
47035        _result
47036    }
47037
47038    /// Similar to "send" but does not shutdown the channel if an error occurs.
47039    pub fn send_no_shutdown_on_err(
47040        self,
47041        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47042    ) -> Result<(), fidl::Error> {
47043        let _result = self.send_raw(result);
47044        self.drop_without_shutdown();
47045        _result
47046    }
47047
47048    fn send_raw(
47049        &self,
47050        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47051    ) -> Result<(), fidl::Error> {
47052        self.control_handle.inner.send::<fidl::encoding::ResultType<
47053            fidl::encoding::EmptyStruct,
47054            fidl_fuchsia_posix::Errno,
47055        >>(
47056            result,
47057            self.tx_id,
47058            0x58f07c8788d099a0,
47059            fidl::encoding::DynamicFlags::empty(),
47060        )
47061    }
47062}
47063
47064#[must_use = "FIDL methods require a response to be sent"]
47065#[derive(Debug)]
47066pub struct DatagramSocketGetIpv6ReceiveTrafficClassResponder {
47067    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47068    tx_id: u32,
47069}
47070
47071/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47072/// if the responder is dropped without sending a response, so that the client
47073/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47074impl std::ops::Drop for DatagramSocketGetIpv6ReceiveTrafficClassResponder {
47075    fn drop(&mut self) {
47076        self.control_handle.shutdown();
47077        // Safety: drops once, never accessed again
47078        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47079    }
47080}
47081
47082impl fidl::endpoints::Responder for DatagramSocketGetIpv6ReceiveTrafficClassResponder {
47083    type ControlHandle = DatagramSocketControlHandle;
47084
47085    fn control_handle(&self) -> &DatagramSocketControlHandle {
47086        &self.control_handle
47087    }
47088
47089    fn drop_without_shutdown(mut self) {
47090        // Safety: drops once, never accessed again due to mem::forget
47091        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47092        // Prevent Drop from running (which would shut down the channel)
47093        std::mem::forget(self);
47094    }
47095}
47096
47097impl DatagramSocketGetIpv6ReceiveTrafficClassResponder {
47098    /// Sends a response to the FIDL transaction.
47099    ///
47100    /// Sets the channel to shutdown if an error occurs.
47101    pub fn send(
47102        self,
47103        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
47104    ) -> Result<(), fidl::Error> {
47105        let _result = self.send_raw(result);
47106        if _result.is_err() {
47107            self.control_handle.shutdown();
47108        }
47109        self.drop_without_shutdown();
47110        _result
47111    }
47112
47113    /// Similar to "send" but does not shutdown the channel if an error occurs.
47114    pub fn send_no_shutdown_on_err(
47115        self,
47116        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
47117    ) -> Result<(), fidl::Error> {
47118        let _result = self.send_raw(result);
47119        self.drop_without_shutdown();
47120        _result
47121    }
47122
47123    fn send_raw(
47124        &self,
47125        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
47126    ) -> Result<(), fidl::Error> {
47127        self.control_handle.inner.send::<fidl::encoding::ResultType<
47128            BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
47129            fidl_fuchsia_posix::Errno,
47130        >>(
47131            result.map(|value| (value,)),
47132            self.tx_id,
47133            0x2e334df1da553ffa,
47134            fidl::encoding::DynamicFlags::empty(),
47135        )
47136    }
47137}
47138
47139#[must_use = "FIDL methods require a response to be sent"]
47140#[derive(Debug)]
47141pub struct DatagramSocketSetIpv6TrafficClassResponder {
47142    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47143    tx_id: u32,
47144}
47145
47146/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47147/// if the responder is dropped without sending a response, so that the client
47148/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47149impl std::ops::Drop for DatagramSocketSetIpv6TrafficClassResponder {
47150    fn drop(&mut self) {
47151        self.control_handle.shutdown();
47152        // Safety: drops once, never accessed again
47153        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47154    }
47155}
47156
47157impl fidl::endpoints::Responder for DatagramSocketSetIpv6TrafficClassResponder {
47158    type ControlHandle = DatagramSocketControlHandle;
47159
47160    fn control_handle(&self) -> &DatagramSocketControlHandle {
47161        &self.control_handle
47162    }
47163
47164    fn drop_without_shutdown(mut self) {
47165        // Safety: drops once, never accessed again due to mem::forget
47166        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47167        // Prevent Drop from running (which would shut down the channel)
47168        std::mem::forget(self);
47169    }
47170}
47171
47172impl DatagramSocketSetIpv6TrafficClassResponder {
47173    /// Sends a response to the FIDL transaction.
47174    ///
47175    /// Sets the channel to shutdown if an error occurs.
47176    pub fn send(
47177        self,
47178        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47179    ) -> Result<(), fidl::Error> {
47180        let _result = self.send_raw(result);
47181        if _result.is_err() {
47182            self.control_handle.shutdown();
47183        }
47184        self.drop_without_shutdown();
47185        _result
47186    }
47187
47188    /// Similar to "send" but does not shutdown the channel if an error occurs.
47189    pub fn send_no_shutdown_on_err(
47190        self,
47191        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47192    ) -> Result<(), fidl::Error> {
47193        let _result = self.send_raw(result);
47194        self.drop_without_shutdown();
47195        _result
47196    }
47197
47198    fn send_raw(
47199        &self,
47200        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47201    ) -> Result<(), fidl::Error> {
47202        self.control_handle.inner.send::<fidl::encoding::ResultType<
47203            fidl::encoding::EmptyStruct,
47204            fidl_fuchsia_posix::Errno,
47205        >>(
47206            result,
47207            self.tx_id,
47208            0x6af077800c5a0b4f,
47209            fidl::encoding::DynamicFlags::empty(),
47210        )
47211    }
47212}
47213
47214#[must_use = "FIDL methods require a response to be sent"]
47215#[derive(Debug)]
47216pub struct DatagramSocketGetIpv6TrafficClassResponder {
47217    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47218    tx_id: u32,
47219}
47220
47221/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47222/// if the responder is dropped without sending a response, so that the client
47223/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47224impl std::ops::Drop for DatagramSocketGetIpv6TrafficClassResponder {
47225    fn drop(&mut self) {
47226        self.control_handle.shutdown();
47227        // Safety: drops once, never accessed again
47228        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47229    }
47230}
47231
47232impl fidl::endpoints::Responder for DatagramSocketGetIpv6TrafficClassResponder {
47233    type ControlHandle = DatagramSocketControlHandle;
47234
47235    fn control_handle(&self) -> &DatagramSocketControlHandle {
47236        &self.control_handle
47237    }
47238
47239    fn drop_without_shutdown(mut self) {
47240        // Safety: drops once, never accessed again due to mem::forget
47241        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47242        // Prevent Drop from running (which would shut down the channel)
47243        std::mem::forget(self);
47244    }
47245}
47246
47247impl DatagramSocketGetIpv6TrafficClassResponder {
47248    /// Sends a response to the FIDL transaction.
47249    ///
47250    /// Sets the channel to shutdown if an error occurs.
47251    pub fn send(
47252        self,
47253        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
47254    ) -> Result<(), fidl::Error> {
47255        let _result = self.send_raw(result);
47256        if _result.is_err() {
47257            self.control_handle.shutdown();
47258        }
47259        self.drop_without_shutdown();
47260        _result
47261    }
47262
47263    /// Similar to "send" but does not shutdown the channel if an error occurs.
47264    pub fn send_no_shutdown_on_err(
47265        self,
47266        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
47267    ) -> Result<(), fidl::Error> {
47268        let _result = self.send_raw(result);
47269        self.drop_without_shutdown();
47270        _result
47271    }
47272
47273    fn send_raw(
47274        &self,
47275        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
47276    ) -> Result<(), fidl::Error> {
47277        self.control_handle.inner.send::<fidl::encoding::ResultType<
47278            BaseNetworkSocketGetIpv6TrafficClassResponse,
47279            fidl_fuchsia_posix::Errno,
47280        >>(
47281            result.map(|value| (value,)),
47282            self.tx_id,
47283            0x6baf6eed8fc2f04,
47284            fidl::encoding::DynamicFlags::empty(),
47285        )
47286    }
47287}
47288
47289#[must_use = "FIDL methods require a response to be sent"]
47290#[derive(Debug)]
47291pub struct DatagramSocketSetIpv6ReceivePacketInfoResponder {
47292    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47293    tx_id: u32,
47294}
47295
47296/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47297/// if the responder is dropped without sending a response, so that the client
47298/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47299impl std::ops::Drop for DatagramSocketSetIpv6ReceivePacketInfoResponder {
47300    fn drop(&mut self) {
47301        self.control_handle.shutdown();
47302        // Safety: drops once, never accessed again
47303        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47304    }
47305}
47306
47307impl fidl::endpoints::Responder for DatagramSocketSetIpv6ReceivePacketInfoResponder {
47308    type ControlHandle = DatagramSocketControlHandle;
47309
47310    fn control_handle(&self) -> &DatagramSocketControlHandle {
47311        &self.control_handle
47312    }
47313
47314    fn drop_without_shutdown(mut self) {
47315        // Safety: drops once, never accessed again due to mem::forget
47316        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47317        // Prevent Drop from running (which would shut down the channel)
47318        std::mem::forget(self);
47319    }
47320}
47321
47322impl DatagramSocketSetIpv6ReceivePacketInfoResponder {
47323    /// Sends a response to the FIDL transaction.
47324    ///
47325    /// Sets the channel to shutdown if an error occurs.
47326    pub fn send(
47327        self,
47328        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47329    ) -> Result<(), fidl::Error> {
47330        let _result = self.send_raw(result);
47331        if _result.is_err() {
47332            self.control_handle.shutdown();
47333        }
47334        self.drop_without_shutdown();
47335        _result
47336    }
47337
47338    /// Similar to "send" but does not shutdown the channel if an error occurs.
47339    pub fn send_no_shutdown_on_err(
47340        self,
47341        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47342    ) -> Result<(), fidl::Error> {
47343        let _result = self.send_raw(result);
47344        self.drop_without_shutdown();
47345        _result
47346    }
47347
47348    fn send_raw(
47349        &self,
47350        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47351    ) -> Result<(), fidl::Error> {
47352        self.control_handle.inner.send::<fidl::encoding::ResultType<
47353            fidl::encoding::EmptyStruct,
47354            fidl_fuchsia_posix::Errno,
47355        >>(
47356            result,
47357            self.tx_id,
47358            0x19259775b1a92768,
47359            fidl::encoding::DynamicFlags::empty(),
47360        )
47361    }
47362}
47363
47364#[must_use = "FIDL methods require a response to be sent"]
47365#[derive(Debug)]
47366pub struct DatagramSocketGetIpv6ReceivePacketInfoResponder {
47367    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47368    tx_id: u32,
47369}
47370
47371/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47372/// if the responder is dropped without sending a response, so that the client
47373/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47374impl std::ops::Drop for DatagramSocketGetIpv6ReceivePacketInfoResponder {
47375    fn drop(&mut self) {
47376        self.control_handle.shutdown();
47377        // Safety: drops once, never accessed again
47378        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47379    }
47380}
47381
47382impl fidl::endpoints::Responder for DatagramSocketGetIpv6ReceivePacketInfoResponder {
47383    type ControlHandle = DatagramSocketControlHandle;
47384
47385    fn control_handle(&self) -> &DatagramSocketControlHandle {
47386        &self.control_handle
47387    }
47388
47389    fn drop_without_shutdown(mut self) {
47390        // Safety: drops once, never accessed again due to mem::forget
47391        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47392        // Prevent Drop from running (which would shut down the channel)
47393        std::mem::forget(self);
47394    }
47395}
47396
47397impl DatagramSocketGetIpv6ReceivePacketInfoResponder {
47398    /// Sends a response to the FIDL transaction.
47399    ///
47400    /// Sets the channel to shutdown if an error occurs.
47401    pub fn send(
47402        self,
47403        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
47404    ) -> Result<(), fidl::Error> {
47405        let _result = self.send_raw(result);
47406        if _result.is_err() {
47407            self.control_handle.shutdown();
47408        }
47409        self.drop_without_shutdown();
47410        _result
47411    }
47412
47413    /// Similar to "send" but does not shutdown the channel if an error occurs.
47414    pub fn send_no_shutdown_on_err(
47415        self,
47416        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
47417    ) -> Result<(), fidl::Error> {
47418        let _result = self.send_raw(result);
47419        self.drop_without_shutdown();
47420        _result
47421    }
47422
47423    fn send_raw(
47424        &self,
47425        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
47426    ) -> Result<(), fidl::Error> {
47427        self.control_handle.inner.send::<fidl::encoding::ResultType<
47428            BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
47429            fidl_fuchsia_posix::Errno,
47430        >>(
47431            result.map(|value| (value,)),
47432            self.tx_id,
47433            0x7acd4a2775baec75,
47434            fidl::encoding::DynamicFlags::empty(),
47435        )
47436    }
47437}
47438
47439#[must_use = "FIDL methods require a response to be sent"]
47440#[derive(Debug)]
47441pub struct DatagramSocketGetOriginalDestinationResponder {
47442    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47443    tx_id: u32,
47444}
47445
47446/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47447/// if the responder is dropped without sending a response, so that the client
47448/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47449impl std::ops::Drop for DatagramSocketGetOriginalDestinationResponder {
47450    fn drop(&mut self) {
47451        self.control_handle.shutdown();
47452        // Safety: drops once, never accessed again
47453        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47454    }
47455}
47456
47457impl fidl::endpoints::Responder for DatagramSocketGetOriginalDestinationResponder {
47458    type ControlHandle = DatagramSocketControlHandle;
47459
47460    fn control_handle(&self) -> &DatagramSocketControlHandle {
47461        &self.control_handle
47462    }
47463
47464    fn drop_without_shutdown(mut self) {
47465        // Safety: drops once, never accessed again due to mem::forget
47466        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47467        // Prevent Drop from running (which would shut down the channel)
47468        std::mem::forget(self);
47469    }
47470}
47471
47472impl DatagramSocketGetOriginalDestinationResponder {
47473    /// Sends a response to the FIDL transaction.
47474    ///
47475    /// Sets the channel to shutdown if an error occurs.
47476    pub fn send(
47477        self,
47478        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
47479    ) -> Result<(), fidl::Error> {
47480        let _result = self.send_raw(result);
47481        if _result.is_err() {
47482            self.control_handle.shutdown();
47483        }
47484        self.drop_without_shutdown();
47485        _result
47486    }
47487
47488    /// Similar to "send" but does not shutdown the channel if an error occurs.
47489    pub fn send_no_shutdown_on_err(
47490        self,
47491        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
47492    ) -> Result<(), fidl::Error> {
47493        let _result = self.send_raw(result);
47494        self.drop_without_shutdown();
47495        _result
47496    }
47497
47498    fn send_raw(
47499        &self,
47500        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
47501    ) -> Result<(), fidl::Error> {
47502        self.control_handle.inner.send::<fidl::encoding::ResultType<
47503            BaseNetworkSocketGetOriginalDestinationResponse,
47504            fidl_fuchsia_posix::Errno,
47505        >>(
47506            result.map(|value| (value,)),
47507            self.tx_id,
47508            0x38bf28f0dafdbac0,
47509            fidl::encoding::DynamicFlags::empty(),
47510        )
47511    }
47512}
47513
47514#[must_use = "FIDL methods require a response to be sent"]
47515#[derive(Debug)]
47516pub struct DatagramSocketGetInfoResponder {
47517    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47518    tx_id: u32,
47519}
47520
47521/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47522/// if the responder is dropped without sending a response, so that the client
47523/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47524impl std::ops::Drop for DatagramSocketGetInfoResponder {
47525    fn drop(&mut self) {
47526        self.control_handle.shutdown();
47527        // Safety: drops once, never accessed again
47528        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47529    }
47530}
47531
47532impl fidl::endpoints::Responder for DatagramSocketGetInfoResponder {
47533    type ControlHandle = DatagramSocketControlHandle;
47534
47535    fn control_handle(&self) -> &DatagramSocketControlHandle {
47536        &self.control_handle
47537    }
47538
47539    fn drop_without_shutdown(mut self) {
47540        // Safety: drops once, never accessed again due to mem::forget
47541        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47542        // Prevent Drop from running (which would shut down the channel)
47543        std::mem::forget(self);
47544    }
47545}
47546
47547impl DatagramSocketGetInfoResponder {
47548    /// Sends a response to the FIDL transaction.
47549    ///
47550    /// Sets the channel to shutdown if an error occurs.
47551    pub fn send(
47552        self,
47553        mut result: Result<(Domain, DatagramSocketProtocol), fidl_fuchsia_posix::Errno>,
47554    ) -> Result<(), fidl::Error> {
47555        let _result = self.send_raw(result);
47556        if _result.is_err() {
47557            self.control_handle.shutdown();
47558        }
47559        self.drop_without_shutdown();
47560        _result
47561    }
47562
47563    /// Similar to "send" but does not shutdown the channel if an error occurs.
47564    pub fn send_no_shutdown_on_err(
47565        self,
47566        mut result: Result<(Domain, DatagramSocketProtocol), fidl_fuchsia_posix::Errno>,
47567    ) -> Result<(), fidl::Error> {
47568        let _result = self.send_raw(result);
47569        self.drop_without_shutdown();
47570        _result
47571    }
47572
47573    fn send_raw(
47574        &self,
47575        mut result: Result<(Domain, DatagramSocketProtocol), fidl_fuchsia_posix::Errno>,
47576    ) -> Result<(), fidl::Error> {
47577        self.control_handle.inner.send::<fidl::encoding::ResultType<
47578            BaseDatagramSocketGetInfoResponse,
47579            fidl_fuchsia_posix::Errno,
47580        >>(
47581            result,
47582            self.tx_id,
47583            0x48aa0a1f6a32d2ed,
47584            fidl::encoding::DynamicFlags::empty(),
47585        )
47586    }
47587}
47588
47589#[must_use = "FIDL methods require a response to be sent"]
47590#[derive(Debug)]
47591pub struct DatagramSocketDescribeResponder {
47592    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47593    tx_id: u32,
47594}
47595
47596/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47597/// if the responder is dropped without sending a response, so that the client
47598/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47599impl std::ops::Drop for DatagramSocketDescribeResponder {
47600    fn drop(&mut self) {
47601        self.control_handle.shutdown();
47602        // Safety: drops once, never accessed again
47603        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47604    }
47605}
47606
47607impl fidl::endpoints::Responder for DatagramSocketDescribeResponder {
47608    type ControlHandle = DatagramSocketControlHandle;
47609
47610    fn control_handle(&self) -> &DatagramSocketControlHandle {
47611        &self.control_handle
47612    }
47613
47614    fn drop_without_shutdown(mut self) {
47615        // Safety: drops once, never accessed again due to mem::forget
47616        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47617        // Prevent Drop from running (which would shut down the channel)
47618        std::mem::forget(self);
47619    }
47620}
47621
47622impl DatagramSocketDescribeResponder {
47623    /// Sends a response to the FIDL transaction.
47624    ///
47625    /// Sets the channel to shutdown if an error occurs.
47626    pub fn send(self, mut payload: DatagramSocketDescribeResponse) -> Result<(), fidl::Error> {
47627        let _result = self.send_raw(payload);
47628        if _result.is_err() {
47629            self.control_handle.shutdown();
47630        }
47631        self.drop_without_shutdown();
47632        _result
47633    }
47634
47635    /// Similar to "send" but does not shutdown the channel if an error occurs.
47636    pub fn send_no_shutdown_on_err(
47637        self,
47638        mut payload: DatagramSocketDescribeResponse,
47639    ) -> Result<(), fidl::Error> {
47640        let _result = self.send_raw(payload);
47641        self.drop_without_shutdown();
47642        _result
47643    }
47644
47645    fn send_raw(&self, mut payload: DatagramSocketDescribeResponse) -> Result<(), fidl::Error> {
47646        self.control_handle.inner.send::<DatagramSocketDescribeResponse>(
47647            &mut payload,
47648            self.tx_id,
47649            0xbf1e2f0a86601f3,
47650            fidl::encoding::DynamicFlags::empty(),
47651        )
47652    }
47653}
47654
47655#[must_use = "FIDL methods require a response to be sent"]
47656#[derive(Debug)]
47657pub struct DatagramSocketSendMsgPreflightResponder {
47658    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47659    tx_id: u32,
47660}
47661
47662/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47663/// if the responder is dropped without sending a response, so that the client
47664/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47665impl std::ops::Drop for DatagramSocketSendMsgPreflightResponder {
47666    fn drop(&mut self) {
47667        self.control_handle.shutdown();
47668        // Safety: drops once, never accessed again
47669        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47670    }
47671}
47672
47673impl fidl::endpoints::Responder for DatagramSocketSendMsgPreflightResponder {
47674    type ControlHandle = DatagramSocketControlHandle;
47675
47676    fn control_handle(&self) -> &DatagramSocketControlHandle {
47677        &self.control_handle
47678    }
47679
47680    fn drop_without_shutdown(mut self) {
47681        // Safety: drops once, never accessed again due to mem::forget
47682        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47683        // Prevent Drop from running (which would shut down the channel)
47684        std::mem::forget(self);
47685    }
47686}
47687
47688impl DatagramSocketSendMsgPreflightResponder {
47689    /// Sends a response to the FIDL transaction.
47690    ///
47691    /// Sets the channel to shutdown if an error occurs.
47692    pub fn send(
47693        self,
47694        mut result: Result<DatagramSocketSendMsgPreflightResponse, fidl_fuchsia_posix::Errno>,
47695    ) -> Result<(), fidl::Error> {
47696        let _result = self.send_raw(result);
47697        if _result.is_err() {
47698            self.control_handle.shutdown();
47699        }
47700        self.drop_without_shutdown();
47701        _result
47702    }
47703
47704    /// Similar to "send" but does not shutdown the channel if an error occurs.
47705    pub fn send_no_shutdown_on_err(
47706        self,
47707        mut result: Result<DatagramSocketSendMsgPreflightResponse, fidl_fuchsia_posix::Errno>,
47708    ) -> Result<(), fidl::Error> {
47709        let _result = self.send_raw(result);
47710        self.drop_without_shutdown();
47711        _result
47712    }
47713
47714    fn send_raw(
47715        &self,
47716        mut result: Result<DatagramSocketSendMsgPreflightResponse, fidl_fuchsia_posix::Errno>,
47717    ) -> Result<(), fidl::Error> {
47718        self.control_handle.inner.send::<fidl::encoding::ResultType<
47719            DatagramSocketSendMsgPreflightResponse,
47720            fidl_fuchsia_posix::Errno,
47721        >>(
47722            result.as_mut().map_err(|e| *e),
47723            self.tx_id,
47724            0x5362e668e777248a,
47725            fidl::encoding::DynamicFlags::empty(),
47726        )
47727    }
47728}
47729
47730#[must_use = "FIDL methods require a response to be sent"]
47731#[derive(Debug)]
47732pub struct DatagramSocketRecvMsgPostflightResponder {
47733    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47734    tx_id: u32,
47735}
47736
47737/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47738/// if the responder is dropped without sending a response, so that the client
47739/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47740impl std::ops::Drop for DatagramSocketRecvMsgPostflightResponder {
47741    fn drop(&mut self) {
47742        self.control_handle.shutdown();
47743        // Safety: drops once, never accessed again
47744        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47745    }
47746}
47747
47748impl fidl::endpoints::Responder for DatagramSocketRecvMsgPostflightResponder {
47749    type ControlHandle = DatagramSocketControlHandle;
47750
47751    fn control_handle(&self) -> &DatagramSocketControlHandle {
47752        &self.control_handle
47753    }
47754
47755    fn drop_without_shutdown(mut self) {
47756        // Safety: drops once, never accessed again due to mem::forget
47757        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47758        // Prevent Drop from running (which would shut down the channel)
47759        std::mem::forget(self);
47760    }
47761}
47762
47763impl DatagramSocketRecvMsgPostflightResponder {
47764    /// Sends a response to the FIDL transaction.
47765    ///
47766    /// Sets the channel to shutdown if an error occurs.
47767    pub fn send(
47768        self,
47769        mut result: Result<DatagramSocketRecvMsgPostflightResponse, fidl_fuchsia_posix::Errno>,
47770    ) -> Result<(), fidl::Error> {
47771        let _result = self.send_raw(result);
47772        if _result.is_err() {
47773            self.control_handle.shutdown();
47774        }
47775        self.drop_without_shutdown();
47776        _result
47777    }
47778
47779    /// Similar to "send" but does not shutdown the channel if an error occurs.
47780    pub fn send_no_shutdown_on_err(
47781        self,
47782        mut result: Result<DatagramSocketRecvMsgPostflightResponse, fidl_fuchsia_posix::Errno>,
47783    ) -> Result<(), fidl::Error> {
47784        let _result = self.send_raw(result);
47785        self.drop_without_shutdown();
47786        _result
47787    }
47788
47789    fn send_raw(
47790        &self,
47791        mut result: Result<DatagramSocketRecvMsgPostflightResponse, fidl_fuchsia_posix::Errno>,
47792    ) -> Result<(), fidl::Error> {
47793        self.control_handle.inner.send::<fidl::encoding::ResultType<
47794            DatagramSocketRecvMsgPostflightResponse,
47795            fidl_fuchsia_posix::Errno,
47796        >>(
47797            result.as_mut().map_err(|e| *e),
47798            self.tx_id,
47799            0x1a7cdeca5f3eb8e2,
47800            fidl::encoding::DynamicFlags::empty(),
47801        )
47802    }
47803}
47804
47805#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
47806pub struct ProviderMarker;
47807
47808impl fidl::endpoints::ProtocolMarker for ProviderMarker {
47809    type Proxy = ProviderProxy;
47810    type RequestStream = ProviderRequestStream;
47811    #[cfg(target_os = "fuchsia")]
47812    type SynchronousProxy = ProviderSynchronousProxy;
47813
47814    const DEBUG_NAME: &'static str = "fuchsia.posix.socket.Provider";
47815}
47816impl fidl::endpoints::DiscoverableProtocolMarker for ProviderMarker {}
47817pub type ProviderStreamSocketWithOptionsResult =
47818    Result<fidl::endpoints::ClientEnd<StreamSocketMarker>, fidl_fuchsia_posix::Errno>;
47819pub type ProviderStreamSocketResult =
47820    Result<fidl::endpoints::ClientEnd<StreamSocketMarker>, fidl_fuchsia_posix::Errno>;
47821pub type ProviderDatagramSocketDeprecatedResult =
47822    Result<fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>, fidl_fuchsia_posix::Errno>;
47823pub type ProviderDatagramSocketResult =
47824    Result<ProviderDatagramSocketResponse, fidl_fuchsia_posix::Errno>;
47825pub type ProviderDatagramSocketWithOptionsResult =
47826    Result<ProviderDatagramSocketWithOptionsResponse, fidl_fuchsia_posix::Errno>;
47827pub type ProviderInterfaceIndexToNameResult = Result<String, i32>;
47828pub type ProviderInterfaceNameToIndexResult = Result<u64, i32>;
47829pub type ProviderInterfaceNameToFlagsResult = Result<InterfaceFlags, i32>;
47830
47831pub trait ProviderProxyInterface: Send + Sync {
47832    type StreamSocketWithOptionsResponseFut: std::future::Future<Output = Result<ProviderStreamSocketWithOptionsResult, fidl::Error>>
47833        + Send;
47834    fn r#stream_socket_with_options(
47835        &self,
47836        domain: Domain,
47837        proto: StreamSocketProtocol,
47838        opts: &SocketCreationOptions,
47839    ) -> Self::StreamSocketWithOptionsResponseFut;
47840    type StreamSocketResponseFut: std::future::Future<Output = Result<ProviderStreamSocketResult, fidl::Error>>
47841        + Send;
47842    fn r#stream_socket(
47843        &self,
47844        domain: Domain,
47845        proto: StreamSocketProtocol,
47846    ) -> Self::StreamSocketResponseFut;
47847    type DatagramSocketDeprecatedResponseFut: std::future::Future<Output = Result<ProviderDatagramSocketDeprecatedResult, fidl::Error>>
47848        + Send;
47849    fn r#datagram_socket_deprecated(
47850        &self,
47851        domain: Domain,
47852        proto: DatagramSocketProtocol,
47853    ) -> Self::DatagramSocketDeprecatedResponseFut;
47854    type DatagramSocketResponseFut: std::future::Future<Output = Result<ProviderDatagramSocketResult, fidl::Error>>
47855        + Send;
47856    fn r#datagram_socket(
47857        &self,
47858        domain: Domain,
47859        proto: DatagramSocketProtocol,
47860    ) -> Self::DatagramSocketResponseFut;
47861    type DatagramSocketWithOptionsResponseFut: std::future::Future<Output = Result<ProviderDatagramSocketWithOptionsResult, fidl::Error>>
47862        + Send;
47863    fn r#datagram_socket_with_options(
47864        &self,
47865        domain: Domain,
47866        proto: DatagramSocketProtocol,
47867        opts: &SocketCreationOptions,
47868    ) -> Self::DatagramSocketWithOptionsResponseFut;
47869    type InterfaceIndexToNameResponseFut: std::future::Future<Output = Result<ProviderInterfaceIndexToNameResult, fidl::Error>>
47870        + Send;
47871    fn r#interface_index_to_name(&self, index: u64) -> Self::InterfaceIndexToNameResponseFut;
47872    type InterfaceNameToIndexResponseFut: std::future::Future<Output = Result<ProviderInterfaceNameToIndexResult, fidl::Error>>
47873        + Send;
47874    fn r#interface_name_to_index(&self, name: &str) -> Self::InterfaceNameToIndexResponseFut;
47875    type InterfaceNameToFlagsResponseFut: std::future::Future<Output = Result<ProviderInterfaceNameToFlagsResult, fidl::Error>>
47876        + Send;
47877    fn r#interface_name_to_flags(&self, name: &str) -> Self::InterfaceNameToFlagsResponseFut;
47878    type GetInterfaceAddressesResponseFut: std::future::Future<Output = Result<Vec<InterfaceAddresses>, fidl::Error>>
47879        + Send;
47880    fn r#get_interface_addresses(&self) -> Self::GetInterfaceAddressesResponseFut;
47881}
47882#[derive(Debug)]
47883#[cfg(target_os = "fuchsia")]
47884pub struct ProviderSynchronousProxy {
47885    client: fidl::client::sync::Client,
47886}
47887
47888#[cfg(target_os = "fuchsia")]
47889impl fidl::endpoints::SynchronousProxy for ProviderSynchronousProxy {
47890    type Proxy = ProviderProxy;
47891    type Protocol = ProviderMarker;
47892
47893    fn from_channel(inner: fidl::Channel) -> Self {
47894        Self::new(inner)
47895    }
47896
47897    fn into_channel(self) -> fidl::Channel {
47898        self.client.into_channel()
47899    }
47900
47901    fn as_channel(&self) -> &fidl::Channel {
47902        self.client.as_channel()
47903    }
47904}
47905
47906#[cfg(target_os = "fuchsia")]
47907impl ProviderSynchronousProxy {
47908    pub fn new(channel: fidl::Channel) -> Self {
47909        let protocol_name = <ProviderMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
47910        Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
47911    }
47912
47913    pub fn into_channel(self) -> fidl::Channel {
47914        self.client.into_channel()
47915    }
47916
47917    /// Waits until an event arrives and returns it. It is safe for other
47918    /// threads to make concurrent requests while waiting for an event.
47919    pub fn wait_for_event(
47920        &self,
47921        deadline: zx::MonotonicInstant,
47922    ) -> Result<ProviderEvent, fidl::Error> {
47923        ProviderEvent::decode(self.client.wait_for_event(deadline)?)
47924    }
47925
47926    /// Requests a stream socket with the specifed parameters and the creation
47927    /// options.
47928    pub fn r#stream_socket_with_options(
47929        &self,
47930        mut domain: Domain,
47931        mut proto: StreamSocketProtocol,
47932        mut opts: &SocketCreationOptions,
47933        ___deadline: zx::MonotonicInstant,
47934    ) -> Result<ProviderStreamSocketWithOptionsResult, fidl::Error> {
47935        let _response = self
47936            .client
47937            .send_query::<ProviderStreamSocketWithOptionsRequest, fidl::encoding::ResultType<
47938                ProviderStreamSocketWithOptionsResponse,
47939                fidl_fuchsia_posix::Errno,
47940            >>(
47941                (domain, proto, opts),
47942                0x3969bf7eb78386e0,
47943                fidl::encoding::DynamicFlags::empty(),
47944                ___deadline,
47945            )?;
47946        Ok(_response.map(|x| x.s))
47947    }
47948
47949    /// Requests a stream socket with the specified parameters.
47950    pub fn r#stream_socket(
47951        &self,
47952        mut domain: Domain,
47953        mut proto: StreamSocketProtocol,
47954        ___deadline: zx::MonotonicInstant,
47955    ) -> Result<ProviderStreamSocketResult, fidl::Error> {
47956        let _response =
47957            self.client.send_query::<ProviderStreamSocketRequest, fidl::encoding::ResultType<
47958                ProviderStreamSocketResponse,
47959                fidl_fuchsia_posix::Errno,
47960            >>(
47961                (domain, proto),
47962                0x27c3581da2155545,
47963                fidl::encoding::DynamicFlags::empty(),
47964                ___deadline,
47965            )?;
47966        Ok(_response.map(|x| x.s))
47967    }
47968
47969    /// Requests a datagram socket with the specified parameters.
47970    /// TODO(https://fxbug.dev/42165881): Remove this method once no more callers rely on it.
47971    pub fn r#datagram_socket_deprecated(
47972        &self,
47973        mut domain: Domain,
47974        mut proto: DatagramSocketProtocol,
47975        ___deadline: zx::MonotonicInstant,
47976    ) -> Result<ProviderDatagramSocketDeprecatedResult, fidl::Error> {
47977        let _response = self
47978            .client
47979            .send_query::<ProviderDatagramSocketDeprecatedRequest, fidl::encoding::ResultType<
47980                ProviderDatagramSocketDeprecatedResponse,
47981                fidl_fuchsia_posix::Errno,
47982            >>(
47983                (domain, proto),
47984                0x38876c87cf031cb1,
47985                fidl::encoding::DynamicFlags::empty(),
47986                ___deadline,
47987            )?;
47988        Ok(_response.map(|x| x.s))
47989    }
47990
47991    /// Requests a datagram socket with the specified parameters.
47992    pub fn r#datagram_socket(
47993        &self,
47994        mut domain: Domain,
47995        mut proto: DatagramSocketProtocol,
47996        ___deadline: zx::MonotonicInstant,
47997    ) -> Result<ProviderDatagramSocketResult, fidl::Error> {
47998        let _response =
47999            self.client.send_query::<ProviderDatagramSocketRequest, fidl::encoding::ResultType<
48000                ProviderDatagramSocketResponse,
48001                fidl_fuchsia_posix::Errno,
48002            >>(
48003                (domain, proto),
48004                0x4021b4fa1b6452f2,
48005                fidl::encoding::DynamicFlags::empty(),
48006                ___deadline,
48007            )?;
48008        Ok(_response.map(|x| x))
48009    }
48010
48011    /// Requests a datagram socket with the specifed parameters and the creation
48012    /// options.
48013    pub fn r#datagram_socket_with_options(
48014        &self,
48015        mut domain: Domain,
48016        mut proto: DatagramSocketProtocol,
48017        mut opts: &SocketCreationOptions,
48018        ___deadline: zx::MonotonicInstant,
48019    ) -> Result<ProviderDatagramSocketWithOptionsResult, fidl::Error> {
48020        let _response = self
48021            .client
48022            .send_query::<ProviderDatagramSocketWithOptionsRequest, fidl::encoding::ResultType<
48023                ProviderDatagramSocketWithOptionsResponse,
48024                fidl_fuchsia_posix::Errno,
48025            >>(
48026                (domain, proto, opts),
48027                0x4cd0cffbffa39eb1,
48028                fidl::encoding::DynamicFlags::empty(),
48029                ___deadline,
48030            )?;
48031        Ok(_response.map(|x| x))
48032    }
48033
48034    /// Looks up an interface by its index and returns its name. Returns
48035    /// `ZX_ERR_NOT_FOUND` if the specified index doesn't exist.
48036    pub fn r#interface_index_to_name(
48037        &self,
48038        mut index: u64,
48039        ___deadline: zx::MonotonicInstant,
48040    ) -> Result<ProviderInterfaceIndexToNameResult, fidl::Error> {
48041        let _response = self.client.send_query::<
48042            ProviderInterfaceIndexToNameRequest,
48043            fidl::encoding::ResultType<ProviderInterfaceIndexToNameResponse, i32>,
48044        >(
48045            (index,),
48046            0x4d59a64fce98272f,
48047            fidl::encoding::DynamicFlags::empty(),
48048            ___deadline,
48049        )?;
48050        Ok(_response.map(|x| x.name))
48051    }
48052
48053    /// Looks up an interface by its name and returns its index. Returns
48054    /// `ZX_ERR_NOT_FOUND` if the specified name doesn't exist.
48055    pub fn r#interface_name_to_index(
48056        &self,
48057        mut name: &str,
48058        ___deadline: zx::MonotonicInstant,
48059    ) -> Result<ProviderInterfaceNameToIndexResult, fidl::Error> {
48060        let _response = self.client.send_query::<
48061            ProviderInterfaceNameToIndexRequest,
48062            fidl::encoding::ResultType<ProviderInterfaceNameToIndexResponse, i32>,
48063        >(
48064            (name,),
48065            0x690cd8d2f2d650f8,
48066            fidl::encoding::DynamicFlags::empty(),
48067            ___deadline,
48068        )?;
48069        Ok(_response.map(|x| x.index))
48070    }
48071
48072    /// Looks up an interface by its name and returns its flags. Returns
48073    /// `ZX_ERR_NOT_FOUND` if the specified name doesn't exist.
48074    pub fn r#interface_name_to_flags(
48075        &self,
48076        mut name: &str,
48077        ___deadline: zx::MonotonicInstant,
48078    ) -> Result<ProviderInterfaceNameToFlagsResult, fidl::Error> {
48079        let _response = self.client.send_query::<
48080            ProviderInterfaceNameToFlagsRequest,
48081            fidl::encoding::ResultType<ProviderInterfaceNameToFlagsResponse, i32>,
48082        >(
48083            (name,),
48084            0x25d0efcdb6671a0b,
48085            fidl::encoding::DynamicFlags::empty(),
48086            ___deadline,
48087        )?;
48088        Ok(_response.map(|x| x.flags))
48089    }
48090
48091    /// Requests a list of [`fuchsia.posix.socket.InterfaceAddresses`]
48092    /// describing the network interfaces on the system.
48093    pub fn r#get_interface_addresses(
48094        &self,
48095        ___deadline: zx::MonotonicInstant,
48096    ) -> Result<Vec<InterfaceAddresses>, fidl::Error> {
48097        let _response = self
48098            .client
48099            .send_query::<fidl::encoding::EmptyPayload, ProviderGetInterfaceAddressesResponse>(
48100                (),
48101                0x2e7b9aaf327c870,
48102                fidl::encoding::DynamicFlags::empty(),
48103                ___deadline,
48104            )?;
48105        Ok(_response.interfaces)
48106    }
48107}
48108
48109#[cfg(target_os = "fuchsia")]
48110impl From<ProviderSynchronousProxy> for zx::Handle {
48111    fn from(value: ProviderSynchronousProxy) -> Self {
48112        value.into_channel().into()
48113    }
48114}
48115
48116#[cfg(target_os = "fuchsia")]
48117impl From<fidl::Channel> for ProviderSynchronousProxy {
48118    fn from(value: fidl::Channel) -> Self {
48119        Self::new(value)
48120    }
48121}
48122
48123#[cfg(target_os = "fuchsia")]
48124impl fidl::endpoints::FromClient for ProviderSynchronousProxy {
48125    type Protocol = ProviderMarker;
48126
48127    fn from_client(value: fidl::endpoints::ClientEnd<ProviderMarker>) -> Self {
48128        Self::new(value.into_channel())
48129    }
48130}
48131
48132#[derive(Debug, Clone)]
48133pub struct ProviderProxy {
48134    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
48135}
48136
48137impl fidl::endpoints::Proxy for ProviderProxy {
48138    type Protocol = ProviderMarker;
48139
48140    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
48141        Self::new(inner)
48142    }
48143
48144    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
48145        self.client.into_channel().map_err(|client| Self { client })
48146    }
48147
48148    fn as_channel(&self) -> &::fidl::AsyncChannel {
48149        self.client.as_channel()
48150    }
48151}
48152
48153impl ProviderProxy {
48154    /// Create a new Proxy for fuchsia.posix.socket/Provider.
48155    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
48156        let protocol_name = <ProviderMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
48157        Self { client: fidl::client::Client::new(channel, protocol_name) }
48158    }
48159
48160    /// Get a Stream of events from the remote end of the protocol.
48161    ///
48162    /// # Panics
48163    ///
48164    /// Panics if the event stream was already taken.
48165    pub fn take_event_stream(&self) -> ProviderEventStream {
48166        ProviderEventStream { event_receiver: self.client.take_event_receiver() }
48167    }
48168
48169    /// Requests a stream socket with the specifed parameters and the creation
48170    /// options.
48171    pub fn r#stream_socket_with_options(
48172        &self,
48173        mut domain: Domain,
48174        mut proto: StreamSocketProtocol,
48175        mut opts: &SocketCreationOptions,
48176    ) -> fidl::client::QueryResponseFut<
48177        ProviderStreamSocketWithOptionsResult,
48178        fidl::encoding::DefaultFuchsiaResourceDialect,
48179    > {
48180        ProviderProxyInterface::r#stream_socket_with_options(self, domain, proto, opts)
48181    }
48182
48183    /// Requests a stream socket with the specified parameters.
48184    pub fn r#stream_socket(
48185        &self,
48186        mut domain: Domain,
48187        mut proto: StreamSocketProtocol,
48188    ) -> fidl::client::QueryResponseFut<
48189        ProviderStreamSocketResult,
48190        fidl::encoding::DefaultFuchsiaResourceDialect,
48191    > {
48192        ProviderProxyInterface::r#stream_socket(self, domain, proto)
48193    }
48194
48195    /// Requests a datagram socket with the specified parameters.
48196    /// TODO(https://fxbug.dev/42165881): Remove this method once no more callers rely on it.
48197    pub fn r#datagram_socket_deprecated(
48198        &self,
48199        mut domain: Domain,
48200        mut proto: DatagramSocketProtocol,
48201    ) -> fidl::client::QueryResponseFut<
48202        ProviderDatagramSocketDeprecatedResult,
48203        fidl::encoding::DefaultFuchsiaResourceDialect,
48204    > {
48205        ProviderProxyInterface::r#datagram_socket_deprecated(self, domain, proto)
48206    }
48207
48208    /// Requests a datagram socket with the specified parameters.
48209    pub fn r#datagram_socket(
48210        &self,
48211        mut domain: Domain,
48212        mut proto: DatagramSocketProtocol,
48213    ) -> fidl::client::QueryResponseFut<
48214        ProviderDatagramSocketResult,
48215        fidl::encoding::DefaultFuchsiaResourceDialect,
48216    > {
48217        ProviderProxyInterface::r#datagram_socket(self, domain, proto)
48218    }
48219
48220    /// Requests a datagram socket with the specifed parameters and the creation
48221    /// options.
48222    pub fn r#datagram_socket_with_options(
48223        &self,
48224        mut domain: Domain,
48225        mut proto: DatagramSocketProtocol,
48226        mut opts: &SocketCreationOptions,
48227    ) -> fidl::client::QueryResponseFut<
48228        ProviderDatagramSocketWithOptionsResult,
48229        fidl::encoding::DefaultFuchsiaResourceDialect,
48230    > {
48231        ProviderProxyInterface::r#datagram_socket_with_options(self, domain, proto, opts)
48232    }
48233
48234    /// Looks up an interface by its index and returns its name. Returns
48235    /// `ZX_ERR_NOT_FOUND` if the specified index doesn't exist.
48236    pub fn r#interface_index_to_name(
48237        &self,
48238        mut index: u64,
48239    ) -> fidl::client::QueryResponseFut<
48240        ProviderInterfaceIndexToNameResult,
48241        fidl::encoding::DefaultFuchsiaResourceDialect,
48242    > {
48243        ProviderProxyInterface::r#interface_index_to_name(self, index)
48244    }
48245
48246    /// Looks up an interface by its name and returns its index. Returns
48247    /// `ZX_ERR_NOT_FOUND` if the specified name doesn't exist.
48248    pub fn r#interface_name_to_index(
48249        &self,
48250        mut name: &str,
48251    ) -> fidl::client::QueryResponseFut<
48252        ProviderInterfaceNameToIndexResult,
48253        fidl::encoding::DefaultFuchsiaResourceDialect,
48254    > {
48255        ProviderProxyInterface::r#interface_name_to_index(self, name)
48256    }
48257
48258    /// Looks up an interface by its name and returns its flags. Returns
48259    /// `ZX_ERR_NOT_FOUND` if the specified name doesn't exist.
48260    pub fn r#interface_name_to_flags(
48261        &self,
48262        mut name: &str,
48263    ) -> fidl::client::QueryResponseFut<
48264        ProviderInterfaceNameToFlagsResult,
48265        fidl::encoding::DefaultFuchsiaResourceDialect,
48266    > {
48267        ProviderProxyInterface::r#interface_name_to_flags(self, name)
48268    }
48269
48270    /// Requests a list of [`fuchsia.posix.socket.InterfaceAddresses`]
48271    /// describing the network interfaces on the system.
48272    pub fn r#get_interface_addresses(
48273        &self,
48274    ) -> fidl::client::QueryResponseFut<
48275        Vec<InterfaceAddresses>,
48276        fidl::encoding::DefaultFuchsiaResourceDialect,
48277    > {
48278        ProviderProxyInterface::r#get_interface_addresses(self)
48279    }
48280}
48281
48282impl ProviderProxyInterface for ProviderProxy {
48283    type StreamSocketWithOptionsResponseFut = fidl::client::QueryResponseFut<
48284        ProviderStreamSocketWithOptionsResult,
48285        fidl::encoding::DefaultFuchsiaResourceDialect,
48286    >;
48287    fn r#stream_socket_with_options(
48288        &self,
48289        mut domain: Domain,
48290        mut proto: StreamSocketProtocol,
48291        mut opts: &SocketCreationOptions,
48292    ) -> Self::StreamSocketWithOptionsResponseFut {
48293        fn _decode(
48294            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
48295        ) -> Result<ProviderStreamSocketWithOptionsResult, fidl::Error> {
48296            let _response = fidl::client::decode_transaction_body::<
48297                fidl::encoding::ResultType<
48298                    ProviderStreamSocketWithOptionsResponse,
48299                    fidl_fuchsia_posix::Errno,
48300                >,
48301                fidl::encoding::DefaultFuchsiaResourceDialect,
48302                0x3969bf7eb78386e0,
48303            >(_buf?)?;
48304            Ok(_response.map(|x| x.s))
48305        }
48306        self.client.send_query_and_decode::<
48307            ProviderStreamSocketWithOptionsRequest,
48308            ProviderStreamSocketWithOptionsResult,
48309        >(
48310            (domain, proto, opts,),
48311            0x3969bf7eb78386e0,
48312            fidl::encoding::DynamicFlags::empty(),
48313            _decode,
48314        )
48315    }
48316
48317    type StreamSocketResponseFut = fidl::client::QueryResponseFut<
48318        ProviderStreamSocketResult,
48319        fidl::encoding::DefaultFuchsiaResourceDialect,
48320    >;
48321    fn r#stream_socket(
48322        &self,
48323        mut domain: Domain,
48324        mut proto: StreamSocketProtocol,
48325    ) -> Self::StreamSocketResponseFut {
48326        fn _decode(
48327            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
48328        ) -> Result<ProviderStreamSocketResult, fidl::Error> {
48329            let _response = fidl::client::decode_transaction_body::<
48330                fidl::encoding::ResultType<ProviderStreamSocketResponse, fidl_fuchsia_posix::Errno>,
48331                fidl::encoding::DefaultFuchsiaResourceDialect,
48332                0x27c3581da2155545,
48333            >(_buf?)?;
48334            Ok(_response.map(|x| x.s))
48335        }
48336        self.client
48337            .send_query_and_decode::<ProviderStreamSocketRequest, ProviderStreamSocketResult>(
48338                (domain, proto),
48339                0x27c3581da2155545,
48340                fidl::encoding::DynamicFlags::empty(),
48341                _decode,
48342            )
48343    }
48344
48345    type DatagramSocketDeprecatedResponseFut = fidl::client::QueryResponseFut<
48346        ProviderDatagramSocketDeprecatedResult,
48347        fidl::encoding::DefaultFuchsiaResourceDialect,
48348    >;
48349    fn r#datagram_socket_deprecated(
48350        &self,
48351        mut domain: Domain,
48352        mut proto: DatagramSocketProtocol,
48353    ) -> Self::DatagramSocketDeprecatedResponseFut {
48354        fn _decode(
48355            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
48356        ) -> Result<ProviderDatagramSocketDeprecatedResult, fidl::Error> {
48357            let _response = fidl::client::decode_transaction_body::<
48358                fidl::encoding::ResultType<
48359                    ProviderDatagramSocketDeprecatedResponse,
48360                    fidl_fuchsia_posix::Errno,
48361                >,
48362                fidl::encoding::DefaultFuchsiaResourceDialect,
48363                0x38876c87cf031cb1,
48364            >(_buf?)?;
48365            Ok(_response.map(|x| x.s))
48366        }
48367        self.client.send_query_and_decode::<
48368            ProviderDatagramSocketDeprecatedRequest,
48369            ProviderDatagramSocketDeprecatedResult,
48370        >(
48371            (domain, proto,),
48372            0x38876c87cf031cb1,
48373            fidl::encoding::DynamicFlags::empty(),
48374            _decode,
48375        )
48376    }
48377
48378    type DatagramSocketResponseFut = fidl::client::QueryResponseFut<
48379        ProviderDatagramSocketResult,
48380        fidl::encoding::DefaultFuchsiaResourceDialect,
48381    >;
48382    fn r#datagram_socket(
48383        &self,
48384        mut domain: Domain,
48385        mut proto: DatagramSocketProtocol,
48386    ) -> Self::DatagramSocketResponseFut {
48387        fn _decode(
48388            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
48389        ) -> Result<ProviderDatagramSocketResult, fidl::Error> {
48390            let _response = fidl::client::decode_transaction_body::<
48391                fidl::encoding::ResultType<
48392                    ProviderDatagramSocketResponse,
48393                    fidl_fuchsia_posix::Errno,
48394                >,
48395                fidl::encoding::DefaultFuchsiaResourceDialect,
48396                0x4021b4fa1b6452f2,
48397            >(_buf?)?;
48398            Ok(_response.map(|x| x))
48399        }
48400        self.client
48401            .send_query_and_decode::<ProviderDatagramSocketRequest, ProviderDatagramSocketResult>(
48402                (domain, proto),
48403                0x4021b4fa1b6452f2,
48404                fidl::encoding::DynamicFlags::empty(),
48405                _decode,
48406            )
48407    }
48408
48409    type DatagramSocketWithOptionsResponseFut = fidl::client::QueryResponseFut<
48410        ProviderDatagramSocketWithOptionsResult,
48411        fidl::encoding::DefaultFuchsiaResourceDialect,
48412    >;
48413    fn r#datagram_socket_with_options(
48414        &self,
48415        mut domain: Domain,
48416        mut proto: DatagramSocketProtocol,
48417        mut opts: &SocketCreationOptions,
48418    ) -> Self::DatagramSocketWithOptionsResponseFut {
48419        fn _decode(
48420            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
48421        ) -> Result<ProviderDatagramSocketWithOptionsResult, fidl::Error> {
48422            let _response = fidl::client::decode_transaction_body::<
48423                fidl::encoding::ResultType<
48424                    ProviderDatagramSocketWithOptionsResponse,
48425                    fidl_fuchsia_posix::Errno,
48426                >,
48427                fidl::encoding::DefaultFuchsiaResourceDialect,
48428                0x4cd0cffbffa39eb1,
48429            >(_buf?)?;
48430            Ok(_response.map(|x| x))
48431        }
48432        self.client.send_query_and_decode::<
48433            ProviderDatagramSocketWithOptionsRequest,
48434            ProviderDatagramSocketWithOptionsResult,
48435        >(
48436            (domain, proto, opts,),
48437            0x4cd0cffbffa39eb1,
48438            fidl::encoding::DynamicFlags::empty(),
48439            _decode,
48440        )
48441    }
48442
48443    type InterfaceIndexToNameResponseFut = fidl::client::QueryResponseFut<
48444        ProviderInterfaceIndexToNameResult,
48445        fidl::encoding::DefaultFuchsiaResourceDialect,
48446    >;
48447    fn r#interface_index_to_name(&self, mut index: u64) -> Self::InterfaceIndexToNameResponseFut {
48448        fn _decode(
48449            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
48450        ) -> Result<ProviderInterfaceIndexToNameResult, fidl::Error> {
48451            let _response = fidl::client::decode_transaction_body::<
48452                fidl::encoding::ResultType<ProviderInterfaceIndexToNameResponse, i32>,
48453                fidl::encoding::DefaultFuchsiaResourceDialect,
48454                0x4d59a64fce98272f,
48455            >(_buf?)?;
48456            Ok(_response.map(|x| x.name))
48457        }
48458        self.client.send_query_and_decode::<
48459            ProviderInterfaceIndexToNameRequest,
48460            ProviderInterfaceIndexToNameResult,
48461        >(
48462            (index,),
48463            0x4d59a64fce98272f,
48464            fidl::encoding::DynamicFlags::empty(),
48465            _decode,
48466        )
48467    }
48468
48469    type InterfaceNameToIndexResponseFut = fidl::client::QueryResponseFut<
48470        ProviderInterfaceNameToIndexResult,
48471        fidl::encoding::DefaultFuchsiaResourceDialect,
48472    >;
48473    fn r#interface_name_to_index(&self, mut name: &str) -> Self::InterfaceNameToIndexResponseFut {
48474        fn _decode(
48475            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
48476        ) -> Result<ProviderInterfaceNameToIndexResult, fidl::Error> {
48477            let _response = fidl::client::decode_transaction_body::<
48478                fidl::encoding::ResultType<ProviderInterfaceNameToIndexResponse, i32>,
48479                fidl::encoding::DefaultFuchsiaResourceDialect,
48480                0x690cd8d2f2d650f8,
48481            >(_buf?)?;
48482            Ok(_response.map(|x| x.index))
48483        }
48484        self.client.send_query_and_decode::<
48485            ProviderInterfaceNameToIndexRequest,
48486            ProviderInterfaceNameToIndexResult,
48487        >(
48488            (name,),
48489            0x690cd8d2f2d650f8,
48490            fidl::encoding::DynamicFlags::empty(),
48491            _decode,
48492        )
48493    }
48494
48495    type InterfaceNameToFlagsResponseFut = fidl::client::QueryResponseFut<
48496        ProviderInterfaceNameToFlagsResult,
48497        fidl::encoding::DefaultFuchsiaResourceDialect,
48498    >;
48499    fn r#interface_name_to_flags(&self, mut name: &str) -> Self::InterfaceNameToFlagsResponseFut {
48500        fn _decode(
48501            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
48502        ) -> Result<ProviderInterfaceNameToFlagsResult, fidl::Error> {
48503            let _response = fidl::client::decode_transaction_body::<
48504                fidl::encoding::ResultType<ProviderInterfaceNameToFlagsResponse, i32>,
48505                fidl::encoding::DefaultFuchsiaResourceDialect,
48506                0x25d0efcdb6671a0b,
48507            >(_buf?)?;
48508            Ok(_response.map(|x| x.flags))
48509        }
48510        self.client.send_query_and_decode::<
48511            ProviderInterfaceNameToFlagsRequest,
48512            ProviderInterfaceNameToFlagsResult,
48513        >(
48514            (name,),
48515            0x25d0efcdb6671a0b,
48516            fidl::encoding::DynamicFlags::empty(),
48517            _decode,
48518        )
48519    }
48520
48521    type GetInterfaceAddressesResponseFut = fidl::client::QueryResponseFut<
48522        Vec<InterfaceAddresses>,
48523        fidl::encoding::DefaultFuchsiaResourceDialect,
48524    >;
48525    fn r#get_interface_addresses(&self) -> Self::GetInterfaceAddressesResponseFut {
48526        fn _decode(
48527            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
48528        ) -> Result<Vec<InterfaceAddresses>, fidl::Error> {
48529            let _response = fidl::client::decode_transaction_body::<
48530                ProviderGetInterfaceAddressesResponse,
48531                fidl::encoding::DefaultFuchsiaResourceDialect,
48532                0x2e7b9aaf327c870,
48533            >(_buf?)?;
48534            Ok(_response.interfaces)
48535        }
48536        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, Vec<InterfaceAddresses>>(
48537            (),
48538            0x2e7b9aaf327c870,
48539            fidl::encoding::DynamicFlags::empty(),
48540            _decode,
48541        )
48542    }
48543}
48544
48545pub struct ProviderEventStream {
48546    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
48547}
48548
48549impl std::marker::Unpin for ProviderEventStream {}
48550
48551impl futures::stream::FusedStream for ProviderEventStream {
48552    fn is_terminated(&self) -> bool {
48553        self.event_receiver.is_terminated()
48554    }
48555}
48556
48557impl futures::Stream for ProviderEventStream {
48558    type Item = Result<ProviderEvent, fidl::Error>;
48559
48560    fn poll_next(
48561        mut self: std::pin::Pin<&mut Self>,
48562        cx: &mut std::task::Context<'_>,
48563    ) -> std::task::Poll<Option<Self::Item>> {
48564        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
48565            &mut self.event_receiver,
48566            cx
48567        )?) {
48568            Some(buf) => std::task::Poll::Ready(Some(ProviderEvent::decode(buf))),
48569            None => std::task::Poll::Ready(None),
48570        }
48571    }
48572}
48573
48574#[derive(Debug)]
48575pub enum ProviderEvent {}
48576
48577impl ProviderEvent {
48578    /// Decodes a message buffer as a [`ProviderEvent`].
48579    fn decode(
48580        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
48581    ) -> Result<ProviderEvent, fidl::Error> {
48582        let (bytes, _handles) = buf.split_mut();
48583        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
48584        debug_assert_eq!(tx_header.tx_id, 0);
48585        match tx_header.ordinal {
48586            _ => Err(fidl::Error::UnknownOrdinal {
48587                ordinal: tx_header.ordinal,
48588                protocol_name: <ProviderMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
48589            }),
48590        }
48591    }
48592}
48593
48594/// A Stream of incoming requests for fuchsia.posix.socket/Provider.
48595pub struct ProviderRequestStream {
48596    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
48597    is_terminated: bool,
48598}
48599
48600impl std::marker::Unpin for ProviderRequestStream {}
48601
48602impl futures::stream::FusedStream for ProviderRequestStream {
48603    fn is_terminated(&self) -> bool {
48604        self.is_terminated
48605    }
48606}
48607
48608impl fidl::endpoints::RequestStream for ProviderRequestStream {
48609    type Protocol = ProviderMarker;
48610    type ControlHandle = ProviderControlHandle;
48611
48612    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
48613        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
48614    }
48615
48616    fn control_handle(&self) -> Self::ControlHandle {
48617        ProviderControlHandle { inner: self.inner.clone() }
48618    }
48619
48620    fn into_inner(
48621        self,
48622    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
48623    {
48624        (self.inner, self.is_terminated)
48625    }
48626
48627    fn from_inner(
48628        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
48629        is_terminated: bool,
48630    ) -> Self {
48631        Self { inner, is_terminated }
48632    }
48633}
48634
48635impl futures::Stream for ProviderRequestStream {
48636    type Item = Result<ProviderRequest, fidl::Error>;
48637
48638    fn poll_next(
48639        mut self: std::pin::Pin<&mut Self>,
48640        cx: &mut std::task::Context<'_>,
48641    ) -> std::task::Poll<Option<Self::Item>> {
48642        let this = &mut *self;
48643        if this.inner.check_shutdown(cx) {
48644            this.is_terminated = true;
48645            return std::task::Poll::Ready(None);
48646        }
48647        if this.is_terminated {
48648            panic!("polled ProviderRequestStream after completion");
48649        }
48650        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
48651            |bytes, handles| {
48652                match this.inner.channel().read_etc(cx, bytes, handles) {
48653                    std::task::Poll::Ready(Ok(())) => {}
48654                    std::task::Poll::Pending => return std::task::Poll::Pending,
48655                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
48656                        this.is_terminated = true;
48657                        return std::task::Poll::Ready(None);
48658                    }
48659                    std::task::Poll::Ready(Err(e)) => {
48660                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
48661                            e.into(),
48662                        ))))
48663                    }
48664                }
48665
48666                // A message has been received from the channel
48667                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
48668
48669                std::task::Poll::Ready(Some(match header.ordinal {
48670                    0x3969bf7eb78386e0 => {
48671                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
48672                        let mut req = fidl::new_empty!(
48673                            ProviderStreamSocketWithOptionsRequest,
48674                            fidl::encoding::DefaultFuchsiaResourceDialect
48675                        );
48676                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ProviderStreamSocketWithOptionsRequest>(&header, _body_bytes, handles, &mut req)?;
48677                        let control_handle = ProviderControlHandle { inner: this.inner.clone() };
48678                        Ok(ProviderRequest::StreamSocketWithOptions {
48679                            domain: req.domain,
48680                            proto: req.proto,
48681                            opts: req.opts,
48682
48683                            responder: ProviderStreamSocketWithOptionsResponder {
48684                                control_handle: std::mem::ManuallyDrop::new(control_handle),
48685                                tx_id: header.tx_id,
48686                            },
48687                        })
48688                    }
48689                    0x27c3581da2155545 => {
48690                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
48691                        let mut req = fidl::new_empty!(
48692                            ProviderStreamSocketRequest,
48693                            fidl::encoding::DefaultFuchsiaResourceDialect
48694                        );
48695                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ProviderStreamSocketRequest>(&header, _body_bytes, handles, &mut req)?;
48696                        let control_handle = ProviderControlHandle { inner: this.inner.clone() };
48697                        Ok(ProviderRequest::StreamSocket {
48698                            domain: req.domain,
48699                            proto: req.proto,
48700
48701                            responder: ProviderStreamSocketResponder {
48702                                control_handle: std::mem::ManuallyDrop::new(control_handle),
48703                                tx_id: header.tx_id,
48704                            },
48705                        })
48706                    }
48707                    0x38876c87cf031cb1 => {
48708                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
48709                        let mut req = fidl::new_empty!(
48710                            ProviderDatagramSocketDeprecatedRequest,
48711                            fidl::encoding::DefaultFuchsiaResourceDialect
48712                        );
48713                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ProviderDatagramSocketDeprecatedRequest>(&header, _body_bytes, handles, &mut req)?;
48714                        let control_handle = ProviderControlHandle { inner: this.inner.clone() };
48715                        Ok(ProviderRequest::DatagramSocketDeprecated {
48716                            domain: req.domain,
48717                            proto: req.proto,
48718
48719                            responder: ProviderDatagramSocketDeprecatedResponder {
48720                                control_handle: std::mem::ManuallyDrop::new(control_handle),
48721                                tx_id: header.tx_id,
48722                            },
48723                        })
48724                    }
48725                    0x4021b4fa1b6452f2 => {
48726                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
48727                        let mut req = fidl::new_empty!(
48728                            ProviderDatagramSocketRequest,
48729                            fidl::encoding::DefaultFuchsiaResourceDialect
48730                        );
48731                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ProviderDatagramSocketRequest>(&header, _body_bytes, handles, &mut req)?;
48732                        let control_handle = ProviderControlHandle { inner: this.inner.clone() };
48733                        Ok(ProviderRequest::DatagramSocket {
48734                            domain: req.domain,
48735                            proto: req.proto,
48736
48737                            responder: ProviderDatagramSocketResponder {
48738                                control_handle: std::mem::ManuallyDrop::new(control_handle),
48739                                tx_id: header.tx_id,
48740                            },
48741                        })
48742                    }
48743                    0x4cd0cffbffa39eb1 => {
48744                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
48745                        let mut req = fidl::new_empty!(
48746                            ProviderDatagramSocketWithOptionsRequest,
48747                            fidl::encoding::DefaultFuchsiaResourceDialect
48748                        );
48749                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ProviderDatagramSocketWithOptionsRequest>(&header, _body_bytes, handles, &mut req)?;
48750                        let control_handle = ProviderControlHandle { inner: this.inner.clone() };
48751                        Ok(ProviderRequest::DatagramSocketWithOptions {
48752                            domain: req.domain,
48753                            proto: req.proto,
48754                            opts: req.opts,
48755
48756                            responder: ProviderDatagramSocketWithOptionsResponder {
48757                                control_handle: std::mem::ManuallyDrop::new(control_handle),
48758                                tx_id: header.tx_id,
48759                            },
48760                        })
48761                    }
48762                    0x4d59a64fce98272f => {
48763                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
48764                        let mut req = fidl::new_empty!(
48765                            ProviderInterfaceIndexToNameRequest,
48766                            fidl::encoding::DefaultFuchsiaResourceDialect
48767                        );
48768                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ProviderInterfaceIndexToNameRequest>(&header, _body_bytes, handles, &mut req)?;
48769                        let control_handle = ProviderControlHandle { inner: this.inner.clone() };
48770                        Ok(ProviderRequest::InterfaceIndexToName {
48771                            index: req.index,
48772
48773                            responder: ProviderInterfaceIndexToNameResponder {
48774                                control_handle: std::mem::ManuallyDrop::new(control_handle),
48775                                tx_id: header.tx_id,
48776                            },
48777                        })
48778                    }
48779                    0x690cd8d2f2d650f8 => {
48780                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
48781                        let mut req = fidl::new_empty!(
48782                            ProviderInterfaceNameToIndexRequest,
48783                            fidl::encoding::DefaultFuchsiaResourceDialect
48784                        );
48785                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ProviderInterfaceNameToIndexRequest>(&header, _body_bytes, handles, &mut req)?;
48786                        let control_handle = ProviderControlHandle { inner: this.inner.clone() };
48787                        Ok(ProviderRequest::InterfaceNameToIndex {
48788                            name: req.name,
48789
48790                            responder: ProviderInterfaceNameToIndexResponder {
48791                                control_handle: std::mem::ManuallyDrop::new(control_handle),
48792                                tx_id: header.tx_id,
48793                            },
48794                        })
48795                    }
48796                    0x25d0efcdb6671a0b => {
48797                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
48798                        let mut req = fidl::new_empty!(
48799                            ProviderInterfaceNameToFlagsRequest,
48800                            fidl::encoding::DefaultFuchsiaResourceDialect
48801                        );
48802                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ProviderInterfaceNameToFlagsRequest>(&header, _body_bytes, handles, &mut req)?;
48803                        let control_handle = ProviderControlHandle { inner: this.inner.clone() };
48804                        Ok(ProviderRequest::InterfaceNameToFlags {
48805                            name: req.name,
48806
48807                            responder: ProviderInterfaceNameToFlagsResponder {
48808                                control_handle: std::mem::ManuallyDrop::new(control_handle),
48809                                tx_id: header.tx_id,
48810                            },
48811                        })
48812                    }
48813                    0x2e7b9aaf327c870 => {
48814                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
48815                        let mut req = fidl::new_empty!(
48816                            fidl::encoding::EmptyPayload,
48817                            fidl::encoding::DefaultFuchsiaResourceDialect
48818                        );
48819                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
48820                        let control_handle = ProviderControlHandle { inner: this.inner.clone() };
48821                        Ok(ProviderRequest::GetInterfaceAddresses {
48822                            responder: ProviderGetInterfaceAddressesResponder {
48823                                control_handle: std::mem::ManuallyDrop::new(control_handle),
48824                                tx_id: header.tx_id,
48825                            },
48826                        })
48827                    }
48828                    _ => Err(fidl::Error::UnknownOrdinal {
48829                        ordinal: header.ordinal,
48830                        protocol_name:
48831                            <ProviderMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
48832                    }),
48833                }))
48834            },
48835        )
48836    }
48837}
48838
48839/// Provider implements the POSIX sockets API.
48840///
48841/// *Warning:* This protocol is not yet ready for direct use by clients.
48842/// Instead, clients should use the BSD sockets API to interact with sockets.
48843/// We plan to change this protocol substantially and clients that couple
48844/// directly to this protocol will make those changes more difficult.
48845#[derive(Debug)]
48846pub enum ProviderRequest {
48847    /// Requests a stream socket with the specifed parameters and the creation
48848    /// options.
48849    StreamSocketWithOptions {
48850        domain: Domain,
48851        proto: StreamSocketProtocol,
48852        opts: SocketCreationOptions,
48853        responder: ProviderStreamSocketWithOptionsResponder,
48854    },
48855    /// Requests a stream socket with the specified parameters.
48856    StreamSocket {
48857        domain: Domain,
48858        proto: StreamSocketProtocol,
48859        responder: ProviderStreamSocketResponder,
48860    },
48861    /// Requests a datagram socket with the specified parameters.
48862    /// TODO(https://fxbug.dev/42165881): Remove this method once no more callers rely on it.
48863    DatagramSocketDeprecated {
48864        domain: Domain,
48865        proto: DatagramSocketProtocol,
48866        responder: ProviderDatagramSocketDeprecatedResponder,
48867    },
48868    /// Requests a datagram socket with the specified parameters.
48869    DatagramSocket {
48870        domain: Domain,
48871        proto: DatagramSocketProtocol,
48872        responder: ProviderDatagramSocketResponder,
48873    },
48874    /// Requests a datagram socket with the specifed parameters and the creation
48875    /// options.
48876    DatagramSocketWithOptions {
48877        domain: Domain,
48878        proto: DatagramSocketProtocol,
48879        opts: SocketCreationOptions,
48880        responder: ProviderDatagramSocketWithOptionsResponder,
48881    },
48882    /// Looks up an interface by its index and returns its name. Returns
48883    /// `ZX_ERR_NOT_FOUND` if the specified index doesn't exist.
48884    InterfaceIndexToName { index: u64, responder: ProviderInterfaceIndexToNameResponder },
48885    /// Looks up an interface by its name and returns its index. Returns
48886    /// `ZX_ERR_NOT_FOUND` if the specified name doesn't exist.
48887    InterfaceNameToIndex { name: String, responder: ProviderInterfaceNameToIndexResponder },
48888    /// Looks up an interface by its name and returns its flags. Returns
48889    /// `ZX_ERR_NOT_FOUND` if the specified name doesn't exist.
48890    InterfaceNameToFlags { name: String, responder: ProviderInterfaceNameToFlagsResponder },
48891    /// Requests a list of [`fuchsia.posix.socket.InterfaceAddresses`]
48892    /// describing the network interfaces on the system.
48893    GetInterfaceAddresses { responder: ProviderGetInterfaceAddressesResponder },
48894}
48895
48896impl ProviderRequest {
48897    #[allow(irrefutable_let_patterns)]
48898    pub fn into_stream_socket_with_options(
48899        self,
48900    ) -> Option<(
48901        Domain,
48902        StreamSocketProtocol,
48903        SocketCreationOptions,
48904        ProviderStreamSocketWithOptionsResponder,
48905    )> {
48906        if let ProviderRequest::StreamSocketWithOptions { domain, proto, opts, responder } = self {
48907            Some((domain, proto, opts, responder))
48908        } else {
48909            None
48910        }
48911    }
48912
48913    #[allow(irrefutable_let_patterns)]
48914    pub fn into_stream_socket(
48915        self,
48916    ) -> Option<(Domain, StreamSocketProtocol, ProviderStreamSocketResponder)> {
48917        if let ProviderRequest::StreamSocket { domain, proto, responder } = self {
48918            Some((domain, proto, responder))
48919        } else {
48920            None
48921        }
48922    }
48923
48924    #[allow(irrefutable_let_patterns)]
48925    pub fn into_datagram_socket_deprecated(
48926        self,
48927    ) -> Option<(Domain, DatagramSocketProtocol, ProviderDatagramSocketDeprecatedResponder)> {
48928        if let ProviderRequest::DatagramSocketDeprecated { domain, proto, responder } = self {
48929            Some((domain, proto, responder))
48930        } else {
48931            None
48932        }
48933    }
48934
48935    #[allow(irrefutable_let_patterns)]
48936    pub fn into_datagram_socket(
48937        self,
48938    ) -> Option<(Domain, DatagramSocketProtocol, ProviderDatagramSocketResponder)> {
48939        if let ProviderRequest::DatagramSocket { domain, proto, responder } = self {
48940            Some((domain, proto, responder))
48941        } else {
48942            None
48943        }
48944    }
48945
48946    #[allow(irrefutable_let_patterns)]
48947    pub fn into_datagram_socket_with_options(
48948        self,
48949    ) -> Option<(
48950        Domain,
48951        DatagramSocketProtocol,
48952        SocketCreationOptions,
48953        ProviderDatagramSocketWithOptionsResponder,
48954    )> {
48955        if let ProviderRequest::DatagramSocketWithOptions { domain, proto, opts, responder } = self
48956        {
48957            Some((domain, proto, opts, responder))
48958        } else {
48959            None
48960        }
48961    }
48962
48963    #[allow(irrefutable_let_patterns)]
48964    pub fn into_interface_index_to_name(
48965        self,
48966    ) -> Option<(u64, ProviderInterfaceIndexToNameResponder)> {
48967        if let ProviderRequest::InterfaceIndexToName { index, responder } = self {
48968            Some((index, responder))
48969        } else {
48970            None
48971        }
48972    }
48973
48974    #[allow(irrefutable_let_patterns)]
48975    pub fn into_interface_name_to_index(
48976        self,
48977    ) -> Option<(String, ProviderInterfaceNameToIndexResponder)> {
48978        if let ProviderRequest::InterfaceNameToIndex { name, responder } = self {
48979            Some((name, responder))
48980        } else {
48981            None
48982        }
48983    }
48984
48985    #[allow(irrefutable_let_patterns)]
48986    pub fn into_interface_name_to_flags(
48987        self,
48988    ) -> Option<(String, ProviderInterfaceNameToFlagsResponder)> {
48989        if let ProviderRequest::InterfaceNameToFlags { name, responder } = self {
48990            Some((name, responder))
48991        } else {
48992            None
48993        }
48994    }
48995
48996    #[allow(irrefutable_let_patterns)]
48997    pub fn into_get_interface_addresses(self) -> Option<(ProviderGetInterfaceAddressesResponder)> {
48998        if let ProviderRequest::GetInterfaceAddresses { responder } = self {
48999            Some((responder))
49000        } else {
49001            None
49002        }
49003    }
49004
49005    /// Name of the method defined in FIDL
49006    pub fn method_name(&self) -> &'static str {
49007        match *self {
49008            ProviderRequest::StreamSocketWithOptions { .. } => "stream_socket_with_options",
49009            ProviderRequest::StreamSocket { .. } => "stream_socket",
49010            ProviderRequest::DatagramSocketDeprecated { .. } => "datagram_socket_deprecated",
49011            ProviderRequest::DatagramSocket { .. } => "datagram_socket",
49012            ProviderRequest::DatagramSocketWithOptions { .. } => "datagram_socket_with_options",
49013            ProviderRequest::InterfaceIndexToName { .. } => "interface_index_to_name",
49014            ProviderRequest::InterfaceNameToIndex { .. } => "interface_name_to_index",
49015            ProviderRequest::InterfaceNameToFlags { .. } => "interface_name_to_flags",
49016            ProviderRequest::GetInterfaceAddresses { .. } => "get_interface_addresses",
49017        }
49018    }
49019}
49020
49021#[derive(Debug, Clone)]
49022pub struct ProviderControlHandle {
49023    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
49024}
49025
49026impl fidl::endpoints::ControlHandle for ProviderControlHandle {
49027    fn shutdown(&self) {
49028        self.inner.shutdown()
49029    }
49030    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
49031        self.inner.shutdown_with_epitaph(status)
49032    }
49033
49034    fn is_closed(&self) -> bool {
49035        self.inner.channel().is_closed()
49036    }
49037    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
49038        self.inner.channel().on_closed()
49039    }
49040
49041    #[cfg(target_os = "fuchsia")]
49042    fn signal_peer(
49043        &self,
49044        clear_mask: zx::Signals,
49045        set_mask: zx::Signals,
49046    ) -> Result<(), zx_status::Status> {
49047        use fidl::Peered;
49048        self.inner.channel().signal_peer(clear_mask, set_mask)
49049    }
49050}
49051
49052impl ProviderControlHandle {}
49053
49054#[must_use = "FIDL methods require a response to be sent"]
49055#[derive(Debug)]
49056pub struct ProviderStreamSocketWithOptionsResponder {
49057    control_handle: std::mem::ManuallyDrop<ProviderControlHandle>,
49058    tx_id: u32,
49059}
49060
49061/// Set the the channel to be shutdown (see [`ProviderControlHandle::shutdown`])
49062/// if the responder is dropped without sending a response, so that the client
49063/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
49064impl std::ops::Drop for ProviderStreamSocketWithOptionsResponder {
49065    fn drop(&mut self) {
49066        self.control_handle.shutdown();
49067        // Safety: drops once, never accessed again
49068        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49069    }
49070}
49071
49072impl fidl::endpoints::Responder for ProviderStreamSocketWithOptionsResponder {
49073    type ControlHandle = ProviderControlHandle;
49074
49075    fn control_handle(&self) -> &ProviderControlHandle {
49076        &self.control_handle
49077    }
49078
49079    fn drop_without_shutdown(mut self) {
49080        // Safety: drops once, never accessed again due to mem::forget
49081        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49082        // Prevent Drop from running (which would shut down the channel)
49083        std::mem::forget(self);
49084    }
49085}
49086
49087impl ProviderStreamSocketWithOptionsResponder {
49088    /// Sends a response to the FIDL transaction.
49089    ///
49090    /// Sets the channel to shutdown if an error occurs.
49091    pub fn send(
49092        self,
49093        mut result: Result<
49094            fidl::endpoints::ClientEnd<StreamSocketMarker>,
49095            fidl_fuchsia_posix::Errno,
49096        >,
49097    ) -> Result<(), fidl::Error> {
49098        let _result = self.send_raw(result);
49099        if _result.is_err() {
49100            self.control_handle.shutdown();
49101        }
49102        self.drop_without_shutdown();
49103        _result
49104    }
49105
49106    /// Similar to "send" but does not shutdown the channel if an error occurs.
49107    pub fn send_no_shutdown_on_err(
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        self.drop_without_shutdown();
49116        _result
49117    }
49118
49119    fn send_raw(
49120        &self,
49121        mut result: Result<
49122            fidl::endpoints::ClientEnd<StreamSocketMarker>,
49123            fidl_fuchsia_posix::Errno,
49124        >,
49125    ) -> Result<(), fidl::Error> {
49126        self.control_handle.inner.send::<fidl::encoding::ResultType<
49127            ProviderStreamSocketWithOptionsResponse,
49128            fidl_fuchsia_posix::Errno,
49129        >>(
49130            result.map(|s| (s,)),
49131            self.tx_id,
49132            0x3969bf7eb78386e0,
49133            fidl::encoding::DynamicFlags::empty(),
49134        )
49135    }
49136}
49137
49138#[must_use = "FIDL methods require a response to be sent"]
49139#[derive(Debug)]
49140pub struct ProviderStreamSocketResponder {
49141    control_handle: std::mem::ManuallyDrop<ProviderControlHandle>,
49142    tx_id: u32,
49143}
49144
49145/// Set the the channel to be shutdown (see [`ProviderControlHandle::shutdown`])
49146/// if the responder is dropped without sending a response, so that the client
49147/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
49148impl std::ops::Drop for ProviderStreamSocketResponder {
49149    fn drop(&mut self) {
49150        self.control_handle.shutdown();
49151        // Safety: drops once, never accessed again
49152        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49153    }
49154}
49155
49156impl fidl::endpoints::Responder for ProviderStreamSocketResponder {
49157    type ControlHandle = ProviderControlHandle;
49158
49159    fn control_handle(&self) -> &ProviderControlHandle {
49160        &self.control_handle
49161    }
49162
49163    fn drop_without_shutdown(mut self) {
49164        // Safety: drops once, never accessed again due to mem::forget
49165        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49166        // Prevent Drop from running (which would shut down the channel)
49167        std::mem::forget(self);
49168    }
49169}
49170
49171impl ProviderStreamSocketResponder {
49172    /// Sends a response to the FIDL transaction.
49173    ///
49174    /// Sets the channel to shutdown if an error occurs.
49175    pub fn send(
49176        self,
49177        mut result: Result<
49178            fidl::endpoints::ClientEnd<StreamSocketMarker>,
49179            fidl_fuchsia_posix::Errno,
49180        >,
49181    ) -> Result<(), fidl::Error> {
49182        let _result = self.send_raw(result);
49183        if _result.is_err() {
49184            self.control_handle.shutdown();
49185        }
49186        self.drop_without_shutdown();
49187        _result
49188    }
49189
49190    /// Similar to "send" but does not shutdown the channel if an error occurs.
49191    pub fn send_no_shutdown_on_err(
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        self.drop_without_shutdown();
49200        _result
49201    }
49202
49203    fn send_raw(
49204        &self,
49205        mut result: Result<
49206            fidl::endpoints::ClientEnd<StreamSocketMarker>,
49207            fidl_fuchsia_posix::Errno,
49208        >,
49209    ) -> Result<(), fidl::Error> {
49210        self.control_handle.inner.send::<fidl::encoding::ResultType<
49211            ProviderStreamSocketResponse,
49212            fidl_fuchsia_posix::Errno,
49213        >>(
49214            result.map(|s| (s,)),
49215            self.tx_id,
49216            0x27c3581da2155545,
49217            fidl::encoding::DynamicFlags::empty(),
49218        )
49219    }
49220}
49221
49222#[must_use = "FIDL methods require a response to be sent"]
49223#[derive(Debug)]
49224pub struct ProviderDatagramSocketDeprecatedResponder {
49225    control_handle: std::mem::ManuallyDrop<ProviderControlHandle>,
49226    tx_id: u32,
49227}
49228
49229/// Set the the channel to be shutdown (see [`ProviderControlHandle::shutdown`])
49230/// if the responder is dropped without sending a response, so that the client
49231/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
49232impl std::ops::Drop for ProviderDatagramSocketDeprecatedResponder {
49233    fn drop(&mut self) {
49234        self.control_handle.shutdown();
49235        // Safety: drops once, never accessed again
49236        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49237    }
49238}
49239
49240impl fidl::endpoints::Responder for ProviderDatagramSocketDeprecatedResponder {
49241    type ControlHandle = ProviderControlHandle;
49242
49243    fn control_handle(&self) -> &ProviderControlHandle {
49244        &self.control_handle
49245    }
49246
49247    fn drop_without_shutdown(mut self) {
49248        // Safety: drops once, never accessed again due to mem::forget
49249        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49250        // Prevent Drop from running (which would shut down the channel)
49251        std::mem::forget(self);
49252    }
49253}
49254
49255impl ProviderDatagramSocketDeprecatedResponder {
49256    /// Sends a response to the FIDL transaction.
49257    ///
49258    /// Sets the channel to shutdown if an error occurs.
49259    pub fn send(
49260        self,
49261        mut result: Result<
49262            fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
49263            fidl_fuchsia_posix::Errno,
49264        >,
49265    ) -> Result<(), fidl::Error> {
49266        let _result = self.send_raw(result);
49267        if _result.is_err() {
49268            self.control_handle.shutdown();
49269        }
49270        self.drop_without_shutdown();
49271        _result
49272    }
49273
49274    /// Similar to "send" but does not shutdown the channel if an error occurs.
49275    pub fn send_no_shutdown_on_err(
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        self.drop_without_shutdown();
49284        _result
49285    }
49286
49287    fn send_raw(
49288        &self,
49289        mut result: Result<
49290            fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
49291            fidl_fuchsia_posix::Errno,
49292        >,
49293    ) -> Result<(), fidl::Error> {
49294        self.control_handle.inner.send::<fidl::encoding::ResultType<
49295            ProviderDatagramSocketDeprecatedResponse,
49296            fidl_fuchsia_posix::Errno,
49297        >>(
49298            result.map(|s| (s,)),
49299            self.tx_id,
49300            0x38876c87cf031cb1,
49301            fidl::encoding::DynamicFlags::empty(),
49302        )
49303    }
49304}
49305
49306#[must_use = "FIDL methods require a response to be sent"]
49307#[derive(Debug)]
49308pub struct ProviderDatagramSocketResponder {
49309    control_handle: std::mem::ManuallyDrop<ProviderControlHandle>,
49310    tx_id: u32,
49311}
49312
49313/// Set the the channel to be shutdown (see [`ProviderControlHandle::shutdown`])
49314/// if the responder is dropped without sending a response, so that the client
49315/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
49316impl std::ops::Drop for ProviderDatagramSocketResponder {
49317    fn drop(&mut self) {
49318        self.control_handle.shutdown();
49319        // Safety: drops once, never accessed again
49320        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49321    }
49322}
49323
49324impl fidl::endpoints::Responder for ProviderDatagramSocketResponder {
49325    type ControlHandle = ProviderControlHandle;
49326
49327    fn control_handle(&self) -> &ProviderControlHandle {
49328        &self.control_handle
49329    }
49330
49331    fn drop_without_shutdown(mut self) {
49332        // Safety: drops once, never accessed again due to mem::forget
49333        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49334        // Prevent Drop from running (which would shut down the channel)
49335        std::mem::forget(self);
49336    }
49337}
49338
49339impl ProviderDatagramSocketResponder {
49340    /// Sends a response to the FIDL transaction.
49341    ///
49342    /// Sets the channel to shutdown if an error occurs.
49343    pub fn send(
49344        self,
49345        mut result: Result<ProviderDatagramSocketResponse, fidl_fuchsia_posix::Errno>,
49346    ) -> Result<(), fidl::Error> {
49347        let _result = self.send_raw(result);
49348        if _result.is_err() {
49349            self.control_handle.shutdown();
49350        }
49351        self.drop_without_shutdown();
49352        _result
49353    }
49354
49355    /// Similar to "send" but does not shutdown the channel if an error occurs.
49356    pub fn send_no_shutdown_on_err(
49357        self,
49358        mut result: Result<ProviderDatagramSocketResponse, fidl_fuchsia_posix::Errno>,
49359    ) -> Result<(), fidl::Error> {
49360        let _result = self.send_raw(result);
49361        self.drop_without_shutdown();
49362        _result
49363    }
49364
49365    fn send_raw(
49366        &self,
49367        mut result: Result<ProviderDatagramSocketResponse, fidl_fuchsia_posix::Errno>,
49368    ) -> Result<(), fidl::Error> {
49369        self.control_handle.inner.send::<fidl::encoding::ResultType<
49370            ProviderDatagramSocketResponse,
49371            fidl_fuchsia_posix::Errno,
49372        >>(
49373            result.as_mut().map_err(|e| *e),
49374            self.tx_id,
49375            0x4021b4fa1b6452f2,
49376            fidl::encoding::DynamicFlags::empty(),
49377        )
49378    }
49379}
49380
49381#[must_use = "FIDL methods require a response to be sent"]
49382#[derive(Debug)]
49383pub struct ProviderDatagramSocketWithOptionsResponder {
49384    control_handle: std::mem::ManuallyDrop<ProviderControlHandle>,
49385    tx_id: u32,
49386}
49387
49388/// Set the the channel to be shutdown (see [`ProviderControlHandle::shutdown`])
49389/// if the responder is dropped without sending a response, so that the client
49390/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
49391impl std::ops::Drop for ProviderDatagramSocketWithOptionsResponder {
49392    fn drop(&mut self) {
49393        self.control_handle.shutdown();
49394        // Safety: drops once, never accessed again
49395        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49396    }
49397}
49398
49399impl fidl::endpoints::Responder for ProviderDatagramSocketWithOptionsResponder {
49400    type ControlHandle = ProviderControlHandle;
49401
49402    fn control_handle(&self) -> &ProviderControlHandle {
49403        &self.control_handle
49404    }
49405
49406    fn drop_without_shutdown(mut self) {
49407        // Safety: drops once, never accessed again due to mem::forget
49408        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49409        // Prevent Drop from running (which would shut down the channel)
49410        std::mem::forget(self);
49411    }
49412}
49413
49414impl ProviderDatagramSocketWithOptionsResponder {
49415    /// Sends a response to the FIDL transaction.
49416    ///
49417    /// Sets the channel to shutdown if an error occurs.
49418    pub fn send(
49419        self,
49420        mut result: Result<ProviderDatagramSocketWithOptionsResponse, fidl_fuchsia_posix::Errno>,
49421    ) -> Result<(), fidl::Error> {
49422        let _result = self.send_raw(result);
49423        if _result.is_err() {
49424            self.control_handle.shutdown();
49425        }
49426        self.drop_without_shutdown();
49427        _result
49428    }
49429
49430    /// Similar to "send" but does not shutdown the channel if an error occurs.
49431    pub fn send_no_shutdown_on_err(
49432        self,
49433        mut result: Result<ProviderDatagramSocketWithOptionsResponse, fidl_fuchsia_posix::Errno>,
49434    ) -> Result<(), fidl::Error> {
49435        let _result = self.send_raw(result);
49436        self.drop_without_shutdown();
49437        _result
49438    }
49439
49440    fn send_raw(
49441        &self,
49442        mut result: Result<ProviderDatagramSocketWithOptionsResponse, fidl_fuchsia_posix::Errno>,
49443    ) -> Result<(), fidl::Error> {
49444        self.control_handle.inner.send::<fidl::encoding::ResultType<
49445            ProviderDatagramSocketWithOptionsResponse,
49446            fidl_fuchsia_posix::Errno,
49447        >>(
49448            result.as_mut().map_err(|e| *e),
49449            self.tx_id,
49450            0x4cd0cffbffa39eb1,
49451            fidl::encoding::DynamicFlags::empty(),
49452        )
49453    }
49454}
49455
49456#[must_use = "FIDL methods require a response to be sent"]
49457#[derive(Debug)]
49458pub struct ProviderInterfaceIndexToNameResponder {
49459    control_handle: std::mem::ManuallyDrop<ProviderControlHandle>,
49460    tx_id: u32,
49461}
49462
49463/// Set the the channel to be shutdown (see [`ProviderControlHandle::shutdown`])
49464/// if the responder is dropped without sending a response, so that the client
49465/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
49466impl std::ops::Drop for ProviderInterfaceIndexToNameResponder {
49467    fn drop(&mut self) {
49468        self.control_handle.shutdown();
49469        // Safety: drops once, never accessed again
49470        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49471    }
49472}
49473
49474impl fidl::endpoints::Responder for ProviderInterfaceIndexToNameResponder {
49475    type ControlHandle = ProviderControlHandle;
49476
49477    fn control_handle(&self) -> &ProviderControlHandle {
49478        &self.control_handle
49479    }
49480
49481    fn drop_without_shutdown(mut self) {
49482        // Safety: drops once, never accessed again due to mem::forget
49483        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49484        // Prevent Drop from running (which would shut down the channel)
49485        std::mem::forget(self);
49486    }
49487}
49488
49489impl ProviderInterfaceIndexToNameResponder {
49490    /// Sends a response to the FIDL transaction.
49491    ///
49492    /// Sets the channel to shutdown if an error occurs.
49493    pub fn send(self, mut result: Result<&str, i32>) -> Result<(), fidl::Error> {
49494        let _result = self.send_raw(result);
49495        if _result.is_err() {
49496            self.control_handle.shutdown();
49497        }
49498        self.drop_without_shutdown();
49499        _result
49500    }
49501
49502    /// Similar to "send" but does not shutdown the channel if an error occurs.
49503    pub fn send_no_shutdown_on_err(self, mut result: Result<&str, i32>) -> Result<(), fidl::Error> {
49504        let _result = self.send_raw(result);
49505        self.drop_without_shutdown();
49506        _result
49507    }
49508
49509    fn send_raw(&self, mut result: Result<&str, i32>) -> Result<(), fidl::Error> {
49510        self.control_handle.inner.send::<fidl::encoding::ResultType<
49511            ProviderInterfaceIndexToNameResponse,
49512            i32,
49513        >>(
49514            result.map(|name| (name,)),
49515            self.tx_id,
49516            0x4d59a64fce98272f,
49517            fidl::encoding::DynamicFlags::empty(),
49518        )
49519    }
49520}
49521
49522#[must_use = "FIDL methods require a response to be sent"]
49523#[derive(Debug)]
49524pub struct ProviderInterfaceNameToIndexResponder {
49525    control_handle: std::mem::ManuallyDrop<ProviderControlHandle>,
49526    tx_id: u32,
49527}
49528
49529/// Set the the channel to be shutdown (see [`ProviderControlHandle::shutdown`])
49530/// if the responder is dropped without sending a response, so that the client
49531/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
49532impl std::ops::Drop for ProviderInterfaceNameToIndexResponder {
49533    fn drop(&mut self) {
49534        self.control_handle.shutdown();
49535        // Safety: drops once, never accessed again
49536        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49537    }
49538}
49539
49540impl fidl::endpoints::Responder for ProviderInterfaceNameToIndexResponder {
49541    type ControlHandle = ProviderControlHandle;
49542
49543    fn control_handle(&self) -> &ProviderControlHandle {
49544        &self.control_handle
49545    }
49546
49547    fn drop_without_shutdown(mut self) {
49548        // Safety: drops once, never accessed again due to mem::forget
49549        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49550        // Prevent Drop from running (which would shut down the channel)
49551        std::mem::forget(self);
49552    }
49553}
49554
49555impl ProviderInterfaceNameToIndexResponder {
49556    /// Sends a response to the FIDL transaction.
49557    ///
49558    /// Sets the channel to shutdown if an error occurs.
49559    pub fn send(self, mut result: Result<u64, i32>) -> Result<(), fidl::Error> {
49560        let _result = self.send_raw(result);
49561        if _result.is_err() {
49562            self.control_handle.shutdown();
49563        }
49564        self.drop_without_shutdown();
49565        _result
49566    }
49567
49568    /// Similar to "send" but does not shutdown the channel if an error occurs.
49569    pub fn send_no_shutdown_on_err(self, mut result: Result<u64, i32>) -> Result<(), fidl::Error> {
49570        let _result = self.send_raw(result);
49571        self.drop_without_shutdown();
49572        _result
49573    }
49574
49575    fn send_raw(&self, mut result: Result<u64, i32>) -> Result<(), fidl::Error> {
49576        self.control_handle.inner.send::<fidl::encoding::ResultType<
49577            ProviderInterfaceNameToIndexResponse,
49578            i32,
49579        >>(
49580            result.map(|index| (index,)),
49581            self.tx_id,
49582            0x690cd8d2f2d650f8,
49583            fidl::encoding::DynamicFlags::empty(),
49584        )
49585    }
49586}
49587
49588#[must_use = "FIDL methods require a response to be sent"]
49589#[derive(Debug)]
49590pub struct ProviderInterfaceNameToFlagsResponder {
49591    control_handle: std::mem::ManuallyDrop<ProviderControlHandle>,
49592    tx_id: u32,
49593}
49594
49595/// Set the the channel to be shutdown (see [`ProviderControlHandle::shutdown`])
49596/// if the responder is dropped without sending a response, so that the client
49597/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
49598impl std::ops::Drop for ProviderInterfaceNameToFlagsResponder {
49599    fn drop(&mut self) {
49600        self.control_handle.shutdown();
49601        // Safety: drops once, never accessed again
49602        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49603    }
49604}
49605
49606impl fidl::endpoints::Responder for ProviderInterfaceNameToFlagsResponder {
49607    type ControlHandle = ProviderControlHandle;
49608
49609    fn control_handle(&self) -> &ProviderControlHandle {
49610        &self.control_handle
49611    }
49612
49613    fn drop_without_shutdown(mut self) {
49614        // Safety: drops once, never accessed again due to mem::forget
49615        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49616        // Prevent Drop from running (which would shut down the channel)
49617        std::mem::forget(self);
49618    }
49619}
49620
49621impl ProviderInterfaceNameToFlagsResponder {
49622    /// Sends a response to the FIDL transaction.
49623    ///
49624    /// Sets the channel to shutdown if an error occurs.
49625    pub fn send(self, mut result: Result<InterfaceFlags, i32>) -> Result<(), fidl::Error> {
49626        let _result = self.send_raw(result);
49627        if _result.is_err() {
49628            self.control_handle.shutdown();
49629        }
49630        self.drop_without_shutdown();
49631        _result
49632    }
49633
49634    /// Similar to "send" but does not shutdown the channel if an error occurs.
49635    pub fn send_no_shutdown_on_err(
49636        self,
49637        mut result: Result<InterfaceFlags, i32>,
49638    ) -> Result<(), fidl::Error> {
49639        let _result = self.send_raw(result);
49640        self.drop_without_shutdown();
49641        _result
49642    }
49643
49644    fn send_raw(&self, mut result: Result<InterfaceFlags, i32>) -> Result<(), fidl::Error> {
49645        self.control_handle.inner.send::<fidl::encoding::ResultType<
49646            ProviderInterfaceNameToFlagsResponse,
49647            i32,
49648        >>(
49649            result.map(|flags| (flags,)),
49650            self.tx_id,
49651            0x25d0efcdb6671a0b,
49652            fidl::encoding::DynamicFlags::empty(),
49653        )
49654    }
49655}
49656
49657#[must_use = "FIDL methods require a response to be sent"]
49658#[derive(Debug)]
49659pub struct ProviderGetInterfaceAddressesResponder {
49660    control_handle: std::mem::ManuallyDrop<ProviderControlHandle>,
49661    tx_id: u32,
49662}
49663
49664/// Set the the channel to be shutdown (see [`ProviderControlHandle::shutdown`])
49665/// if the responder is dropped without sending a response, so that the client
49666/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
49667impl std::ops::Drop for ProviderGetInterfaceAddressesResponder {
49668    fn drop(&mut self) {
49669        self.control_handle.shutdown();
49670        // Safety: drops once, never accessed again
49671        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49672    }
49673}
49674
49675impl fidl::endpoints::Responder for ProviderGetInterfaceAddressesResponder {
49676    type ControlHandle = ProviderControlHandle;
49677
49678    fn control_handle(&self) -> &ProviderControlHandle {
49679        &self.control_handle
49680    }
49681
49682    fn drop_without_shutdown(mut self) {
49683        // Safety: drops once, never accessed again due to mem::forget
49684        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49685        // Prevent Drop from running (which would shut down the channel)
49686        std::mem::forget(self);
49687    }
49688}
49689
49690impl ProviderGetInterfaceAddressesResponder {
49691    /// Sends a response to the FIDL transaction.
49692    ///
49693    /// Sets the channel to shutdown if an error occurs.
49694    pub fn send(self, mut interfaces: &[InterfaceAddresses]) -> Result<(), fidl::Error> {
49695        let _result = self.send_raw(interfaces);
49696        if _result.is_err() {
49697            self.control_handle.shutdown();
49698        }
49699        self.drop_without_shutdown();
49700        _result
49701    }
49702
49703    /// Similar to "send" but does not shutdown the channel if an error occurs.
49704    pub fn send_no_shutdown_on_err(
49705        self,
49706        mut interfaces: &[InterfaceAddresses],
49707    ) -> Result<(), fidl::Error> {
49708        let _result = self.send_raw(interfaces);
49709        self.drop_without_shutdown();
49710        _result
49711    }
49712
49713    fn send_raw(&self, mut interfaces: &[InterfaceAddresses]) -> Result<(), fidl::Error> {
49714        self.control_handle.inner.send::<ProviderGetInterfaceAddressesResponse>(
49715            (interfaces,),
49716            self.tx_id,
49717            0x2e7b9aaf327c870,
49718            fidl::encoding::DynamicFlags::empty(),
49719        )
49720    }
49721}
49722
49723#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
49724pub struct StreamSocketMarker;
49725
49726impl fidl::endpoints::ProtocolMarker for StreamSocketMarker {
49727    type Proxy = StreamSocketProxy;
49728    type RequestStream = StreamSocketRequestStream;
49729    #[cfg(target_os = "fuchsia")]
49730    type SynchronousProxy = StreamSocketSynchronousProxy;
49731
49732    const DEBUG_NAME: &'static str = "fuchsia.posix.socket.StreamSocket";
49733}
49734impl fidl::endpoints::DiscoverableProtocolMarker for StreamSocketMarker {}
49735pub type StreamSocketListenResult = Result<(), fidl_fuchsia_posix::Errno>;
49736pub type StreamSocketAcceptResult = Result<
49737    (Option<Box<fidl_fuchsia_net::SocketAddress>>, fidl::endpoints::ClientEnd<StreamSocketMarker>),
49738    fidl_fuchsia_posix::Errno,
49739>;
49740pub type StreamSocketGetInfoResult =
49741    Result<(Domain, StreamSocketProtocol), fidl_fuchsia_posix::Errno>;
49742pub type StreamSocketSetTcpNoDelayResult = Result<(), fidl_fuchsia_posix::Errno>;
49743pub type StreamSocketGetTcpNoDelayResult = Result<bool, fidl_fuchsia_posix::Errno>;
49744pub type StreamSocketSetTcpMaxSegmentResult = Result<(), fidl_fuchsia_posix::Errno>;
49745pub type StreamSocketGetTcpMaxSegmentResult = Result<u32, fidl_fuchsia_posix::Errno>;
49746pub type StreamSocketSetTcpCorkResult = Result<(), fidl_fuchsia_posix::Errno>;
49747pub type StreamSocketGetTcpCorkResult = Result<bool, fidl_fuchsia_posix::Errno>;
49748pub type StreamSocketSetTcpKeepAliveIdleResult = Result<(), fidl_fuchsia_posix::Errno>;
49749pub type StreamSocketGetTcpKeepAliveIdleResult = Result<u32, fidl_fuchsia_posix::Errno>;
49750pub type StreamSocketSetTcpKeepAliveIntervalResult = Result<(), fidl_fuchsia_posix::Errno>;
49751pub type StreamSocketGetTcpKeepAliveIntervalResult = Result<u32, fidl_fuchsia_posix::Errno>;
49752pub type StreamSocketSetTcpKeepAliveCountResult = Result<(), fidl_fuchsia_posix::Errno>;
49753pub type StreamSocketGetTcpKeepAliveCountResult = Result<u32, fidl_fuchsia_posix::Errno>;
49754pub type StreamSocketSetTcpSynCountResult = Result<(), fidl_fuchsia_posix::Errno>;
49755pub type StreamSocketGetTcpSynCountResult = Result<u32, fidl_fuchsia_posix::Errno>;
49756pub type StreamSocketSetTcpLingerResult = Result<(), fidl_fuchsia_posix::Errno>;
49757pub type StreamSocketGetTcpLingerResult = Result<OptionalUint32, fidl_fuchsia_posix::Errno>;
49758pub type StreamSocketSetTcpDeferAcceptResult = Result<(), fidl_fuchsia_posix::Errno>;
49759pub type StreamSocketGetTcpDeferAcceptResult = Result<u32, fidl_fuchsia_posix::Errno>;
49760pub type StreamSocketSetTcpWindowClampResult = Result<(), fidl_fuchsia_posix::Errno>;
49761pub type StreamSocketGetTcpWindowClampResult = Result<u32, fidl_fuchsia_posix::Errno>;
49762pub type StreamSocketGetTcpInfoResult = Result<TcpInfo, fidl_fuchsia_posix::Errno>;
49763pub type StreamSocketSetTcpQuickAckResult = Result<(), fidl_fuchsia_posix::Errno>;
49764pub type StreamSocketGetTcpQuickAckResult = Result<bool, fidl_fuchsia_posix::Errno>;
49765pub type StreamSocketSetTcpCongestionResult = Result<(), fidl_fuchsia_posix::Errno>;
49766pub type StreamSocketGetTcpCongestionResult =
49767    Result<TcpCongestionControl, fidl_fuchsia_posix::Errno>;
49768pub type StreamSocketSetTcpUserTimeoutResult = Result<(), fidl_fuchsia_posix::Errno>;
49769pub type StreamSocketGetTcpUserTimeoutResult = Result<u32, fidl_fuchsia_posix::Errno>;
49770
49771pub trait StreamSocketProxyInterface: Send + Sync {
49772    fn r#clone(
49773        &self,
49774        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
49775    ) -> Result<(), fidl::Error>;
49776    type CloseResponseFut: std::future::Future<
49777            Output = Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error>,
49778        > + Send;
49779    fn r#close(&self) -> Self::CloseResponseFut;
49780    type QueryResponseFut: std::future::Future<Output = Result<Vec<u8>, fidl::Error>> + Send;
49781    fn r#query(&self) -> Self::QueryResponseFut;
49782    type SetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketSetReuseAddressResult, fidl::Error>>
49783        + Send;
49784    fn r#set_reuse_address(&self, value: bool) -> Self::SetReuseAddressResponseFut;
49785    type GetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketGetReuseAddressResult, fidl::Error>>
49786        + Send;
49787    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut;
49788    type GetErrorResponseFut: std::future::Future<Output = Result<BaseSocketGetErrorResult, fidl::Error>>
49789        + Send;
49790    fn r#get_error(&self) -> Self::GetErrorResponseFut;
49791    type SetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketSetBroadcastResult, fidl::Error>>
49792        + Send;
49793    fn r#set_broadcast(&self, value: bool) -> Self::SetBroadcastResponseFut;
49794    type GetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketGetBroadcastResult, fidl::Error>>
49795        + Send;
49796    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut;
49797    type SetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetSendBufferResult, fidl::Error>>
49798        + Send;
49799    fn r#set_send_buffer(&self, value_bytes: u64) -> Self::SetSendBufferResponseFut;
49800    type GetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetSendBufferResult, fidl::Error>>
49801        + Send;
49802    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut;
49803    type SetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetReceiveBufferResult, fidl::Error>>
49804        + Send;
49805    fn r#set_receive_buffer(&self, value_bytes: u64) -> Self::SetReceiveBufferResponseFut;
49806    type GetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetReceiveBufferResult, fidl::Error>>
49807        + Send;
49808    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut;
49809    type SetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketSetKeepAliveResult, fidl::Error>>
49810        + Send;
49811    fn r#set_keep_alive(&self, value: bool) -> Self::SetKeepAliveResponseFut;
49812    type GetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketGetKeepAliveResult, fidl::Error>>
49813        + Send;
49814    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut;
49815    type SetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketSetOutOfBandInlineResult, fidl::Error>>
49816        + Send;
49817    fn r#set_out_of_band_inline(&self, value: bool) -> Self::SetOutOfBandInlineResponseFut;
49818    type GetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketGetOutOfBandInlineResult, fidl::Error>>
49819        + Send;
49820    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut;
49821    type SetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketSetNoCheckResult, fidl::Error>>
49822        + Send;
49823    fn r#set_no_check(&self, value: bool) -> Self::SetNoCheckResponseFut;
49824    type GetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketGetNoCheckResult, fidl::Error>>
49825        + Send;
49826    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut;
49827    type SetLingerResponseFut: std::future::Future<Output = Result<BaseSocketSetLingerResult, fidl::Error>>
49828        + Send;
49829    fn r#set_linger(&self, linger: bool, length_secs: u32) -> Self::SetLingerResponseFut;
49830    type GetLingerResponseFut: std::future::Future<Output = Result<BaseSocketGetLingerResult, fidl::Error>>
49831        + Send;
49832    fn r#get_linger(&self) -> Self::GetLingerResponseFut;
49833    type SetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketSetReusePortResult, fidl::Error>>
49834        + Send;
49835    fn r#set_reuse_port(&self, value: bool) -> Self::SetReusePortResponseFut;
49836    type GetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketGetReusePortResult, fidl::Error>>
49837        + Send;
49838    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut;
49839    type GetAcceptConnResponseFut: std::future::Future<Output = Result<BaseSocketGetAcceptConnResult, fidl::Error>>
49840        + Send;
49841    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut;
49842    type SetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToDeviceResult, fidl::Error>>
49843        + Send;
49844    fn r#set_bind_to_device(&self, value: &str) -> Self::SetBindToDeviceResponseFut;
49845    type GetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToDeviceResult, fidl::Error>>
49846        + Send;
49847    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut;
49848    type SetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error>>
49849        + Send;
49850    fn r#set_bind_to_interface_index(&self, value: u64)
49851        -> Self::SetBindToInterfaceIndexResponseFut;
49852    type GetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error>>
49853        + Send;
49854    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut;
49855    type SetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketSetTimestampResult, fidl::Error>>
49856        + Send;
49857    fn r#set_timestamp(&self, value: TimestampOption) -> Self::SetTimestampResponseFut;
49858    type GetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketGetTimestampResult, fidl::Error>>
49859        + Send;
49860    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut;
49861    type SetMarkResponseFut: std::future::Future<Output = Result<BaseSocketSetMarkResult, fidl::Error>>
49862        + Send;
49863    fn r#set_mark(
49864        &self,
49865        domain: fidl_fuchsia_net::MarkDomain,
49866        mark: &OptionalUint32,
49867    ) -> Self::SetMarkResponseFut;
49868    type GetMarkResponseFut: std::future::Future<Output = Result<BaseSocketGetMarkResult, fidl::Error>>
49869        + Send;
49870    fn r#get_mark(&self, domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut;
49871    type GetCookieResponseFut: std::future::Future<Output = Result<BaseSocketGetCookieResult, fidl::Error>>
49872        + Send;
49873    fn r#get_cookie(&self) -> Self::GetCookieResponseFut;
49874    type BindResponseFut: std::future::Future<Output = Result<BaseNetworkSocketBindResult, fidl::Error>>
49875        + Send;
49876    fn r#bind(&self, addr: &fidl_fuchsia_net::SocketAddress) -> Self::BindResponseFut;
49877    type ConnectResponseFut: std::future::Future<Output = Result<BaseNetworkSocketConnectResult, fidl::Error>>
49878        + Send;
49879    fn r#connect(&self, addr: &fidl_fuchsia_net::SocketAddress) -> Self::ConnectResponseFut;
49880    type DisconnectResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDisconnectResult, fidl::Error>>
49881        + Send;
49882    fn r#disconnect(&self) -> Self::DisconnectResponseFut;
49883    type GetSockNameResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetSockNameResult, fidl::Error>>
49884        + Send;
49885    fn r#get_sock_name(&self) -> Self::GetSockNameResponseFut;
49886    type GetPeerNameResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetPeerNameResult, fidl::Error>>
49887        + Send;
49888    fn r#get_peer_name(&self) -> Self::GetPeerNameResponseFut;
49889    type ShutdownResponseFut: std::future::Future<Output = Result<BaseNetworkSocketShutdownResult, fidl::Error>>
49890        + Send;
49891    fn r#shutdown(&self, mode: ShutdownMode) -> Self::ShutdownResponseFut;
49892    type SetIpTypeOfServiceResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error>>
49893        + Send;
49894    fn r#set_ip_type_of_service(&self, value: u8) -> Self::SetIpTypeOfServiceResponseFut;
49895    type GetIpTypeOfServiceResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error>>
49896        + Send;
49897    fn r#get_ip_type_of_service(&self) -> Self::GetIpTypeOfServiceResponseFut;
49898    type SetIpTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTtlResult, fidl::Error>>
49899        + Send;
49900    fn r#set_ip_ttl(&self, value: &OptionalUint8) -> Self::SetIpTtlResponseFut;
49901    type GetIpTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTtlResult, fidl::Error>>
49902        + Send;
49903    fn r#get_ip_ttl(&self) -> Self::GetIpTtlResponseFut;
49904    type SetIpPacketInfoResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error>>
49905        + Send;
49906    fn r#set_ip_packet_info(&self, value: bool) -> Self::SetIpPacketInfoResponseFut;
49907    type GetIpPacketInfoResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error>>
49908        + Send;
49909    fn r#get_ip_packet_info(&self) -> Self::GetIpPacketInfoResponseFut;
49910    type SetIpReceiveTypeOfServiceResponseFut: std::future::Future<
49911            Output = Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error>,
49912        > + Send;
49913    fn r#set_ip_receive_type_of_service(
49914        &self,
49915        value: bool,
49916    ) -> Self::SetIpReceiveTypeOfServiceResponseFut;
49917    type GetIpReceiveTypeOfServiceResponseFut: std::future::Future<
49918            Output = Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error>,
49919        > + Send;
49920    fn r#get_ip_receive_type_of_service(&self) -> Self::GetIpReceiveTypeOfServiceResponseFut;
49921    type SetIpReceiveTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error>>
49922        + Send;
49923    fn r#set_ip_receive_ttl(&self, value: bool) -> Self::SetIpReceiveTtlResponseFut;
49924    type GetIpReceiveTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error>>
49925        + Send;
49926    fn r#get_ip_receive_ttl(&self) -> Self::GetIpReceiveTtlResponseFut;
49927    type SetIpMulticastInterfaceResponseFut: std::future::Future<
49928            Output = Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error>,
49929        > + Send;
49930    fn r#set_ip_multicast_interface(
49931        &self,
49932        iface: u64,
49933        address: &fidl_fuchsia_net::Ipv4Address,
49934    ) -> Self::SetIpMulticastInterfaceResponseFut;
49935    type GetIpMulticastInterfaceResponseFut: std::future::Future<
49936            Output = Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error>,
49937        > + Send;
49938    fn r#get_ip_multicast_interface(&self) -> Self::GetIpMulticastInterfaceResponseFut;
49939    type SetIpMulticastTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error>>
49940        + Send;
49941    fn r#set_ip_multicast_ttl(&self, value: &OptionalUint8) -> Self::SetIpMulticastTtlResponseFut;
49942    type GetIpMulticastTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error>>
49943        + Send;
49944    fn r#get_ip_multicast_ttl(&self) -> Self::GetIpMulticastTtlResponseFut;
49945    type SetIpMulticastLoopbackResponseFut: std::future::Future<
49946            Output = Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error>,
49947        > + Send;
49948    fn r#set_ip_multicast_loopback(&self, value: bool) -> Self::SetIpMulticastLoopbackResponseFut;
49949    type GetIpMulticastLoopbackResponseFut: std::future::Future<
49950            Output = Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error>,
49951        > + Send;
49952    fn r#get_ip_multicast_loopback(&self) -> Self::GetIpMulticastLoopbackResponseFut;
49953    type AddIpMembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error>>
49954        + Send;
49955    fn r#add_ip_membership(
49956        &self,
49957        membership: &IpMulticastMembership,
49958    ) -> Self::AddIpMembershipResponseFut;
49959    type DropIpMembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error>>
49960        + Send;
49961    fn r#drop_ip_membership(
49962        &self,
49963        membership: &IpMulticastMembership,
49964    ) -> Self::DropIpMembershipResponseFut;
49965    type SetIpTransparentResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error>>
49966        + Send;
49967    fn r#set_ip_transparent(&self, value: bool) -> Self::SetIpTransparentResponseFut;
49968    type GetIpTransparentResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error>>
49969        + Send;
49970    fn r#get_ip_transparent(&self) -> Self::GetIpTransparentResponseFut;
49971    type SetIpReceiveOriginalDestinationAddressResponseFut: std::future::Future<
49972            Output = Result<
49973                BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
49974                fidl::Error,
49975            >,
49976        > + Send;
49977    fn r#set_ip_receive_original_destination_address(
49978        &self,
49979        value: bool,
49980    ) -> Self::SetIpReceiveOriginalDestinationAddressResponseFut;
49981    type GetIpReceiveOriginalDestinationAddressResponseFut: std::future::Future<
49982            Output = Result<
49983                BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
49984                fidl::Error,
49985            >,
49986        > + Send;
49987    fn r#get_ip_receive_original_destination_address(
49988        &self,
49989    ) -> Self::GetIpReceiveOriginalDestinationAddressResponseFut;
49990    type AddIpv6MembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error>>
49991        + Send;
49992    fn r#add_ipv6_membership(
49993        &self,
49994        membership: &Ipv6MulticastMembership,
49995    ) -> Self::AddIpv6MembershipResponseFut;
49996    type DropIpv6MembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error>>
49997        + Send;
49998    fn r#drop_ipv6_membership(
49999        &self,
50000        membership: &Ipv6MulticastMembership,
50001    ) -> Self::DropIpv6MembershipResponseFut;
50002    type SetIpv6MulticastInterfaceResponseFut: std::future::Future<
50003            Output = Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error>,
50004        > + Send;
50005    fn r#set_ipv6_multicast_interface(
50006        &self,
50007        value: u64,
50008    ) -> Self::SetIpv6MulticastInterfaceResponseFut;
50009    type GetIpv6MulticastInterfaceResponseFut: std::future::Future<
50010            Output = Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error>,
50011        > + Send;
50012    fn r#get_ipv6_multicast_interface(&self) -> Self::GetIpv6MulticastInterfaceResponseFut;
50013    type SetIpv6UnicastHopsResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error>>
50014        + Send;
50015    fn r#set_ipv6_unicast_hops(&self, value: &OptionalUint8)
50016        -> Self::SetIpv6UnicastHopsResponseFut;
50017    type GetIpv6UnicastHopsResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error>>
50018        + Send;
50019    fn r#get_ipv6_unicast_hops(&self) -> Self::GetIpv6UnicastHopsResponseFut;
50020    type SetIpv6ReceiveHopLimitResponseFut: std::future::Future<
50021            Output = Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error>,
50022        > + Send;
50023    fn r#set_ipv6_receive_hop_limit(&self, value: bool) -> Self::SetIpv6ReceiveHopLimitResponseFut;
50024    type GetIpv6ReceiveHopLimitResponseFut: std::future::Future<
50025            Output = Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error>,
50026        > + Send;
50027    fn r#get_ipv6_receive_hop_limit(&self) -> Self::GetIpv6ReceiveHopLimitResponseFut;
50028    type SetIpv6MulticastHopsResponseFut: std::future::Future<
50029            Output = Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error>,
50030        > + Send;
50031    fn r#set_ipv6_multicast_hops(
50032        &self,
50033        value: &OptionalUint8,
50034    ) -> Self::SetIpv6MulticastHopsResponseFut;
50035    type GetIpv6MulticastHopsResponseFut: std::future::Future<
50036            Output = Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error>,
50037        > + Send;
50038    fn r#get_ipv6_multicast_hops(&self) -> Self::GetIpv6MulticastHopsResponseFut;
50039    type SetIpv6MulticastLoopbackResponseFut: std::future::Future<
50040            Output = Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error>,
50041        > + Send;
50042    fn r#set_ipv6_multicast_loopback(
50043        &self,
50044        value: bool,
50045    ) -> Self::SetIpv6MulticastLoopbackResponseFut;
50046    type GetIpv6MulticastLoopbackResponseFut: std::future::Future<
50047            Output = Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error>,
50048        > + Send;
50049    fn r#get_ipv6_multicast_loopback(&self) -> Self::GetIpv6MulticastLoopbackResponseFut;
50050    type SetIpv6OnlyResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error>>
50051        + Send;
50052    fn r#set_ipv6_only(&self, value: bool) -> Self::SetIpv6OnlyResponseFut;
50053    type GetIpv6OnlyResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error>>
50054        + Send;
50055    fn r#get_ipv6_only(&self) -> Self::GetIpv6OnlyResponseFut;
50056    type SetIpv6ReceiveTrafficClassResponseFut: std::future::Future<
50057            Output = Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error>,
50058        > + Send;
50059    fn r#set_ipv6_receive_traffic_class(
50060        &self,
50061        value: bool,
50062    ) -> Self::SetIpv6ReceiveTrafficClassResponseFut;
50063    type GetIpv6ReceiveTrafficClassResponseFut: std::future::Future<
50064            Output = Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error>,
50065        > + Send;
50066    fn r#get_ipv6_receive_traffic_class(&self) -> Self::GetIpv6ReceiveTrafficClassResponseFut;
50067    type SetIpv6TrafficClassResponseFut: std::future::Future<
50068            Output = Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error>,
50069        > + Send;
50070    fn r#set_ipv6_traffic_class(
50071        &self,
50072        value: &OptionalUint8,
50073    ) -> Self::SetIpv6TrafficClassResponseFut;
50074    type GetIpv6TrafficClassResponseFut: std::future::Future<
50075            Output = Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error>,
50076        > + Send;
50077    fn r#get_ipv6_traffic_class(&self) -> Self::GetIpv6TrafficClassResponseFut;
50078    type SetIpv6ReceivePacketInfoResponseFut: std::future::Future<
50079            Output = Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error>,
50080        > + Send;
50081    fn r#set_ipv6_receive_packet_info(
50082        &self,
50083        value: bool,
50084    ) -> Self::SetIpv6ReceivePacketInfoResponseFut;
50085    type GetIpv6ReceivePacketInfoResponseFut: std::future::Future<
50086            Output = Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error>,
50087        > + Send;
50088    fn r#get_ipv6_receive_packet_info(&self) -> Self::GetIpv6ReceivePacketInfoResponseFut;
50089    type GetOriginalDestinationResponseFut: std::future::Future<
50090            Output = Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error>,
50091        > + Send;
50092    fn r#get_original_destination(&self) -> Self::GetOriginalDestinationResponseFut;
50093    type DescribeResponseFut: std::future::Future<Output = Result<StreamSocketDescribeResponse, fidl::Error>>
50094        + Send;
50095    fn r#describe(&self) -> Self::DescribeResponseFut;
50096    type ListenResponseFut: std::future::Future<Output = Result<StreamSocketListenResult, fidl::Error>>
50097        + Send;
50098    fn r#listen(&self, backlog: i16) -> Self::ListenResponseFut;
50099    type AcceptResponseFut: std::future::Future<Output = Result<StreamSocketAcceptResult, fidl::Error>>
50100        + Send;
50101    fn r#accept(&self, want_addr: bool) -> Self::AcceptResponseFut;
50102    type GetInfoResponseFut: std::future::Future<Output = Result<StreamSocketGetInfoResult, fidl::Error>>
50103        + Send;
50104    fn r#get_info(&self) -> Self::GetInfoResponseFut;
50105    type SetTcpNoDelayResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpNoDelayResult, fidl::Error>>
50106        + Send;
50107    fn r#set_tcp_no_delay(&self, value: bool) -> Self::SetTcpNoDelayResponseFut;
50108    type GetTcpNoDelayResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpNoDelayResult, fidl::Error>>
50109        + Send;
50110    fn r#get_tcp_no_delay(&self) -> Self::GetTcpNoDelayResponseFut;
50111    type SetTcpMaxSegmentResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpMaxSegmentResult, fidl::Error>>
50112        + Send;
50113    fn r#set_tcp_max_segment(&self, value_bytes: u32) -> Self::SetTcpMaxSegmentResponseFut;
50114    type GetTcpMaxSegmentResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpMaxSegmentResult, fidl::Error>>
50115        + Send;
50116    fn r#get_tcp_max_segment(&self) -> Self::GetTcpMaxSegmentResponseFut;
50117    type SetTcpCorkResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpCorkResult, fidl::Error>>
50118        + Send;
50119    fn r#set_tcp_cork(&self, value: bool) -> Self::SetTcpCorkResponseFut;
50120    type GetTcpCorkResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpCorkResult, fidl::Error>>
50121        + Send;
50122    fn r#get_tcp_cork(&self) -> Self::GetTcpCorkResponseFut;
50123    type SetTcpKeepAliveIdleResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpKeepAliveIdleResult, fidl::Error>>
50124        + Send;
50125    fn r#set_tcp_keep_alive_idle(&self, value_secs: u32) -> Self::SetTcpKeepAliveIdleResponseFut;
50126    type GetTcpKeepAliveIdleResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpKeepAliveIdleResult, fidl::Error>>
50127        + Send;
50128    fn r#get_tcp_keep_alive_idle(&self) -> Self::GetTcpKeepAliveIdleResponseFut;
50129    type SetTcpKeepAliveIntervalResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpKeepAliveIntervalResult, fidl::Error>>
50130        + Send;
50131    fn r#set_tcp_keep_alive_interval(
50132        &self,
50133        value_secs: u32,
50134    ) -> Self::SetTcpKeepAliveIntervalResponseFut;
50135    type GetTcpKeepAliveIntervalResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpKeepAliveIntervalResult, fidl::Error>>
50136        + Send;
50137    fn r#get_tcp_keep_alive_interval(&self) -> Self::GetTcpKeepAliveIntervalResponseFut;
50138    type SetTcpKeepAliveCountResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpKeepAliveCountResult, fidl::Error>>
50139        + Send;
50140    fn r#set_tcp_keep_alive_count(&self, value: u32) -> Self::SetTcpKeepAliveCountResponseFut;
50141    type GetTcpKeepAliveCountResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpKeepAliveCountResult, fidl::Error>>
50142        + Send;
50143    fn r#get_tcp_keep_alive_count(&self) -> Self::GetTcpKeepAliveCountResponseFut;
50144    type SetTcpSynCountResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpSynCountResult, fidl::Error>>
50145        + Send;
50146    fn r#set_tcp_syn_count(&self, value: u32) -> Self::SetTcpSynCountResponseFut;
50147    type GetTcpSynCountResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpSynCountResult, fidl::Error>>
50148        + Send;
50149    fn r#get_tcp_syn_count(&self) -> Self::GetTcpSynCountResponseFut;
50150    type SetTcpLingerResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpLingerResult, fidl::Error>>
50151        + Send;
50152    fn r#set_tcp_linger(&self, value_secs: &OptionalUint32) -> Self::SetTcpLingerResponseFut;
50153    type GetTcpLingerResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpLingerResult, fidl::Error>>
50154        + Send;
50155    fn r#get_tcp_linger(&self) -> Self::GetTcpLingerResponseFut;
50156    type SetTcpDeferAcceptResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpDeferAcceptResult, fidl::Error>>
50157        + Send;
50158    fn r#set_tcp_defer_accept(&self, value_secs: u32) -> Self::SetTcpDeferAcceptResponseFut;
50159    type GetTcpDeferAcceptResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpDeferAcceptResult, fidl::Error>>
50160        + Send;
50161    fn r#get_tcp_defer_accept(&self) -> Self::GetTcpDeferAcceptResponseFut;
50162    type SetTcpWindowClampResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpWindowClampResult, fidl::Error>>
50163        + Send;
50164    fn r#set_tcp_window_clamp(&self, value: u32) -> Self::SetTcpWindowClampResponseFut;
50165    type GetTcpWindowClampResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpWindowClampResult, fidl::Error>>
50166        + Send;
50167    fn r#get_tcp_window_clamp(&self) -> Self::GetTcpWindowClampResponseFut;
50168    type GetTcpInfoResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpInfoResult, fidl::Error>>
50169        + Send;
50170    fn r#get_tcp_info(&self) -> Self::GetTcpInfoResponseFut;
50171    type SetTcpQuickAckResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpQuickAckResult, fidl::Error>>
50172        + Send;
50173    fn r#set_tcp_quick_ack(&self, value: bool) -> Self::SetTcpQuickAckResponseFut;
50174    type GetTcpQuickAckResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpQuickAckResult, fidl::Error>>
50175        + Send;
50176    fn r#get_tcp_quick_ack(&self) -> Self::GetTcpQuickAckResponseFut;
50177    type SetTcpCongestionResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpCongestionResult, fidl::Error>>
50178        + Send;
50179    fn r#set_tcp_congestion(
50180        &self,
50181        value: TcpCongestionControl,
50182    ) -> Self::SetTcpCongestionResponseFut;
50183    type GetTcpCongestionResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpCongestionResult, fidl::Error>>
50184        + Send;
50185    fn r#get_tcp_congestion(&self) -> Self::GetTcpCongestionResponseFut;
50186    type SetTcpUserTimeoutResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpUserTimeoutResult, fidl::Error>>
50187        + Send;
50188    fn r#set_tcp_user_timeout(&self, value_millis: u32) -> Self::SetTcpUserTimeoutResponseFut;
50189    type GetTcpUserTimeoutResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpUserTimeoutResult, fidl::Error>>
50190        + Send;
50191    fn r#get_tcp_user_timeout(&self) -> Self::GetTcpUserTimeoutResponseFut;
50192}
50193#[derive(Debug)]
50194#[cfg(target_os = "fuchsia")]
50195pub struct StreamSocketSynchronousProxy {
50196    client: fidl::client::sync::Client,
50197}
50198
50199#[cfg(target_os = "fuchsia")]
50200impl fidl::endpoints::SynchronousProxy for StreamSocketSynchronousProxy {
50201    type Proxy = StreamSocketProxy;
50202    type Protocol = StreamSocketMarker;
50203
50204    fn from_channel(inner: fidl::Channel) -> Self {
50205        Self::new(inner)
50206    }
50207
50208    fn into_channel(self) -> fidl::Channel {
50209        self.client.into_channel()
50210    }
50211
50212    fn as_channel(&self) -> &fidl::Channel {
50213        self.client.as_channel()
50214    }
50215}
50216
50217#[cfg(target_os = "fuchsia")]
50218impl StreamSocketSynchronousProxy {
50219    pub fn new(channel: fidl::Channel) -> Self {
50220        let protocol_name = <StreamSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
50221        Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
50222    }
50223
50224    pub fn into_channel(self) -> fidl::Channel {
50225        self.client.into_channel()
50226    }
50227
50228    /// Waits until an event arrives and returns it. It is safe for other
50229    /// threads to make concurrent requests while waiting for an event.
50230    pub fn wait_for_event(
50231        &self,
50232        deadline: zx::MonotonicInstant,
50233    ) -> Result<StreamSocketEvent, fidl::Error> {
50234        StreamSocketEvent::decode(self.client.wait_for_event(deadline)?)
50235    }
50236
50237    pub fn r#clone(
50238        &self,
50239        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
50240    ) -> Result<(), fidl::Error> {
50241        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
50242            (request,),
50243            0x20d8a7aba2168a79,
50244            fidl::encoding::DynamicFlags::empty(),
50245        )
50246    }
50247
50248    /// Terminates the connection.
50249    ///
50250    /// After calling `Close`, the client must not send any other requests.
50251    ///
50252    /// Servers, after sending the status response, should close the connection
50253    /// regardless of status and without sending an epitaph.
50254    ///
50255    /// Closing the client end of the channel should be semantically equivalent
50256    /// to calling `Close` without knowing when the close has completed or its
50257    /// status.
50258    pub fn r#close(
50259        &self,
50260        ___deadline: zx::MonotonicInstant,
50261    ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
50262        let _response = self.client.send_query::<
50263            fidl::encoding::EmptyPayload,
50264            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
50265        >(
50266            (),
50267            0x5ac5d459ad7f657e,
50268            fidl::encoding::DynamicFlags::empty(),
50269            ___deadline,
50270        )?;
50271        Ok(_response.map(|x| x))
50272    }
50273
50274    pub fn r#query(&self, ___deadline: zx::MonotonicInstant) -> Result<Vec<u8>, fidl::Error> {
50275        let _response = self.client.send_query::<
50276            fidl::encoding::EmptyPayload,
50277            fidl_fuchsia_unknown::QueryableQueryResponse,
50278        >(
50279            (),
50280            0x2658edee9decfc06,
50281            fidl::encoding::DynamicFlags::empty(),
50282            ___deadline,
50283        )?;
50284        Ok(_response.protocol)
50285    }
50286
50287    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
50288    pub fn r#set_reuse_address(
50289        &self,
50290        mut value: bool,
50291        ___deadline: zx::MonotonicInstant,
50292    ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
50293        let _response =
50294            self.client.send_query::<BaseSocketSetReuseAddressRequest, fidl::encoding::ResultType<
50295                fidl::encoding::EmptyStruct,
50296                fidl_fuchsia_posix::Errno,
50297            >>(
50298                (value,),
50299                0x1fd74ee8b9a4a876,
50300                fidl::encoding::DynamicFlags::empty(),
50301                ___deadline,
50302            )?;
50303        Ok(_response.map(|x| x))
50304    }
50305
50306    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
50307    pub fn r#get_reuse_address(
50308        &self,
50309        ___deadline: zx::MonotonicInstant,
50310    ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
50311        let _response = self
50312            .client
50313            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50314                BaseSocketGetReuseAddressResponse,
50315                fidl_fuchsia_posix::Errno,
50316            >>(
50317                (), 0x67b7206b8d1bc0a5, fidl::encoding::DynamicFlags::empty(), ___deadline
50318            )?;
50319        Ok(_response.map(|x| x.value))
50320    }
50321
50322    /// Get `SOL_SOCKET` -> `SO_ERROR`.
50323    /// Returns the last error if there is an error set on the socket.
50324    pub fn r#get_error(
50325        &self,
50326        ___deadline: zx::MonotonicInstant,
50327    ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
50328        let _response =
50329            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50330                fidl::encoding::EmptyStruct,
50331                fidl_fuchsia_posix::Errno,
50332            >>(
50333                (),
50334                0x5aad39b33e5f6ebb,
50335                fidl::encoding::DynamicFlags::empty(),
50336                ___deadline,
50337            )?;
50338        Ok(_response.map(|x| x))
50339    }
50340
50341    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
50342    pub fn r#set_broadcast(
50343        &self,
50344        mut value: bool,
50345        ___deadline: zx::MonotonicInstant,
50346    ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
50347        let _response =
50348            self.client.send_query::<BaseSocketSetBroadcastRequest, fidl::encoding::ResultType<
50349                fidl::encoding::EmptyStruct,
50350                fidl_fuchsia_posix::Errno,
50351            >>(
50352                (value,),
50353                0x6023e081ce3cd947,
50354                fidl::encoding::DynamicFlags::empty(),
50355                ___deadline,
50356            )?;
50357        Ok(_response.map(|x| x))
50358    }
50359
50360    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
50361    pub fn r#get_broadcast(
50362        &self,
50363        ___deadline: zx::MonotonicInstant,
50364    ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
50365        let _response =
50366            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50367                BaseSocketGetBroadcastResponse,
50368                fidl_fuchsia_posix::Errno,
50369            >>(
50370                (),
50371                0x68796fc556f9780d,
50372                fidl::encoding::DynamicFlags::empty(),
50373                ___deadline,
50374            )?;
50375        Ok(_response.map(|x| x.value))
50376    }
50377
50378    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
50379    pub fn r#set_send_buffer(
50380        &self,
50381        mut value_bytes: u64,
50382        ___deadline: zx::MonotonicInstant,
50383    ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
50384        let _response =
50385            self.client.send_query::<BaseSocketSetSendBufferRequest, fidl::encoding::ResultType<
50386                fidl::encoding::EmptyStruct,
50387                fidl_fuchsia_posix::Errno,
50388            >>(
50389                (value_bytes,),
50390                0x756eac32d73a7a70,
50391                fidl::encoding::DynamicFlags::empty(),
50392                ___deadline,
50393            )?;
50394        Ok(_response.map(|x| x))
50395    }
50396
50397    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
50398    pub fn r#get_send_buffer(
50399        &self,
50400        ___deadline: zx::MonotonicInstant,
50401    ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
50402        let _response = self
50403            .client
50404            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50405                BaseSocketGetSendBufferResponse,
50406                fidl_fuchsia_posix::Errno,
50407            >>(
50408                (), 0x78a52fd9c7b2410b, fidl::encoding::DynamicFlags::empty(), ___deadline
50409            )?;
50410        Ok(_response.map(|x| x.value_bytes))
50411    }
50412
50413    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
50414    pub fn r#set_receive_buffer(
50415        &self,
50416        mut value_bytes: u64,
50417        ___deadline: zx::MonotonicInstant,
50418    ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
50419        let _response =
50420            self.client
50421                .send_query::<BaseSocketSetReceiveBufferRequest, fidl::encoding::ResultType<
50422                    fidl::encoding::EmptyStruct,
50423                    fidl_fuchsia_posix::Errno,
50424                >>(
50425                    (value_bytes,),
50426                    0x6b0cf2f1919c7001,
50427                    fidl::encoding::DynamicFlags::empty(),
50428                    ___deadline,
50429                )?;
50430        Ok(_response.map(|x| x))
50431    }
50432
50433    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
50434    pub fn r#get_receive_buffer(
50435        &self,
50436        ___deadline: zx::MonotonicInstant,
50437    ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
50438        let _response = self
50439            .client
50440            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50441                BaseSocketGetReceiveBufferResponse,
50442                fidl_fuchsia_posix::Errno,
50443            >>(
50444                (), 0x14c1a4b64f709e5c, fidl::encoding::DynamicFlags::empty(), ___deadline
50445            )?;
50446        Ok(_response.map(|x| x.value_bytes))
50447    }
50448
50449    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
50450    pub fn r#set_keep_alive(
50451        &self,
50452        mut value: bool,
50453        ___deadline: zx::MonotonicInstant,
50454    ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
50455        let _response =
50456            self.client.send_query::<BaseSocketSetKeepAliveRequest, fidl::encoding::ResultType<
50457                fidl::encoding::EmptyStruct,
50458                fidl_fuchsia_posix::Errno,
50459            >>(
50460                (value,),
50461                0x572df8f0b920d2c7,
50462                fidl::encoding::DynamicFlags::empty(),
50463                ___deadline,
50464            )?;
50465        Ok(_response.map(|x| x))
50466    }
50467
50468    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
50469    pub fn r#get_keep_alive(
50470        &self,
50471        ___deadline: zx::MonotonicInstant,
50472    ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
50473        let _response =
50474            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50475                BaseSocketGetKeepAliveResponse,
50476                fidl_fuchsia_posix::Errno,
50477            >>(
50478                (),
50479                0x2dd29d3215f2c9d2,
50480                fidl::encoding::DynamicFlags::empty(),
50481                ___deadline,
50482            )?;
50483        Ok(_response.map(|x| x.value))
50484    }
50485
50486    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
50487    pub fn r#set_out_of_band_inline(
50488        &self,
50489        mut value: bool,
50490        ___deadline: zx::MonotonicInstant,
50491    ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
50492        let _response =
50493            self.client
50494                .send_query::<BaseSocketSetOutOfBandInlineRequest, fidl::encoding::ResultType<
50495                    fidl::encoding::EmptyStruct,
50496                    fidl_fuchsia_posix::Errno,
50497                >>(
50498                    (value,),
50499                    0x3ecb49968bee439,
50500                    fidl::encoding::DynamicFlags::empty(),
50501                    ___deadline,
50502                )?;
50503        Ok(_response.map(|x| x))
50504    }
50505
50506    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
50507    pub fn r#get_out_of_band_inline(
50508        &self,
50509        ___deadline: zx::MonotonicInstant,
50510    ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
50511        let _response = self
50512            .client
50513            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50514                BaseSocketGetOutOfBandInlineResponse,
50515                fidl_fuchsia_posix::Errno,
50516            >>(
50517                (), 0x348c1ab3aeca1745, fidl::encoding::DynamicFlags::empty(), ___deadline
50518            )?;
50519        Ok(_response.map(|x| x.value))
50520    }
50521
50522    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
50523    pub fn r#set_no_check(
50524        &self,
50525        mut value: bool,
50526        ___deadline: zx::MonotonicInstant,
50527    ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
50528        let _response =
50529            self.client.send_query::<BaseSocketSetNoCheckRequest, fidl::encoding::ResultType<
50530                fidl::encoding::EmptyStruct,
50531                fidl_fuchsia_posix::Errno,
50532            >>(
50533                (value,),
50534                0x6bbf00c53a4c78c2,
50535                fidl::encoding::DynamicFlags::empty(),
50536                ___deadline,
50537            )?;
50538        Ok(_response.map(|x| x))
50539    }
50540
50541    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
50542    pub fn r#get_no_check(
50543        &self,
50544        ___deadline: zx::MonotonicInstant,
50545    ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
50546        let _response =
50547            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50548                BaseSocketGetNoCheckResponse,
50549                fidl_fuchsia_posix::Errno,
50550            >>(
50551                (),
50552                0x2cd4249286417694,
50553                fidl::encoding::DynamicFlags::empty(),
50554                ___deadline,
50555            )?;
50556        Ok(_response.map(|x| x.value))
50557    }
50558
50559    /// Set `SOL_SOCKET` -> `SO_LINGER`.
50560    pub fn r#set_linger(
50561        &self,
50562        mut linger: bool,
50563        mut length_secs: u32,
50564        ___deadline: zx::MonotonicInstant,
50565    ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
50566        let _response =
50567            self.client.send_query::<BaseSocketSetLingerRequest, fidl::encoding::ResultType<
50568                fidl::encoding::EmptyStruct,
50569                fidl_fuchsia_posix::Errno,
50570            >>(
50571                (linger, length_secs),
50572                0x45386351246e998e,
50573                fidl::encoding::DynamicFlags::empty(),
50574                ___deadline,
50575            )?;
50576        Ok(_response.map(|x| x))
50577    }
50578
50579    /// Get `SOL_SOCKET` -> `SO_LINGER`.
50580    pub fn r#get_linger(
50581        &self,
50582        ___deadline: zx::MonotonicInstant,
50583    ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
50584        let _response =
50585            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50586                BaseSocketGetLingerResponse,
50587                fidl_fuchsia_posix::Errno,
50588            >>(
50589                (),
50590                0x48eb20fc5ccb0e45,
50591                fidl::encoding::DynamicFlags::empty(),
50592                ___deadline,
50593            )?;
50594        Ok(_response.map(|x| (x.linger, x.length_secs)))
50595    }
50596
50597    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
50598    pub fn r#set_reuse_port(
50599        &self,
50600        mut value: bool,
50601        ___deadline: zx::MonotonicInstant,
50602    ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
50603        let _response =
50604            self.client.send_query::<BaseSocketSetReusePortRequest, fidl::encoding::ResultType<
50605                fidl::encoding::EmptyStruct,
50606                fidl_fuchsia_posix::Errno,
50607            >>(
50608                (value,),
50609                0x24dd3e5cb36d9ccb,
50610                fidl::encoding::DynamicFlags::empty(),
50611                ___deadline,
50612            )?;
50613        Ok(_response.map(|x| x))
50614    }
50615
50616    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
50617    pub fn r#get_reuse_port(
50618        &self,
50619        ___deadline: zx::MonotonicInstant,
50620    ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
50621        let _response =
50622            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50623                BaseSocketGetReusePortResponse,
50624                fidl_fuchsia_posix::Errno,
50625            >>(
50626                (),
50627                0x7a112c1ab54ff828,
50628                fidl::encoding::DynamicFlags::empty(),
50629                ___deadline,
50630            )?;
50631        Ok(_response.map(|x| x.value))
50632    }
50633
50634    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
50635    pub fn r#get_accept_conn(
50636        &self,
50637        ___deadline: zx::MonotonicInstant,
50638    ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
50639        let _response = self
50640            .client
50641            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50642                BaseSocketGetAcceptConnResponse,
50643                fidl_fuchsia_posix::Errno,
50644            >>(
50645                (), 0x67ce6db6c2ec8966, fidl::encoding::DynamicFlags::empty(), ___deadline
50646            )?;
50647        Ok(_response.map(|x| x.value))
50648    }
50649
50650    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
50651    pub fn r#set_bind_to_device(
50652        &self,
50653        mut value: &str,
50654        ___deadline: zx::MonotonicInstant,
50655    ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
50656        let _response =
50657            self.client.send_query::<BaseSocketSetBindToDeviceRequest, fidl::encoding::ResultType<
50658                fidl::encoding::EmptyStruct,
50659                fidl_fuchsia_posix::Errno,
50660            >>(
50661                (value,),
50662                0x2118b483f28aafc4,
50663                fidl::encoding::DynamicFlags::empty(),
50664                ___deadline,
50665            )?;
50666        Ok(_response.map(|x| x))
50667    }
50668
50669    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
50670    pub fn r#get_bind_to_device(
50671        &self,
50672        ___deadline: zx::MonotonicInstant,
50673    ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
50674        let _response = self
50675            .client
50676            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50677                BaseSocketGetBindToDeviceResponse,
50678                fidl_fuchsia_posix::Errno,
50679            >>(
50680                (), 0x1ab1fbf0ef7906c8, fidl::encoding::DynamicFlags::empty(), ___deadline
50681            )?;
50682        Ok(_response.map(|x| x.value))
50683    }
50684
50685    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
50686    /// If `value` is 0, this clears the bound interface.
50687    pub fn r#set_bind_to_interface_index(
50688        &self,
50689        mut value: u64,
50690        ___deadline: zx::MonotonicInstant,
50691    ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
50692        let _response =
50693            self.client
50694                .send_query::<BaseSocketSetBindToInterfaceIndexRequest, fidl::encoding::ResultType<
50695                    fidl::encoding::EmptyStruct,
50696                    fidl_fuchsia_posix::Errno,
50697                >>(
50698                    (value,),
50699                    0x6e387a0def00821,
50700                    fidl::encoding::DynamicFlags::empty(),
50701                    ___deadline,
50702                )?;
50703        Ok(_response.map(|x| x))
50704    }
50705
50706    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
50707    pub fn r#get_bind_to_interface_index(
50708        &self,
50709        ___deadline: zx::MonotonicInstant,
50710    ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
50711        let _response = self
50712            .client
50713            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50714                BaseSocketGetBindToInterfaceIndexResponse,
50715                fidl_fuchsia_posix::Errno,
50716            >>(
50717                (), 0x59c31dd3e3078295, fidl::encoding::DynamicFlags::empty(), ___deadline
50718            )?;
50719        Ok(_response.map(|x| x.value))
50720    }
50721
50722    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
50723    pub fn r#set_timestamp(
50724        &self,
50725        mut value: TimestampOption,
50726        ___deadline: zx::MonotonicInstant,
50727    ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
50728        let _response =
50729            self.client.send_query::<BaseSocketSetTimestampRequest, fidl::encoding::ResultType<
50730                fidl::encoding::EmptyStruct,
50731                fidl_fuchsia_posix::Errno,
50732            >>(
50733                (value,),
50734                0x285d6516c263d839,
50735                fidl::encoding::DynamicFlags::empty(),
50736                ___deadline,
50737            )?;
50738        Ok(_response.map(|x| x))
50739    }
50740
50741    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
50742    pub fn r#get_timestamp(
50743        &self,
50744        ___deadline: zx::MonotonicInstant,
50745    ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
50746        let _response =
50747            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50748                BaseSocketGetTimestampResponse,
50749                fidl_fuchsia_posix::Errno,
50750            >>(
50751                (),
50752                0x49f2fffbbcc2bd27,
50753                fidl::encoding::DynamicFlags::empty(),
50754                ___deadline,
50755            )?;
50756        Ok(_response.map(|x| x.value))
50757    }
50758
50759    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
50760    /// unlike the standard SO_MARK, this API has multiple mark domains and each
50761    /// mark can be set independently in each domain.
50762    pub fn r#set_mark(
50763        &self,
50764        mut domain: fidl_fuchsia_net::MarkDomain,
50765        mut mark: &OptionalUint32,
50766        ___deadline: zx::MonotonicInstant,
50767    ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
50768        let _response =
50769            self.client.send_query::<BaseSocketSetMarkRequest, fidl::encoding::ResultType<
50770                fidl::encoding::EmptyStruct,
50771                fidl_fuchsia_posix::Errno,
50772            >>(
50773                (domain, mark),
50774                0x6ead6de09f653236,
50775                fidl::encoding::DynamicFlags::empty(),
50776                ___deadline,
50777            )?;
50778        Ok(_response.map(|x| x))
50779    }
50780
50781    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
50782    /// unlike the standard SO_MARK, this API has multiple mark domains and each
50783    /// mark can be retrieved independently in each domain.
50784    pub fn r#get_mark(
50785        &self,
50786        mut domain: fidl_fuchsia_net::MarkDomain,
50787        ___deadline: zx::MonotonicInstant,
50788    ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
50789        let _response =
50790            self.client.send_query::<BaseSocketGetMarkRequest, fidl::encoding::ResultType<
50791                BaseSocketGetMarkResponse,
50792                fidl_fuchsia_posix::Errno,
50793            >>(
50794                (domain,),
50795                0x57a2752c61d93d47,
50796                fidl::encoding::DynamicFlags::empty(),
50797                ___deadline,
50798            )?;
50799        Ok(_response.map(|x| x.mark))
50800    }
50801
50802    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
50803    pub fn r#get_cookie(
50804        &self,
50805        ___deadline: zx::MonotonicInstant,
50806    ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
50807        let _response =
50808            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50809                BaseSocketGetCookieResponse,
50810                fidl_fuchsia_posix::Errno,
50811            >>(
50812                (),
50813                0x2c2f47fd8f924e52,
50814                fidl::encoding::DynamicFlags::empty(),
50815                ___deadline,
50816            )?;
50817        Ok(_response.map(|x| x.value))
50818    }
50819
50820    /// Sets the local address used for the socket.
50821    pub fn r#bind(
50822        &self,
50823        mut addr: &fidl_fuchsia_net::SocketAddress,
50824        ___deadline: zx::MonotonicInstant,
50825    ) -> Result<BaseNetworkSocketBindResult, fidl::Error> {
50826        let _response =
50827            self.client.send_query::<BaseNetworkSocketBindRequest, fidl::encoding::ResultType<
50828                fidl::encoding::EmptyStruct,
50829                fidl_fuchsia_posix::Errno,
50830            >>(
50831                (addr,),
50832                0x4bc6400ae92125d,
50833                fidl::encoding::DynamicFlags::empty(),
50834                ___deadline,
50835            )?;
50836        Ok(_response.map(|x| x))
50837    }
50838
50839    /// Initiates a connection to a remote address.
50840    pub fn r#connect(
50841        &self,
50842        mut addr: &fidl_fuchsia_net::SocketAddress,
50843        ___deadline: zx::MonotonicInstant,
50844    ) -> Result<BaseNetworkSocketConnectResult, fidl::Error> {
50845        let _response =
50846            self.client.send_query::<BaseNetworkSocketConnectRequest, fidl::encoding::ResultType<
50847                fidl::encoding::EmptyStruct,
50848                fidl_fuchsia_posix::Errno,
50849            >>(
50850                (addr,),
50851                0x5f05f19bfdd38871,
50852                fidl::encoding::DynamicFlags::empty(),
50853                ___deadline,
50854            )?;
50855        Ok(_response.map(|x| x))
50856    }
50857
50858    /// Clears connection information from this socket.
50859    pub fn r#disconnect(
50860        &self,
50861        ___deadline: zx::MonotonicInstant,
50862    ) -> Result<BaseNetworkSocketDisconnectResult, fidl::Error> {
50863        let _response =
50864            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50865                fidl::encoding::EmptyStruct,
50866                fidl_fuchsia_posix::Errno,
50867            >>(
50868                (),
50869                0x74e63b91f7b29b2,
50870                fidl::encoding::DynamicFlags::empty(),
50871                ___deadline,
50872            )?;
50873        Ok(_response.map(|x| x))
50874    }
50875
50876    /// Retrieves the local socket address.
50877    pub fn r#get_sock_name(
50878        &self,
50879        ___deadline: zx::MonotonicInstant,
50880    ) -> Result<BaseNetworkSocketGetSockNameResult, fidl::Error> {
50881        let _response = self
50882            .client
50883            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50884                BaseNetworkSocketGetSockNameResponse,
50885                fidl_fuchsia_posix::Errno,
50886            >>(
50887                (), 0x475f23f84a1a4f85, fidl::encoding::DynamicFlags::empty(), ___deadline
50888            )?;
50889        Ok(_response.map(|x| x.addr))
50890    }
50891
50892    /// Retrieves the remote socket address.
50893    pub fn r#get_peer_name(
50894        &self,
50895        ___deadline: zx::MonotonicInstant,
50896    ) -> Result<BaseNetworkSocketGetPeerNameResult, fidl::Error> {
50897        let _response = self
50898            .client
50899            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50900                BaseNetworkSocketGetPeerNameResponse,
50901                fidl_fuchsia_posix::Errno,
50902            >>(
50903                (), 0x1ffecf4bd5b6432e, fidl::encoding::DynamicFlags::empty(), ___deadline
50904            )?;
50905        Ok(_response.map(|x| x.addr))
50906    }
50907
50908    /// Shuts down part of the socket.
50909    pub fn r#shutdown(
50910        &self,
50911        mut mode: ShutdownMode,
50912        ___deadline: zx::MonotonicInstant,
50913    ) -> Result<BaseNetworkSocketShutdownResult, fidl::Error> {
50914        let _response =
50915            self.client.send_query::<BaseNetworkSocketShutdownRequest, fidl::encoding::ResultType<
50916                fidl::encoding::EmptyStruct,
50917                fidl_fuchsia_posix::Errno,
50918            >>(
50919                (mode,),
50920                0x247f38b6db68c336,
50921                fidl::encoding::DynamicFlags::empty(),
50922                ___deadline,
50923            )?;
50924        Ok(_response.map(|x| x))
50925    }
50926
50927    /// Set `SOL_IP` -> `IP_TOS`.
50928    pub fn r#set_ip_type_of_service(
50929        &self,
50930        mut value: u8,
50931        ___deadline: zx::MonotonicInstant,
50932    ) -> Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error> {
50933        let _response = self.client.send_query::<
50934            BaseNetworkSocketSetIpTypeOfServiceRequest,
50935            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
50936        >(
50937            (value,),
50938            0x995c600475b6d46,
50939            fidl::encoding::DynamicFlags::empty(),
50940            ___deadline,
50941        )?;
50942        Ok(_response.map(|x| x))
50943    }
50944
50945    /// Get `SOL_IP` -> `IP_TOS`.
50946    pub fn r#get_ip_type_of_service(
50947        &self,
50948        ___deadline: zx::MonotonicInstant,
50949    ) -> Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error> {
50950        let _response = self
50951            .client
50952            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50953                BaseNetworkSocketGetIpTypeOfServiceResponse,
50954                fidl_fuchsia_posix::Errno,
50955            >>(
50956                (), 0x3814a04259f75fcb, fidl::encoding::DynamicFlags::empty(), ___deadline
50957            )?;
50958        Ok(_response.map(|x| x.value))
50959    }
50960
50961    /// Set `SOL_IP` -> `IP_TTL`.
50962    pub fn r#set_ip_ttl(
50963        &self,
50964        mut value: &OptionalUint8,
50965        ___deadline: zx::MonotonicInstant,
50966    ) -> Result<BaseNetworkSocketSetIpTtlResult, fidl::Error> {
50967        let _response =
50968            self.client.send_query::<BaseNetworkSocketSetIpTtlRequest, fidl::encoding::ResultType<
50969                fidl::encoding::EmptyStruct,
50970                fidl_fuchsia_posix::Errno,
50971            >>(
50972                (value,),
50973                0x29e2424b433ae1ef,
50974                fidl::encoding::DynamicFlags::empty(),
50975                ___deadline,
50976            )?;
50977        Ok(_response.map(|x| x))
50978    }
50979
50980    /// Get `SOL_IP` -> `IP_TTL`.
50981    pub fn r#get_ip_ttl(
50982        &self,
50983        ___deadline: zx::MonotonicInstant,
50984    ) -> Result<BaseNetworkSocketGetIpTtlResult, fidl::Error> {
50985        let _response = self
50986            .client
50987            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50988                BaseNetworkSocketGetIpTtlResponse,
50989                fidl_fuchsia_posix::Errno,
50990            >>(
50991                (), 0x47e47fa1f24da471, fidl::encoding::DynamicFlags::empty(), ___deadline
50992            )?;
50993        Ok(_response.map(|x| x.value))
50994    }
50995
50996    /// Set `SOL_IP` -> `IP_PKTINFO`.
50997    pub fn r#set_ip_packet_info(
50998        &self,
50999        mut value: bool,
51000        ___deadline: zx::MonotonicInstant,
51001    ) -> Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error> {
51002        let _response =
51003            self.client
51004                .send_query::<BaseNetworkSocketSetIpPacketInfoRequest, fidl::encoding::ResultType<
51005                    fidl::encoding::EmptyStruct,
51006                    fidl_fuchsia_posix::Errno,
51007                >>(
51008                    (value,),
51009                    0x392d16bee20c0e16,
51010                    fidl::encoding::DynamicFlags::empty(),
51011                    ___deadline,
51012                )?;
51013        Ok(_response.map(|x| x))
51014    }
51015
51016    /// Get `SOL_IP` -> `IP_PKTINFO`.
51017    pub fn r#get_ip_packet_info(
51018        &self,
51019        ___deadline: zx::MonotonicInstant,
51020    ) -> Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error> {
51021        let _response = self
51022            .client
51023            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51024                BaseNetworkSocketGetIpPacketInfoResponse,
51025                fidl_fuchsia_posix::Errno,
51026            >>(
51027                (), 0x54b505f242280740, fidl::encoding::DynamicFlags::empty(), ___deadline
51028            )?;
51029        Ok(_response.map(|x| x.value))
51030    }
51031
51032    /// Set `SOL_IP` -> `IP_RECVTOS`.
51033    pub fn r#set_ip_receive_type_of_service(
51034        &self,
51035        mut value: bool,
51036        ___deadline: zx::MonotonicInstant,
51037    ) -> Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error> {
51038        let _response = self.client.send_query::<
51039            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
51040            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
51041        >(
51042            (value,),
51043            0x6c4f6714995f84ef,
51044            fidl::encoding::DynamicFlags::empty(),
51045            ___deadline,
51046        )?;
51047        Ok(_response.map(|x| x))
51048    }
51049
51050    /// Get `SOL_IP` -> `IP_RECVTOS`.
51051    pub fn r#get_ip_receive_type_of_service(
51052        &self,
51053        ___deadline: zx::MonotonicInstant,
51054    ) -> Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error> {
51055        let _response = self
51056            .client
51057            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51058                BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
51059                fidl_fuchsia_posix::Errno,
51060            >>(
51061                (), 0x4158ba7dc2795960, fidl::encoding::DynamicFlags::empty(), ___deadline
51062            )?;
51063        Ok(_response.map(|x| x.value))
51064    }
51065
51066    /// Set `SOL_IP` -> `IP_RECVTTL`.
51067    pub fn r#set_ip_receive_ttl(
51068        &self,
51069        mut value: bool,
51070        ___deadline: zx::MonotonicInstant,
51071    ) -> Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error> {
51072        let _response =
51073            self.client
51074                .send_query::<BaseNetworkSocketSetIpReceiveTtlRequest, fidl::encoding::ResultType<
51075                    fidl::encoding::EmptyStruct,
51076                    fidl_fuchsia_posix::Errno,
51077                >>(
51078                    (value,),
51079                    0x46f15be0ce0ab82b,
51080                    fidl::encoding::DynamicFlags::empty(),
51081                    ___deadline,
51082                )?;
51083        Ok(_response.map(|x| x))
51084    }
51085
51086    /// Get `SOL_IP` -> `IP_RECVTTL`.
51087    pub fn r#get_ip_receive_ttl(
51088        &self,
51089        ___deadline: zx::MonotonicInstant,
51090    ) -> Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error> {
51091        let _response = self
51092            .client
51093            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51094                BaseNetworkSocketGetIpReceiveTtlResponse,
51095                fidl_fuchsia_posix::Errno,
51096            >>(
51097                (), 0x678ddd5a5dfa2eb5, fidl::encoding::DynamicFlags::empty(), ___deadline
51098            )?;
51099        Ok(_response.map(|x| x.value))
51100    }
51101
51102    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
51103    pub fn r#set_ip_multicast_interface(
51104        &self,
51105        mut iface: u64,
51106        mut address: &fidl_fuchsia_net::Ipv4Address,
51107        ___deadline: zx::MonotonicInstant,
51108    ) -> Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error> {
51109        let _response = self.client.send_query::<
51110            BaseNetworkSocketSetIpMulticastInterfaceRequest,
51111            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
51112        >(
51113            (iface, address,),
51114            0x752fbfa9b12befe,
51115            fidl::encoding::DynamicFlags::empty(),
51116            ___deadline,
51117        )?;
51118        Ok(_response.map(|x| x))
51119    }
51120
51121    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
51122    pub fn r#get_ip_multicast_interface(
51123        &self,
51124        ___deadline: zx::MonotonicInstant,
51125    ) -> Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error> {
51126        let _response = self
51127            .client
51128            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51129                BaseNetworkSocketGetIpMulticastInterfaceResponse,
51130                fidl_fuchsia_posix::Errno,
51131            >>(
51132                (), 0x320bd14c4df046c4, fidl::encoding::DynamicFlags::empty(), ___deadline
51133            )?;
51134        Ok(_response.map(|x| x.value))
51135    }
51136
51137    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
51138    pub fn r#set_ip_multicast_ttl(
51139        &self,
51140        mut value: &OptionalUint8,
51141        ___deadline: zx::MonotonicInstant,
51142    ) -> Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error> {
51143        let _response =
51144            self.client
51145                .send_query::<BaseNetworkSocketSetIpMulticastTtlRequest, fidl::encoding::ResultType<
51146                    fidl::encoding::EmptyStruct,
51147                    fidl_fuchsia_posix::Errno,
51148                >>(
51149                    (value,),
51150                    0x63134d53772916a1,
51151                    fidl::encoding::DynamicFlags::empty(),
51152                    ___deadline,
51153                )?;
51154        Ok(_response.map(|x| x))
51155    }
51156
51157    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
51158    pub fn r#get_ip_multicast_ttl(
51159        &self,
51160        ___deadline: zx::MonotonicInstant,
51161    ) -> Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error> {
51162        let _response = self
51163            .client
51164            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51165                BaseNetworkSocketGetIpMulticastTtlResponse,
51166                fidl_fuchsia_posix::Errno,
51167            >>(
51168                (), 0x4665cd378f39e1a, fidl::encoding::DynamicFlags::empty(), ___deadline
51169            )?;
51170        Ok(_response.map(|x| x.value))
51171    }
51172
51173    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
51174    pub fn r#set_ip_multicast_loopback(
51175        &self,
51176        mut value: bool,
51177        ___deadline: zx::MonotonicInstant,
51178    ) -> Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error> {
51179        let _response = self.client.send_query::<
51180            BaseNetworkSocketSetIpMulticastLoopbackRequest,
51181            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
51182        >(
51183            (value,),
51184            0x20c55c11f00943ea,
51185            fidl::encoding::DynamicFlags::empty(),
51186            ___deadline,
51187        )?;
51188        Ok(_response.map(|x| x))
51189    }
51190
51191    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
51192    pub fn r#get_ip_multicast_loopback(
51193        &self,
51194        ___deadline: zx::MonotonicInstant,
51195    ) -> Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error> {
51196        let _response = self
51197            .client
51198            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51199                BaseNetworkSocketGetIpMulticastLoopbackResponse,
51200                fidl_fuchsia_posix::Errno,
51201            >>(
51202                (), 0x3b6b26ff558298f2, fidl::encoding::DynamicFlags::empty(), ___deadline
51203            )?;
51204        Ok(_response.map(|x| x.value))
51205    }
51206
51207    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
51208    pub fn r#add_ip_membership(
51209        &self,
51210        mut membership: &IpMulticastMembership,
51211        ___deadline: zx::MonotonicInstant,
51212    ) -> Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error> {
51213        let _response =
51214            self.client
51215                .send_query::<BaseNetworkSocketAddIpMembershipRequest, fidl::encoding::ResultType<
51216                    fidl::encoding::EmptyStruct,
51217                    fidl_fuchsia_posix::Errno,
51218                >>(
51219                    (membership,),
51220                    0x76bc7df115a3b4d0,
51221                    fidl::encoding::DynamicFlags::empty(),
51222                    ___deadline,
51223                )?;
51224        Ok(_response.map(|x| x))
51225    }
51226
51227    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
51228    pub fn r#drop_ip_membership(
51229        &self,
51230        mut membership: &IpMulticastMembership,
51231        ___deadline: zx::MonotonicInstant,
51232    ) -> Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error> {
51233        let _response =
51234            self.client
51235                .send_query::<BaseNetworkSocketDropIpMembershipRequest, fidl::encoding::ResultType<
51236                    fidl::encoding::EmptyStruct,
51237                    fidl_fuchsia_posix::Errno,
51238                >>(
51239                    (membership,),
51240                    0x2888f3099188d03,
51241                    fidl::encoding::DynamicFlags::empty(),
51242                    ___deadline,
51243                )?;
51244        Ok(_response.map(|x| x))
51245    }
51246
51247    /// Set `SOL_IP` -> `IP_TRANSPARENT`
51248    pub fn r#set_ip_transparent(
51249        &self,
51250        mut value: bool,
51251        ___deadline: zx::MonotonicInstant,
51252    ) -> Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error> {
51253        let _response =
51254            self.client
51255                .send_query::<BaseNetworkSocketSetIpTransparentRequest, fidl::encoding::ResultType<
51256                    fidl::encoding::EmptyStruct,
51257                    fidl_fuchsia_posix::Errno,
51258                >>(
51259                    (value,),
51260                    0x1ae532b0c066e3a0,
51261                    fidl::encoding::DynamicFlags::empty(),
51262                    ___deadline,
51263                )?;
51264        Ok(_response.map(|x| x))
51265    }
51266
51267    /// Get `SOL_IP` -> `IP_TRANSPARENT`
51268    pub fn r#get_ip_transparent(
51269        &self,
51270        ___deadline: zx::MonotonicInstant,
51271    ) -> Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error> {
51272        let _response = self
51273            .client
51274            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51275                BaseNetworkSocketGetIpTransparentResponse,
51276                fidl_fuchsia_posix::Errno,
51277            >>(
51278                (), 0x51d43695962ebfb5, fidl::encoding::DynamicFlags::empty(), ___deadline
51279            )?;
51280        Ok(_response.map(|x| x.value))
51281    }
51282
51283    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
51284    pub fn r#set_ip_receive_original_destination_address(
51285        &self,
51286        mut value: bool,
51287        ___deadline: zx::MonotonicInstant,
51288    ) -> Result<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult, fidl::Error> {
51289        let _response = self.client.send_query::<
51290            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
51291            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
51292        >(
51293            (value,),
51294            0x4722b4ce52f7840,
51295            fidl::encoding::DynamicFlags::empty(),
51296            ___deadline,
51297        )?;
51298        Ok(_response.map(|x| x))
51299    }
51300
51301    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
51302    pub fn r#get_ip_receive_original_destination_address(
51303        &self,
51304        ___deadline: zx::MonotonicInstant,
51305    ) -> Result<BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult, fidl::Error> {
51306        let _response = self
51307            .client
51308            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51309                BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
51310                fidl_fuchsia_posix::Errno,
51311            >>(
51312                (), 0x2a0e7dc5d6bfdfe9, fidl::encoding::DynamicFlags::empty(), ___deadline
51313            )?;
51314        Ok(_response.map(|x| x.value))
51315    }
51316
51317    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
51318    pub fn r#add_ipv6_membership(
51319        &self,
51320        mut membership: &Ipv6MulticastMembership,
51321        ___deadline: zx::MonotonicInstant,
51322    ) -> Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error> {
51323        let _response =
51324            self.client
51325                .send_query::<BaseNetworkSocketAddIpv6MembershipRequest, fidl::encoding::ResultType<
51326                    fidl::encoding::EmptyStruct,
51327                    fidl_fuchsia_posix::Errno,
51328                >>(
51329                    (membership,),
51330                    0x7c94727acb4ea4b3,
51331                    fidl::encoding::DynamicFlags::empty(),
51332                    ___deadline,
51333                )?;
51334        Ok(_response.map(|x| x))
51335    }
51336
51337    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
51338    pub fn r#drop_ipv6_membership(
51339        &self,
51340        mut membership: &Ipv6MulticastMembership,
51341        ___deadline: zx::MonotonicInstant,
51342    ) -> Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error> {
51343        let _response = self.client.send_query::<
51344            BaseNetworkSocketDropIpv6MembershipRequest,
51345            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
51346        >(
51347            (membership,),
51348            0x42104c70ccaba304,
51349            fidl::encoding::DynamicFlags::empty(),
51350            ___deadline,
51351        )?;
51352        Ok(_response.map(|x| x))
51353    }
51354
51355    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
51356    pub fn r#set_ipv6_multicast_interface(
51357        &self,
51358        mut value: u64,
51359        ___deadline: zx::MonotonicInstant,
51360    ) -> Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error> {
51361        let _response = self.client.send_query::<
51362            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
51363            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
51364        >(
51365            (value,),
51366            0x135f76db3774ab3b,
51367            fidl::encoding::DynamicFlags::empty(),
51368            ___deadline,
51369        )?;
51370        Ok(_response.map(|x| x))
51371    }
51372
51373    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
51374    pub fn r#get_ipv6_multicast_interface(
51375        &self,
51376        ___deadline: zx::MonotonicInstant,
51377    ) -> Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error> {
51378        let _response = self
51379            .client
51380            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51381                BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
51382                fidl_fuchsia_posix::Errno,
51383            >>(
51384                (), 0x1f26fcdd348f1882, fidl::encoding::DynamicFlags::empty(), ___deadline
51385            )?;
51386        Ok(_response.map(|x| x.value))
51387    }
51388
51389    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
51390    pub fn r#set_ipv6_unicast_hops(
51391        &self,
51392        mut value: &OptionalUint8,
51393        ___deadline: zx::MonotonicInstant,
51394    ) -> Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error> {
51395        let _response = self.client.send_query::<
51396            BaseNetworkSocketSetIpv6UnicastHopsRequest,
51397            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
51398        >(
51399            (value,),
51400            0x157d51e98f462859,
51401            fidl::encoding::DynamicFlags::empty(),
51402            ___deadline,
51403        )?;
51404        Ok(_response.map(|x| x))
51405    }
51406
51407    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
51408    pub fn r#get_ipv6_unicast_hops(
51409        &self,
51410        ___deadline: zx::MonotonicInstant,
51411    ) -> Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error> {
51412        let _response = self
51413            .client
51414            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51415                BaseNetworkSocketGetIpv6UnicastHopsResponse,
51416                fidl_fuchsia_posix::Errno,
51417            >>(
51418                (), 0x21f4641cad8bd8d2, fidl::encoding::DynamicFlags::empty(), ___deadline
51419            )?;
51420        Ok(_response.map(|x| x.value))
51421    }
51422
51423    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
51424    pub fn r#set_ipv6_receive_hop_limit(
51425        &self,
51426        mut value: bool,
51427        ___deadline: zx::MonotonicInstant,
51428    ) -> Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error> {
51429        let _response = self.client.send_query::<
51430            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
51431            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
51432        >(
51433            (value,),
51434            0x5c24808ed2e84a1e,
51435            fidl::encoding::DynamicFlags::empty(),
51436            ___deadline,
51437        )?;
51438        Ok(_response.map(|x| x))
51439    }
51440
51441    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
51442    pub fn r#get_ipv6_receive_hop_limit(
51443        &self,
51444        ___deadline: zx::MonotonicInstant,
51445    ) -> Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error> {
51446        let _response = self
51447            .client
51448            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51449                BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
51450                fidl_fuchsia_posix::Errno,
51451            >>(
51452                (), 0x341e06689885b4c0, fidl::encoding::DynamicFlags::empty(), ___deadline
51453            )?;
51454        Ok(_response.map(|x| x.value))
51455    }
51456
51457    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
51458    pub fn r#set_ipv6_multicast_hops(
51459        &self,
51460        mut value: &OptionalUint8,
51461        ___deadline: zx::MonotonicInstant,
51462    ) -> Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error> {
51463        let _response = self.client.send_query::<
51464            BaseNetworkSocketSetIpv6MulticastHopsRequest,
51465            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
51466        >(
51467            (value,),
51468            0x25b9cd4d181f82c1,
51469            fidl::encoding::DynamicFlags::empty(),
51470            ___deadline,
51471        )?;
51472        Ok(_response.map(|x| x))
51473    }
51474
51475    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
51476    pub fn r#get_ipv6_multicast_hops(
51477        &self,
51478        ___deadline: zx::MonotonicInstant,
51479    ) -> Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error> {
51480        let _response = self
51481            .client
51482            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51483                BaseNetworkSocketGetIpv6MulticastHopsResponse,
51484                fidl_fuchsia_posix::Errno,
51485            >>(
51486                (), 0x52916948a365012a, fidl::encoding::DynamicFlags::empty(), ___deadline
51487            )?;
51488        Ok(_response.map(|x| x.value))
51489    }
51490
51491    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
51492    pub fn r#set_ipv6_multicast_loopback(
51493        &self,
51494        mut value: bool,
51495        ___deadline: zx::MonotonicInstant,
51496    ) -> Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error> {
51497        let _response = self.client.send_query::<
51498            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
51499            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
51500        >(
51501            (value,),
51502            0x55701c409ff41b40,
51503            fidl::encoding::DynamicFlags::empty(),
51504            ___deadline,
51505        )?;
51506        Ok(_response.map(|x| x))
51507    }
51508
51509    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
51510    pub fn r#get_ipv6_multicast_loopback(
51511        &self,
51512        ___deadline: zx::MonotonicInstant,
51513    ) -> Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error> {
51514        let _response = self
51515            .client
51516            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51517                BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
51518                fidl_fuchsia_posix::Errno,
51519            >>(
51520                (), 0x4415b701fde319c3, fidl::encoding::DynamicFlags::empty(), ___deadline
51521            )?;
51522        Ok(_response.map(|x| x.value))
51523    }
51524
51525    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
51526    pub fn r#set_ipv6_only(
51527        &self,
51528        mut value: bool,
51529        ___deadline: zx::MonotonicInstant,
51530    ) -> Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error> {
51531        let _response =
51532            self.client
51533                .send_query::<BaseNetworkSocketSetIpv6OnlyRequest, fidl::encoding::ResultType<
51534                    fidl::encoding::EmptyStruct,
51535                    fidl_fuchsia_posix::Errno,
51536                >>(
51537                    (value,),
51538                    0x4873f1364758cbba,
51539                    fidl::encoding::DynamicFlags::empty(),
51540                    ___deadline,
51541                )?;
51542        Ok(_response.map(|x| x))
51543    }
51544
51545    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
51546    pub fn r#get_ipv6_only(
51547        &self,
51548        ___deadline: zx::MonotonicInstant,
51549    ) -> Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error> {
51550        let _response = self
51551            .client
51552            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51553                BaseNetworkSocketGetIpv6OnlyResponse,
51554                fidl_fuchsia_posix::Errno,
51555            >>(
51556                (), 0x4aa3340a1a26b89c, fidl::encoding::DynamicFlags::empty(), ___deadline
51557            )?;
51558        Ok(_response.map(|x| x.value))
51559    }
51560
51561    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
51562    pub fn r#set_ipv6_receive_traffic_class(
51563        &self,
51564        mut value: bool,
51565        ___deadline: zx::MonotonicInstant,
51566    ) -> Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error> {
51567        let _response = self.client.send_query::<
51568            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
51569            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
51570        >(
51571            (value,),
51572            0x58f07c8788d099a0,
51573            fidl::encoding::DynamicFlags::empty(),
51574            ___deadline,
51575        )?;
51576        Ok(_response.map(|x| x))
51577    }
51578
51579    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
51580    pub fn r#get_ipv6_receive_traffic_class(
51581        &self,
51582        ___deadline: zx::MonotonicInstant,
51583    ) -> Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error> {
51584        let _response = self
51585            .client
51586            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51587                BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
51588                fidl_fuchsia_posix::Errno,
51589            >>(
51590                (), 0x2e334df1da553ffa, fidl::encoding::DynamicFlags::empty(), ___deadline
51591            )?;
51592        Ok(_response.map(|x| x.value))
51593    }
51594
51595    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
51596    pub fn r#set_ipv6_traffic_class(
51597        &self,
51598        mut value: &OptionalUint8,
51599        ___deadline: zx::MonotonicInstant,
51600    ) -> Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error> {
51601        let _response = self.client.send_query::<
51602            BaseNetworkSocketSetIpv6TrafficClassRequest,
51603            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
51604        >(
51605            (value,),
51606            0x6af077800c5a0b4f,
51607            fidl::encoding::DynamicFlags::empty(),
51608            ___deadline,
51609        )?;
51610        Ok(_response.map(|x| x))
51611    }
51612
51613    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
51614    pub fn r#get_ipv6_traffic_class(
51615        &self,
51616        ___deadline: zx::MonotonicInstant,
51617    ) -> Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error> {
51618        let _response = self
51619            .client
51620            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51621                BaseNetworkSocketGetIpv6TrafficClassResponse,
51622                fidl_fuchsia_posix::Errno,
51623            >>(
51624                (), 0x6baf6eed8fc2f04, fidl::encoding::DynamicFlags::empty(), ___deadline
51625            )?;
51626        Ok(_response.map(|x| x.value))
51627    }
51628
51629    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
51630    pub fn r#set_ipv6_receive_packet_info(
51631        &self,
51632        mut value: bool,
51633        ___deadline: zx::MonotonicInstant,
51634    ) -> Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error> {
51635        let _response = self.client.send_query::<
51636            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
51637            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
51638        >(
51639            (value,),
51640            0x19259775b1a92768,
51641            fidl::encoding::DynamicFlags::empty(),
51642            ___deadline,
51643        )?;
51644        Ok(_response.map(|x| x))
51645    }
51646
51647    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
51648    pub fn r#get_ipv6_receive_packet_info(
51649        &self,
51650        ___deadline: zx::MonotonicInstant,
51651    ) -> Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error> {
51652        let _response = self
51653            .client
51654            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51655                BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
51656                fidl_fuchsia_posix::Errno,
51657            >>(
51658                (), 0x7acd4a2775baec75, fidl::encoding::DynamicFlags::empty(), ___deadline
51659            )?;
51660        Ok(_response.map(|x| x.value))
51661    }
51662
51663    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
51664    pub fn r#get_original_destination(
51665        &self,
51666        ___deadline: zx::MonotonicInstant,
51667    ) -> Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error> {
51668        let _response = self
51669            .client
51670            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51671                BaseNetworkSocketGetOriginalDestinationResponse,
51672                fidl_fuchsia_posix::Errno,
51673            >>(
51674                (), 0x38bf28f0dafdbac0, fidl::encoding::DynamicFlags::empty(), ___deadline
51675            )?;
51676        Ok(_response.map(|x| x.value))
51677    }
51678
51679    pub fn r#describe(
51680        &self,
51681        ___deadline: zx::MonotonicInstant,
51682    ) -> Result<StreamSocketDescribeResponse, fidl::Error> {
51683        let _response =
51684            self.client.send_query::<fidl::encoding::EmptyPayload, StreamSocketDescribeResponse>(
51685                (),
51686                0x29e22969a7dadc32,
51687                fidl::encoding::DynamicFlags::empty(),
51688                ___deadline,
51689            )?;
51690        Ok(_response)
51691    }
51692
51693    /// Begins listening for new incoming connections. At most `backlog`
51694    /// connections will be buffered.
51695    pub fn r#listen(
51696        &self,
51697        mut backlog: i16,
51698        ___deadline: zx::MonotonicInstant,
51699    ) -> Result<StreamSocketListenResult, fidl::Error> {
51700        let _response =
51701            self.client.send_query::<StreamSocketListenRequest, fidl::encoding::ResultType<
51702                fidl::encoding::EmptyStruct,
51703                fidl_fuchsia_posix::Errno,
51704            >>(
51705                (backlog,),
51706                0x3d0a65ced3d10108,
51707                fidl::encoding::DynamicFlags::empty(),
51708                ___deadline,
51709            )?;
51710        Ok(_response.map(|x| x))
51711    }
51712
51713    /// Accepts a buffered incoming connection.
51714    pub fn r#accept(
51715        &self,
51716        mut want_addr: bool,
51717        ___deadline: zx::MonotonicInstant,
51718    ) -> Result<StreamSocketAcceptResult, fidl::Error> {
51719        let _response =
51720            self.client.send_query::<StreamSocketAcceptRequest, fidl::encoding::ResultType<
51721                StreamSocketAcceptResponse,
51722                fidl_fuchsia_posix::Errno,
51723            >>(
51724                (want_addr,),
51725                0x5ab7ad620424c163,
51726                fidl::encoding::DynamicFlags::empty(),
51727                ___deadline,
51728            )?;
51729        Ok(_response.map(|x| (x.addr, x.s)))
51730    }
51731
51732    /// Retrieves creation information from the socket.
51733    pub fn r#get_info(
51734        &self,
51735        ___deadline: zx::MonotonicInstant,
51736    ) -> Result<StreamSocketGetInfoResult, fidl::Error> {
51737        let _response =
51738            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51739                StreamSocketGetInfoResponse,
51740                fidl_fuchsia_posix::Errno,
51741            >>(
51742                (),
51743                0x87cfa55d19f878f,
51744                fidl::encoding::DynamicFlags::empty(),
51745                ___deadline,
51746            )?;
51747        Ok(_response.map(|x| (x.domain, x.proto)))
51748    }
51749
51750    /// Set `SOL_TCP` -> `TCP_NODELAY`.
51751    pub fn r#set_tcp_no_delay(
51752        &self,
51753        mut value: bool,
51754        ___deadline: zx::MonotonicInstant,
51755    ) -> Result<StreamSocketSetTcpNoDelayResult, fidl::Error> {
51756        let _response =
51757            self.client.send_query::<StreamSocketSetTcpNoDelayRequest, fidl::encoding::ResultType<
51758                fidl::encoding::EmptyStruct,
51759                fidl_fuchsia_posix::Errno,
51760            >>(
51761                (value,),
51762                0x5a59b778f7333ada,
51763                fidl::encoding::DynamicFlags::empty(),
51764                ___deadline,
51765            )?;
51766        Ok(_response.map(|x| x))
51767    }
51768
51769    /// Get `SOL_TCP` -> `TCP_NODELAY`.
51770    pub fn r#get_tcp_no_delay(
51771        &self,
51772        ___deadline: zx::MonotonicInstant,
51773    ) -> Result<StreamSocketGetTcpNoDelayResult, fidl::Error> {
51774        let _response = self
51775            .client
51776            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51777                StreamSocketGetTcpNoDelayResponse,
51778                fidl_fuchsia_posix::Errno,
51779            >>(
51780                (), 0xac219a3218b0799, fidl::encoding::DynamicFlags::empty(), ___deadline
51781            )?;
51782        Ok(_response.map(|x| x.value))
51783    }
51784
51785    /// Set `SOL_TCP` -> `TCP_MAXSEG`.
51786    pub fn r#set_tcp_max_segment(
51787        &self,
51788        mut value_bytes: u32,
51789        ___deadline: zx::MonotonicInstant,
51790    ) -> Result<StreamSocketSetTcpMaxSegmentResult, fidl::Error> {
51791        let _response =
51792            self.client
51793                .send_query::<StreamSocketSetTcpMaxSegmentRequest, fidl::encoding::ResultType<
51794                    fidl::encoding::EmptyStruct,
51795                    fidl_fuchsia_posix::Errno,
51796                >>(
51797                    (value_bytes,),
51798                    0xb3d30c498266d18,
51799                    fidl::encoding::DynamicFlags::empty(),
51800                    ___deadline,
51801                )?;
51802        Ok(_response.map(|x| x))
51803    }
51804
51805    /// Get `SOL_TCP` -> `TCP_MAXSEG`.
51806    pub fn r#get_tcp_max_segment(
51807        &self,
51808        ___deadline: zx::MonotonicInstant,
51809    ) -> Result<StreamSocketGetTcpMaxSegmentResult, fidl::Error> {
51810        let _response = self
51811            .client
51812            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51813                StreamSocketGetTcpMaxSegmentResponse,
51814                fidl_fuchsia_posix::Errno,
51815            >>(
51816                (), 0x637404d1b4b9982c, fidl::encoding::DynamicFlags::empty(), ___deadline
51817            )?;
51818        Ok(_response.map(|x| x.value_bytes))
51819    }
51820
51821    /// Set `SOL_TCP` -> `TCP_CORK`.
51822    pub fn r#set_tcp_cork(
51823        &self,
51824        mut value: bool,
51825        ___deadline: zx::MonotonicInstant,
51826    ) -> Result<StreamSocketSetTcpCorkResult, fidl::Error> {
51827        let _response =
51828            self.client.send_query::<StreamSocketSetTcpCorkRequest, fidl::encoding::ResultType<
51829                fidl::encoding::EmptyStruct,
51830                fidl_fuchsia_posix::Errno,
51831            >>(
51832                (value,),
51833                0x62e26891541143a0,
51834                fidl::encoding::DynamicFlags::empty(),
51835                ___deadline,
51836            )?;
51837        Ok(_response.map(|x| x))
51838    }
51839
51840    /// Get `SOL_TCP` -> `TCP_CORK`.
51841    pub fn r#get_tcp_cork(
51842        &self,
51843        ___deadline: zx::MonotonicInstant,
51844    ) -> Result<StreamSocketGetTcpCorkResult, fidl::Error> {
51845        let _response =
51846            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51847                StreamSocketGetTcpCorkResponse,
51848                fidl_fuchsia_posix::Errno,
51849            >>(
51850                (),
51851                0x435bb232e0e74f32,
51852                fidl::encoding::DynamicFlags::empty(),
51853                ___deadline,
51854            )?;
51855        Ok(_response.map(|x| x.value))
51856    }
51857
51858    /// Set `SOL_TCP` -> `TCP_KEEPIDLE`.
51859    pub fn r#set_tcp_keep_alive_idle(
51860        &self,
51861        mut value_secs: u32,
51862        ___deadline: zx::MonotonicInstant,
51863    ) -> Result<StreamSocketSetTcpKeepAliveIdleResult, fidl::Error> {
51864        let _response =
51865            self.client
51866                .send_query::<StreamSocketSetTcpKeepAliveIdleRequest, fidl::encoding::ResultType<
51867                    fidl::encoding::EmptyStruct,
51868                    fidl_fuchsia_posix::Errno,
51869                >>(
51870                    (value_secs,),
51871                    0x196d053d8363c42,
51872                    fidl::encoding::DynamicFlags::empty(),
51873                    ___deadline,
51874                )?;
51875        Ok(_response.map(|x| x))
51876    }
51877
51878    /// Get `SOL_TCP` -> `TCP_KEEPIDLE`.
51879    pub fn r#get_tcp_keep_alive_idle(
51880        &self,
51881        ___deadline: zx::MonotonicInstant,
51882    ) -> Result<StreamSocketGetTcpKeepAliveIdleResult, fidl::Error> {
51883        let _response = self
51884            .client
51885            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51886                StreamSocketGetTcpKeepAliveIdleResponse,
51887                fidl_fuchsia_posix::Errno,
51888            >>(
51889                (), 0x35ec58564879dac, fidl::encoding::DynamicFlags::empty(), ___deadline
51890            )?;
51891        Ok(_response.map(|x| x.value_secs))
51892    }
51893
51894    /// Set `SOL_TCP` -> `TCP_KEEPINTVL`.
51895    pub fn r#set_tcp_keep_alive_interval(
51896        &self,
51897        mut value_secs: u32,
51898        ___deadline: zx::MonotonicInstant,
51899    ) -> Result<StreamSocketSetTcpKeepAliveIntervalResult, fidl::Error> {
51900        let _response = self.client.send_query::<
51901            StreamSocketSetTcpKeepAliveIntervalRequest,
51902            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
51903        >(
51904            (value_secs,),
51905            0x485ffbc2da1243f2,
51906            fidl::encoding::DynamicFlags::empty(),
51907            ___deadline,
51908        )?;
51909        Ok(_response.map(|x| x))
51910    }
51911
51912    /// Get `SOL_TCP` -> `TCP_KEEPINTVL`.
51913    pub fn r#get_tcp_keep_alive_interval(
51914        &self,
51915        ___deadline: zx::MonotonicInstant,
51916    ) -> Result<StreamSocketGetTcpKeepAliveIntervalResult, fidl::Error> {
51917        let _response = self
51918            .client
51919            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51920                StreamSocketGetTcpKeepAliveIntervalResponse,
51921                fidl_fuchsia_posix::Errno,
51922            >>(
51923                (), 0x264eaf46306b284, fidl::encoding::DynamicFlags::empty(), ___deadline
51924            )?;
51925        Ok(_response.map(|x| x.value_secs))
51926    }
51927
51928    /// Set `SOL_TCP` -> `TCP_KEEPCNT`.
51929    pub fn r#set_tcp_keep_alive_count(
51930        &self,
51931        mut value: u32,
51932        ___deadline: zx::MonotonicInstant,
51933    ) -> Result<StreamSocketSetTcpKeepAliveCountResult, fidl::Error> {
51934        let _response =
51935            self.client
51936                .send_query::<StreamSocketSetTcpKeepAliveCountRequest, fidl::encoding::ResultType<
51937                    fidl::encoding::EmptyStruct,
51938                    fidl_fuchsia_posix::Errno,
51939                >>(
51940                    (value,),
51941                    0x2ab2e8c111708421,
51942                    fidl::encoding::DynamicFlags::empty(),
51943                    ___deadline,
51944                )?;
51945        Ok(_response.map(|x| x))
51946    }
51947
51948    /// Get `SOL_TCP` -> `TCP_KEEPCNT`.
51949    pub fn r#get_tcp_keep_alive_count(
51950        &self,
51951        ___deadline: zx::MonotonicInstant,
51952    ) -> Result<StreamSocketGetTcpKeepAliveCountResult, fidl::Error> {
51953        let _response = self
51954            .client
51955            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51956                StreamSocketGetTcpKeepAliveCountResponse,
51957                fidl_fuchsia_posix::Errno,
51958            >>(
51959                (), 0x2f176ae271fe7a09, fidl::encoding::DynamicFlags::empty(), ___deadline
51960            )?;
51961        Ok(_response.map(|x| x.value))
51962    }
51963
51964    /// Set `SOL_TCP` -> `TCP_SYNCNT`.
51965    pub fn r#set_tcp_syn_count(
51966        &self,
51967        mut value: u32,
51968        ___deadline: zx::MonotonicInstant,
51969    ) -> Result<StreamSocketSetTcpSynCountResult, fidl::Error> {
51970        let _response =
51971            self.client
51972                .send_query::<StreamSocketSetTcpSynCountRequest, fidl::encoding::ResultType<
51973                    fidl::encoding::EmptyStruct,
51974                    fidl_fuchsia_posix::Errno,
51975                >>(
51976                    (value,),
51977                    0x4dcd6ab5573c1eb3,
51978                    fidl::encoding::DynamicFlags::empty(),
51979                    ___deadline,
51980                )?;
51981        Ok(_response.map(|x| x))
51982    }
51983
51984    /// Get `SOL_TCP` -> `TCP_SYNCNT`.
51985    pub fn r#get_tcp_syn_count(
51986        &self,
51987        ___deadline: zx::MonotonicInstant,
51988    ) -> Result<StreamSocketGetTcpSynCountResult, fidl::Error> {
51989        let _response = self
51990            .client
51991            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51992                StreamSocketGetTcpSynCountResponse,
51993                fidl_fuchsia_posix::Errno,
51994            >>(
51995                (), 0x7d457cba8f5f3ee6, fidl::encoding::DynamicFlags::empty(), ___deadline
51996            )?;
51997        Ok(_response.map(|x| x.value))
51998    }
51999
52000    /// Set `SOL_TCP` -> `TCP_LINGER2`.
52001    pub fn r#set_tcp_linger(
52002        &self,
52003        mut value_secs: &OptionalUint32,
52004        ___deadline: zx::MonotonicInstant,
52005    ) -> Result<StreamSocketSetTcpLingerResult, fidl::Error> {
52006        let _response =
52007            self.client.send_query::<StreamSocketSetTcpLingerRequest, fidl::encoding::ResultType<
52008                fidl::encoding::EmptyStruct,
52009                fidl_fuchsia_posix::Errno,
52010            >>(
52011                (value_secs,),
52012                0xd5cc1e8654d36e4,
52013                fidl::encoding::DynamicFlags::empty(),
52014                ___deadline,
52015            )?;
52016        Ok(_response.map(|x| x))
52017    }
52018
52019    /// Get `SOL_TCP` -> `TCP_LINGER2`.
52020    pub fn r#get_tcp_linger(
52021        &self,
52022        ___deadline: zx::MonotonicInstant,
52023    ) -> Result<StreamSocketGetTcpLingerResult, fidl::Error> {
52024        let _response = self
52025            .client
52026            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52027                StreamSocketGetTcpLingerResponse,
52028                fidl_fuchsia_posix::Errno,
52029            >>(
52030                (), 0xad870d311cf30eb, fidl::encoding::DynamicFlags::empty(), ___deadline
52031            )?;
52032        Ok(_response.map(|x| x.value_secs))
52033    }
52034
52035    /// Set `SOL_TCP` -> `TCP_DEFER_ACCEPT`.
52036    pub fn r#set_tcp_defer_accept(
52037        &self,
52038        mut value_secs: u32,
52039        ___deadline: zx::MonotonicInstant,
52040    ) -> Result<StreamSocketSetTcpDeferAcceptResult, fidl::Error> {
52041        let _response =
52042            self.client
52043                .send_query::<StreamSocketSetTcpDeferAcceptRequest, fidl::encoding::ResultType<
52044                    fidl::encoding::EmptyStruct,
52045                    fidl_fuchsia_posix::Errno,
52046                >>(
52047                    (value_secs,),
52048                    0x15092f181e57c404,
52049                    fidl::encoding::DynamicFlags::empty(),
52050                    ___deadline,
52051                )?;
52052        Ok(_response.map(|x| x))
52053    }
52054
52055    /// Get `SOL_TCP` -> `TCP_DEFER_ACCEPT`.
52056    pub fn r#get_tcp_defer_accept(
52057        &self,
52058        ___deadline: zx::MonotonicInstant,
52059    ) -> Result<StreamSocketGetTcpDeferAcceptResult, fidl::Error> {
52060        let _response = self
52061            .client
52062            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52063                StreamSocketGetTcpDeferAcceptResponse,
52064                fidl_fuchsia_posix::Errno,
52065            >>(
52066                (), 0x64589790842cb7c6, fidl::encoding::DynamicFlags::empty(), ___deadline
52067            )?;
52068        Ok(_response.map(|x| x.value_secs))
52069    }
52070
52071    /// Set `SOL_TCP` -> `TCP_WINDOW_CLAMP`.
52072    pub fn r#set_tcp_window_clamp(
52073        &self,
52074        mut value: u32,
52075        ___deadline: zx::MonotonicInstant,
52076    ) -> Result<StreamSocketSetTcpWindowClampResult, fidl::Error> {
52077        let _response =
52078            self.client
52079                .send_query::<StreamSocketSetTcpWindowClampRequest, fidl::encoding::ResultType<
52080                    fidl::encoding::EmptyStruct,
52081                    fidl_fuchsia_posix::Errno,
52082                >>(
52083                    (value,),
52084                    0x4a26ce07d847f1c6,
52085                    fidl::encoding::DynamicFlags::empty(),
52086                    ___deadline,
52087                )?;
52088        Ok(_response.map(|x| x))
52089    }
52090
52091    /// Get `SOL_TCP` -> `TCP_WINDOW_CLAMP`.
52092    pub fn r#get_tcp_window_clamp(
52093        &self,
52094        ___deadline: zx::MonotonicInstant,
52095    ) -> Result<StreamSocketGetTcpWindowClampResult, fidl::Error> {
52096        let _response = self
52097            .client
52098            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52099                StreamSocketGetTcpWindowClampResponse,
52100                fidl_fuchsia_posix::Errno,
52101            >>(
52102                (), 0x2df6b636bf0a6a4e, fidl::encoding::DynamicFlags::empty(), ___deadline
52103            )?;
52104        Ok(_response.map(|x| x.value))
52105    }
52106
52107    /// Get `SOL_TCP` -> `TCP_INFO`.
52108    pub fn r#get_tcp_info(
52109        &self,
52110        ___deadline: zx::MonotonicInstant,
52111    ) -> Result<StreamSocketGetTcpInfoResult, fidl::Error> {
52112        let _response =
52113            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52114                StreamSocketGetTcpInfoResponse,
52115                fidl_fuchsia_posix::Errno,
52116            >>(
52117                (),
52118                0x1ffb123d9f03ead2,
52119                fidl::encoding::DynamicFlags::empty(),
52120                ___deadline,
52121            )?;
52122        Ok(_response.map(|x| x.info))
52123    }
52124
52125    /// Set `SOL_TCP` -> `TCP_QUICKACK`.
52126    pub fn r#set_tcp_quick_ack(
52127        &self,
52128        mut value: bool,
52129        ___deadline: zx::MonotonicInstant,
52130    ) -> Result<StreamSocketSetTcpQuickAckResult, fidl::Error> {
52131        let _response =
52132            self.client
52133                .send_query::<StreamSocketSetTcpQuickAckRequest, fidl::encoding::ResultType<
52134                    fidl::encoding::EmptyStruct,
52135                    fidl_fuchsia_posix::Errno,
52136                >>(
52137                    (value,),
52138                    0x6fa811be8fde7457,
52139                    fidl::encoding::DynamicFlags::empty(),
52140                    ___deadline,
52141                )?;
52142        Ok(_response.map(|x| x))
52143    }
52144
52145    /// Get `SOL_TCP` -> `TCP_QUICKACK`.
52146    pub fn r#get_tcp_quick_ack(
52147        &self,
52148        ___deadline: zx::MonotonicInstant,
52149    ) -> Result<StreamSocketGetTcpQuickAckResult, fidl::Error> {
52150        let _response = self
52151            .client
52152            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52153                StreamSocketGetTcpQuickAckResponse,
52154                fidl_fuchsia_posix::Errno,
52155            >>(
52156                (), 0x7356a949bef2df32, fidl::encoding::DynamicFlags::empty(), ___deadline
52157            )?;
52158        Ok(_response.map(|x| x.value))
52159    }
52160
52161    /// Set `SOL_TCP` -> `TCP_CONGESTION`.
52162    pub fn r#set_tcp_congestion(
52163        &self,
52164        mut value: TcpCongestionControl,
52165        ___deadline: zx::MonotonicInstant,
52166    ) -> Result<StreamSocketSetTcpCongestionResult, fidl::Error> {
52167        let _response =
52168            self.client
52169                .send_query::<StreamSocketSetTcpCongestionRequest, fidl::encoding::ResultType<
52170                    fidl::encoding::EmptyStruct,
52171                    fidl_fuchsia_posix::Errno,
52172                >>(
52173                    (value,),
52174                    0x7924c6eabde7819e,
52175                    fidl::encoding::DynamicFlags::empty(),
52176                    ___deadline,
52177                )?;
52178        Ok(_response.map(|x| x))
52179    }
52180
52181    /// Get `SOL_TCP` -> `TCP_CONGESTION`.
52182    pub fn r#get_tcp_congestion(
52183        &self,
52184        ___deadline: zx::MonotonicInstant,
52185    ) -> Result<StreamSocketGetTcpCongestionResult, fidl::Error> {
52186        let _response = self
52187            .client
52188            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52189                StreamSocketGetTcpCongestionResponse,
52190                fidl_fuchsia_posix::Errno,
52191            >>(
52192                (), 0x11e16397e1b72a47, fidl::encoding::DynamicFlags::empty(), ___deadline
52193            )?;
52194        Ok(_response.map(|x| x.value))
52195    }
52196
52197    /// Set `SOL_TCP` -> `TCP_USER_TIMEOUT`.
52198    pub fn r#set_tcp_user_timeout(
52199        &self,
52200        mut value_millis: u32,
52201        ___deadline: zx::MonotonicInstant,
52202    ) -> Result<StreamSocketSetTcpUserTimeoutResult, fidl::Error> {
52203        let _response =
52204            self.client
52205                .send_query::<StreamSocketSetTcpUserTimeoutRequest, fidl::encoding::ResultType<
52206                    fidl::encoding::EmptyStruct,
52207                    fidl_fuchsia_posix::Errno,
52208                >>(
52209                    (value_millis,),
52210                    0x6b459e81c3741a60,
52211                    fidl::encoding::DynamicFlags::empty(),
52212                    ___deadline,
52213                )?;
52214        Ok(_response.map(|x| x))
52215    }
52216
52217    /// Get `SOL_TCP` -> `TCP_USER_TIMEOUT`.
52218    pub fn r#get_tcp_user_timeout(
52219        &self,
52220        ___deadline: zx::MonotonicInstant,
52221    ) -> Result<StreamSocketGetTcpUserTimeoutResult, fidl::Error> {
52222        let _response = self
52223            .client
52224            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52225                StreamSocketGetTcpUserTimeoutResponse,
52226                fidl_fuchsia_posix::Errno,
52227            >>(
52228                (), 0x24bbd5858ad8c380, fidl::encoding::DynamicFlags::empty(), ___deadline
52229            )?;
52230        Ok(_response.map(|x| x.value_millis))
52231    }
52232}
52233
52234#[cfg(target_os = "fuchsia")]
52235impl From<StreamSocketSynchronousProxy> for zx::Handle {
52236    fn from(value: StreamSocketSynchronousProxy) -> Self {
52237        value.into_channel().into()
52238    }
52239}
52240
52241#[cfg(target_os = "fuchsia")]
52242impl From<fidl::Channel> for StreamSocketSynchronousProxy {
52243    fn from(value: fidl::Channel) -> Self {
52244        Self::new(value)
52245    }
52246}
52247
52248#[cfg(target_os = "fuchsia")]
52249impl fidl::endpoints::FromClient for StreamSocketSynchronousProxy {
52250    type Protocol = StreamSocketMarker;
52251
52252    fn from_client(value: fidl::endpoints::ClientEnd<StreamSocketMarker>) -> Self {
52253        Self::new(value.into_channel())
52254    }
52255}
52256
52257#[derive(Debug, Clone)]
52258pub struct StreamSocketProxy {
52259    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
52260}
52261
52262impl fidl::endpoints::Proxy for StreamSocketProxy {
52263    type Protocol = StreamSocketMarker;
52264
52265    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
52266        Self::new(inner)
52267    }
52268
52269    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
52270        self.client.into_channel().map_err(|client| Self { client })
52271    }
52272
52273    fn as_channel(&self) -> &::fidl::AsyncChannel {
52274        self.client.as_channel()
52275    }
52276}
52277
52278impl StreamSocketProxy {
52279    /// Create a new Proxy for fuchsia.posix.socket/StreamSocket.
52280    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
52281        let protocol_name = <StreamSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
52282        Self { client: fidl::client::Client::new(channel, protocol_name) }
52283    }
52284
52285    /// Get a Stream of events from the remote end of the protocol.
52286    ///
52287    /// # Panics
52288    ///
52289    /// Panics if the event stream was already taken.
52290    pub fn take_event_stream(&self) -> StreamSocketEventStream {
52291        StreamSocketEventStream { event_receiver: self.client.take_event_receiver() }
52292    }
52293
52294    pub fn r#clone(
52295        &self,
52296        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
52297    ) -> Result<(), fidl::Error> {
52298        StreamSocketProxyInterface::r#clone(self, request)
52299    }
52300
52301    /// Terminates the connection.
52302    ///
52303    /// After calling `Close`, the client must not send any other requests.
52304    ///
52305    /// Servers, after sending the status response, should close the connection
52306    /// regardless of status and without sending an epitaph.
52307    ///
52308    /// Closing the client end of the channel should be semantically equivalent
52309    /// to calling `Close` without knowing when the close has completed or its
52310    /// status.
52311    pub fn r#close(
52312        &self,
52313    ) -> fidl::client::QueryResponseFut<
52314        fidl_fuchsia_unknown::CloseableCloseResult,
52315        fidl::encoding::DefaultFuchsiaResourceDialect,
52316    > {
52317        StreamSocketProxyInterface::r#close(self)
52318    }
52319
52320    pub fn r#query(
52321        &self,
52322    ) -> fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>
52323    {
52324        StreamSocketProxyInterface::r#query(self)
52325    }
52326
52327    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
52328    pub fn r#set_reuse_address(
52329        &self,
52330        mut value: bool,
52331    ) -> fidl::client::QueryResponseFut<
52332        BaseSocketSetReuseAddressResult,
52333        fidl::encoding::DefaultFuchsiaResourceDialect,
52334    > {
52335        StreamSocketProxyInterface::r#set_reuse_address(self, value)
52336    }
52337
52338    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
52339    pub fn r#get_reuse_address(
52340        &self,
52341    ) -> fidl::client::QueryResponseFut<
52342        BaseSocketGetReuseAddressResult,
52343        fidl::encoding::DefaultFuchsiaResourceDialect,
52344    > {
52345        StreamSocketProxyInterface::r#get_reuse_address(self)
52346    }
52347
52348    /// Get `SOL_SOCKET` -> `SO_ERROR`.
52349    /// Returns the last error if there is an error set on the socket.
52350    pub fn r#get_error(
52351        &self,
52352    ) -> fidl::client::QueryResponseFut<
52353        BaseSocketGetErrorResult,
52354        fidl::encoding::DefaultFuchsiaResourceDialect,
52355    > {
52356        StreamSocketProxyInterface::r#get_error(self)
52357    }
52358
52359    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
52360    pub fn r#set_broadcast(
52361        &self,
52362        mut value: bool,
52363    ) -> fidl::client::QueryResponseFut<
52364        BaseSocketSetBroadcastResult,
52365        fidl::encoding::DefaultFuchsiaResourceDialect,
52366    > {
52367        StreamSocketProxyInterface::r#set_broadcast(self, value)
52368    }
52369
52370    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
52371    pub fn r#get_broadcast(
52372        &self,
52373    ) -> fidl::client::QueryResponseFut<
52374        BaseSocketGetBroadcastResult,
52375        fidl::encoding::DefaultFuchsiaResourceDialect,
52376    > {
52377        StreamSocketProxyInterface::r#get_broadcast(self)
52378    }
52379
52380    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
52381    pub fn r#set_send_buffer(
52382        &self,
52383        mut value_bytes: u64,
52384    ) -> fidl::client::QueryResponseFut<
52385        BaseSocketSetSendBufferResult,
52386        fidl::encoding::DefaultFuchsiaResourceDialect,
52387    > {
52388        StreamSocketProxyInterface::r#set_send_buffer(self, value_bytes)
52389    }
52390
52391    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
52392    pub fn r#get_send_buffer(
52393        &self,
52394    ) -> fidl::client::QueryResponseFut<
52395        BaseSocketGetSendBufferResult,
52396        fidl::encoding::DefaultFuchsiaResourceDialect,
52397    > {
52398        StreamSocketProxyInterface::r#get_send_buffer(self)
52399    }
52400
52401    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
52402    pub fn r#set_receive_buffer(
52403        &self,
52404        mut value_bytes: u64,
52405    ) -> fidl::client::QueryResponseFut<
52406        BaseSocketSetReceiveBufferResult,
52407        fidl::encoding::DefaultFuchsiaResourceDialect,
52408    > {
52409        StreamSocketProxyInterface::r#set_receive_buffer(self, value_bytes)
52410    }
52411
52412    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
52413    pub fn r#get_receive_buffer(
52414        &self,
52415    ) -> fidl::client::QueryResponseFut<
52416        BaseSocketGetReceiveBufferResult,
52417        fidl::encoding::DefaultFuchsiaResourceDialect,
52418    > {
52419        StreamSocketProxyInterface::r#get_receive_buffer(self)
52420    }
52421
52422    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
52423    pub fn r#set_keep_alive(
52424        &self,
52425        mut value: bool,
52426    ) -> fidl::client::QueryResponseFut<
52427        BaseSocketSetKeepAliveResult,
52428        fidl::encoding::DefaultFuchsiaResourceDialect,
52429    > {
52430        StreamSocketProxyInterface::r#set_keep_alive(self, value)
52431    }
52432
52433    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
52434    pub fn r#get_keep_alive(
52435        &self,
52436    ) -> fidl::client::QueryResponseFut<
52437        BaseSocketGetKeepAliveResult,
52438        fidl::encoding::DefaultFuchsiaResourceDialect,
52439    > {
52440        StreamSocketProxyInterface::r#get_keep_alive(self)
52441    }
52442
52443    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
52444    pub fn r#set_out_of_band_inline(
52445        &self,
52446        mut value: bool,
52447    ) -> fidl::client::QueryResponseFut<
52448        BaseSocketSetOutOfBandInlineResult,
52449        fidl::encoding::DefaultFuchsiaResourceDialect,
52450    > {
52451        StreamSocketProxyInterface::r#set_out_of_band_inline(self, value)
52452    }
52453
52454    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
52455    pub fn r#get_out_of_band_inline(
52456        &self,
52457    ) -> fidl::client::QueryResponseFut<
52458        BaseSocketGetOutOfBandInlineResult,
52459        fidl::encoding::DefaultFuchsiaResourceDialect,
52460    > {
52461        StreamSocketProxyInterface::r#get_out_of_band_inline(self)
52462    }
52463
52464    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
52465    pub fn r#set_no_check(
52466        &self,
52467        mut value: bool,
52468    ) -> fidl::client::QueryResponseFut<
52469        BaseSocketSetNoCheckResult,
52470        fidl::encoding::DefaultFuchsiaResourceDialect,
52471    > {
52472        StreamSocketProxyInterface::r#set_no_check(self, value)
52473    }
52474
52475    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
52476    pub fn r#get_no_check(
52477        &self,
52478    ) -> fidl::client::QueryResponseFut<
52479        BaseSocketGetNoCheckResult,
52480        fidl::encoding::DefaultFuchsiaResourceDialect,
52481    > {
52482        StreamSocketProxyInterface::r#get_no_check(self)
52483    }
52484
52485    /// Set `SOL_SOCKET` -> `SO_LINGER`.
52486    pub fn r#set_linger(
52487        &self,
52488        mut linger: bool,
52489        mut length_secs: u32,
52490    ) -> fidl::client::QueryResponseFut<
52491        BaseSocketSetLingerResult,
52492        fidl::encoding::DefaultFuchsiaResourceDialect,
52493    > {
52494        StreamSocketProxyInterface::r#set_linger(self, linger, length_secs)
52495    }
52496
52497    /// Get `SOL_SOCKET` -> `SO_LINGER`.
52498    pub fn r#get_linger(
52499        &self,
52500    ) -> fidl::client::QueryResponseFut<
52501        BaseSocketGetLingerResult,
52502        fidl::encoding::DefaultFuchsiaResourceDialect,
52503    > {
52504        StreamSocketProxyInterface::r#get_linger(self)
52505    }
52506
52507    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
52508    pub fn r#set_reuse_port(
52509        &self,
52510        mut value: bool,
52511    ) -> fidl::client::QueryResponseFut<
52512        BaseSocketSetReusePortResult,
52513        fidl::encoding::DefaultFuchsiaResourceDialect,
52514    > {
52515        StreamSocketProxyInterface::r#set_reuse_port(self, value)
52516    }
52517
52518    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
52519    pub fn r#get_reuse_port(
52520        &self,
52521    ) -> fidl::client::QueryResponseFut<
52522        BaseSocketGetReusePortResult,
52523        fidl::encoding::DefaultFuchsiaResourceDialect,
52524    > {
52525        StreamSocketProxyInterface::r#get_reuse_port(self)
52526    }
52527
52528    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
52529    pub fn r#get_accept_conn(
52530        &self,
52531    ) -> fidl::client::QueryResponseFut<
52532        BaseSocketGetAcceptConnResult,
52533        fidl::encoding::DefaultFuchsiaResourceDialect,
52534    > {
52535        StreamSocketProxyInterface::r#get_accept_conn(self)
52536    }
52537
52538    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
52539    pub fn r#set_bind_to_device(
52540        &self,
52541        mut value: &str,
52542    ) -> fidl::client::QueryResponseFut<
52543        BaseSocketSetBindToDeviceResult,
52544        fidl::encoding::DefaultFuchsiaResourceDialect,
52545    > {
52546        StreamSocketProxyInterface::r#set_bind_to_device(self, value)
52547    }
52548
52549    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
52550    pub fn r#get_bind_to_device(
52551        &self,
52552    ) -> fidl::client::QueryResponseFut<
52553        BaseSocketGetBindToDeviceResult,
52554        fidl::encoding::DefaultFuchsiaResourceDialect,
52555    > {
52556        StreamSocketProxyInterface::r#get_bind_to_device(self)
52557    }
52558
52559    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
52560    /// If `value` is 0, this clears the bound interface.
52561    pub fn r#set_bind_to_interface_index(
52562        &self,
52563        mut value: u64,
52564    ) -> fidl::client::QueryResponseFut<
52565        BaseSocketSetBindToInterfaceIndexResult,
52566        fidl::encoding::DefaultFuchsiaResourceDialect,
52567    > {
52568        StreamSocketProxyInterface::r#set_bind_to_interface_index(self, value)
52569    }
52570
52571    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
52572    pub fn r#get_bind_to_interface_index(
52573        &self,
52574    ) -> fidl::client::QueryResponseFut<
52575        BaseSocketGetBindToInterfaceIndexResult,
52576        fidl::encoding::DefaultFuchsiaResourceDialect,
52577    > {
52578        StreamSocketProxyInterface::r#get_bind_to_interface_index(self)
52579    }
52580
52581    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
52582    pub fn r#set_timestamp(
52583        &self,
52584        mut value: TimestampOption,
52585    ) -> fidl::client::QueryResponseFut<
52586        BaseSocketSetTimestampResult,
52587        fidl::encoding::DefaultFuchsiaResourceDialect,
52588    > {
52589        StreamSocketProxyInterface::r#set_timestamp(self, value)
52590    }
52591
52592    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
52593    pub fn r#get_timestamp(
52594        &self,
52595    ) -> fidl::client::QueryResponseFut<
52596        BaseSocketGetTimestampResult,
52597        fidl::encoding::DefaultFuchsiaResourceDialect,
52598    > {
52599        StreamSocketProxyInterface::r#get_timestamp(self)
52600    }
52601
52602    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
52603    /// unlike the standard SO_MARK, this API has multiple mark domains and each
52604    /// mark can be set independently in each domain.
52605    pub fn r#set_mark(
52606        &self,
52607        mut domain: fidl_fuchsia_net::MarkDomain,
52608        mut mark: &OptionalUint32,
52609    ) -> fidl::client::QueryResponseFut<
52610        BaseSocketSetMarkResult,
52611        fidl::encoding::DefaultFuchsiaResourceDialect,
52612    > {
52613        StreamSocketProxyInterface::r#set_mark(self, domain, mark)
52614    }
52615
52616    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
52617    /// unlike the standard SO_MARK, this API has multiple mark domains and each
52618    /// mark can be retrieved independently in each domain.
52619    pub fn r#get_mark(
52620        &self,
52621        mut domain: fidl_fuchsia_net::MarkDomain,
52622    ) -> fidl::client::QueryResponseFut<
52623        BaseSocketGetMarkResult,
52624        fidl::encoding::DefaultFuchsiaResourceDialect,
52625    > {
52626        StreamSocketProxyInterface::r#get_mark(self, domain)
52627    }
52628
52629    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
52630    pub fn r#get_cookie(
52631        &self,
52632    ) -> fidl::client::QueryResponseFut<
52633        BaseSocketGetCookieResult,
52634        fidl::encoding::DefaultFuchsiaResourceDialect,
52635    > {
52636        StreamSocketProxyInterface::r#get_cookie(self)
52637    }
52638
52639    /// Sets the local address used for the socket.
52640    pub fn r#bind(
52641        &self,
52642        mut addr: &fidl_fuchsia_net::SocketAddress,
52643    ) -> fidl::client::QueryResponseFut<
52644        BaseNetworkSocketBindResult,
52645        fidl::encoding::DefaultFuchsiaResourceDialect,
52646    > {
52647        StreamSocketProxyInterface::r#bind(self, addr)
52648    }
52649
52650    /// Initiates a connection to a remote address.
52651    pub fn r#connect(
52652        &self,
52653        mut addr: &fidl_fuchsia_net::SocketAddress,
52654    ) -> fidl::client::QueryResponseFut<
52655        BaseNetworkSocketConnectResult,
52656        fidl::encoding::DefaultFuchsiaResourceDialect,
52657    > {
52658        StreamSocketProxyInterface::r#connect(self, addr)
52659    }
52660
52661    /// Clears connection information from this socket.
52662    pub fn r#disconnect(
52663        &self,
52664    ) -> fidl::client::QueryResponseFut<
52665        BaseNetworkSocketDisconnectResult,
52666        fidl::encoding::DefaultFuchsiaResourceDialect,
52667    > {
52668        StreamSocketProxyInterface::r#disconnect(self)
52669    }
52670
52671    /// Retrieves the local socket address.
52672    pub fn r#get_sock_name(
52673        &self,
52674    ) -> fidl::client::QueryResponseFut<
52675        BaseNetworkSocketGetSockNameResult,
52676        fidl::encoding::DefaultFuchsiaResourceDialect,
52677    > {
52678        StreamSocketProxyInterface::r#get_sock_name(self)
52679    }
52680
52681    /// Retrieves the remote socket address.
52682    pub fn r#get_peer_name(
52683        &self,
52684    ) -> fidl::client::QueryResponseFut<
52685        BaseNetworkSocketGetPeerNameResult,
52686        fidl::encoding::DefaultFuchsiaResourceDialect,
52687    > {
52688        StreamSocketProxyInterface::r#get_peer_name(self)
52689    }
52690
52691    /// Shuts down part of the socket.
52692    pub fn r#shutdown(
52693        &self,
52694        mut mode: ShutdownMode,
52695    ) -> fidl::client::QueryResponseFut<
52696        BaseNetworkSocketShutdownResult,
52697        fidl::encoding::DefaultFuchsiaResourceDialect,
52698    > {
52699        StreamSocketProxyInterface::r#shutdown(self, mode)
52700    }
52701
52702    /// Set `SOL_IP` -> `IP_TOS`.
52703    pub fn r#set_ip_type_of_service(
52704        &self,
52705        mut value: u8,
52706    ) -> fidl::client::QueryResponseFut<
52707        BaseNetworkSocketSetIpTypeOfServiceResult,
52708        fidl::encoding::DefaultFuchsiaResourceDialect,
52709    > {
52710        StreamSocketProxyInterface::r#set_ip_type_of_service(self, value)
52711    }
52712
52713    /// Get `SOL_IP` -> `IP_TOS`.
52714    pub fn r#get_ip_type_of_service(
52715        &self,
52716    ) -> fidl::client::QueryResponseFut<
52717        BaseNetworkSocketGetIpTypeOfServiceResult,
52718        fidl::encoding::DefaultFuchsiaResourceDialect,
52719    > {
52720        StreamSocketProxyInterface::r#get_ip_type_of_service(self)
52721    }
52722
52723    /// Set `SOL_IP` -> `IP_TTL`.
52724    pub fn r#set_ip_ttl(
52725        &self,
52726        mut value: &OptionalUint8,
52727    ) -> fidl::client::QueryResponseFut<
52728        BaseNetworkSocketSetIpTtlResult,
52729        fidl::encoding::DefaultFuchsiaResourceDialect,
52730    > {
52731        StreamSocketProxyInterface::r#set_ip_ttl(self, value)
52732    }
52733
52734    /// Get `SOL_IP` -> `IP_TTL`.
52735    pub fn r#get_ip_ttl(
52736        &self,
52737    ) -> fidl::client::QueryResponseFut<
52738        BaseNetworkSocketGetIpTtlResult,
52739        fidl::encoding::DefaultFuchsiaResourceDialect,
52740    > {
52741        StreamSocketProxyInterface::r#get_ip_ttl(self)
52742    }
52743
52744    /// Set `SOL_IP` -> `IP_PKTINFO`.
52745    pub fn r#set_ip_packet_info(
52746        &self,
52747        mut value: bool,
52748    ) -> fidl::client::QueryResponseFut<
52749        BaseNetworkSocketSetIpPacketInfoResult,
52750        fidl::encoding::DefaultFuchsiaResourceDialect,
52751    > {
52752        StreamSocketProxyInterface::r#set_ip_packet_info(self, value)
52753    }
52754
52755    /// Get `SOL_IP` -> `IP_PKTINFO`.
52756    pub fn r#get_ip_packet_info(
52757        &self,
52758    ) -> fidl::client::QueryResponseFut<
52759        BaseNetworkSocketGetIpPacketInfoResult,
52760        fidl::encoding::DefaultFuchsiaResourceDialect,
52761    > {
52762        StreamSocketProxyInterface::r#get_ip_packet_info(self)
52763    }
52764
52765    /// Set `SOL_IP` -> `IP_RECVTOS`.
52766    pub fn r#set_ip_receive_type_of_service(
52767        &self,
52768        mut value: bool,
52769    ) -> fidl::client::QueryResponseFut<
52770        BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
52771        fidl::encoding::DefaultFuchsiaResourceDialect,
52772    > {
52773        StreamSocketProxyInterface::r#set_ip_receive_type_of_service(self, value)
52774    }
52775
52776    /// Get `SOL_IP` -> `IP_RECVTOS`.
52777    pub fn r#get_ip_receive_type_of_service(
52778        &self,
52779    ) -> fidl::client::QueryResponseFut<
52780        BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
52781        fidl::encoding::DefaultFuchsiaResourceDialect,
52782    > {
52783        StreamSocketProxyInterface::r#get_ip_receive_type_of_service(self)
52784    }
52785
52786    /// Set `SOL_IP` -> `IP_RECVTTL`.
52787    pub fn r#set_ip_receive_ttl(
52788        &self,
52789        mut value: bool,
52790    ) -> fidl::client::QueryResponseFut<
52791        BaseNetworkSocketSetIpReceiveTtlResult,
52792        fidl::encoding::DefaultFuchsiaResourceDialect,
52793    > {
52794        StreamSocketProxyInterface::r#set_ip_receive_ttl(self, value)
52795    }
52796
52797    /// Get `SOL_IP` -> `IP_RECVTTL`.
52798    pub fn r#get_ip_receive_ttl(
52799        &self,
52800    ) -> fidl::client::QueryResponseFut<
52801        BaseNetworkSocketGetIpReceiveTtlResult,
52802        fidl::encoding::DefaultFuchsiaResourceDialect,
52803    > {
52804        StreamSocketProxyInterface::r#get_ip_receive_ttl(self)
52805    }
52806
52807    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
52808    pub fn r#set_ip_multicast_interface(
52809        &self,
52810        mut iface: u64,
52811        mut address: &fidl_fuchsia_net::Ipv4Address,
52812    ) -> fidl::client::QueryResponseFut<
52813        BaseNetworkSocketSetIpMulticastInterfaceResult,
52814        fidl::encoding::DefaultFuchsiaResourceDialect,
52815    > {
52816        StreamSocketProxyInterface::r#set_ip_multicast_interface(self, iface, address)
52817    }
52818
52819    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
52820    pub fn r#get_ip_multicast_interface(
52821        &self,
52822    ) -> fidl::client::QueryResponseFut<
52823        BaseNetworkSocketGetIpMulticastInterfaceResult,
52824        fidl::encoding::DefaultFuchsiaResourceDialect,
52825    > {
52826        StreamSocketProxyInterface::r#get_ip_multicast_interface(self)
52827    }
52828
52829    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
52830    pub fn r#set_ip_multicast_ttl(
52831        &self,
52832        mut value: &OptionalUint8,
52833    ) -> fidl::client::QueryResponseFut<
52834        BaseNetworkSocketSetIpMulticastTtlResult,
52835        fidl::encoding::DefaultFuchsiaResourceDialect,
52836    > {
52837        StreamSocketProxyInterface::r#set_ip_multicast_ttl(self, value)
52838    }
52839
52840    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
52841    pub fn r#get_ip_multicast_ttl(
52842        &self,
52843    ) -> fidl::client::QueryResponseFut<
52844        BaseNetworkSocketGetIpMulticastTtlResult,
52845        fidl::encoding::DefaultFuchsiaResourceDialect,
52846    > {
52847        StreamSocketProxyInterface::r#get_ip_multicast_ttl(self)
52848    }
52849
52850    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
52851    pub fn r#set_ip_multicast_loopback(
52852        &self,
52853        mut value: bool,
52854    ) -> fidl::client::QueryResponseFut<
52855        BaseNetworkSocketSetIpMulticastLoopbackResult,
52856        fidl::encoding::DefaultFuchsiaResourceDialect,
52857    > {
52858        StreamSocketProxyInterface::r#set_ip_multicast_loopback(self, value)
52859    }
52860
52861    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
52862    pub fn r#get_ip_multicast_loopback(
52863        &self,
52864    ) -> fidl::client::QueryResponseFut<
52865        BaseNetworkSocketGetIpMulticastLoopbackResult,
52866        fidl::encoding::DefaultFuchsiaResourceDialect,
52867    > {
52868        StreamSocketProxyInterface::r#get_ip_multicast_loopback(self)
52869    }
52870
52871    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
52872    pub fn r#add_ip_membership(
52873        &self,
52874        mut membership: &IpMulticastMembership,
52875    ) -> fidl::client::QueryResponseFut<
52876        BaseNetworkSocketAddIpMembershipResult,
52877        fidl::encoding::DefaultFuchsiaResourceDialect,
52878    > {
52879        StreamSocketProxyInterface::r#add_ip_membership(self, membership)
52880    }
52881
52882    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
52883    pub fn r#drop_ip_membership(
52884        &self,
52885        mut membership: &IpMulticastMembership,
52886    ) -> fidl::client::QueryResponseFut<
52887        BaseNetworkSocketDropIpMembershipResult,
52888        fidl::encoding::DefaultFuchsiaResourceDialect,
52889    > {
52890        StreamSocketProxyInterface::r#drop_ip_membership(self, membership)
52891    }
52892
52893    /// Set `SOL_IP` -> `IP_TRANSPARENT`
52894    pub fn r#set_ip_transparent(
52895        &self,
52896        mut value: bool,
52897    ) -> fidl::client::QueryResponseFut<
52898        BaseNetworkSocketSetIpTransparentResult,
52899        fidl::encoding::DefaultFuchsiaResourceDialect,
52900    > {
52901        StreamSocketProxyInterface::r#set_ip_transparent(self, value)
52902    }
52903
52904    /// Get `SOL_IP` -> `IP_TRANSPARENT`
52905    pub fn r#get_ip_transparent(
52906        &self,
52907    ) -> fidl::client::QueryResponseFut<
52908        BaseNetworkSocketGetIpTransparentResult,
52909        fidl::encoding::DefaultFuchsiaResourceDialect,
52910    > {
52911        StreamSocketProxyInterface::r#get_ip_transparent(self)
52912    }
52913
52914    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
52915    pub fn r#set_ip_receive_original_destination_address(
52916        &self,
52917        mut value: bool,
52918    ) -> fidl::client::QueryResponseFut<
52919        BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
52920        fidl::encoding::DefaultFuchsiaResourceDialect,
52921    > {
52922        StreamSocketProxyInterface::r#set_ip_receive_original_destination_address(self, value)
52923    }
52924
52925    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
52926    pub fn r#get_ip_receive_original_destination_address(
52927        &self,
52928    ) -> fidl::client::QueryResponseFut<
52929        BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
52930        fidl::encoding::DefaultFuchsiaResourceDialect,
52931    > {
52932        StreamSocketProxyInterface::r#get_ip_receive_original_destination_address(self)
52933    }
52934
52935    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
52936    pub fn r#add_ipv6_membership(
52937        &self,
52938        mut membership: &Ipv6MulticastMembership,
52939    ) -> fidl::client::QueryResponseFut<
52940        BaseNetworkSocketAddIpv6MembershipResult,
52941        fidl::encoding::DefaultFuchsiaResourceDialect,
52942    > {
52943        StreamSocketProxyInterface::r#add_ipv6_membership(self, membership)
52944    }
52945
52946    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
52947    pub fn r#drop_ipv6_membership(
52948        &self,
52949        mut membership: &Ipv6MulticastMembership,
52950    ) -> fidl::client::QueryResponseFut<
52951        BaseNetworkSocketDropIpv6MembershipResult,
52952        fidl::encoding::DefaultFuchsiaResourceDialect,
52953    > {
52954        StreamSocketProxyInterface::r#drop_ipv6_membership(self, membership)
52955    }
52956
52957    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
52958    pub fn r#set_ipv6_multicast_interface(
52959        &self,
52960        mut value: u64,
52961    ) -> fidl::client::QueryResponseFut<
52962        BaseNetworkSocketSetIpv6MulticastInterfaceResult,
52963        fidl::encoding::DefaultFuchsiaResourceDialect,
52964    > {
52965        StreamSocketProxyInterface::r#set_ipv6_multicast_interface(self, value)
52966    }
52967
52968    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
52969    pub fn r#get_ipv6_multicast_interface(
52970        &self,
52971    ) -> fidl::client::QueryResponseFut<
52972        BaseNetworkSocketGetIpv6MulticastInterfaceResult,
52973        fidl::encoding::DefaultFuchsiaResourceDialect,
52974    > {
52975        StreamSocketProxyInterface::r#get_ipv6_multicast_interface(self)
52976    }
52977
52978    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
52979    pub fn r#set_ipv6_unicast_hops(
52980        &self,
52981        mut value: &OptionalUint8,
52982    ) -> fidl::client::QueryResponseFut<
52983        BaseNetworkSocketSetIpv6UnicastHopsResult,
52984        fidl::encoding::DefaultFuchsiaResourceDialect,
52985    > {
52986        StreamSocketProxyInterface::r#set_ipv6_unicast_hops(self, value)
52987    }
52988
52989    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
52990    pub fn r#get_ipv6_unicast_hops(
52991        &self,
52992    ) -> fidl::client::QueryResponseFut<
52993        BaseNetworkSocketGetIpv6UnicastHopsResult,
52994        fidl::encoding::DefaultFuchsiaResourceDialect,
52995    > {
52996        StreamSocketProxyInterface::r#get_ipv6_unicast_hops(self)
52997    }
52998
52999    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
53000    pub fn r#set_ipv6_receive_hop_limit(
53001        &self,
53002        mut value: bool,
53003    ) -> fidl::client::QueryResponseFut<
53004        BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
53005        fidl::encoding::DefaultFuchsiaResourceDialect,
53006    > {
53007        StreamSocketProxyInterface::r#set_ipv6_receive_hop_limit(self, value)
53008    }
53009
53010    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
53011    pub fn r#get_ipv6_receive_hop_limit(
53012        &self,
53013    ) -> fidl::client::QueryResponseFut<
53014        BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
53015        fidl::encoding::DefaultFuchsiaResourceDialect,
53016    > {
53017        StreamSocketProxyInterface::r#get_ipv6_receive_hop_limit(self)
53018    }
53019
53020    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
53021    pub fn r#set_ipv6_multicast_hops(
53022        &self,
53023        mut value: &OptionalUint8,
53024    ) -> fidl::client::QueryResponseFut<
53025        BaseNetworkSocketSetIpv6MulticastHopsResult,
53026        fidl::encoding::DefaultFuchsiaResourceDialect,
53027    > {
53028        StreamSocketProxyInterface::r#set_ipv6_multicast_hops(self, value)
53029    }
53030
53031    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
53032    pub fn r#get_ipv6_multicast_hops(
53033        &self,
53034    ) -> fidl::client::QueryResponseFut<
53035        BaseNetworkSocketGetIpv6MulticastHopsResult,
53036        fidl::encoding::DefaultFuchsiaResourceDialect,
53037    > {
53038        StreamSocketProxyInterface::r#get_ipv6_multicast_hops(self)
53039    }
53040
53041    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
53042    pub fn r#set_ipv6_multicast_loopback(
53043        &self,
53044        mut value: bool,
53045    ) -> fidl::client::QueryResponseFut<
53046        BaseNetworkSocketSetIpv6MulticastLoopbackResult,
53047        fidl::encoding::DefaultFuchsiaResourceDialect,
53048    > {
53049        StreamSocketProxyInterface::r#set_ipv6_multicast_loopback(self, value)
53050    }
53051
53052    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
53053    pub fn r#get_ipv6_multicast_loopback(
53054        &self,
53055    ) -> fidl::client::QueryResponseFut<
53056        BaseNetworkSocketGetIpv6MulticastLoopbackResult,
53057        fidl::encoding::DefaultFuchsiaResourceDialect,
53058    > {
53059        StreamSocketProxyInterface::r#get_ipv6_multicast_loopback(self)
53060    }
53061
53062    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
53063    pub fn r#set_ipv6_only(
53064        &self,
53065        mut value: bool,
53066    ) -> fidl::client::QueryResponseFut<
53067        BaseNetworkSocketSetIpv6OnlyResult,
53068        fidl::encoding::DefaultFuchsiaResourceDialect,
53069    > {
53070        StreamSocketProxyInterface::r#set_ipv6_only(self, value)
53071    }
53072
53073    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
53074    pub fn r#get_ipv6_only(
53075        &self,
53076    ) -> fidl::client::QueryResponseFut<
53077        BaseNetworkSocketGetIpv6OnlyResult,
53078        fidl::encoding::DefaultFuchsiaResourceDialect,
53079    > {
53080        StreamSocketProxyInterface::r#get_ipv6_only(self)
53081    }
53082
53083    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
53084    pub fn r#set_ipv6_receive_traffic_class(
53085        &self,
53086        mut value: bool,
53087    ) -> fidl::client::QueryResponseFut<
53088        BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
53089        fidl::encoding::DefaultFuchsiaResourceDialect,
53090    > {
53091        StreamSocketProxyInterface::r#set_ipv6_receive_traffic_class(self, value)
53092    }
53093
53094    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
53095    pub fn r#get_ipv6_receive_traffic_class(
53096        &self,
53097    ) -> fidl::client::QueryResponseFut<
53098        BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
53099        fidl::encoding::DefaultFuchsiaResourceDialect,
53100    > {
53101        StreamSocketProxyInterface::r#get_ipv6_receive_traffic_class(self)
53102    }
53103
53104    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
53105    pub fn r#set_ipv6_traffic_class(
53106        &self,
53107        mut value: &OptionalUint8,
53108    ) -> fidl::client::QueryResponseFut<
53109        BaseNetworkSocketSetIpv6TrafficClassResult,
53110        fidl::encoding::DefaultFuchsiaResourceDialect,
53111    > {
53112        StreamSocketProxyInterface::r#set_ipv6_traffic_class(self, value)
53113    }
53114
53115    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
53116    pub fn r#get_ipv6_traffic_class(
53117        &self,
53118    ) -> fidl::client::QueryResponseFut<
53119        BaseNetworkSocketGetIpv6TrafficClassResult,
53120        fidl::encoding::DefaultFuchsiaResourceDialect,
53121    > {
53122        StreamSocketProxyInterface::r#get_ipv6_traffic_class(self)
53123    }
53124
53125    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
53126    pub fn r#set_ipv6_receive_packet_info(
53127        &self,
53128        mut value: bool,
53129    ) -> fidl::client::QueryResponseFut<
53130        BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
53131        fidl::encoding::DefaultFuchsiaResourceDialect,
53132    > {
53133        StreamSocketProxyInterface::r#set_ipv6_receive_packet_info(self, value)
53134    }
53135
53136    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
53137    pub fn r#get_ipv6_receive_packet_info(
53138        &self,
53139    ) -> fidl::client::QueryResponseFut<
53140        BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
53141        fidl::encoding::DefaultFuchsiaResourceDialect,
53142    > {
53143        StreamSocketProxyInterface::r#get_ipv6_receive_packet_info(self)
53144    }
53145
53146    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
53147    pub fn r#get_original_destination(
53148        &self,
53149    ) -> fidl::client::QueryResponseFut<
53150        BaseNetworkSocketGetOriginalDestinationResult,
53151        fidl::encoding::DefaultFuchsiaResourceDialect,
53152    > {
53153        StreamSocketProxyInterface::r#get_original_destination(self)
53154    }
53155
53156    pub fn r#describe(
53157        &self,
53158    ) -> fidl::client::QueryResponseFut<
53159        StreamSocketDescribeResponse,
53160        fidl::encoding::DefaultFuchsiaResourceDialect,
53161    > {
53162        StreamSocketProxyInterface::r#describe(self)
53163    }
53164
53165    /// Begins listening for new incoming connections. At most `backlog`
53166    /// connections will be buffered.
53167    pub fn r#listen(
53168        &self,
53169        mut backlog: i16,
53170    ) -> fidl::client::QueryResponseFut<
53171        StreamSocketListenResult,
53172        fidl::encoding::DefaultFuchsiaResourceDialect,
53173    > {
53174        StreamSocketProxyInterface::r#listen(self, backlog)
53175    }
53176
53177    /// Accepts a buffered incoming connection.
53178    pub fn r#accept(
53179        &self,
53180        mut want_addr: bool,
53181    ) -> fidl::client::QueryResponseFut<
53182        StreamSocketAcceptResult,
53183        fidl::encoding::DefaultFuchsiaResourceDialect,
53184    > {
53185        StreamSocketProxyInterface::r#accept(self, want_addr)
53186    }
53187
53188    /// Retrieves creation information from the socket.
53189    pub fn r#get_info(
53190        &self,
53191    ) -> fidl::client::QueryResponseFut<
53192        StreamSocketGetInfoResult,
53193        fidl::encoding::DefaultFuchsiaResourceDialect,
53194    > {
53195        StreamSocketProxyInterface::r#get_info(self)
53196    }
53197
53198    /// Set `SOL_TCP` -> `TCP_NODELAY`.
53199    pub fn r#set_tcp_no_delay(
53200        &self,
53201        mut value: bool,
53202    ) -> fidl::client::QueryResponseFut<
53203        StreamSocketSetTcpNoDelayResult,
53204        fidl::encoding::DefaultFuchsiaResourceDialect,
53205    > {
53206        StreamSocketProxyInterface::r#set_tcp_no_delay(self, value)
53207    }
53208
53209    /// Get `SOL_TCP` -> `TCP_NODELAY`.
53210    pub fn r#get_tcp_no_delay(
53211        &self,
53212    ) -> fidl::client::QueryResponseFut<
53213        StreamSocketGetTcpNoDelayResult,
53214        fidl::encoding::DefaultFuchsiaResourceDialect,
53215    > {
53216        StreamSocketProxyInterface::r#get_tcp_no_delay(self)
53217    }
53218
53219    /// Set `SOL_TCP` -> `TCP_MAXSEG`.
53220    pub fn r#set_tcp_max_segment(
53221        &self,
53222        mut value_bytes: u32,
53223    ) -> fidl::client::QueryResponseFut<
53224        StreamSocketSetTcpMaxSegmentResult,
53225        fidl::encoding::DefaultFuchsiaResourceDialect,
53226    > {
53227        StreamSocketProxyInterface::r#set_tcp_max_segment(self, value_bytes)
53228    }
53229
53230    /// Get `SOL_TCP` -> `TCP_MAXSEG`.
53231    pub fn r#get_tcp_max_segment(
53232        &self,
53233    ) -> fidl::client::QueryResponseFut<
53234        StreamSocketGetTcpMaxSegmentResult,
53235        fidl::encoding::DefaultFuchsiaResourceDialect,
53236    > {
53237        StreamSocketProxyInterface::r#get_tcp_max_segment(self)
53238    }
53239
53240    /// Set `SOL_TCP` -> `TCP_CORK`.
53241    pub fn r#set_tcp_cork(
53242        &self,
53243        mut value: bool,
53244    ) -> fidl::client::QueryResponseFut<
53245        StreamSocketSetTcpCorkResult,
53246        fidl::encoding::DefaultFuchsiaResourceDialect,
53247    > {
53248        StreamSocketProxyInterface::r#set_tcp_cork(self, value)
53249    }
53250
53251    /// Get `SOL_TCP` -> `TCP_CORK`.
53252    pub fn r#get_tcp_cork(
53253        &self,
53254    ) -> fidl::client::QueryResponseFut<
53255        StreamSocketGetTcpCorkResult,
53256        fidl::encoding::DefaultFuchsiaResourceDialect,
53257    > {
53258        StreamSocketProxyInterface::r#get_tcp_cork(self)
53259    }
53260
53261    /// Set `SOL_TCP` -> `TCP_KEEPIDLE`.
53262    pub fn r#set_tcp_keep_alive_idle(
53263        &self,
53264        mut value_secs: u32,
53265    ) -> fidl::client::QueryResponseFut<
53266        StreamSocketSetTcpKeepAliveIdleResult,
53267        fidl::encoding::DefaultFuchsiaResourceDialect,
53268    > {
53269        StreamSocketProxyInterface::r#set_tcp_keep_alive_idle(self, value_secs)
53270    }
53271
53272    /// Get `SOL_TCP` -> `TCP_KEEPIDLE`.
53273    pub fn r#get_tcp_keep_alive_idle(
53274        &self,
53275    ) -> fidl::client::QueryResponseFut<
53276        StreamSocketGetTcpKeepAliveIdleResult,
53277        fidl::encoding::DefaultFuchsiaResourceDialect,
53278    > {
53279        StreamSocketProxyInterface::r#get_tcp_keep_alive_idle(self)
53280    }
53281
53282    /// Set `SOL_TCP` -> `TCP_KEEPINTVL`.
53283    pub fn r#set_tcp_keep_alive_interval(
53284        &self,
53285        mut value_secs: u32,
53286    ) -> fidl::client::QueryResponseFut<
53287        StreamSocketSetTcpKeepAliveIntervalResult,
53288        fidl::encoding::DefaultFuchsiaResourceDialect,
53289    > {
53290        StreamSocketProxyInterface::r#set_tcp_keep_alive_interval(self, value_secs)
53291    }
53292
53293    /// Get `SOL_TCP` -> `TCP_KEEPINTVL`.
53294    pub fn r#get_tcp_keep_alive_interval(
53295        &self,
53296    ) -> fidl::client::QueryResponseFut<
53297        StreamSocketGetTcpKeepAliveIntervalResult,
53298        fidl::encoding::DefaultFuchsiaResourceDialect,
53299    > {
53300        StreamSocketProxyInterface::r#get_tcp_keep_alive_interval(self)
53301    }
53302
53303    /// Set `SOL_TCP` -> `TCP_KEEPCNT`.
53304    pub fn r#set_tcp_keep_alive_count(
53305        &self,
53306        mut value: u32,
53307    ) -> fidl::client::QueryResponseFut<
53308        StreamSocketSetTcpKeepAliveCountResult,
53309        fidl::encoding::DefaultFuchsiaResourceDialect,
53310    > {
53311        StreamSocketProxyInterface::r#set_tcp_keep_alive_count(self, value)
53312    }
53313
53314    /// Get `SOL_TCP` -> `TCP_KEEPCNT`.
53315    pub fn r#get_tcp_keep_alive_count(
53316        &self,
53317    ) -> fidl::client::QueryResponseFut<
53318        StreamSocketGetTcpKeepAliveCountResult,
53319        fidl::encoding::DefaultFuchsiaResourceDialect,
53320    > {
53321        StreamSocketProxyInterface::r#get_tcp_keep_alive_count(self)
53322    }
53323
53324    /// Set `SOL_TCP` -> `TCP_SYNCNT`.
53325    pub fn r#set_tcp_syn_count(
53326        &self,
53327        mut value: u32,
53328    ) -> fidl::client::QueryResponseFut<
53329        StreamSocketSetTcpSynCountResult,
53330        fidl::encoding::DefaultFuchsiaResourceDialect,
53331    > {
53332        StreamSocketProxyInterface::r#set_tcp_syn_count(self, value)
53333    }
53334
53335    /// Get `SOL_TCP` -> `TCP_SYNCNT`.
53336    pub fn r#get_tcp_syn_count(
53337        &self,
53338    ) -> fidl::client::QueryResponseFut<
53339        StreamSocketGetTcpSynCountResult,
53340        fidl::encoding::DefaultFuchsiaResourceDialect,
53341    > {
53342        StreamSocketProxyInterface::r#get_tcp_syn_count(self)
53343    }
53344
53345    /// Set `SOL_TCP` -> `TCP_LINGER2`.
53346    pub fn r#set_tcp_linger(
53347        &self,
53348        mut value_secs: &OptionalUint32,
53349    ) -> fidl::client::QueryResponseFut<
53350        StreamSocketSetTcpLingerResult,
53351        fidl::encoding::DefaultFuchsiaResourceDialect,
53352    > {
53353        StreamSocketProxyInterface::r#set_tcp_linger(self, value_secs)
53354    }
53355
53356    /// Get `SOL_TCP` -> `TCP_LINGER2`.
53357    pub fn r#get_tcp_linger(
53358        &self,
53359    ) -> fidl::client::QueryResponseFut<
53360        StreamSocketGetTcpLingerResult,
53361        fidl::encoding::DefaultFuchsiaResourceDialect,
53362    > {
53363        StreamSocketProxyInterface::r#get_tcp_linger(self)
53364    }
53365
53366    /// Set `SOL_TCP` -> `TCP_DEFER_ACCEPT`.
53367    pub fn r#set_tcp_defer_accept(
53368        &self,
53369        mut value_secs: u32,
53370    ) -> fidl::client::QueryResponseFut<
53371        StreamSocketSetTcpDeferAcceptResult,
53372        fidl::encoding::DefaultFuchsiaResourceDialect,
53373    > {
53374        StreamSocketProxyInterface::r#set_tcp_defer_accept(self, value_secs)
53375    }
53376
53377    /// Get `SOL_TCP` -> `TCP_DEFER_ACCEPT`.
53378    pub fn r#get_tcp_defer_accept(
53379        &self,
53380    ) -> fidl::client::QueryResponseFut<
53381        StreamSocketGetTcpDeferAcceptResult,
53382        fidl::encoding::DefaultFuchsiaResourceDialect,
53383    > {
53384        StreamSocketProxyInterface::r#get_tcp_defer_accept(self)
53385    }
53386
53387    /// Set `SOL_TCP` -> `TCP_WINDOW_CLAMP`.
53388    pub fn r#set_tcp_window_clamp(
53389        &self,
53390        mut value: u32,
53391    ) -> fidl::client::QueryResponseFut<
53392        StreamSocketSetTcpWindowClampResult,
53393        fidl::encoding::DefaultFuchsiaResourceDialect,
53394    > {
53395        StreamSocketProxyInterface::r#set_tcp_window_clamp(self, value)
53396    }
53397
53398    /// Get `SOL_TCP` -> `TCP_WINDOW_CLAMP`.
53399    pub fn r#get_tcp_window_clamp(
53400        &self,
53401    ) -> fidl::client::QueryResponseFut<
53402        StreamSocketGetTcpWindowClampResult,
53403        fidl::encoding::DefaultFuchsiaResourceDialect,
53404    > {
53405        StreamSocketProxyInterface::r#get_tcp_window_clamp(self)
53406    }
53407
53408    /// Get `SOL_TCP` -> `TCP_INFO`.
53409    pub fn r#get_tcp_info(
53410        &self,
53411    ) -> fidl::client::QueryResponseFut<
53412        StreamSocketGetTcpInfoResult,
53413        fidl::encoding::DefaultFuchsiaResourceDialect,
53414    > {
53415        StreamSocketProxyInterface::r#get_tcp_info(self)
53416    }
53417
53418    /// Set `SOL_TCP` -> `TCP_QUICKACK`.
53419    pub fn r#set_tcp_quick_ack(
53420        &self,
53421        mut value: bool,
53422    ) -> fidl::client::QueryResponseFut<
53423        StreamSocketSetTcpQuickAckResult,
53424        fidl::encoding::DefaultFuchsiaResourceDialect,
53425    > {
53426        StreamSocketProxyInterface::r#set_tcp_quick_ack(self, value)
53427    }
53428
53429    /// Get `SOL_TCP` -> `TCP_QUICKACK`.
53430    pub fn r#get_tcp_quick_ack(
53431        &self,
53432    ) -> fidl::client::QueryResponseFut<
53433        StreamSocketGetTcpQuickAckResult,
53434        fidl::encoding::DefaultFuchsiaResourceDialect,
53435    > {
53436        StreamSocketProxyInterface::r#get_tcp_quick_ack(self)
53437    }
53438
53439    /// Set `SOL_TCP` -> `TCP_CONGESTION`.
53440    pub fn r#set_tcp_congestion(
53441        &self,
53442        mut value: TcpCongestionControl,
53443    ) -> fidl::client::QueryResponseFut<
53444        StreamSocketSetTcpCongestionResult,
53445        fidl::encoding::DefaultFuchsiaResourceDialect,
53446    > {
53447        StreamSocketProxyInterface::r#set_tcp_congestion(self, value)
53448    }
53449
53450    /// Get `SOL_TCP` -> `TCP_CONGESTION`.
53451    pub fn r#get_tcp_congestion(
53452        &self,
53453    ) -> fidl::client::QueryResponseFut<
53454        StreamSocketGetTcpCongestionResult,
53455        fidl::encoding::DefaultFuchsiaResourceDialect,
53456    > {
53457        StreamSocketProxyInterface::r#get_tcp_congestion(self)
53458    }
53459
53460    /// Set `SOL_TCP` -> `TCP_USER_TIMEOUT`.
53461    pub fn r#set_tcp_user_timeout(
53462        &self,
53463        mut value_millis: u32,
53464    ) -> fidl::client::QueryResponseFut<
53465        StreamSocketSetTcpUserTimeoutResult,
53466        fidl::encoding::DefaultFuchsiaResourceDialect,
53467    > {
53468        StreamSocketProxyInterface::r#set_tcp_user_timeout(self, value_millis)
53469    }
53470
53471    /// Get `SOL_TCP` -> `TCP_USER_TIMEOUT`.
53472    pub fn r#get_tcp_user_timeout(
53473        &self,
53474    ) -> fidl::client::QueryResponseFut<
53475        StreamSocketGetTcpUserTimeoutResult,
53476        fidl::encoding::DefaultFuchsiaResourceDialect,
53477    > {
53478        StreamSocketProxyInterface::r#get_tcp_user_timeout(self)
53479    }
53480}
53481
53482impl StreamSocketProxyInterface for StreamSocketProxy {
53483    fn r#clone(
53484        &self,
53485        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
53486    ) -> Result<(), fidl::Error> {
53487        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
53488            (request,),
53489            0x20d8a7aba2168a79,
53490            fidl::encoding::DynamicFlags::empty(),
53491        )
53492    }
53493
53494    type CloseResponseFut = fidl::client::QueryResponseFut<
53495        fidl_fuchsia_unknown::CloseableCloseResult,
53496        fidl::encoding::DefaultFuchsiaResourceDialect,
53497    >;
53498    fn r#close(&self) -> Self::CloseResponseFut {
53499        fn _decode(
53500            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53501        ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
53502            let _response = fidl::client::decode_transaction_body::<
53503                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
53504                fidl::encoding::DefaultFuchsiaResourceDialect,
53505                0x5ac5d459ad7f657e,
53506            >(_buf?)?;
53507            Ok(_response.map(|x| x))
53508        }
53509        self.client.send_query_and_decode::<
53510            fidl::encoding::EmptyPayload,
53511            fidl_fuchsia_unknown::CloseableCloseResult,
53512        >(
53513            (),
53514            0x5ac5d459ad7f657e,
53515            fidl::encoding::DynamicFlags::empty(),
53516            _decode,
53517        )
53518    }
53519
53520    type QueryResponseFut =
53521        fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>;
53522    fn r#query(&self) -> Self::QueryResponseFut {
53523        fn _decode(
53524            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53525        ) -> Result<Vec<u8>, fidl::Error> {
53526            let _response = fidl::client::decode_transaction_body::<
53527                fidl_fuchsia_unknown::QueryableQueryResponse,
53528                fidl::encoding::DefaultFuchsiaResourceDialect,
53529                0x2658edee9decfc06,
53530            >(_buf?)?;
53531            Ok(_response.protocol)
53532        }
53533        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, Vec<u8>>(
53534            (),
53535            0x2658edee9decfc06,
53536            fidl::encoding::DynamicFlags::empty(),
53537            _decode,
53538        )
53539    }
53540
53541    type SetReuseAddressResponseFut = fidl::client::QueryResponseFut<
53542        BaseSocketSetReuseAddressResult,
53543        fidl::encoding::DefaultFuchsiaResourceDialect,
53544    >;
53545    fn r#set_reuse_address(&self, mut value: bool) -> Self::SetReuseAddressResponseFut {
53546        fn _decode(
53547            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53548        ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
53549            let _response = fidl::client::decode_transaction_body::<
53550                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
53551                fidl::encoding::DefaultFuchsiaResourceDialect,
53552                0x1fd74ee8b9a4a876,
53553            >(_buf?)?;
53554            Ok(_response.map(|x| x))
53555        }
53556        self.client.send_query_and_decode::<
53557            BaseSocketSetReuseAddressRequest,
53558            BaseSocketSetReuseAddressResult,
53559        >(
53560            (value,),
53561            0x1fd74ee8b9a4a876,
53562            fidl::encoding::DynamicFlags::empty(),
53563            _decode,
53564        )
53565    }
53566
53567    type GetReuseAddressResponseFut = fidl::client::QueryResponseFut<
53568        BaseSocketGetReuseAddressResult,
53569        fidl::encoding::DefaultFuchsiaResourceDialect,
53570    >;
53571    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut {
53572        fn _decode(
53573            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53574        ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
53575            let _response = fidl::client::decode_transaction_body::<
53576                fidl::encoding::ResultType<
53577                    BaseSocketGetReuseAddressResponse,
53578                    fidl_fuchsia_posix::Errno,
53579                >,
53580                fidl::encoding::DefaultFuchsiaResourceDialect,
53581                0x67b7206b8d1bc0a5,
53582            >(_buf?)?;
53583            Ok(_response.map(|x| x.value))
53584        }
53585        self.client
53586            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReuseAddressResult>(
53587                (),
53588                0x67b7206b8d1bc0a5,
53589                fidl::encoding::DynamicFlags::empty(),
53590                _decode,
53591            )
53592    }
53593
53594    type GetErrorResponseFut = fidl::client::QueryResponseFut<
53595        BaseSocketGetErrorResult,
53596        fidl::encoding::DefaultFuchsiaResourceDialect,
53597    >;
53598    fn r#get_error(&self) -> Self::GetErrorResponseFut {
53599        fn _decode(
53600            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53601        ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
53602            let _response = fidl::client::decode_transaction_body::<
53603                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
53604                fidl::encoding::DefaultFuchsiaResourceDialect,
53605                0x5aad39b33e5f6ebb,
53606            >(_buf?)?;
53607            Ok(_response.map(|x| x))
53608        }
53609        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetErrorResult>(
53610            (),
53611            0x5aad39b33e5f6ebb,
53612            fidl::encoding::DynamicFlags::empty(),
53613            _decode,
53614        )
53615    }
53616
53617    type SetBroadcastResponseFut = fidl::client::QueryResponseFut<
53618        BaseSocketSetBroadcastResult,
53619        fidl::encoding::DefaultFuchsiaResourceDialect,
53620    >;
53621    fn r#set_broadcast(&self, mut value: bool) -> Self::SetBroadcastResponseFut {
53622        fn _decode(
53623            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53624        ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
53625            let _response = fidl::client::decode_transaction_body::<
53626                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
53627                fidl::encoding::DefaultFuchsiaResourceDialect,
53628                0x6023e081ce3cd947,
53629            >(_buf?)?;
53630            Ok(_response.map(|x| x))
53631        }
53632        self.client
53633            .send_query_and_decode::<BaseSocketSetBroadcastRequest, BaseSocketSetBroadcastResult>(
53634                (value,),
53635                0x6023e081ce3cd947,
53636                fidl::encoding::DynamicFlags::empty(),
53637                _decode,
53638            )
53639    }
53640
53641    type GetBroadcastResponseFut = fidl::client::QueryResponseFut<
53642        BaseSocketGetBroadcastResult,
53643        fidl::encoding::DefaultFuchsiaResourceDialect,
53644    >;
53645    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut {
53646        fn _decode(
53647            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53648        ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
53649            let _response = fidl::client::decode_transaction_body::<
53650                fidl::encoding::ResultType<
53651                    BaseSocketGetBroadcastResponse,
53652                    fidl_fuchsia_posix::Errno,
53653                >,
53654                fidl::encoding::DefaultFuchsiaResourceDialect,
53655                0x68796fc556f9780d,
53656            >(_buf?)?;
53657            Ok(_response.map(|x| x.value))
53658        }
53659        self.client
53660            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBroadcastResult>(
53661                (),
53662                0x68796fc556f9780d,
53663                fidl::encoding::DynamicFlags::empty(),
53664                _decode,
53665            )
53666    }
53667
53668    type SetSendBufferResponseFut = fidl::client::QueryResponseFut<
53669        BaseSocketSetSendBufferResult,
53670        fidl::encoding::DefaultFuchsiaResourceDialect,
53671    >;
53672    fn r#set_send_buffer(&self, mut value_bytes: u64) -> Self::SetSendBufferResponseFut {
53673        fn _decode(
53674            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53675        ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
53676            let _response = fidl::client::decode_transaction_body::<
53677                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
53678                fidl::encoding::DefaultFuchsiaResourceDialect,
53679                0x756eac32d73a7a70,
53680            >(_buf?)?;
53681            Ok(_response.map(|x| x))
53682        }
53683        self.client
53684            .send_query_and_decode::<BaseSocketSetSendBufferRequest, BaseSocketSetSendBufferResult>(
53685                (value_bytes,),
53686                0x756eac32d73a7a70,
53687                fidl::encoding::DynamicFlags::empty(),
53688                _decode,
53689            )
53690    }
53691
53692    type GetSendBufferResponseFut = fidl::client::QueryResponseFut<
53693        BaseSocketGetSendBufferResult,
53694        fidl::encoding::DefaultFuchsiaResourceDialect,
53695    >;
53696    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut {
53697        fn _decode(
53698            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53699        ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
53700            let _response = fidl::client::decode_transaction_body::<
53701                fidl::encoding::ResultType<
53702                    BaseSocketGetSendBufferResponse,
53703                    fidl_fuchsia_posix::Errno,
53704                >,
53705                fidl::encoding::DefaultFuchsiaResourceDialect,
53706                0x78a52fd9c7b2410b,
53707            >(_buf?)?;
53708            Ok(_response.map(|x| x.value_bytes))
53709        }
53710        self.client
53711            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetSendBufferResult>(
53712                (),
53713                0x78a52fd9c7b2410b,
53714                fidl::encoding::DynamicFlags::empty(),
53715                _decode,
53716            )
53717    }
53718
53719    type SetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
53720        BaseSocketSetReceiveBufferResult,
53721        fidl::encoding::DefaultFuchsiaResourceDialect,
53722    >;
53723    fn r#set_receive_buffer(&self, mut value_bytes: u64) -> Self::SetReceiveBufferResponseFut {
53724        fn _decode(
53725            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53726        ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
53727            let _response = fidl::client::decode_transaction_body::<
53728                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
53729                fidl::encoding::DefaultFuchsiaResourceDialect,
53730                0x6b0cf2f1919c7001,
53731            >(_buf?)?;
53732            Ok(_response.map(|x| x))
53733        }
53734        self.client.send_query_and_decode::<
53735            BaseSocketSetReceiveBufferRequest,
53736            BaseSocketSetReceiveBufferResult,
53737        >(
53738            (value_bytes,),
53739            0x6b0cf2f1919c7001,
53740            fidl::encoding::DynamicFlags::empty(),
53741            _decode,
53742        )
53743    }
53744
53745    type GetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
53746        BaseSocketGetReceiveBufferResult,
53747        fidl::encoding::DefaultFuchsiaResourceDialect,
53748    >;
53749    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut {
53750        fn _decode(
53751            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53752        ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
53753            let _response = fidl::client::decode_transaction_body::<
53754                fidl::encoding::ResultType<
53755                    BaseSocketGetReceiveBufferResponse,
53756                    fidl_fuchsia_posix::Errno,
53757                >,
53758                fidl::encoding::DefaultFuchsiaResourceDialect,
53759                0x14c1a4b64f709e5c,
53760            >(_buf?)?;
53761            Ok(_response.map(|x| x.value_bytes))
53762        }
53763        self.client.send_query_and_decode::<
53764            fidl::encoding::EmptyPayload,
53765            BaseSocketGetReceiveBufferResult,
53766        >(
53767            (),
53768            0x14c1a4b64f709e5c,
53769            fidl::encoding::DynamicFlags::empty(),
53770            _decode,
53771        )
53772    }
53773
53774    type SetKeepAliveResponseFut = fidl::client::QueryResponseFut<
53775        BaseSocketSetKeepAliveResult,
53776        fidl::encoding::DefaultFuchsiaResourceDialect,
53777    >;
53778    fn r#set_keep_alive(&self, mut value: bool) -> Self::SetKeepAliveResponseFut {
53779        fn _decode(
53780            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53781        ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
53782            let _response = fidl::client::decode_transaction_body::<
53783                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
53784                fidl::encoding::DefaultFuchsiaResourceDialect,
53785                0x572df8f0b920d2c7,
53786            >(_buf?)?;
53787            Ok(_response.map(|x| x))
53788        }
53789        self.client
53790            .send_query_and_decode::<BaseSocketSetKeepAliveRequest, BaseSocketSetKeepAliveResult>(
53791                (value,),
53792                0x572df8f0b920d2c7,
53793                fidl::encoding::DynamicFlags::empty(),
53794                _decode,
53795            )
53796    }
53797
53798    type GetKeepAliveResponseFut = fidl::client::QueryResponseFut<
53799        BaseSocketGetKeepAliveResult,
53800        fidl::encoding::DefaultFuchsiaResourceDialect,
53801    >;
53802    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut {
53803        fn _decode(
53804            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53805        ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
53806            let _response = fidl::client::decode_transaction_body::<
53807                fidl::encoding::ResultType<
53808                    BaseSocketGetKeepAliveResponse,
53809                    fidl_fuchsia_posix::Errno,
53810                >,
53811                fidl::encoding::DefaultFuchsiaResourceDialect,
53812                0x2dd29d3215f2c9d2,
53813            >(_buf?)?;
53814            Ok(_response.map(|x| x.value))
53815        }
53816        self.client
53817            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetKeepAliveResult>(
53818                (),
53819                0x2dd29d3215f2c9d2,
53820                fidl::encoding::DynamicFlags::empty(),
53821                _decode,
53822            )
53823    }
53824
53825    type SetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
53826        BaseSocketSetOutOfBandInlineResult,
53827        fidl::encoding::DefaultFuchsiaResourceDialect,
53828    >;
53829    fn r#set_out_of_band_inline(&self, mut value: bool) -> Self::SetOutOfBandInlineResponseFut {
53830        fn _decode(
53831            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53832        ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
53833            let _response = fidl::client::decode_transaction_body::<
53834                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
53835                fidl::encoding::DefaultFuchsiaResourceDialect,
53836                0x3ecb49968bee439,
53837            >(_buf?)?;
53838            Ok(_response.map(|x| x))
53839        }
53840        self.client.send_query_and_decode::<
53841            BaseSocketSetOutOfBandInlineRequest,
53842            BaseSocketSetOutOfBandInlineResult,
53843        >(
53844            (value,),
53845            0x3ecb49968bee439,
53846            fidl::encoding::DynamicFlags::empty(),
53847            _decode,
53848        )
53849    }
53850
53851    type GetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
53852        BaseSocketGetOutOfBandInlineResult,
53853        fidl::encoding::DefaultFuchsiaResourceDialect,
53854    >;
53855    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut {
53856        fn _decode(
53857            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53858        ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
53859            let _response = fidl::client::decode_transaction_body::<
53860                fidl::encoding::ResultType<
53861                    BaseSocketGetOutOfBandInlineResponse,
53862                    fidl_fuchsia_posix::Errno,
53863                >,
53864                fidl::encoding::DefaultFuchsiaResourceDialect,
53865                0x348c1ab3aeca1745,
53866            >(_buf?)?;
53867            Ok(_response.map(|x| x.value))
53868        }
53869        self.client.send_query_and_decode::<
53870            fidl::encoding::EmptyPayload,
53871            BaseSocketGetOutOfBandInlineResult,
53872        >(
53873            (),
53874            0x348c1ab3aeca1745,
53875            fidl::encoding::DynamicFlags::empty(),
53876            _decode,
53877        )
53878    }
53879
53880    type SetNoCheckResponseFut = fidl::client::QueryResponseFut<
53881        BaseSocketSetNoCheckResult,
53882        fidl::encoding::DefaultFuchsiaResourceDialect,
53883    >;
53884    fn r#set_no_check(&self, mut value: bool) -> Self::SetNoCheckResponseFut {
53885        fn _decode(
53886            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53887        ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
53888            let _response = fidl::client::decode_transaction_body::<
53889                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
53890                fidl::encoding::DefaultFuchsiaResourceDialect,
53891                0x6bbf00c53a4c78c2,
53892            >(_buf?)?;
53893            Ok(_response.map(|x| x))
53894        }
53895        self.client
53896            .send_query_and_decode::<BaseSocketSetNoCheckRequest, BaseSocketSetNoCheckResult>(
53897                (value,),
53898                0x6bbf00c53a4c78c2,
53899                fidl::encoding::DynamicFlags::empty(),
53900                _decode,
53901            )
53902    }
53903
53904    type GetNoCheckResponseFut = fidl::client::QueryResponseFut<
53905        BaseSocketGetNoCheckResult,
53906        fidl::encoding::DefaultFuchsiaResourceDialect,
53907    >;
53908    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut {
53909        fn _decode(
53910            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53911        ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
53912            let _response = fidl::client::decode_transaction_body::<
53913                fidl::encoding::ResultType<BaseSocketGetNoCheckResponse, fidl_fuchsia_posix::Errno>,
53914                fidl::encoding::DefaultFuchsiaResourceDialect,
53915                0x2cd4249286417694,
53916            >(_buf?)?;
53917            Ok(_response.map(|x| x.value))
53918        }
53919        self.client
53920            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetNoCheckResult>(
53921                (),
53922                0x2cd4249286417694,
53923                fidl::encoding::DynamicFlags::empty(),
53924                _decode,
53925            )
53926    }
53927
53928    type SetLingerResponseFut = fidl::client::QueryResponseFut<
53929        BaseSocketSetLingerResult,
53930        fidl::encoding::DefaultFuchsiaResourceDialect,
53931    >;
53932    fn r#set_linger(&self, mut linger: bool, mut length_secs: u32) -> Self::SetLingerResponseFut {
53933        fn _decode(
53934            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53935        ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
53936            let _response = fidl::client::decode_transaction_body::<
53937                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
53938                fidl::encoding::DefaultFuchsiaResourceDialect,
53939                0x45386351246e998e,
53940            >(_buf?)?;
53941            Ok(_response.map(|x| x))
53942        }
53943        self.client.send_query_and_decode::<BaseSocketSetLingerRequest, BaseSocketSetLingerResult>(
53944            (linger, length_secs),
53945            0x45386351246e998e,
53946            fidl::encoding::DynamicFlags::empty(),
53947            _decode,
53948        )
53949    }
53950
53951    type GetLingerResponseFut = fidl::client::QueryResponseFut<
53952        BaseSocketGetLingerResult,
53953        fidl::encoding::DefaultFuchsiaResourceDialect,
53954    >;
53955    fn r#get_linger(&self) -> Self::GetLingerResponseFut {
53956        fn _decode(
53957            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53958        ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
53959            let _response = fidl::client::decode_transaction_body::<
53960                fidl::encoding::ResultType<BaseSocketGetLingerResponse, fidl_fuchsia_posix::Errno>,
53961                fidl::encoding::DefaultFuchsiaResourceDialect,
53962                0x48eb20fc5ccb0e45,
53963            >(_buf?)?;
53964            Ok(_response.map(|x| (x.linger, x.length_secs)))
53965        }
53966        self.client
53967            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetLingerResult>(
53968                (),
53969                0x48eb20fc5ccb0e45,
53970                fidl::encoding::DynamicFlags::empty(),
53971                _decode,
53972            )
53973    }
53974
53975    type SetReusePortResponseFut = fidl::client::QueryResponseFut<
53976        BaseSocketSetReusePortResult,
53977        fidl::encoding::DefaultFuchsiaResourceDialect,
53978    >;
53979    fn r#set_reuse_port(&self, mut value: bool) -> Self::SetReusePortResponseFut {
53980        fn _decode(
53981            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53982        ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
53983            let _response = fidl::client::decode_transaction_body::<
53984                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
53985                fidl::encoding::DefaultFuchsiaResourceDialect,
53986                0x24dd3e5cb36d9ccb,
53987            >(_buf?)?;
53988            Ok(_response.map(|x| x))
53989        }
53990        self.client
53991            .send_query_and_decode::<BaseSocketSetReusePortRequest, BaseSocketSetReusePortResult>(
53992                (value,),
53993                0x24dd3e5cb36d9ccb,
53994                fidl::encoding::DynamicFlags::empty(),
53995                _decode,
53996            )
53997    }
53998
53999    type GetReusePortResponseFut = fidl::client::QueryResponseFut<
54000        BaseSocketGetReusePortResult,
54001        fidl::encoding::DefaultFuchsiaResourceDialect,
54002    >;
54003    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut {
54004        fn _decode(
54005            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54006        ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
54007            let _response = fidl::client::decode_transaction_body::<
54008                fidl::encoding::ResultType<
54009                    BaseSocketGetReusePortResponse,
54010                    fidl_fuchsia_posix::Errno,
54011                >,
54012                fidl::encoding::DefaultFuchsiaResourceDialect,
54013                0x7a112c1ab54ff828,
54014            >(_buf?)?;
54015            Ok(_response.map(|x| x.value))
54016        }
54017        self.client
54018            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReusePortResult>(
54019                (),
54020                0x7a112c1ab54ff828,
54021                fidl::encoding::DynamicFlags::empty(),
54022                _decode,
54023            )
54024    }
54025
54026    type GetAcceptConnResponseFut = fidl::client::QueryResponseFut<
54027        BaseSocketGetAcceptConnResult,
54028        fidl::encoding::DefaultFuchsiaResourceDialect,
54029    >;
54030    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut {
54031        fn _decode(
54032            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54033        ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
54034            let _response = fidl::client::decode_transaction_body::<
54035                fidl::encoding::ResultType<
54036                    BaseSocketGetAcceptConnResponse,
54037                    fidl_fuchsia_posix::Errno,
54038                >,
54039                fidl::encoding::DefaultFuchsiaResourceDialect,
54040                0x67ce6db6c2ec8966,
54041            >(_buf?)?;
54042            Ok(_response.map(|x| x.value))
54043        }
54044        self.client
54045            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetAcceptConnResult>(
54046                (),
54047                0x67ce6db6c2ec8966,
54048                fidl::encoding::DynamicFlags::empty(),
54049                _decode,
54050            )
54051    }
54052
54053    type SetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
54054        BaseSocketSetBindToDeviceResult,
54055        fidl::encoding::DefaultFuchsiaResourceDialect,
54056    >;
54057    fn r#set_bind_to_device(&self, mut value: &str) -> Self::SetBindToDeviceResponseFut {
54058        fn _decode(
54059            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54060        ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
54061            let _response = fidl::client::decode_transaction_body::<
54062                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54063                fidl::encoding::DefaultFuchsiaResourceDialect,
54064                0x2118b483f28aafc4,
54065            >(_buf?)?;
54066            Ok(_response.map(|x| x))
54067        }
54068        self.client.send_query_and_decode::<
54069            BaseSocketSetBindToDeviceRequest,
54070            BaseSocketSetBindToDeviceResult,
54071        >(
54072            (value,),
54073            0x2118b483f28aafc4,
54074            fidl::encoding::DynamicFlags::empty(),
54075            _decode,
54076        )
54077    }
54078
54079    type GetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
54080        BaseSocketGetBindToDeviceResult,
54081        fidl::encoding::DefaultFuchsiaResourceDialect,
54082    >;
54083    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut {
54084        fn _decode(
54085            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54086        ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
54087            let _response = fidl::client::decode_transaction_body::<
54088                fidl::encoding::ResultType<
54089                    BaseSocketGetBindToDeviceResponse,
54090                    fidl_fuchsia_posix::Errno,
54091                >,
54092                fidl::encoding::DefaultFuchsiaResourceDialect,
54093                0x1ab1fbf0ef7906c8,
54094            >(_buf?)?;
54095            Ok(_response.map(|x| x.value))
54096        }
54097        self.client
54098            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBindToDeviceResult>(
54099                (),
54100                0x1ab1fbf0ef7906c8,
54101                fidl::encoding::DynamicFlags::empty(),
54102                _decode,
54103            )
54104    }
54105
54106    type SetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
54107        BaseSocketSetBindToInterfaceIndexResult,
54108        fidl::encoding::DefaultFuchsiaResourceDialect,
54109    >;
54110    fn r#set_bind_to_interface_index(
54111        &self,
54112        mut value: u64,
54113    ) -> Self::SetBindToInterfaceIndexResponseFut {
54114        fn _decode(
54115            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54116        ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
54117            let _response = fidl::client::decode_transaction_body::<
54118                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54119                fidl::encoding::DefaultFuchsiaResourceDialect,
54120                0x6e387a0def00821,
54121            >(_buf?)?;
54122            Ok(_response.map(|x| x))
54123        }
54124        self.client.send_query_and_decode::<
54125            BaseSocketSetBindToInterfaceIndexRequest,
54126            BaseSocketSetBindToInterfaceIndexResult,
54127        >(
54128            (value,),
54129            0x6e387a0def00821,
54130            fidl::encoding::DynamicFlags::empty(),
54131            _decode,
54132        )
54133    }
54134
54135    type GetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
54136        BaseSocketGetBindToInterfaceIndexResult,
54137        fidl::encoding::DefaultFuchsiaResourceDialect,
54138    >;
54139    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut {
54140        fn _decode(
54141            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54142        ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
54143            let _response = fidl::client::decode_transaction_body::<
54144                fidl::encoding::ResultType<
54145                    BaseSocketGetBindToInterfaceIndexResponse,
54146                    fidl_fuchsia_posix::Errno,
54147                >,
54148                fidl::encoding::DefaultFuchsiaResourceDialect,
54149                0x59c31dd3e3078295,
54150            >(_buf?)?;
54151            Ok(_response.map(|x| x.value))
54152        }
54153        self.client.send_query_and_decode::<
54154            fidl::encoding::EmptyPayload,
54155            BaseSocketGetBindToInterfaceIndexResult,
54156        >(
54157            (),
54158            0x59c31dd3e3078295,
54159            fidl::encoding::DynamicFlags::empty(),
54160            _decode,
54161        )
54162    }
54163
54164    type SetTimestampResponseFut = fidl::client::QueryResponseFut<
54165        BaseSocketSetTimestampResult,
54166        fidl::encoding::DefaultFuchsiaResourceDialect,
54167    >;
54168    fn r#set_timestamp(&self, mut value: TimestampOption) -> Self::SetTimestampResponseFut {
54169        fn _decode(
54170            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54171        ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
54172            let _response = fidl::client::decode_transaction_body::<
54173                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54174                fidl::encoding::DefaultFuchsiaResourceDialect,
54175                0x285d6516c263d839,
54176            >(_buf?)?;
54177            Ok(_response.map(|x| x))
54178        }
54179        self.client
54180            .send_query_and_decode::<BaseSocketSetTimestampRequest, BaseSocketSetTimestampResult>(
54181                (value,),
54182                0x285d6516c263d839,
54183                fidl::encoding::DynamicFlags::empty(),
54184                _decode,
54185            )
54186    }
54187
54188    type GetTimestampResponseFut = fidl::client::QueryResponseFut<
54189        BaseSocketGetTimestampResult,
54190        fidl::encoding::DefaultFuchsiaResourceDialect,
54191    >;
54192    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut {
54193        fn _decode(
54194            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54195        ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
54196            let _response = fidl::client::decode_transaction_body::<
54197                fidl::encoding::ResultType<
54198                    BaseSocketGetTimestampResponse,
54199                    fidl_fuchsia_posix::Errno,
54200                >,
54201                fidl::encoding::DefaultFuchsiaResourceDialect,
54202                0x49f2fffbbcc2bd27,
54203            >(_buf?)?;
54204            Ok(_response.map(|x| x.value))
54205        }
54206        self.client
54207            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetTimestampResult>(
54208                (),
54209                0x49f2fffbbcc2bd27,
54210                fidl::encoding::DynamicFlags::empty(),
54211                _decode,
54212            )
54213    }
54214
54215    type SetMarkResponseFut = fidl::client::QueryResponseFut<
54216        BaseSocketSetMarkResult,
54217        fidl::encoding::DefaultFuchsiaResourceDialect,
54218    >;
54219    fn r#set_mark(
54220        &self,
54221        mut domain: fidl_fuchsia_net::MarkDomain,
54222        mut mark: &OptionalUint32,
54223    ) -> Self::SetMarkResponseFut {
54224        fn _decode(
54225            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54226        ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
54227            let _response = fidl::client::decode_transaction_body::<
54228                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54229                fidl::encoding::DefaultFuchsiaResourceDialect,
54230                0x6ead6de09f653236,
54231            >(_buf?)?;
54232            Ok(_response.map(|x| x))
54233        }
54234        self.client.send_query_and_decode::<BaseSocketSetMarkRequest, BaseSocketSetMarkResult>(
54235            (domain, mark),
54236            0x6ead6de09f653236,
54237            fidl::encoding::DynamicFlags::empty(),
54238            _decode,
54239        )
54240    }
54241
54242    type GetMarkResponseFut = fidl::client::QueryResponseFut<
54243        BaseSocketGetMarkResult,
54244        fidl::encoding::DefaultFuchsiaResourceDialect,
54245    >;
54246    fn r#get_mark(&self, mut domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut {
54247        fn _decode(
54248            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54249        ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
54250            let _response = fidl::client::decode_transaction_body::<
54251                fidl::encoding::ResultType<BaseSocketGetMarkResponse, fidl_fuchsia_posix::Errno>,
54252                fidl::encoding::DefaultFuchsiaResourceDialect,
54253                0x57a2752c61d93d47,
54254            >(_buf?)?;
54255            Ok(_response.map(|x| x.mark))
54256        }
54257        self.client.send_query_and_decode::<BaseSocketGetMarkRequest, BaseSocketGetMarkResult>(
54258            (domain,),
54259            0x57a2752c61d93d47,
54260            fidl::encoding::DynamicFlags::empty(),
54261            _decode,
54262        )
54263    }
54264
54265    type GetCookieResponseFut = fidl::client::QueryResponseFut<
54266        BaseSocketGetCookieResult,
54267        fidl::encoding::DefaultFuchsiaResourceDialect,
54268    >;
54269    fn r#get_cookie(&self) -> Self::GetCookieResponseFut {
54270        fn _decode(
54271            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54272        ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
54273            let _response = fidl::client::decode_transaction_body::<
54274                fidl::encoding::ResultType<BaseSocketGetCookieResponse, fidl_fuchsia_posix::Errno>,
54275                fidl::encoding::DefaultFuchsiaResourceDialect,
54276                0x2c2f47fd8f924e52,
54277            >(_buf?)?;
54278            Ok(_response.map(|x| x.value))
54279        }
54280        self.client
54281            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetCookieResult>(
54282                (),
54283                0x2c2f47fd8f924e52,
54284                fidl::encoding::DynamicFlags::empty(),
54285                _decode,
54286            )
54287    }
54288
54289    type BindResponseFut = fidl::client::QueryResponseFut<
54290        BaseNetworkSocketBindResult,
54291        fidl::encoding::DefaultFuchsiaResourceDialect,
54292    >;
54293    fn r#bind(&self, mut addr: &fidl_fuchsia_net::SocketAddress) -> Self::BindResponseFut {
54294        fn _decode(
54295            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54296        ) -> Result<BaseNetworkSocketBindResult, fidl::Error> {
54297            let _response = fidl::client::decode_transaction_body::<
54298                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54299                fidl::encoding::DefaultFuchsiaResourceDialect,
54300                0x4bc6400ae92125d,
54301            >(_buf?)?;
54302            Ok(_response.map(|x| x))
54303        }
54304        self.client
54305            .send_query_and_decode::<BaseNetworkSocketBindRequest, BaseNetworkSocketBindResult>(
54306                (addr,),
54307                0x4bc6400ae92125d,
54308                fidl::encoding::DynamicFlags::empty(),
54309                _decode,
54310            )
54311    }
54312
54313    type ConnectResponseFut = fidl::client::QueryResponseFut<
54314        BaseNetworkSocketConnectResult,
54315        fidl::encoding::DefaultFuchsiaResourceDialect,
54316    >;
54317    fn r#connect(&self, mut addr: &fidl_fuchsia_net::SocketAddress) -> Self::ConnectResponseFut {
54318        fn _decode(
54319            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54320        ) -> Result<BaseNetworkSocketConnectResult, fidl::Error> {
54321            let _response = fidl::client::decode_transaction_body::<
54322                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54323                fidl::encoding::DefaultFuchsiaResourceDialect,
54324                0x5f05f19bfdd38871,
54325            >(_buf?)?;
54326            Ok(_response.map(|x| x))
54327        }
54328        self.client.send_query_and_decode::<
54329            BaseNetworkSocketConnectRequest,
54330            BaseNetworkSocketConnectResult,
54331        >(
54332            (addr,),
54333            0x5f05f19bfdd38871,
54334            fidl::encoding::DynamicFlags::empty(),
54335            _decode,
54336        )
54337    }
54338
54339    type DisconnectResponseFut = fidl::client::QueryResponseFut<
54340        BaseNetworkSocketDisconnectResult,
54341        fidl::encoding::DefaultFuchsiaResourceDialect,
54342    >;
54343    fn r#disconnect(&self) -> Self::DisconnectResponseFut {
54344        fn _decode(
54345            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54346        ) -> Result<BaseNetworkSocketDisconnectResult, fidl::Error> {
54347            let _response = fidl::client::decode_transaction_body::<
54348                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54349                fidl::encoding::DefaultFuchsiaResourceDialect,
54350                0x74e63b91f7b29b2,
54351            >(_buf?)?;
54352            Ok(_response.map(|x| x))
54353        }
54354        self.client.send_query_and_decode::<
54355            fidl::encoding::EmptyPayload,
54356            BaseNetworkSocketDisconnectResult,
54357        >(
54358            (),
54359            0x74e63b91f7b29b2,
54360            fidl::encoding::DynamicFlags::empty(),
54361            _decode,
54362        )
54363    }
54364
54365    type GetSockNameResponseFut = fidl::client::QueryResponseFut<
54366        BaseNetworkSocketGetSockNameResult,
54367        fidl::encoding::DefaultFuchsiaResourceDialect,
54368    >;
54369    fn r#get_sock_name(&self) -> Self::GetSockNameResponseFut {
54370        fn _decode(
54371            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54372        ) -> Result<BaseNetworkSocketGetSockNameResult, fidl::Error> {
54373            let _response = fidl::client::decode_transaction_body::<
54374                fidl::encoding::ResultType<
54375                    BaseNetworkSocketGetSockNameResponse,
54376                    fidl_fuchsia_posix::Errno,
54377                >,
54378                fidl::encoding::DefaultFuchsiaResourceDialect,
54379                0x475f23f84a1a4f85,
54380            >(_buf?)?;
54381            Ok(_response.map(|x| x.addr))
54382        }
54383        self.client.send_query_and_decode::<
54384            fidl::encoding::EmptyPayload,
54385            BaseNetworkSocketGetSockNameResult,
54386        >(
54387            (),
54388            0x475f23f84a1a4f85,
54389            fidl::encoding::DynamicFlags::empty(),
54390            _decode,
54391        )
54392    }
54393
54394    type GetPeerNameResponseFut = fidl::client::QueryResponseFut<
54395        BaseNetworkSocketGetPeerNameResult,
54396        fidl::encoding::DefaultFuchsiaResourceDialect,
54397    >;
54398    fn r#get_peer_name(&self) -> Self::GetPeerNameResponseFut {
54399        fn _decode(
54400            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54401        ) -> Result<BaseNetworkSocketGetPeerNameResult, fidl::Error> {
54402            let _response = fidl::client::decode_transaction_body::<
54403                fidl::encoding::ResultType<
54404                    BaseNetworkSocketGetPeerNameResponse,
54405                    fidl_fuchsia_posix::Errno,
54406                >,
54407                fidl::encoding::DefaultFuchsiaResourceDialect,
54408                0x1ffecf4bd5b6432e,
54409            >(_buf?)?;
54410            Ok(_response.map(|x| x.addr))
54411        }
54412        self.client.send_query_and_decode::<
54413            fidl::encoding::EmptyPayload,
54414            BaseNetworkSocketGetPeerNameResult,
54415        >(
54416            (),
54417            0x1ffecf4bd5b6432e,
54418            fidl::encoding::DynamicFlags::empty(),
54419            _decode,
54420        )
54421    }
54422
54423    type ShutdownResponseFut = fidl::client::QueryResponseFut<
54424        BaseNetworkSocketShutdownResult,
54425        fidl::encoding::DefaultFuchsiaResourceDialect,
54426    >;
54427    fn r#shutdown(&self, mut mode: ShutdownMode) -> Self::ShutdownResponseFut {
54428        fn _decode(
54429            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54430        ) -> Result<BaseNetworkSocketShutdownResult, fidl::Error> {
54431            let _response = fidl::client::decode_transaction_body::<
54432                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54433                fidl::encoding::DefaultFuchsiaResourceDialect,
54434                0x247f38b6db68c336,
54435            >(_buf?)?;
54436            Ok(_response.map(|x| x))
54437        }
54438        self.client.send_query_and_decode::<
54439            BaseNetworkSocketShutdownRequest,
54440            BaseNetworkSocketShutdownResult,
54441        >(
54442            (mode,),
54443            0x247f38b6db68c336,
54444            fidl::encoding::DynamicFlags::empty(),
54445            _decode,
54446        )
54447    }
54448
54449    type SetIpTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
54450        BaseNetworkSocketSetIpTypeOfServiceResult,
54451        fidl::encoding::DefaultFuchsiaResourceDialect,
54452    >;
54453    fn r#set_ip_type_of_service(&self, mut value: u8) -> Self::SetIpTypeOfServiceResponseFut {
54454        fn _decode(
54455            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54456        ) -> Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error> {
54457            let _response = fidl::client::decode_transaction_body::<
54458                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54459                fidl::encoding::DefaultFuchsiaResourceDialect,
54460                0x995c600475b6d46,
54461            >(_buf?)?;
54462            Ok(_response.map(|x| x))
54463        }
54464        self.client.send_query_and_decode::<
54465            BaseNetworkSocketSetIpTypeOfServiceRequest,
54466            BaseNetworkSocketSetIpTypeOfServiceResult,
54467        >(
54468            (value,),
54469            0x995c600475b6d46,
54470            fidl::encoding::DynamicFlags::empty(),
54471            _decode,
54472        )
54473    }
54474
54475    type GetIpTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
54476        BaseNetworkSocketGetIpTypeOfServiceResult,
54477        fidl::encoding::DefaultFuchsiaResourceDialect,
54478    >;
54479    fn r#get_ip_type_of_service(&self) -> Self::GetIpTypeOfServiceResponseFut {
54480        fn _decode(
54481            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54482        ) -> Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error> {
54483            let _response = fidl::client::decode_transaction_body::<
54484                fidl::encoding::ResultType<
54485                    BaseNetworkSocketGetIpTypeOfServiceResponse,
54486                    fidl_fuchsia_posix::Errno,
54487                >,
54488                fidl::encoding::DefaultFuchsiaResourceDialect,
54489                0x3814a04259f75fcb,
54490            >(_buf?)?;
54491            Ok(_response.map(|x| x.value))
54492        }
54493        self.client.send_query_and_decode::<
54494            fidl::encoding::EmptyPayload,
54495            BaseNetworkSocketGetIpTypeOfServiceResult,
54496        >(
54497            (),
54498            0x3814a04259f75fcb,
54499            fidl::encoding::DynamicFlags::empty(),
54500            _decode,
54501        )
54502    }
54503
54504    type SetIpTtlResponseFut = fidl::client::QueryResponseFut<
54505        BaseNetworkSocketSetIpTtlResult,
54506        fidl::encoding::DefaultFuchsiaResourceDialect,
54507    >;
54508    fn r#set_ip_ttl(&self, mut value: &OptionalUint8) -> Self::SetIpTtlResponseFut {
54509        fn _decode(
54510            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54511        ) -> Result<BaseNetworkSocketSetIpTtlResult, fidl::Error> {
54512            let _response = fidl::client::decode_transaction_body::<
54513                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54514                fidl::encoding::DefaultFuchsiaResourceDialect,
54515                0x29e2424b433ae1ef,
54516            >(_buf?)?;
54517            Ok(_response.map(|x| x))
54518        }
54519        self.client.send_query_and_decode::<
54520            BaseNetworkSocketSetIpTtlRequest,
54521            BaseNetworkSocketSetIpTtlResult,
54522        >(
54523            (value,),
54524            0x29e2424b433ae1ef,
54525            fidl::encoding::DynamicFlags::empty(),
54526            _decode,
54527        )
54528    }
54529
54530    type GetIpTtlResponseFut = fidl::client::QueryResponseFut<
54531        BaseNetworkSocketGetIpTtlResult,
54532        fidl::encoding::DefaultFuchsiaResourceDialect,
54533    >;
54534    fn r#get_ip_ttl(&self) -> Self::GetIpTtlResponseFut {
54535        fn _decode(
54536            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54537        ) -> Result<BaseNetworkSocketGetIpTtlResult, fidl::Error> {
54538            let _response = fidl::client::decode_transaction_body::<
54539                fidl::encoding::ResultType<
54540                    BaseNetworkSocketGetIpTtlResponse,
54541                    fidl_fuchsia_posix::Errno,
54542                >,
54543                fidl::encoding::DefaultFuchsiaResourceDialect,
54544                0x47e47fa1f24da471,
54545            >(_buf?)?;
54546            Ok(_response.map(|x| x.value))
54547        }
54548        self.client
54549            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseNetworkSocketGetIpTtlResult>(
54550                (),
54551                0x47e47fa1f24da471,
54552                fidl::encoding::DynamicFlags::empty(),
54553                _decode,
54554            )
54555    }
54556
54557    type SetIpPacketInfoResponseFut = fidl::client::QueryResponseFut<
54558        BaseNetworkSocketSetIpPacketInfoResult,
54559        fidl::encoding::DefaultFuchsiaResourceDialect,
54560    >;
54561    fn r#set_ip_packet_info(&self, mut value: bool) -> Self::SetIpPacketInfoResponseFut {
54562        fn _decode(
54563            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54564        ) -> Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error> {
54565            let _response = fidl::client::decode_transaction_body::<
54566                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54567                fidl::encoding::DefaultFuchsiaResourceDialect,
54568                0x392d16bee20c0e16,
54569            >(_buf?)?;
54570            Ok(_response.map(|x| x))
54571        }
54572        self.client.send_query_and_decode::<
54573            BaseNetworkSocketSetIpPacketInfoRequest,
54574            BaseNetworkSocketSetIpPacketInfoResult,
54575        >(
54576            (value,),
54577            0x392d16bee20c0e16,
54578            fidl::encoding::DynamicFlags::empty(),
54579            _decode,
54580        )
54581    }
54582
54583    type GetIpPacketInfoResponseFut = fidl::client::QueryResponseFut<
54584        BaseNetworkSocketGetIpPacketInfoResult,
54585        fidl::encoding::DefaultFuchsiaResourceDialect,
54586    >;
54587    fn r#get_ip_packet_info(&self) -> Self::GetIpPacketInfoResponseFut {
54588        fn _decode(
54589            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54590        ) -> Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error> {
54591            let _response = fidl::client::decode_transaction_body::<
54592                fidl::encoding::ResultType<
54593                    BaseNetworkSocketGetIpPacketInfoResponse,
54594                    fidl_fuchsia_posix::Errno,
54595                >,
54596                fidl::encoding::DefaultFuchsiaResourceDialect,
54597                0x54b505f242280740,
54598            >(_buf?)?;
54599            Ok(_response.map(|x| x.value))
54600        }
54601        self.client.send_query_and_decode::<
54602            fidl::encoding::EmptyPayload,
54603            BaseNetworkSocketGetIpPacketInfoResult,
54604        >(
54605            (),
54606            0x54b505f242280740,
54607            fidl::encoding::DynamicFlags::empty(),
54608            _decode,
54609        )
54610    }
54611
54612    type SetIpReceiveTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
54613        BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
54614        fidl::encoding::DefaultFuchsiaResourceDialect,
54615    >;
54616    fn r#set_ip_receive_type_of_service(
54617        &self,
54618        mut value: bool,
54619    ) -> Self::SetIpReceiveTypeOfServiceResponseFut {
54620        fn _decode(
54621            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54622        ) -> Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error> {
54623            let _response = fidl::client::decode_transaction_body::<
54624                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54625                fidl::encoding::DefaultFuchsiaResourceDialect,
54626                0x6c4f6714995f84ef,
54627            >(_buf?)?;
54628            Ok(_response.map(|x| x))
54629        }
54630        self.client.send_query_and_decode::<
54631            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
54632            BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
54633        >(
54634            (value,),
54635            0x6c4f6714995f84ef,
54636            fidl::encoding::DynamicFlags::empty(),
54637            _decode,
54638        )
54639    }
54640
54641    type GetIpReceiveTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
54642        BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
54643        fidl::encoding::DefaultFuchsiaResourceDialect,
54644    >;
54645    fn r#get_ip_receive_type_of_service(&self) -> Self::GetIpReceiveTypeOfServiceResponseFut {
54646        fn _decode(
54647            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54648        ) -> Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error> {
54649            let _response = fidl::client::decode_transaction_body::<
54650                fidl::encoding::ResultType<
54651                    BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
54652                    fidl_fuchsia_posix::Errno,
54653                >,
54654                fidl::encoding::DefaultFuchsiaResourceDialect,
54655                0x4158ba7dc2795960,
54656            >(_buf?)?;
54657            Ok(_response.map(|x| x.value))
54658        }
54659        self.client.send_query_and_decode::<
54660            fidl::encoding::EmptyPayload,
54661            BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
54662        >(
54663            (),
54664            0x4158ba7dc2795960,
54665            fidl::encoding::DynamicFlags::empty(),
54666            _decode,
54667        )
54668    }
54669
54670    type SetIpReceiveTtlResponseFut = fidl::client::QueryResponseFut<
54671        BaseNetworkSocketSetIpReceiveTtlResult,
54672        fidl::encoding::DefaultFuchsiaResourceDialect,
54673    >;
54674    fn r#set_ip_receive_ttl(&self, mut value: bool) -> Self::SetIpReceiveTtlResponseFut {
54675        fn _decode(
54676            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54677        ) -> Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error> {
54678            let _response = fidl::client::decode_transaction_body::<
54679                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54680                fidl::encoding::DefaultFuchsiaResourceDialect,
54681                0x46f15be0ce0ab82b,
54682            >(_buf?)?;
54683            Ok(_response.map(|x| x))
54684        }
54685        self.client.send_query_and_decode::<
54686            BaseNetworkSocketSetIpReceiveTtlRequest,
54687            BaseNetworkSocketSetIpReceiveTtlResult,
54688        >(
54689            (value,),
54690            0x46f15be0ce0ab82b,
54691            fidl::encoding::DynamicFlags::empty(),
54692            _decode,
54693        )
54694    }
54695
54696    type GetIpReceiveTtlResponseFut = fidl::client::QueryResponseFut<
54697        BaseNetworkSocketGetIpReceiveTtlResult,
54698        fidl::encoding::DefaultFuchsiaResourceDialect,
54699    >;
54700    fn r#get_ip_receive_ttl(&self) -> Self::GetIpReceiveTtlResponseFut {
54701        fn _decode(
54702            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54703        ) -> Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error> {
54704            let _response = fidl::client::decode_transaction_body::<
54705                fidl::encoding::ResultType<
54706                    BaseNetworkSocketGetIpReceiveTtlResponse,
54707                    fidl_fuchsia_posix::Errno,
54708                >,
54709                fidl::encoding::DefaultFuchsiaResourceDialect,
54710                0x678ddd5a5dfa2eb5,
54711            >(_buf?)?;
54712            Ok(_response.map(|x| x.value))
54713        }
54714        self.client.send_query_and_decode::<
54715            fidl::encoding::EmptyPayload,
54716            BaseNetworkSocketGetIpReceiveTtlResult,
54717        >(
54718            (),
54719            0x678ddd5a5dfa2eb5,
54720            fidl::encoding::DynamicFlags::empty(),
54721            _decode,
54722        )
54723    }
54724
54725    type SetIpMulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
54726        BaseNetworkSocketSetIpMulticastInterfaceResult,
54727        fidl::encoding::DefaultFuchsiaResourceDialect,
54728    >;
54729    fn r#set_ip_multicast_interface(
54730        &self,
54731        mut iface: u64,
54732        mut address: &fidl_fuchsia_net::Ipv4Address,
54733    ) -> Self::SetIpMulticastInterfaceResponseFut {
54734        fn _decode(
54735            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54736        ) -> Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error> {
54737            let _response = fidl::client::decode_transaction_body::<
54738                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54739                fidl::encoding::DefaultFuchsiaResourceDialect,
54740                0x752fbfa9b12befe,
54741            >(_buf?)?;
54742            Ok(_response.map(|x| x))
54743        }
54744        self.client.send_query_and_decode::<
54745            BaseNetworkSocketSetIpMulticastInterfaceRequest,
54746            BaseNetworkSocketSetIpMulticastInterfaceResult,
54747        >(
54748            (iface, address,),
54749            0x752fbfa9b12befe,
54750            fidl::encoding::DynamicFlags::empty(),
54751            _decode,
54752        )
54753    }
54754
54755    type GetIpMulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
54756        BaseNetworkSocketGetIpMulticastInterfaceResult,
54757        fidl::encoding::DefaultFuchsiaResourceDialect,
54758    >;
54759    fn r#get_ip_multicast_interface(&self) -> Self::GetIpMulticastInterfaceResponseFut {
54760        fn _decode(
54761            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54762        ) -> Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error> {
54763            let _response = fidl::client::decode_transaction_body::<
54764                fidl::encoding::ResultType<
54765                    BaseNetworkSocketGetIpMulticastInterfaceResponse,
54766                    fidl_fuchsia_posix::Errno,
54767                >,
54768                fidl::encoding::DefaultFuchsiaResourceDialect,
54769                0x320bd14c4df046c4,
54770            >(_buf?)?;
54771            Ok(_response.map(|x| x.value))
54772        }
54773        self.client.send_query_and_decode::<
54774            fidl::encoding::EmptyPayload,
54775            BaseNetworkSocketGetIpMulticastInterfaceResult,
54776        >(
54777            (),
54778            0x320bd14c4df046c4,
54779            fidl::encoding::DynamicFlags::empty(),
54780            _decode,
54781        )
54782    }
54783
54784    type SetIpMulticastTtlResponseFut = fidl::client::QueryResponseFut<
54785        BaseNetworkSocketSetIpMulticastTtlResult,
54786        fidl::encoding::DefaultFuchsiaResourceDialect,
54787    >;
54788    fn r#set_ip_multicast_ttl(
54789        &self,
54790        mut value: &OptionalUint8,
54791    ) -> Self::SetIpMulticastTtlResponseFut {
54792        fn _decode(
54793            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54794        ) -> Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error> {
54795            let _response = fidl::client::decode_transaction_body::<
54796                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54797                fidl::encoding::DefaultFuchsiaResourceDialect,
54798                0x63134d53772916a1,
54799            >(_buf?)?;
54800            Ok(_response.map(|x| x))
54801        }
54802        self.client.send_query_and_decode::<
54803            BaseNetworkSocketSetIpMulticastTtlRequest,
54804            BaseNetworkSocketSetIpMulticastTtlResult,
54805        >(
54806            (value,),
54807            0x63134d53772916a1,
54808            fidl::encoding::DynamicFlags::empty(),
54809            _decode,
54810        )
54811    }
54812
54813    type GetIpMulticastTtlResponseFut = fidl::client::QueryResponseFut<
54814        BaseNetworkSocketGetIpMulticastTtlResult,
54815        fidl::encoding::DefaultFuchsiaResourceDialect,
54816    >;
54817    fn r#get_ip_multicast_ttl(&self) -> Self::GetIpMulticastTtlResponseFut {
54818        fn _decode(
54819            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54820        ) -> Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error> {
54821            let _response = fidl::client::decode_transaction_body::<
54822                fidl::encoding::ResultType<
54823                    BaseNetworkSocketGetIpMulticastTtlResponse,
54824                    fidl_fuchsia_posix::Errno,
54825                >,
54826                fidl::encoding::DefaultFuchsiaResourceDialect,
54827                0x4665cd378f39e1a,
54828            >(_buf?)?;
54829            Ok(_response.map(|x| x.value))
54830        }
54831        self.client.send_query_and_decode::<
54832            fidl::encoding::EmptyPayload,
54833            BaseNetworkSocketGetIpMulticastTtlResult,
54834        >(
54835            (),
54836            0x4665cd378f39e1a,
54837            fidl::encoding::DynamicFlags::empty(),
54838            _decode,
54839        )
54840    }
54841
54842    type SetIpMulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
54843        BaseNetworkSocketSetIpMulticastLoopbackResult,
54844        fidl::encoding::DefaultFuchsiaResourceDialect,
54845    >;
54846    fn r#set_ip_multicast_loopback(
54847        &self,
54848        mut value: bool,
54849    ) -> Self::SetIpMulticastLoopbackResponseFut {
54850        fn _decode(
54851            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54852        ) -> Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error> {
54853            let _response = fidl::client::decode_transaction_body::<
54854                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54855                fidl::encoding::DefaultFuchsiaResourceDialect,
54856                0x20c55c11f00943ea,
54857            >(_buf?)?;
54858            Ok(_response.map(|x| x))
54859        }
54860        self.client.send_query_and_decode::<
54861            BaseNetworkSocketSetIpMulticastLoopbackRequest,
54862            BaseNetworkSocketSetIpMulticastLoopbackResult,
54863        >(
54864            (value,),
54865            0x20c55c11f00943ea,
54866            fidl::encoding::DynamicFlags::empty(),
54867            _decode,
54868        )
54869    }
54870
54871    type GetIpMulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
54872        BaseNetworkSocketGetIpMulticastLoopbackResult,
54873        fidl::encoding::DefaultFuchsiaResourceDialect,
54874    >;
54875    fn r#get_ip_multicast_loopback(&self) -> Self::GetIpMulticastLoopbackResponseFut {
54876        fn _decode(
54877            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54878        ) -> Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error> {
54879            let _response = fidl::client::decode_transaction_body::<
54880                fidl::encoding::ResultType<
54881                    BaseNetworkSocketGetIpMulticastLoopbackResponse,
54882                    fidl_fuchsia_posix::Errno,
54883                >,
54884                fidl::encoding::DefaultFuchsiaResourceDialect,
54885                0x3b6b26ff558298f2,
54886            >(_buf?)?;
54887            Ok(_response.map(|x| x.value))
54888        }
54889        self.client.send_query_and_decode::<
54890            fidl::encoding::EmptyPayload,
54891            BaseNetworkSocketGetIpMulticastLoopbackResult,
54892        >(
54893            (),
54894            0x3b6b26ff558298f2,
54895            fidl::encoding::DynamicFlags::empty(),
54896            _decode,
54897        )
54898    }
54899
54900    type AddIpMembershipResponseFut = fidl::client::QueryResponseFut<
54901        BaseNetworkSocketAddIpMembershipResult,
54902        fidl::encoding::DefaultFuchsiaResourceDialect,
54903    >;
54904    fn r#add_ip_membership(
54905        &self,
54906        mut membership: &IpMulticastMembership,
54907    ) -> Self::AddIpMembershipResponseFut {
54908        fn _decode(
54909            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54910        ) -> Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error> {
54911            let _response = fidl::client::decode_transaction_body::<
54912                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54913                fidl::encoding::DefaultFuchsiaResourceDialect,
54914                0x76bc7df115a3b4d0,
54915            >(_buf?)?;
54916            Ok(_response.map(|x| x))
54917        }
54918        self.client.send_query_and_decode::<
54919            BaseNetworkSocketAddIpMembershipRequest,
54920            BaseNetworkSocketAddIpMembershipResult,
54921        >(
54922            (membership,),
54923            0x76bc7df115a3b4d0,
54924            fidl::encoding::DynamicFlags::empty(),
54925            _decode,
54926        )
54927    }
54928
54929    type DropIpMembershipResponseFut = fidl::client::QueryResponseFut<
54930        BaseNetworkSocketDropIpMembershipResult,
54931        fidl::encoding::DefaultFuchsiaResourceDialect,
54932    >;
54933    fn r#drop_ip_membership(
54934        &self,
54935        mut membership: &IpMulticastMembership,
54936    ) -> Self::DropIpMembershipResponseFut {
54937        fn _decode(
54938            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54939        ) -> Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error> {
54940            let _response = fidl::client::decode_transaction_body::<
54941                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54942                fidl::encoding::DefaultFuchsiaResourceDialect,
54943                0x2888f3099188d03,
54944            >(_buf?)?;
54945            Ok(_response.map(|x| x))
54946        }
54947        self.client.send_query_and_decode::<
54948            BaseNetworkSocketDropIpMembershipRequest,
54949            BaseNetworkSocketDropIpMembershipResult,
54950        >(
54951            (membership,),
54952            0x2888f3099188d03,
54953            fidl::encoding::DynamicFlags::empty(),
54954            _decode,
54955        )
54956    }
54957
54958    type SetIpTransparentResponseFut = fidl::client::QueryResponseFut<
54959        BaseNetworkSocketSetIpTransparentResult,
54960        fidl::encoding::DefaultFuchsiaResourceDialect,
54961    >;
54962    fn r#set_ip_transparent(&self, mut value: bool) -> Self::SetIpTransparentResponseFut {
54963        fn _decode(
54964            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54965        ) -> Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error> {
54966            let _response = fidl::client::decode_transaction_body::<
54967                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54968                fidl::encoding::DefaultFuchsiaResourceDialect,
54969                0x1ae532b0c066e3a0,
54970            >(_buf?)?;
54971            Ok(_response.map(|x| x))
54972        }
54973        self.client.send_query_and_decode::<
54974            BaseNetworkSocketSetIpTransparentRequest,
54975            BaseNetworkSocketSetIpTransparentResult,
54976        >(
54977            (value,),
54978            0x1ae532b0c066e3a0,
54979            fidl::encoding::DynamicFlags::empty(),
54980            _decode,
54981        )
54982    }
54983
54984    type GetIpTransparentResponseFut = fidl::client::QueryResponseFut<
54985        BaseNetworkSocketGetIpTransparentResult,
54986        fidl::encoding::DefaultFuchsiaResourceDialect,
54987    >;
54988    fn r#get_ip_transparent(&self) -> Self::GetIpTransparentResponseFut {
54989        fn _decode(
54990            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54991        ) -> Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error> {
54992            let _response = fidl::client::decode_transaction_body::<
54993                fidl::encoding::ResultType<
54994                    BaseNetworkSocketGetIpTransparentResponse,
54995                    fidl_fuchsia_posix::Errno,
54996                >,
54997                fidl::encoding::DefaultFuchsiaResourceDialect,
54998                0x51d43695962ebfb5,
54999            >(_buf?)?;
55000            Ok(_response.map(|x| x.value))
55001        }
55002        self.client.send_query_and_decode::<
55003            fidl::encoding::EmptyPayload,
55004            BaseNetworkSocketGetIpTransparentResult,
55005        >(
55006            (),
55007            0x51d43695962ebfb5,
55008            fidl::encoding::DynamicFlags::empty(),
55009            _decode,
55010        )
55011    }
55012
55013    type SetIpReceiveOriginalDestinationAddressResponseFut = fidl::client::QueryResponseFut<
55014        BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
55015        fidl::encoding::DefaultFuchsiaResourceDialect,
55016    >;
55017    fn r#set_ip_receive_original_destination_address(
55018        &self,
55019        mut value: bool,
55020    ) -> Self::SetIpReceiveOriginalDestinationAddressResponseFut {
55021        fn _decode(
55022            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55023        ) -> Result<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult, fidl::Error>
55024        {
55025            let _response = fidl::client::decode_transaction_body::<
55026                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55027                fidl::encoding::DefaultFuchsiaResourceDialect,
55028                0x4722b4ce52f7840,
55029            >(_buf?)?;
55030            Ok(_response.map(|x| x))
55031        }
55032        self.client.send_query_and_decode::<
55033            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
55034            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
55035        >(
55036            (value,),
55037            0x4722b4ce52f7840,
55038            fidl::encoding::DynamicFlags::empty(),
55039            _decode,
55040        )
55041    }
55042
55043    type GetIpReceiveOriginalDestinationAddressResponseFut = fidl::client::QueryResponseFut<
55044        BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
55045        fidl::encoding::DefaultFuchsiaResourceDialect,
55046    >;
55047    fn r#get_ip_receive_original_destination_address(
55048        &self,
55049    ) -> Self::GetIpReceiveOriginalDestinationAddressResponseFut {
55050        fn _decode(
55051            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55052        ) -> Result<BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult, fidl::Error>
55053        {
55054            let _response = fidl::client::decode_transaction_body::<
55055                fidl::encoding::ResultType<
55056                    BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
55057                    fidl_fuchsia_posix::Errno,
55058                >,
55059                fidl::encoding::DefaultFuchsiaResourceDialect,
55060                0x2a0e7dc5d6bfdfe9,
55061            >(_buf?)?;
55062            Ok(_response.map(|x| x.value))
55063        }
55064        self.client.send_query_and_decode::<
55065            fidl::encoding::EmptyPayload,
55066            BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
55067        >(
55068            (),
55069            0x2a0e7dc5d6bfdfe9,
55070            fidl::encoding::DynamicFlags::empty(),
55071            _decode,
55072        )
55073    }
55074
55075    type AddIpv6MembershipResponseFut = fidl::client::QueryResponseFut<
55076        BaseNetworkSocketAddIpv6MembershipResult,
55077        fidl::encoding::DefaultFuchsiaResourceDialect,
55078    >;
55079    fn r#add_ipv6_membership(
55080        &self,
55081        mut membership: &Ipv6MulticastMembership,
55082    ) -> Self::AddIpv6MembershipResponseFut {
55083        fn _decode(
55084            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55085        ) -> Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error> {
55086            let _response = fidl::client::decode_transaction_body::<
55087                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55088                fidl::encoding::DefaultFuchsiaResourceDialect,
55089                0x7c94727acb4ea4b3,
55090            >(_buf?)?;
55091            Ok(_response.map(|x| x))
55092        }
55093        self.client.send_query_and_decode::<
55094            BaseNetworkSocketAddIpv6MembershipRequest,
55095            BaseNetworkSocketAddIpv6MembershipResult,
55096        >(
55097            (membership,),
55098            0x7c94727acb4ea4b3,
55099            fidl::encoding::DynamicFlags::empty(),
55100            _decode,
55101        )
55102    }
55103
55104    type DropIpv6MembershipResponseFut = fidl::client::QueryResponseFut<
55105        BaseNetworkSocketDropIpv6MembershipResult,
55106        fidl::encoding::DefaultFuchsiaResourceDialect,
55107    >;
55108    fn r#drop_ipv6_membership(
55109        &self,
55110        mut membership: &Ipv6MulticastMembership,
55111    ) -> Self::DropIpv6MembershipResponseFut {
55112        fn _decode(
55113            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55114        ) -> Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error> {
55115            let _response = fidl::client::decode_transaction_body::<
55116                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55117                fidl::encoding::DefaultFuchsiaResourceDialect,
55118                0x42104c70ccaba304,
55119            >(_buf?)?;
55120            Ok(_response.map(|x| x))
55121        }
55122        self.client.send_query_and_decode::<
55123            BaseNetworkSocketDropIpv6MembershipRequest,
55124            BaseNetworkSocketDropIpv6MembershipResult,
55125        >(
55126            (membership,),
55127            0x42104c70ccaba304,
55128            fidl::encoding::DynamicFlags::empty(),
55129            _decode,
55130        )
55131    }
55132
55133    type SetIpv6MulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
55134        BaseNetworkSocketSetIpv6MulticastInterfaceResult,
55135        fidl::encoding::DefaultFuchsiaResourceDialect,
55136    >;
55137    fn r#set_ipv6_multicast_interface(
55138        &self,
55139        mut value: u64,
55140    ) -> Self::SetIpv6MulticastInterfaceResponseFut {
55141        fn _decode(
55142            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55143        ) -> Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error> {
55144            let _response = fidl::client::decode_transaction_body::<
55145                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55146                fidl::encoding::DefaultFuchsiaResourceDialect,
55147                0x135f76db3774ab3b,
55148            >(_buf?)?;
55149            Ok(_response.map(|x| x))
55150        }
55151        self.client.send_query_and_decode::<
55152            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
55153            BaseNetworkSocketSetIpv6MulticastInterfaceResult,
55154        >(
55155            (value,),
55156            0x135f76db3774ab3b,
55157            fidl::encoding::DynamicFlags::empty(),
55158            _decode,
55159        )
55160    }
55161
55162    type GetIpv6MulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
55163        BaseNetworkSocketGetIpv6MulticastInterfaceResult,
55164        fidl::encoding::DefaultFuchsiaResourceDialect,
55165    >;
55166    fn r#get_ipv6_multicast_interface(&self) -> Self::GetIpv6MulticastInterfaceResponseFut {
55167        fn _decode(
55168            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55169        ) -> Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error> {
55170            let _response = fidl::client::decode_transaction_body::<
55171                fidl::encoding::ResultType<
55172                    BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
55173                    fidl_fuchsia_posix::Errno,
55174                >,
55175                fidl::encoding::DefaultFuchsiaResourceDialect,
55176                0x1f26fcdd348f1882,
55177            >(_buf?)?;
55178            Ok(_response.map(|x| x.value))
55179        }
55180        self.client.send_query_and_decode::<
55181            fidl::encoding::EmptyPayload,
55182            BaseNetworkSocketGetIpv6MulticastInterfaceResult,
55183        >(
55184            (),
55185            0x1f26fcdd348f1882,
55186            fidl::encoding::DynamicFlags::empty(),
55187            _decode,
55188        )
55189    }
55190
55191    type SetIpv6UnicastHopsResponseFut = fidl::client::QueryResponseFut<
55192        BaseNetworkSocketSetIpv6UnicastHopsResult,
55193        fidl::encoding::DefaultFuchsiaResourceDialect,
55194    >;
55195    fn r#set_ipv6_unicast_hops(
55196        &self,
55197        mut value: &OptionalUint8,
55198    ) -> Self::SetIpv6UnicastHopsResponseFut {
55199        fn _decode(
55200            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55201        ) -> Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error> {
55202            let _response = fidl::client::decode_transaction_body::<
55203                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55204                fidl::encoding::DefaultFuchsiaResourceDialect,
55205                0x157d51e98f462859,
55206            >(_buf?)?;
55207            Ok(_response.map(|x| x))
55208        }
55209        self.client.send_query_and_decode::<
55210            BaseNetworkSocketSetIpv6UnicastHopsRequest,
55211            BaseNetworkSocketSetIpv6UnicastHopsResult,
55212        >(
55213            (value,),
55214            0x157d51e98f462859,
55215            fidl::encoding::DynamicFlags::empty(),
55216            _decode,
55217        )
55218    }
55219
55220    type GetIpv6UnicastHopsResponseFut = fidl::client::QueryResponseFut<
55221        BaseNetworkSocketGetIpv6UnicastHopsResult,
55222        fidl::encoding::DefaultFuchsiaResourceDialect,
55223    >;
55224    fn r#get_ipv6_unicast_hops(&self) -> Self::GetIpv6UnicastHopsResponseFut {
55225        fn _decode(
55226            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55227        ) -> Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error> {
55228            let _response = fidl::client::decode_transaction_body::<
55229                fidl::encoding::ResultType<
55230                    BaseNetworkSocketGetIpv6UnicastHopsResponse,
55231                    fidl_fuchsia_posix::Errno,
55232                >,
55233                fidl::encoding::DefaultFuchsiaResourceDialect,
55234                0x21f4641cad8bd8d2,
55235            >(_buf?)?;
55236            Ok(_response.map(|x| x.value))
55237        }
55238        self.client.send_query_and_decode::<
55239            fidl::encoding::EmptyPayload,
55240            BaseNetworkSocketGetIpv6UnicastHopsResult,
55241        >(
55242            (),
55243            0x21f4641cad8bd8d2,
55244            fidl::encoding::DynamicFlags::empty(),
55245            _decode,
55246        )
55247    }
55248
55249    type SetIpv6ReceiveHopLimitResponseFut = fidl::client::QueryResponseFut<
55250        BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
55251        fidl::encoding::DefaultFuchsiaResourceDialect,
55252    >;
55253    fn r#set_ipv6_receive_hop_limit(
55254        &self,
55255        mut value: bool,
55256    ) -> Self::SetIpv6ReceiveHopLimitResponseFut {
55257        fn _decode(
55258            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55259        ) -> Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error> {
55260            let _response = fidl::client::decode_transaction_body::<
55261                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55262                fidl::encoding::DefaultFuchsiaResourceDialect,
55263                0x5c24808ed2e84a1e,
55264            >(_buf?)?;
55265            Ok(_response.map(|x| x))
55266        }
55267        self.client.send_query_and_decode::<
55268            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
55269            BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
55270        >(
55271            (value,),
55272            0x5c24808ed2e84a1e,
55273            fidl::encoding::DynamicFlags::empty(),
55274            _decode,
55275        )
55276    }
55277
55278    type GetIpv6ReceiveHopLimitResponseFut = fidl::client::QueryResponseFut<
55279        BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
55280        fidl::encoding::DefaultFuchsiaResourceDialect,
55281    >;
55282    fn r#get_ipv6_receive_hop_limit(&self) -> Self::GetIpv6ReceiveHopLimitResponseFut {
55283        fn _decode(
55284            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55285        ) -> Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error> {
55286            let _response = fidl::client::decode_transaction_body::<
55287                fidl::encoding::ResultType<
55288                    BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
55289                    fidl_fuchsia_posix::Errno,
55290                >,
55291                fidl::encoding::DefaultFuchsiaResourceDialect,
55292                0x341e06689885b4c0,
55293            >(_buf?)?;
55294            Ok(_response.map(|x| x.value))
55295        }
55296        self.client.send_query_and_decode::<
55297            fidl::encoding::EmptyPayload,
55298            BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
55299        >(
55300            (),
55301            0x341e06689885b4c0,
55302            fidl::encoding::DynamicFlags::empty(),
55303            _decode,
55304        )
55305    }
55306
55307    type SetIpv6MulticastHopsResponseFut = fidl::client::QueryResponseFut<
55308        BaseNetworkSocketSetIpv6MulticastHopsResult,
55309        fidl::encoding::DefaultFuchsiaResourceDialect,
55310    >;
55311    fn r#set_ipv6_multicast_hops(
55312        &self,
55313        mut value: &OptionalUint8,
55314    ) -> Self::SetIpv6MulticastHopsResponseFut {
55315        fn _decode(
55316            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55317        ) -> Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error> {
55318            let _response = fidl::client::decode_transaction_body::<
55319                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55320                fidl::encoding::DefaultFuchsiaResourceDialect,
55321                0x25b9cd4d181f82c1,
55322            >(_buf?)?;
55323            Ok(_response.map(|x| x))
55324        }
55325        self.client.send_query_and_decode::<
55326            BaseNetworkSocketSetIpv6MulticastHopsRequest,
55327            BaseNetworkSocketSetIpv6MulticastHopsResult,
55328        >(
55329            (value,),
55330            0x25b9cd4d181f82c1,
55331            fidl::encoding::DynamicFlags::empty(),
55332            _decode,
55333        )
55334    }
55335
55336    type GetIpv6MulticastHopsResponseFut = fidl::client::QueryResponseFut<
55337        BaseNetworkSocketGetIpv6MulticastHopsResult,
55338        fidl::encoding::DefaultFuchsiaResourceDialect,
55339    >;
55340    fn r#get_ipv6_multicast_hops(&self) -> Self::GetIpv6MulticastHopsResponseFut {
55341        fn _decode(
55342            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55343        ) -> Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error> {
55344            let _response = fidl::client::decode_transaction_body::<
55345                fidl::encoding::ResultType<
55346                    BaseNetworkSocketGetIpv6MulticastHopsResponse,
55347                    fidl_fuchsia_posix::Errno,
55348                >,
55349                fidl::encoding::DefaultFuchsiaResourceDialect,
55350                0x52916948a365012a,
55351            >(_buf?)?;
55352            Ok(_response.map(|x| x.value))
55353        }
55354        self.client.send_query_and_decode::<
55355            fidl::encoding::EmptyPayload,
55356            BaseNetworkSocketGetIpv6MulticastHopsResult,
55357        >(
55358            (),
55359            0x52916948a365012a,
55360            fidl::encoding::DynamicFlags::empty(),
55361            _decode,
55362        )
55363    }
55364
55365    type SetIpv6MulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
55366        BaseNetworkSocketSetIpv6MulticastLoopbackResult,
55367        fidl::encoding::DefaultFuchsiaResourceDialect,
55368    >;
55369    fn r#set_ipv6_multicast_loopback(
55370        &self,
55371        mut value: bool,
55372    ) -> Self::SetIpv6MulticastLoopbackResponseFut {
55373        fn _decode(
55374            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55375        ) -> Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error> {
55376            let _response = fidl::client::decode_transaction_body::<
55377                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55378                fidl::encoding::DefaultFuchsiaResourceDialect,
55379                0x55701c409ff41b40,
55380            >(_buf?)?;
55381            Ok(_response.map(|x| x))
55382        }
55383        self.client.send_query_and_decode::<
55384            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
55385            BaseNetworkSocketSetIpv6MulticastLoopbackResult,
55386        >(
55387            (value,),
55388            0x55701c409ff41b40,
55389            fidl::encoding::DynamicFlags::empty(),
55390            _decode,
55391        )
55392    }
55393
55394    type GetIpv6MulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
55395        BaseNetworkSocketGetIpv6MulticastLoopbackResult,
55396        fidl::encoding::DefaultFuchsiaResourceDialect,
55397    >;
55398    fn r#get_ipv6_multicast_loopback(&self) -> Self::GetIpv6MulticastLoopbackResponseFut {
55399        fn _decode(
55400            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55401        ) -> Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error> {
55402            let _response = fidl::client::decode_transaction_body::<
55403                fidl::encoding::ResultType<
55404                    BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
55405                    fidl_fuchsia_posix::Errno,
55406                >,
55407                fidl::encoding::DefaultFuchsiaResourceDialect,
55408                0x4415b701fde319c3,
55409            >(_buf?)?;
55410            Ok(_response.map(|x| x.value))
55411        }
55412        self.client.send_query_and_decode::<
55413            fidl::encoding::EmptyPayload,
55414            BaseNetworkSocketGetIpv6MulticastLoopbackResult,
55415        >(
55416            (),
55417            0x4415b701fde319c3,
55418            fidl::encoding::DynamicFlags::empty(),
55419            _decode,
55420        )
55421    }
55422
55423    type SetIpv6OnlyResponseFut = fidl::client::QueryResponseFut<
55424        BaseNetworkSocketSetIpv6OnlyResult,
55425        fidl::encoding::DefaultFuchsiaResourceDialect,
55426    >;
55427    fn r#set_ipv6_only(&self, mut value: bool) -> Self::SetIpv6OnlyResponseFut {
55428        fn _decode(
55429            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55430        ) -> Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error> {
55431            let _response = fidl::client::decode_transaction_body::<
55432                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55433                fidl::encoding::DefaultFuchsiaResourceDialect,
55434                0x4873f1364758cbba,
55435            >(_buf?)?;
55436            Ok(_response.map(|x| x))
55437        }
55438        self.client.send_query_and_decode::<
55439            BaseNetworkSocketSetIpv6OnlyRequest,
55440            BaseNetworkSocketSetIpv6OnlyResult,
55441        >(
55442            (value,),
55443            0x4873f1364758cbba,
55444            fidl::encoding::DynamicFlags::empty(),
55445            _decode,
55446        )
55447    }
55448
55449    type GetIpv6OnlyResponseFut = fidl::client::QueryResponseFut<
55450        BaseNetworkSocketGetIpv6OnlyResult,
55451        fidl::encoding::DefaultFuchsiaResourceDialect,
55452    >;
55453    fn r#get_ipv6_only(&self) -> Self::GetIpv6OnlyResponseFut {
55454        fn _decode(
55455            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55456        ) -> Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error> {
55457            let _response = fidl::client::decode_transaction_body::<
55458                fidl::encoding::ResultType<
55459                    BaseNetworkSocketGetIpv6OnlyResponse,
55460                    fidl_fuchsia_posix::Errno,
55461                >,
55462                fidl::encoding::DefaultFuchsiaResourceDialect,
55463                0x4aa3340a1a26b89c,
55464            >(_buf?)?;
55465            Ok(_response.map(|x| x.value))
55466        }
55467        self.client.send_query_and_decode::<
55468            fidl::encoding::EmptyPayload,
55469            BaseNetworkSocketGetIpv6OnlyResult,
55470        >(
55471            (),
55472            0x4aa3340a1a26b89c,
55473            fidl::encoding::DynamicFlags::empty(),
55474            _decode,
55475        )
55476    }
55477
55478    type SetIpv6ReceiveTrafficClassResponseFut = fidl::client::QueryResponseFut<
55479        BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
55480        fidl::encoding::DefaultFuchsiaResourceDialect,
55481    >;
55482    fn r#set_ipv6_receive_traffic_class(
55483        &self,
55484        mut value: bool,
55485    ) -> Self::SetIpv6ReceiveTrafficClassResponseFut {
55486        fn _decode(
55487            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55488        ) -> Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error> {
55489            let _response = fidl::client::decode_transaction_body::<
55490                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55491                fidl::encoding::DefaultFuchsiaResourceDialect,
55492                0x58f07c8788d099a0,
55493            >(_buf?)?;
55494            Ok(_response.map(|x| x))
55495        }
55496        self.client.send_query_and_decode::<
55497            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
55498            BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
55499        >(
55500            (value,),
55501            0x58f07c8788d099a0,
55502            fidl::encoding::DynamicFlags::empty(),
55503            _decode,
55504        )
55505    }
55506
55507    type GetIpv6ReceiveTrafficClassResponseFut = fidl::client::QueryResponseFut<
55508        BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
55509        fidl::encoding::DefaultFuchsiaResourceDialect,
55510    >;
55511    fn r#get_ipv6_receive_traffic_class(&self) -> Self::GetIpv6ReceiveTrafficClassResponseFut {
55512        fn _decode(
55513            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55514        ) -> Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error> {
55515            let _response = fidl::client::decode_transaction_body::<
55516                fidl::encoding::ResultType<
55517                    BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
55518                    fidl_fuchsia_posix::Errno,
55519                >,
55520                fidl::encoding::DefaultFuchsiaResourceDialect,
55521                0x2e334df1da553ffa,
55522            >(_buf?)?;
55523            Ok(_response.map(|x| x.value))
55524        }
55525        self.client.send_query_and_decode::<
55526            fidl::encoding::EmptyPayload,
55527            BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
55528        >(
55529            (),
55530            0x2e334df1da553ffa,
55531            fidl::encoding::DynamicFlags::empty(),
55532            _decode,
55533        )
55534    }
55535
55536    type SetIpv6TrafficClassResponseFut = fidl::client::QueryResponseFut<
55537        BaseNetworkSocketSetIpv6TrafficClassResult,
55538        fidl::encoding::DefaultFuchsiaResourceDialect,
55539    >;
55540    fn r#set_ipv6_traffic_class(
55541        &self,
55542        mut value: &OptionalUint8,
55543    ) -> Self::SetIpv6TrafficClassResponseFut {
55544        fn _decode(
55545            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55546        ) -> Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error> {
55547            let _response = fidl::client::decode_transaction_body::<
55548                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55549                fidl::encoding::DefaultFuchsiaResourceDialect,
55550                0x6af077800c5a0b4f,
55551            >(_buf?)?;
55552            Ok(_response.map(|x| x))
55553        }
55554        self.client.send_query_and_decode::<
55555            BaseNetworkSocketSetIpv6TrafficClassRequest,
55556            BaseNetworkSocketSetIpv6TrafficClassResult,
55557        >(
55558            (value,),
55559            0x6af077800c5a0b4f,
55560            fidl::encoding::DynamicFlags::empty(),
55561            _decode,
55562        )
55563    }
55564
55565    type GetIpv6TrafficClassResponseFut = fidl::client::QueryResponseFut<
55566        BaseNetworkSocketGetIpv6TrafficClassResult,
55567        fidl::encoding::DefaultFuchsiaResourceDialect,
55568    >;
55569    fn r#get_ipv6_traffic_class(&self) -> Self::GetIpv6TrafficClassResponseFut {
55570        fn _decode(
55571            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55572        ) -> Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error> {
55573            let _response = fidl::client::decode_transaction_body::<
55574                fidl::encoding::ResultType<
55575                    BaseNetworkSocketGetIpv6TrafficClassResponse,
55576                    fidl_fuchsia_posix::Errno,
55577                >,
55578                fidl::encoding::DefaultFuchsiaResourceDialect,
55579                0x6baf6eed8fc2f04,
55580            >(_buf?)?;
55581            Ok(_response.map(|x| x.value))
55582        }
55583        self.client.send_query_and_decode::<
55584            fidl::encoding::EmptyPayload,
55585            BaseNetworkSocketGetIpv6TrafficClassResult,
55586        >(
55587            (),
55588            0x6baf6eed8fc2f04,
55589            fidl::encoding::DynamicFlags::empty(),
55590            _decode,
55591        )
55592    }
55593
55594    type SetIpv6ReceivePacketInfoResponseFut = fidl::client::QueryResponseFut<
55595        BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
55596        fidl::encoding::DefaultFuchsiaResourceDialect,
55597    >;
55598    fn r#set_ipv6_receive_packet_info(
55599        &self,
55600        mut value: bool,
55601    ) -> Self::SetIpv6ReceivePacketInfoResponseFut {
55602        fn _decode(
55603            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55604        ) -> Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error> {
55605            let _response = fidl::client::decode_transaction_body::<
55606                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55607                fidl::encoding::DefaultFuchsiaResourceDialect,
55608                0x19259775b1a92768,
55609            >(_buf?)?;
55610            Ok(_response.map(|x| x))
55611        }
55612        self.client.send_query_and_decode::<
55613            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
55614            BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
55615        >(
55616            (value,),
55617            0x19259775b1a92768,
55618            fidl::encoding::DynamicFlags::empty(),
55619            _decode,
55620        )
55621    }
55622
55623    type GetIpv6ReceivePacketInfoResponseFut = fidl::client::QueryResponseFut<
55624        BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
55625        fidl::encoding::DefaultFuchsiaResourceDialect,
55626    >;
55627    fn r#get_ipv6_receive_packet_info(&self) -> Self::GetIpv6ReceivePacketInfoResponseFut {
55628        fn _decode(
55629            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55630        ) -> Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error> {
55631            let _response = fidl::client::decode_transaction_body::<
55632                fidl::encoding::ResultType<
55633                    BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
55634                    fidl_fuchsia_posix::Errno,
55635                >,
55636                fidl::encoding::DefaultFuchsiaResourceDialect,
55637                0x7acd4a2775baec75,
55638            >(_buf?)?;
55639            Ok(_response.map(|x| x.value))
55640        }
55641        self.client.send_query_and_decode::<
55642            fidl::encoding::EmptyPayload,
55643            BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
55644        >(
55645            (),
55646            0x7acd4a2775baec75,
55647            fidl::encoding::DynamicFlags::empty(),
55648            _decode,
55649        )
55650    }
55651
55652    type GetOriginalDestinationResponseFut = fidl::client::QueryResponseFut<
55653        BaseNetworkSocketGetOriginalDestinationResult,
55654        fidl::encoding::DefaultFuchsiaResourceDialect,
55655    >;
55656    fn r#get_original_destination(&self) -> Self::GetOriginalDestinationResponseFut {
55657        fn _decode(
55658            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55659        ) -> Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error> {
55660            let _response = fidl::client::decode_transaction_body::<
55661                fidl::encoding::ResultType<
55662                    BaseNetworkSocketGetOriginalDestinationResponse,
55663                    fidl_fuchsia_posix::Errno,
55664                >,
55665                fidl::encoding::DefaultFuchsiaResourceDialect,
55666                0x38bf28f0dafdbac0,
55667            >(_buf?)?;
55668            Ok(_response.map(|x| x.value))
55669        }
55670        self.client.send_query_and_decode::<
55671            fidl::encoding::EmptyPayload,
55672            BaseNetworkSocketGetOriginalDestinationResult,
55673        >(
55674            (),
55675            0x38bf28f0dafdbac0,
55676            fidl::encoding::DynamicFlags::empty(),
55677            _decode,
55678        )
55679    }
55680
55681    type DescribeResponseFut = fidl::client::QueryResponseFut<
55682        StreamSocketDescribeResponse,
55683        fidl::encoding::DefaultFuchsiaResourceDialect,
55684    >;
55685    fn r#describe(&self) -> Self::DescribeResponseFut {
55686        fn _decode(
55687            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55688        ) -> Result<StreamSocketDescribeResponse, fidl::Error> {
55689            let _response = fidl::client::decode_transaction_body::<
55690                StreamSocketDescribeResponse,
55691                fidl::encoding::DefaultFuchsiaResourceDialect,
55692                0x29e22969a7dadc32,
55693            >(_buf?)?;
55694            Ok(_response)
55695        }
55696        self.client
55697            .send_query_and_decode::<fidl::encoding::EmptyPayload, StreamSocketDescribeResponse>(
55698                (),
55699                0x29e22969a7dadc32,
55700                fidl::encoding::DynamicFlags::empty(),
55701                _decode,
55702            )
55703    }
55704
55705    type ListenResponseFut = fidl::client::QueryResponseFut<
55706        StreamSocketListenResult,
55707        fidl::encoding::DefaultFuchsiaResourceDialect,
55708    >;
55709    fn r#listen(&self, mut backlog: i16) -> Self::ListenResponseFut {
55710        fn _decode(
55711            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55712        ) -> Result<StreamSocketListenResult, fidl::Error> {
55713            let _response = fidl::client::decode_transaction_body::<
55714                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55715                fidl::encoding::DefaultFuchsiaResourceDialect,
55716                0x3d0a65ced3d10108,
55717            >(_buf?)?;
55718            Ok(_response.map(|x| x))
55719        }
55720        self.client.send_query_and_decode::<StreamSocketListenRequest, StreamSocketListenResult>(
55721            (backlog,),
55722            0x3d0a65ced3d10108,
55723            fidl::encoding::DynamicFlags::empty(),
55724            _decode,
55725        )
55726    }
55727
55728    type AcceptResponseFut = fidl::client::QueryResponseFut<
55729        StreamSocketAcceptResult,
55730        fidl::encoding::DefaultFuchsiaResourceDialect,
55731    >;
55732    fn r#accept(&self, mut want_addr: bool) -> Self::AcceptResponseFut {
55733        fn _decode(
55734            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55735        ) -> Result<StreamSocketAcceptResult, fidl::Error> {
55736            let _response = fidl::client::decode_transaction_body::<
55737                fidl::encoding::ResultType<StreamSocketAcceptResponse, fidl_fuchsia_posix::Errno>,
55738                fidl::encoding::DefaultFuchsiaResourceDialect,
55739                0x5ab7ad620424c163,
55740            >(_buf?)?;
55741            Ok(_response.map(|x| (x.addr, x.s)))
55742        }
55743        self.client.send_query_and_decode::<StreamSocketAcceptRequest, StreamSocketAcceptResult>(
55744            (want_addr,),
55745            0x5ab7ad620424c163,
55746            fidl::encoding::DynamicFlags::empty(),
55747            _decode,
55748        )
55749    }
55750
55751    type GetInfoResponseFut = fidl::client::QueryResponseFut<
55752        StreamSocketGetInfoResult,
55753        fidl::encoding::DefaultFuchsiaResourceDialect,
55754    >;
55755    fn r#get_info(&self) -> Self::GetInfoResponseFut {
55756        fn _decode(
55757            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55758        ) -> Result<StreamSocketGetInfoResult, fidl::Error> {
55759            let _response = fidl::client::decode_transaction_body::<
55760                fidl::encoding::ResultType<StreamSocketGetInfoResponse, fidl_fuchsia_posix::Errno>,
55761                fidl::encoding::DefaultFuchsiaResourceDialect,
55762                0x87cfa55d19f878f,
55763            >(_buf?)?;
55764            Ok(_response.map(|x| (x.domain, x.proto)))
55765        }
55766        self.client
55767            .send_query_and_decode::<fidl::encoding::EmptyPayload, StreamSocketGetInfoResult>(
55768                (),
55769                0x87cfa55d19f878f,
55770                fidl::encoding::DynamicFlags::empty(),
55771                _decode,
55772            )
55773    }
55774
55775    type SetTcpNoDelayResponseFut = fidl::client::QueryResponseFut<
55776        StreamSocketSetTcpNoDelayResult,
55777        fidl::encoding::DefaultFuchsiaResourceDialect,
55778    >;
55779    fn r#set_tcp_no_delay(&self, mut value: bool) -> Self::SetTcpNoDelayResponseFut {
55780        fn _decode(
55781            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55782        ) -> Result<StreamSocketSetTcpNoDelayResult, fidl::Error> {
55783            let _response = fidl::client::decode_transaction_body::<
55784                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55785                fidl::encoding::DefaultFuchsiaResourceDialect,
55786                0x5a59b778f7333ada,
55787            >(_buf?)?;
55788            Ok(_response.map(|x| x))
55789        }
55790        self.client.send_query_and_decode::<
55791            StreamSocketSetTcpNoDelayRequest,
55792            StreamSocketSetTcpNoDelayResult,
55793        >(
55794            (value,),
55795            0x5a59b778f7333ada,
55796            fidl::encoding::DynamicFlags::empty(),
55797            _decode,
55798        )
55799    }
55800
55801    type GetTcpNoDelayResponseFut = fidl::client::QueryResponseFut<
55802        StreamSocketGetTcpNoDelayResult,
55803        fidl::encoding::DefaultFuchsiaResourceDialect,
55804    >;
55805    fn r#get_tcp_no_delay(&self) -> Self::GetTcpNoDelayResponseFut {
55806        fn _decode(
55807            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55808        ) -> Result<StreamSocketGetTcpNoDelayResult, fidl::Error> {
55809            let _response = fidl::client::decode_transaction_body::<
55810                fidl::encoding::ResultType<
55811                    StreamSocketGetTcpNoDelayResponse,
55812                    fidl_fuchsia_posix::Errno,
55813                >,
55814                fidl::encoding::DefaultFuchsiaResourceDialect,
55815                0xac219a3218b0799,
55816            >(_buf?)?;
55817            Ok(_response.map(|x| x.value))
55818        }
55819        self.client
55820            .send_query_and_decode::<fidl::encoding::EmptyPayload, StreamSocketGetTcpNoDelayResult>(
55821                (),
55822                0xac219a3218b0799,
55823                fidl::encoding::DynamicFlags::empty(),
55824                _decode,
55825            )
55826    }
55827
55828    type SetTcpMaxSegmentResponseFut = fidl::client::QueryResponseFut<
55829        StreamSocketSetTcpMaxSegmentResult,
55830        fidl::encoding::DefaultFuchsiaResourceDialect,
55831    >;
55832    fn r#set_tcp_max_segment(&self, mut value_bytes: u32) -> Self::SetTcpMaxSegmentResponseFut {
55833        fn _decode(
55834            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55835        ) -> Result<StreamSocketSetTcpMaxSegmentResult, fidl::Error> {
55836            let _response = fidl::client::decode_transaction_body::<
55837                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55838                fidl::encoding::DefaultFuchsiaResourceDialect,
55839                0xb3d30c498266d18,
55840            >(_buf?)?;
55841            Ok(_response.map(|x| x))
55842        }
55843        self.client.send_query_and_decode::<
55844            StreamSocketSetTcpMaxSegmentRequest,
55845            StreamSocketSetTcpMaxSegmentResult,
55846        >(
55847            (value_bytes,),
55848            0xb3d30c498266d18,
55849            fidl::encoding::DynamicFlags::empty(),
55850            _decode,
55851        )
55852    }
55853
55854    type GetTcpMaxSegmentResponseFut = fidl::client::QueryResponseFut<
55855        StreamSocketGetTcpMaxSegmentResult,
55856        fidl::encoding::DefaultFuchsiaResourceDialect,
55857    >;
55858    fn r#get_tcp_max_segment(&self) -> Self::GetTcpMaxSegmentResponseFut {
55859        fn _decode(
55860            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55861        ) -> Result<StreamSocketGetTcpMaxSegmentResult, fidl::Error> {
55862            let _response = fidl::client::decode_transaction_body::<
55863                fidl::encoding::ResultType<
55864                    StreamSocketGetTcpMaxSegmentResponse,
55865                    fidl_fuchsia_posix::Errno,
55866                >,
55867                fidl::encoding::DefaultFuchsiaResourceDialect,
55868                0x637404d1b4b9982c,
55869            >(_buf?)?;
55870            Ok(_response.map(|x| x.value_bytes))
55871        }
55872        self.client.send_query_and_decode::<
55873            fidl::encoding::EmptyPayload,
55874            StreamSocketGetTcpMaxSegmentResult,
55875        >(
55876            (),
55877            0x637404d1b4b9982c,
55878            fidl::encoding::DynamicFlags::empty(),
55879            _decode,
55880        )
55881    }
55882
55883    type SetTcpCorkResponseFut = fidl::client::QueryResponseFut<
55884        StreamSocketSetTcpCorkResult,
55885        fidl::encoding::DefaultFuchsiaResourceDialect,
55886    >;
55887    fn r#set_tcp_cork(&self, mut value: bool) -> Self::SetTcpCorkResponseFut {
55888        fn _decode(
55889            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55890        ) -> Result<StreamSocketSetTcpCorkResult, fidl::Error> {
55891            let _response = fidl::client::decode_transaction_body::<
55892                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55893                fidl::encoding::DefaultFuchsiaResourceDialect,
55894                0x62e26891541143a0,
55895            >(_buf?)?;
55896            Ok(_response.map(|x| x))
55897        }
55898        self.client
55899            .send_query_and_decode::<StreamSocketSetTcpCorkRequest, StreamSocketSetTcpCorkResult>(
55900                (value,),
55901                0x62e26891541143a0,
55902                fidl::encoding::DynamicFlags::empty(),
55903                _decode,
55904            )
55905    }
55906
55907    type GetTcpCorkResponseFut = fidl::client::QueryResponseFut<
55908        StreamSocketGetTcpCorkResult,
55909        fidl::encoding::DefaultFuchsiaResourceDialect,
55910    >;
55911    fn r#get_tcp_cork(&self) -> Self::GetTcpCorkResponseFut {
55912        fn _decode(
55913            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55914        ) -> Result<StreamSocketGetTcpCorkResult, fidl::Error> {
55915            let _response = fidl::client::decode_transaction_body::<
55916                fidl::encoding::ResultType<
55917                    StreamSocketGetTcpCorkResponse,
55918                    fidl_fuchsia_posix::Errno,
55919                >,
55920                fidl::encoding::DefaultFuchsiaResourceDialect,
55921                0x435bb232e0e74f32,
55922            >(_buf?)?;
55923            Ok(_response.map(|x| x.value))
55924        }
55925        self.client
55926            .send_query_and_decode::<fidl::encoding::EmptyPayload, StreamSocketGetTcpCorkResult>(
55927                (),
55928                0x435bb232e0e74f32,
55929                fidl::encoding::DynamicFlags::empty(),
55930                _decode,
55931            )
55932    }
55933
55934    type SetTcpKeepAliveIdleResponseFut = fidl::client::QueryResponseFut<
55935        StreamSocketSetTcpKeepAliveIdleResult,
55936        fidl::encoding::DefaultFuchsiaResourceDialect,
55937    >;
55938    fn r#set_tcp_keep_alive_idle(
55939        &self,
55940        mut value_secs: u32,
55941    ) -> Self::SetTcpKeepAliveIdleResponseFut {
55942        fn _decode(
55943            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55944        ) -> Result<StreamSocketSetTcpKeepAliveIdleResult, fidl::Error> {
55945            let _response = fidl::client::decode_transaction_body::<
55946                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55947                fidl::encoding::DefaultFuchsiaResourceDialect,
55948                0x196d053d8363c42,
55949            >(_buf?)?;
55950            Ok(_response.map(|x| x))
55951        }
55952        self.client.send_query_and_decode::<
55953            StreamSocketSetTcpKeepAliveIdleRequest,
55954            StreamSocketSetTcpKeepAliveIdleResult,
55955        >(
55956            (value_secs,),
55957            0x196d053d8363c42,
55958            fidl::encoding::DynamicFlags::empty(),
55959            _decode,
55960        )
55961    }
55962
55963    type GetTcpKeepAliveIdleResponseFut = fidl::client::QueryResponseFut<
55964        StreamSocketGetTcpKeepAliveIdleResult,
55965        fidl::encoding::DefaultFuchsiaResourceDialect,
55966    >;
55967    fn r#get_tcp_keep_alive_idle(&self) -> Self::GetTcpKeepAliveIdleResponseFut {
55968        fn _decode(
55969            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55970        ) -> Result<StreamSocketGetTcpKeepAliveIdleResult, fidl::Error> {
55971            let _response = fidl::client::decode_transaction_body::<
55972                fidl::encoding::ResultType<
55973                    StreamSocketGetTcpKeepAliveIdleResponse,
55974                    fidl_fuchsia_posix::Errno,
55975                >,
55976                fidl::encoding::DefaultFuchsiaResourceDialect,
55977                0x35ec58564879dac,
55978            >(_buf?)?;
55979            Ok(_response.map(|x| x.value_secs))
55980        }
55981        self.client.send_query_and_decode::<
55982            fidl::encoding::EmptyPayload,
55983            StreamSocketGetTcpKeepAliveIdleResult,
55984        >(
55985            (),
55986            0x35ec58564879dac,
55987            fidl::encoding::DynamicFlags::empty(),
55988            _decode,
55989        )
55990    }
55991
55992    type SetTcpKeepAliveIntervalResponseFut = fidl::client::QueryResponseFut<
55993        StreamSocketSetTcpKeepAliveIntervalResult,
55994        fidl::encoding::DefaultFuchsiaResourceDialect,
55995    >;
55996    fn r#set_tcp_keep_alive_interval(
55997        &self,
55998        mut value_secs: u32,
55999    ) -> Self::SetTcpKeepAliveIntervalResponseFut {
56000        fn _decode(
56001            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56002        ) -> Result<StreamSocketSetTcpKeepAliveIntervalResult, fidl::Error> {
56003            let _response = fidl::client::decode_transaction_body::<
56004                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56005                fidl::encoding::DefaultFuchsiaResourceDialect,
56006                0x485ffbc2da1243f2,
56007            >(_buf?)?;
56008            Ok(_response.map(|x| x))
56009        }
56010        self.client.send_query_and_decode::<
56011            StreamSocketSetTcpKeepAliveIntervalRequest,
56012            StreamSocketSetTcpKeepAliveIntervalResult,
56013        >(
56014            (value_secs,),
56015            0x485ffbc2da1243f2,
56016            fidl::encoding::DynamicFlags::empty(),
56017            _decode,
56018        )
56019    }
56020
56021    type GetTcpKeepAliveIntervalResponseFut = fidl::client::QueryResponseFut<
56022        StreamSocketGetTcpKeepAliveIntervalResult,
56023        fidl::encoding::DefaultFuchsiaResourceDialect,
56024    >;
56025    fn r#get_tcp_keep_alive_interval(&self) -> Self::GetTcpKeepAliveIntervalResponseFut {
56026        fn _decode(
56027            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56028        ) -> Result<StreamSocketGetTcpKeepAliveIntervalResult, fidl::Error> {
56029            let _response = fidl::client::decode_transaction_body::<
56030                fidl::encoding::ResultType<
56031                    StreamSocketGetTcpKeepAliveIntervalResponse,
56032                    fidl_fuchsia_posix::Errno,
56033                >,
56034                fidl::encoding::DefaultFuchsiaResourceDialect,
56035                0x264eaf46306b284,
56036            >(_buf?)?;
56037            Ok(_response.map(|x| x.value_secs))
56038        }
56039        self.client.send_query_and_decode::<
56040            fidl::encoding::EmptyPayload,
56041            StreamSocketGetTcpKeepAliveIntervalResult,
56042        >(
56043            (),
56044            0x264eaf46306b284,
56045            fidl::encoding::DynamicFlags::empty(),
56046            _decode,
56047        )
56048    }
56049
56050    type SetTcpKeepAliveCountResponseFut = fidl::client::QueryResponseFut<
56051        StreamSocketSetTcpKeepAliveCountResult,
56052        fidl::encoding::DefaultFuchsiaResourceDialect,
56053    >;
56054    fn r#set_tcp_keep_alive_count(&self, mut value: u32) -> Self::SetTcpKeepAliveCountResponseFut {
56055        fn _decode(
56056            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56057        ) -> Result<StreamSocketSetTcpKeepAliveCountResult, fidl::Error> {
56058            let _response = fidl::client::decode_transaction_body::<
56059                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56060                fidl::encoding::DefaultFuchsiaResourceDialect,
56061                0x2ab2e8c111708421,
56062            >(_buf?)?;
56063            Ok(_response.map(|x| x))
56064        }
56065        self.client.send_query_and_decode::<
56066            StreamSocketSetTcpKeepAliveCountRequest,
56067            StreamSocketSetTcpKeepAliveCountResult,
56068        >(
56069            (value,),
56070            0x2ab2e8c111708421,
56071            fidl::encoding::DynamicFlags::empty(),
56072            _decode,
56073        )
56074    }
56075
56076    type GetTcpKeepAliveCountResponseFut = fidl::client::QueryResponseFut<
56077        StreamSocketGetTcpKeepAliveCountResult,
56078        fidl::encoding::DefaultFuchsiaResourceDialect,
56079    >;
56080    fn r#get_tcp_keep_alive_count(&self) -> Self::GetTcpKeepAliveCountResponseFut {
56081        fn _decode(
56082            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56083        ) -> Result<StreamSocketGetTcpKeepAliveCountResult, fidl::Error> {
56084            let _response = fidl::client::decode_transaction_body::<
56085                fidl::encoding::ResultType<
56086                    StreamSocketGetTcpKeepAliveCountResponse,
56087                    fidl_fuchsia_posix::Errno,
56088                >,
56089                fidl::encoding::DefaultFuchsiaResourceDialect,
56090                0x2f176ae271fe7a09,
56091            >(_buf?)?;
56092            Ok(_response.map(|x| x.value))
56093        }
56094        self.client.send_query_and_decode::<
56095            fidl::encoding::EmptyPayload,
56096            StreamSocketGetTcpKeepAliveCountResult,
56097        >(
56098            (),
56099            0x2f176ae271fe7a09,
56100            fidl::encoding::DynamicFlags::empty(),
56101            _decode,
56102        )
56103    }
56104
56105    type SetTcpSynCountResponseFut = fidl::client::QueryResponseFut<
56106        StreamSocketSetTcpSynCountResult,
56107        fidl::encoding::DefaultFuchsiaResourceDialect,
56108    >;
56109    fn r#set_tcp_syn_count(&self, mut value: u32) -> Self::SetTcpSynCountResponseFut {
56110        fn _decode(
56111            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56112        ) -> Result<StreamSocketSetTcpSynCountResult, fidl::Error> {
56113            let _response = fidl::client::decode_transaction_body::<
56114                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56115                fidl::encoding::DefaultFuchsiaResourceDialect,
56116                0x4dcd6ab5573c1eb3,
56117            >(_buf?)?;
56118            Ok(_response.map(|x| x))
56119        }
56120        self.client.send_query_and_decode::<
56121            StreamSocketSetTcpSynCountRequest,
56122            StreamSocketSetTcpSynCountResult,
56123        >(
56124            (value,),
56125            0x4dcd6ab5573c1eb3,
56126            fidl::encoding::DynamicFlags::empty(),
56127            _decode,
56128        )
56129    }
56130
56131    type GetTcpSynCountResponseFut = fidl::client::QueryResponseFut<
56132        StreamSocketGetTcpSynCountResult,
56133        fidl::encoding::DefaultFuchsiaResourceDialect,
56134    >;
56135    fn r#get_tcp_syn_count(&self) -> Self::GetTcpSynCountResponseFut {
56136        fn _decode(
56137            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56138        ) -> Result<StreamSocketGetTcpSynCountResult, fidl::Error> {
56139            let _response = fidl::client::decode_transaction_body::<
56140                fidl::encoding::ResultType<
56141                    StreamSocketGetTcpSynCountResponse,
56142                    fidl_fuchsia_posix::Errno,
56143                >,
56144                fidl::encoding::DefaultFuchsiaResourceDialect,
56145                0x7d457cba8f5f3ee6,
56146            >(_buf?)?;
56147            Ok(_response.map(|x| x.value))
56148        }
56149        self.client.send_query_and_decode::<
56150            fidl::encoding::EmptyPayload,
56151            StreamSocketGetTcpSynCountResult,
56152        >(
56153            (),
56154            0x7d457cba8f5f3ee6,
56155            fidl::encoding::DynamicFlags::empty(),
56156            _decode,
56157        )
56158    }
56159
56160    type SetTcpLingerResponseFut = fidl::client::QueryResponseFut<
56161        StreamSocketSetTcpLingerResult,
56162        fidl::encoding::DefaultFuchsiaResourceDialect,
56163    >;
56164    fn r#set_tcp_linger(&self, mut value_secs: &OptionalUint32) -> Self::SetTcpLingerResponseFut {
56165        fn _decode(
56166            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56167        ) -> Result<StreamSocketSetTcpLingerResult, fidl::Error> {
56168            let _response = fidl::client::decode_transaction_body::<
56169                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56170                fidl::encoding::DefaultFuchsiaResourceDialect,
56171                0xd5cc1e8654d36e4,
56172            >(_buf?)?;
56173            Ok(_response.map(|x| x))
56174        }
56175        self.client.send_query_and_decode::<
56176            StreamSocketSetTcpLingerRequest,
56177            StreamSocketSetTcpLingerResult,
56178        >(
56179            (value_secs,),
56180            0xd5cc1e8654d36e4,
56181            fidl::encoding::DynamicFlags::empty(),
56182            _decode,
56183        )
56184    }
56185
56186    type GetTcpLingerResponseFut = fidl::client::QueryResponseFut<
56187        StreamSocketGetTcpLingerResult,
56188        fidl::encoding::DefaultFuchsiaResourceDialect,
56189    >;
56190    fn r#get_tcp_linger(&self) -> Self::GetTcpLingerResponseFut {
56191        fn _decode(
56192            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56193        ) -> Result<StreamSocketGetTcpLingerResult, fidl::Error> {
56194            let _response = fidl::client::decode_transaction_body::<
56195                fidl::encoding::ResultType<
56196                    StreamSocketGetTcpLingerResponse,
56197                    fidl_fuchsia_posix::Errno,
56198                >,
56199                fidl::encoding::DefaultFuchsiaResourceDialect,
56200                0xad870d311cf30eb,
56201            >(_buf?)?;
56202            Ok(_response.map(|x| x.value_secs))
56203        }
56204        self.client
56205            .send_query_and_decode::<fidl::encoding::EmptyPayload, StreamSocketGetTcpLingerResult>(
56206                (),
56207                0xad870d311cf30eb,
56208                fidl::encoding::DynamicFlags::empty(),
56209                _decode,
56210            )
56211    }
56212
56213    type SetTcpDeferAcceptResponseFut = fidl::client::QueryResponseFut<
56214        StreamSocketSetTcpDeferAcceptResult,
56215        fidl::encoding::DefaultFuchsiaResourceDialect,
56216    >;
56217    fn r#set_tcp_defer_accept(&self, mut value_secs: u32) -> Self::SetTcpDeferAcceptResponseFut {
56218        fn _decode(
56219            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56220        ) -> Result<StreamSocketSetTcpDeferAcceptResult, fidl::Error> {
56221            let _response = fidl::client::decode_transaction_body::<
56222                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56223                fidl::encoding::DefaultFuchsiaResourceDialect,
56224                0x15092f181e57c404,
56225            >(_buf?)?;
56226            Ok(_response.map(|x| x))
56227        }
56228        self.client.send_query_and_decode::<
56229            StreamSocketSetTcpDeferAcceptRequest,
56230            StreamSocketSetTcpDeferAcceptResult,
56231        >(
56232            (value_secs,),
56233            0x15092f181e57c404,
56234            fidl::encoding::DynamicFlags::empty(),
56235            _decode,
56236        )
56237    }
56238
56239    type GetTcpDeferAcceptResponseFut = fidl::client::QueryResponseFut<
56240        StreamSocketGetTcpDeferAcceptResult,
56241        fidl::encoding::DefaultFuchsiaResourceDialect,
56242    >;
56243    fn r#get_tcp_defer_accept(&self) -> Self::GetTcpDeferAcceptResponseFut {
56244        fn _decode(
56245            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56246        ) -> Result<StreamSocketGetTcpDeferAcceptResult, fidl::Error> {
56247            let _response = fidl::client::decode_transaction_body::<
56248                fidl::encoding::ResultType<
56249                    StreamSocketGetTcpDeferAcceptResponse,
56250                    fidl_fuchsia_posix::Errno,
56251                >,
56252                fidl::encoding::DefaultFuchsiaResourceDialect,
56253                0x64589790842cb7c6,
56254            >(_buf?)?;
56255            Ok(_response.map(|x| x.value_secs))
56256        }
56257        self.client.send_query_and_decode::<
56258            fidl::encoding::EmptyPayload,
56259            StreamSocketGetTcpDeferAcceptResult,
56260        >(
56261            (),
56262            0x64589790842cb7c6,
56263            fidl::encoding::DynamicFlags::empty(),
56264            _decode,
56265        )
56266    }
56267
56268    type SetTcpWindowClampResponseFut = fidl::client::QueryResponseFut<
56269        StreamSocketSetTcpWindowClampResult,
56270        fidl::encoding::DefaultFuchsiaResourceDialect,
56271    >;
56272    fn r#set_tcp_window_clamp(&self, mut value: u32) -> Self::SetTcpWindowClampResponseFut {
56273        fn _decode(
56274            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56275        ) -> Result<StreamSocketSetTcpWindowClampResult, fidl::Error> {
56276            let _response = fidl::client::decode_transaction_body::<
56277                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56278                fidl::encoding::DefaultFuchsiaResourceDialect,
56279                0x4a26ce07d847f1c6,
56280            >(_buf?)?;
56281            Ok(_response.map(|x| x))
56282        }
56283        self.client.send_query_and_decode::<
56284            StreamSocketSetTcpWindowClampRequest,
56285            StreamSocketSetTcpWindowClampResult,
56286        >(
56287            (value,),
56288            0x4a26ce07d847f1c6,
56289            fidl::encoding::DynamicFlags::empty(),
56290            _decode,
56291        )
56292    }
56293
56294    type GetTcpWindowClampResponseFut = fidl::client::QueryResponseFut<
56295        StreamSocketGetTcpWindowClampResult,
56296        fidl::encoding::DefaultFuchsiaResourceDialect,
56297    >;
56298    fn r#get_tcp_window_clamp(&self) -> Self::GetTcpWindowClampResponseFut {
56299        fn _decode(
56300            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56301        ) -> Result<StreamSocketGetTcpWindowClampResult, fidl::Error> {
56302            let _response = fidl::client::decode_transaction_body::<
56303                fidl::encoding::ResultType<
56304                    StreamSocketGetTcpWindowClampResponse,
56305                    fidl_fuchsia_posix::Errno,
56306                >,
56307                fidl::encoding::DefaultFuchsiaResourceDialect,
56308                0x2df6b636bf0a6a4e,
56309            >(_buf?)?;
56310            Ok(_response.map(|x| x.value))
56311        }
56312        self.client.send_query_and_decode::<
56313            fidl::encoding::EmptyPayload,
56314            StreamSocketGetTcpWindowClampResult,
56315        >(
56316            (),
56317            0x2df6b636bf0a6a4e,
56318            fidl::encoding::DynamicFlags::empty(),
56319            _decode,
56320        )
56321    }
56322
56323    type GetTcpInfoResponseFut = fidl::client::QueryResponseFut<
56324        StreamSocketGetTcpInfoResult,
56325        fidl::encoding::DefaultFuchsiaResourceDialect,
56326    >;
56327    fn r#get_tcp_info(&self) -> Self::GetTcpInfoResponseFut {
56328        fn _decode(
56329            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56330        ) -> Result<StreamSocketGetTcpInfoResult, fidl::Error> {
56331            let _response = fidl::client::decode_transaction_body::<
56332                fidl::encoding::ResultType<
56333                    StreamSocketGetTcpInfoResponse,
56334                    fidl_fuchsia_posix::Errno,
56335                >,
56336                fidl::encoding::DefaultFuchsiaResourceDialect,
56337                0x1ffb123d9f03ead2,
56338            >(_buf?)?;
56339            Ok(_response.map(|x| x.info))
56340        }
56341        self.client
56342            .send_query_and_decode::<fidl::encoding::EmptyPayload, StreamSocketGetTcpInfoResult>(
56343                (),
56344                0x1ffb123d9f03ead2,
56345                fidl::encoding::DynamicFlags::empty(),
56346                _decode,
56347            )
56348    }
56349
56350    type SetTcpQuickAckResponseFut = fidl::client::QueryResponseFut<
56351        StreamSocketSetTcpQuickAckResult,
56352        fidl::encoding::DefaultFuchsiaResourceDialect,
56353    >;
56354    fn r#set_tcp_quick_ack(&self, mut value: bool) -> Self::SetTcpQuickAckResponseFut {
56355        fn _decode(
56356            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56357        ) -> Result<StreamSocketSetTcpQuickAckResult, fidl::Error> {
56358            let _response = fidl::client::decode_transaction_body::<
56359                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56360                fidl::encoding::DefaultFuchsiaResourceDialect,
56361                0x6fa811be8fde7457,
56362            >(_buf?)?;
56363            Ok(_response.map(|x| x))
56364        }
56365        self.client.send_query_and_decode::<
56366            StreamSocketSetTcpQuickAckRequest,
56367            StreamSocketSetTcpQuickAckResult,
56368        >(
56369            (value,),
56370            0x6fa811be8fde7457,
56371            fidl::encoding::DynamicFlags::empty(),
56372            _decode,
56373        )
56374    }
56375
56376    type GetTcpQuickAckResponseFut = fidl::client::QueryResponseFut<
56377        StreamSocketGetTcpQuickAckResult,
56378        fidl::encoding::DefaultFuchsiaResourceDialect,
56379    >;
56380    fn r#get_tcp_quick_ack(&self) -> Self::GetTcpQuickAckResponseFut {
56381        fn _decode(
56382            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56383        ) -> Result<StreamSocketGetTcpQuickAckResult, fidl::Error> {
56384            let _response = fidl::client::decode_transaction_body::<
56385                fidl::encoding::ResultType<
56386                    StreamSocketGetTcpQuickAckResponse,
56387                    fidl_fuchsia_posix::Errno,
56388                >,
56389                fidl::encoding::DefaultFuchsiaResourceDialect,
56390                0x7356a949bef2df32,
56391            >(_buf?)?;
56392            Ok(_response.map(|x| x.value))
56393        }
56394        self.client.send_query_and_decode::<
56395            fidl::encoding::EmptyPayload,
56396            StreamSocketGetTcpQuickAckResult,
56397        >(
56398            (),
56399            0x7356a949bef2df32,
56400            fidl::encoding::DynamicFlags::empty(),
56401            _decode,
56402        )
56403    }
56404
56405    type SetTcpCongestionResponseFut = fidl::client::QueryResponseFut<
56406        StreamSocketSetTcpCongestionResult,
56407        fidl::encoding::DefaultFuchsiaResourceDialect,
56408    >;
56409    fn r#set_tcp_congestion(
56410        &self,
56411        mut value: TcpCongestionControl,
56412    ) -> Self::SetTcpCongestionResponseFut {
56413        fn _decode(
56414            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56415        ) -> Result<StreamSocketSetTcpCongestionResult, fidl::Error> {
56416            let _response = fidl::client::decode_transaction_body::<
56417                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56418                fidl::encoding::DefaultFuchsiaResourceDialect,
56419                0x7924c6eabde7819e,
56420            >(_buf?)?;
56421            Ok(_response.map(|x| x))
56422        }
56423        self.client.send_query_and_decode::<
56424            StreamSocketSetTcpCongestionRequest,
56425            StreamSocketSetTcpCongestionResult,
56426        >(
56427            (value,),
56428            0x7924c6eabde7819e,
56429            fidl::encoding::DynamicFlags::empty(),
56430            _decode,
56431        )
56432    }
56433
56434    type GetTcpCongestionResponseFut = fidl::client::QueryResponseFut<
56435        StreamSocketGetTcpCongestionResult,
56436        fidl::encoding::DefaultFuchsiaResourceDialect,
56437    >;
56438    fn r#get_tcp_congestion(&self) -> Self::GetTcpCongestionResponseFut {
56439        fn _decode(
56440            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56441        ) -> Result<StreamSocketGetTcpCongestionResult, fidl::Error> {
56442            let _response = fidl::client::decode_transaction_body::<
56443                fidl::encoding::ResultType<
56444                    StreamSocketGetTcpCongestionResponse,
56445                    fidl_fuchsia_posix::Errno,
56446                >,
56447                fidl::encoding::DefaultFuchsiaResourceDialect,
56448                0x11e16397e1b72a47,
56449            >(_buf?)?;
56450            Ok(_response.map(|x| x.value))
56451        }
56452        self.client.send_query_and_decode::<
56453            fidl::encoding::EmptyPayload,
56454            StreamSocketGetTcpCongestionResult,
56455        >(
56456            (),
56457            0x11e16397e1b72a47,
56458            fidl::encoding::DynamicFlags::empty(),
56459            _decode,
56460        )
56461    }
56462
56463    type SetTcpUserTimeoutResponseFut = fidl::client::QueryResponseFut<
56464        StreamSocketSetTcpUserTimeoutResult,
56465        fidl::encoding::DefaultFuchsiaResourceDialect,
56466    >;
56467    fn r#set_tcp_user_timeout(&self, mut value_millis: u32) -> Self::SetTcpUserTimeoutResponseFut {
56468        fn _decode(
56469            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56470        ) -> Result<StreamSocketSetTcpUserTimeoutResult, fidl::Error> {
56471            let _response = fidl::client::decode_transaction_body::<
56472                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56473                fidl::encoding::DefaultFuchsiaResourceDialect,
56474                0x6b459e81c3741a60,
56475            >(_buf?)?;
56476            Ok(_response.map(|x| x))
56477        }
56478        self.client.send_query_and_decode::<
56479            StreamSocketSetTcpUserTimeoutRequest,
56480            StreamSocketSetTcpUserTimeoutResult,
56481        >(
56482            (value_millis,),
56483            0x6b459e81c3741a60,
56484            fidl::encoding::DynamicFlags::empty(),
56485            _decode,
56486        )
56487    }
56488
56489    type GetTcpUserTimeoutResponseFut = fidl::client::QueryResponseFut<
56490        StreamSocketGetTcpUserTimeoutResult,
56491        fidl::encoding::DefaultFuchsiaResourceDialect,
56492    >;
56493    fn r#get_tcp_user_timeout(&self) -> Self::GetTcpUserTimeoutResponseFut {
56494        fn _decode(
56495            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56496        ) -> Result<StreamSocketGetTcpUserTimeoutResult, fidl::Error> {
56497            let _response = fidl::client::decode_transaction_body::<
56498                fidl::encoding::ResultType<
56499                    StreamSocketGetTcpUserTimeoutResponse,
56500                    fidl_fuchsia_posix::Errno,
56501                >,
56502                fidl::encoding::DefaultFuchsiaResourceDialect,
56503                0x24bbd5858ad8c380,
56504            >(_buf?)?;
56505            Ok(_response.map(|x| x.value_millis))
56506        }
56507        self.client.send_query_and_decode::<
56508            fidl::encoding::EmptyPayload,
56509            StreamSocketGetTcpUserTimeoutResult,
56510        >(
56511            (),
56512            0x24bbd5858ad8c380,
56513            fidl::encoding::DynamicFlags::empty(),
56514            _decode,
56515        )
56516    }
56517}
56518
56519pub struct StreamSocketEventStream {
56520    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
56521}
56522
56523impl std::marker::Unpin for StreamSocketEventStream {}
56524
56525impl futures::stream::FusedStream for StreamSocketEventStream {
56526    fn is_terminated(&self) -> bool {
56527        self.event_receiver.is_terminated()
56528    }
56529}
56530
56531impl futures::Stream for StreamSocketEventStream {
56532    type Item = Result<StreamSocketEvent, fidl::Error>;
56533
56534    fn poll_next(
56535        mut self: std::pin::Pin<&mut Self>,
56536        cx: &mut std::task::Context<'_>,
56537    ) -> std::task::Poll<Option<Self::Item>> {
56538        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
56539            &mut self.event_receiver,
56540            cx
56541        )?) {
56542            Some(buf) => std::task::Poll::Ready(Some(StreamSocketEvent::decode(buf))),
56543            None => std::task::Poll::Ready(None),
56544        }
56545    }
56546}
56547
56548#[derive(Debug)]
56549pub enum StreamSocketEvent {}
56550
56551impl StreamSocketEvent {
56552    /// Decodes a message buffer as a [`StreamSocketEvent`].
56553    fn decode(
56554        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
56555    ) -> Result<StreamSocketEvent, fidl::Error> {
56556        let (bytes, _handles) = buf.split_mut();
56557        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
56558        debug_assert_eq!(tx_header.tx_id, 0);
56559        match tx_header.ordinal {
56560            _ => Err(fidl::Error::UnknownOrdinal {
56561                ordinal: tx_header.ordinal,
56562                protocol_name: <StreamSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
56563            }),
56564        }
56565    }
56566}
56567
56568/// A Stream of incoming requests for fuchsia.posix.socket/StreamSocket.
56569pub struct StreamSocketRequestStream {
56570    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
56571    is_terminated: bool,
56572}
56573
56574impl std::marker::Unpin for StreamSocketRequestStream {}
56575
56576impl futures::stream::FusedStream for StreamSocketRequestStream {
56577    fn is_terminated(&self) -> bool {
56578        self.is_terminated
56579    }
56580}
56581
56582impl fidl::endpoints::RequestStream for StreamSocketRequestStream {
56583    type Protocol = StreamSocketMarker;
56584    type ControlHandle = StreamSocketControlHandle;
56585
56586    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
56587        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
56588    }
56589
56590    fn control_handle(&self) -> Self::ControlHandle {
56591        StreamSocketControlHandle { inner: self.inner.clone() }
56592    }
56593
56594    fn into_inner(
56595        self,
56596    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
56597    {
56598        (self.inner, self.is_terminated)
56599    }
56600
56601    fn from_inner(
56602        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
56603        is_terminated: bool,
56604    ) -> Self {
56605        Self { inner, is_terminated }
56606    }
56607}
56608
56609impl futures::Stream for StreamSocketRequestStream {
56610    type Item = Result<StreamSocketRequest, fidl::Error>;
56611
56612    fn poll_next(
56613        mut self: std::pin::Pin<&mut Self>,
56614        cx: &mut std::task::Context<'_>,
56615    ) -> std::task::Poll<Option<Self::Item>> {
56616        let this = &mut *self;
56617        if this.inner.check_shutdown(cx) {
56618            this.is_terminated = true;
56619            return std::task::Poll::Ready(None);
56620        }
56621        if this.is_terminated {
56622            panic!("polled StreamSocketRequestStream after completion");
56623        }
56624        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
56625            |bytes, handles| {
56626                match this.inner.channel().read_etc(cx, bytes, handles) {
56627                    std::task::Poll::Ready(Ok(())) => {}
56628                    std::task::Poll::Pending => return std::task::Poll::Pending,
56629                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
56630                        this.is_terminated = true;
56631                        return std::task::Poll::Ready(None);
56632                    }
56633                    std::task::Poll::Ready(Err(e)) => {
56634                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
56635                            e.into(),
56636                        ))))
56637                    }
56638                }
56639
56640                // A message has been received from the channel
56641                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
56642
56643                std::task::Poll::Ready(Some(match header.ordinal {
56644                    0x20d8a7aba2168a79 => {
56645                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
56646                        let mut req = fidl::new_empty!(
56647                            fidl_fuchsia_unknown::CloneableCloneRequest,
56648                            fidl::encoding::DefaultFuchsiaResourceDialect
56649                        );
56650                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl_fuchsia_unknown::CloneableCloneRequest>(&header, _body_bytes, handles, &mut req)?;
56651                        let control_handle =
56652                            StreamSocketControlHandle { inner: this.inner.clone() };
56653                        Ok(StreamSocketRequest::Clone { request: req.request, control_handle })
56654                    }
56655                    0x5ac5d459ad7f657e => {
56656                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56657                        let mut req = fidl::new_empty!(
56658                            fidl::encoding::EmptyPayload,
56659                            fidl::encoding::DefaultFuchsiaResourceDialect
56660                        );
56661                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
56662                        let control_handle =
56663                            StreamSocketControlHandle { inner: this.inner.clone() };
56664                        Ok(StreamSocketRequest::Close {
56665                            responder: StreamSocketCloseResponder {
56666                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56667                                tx_id: header.tx_id,
56668                            },
56669                        })
56670                    }
56671                    0x2658edee9decfc06 => {
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::Query {
56681                            responder: StreamSocketQueryResponder {
56682                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56683                                tx_id: header.tx_id,
56684                            },
56685                        })
56686                    }
56687                    0x1fd74ee8b9a4a876 => {
56688                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56689                        let mut req = fidl::new_empty!(
56690                            BaseSocketSetReuseAddressRequest,
56691                            fidl::encoding::DefaultFuchsiaResourceDialect
56692                        );
56693                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReuseAddressRequest>(&header, _body_bytes, handles, &mut req)?;
56694                        let control_handle =
56695                            StreamSocketControlHandle { inner: this.inner.clone() };
56696                        Ok(StreamSocketRequest::SetReuseAddress {
56697                            value: req.value,
56698
56699                            responder: StreamSocketSetReuseAddressResponder {
56700                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56701                                tx_id: header.tx_id,
56702                            },
56703                        })
56704                    }
56705                    0x67b7206b8d1bc0a5 => {
56706                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56707                        let mut req = fidl::new_empty!(
56708                            fidl::encoding::EmptyPayload,
56709                            fidl::encoding::DefaultFuchsiaResourceDialect
56710                        );
56711                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
56712                        let control_handle =
56713                            StreamSocketControlHandle { inner: this.inner.clone() };
56714                        Ok(StreamSocketRequest::GetReuseAddress {
56715                            responder: StreamSocketGetReuseAddressResponder {
56716                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56717                                tx_id: header.tx_id,
56718                            },
56719                        })
56720                    }
56721                    0x5aad39b33e5f6ebb => {
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::GetError {
56731                            responder: StreamSocketGetErrorResponder {
56732                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56733                                tx_id: header.tx_id,
56734                            },
56735                        })
56736                    }
56737                    0x6023e081ce3cd947 => {
56738                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56739                        let mut req = fidl::new_empty!(
56740                            BaseSocketSetBroadcastRequest,
56741                            fidl::encoding::DefaultFuchsiaResourceDialect
56742                        );
56743                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBroadcastRequest>(&header, _body_bytes, handles, &mut req)?;
56744                        let control_handle =
56745                            StreamSocketControlHandle { inner: this.inner.clone() };
56746                        Ok(StreamSocketRequest::SetBroadcast {
56747                            value: req.value,
56748
56749                            responder: StreamSocketSetBroadcastResponder {
56750                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56751                                tx_id: header.tx_id,
56752                            },
56753                        })
56754                    }
56755                    0x68796fc556f9780d => {
56756                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56757                        let mut req = fidl::new_empty!(
56758                            fidl::encoding::EmptyPayload,
56759                            fidl::encoding::DefaultFuchsiaResourceDialect
56760                        );
56761                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
56762                        let control_handle =
56763                            StreamSocketControlHandle { inner: this.inner.clone() };
56764                        Ok(StreamSocketRequest::GetBroadcast {
56765                            responder: StreamSocketGetBroadcastResponder {
56766                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56767                                tx_id: header.tx_id,
56768                            },
56769                        })
56770                    }
56771                    0x756eac32d73a7a70 => {
56772                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56773                        let mut req = fidl::new_empty!(
56774                            BaseSocketSetSendBufferRequest,
56775                            fidl::encoding::DefaultFuchsiaResourceDialect
56776                        );
56777                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetSendBufferRequest>(&header, _body_bytes, handles, &mut req)?;
56778                        let control_handle =
56779                            StreamSocketControlHandle { inner: this.inner.clone() };
56780                        Ok(StreamSocketRequest::SetSendBuffer {
56781                            value_bytes: req.value_bytes,
56782
56783                            responder: StreamSocketSetSendBufferResponder {
56784                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56785                                tx_id: header.tx_id,
56786                            },
56787                        })
56788                    }
56789                    0x78a52fd9c7b2410b => {
56790                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56791                        let mut req = fidl::new_empty!(
56792                            fidl::encoding::EmptyPayload,
56793                            fidl::encoding::DefaultFuchsiaResourceDialect
56794                        );
56795                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
56796                        let control_handle =
56797                            StreamSocketControlHandle { inner: this.inner.clone() };
56798                        Ok(StreamSocketRequest::GetSendBuffer {
56799                            responder: StreamSocketGetSendBufferResponder {
56800                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56801                                tx_id: header.tx_id,
56802                            },
56803                        })
56804                    }
56805                    0x6b0cf2f1919c7001 => {
56806                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56807                        let mut req = fidl::new_empty!(
56808                            BaseSocketSetReceiveBufferRequest,
56809                            fidl::encoding::DefaultFuchsiaResourceDialect
56810                        );
56811                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReceiveBufferRequest>(&header, _body_bytes, handles, &mut req)?;
56812                        let control_handle =
56813                            StreamSocketControlHandle { inner: this.inner.clone() };
56814                        Ok(StreamSocketRequest::SetReceiveBuffer {
56815                            value_bytes: req.value_bytes,
56816
56817                            responder: StreamSocketSetReceiveBufferResponder {
56818                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56819                                tx_id: header.tx_id,
56820                            },
56821                        })
56822                    }
56823                    0x14c1a4b64f709e5c => {
56824                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56825                        let mut req = fidl::new_empty!(
56826                            fidl::encoding::EmptyPayload,
56827                            fidl::encoding::DefaultFuchsiaResourceDialect
56828                        );
56829                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
56830                        let control_handle =
56831                            StreamSocketControlHandle { inner: this.inner.clone() };
56832                        Ok(StreamSocketRequest::GetReceiveBuffer {
56833                            responder: StreamSocketGetReceiveBufferResponder {
56834                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56835                                tx_id: header.tx_id,
56836                            },
56837                        })
56838                    }
56839                    0x572df8f0b920d2c7 => {
56840                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56841                        let mut req = fidl::new_empty!(
56842                            BaseSocketSetKeepAliveRequest,
56843                            fidl::encoding::DefaultFuchsiaResourceDialect
56844                        );
56845                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetKeepAliveRequest>(&header, _body_bytes, handles, &mut req)?;
56846                        let control_handle =
56847                            StreamSocketControlHandle { inner: this.inner.clone() };
56848                        Ok(StreamSocketRequest::SetKeepAlive {
56849                            value: req.value,
56850
56851                            responder: StreamSocketSetKeepAliveResponder {
56852                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56853                                tx_id: header.tx_id,
56854                            },
56855                        })
56856                    }
56857                    0x2dd29d3215f2c9d2 => {
56858                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56859                        let mut req = fidl::new_empty!(
56860                            fidl::encoding::EmptyPayload,
56861                            fidl::encoding::DefaultFuchsiaResourceDialect
56862                        );
56863                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
56864                        let control_handle =
56865                            StreamSocketControlHandle { inner: this.inner.clone() };
56866                        Ok(StreamSocketRequest::GetKeepAlive {
56867                            responder: StreamSocketGetKeepAliveResponder {
56868                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56869                                tx_id: header.tx_id,
56870                            },
56871                        })
56872                    }
56873                    0x3ecb49968bee439 => {
56874                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56875                        let mut req = fidl::new_empty!(
56876                            BaseSocketSetOutOfBandInlineRequest,
56877                            fidl::encoding::DefaultFuchsiaResourceDialect
56878                        );
56879                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetOutOfBandInlineRequest>(&header, _body_bytes, handles, &mut req)?;
56880                        let control_handle =
56881                            StreamSocketControlHandle { inner: this.inner.clone() };
56882                        Ok(StreamSocketRequest::SetOutOfBandInline {
56883                            value: req.value,
56884
56885                            responder: StreamSocketSetOutOfBandInlineResponder {
56886                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56887                                tx_id: header.tx_id,
56888                            },
56889                        })
56890                    }
56891                    0x348c1ab3aeca1745 => {
56892                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56893                        let mut req = fidl::new_empty!(
56894                            fidl::encoding::EmptyPayload,
56895                            fidl::encoding::DefaultFuchsiaResourceDialect
56896                        );
56897                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
56898                        let control_handle =
56899                            StreamSocketControlHandle { inner: this.inner.clone() };
56900                        Ok(StreamSocketRequest::GetOutOfBandInline {
56901                            responder: StreamSocketGetOutOfBandInlineResponder {
56902                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56903                                tx_id: header.tx_id,
56904                            },
56905                        })
56906                    }
56907                    0x6bbf00c53a4c78c2 => {
56908                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56909                        let mut req = fidl::new_empty!(
56910                            BaseSocketSetNoCheckRequest,
56911                            fidl::encoding::DefaultFuchsiaResourceDialect
56912                        );
56913                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetNoCheckRequest>(&header, _body_bytes, handles, &mut req)?;
56914                        let control_handle =
56915                            StreamSocketControlHandle { inner: this.inner.clone() };
56916                        Ok(StreamSocketRequest::SetNoCheck {
56917                            value: req.value,
56918
56919                            responder: StreamSocketSetNoCheckResponder {
56920                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56921                                tx_id: header.tx_id,
56922                            },
56923                        })
56924                    }
56925                    0x2cd4249286417694 => {
56926                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56927                        let mut req = fidl::new_empty!(
56928                            fidl::encoding::EmptyPayload,
56929                            fidl::encoding::DefaultFuchsiaResourceDialect
56930                        );
56931                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
56932                        let control_handle =
56933                            StreamSocketControlHandle { inner: this.inner.clone() };
56934                        Ok(StreamSocketRequest::GetNoCheck {
56935                            responder: StreamSocketGetNoCheckResponder {
56936                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56937                                tx_id: header.tx_id,
56938                            },
56939                        })
56940                    }
56941                    0x45386351246e998e => {
56942                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56943                        let mut req = fidl::new_empty!(
56944                            BaseSocketSetLingerRequest,
56945                            fidl::encoding::DefaultFuchsiaResourceDialect
56946                        );
56947                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetLingerRequest>(&header, _body_bytes, handles, &mut req)?;
56948                        let control_handle =
56949                            StreamSocketControlHandle { inner: this.inner.clone() };
56950                        Ok(StreamSocketRequest::SetLinger {
56951                            linger: req.linger,
56952                            length_secs: req.length_secs,
56953
56954                            responder: StreamSocketSetLingerResponder {
56955                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56956                                tx_id: header.tx_id,
56957                            },
56958                        })
56959                    }
56960                    0x48eb20fc5ccb0e45 => {
56961                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56962                        let mut req = fidl::new_empty!(
56963                            fidl::encoding::EmptyPayload,
56964                            fidl::encoding::DefaultFuchsiaResourceDialect
56965                        );
56966                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
56967                        let control_handle =
56968                            StreamSocketControlHandle { inner: this.inner.clone() };
56969                        Ok(StreamSocketRequest::GetLinger {
56970                            responder: StreamSocketGetLingerResponder {
56971                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56972                                tx_id: header.tx_id,
56973                            },
56974                        })
56975                    }
56976                    0x24dd3e5cb36d9ccb => {
56977                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56978                        let mut req = fidl::new_empty!(
56979                            BaseSocketSetReusePortRequest,
56980                            fidl::encoding::DefaultFuchsiaResourceDialect
56981                        );
56982                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReusePortRequest>(&header, _body_bytes, handles, &mut req)?;
56983                        let control_handle =
56984                            StreamSocketControlHandle { inner: this.inner.clone() };
56985                        Ok(StreamSocketRequest::SetReusePort {
56986                            value: req.value,
56987
56988                            responder: StreamSocketSetReusePortResponder {
56989                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56990                                tx_id: header.tx_id,
56991                            },
56992                        })
56993                    }
56994                    0x7a112c1ab54ff828 => {
56995                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56996                        let mut req = fidl::new_empty!(
56997                            fidl::encoding::EmptyPayload,
56998                            fidl::encoding::DefaultFuchsiaResourceDialect
56999                        );
57000                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57001                        let control_handle =
57002                            StreamSocketControlHandle { inner: this.inner.clone() };
57003                        Ok(StreamSocketRequest::GetReusePort {
57004                            responder: StreamSocketGetReusePortResponder {
57005                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57006                                tx_id: header.tx_id,
57007                            },
57008                        })
57009                    }
57010                    0x67ce6db6c2ec8966 => {
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::GetAcceptConn {
57020                            responder: StreamSocketGetAcceptConnResponder {
57021                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57022                                tx_id: header.tx_id,
57023                            },
57024                        })
57025                    }
57026                    0x2118b483f28aafc4 => {
57027                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57028                        let mut req = fidl::new_empty!(
57029                            BaseSocketSetBindToDeviceRequest,
57030                            fidl::encoding::DefaultFuchsiaResourceDialect
57031                        );
57032                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToDeviceRequest>(&header, _body_bytes, handles, &mut req)?;
57033                        let control_handle =
57034                            StreamSocketControlHandle { inner: this.inner.clone() };
57035                        Ok(StreamSocketRequest::SetBindToDevice {
57036                            value: req.value,
57037
57038                            responder: StreamSocketSetBindToDeviceResponder {
57039                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57040                                tx_id: header.tx_id,
57041                            },
57042                        })
57043                    }
57044                    0x1ab1fbf0ef7906c8 => {
57045                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57046                        let mut req = fidl::new_empty!(
57047                            fidl::encoding::EmptyPayload,
57048                            fidl::encoding::DefaultFuchsiaResourceDialect
57049                        );
57050                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57051                        let control_handle =
57052                            StreamSocketControlHandle { inner: this.inner.clone() };
57053                        Ok(StreamSocketRequest::GetBindToDevice {
57054                            responder: StreamSocketGetBindToDeviceResponder {
57055                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57056                                tx_id: header.tx_id,
57057                            },
57058                        })
57059                    }
57060                    0x6e387a0def00821 => {
57061                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57062                        let mut req = fidl::new_empty!(
57063                            BaseSocketSetBindToInterfaceIndexRequest,
57064                            fidl::encoding::DefaultFuchsiaResourceDialect
57065                        );
57066                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToInterfaceIndexRequest>(&header, _body_bytes, handles, &mut req)?;
57067                        let control_handle =
57068                            StreamSocketControlHandle { inner: this.inner.clone() };
57069                        Ok(StreamSocketRequest::SetBindToInterfaceIndex {
57070                            value: req.value,
57071
57072                            responder: StreamSocketSetBindToInterfaceIndexResponder {
57073                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57074                                tx_id: header.tx_id,
57075                            },
57076                        })
57077                    }
57078                    0x59c31dd3e3078295 => {
57079                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57080                        let mut req = fidl::new_empty!(
57081                            fidl::encoding::EmptyPayload,
57082                            fidl::encoding::DefaultFuchsiaResourceDialect
57083                        );
57084                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57085                        let control_handle =
57086                            StreamSocketControlHandle { inner: this.inner.clone() };
57087                        Ok(StreamSocketRequest::GetBindToInterfaceIndex {
57088                            responder: StreamSocketGetBindToInterfaceIndexResponder {
57089                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57090                                tx_id: header.tx_id,
57091                            },
57092                        })
57093                    }
57094                    0x285d6516c263d839 => {
57095                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57096                        let mut req = fidl::new_empty!(
57097                            BaseSocketSetTimestampRequest,
57098                            fidl::encoding::DefaultFuchsiaResourceDialect
57099                        );
57100                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetTimestampRequest>(&header, _body_bytes, handles, &mut req)?;
57101                        let control_handle =
57102                            StreamSocketControlHandle { inner: this.inner.clone() };
57103                        Ok(StreamSocketRequest::SetTimestamp {
57104                            value: req.value,
57105
57106                            responder: StreamSocketSetTimestampResponder {
57107                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57108                                tx_id: header.tx_id,
57109                            },
57110                        })
57111                    }
57112                    0x49f2fffbbcc2bd27 => {
57113                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57114                        let mut req = fidl::new_empty!(
57115                            fidl::encoding::EmptyPayload,
57116                            fidl::encoding::DefaultFuchsiaResourceDialect
57117                        );
57118                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57119                        let control_handle =
57120                            StreamSocketControlHandle { inner: this.inner.clone() };
57121                        Ok(StreamSocketRequest::GetTimestamp {
57122                            responder: StreamSocketGetTimestampResponder {
57123                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57124                                tx_id: header.tx_id,
57125                            },
57126                        })
57127                    }
57128                    0x6ead6de09f653236 => {
57129                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57130                        let mut req = fidl::new_empty!(
57131                            BaseSocketSetMarkRequest,
57132                            fidl::encoding::DefaultFuchsiaResourceDialect
57133                        );
57134                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
57135                        let control_handle =
57136                            StreamSocketControlHandle { inner: this.inner.clone() };
57137                        Ok(StreamSocketRequest::SetMark {
57138                            domain: req.domain,
57139                            mark: req.mark,
57140
57141                            responder: StreamSocketSetMarkResponder {
57142                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57143                                tx_id: header.tx_id,
57144                            },
57145                        })
57146                    }
57147                    0x57a2752c61d93d47 => {
57148                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57149                        let mut req = fidl::new_empty!(
57150                            BaseSocketGetMarkRequest,
57151                            fidl::encoding::DefaultFuchsiaResourceDialect
57152                        );
57153                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketGetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
57154                        let control_handle =
57155                            StreamSocketControlHandle { inner: this.inner.clone() };
57156                        Ok(StreamSocketRequest::GetMark {
57157                            domain: req.domain,
57158
57159                            responder: StreamSocketGetMarkResponder {
57160                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57161                                tx_id: header.tx_id,
57162                            },
57163                        })
57164                    }
57165                    0x2c2f47fd8f924e52 => {
57166                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57167                        let mut req = fidl::new_empty!(
57168                            fidl::encoding::EmptyPayload,
57169                            fidl::encoding::DefaultFuchsiaResourceDialect
57170                        );
57171                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57172                        let control_handle =
57173                            StreamSocketControlHandle { inner: this.inner.clone() };
57174                        Ok(StreamSocketRequest::GetCookie {
57175                            responder: StreamSocketGetCookieResponder {
57176                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57177                                tx_id: header.tx_id,
57178                            },
57179                        })
57180                    }
57181                    0x4bc6400ae92125d => {
57182                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57183                        let mut req = fidl::new_empty!(
57184                            BaseNetworkSocketBindRequest,
57185                            fidl::encoding::DefaultFuchsiaResourceDialect
57186                        );
57187                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketBindRequest>(&header, _body_bytes, handles, &mut req)?;
57188                        let control_handle =
57189                            StreamSocketControlHandle { inner: this.inner.clone() };
57190                        Ok(StreamSocketRequest::Bind {
57191                            addr: req.addr,
57192
57193                            responder: StreamSocketBindResponder {
57194                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57195                                tx_id: header.tx_id,
57196                            },
57197                        })
57198                    }
57199                    0x5f05f19bfdd38871 => {
57200                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57201                        let mut req = fidl::new_empty!(
57202                            BaseNetworkSocketConnectRequest,
57203                            fidl::encoding::DefaultFuchsiaResourceDialect
57204                        );
57205                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketConnectRequest>(&header, _body_bytes, handles, &mut req)?;
57206                        let control_handle =
57207                            StreamSocketControlHandle { inner: this.inner.clone() };
57208                        Ok(StreamSocketRequest::Connect {
57209                            addr: req.addr,
57210
57211                            responder: StreamSocketConnectResponder {
57212                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57213                                tx_id: header.tx_id,
57214                            },
57215                        })
57216                    }
57217                    0x74e63b91f7b29b2 => {
57218                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57219                        let mut req = fidl::new_empty!(
57220                            fidl::encoding::EmptyPayload,
57221                            fidl::encoding::DefaultFuchsiaResourceDialect
57222                        );
57223                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57224                        let control_handle =
57225                            StreamSocketControlHandle { inner: this.inner.clone() };
57226                        Ok(StreamSocketRequest::Disconnect {
57227                            responder: StreamSocketDisconnectResponder {
57228                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57229                                tx_id: header.tx_id,
57230                            },
57231                        })
57232                    }
57233                    0x475f23f84a1a4f85 => {
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::GetSockName {
57243                            responder: StreamSocketGetSockNameResponder {
57244                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57245                                tx_id: header.tx_id,
57246                            },
57247                        })
57248                    }
57249                    0x1ffecf4bd5b6432e => {
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::GetPeerName {
57259                            responder: StreamSocketGetPeerNameResponder {
57260                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57261                                tx_id: header.tx_id,
57262                            },
57263                        })
57264                    }
57265                    0x247f38b6db68c336 => {
57266                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57267                        let mut req = fidl::new_empty!(
57268                            BaseNetworkSocketShutdownRequest,
57269                            fidl::encoding::DefaultFuchsiaResourceDialect
57270                        );
57271                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketShutdownRequest>(&header, _body_bytes, handles, &mut req)?;
57272                        let control_handle =
57273                            StreamSocketControlHandle { inner: this.inner.clone() };
57274                        Ok(StreamSocketRequest::Shutdown {
57275                            mode: req.mode,
57276
57277                            responder: StreamSocketShutdownResponder {
57278                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57279                                tx_id: header.tx_id,
57280                            },
57281                        })
57282                    }
57283                    0x995c600475b6d46 => {
57284                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57285                        let mut req = fidl::new_empty!(
57286                            BaseNetworkSocketSetIpTypeOfServiceRequest,
57287                            fidl::encoding::DefaultFuchsiaResourceDialect
57288                        );
57289                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTypeOfServiceRequest>(&header, _body_bytes, handles, &mut req)?;
57290                        let control_handle =
57291                            StreamSocketControlHandle { inner: this.inner.clone() };
57292                        Ok(StreamSocketRequest::SetIpTypeOfService {
57293                            value: req.value,
57294
57295                            responder: StreamSocketSetIpTypeOfServiceResponder {
57296                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57297                                tx_id: header.tx_id,
57298                            },
57299                        })
57300                    }
57301                    0x3814a04259f75fcb => {
57302                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57303                        let mut req = fidl::new_empty!(
57304                            fidl::encoding::EmptyPayload,
57305                            fidl::encoding::DefaultFuchsiaResourceDialect
57306                        );
57307                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57308                        let control_handle =
57309                            StreamSocketControlHandle { inner: this.inner.clone() };
57310                        Ok(StreamSocketRequest::GetIpTypeOfService {
57311                            responder: StreamSocketGetIpTypeOfServiceResponder {
57312                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57313                                tx_id: header.tx_id,
57314                            },
57315                        })
57316                    }
57317                    0x29e2424b433ae1ef => {
57318                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57319                        let mut req = fidl::new_empty!(
57320                            BaseNetworkSocketSetIpTtlRequest,
57321                            fidl::encoding::DefaultFuchsiaResourceDialect
57322                        );
57323                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTtlRequest>(&header, _body_bytes, handles, &mut req)?;
57324                        let control_handle =
57325                            StreamSocketControlHandle { inner: this.inner.clone() };
57326                        Ok(StreamSocketRequest::SetIpTtl {
57327                            value: req.value,
57328
57329                            responder: StreamSocketSetIpTtlResponder {
57330                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57331                                tx_id: header.tx_id,
57332                            },
57333                        })
57334                    }
57335                    0x47e47fa1f24da471 => {
57336                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57337                        let mut req = fidl::new_empty!(
57338                            fidl::encoding::EmptyPayload,
57339                            fidl::encoding::DefaultFuchsiaResourceDialect
57340                        );
57341                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57342                        let control_handle =
57343                            StreamSocketControlHandle { inner: this.inner.clone() };
57344                        Ok(StreamSocketRequest::GetIpTtl {
57345                            responder: StreamSocketGetIpTtlResponder {
57346                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57347                                tx_id: header.tx_id,
57348                            },
57349                        })
57350                    }
57351                    0x392d16bee20c0e16 => {
57352                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57353                        let mut req = fidl::new_empty!(
57354                            BaseNetworkSocketSetIpPacketInfoRequest,
57355                            fidl::encoding::DefaultFuchsiaResourceDialect
57356                        );
57357                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpPacketInfoRequest>(&header, _body_bytes, handles, &mut req)?;
57358                        let control_handle =
57359                            StreamSocketControlHandle { inner: this.inner.clone() };
57360                        Ok(StreamSocketRequest::SetIpPacketInfo {
57361                            value: req.value,
57362
57363                            responder: StreamSocketSetIpPacketInfoResponder {
57364                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57365                                tx_id: header.tx_id,
57366                            },
57367                        })
57368                    }
57369                    0x54b505f242280740 => {
57370                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57371                        let mut req = fidl::new_empty!(
57372                            fidl::encoding::EmptyPayload,
57373                            fidl::encoding::DefaultFuchsiaResourceDialect
57374                        );
57375                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57376                        let control_handle =
57377                            StreamSocketControlHandle { inner: this.inner.clone() };
57378                        Ok(StreamSocketRequest::GetIpPacketInfo {
57379                            responder: StreamSocketGetIpPacketInfoResponder {
57380                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57381                                tx_id: header.tx_id,
57382                            },
57383                        })
57384                    }
57385                    0x6c4f6714995f84ef => {
57386                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57387                        let mut req = fidl::new_empty!(
57388                            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
57389                            fidl::encoding::DefaultFuchsiaResourceDialect
57390                        );
57391                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveTypeOfServiceRequest>(&header, _body_bytes, handles, &mut req)?;
57392                        let control_handle =
57393                            StreamSocketControlHandle { inner: this.inner.clone() };
57394                        Ok(StreamSocketRequest::SetIpReceiveTypeOfService {
57395                            value: req.value,
57396
57397                            responder: StreamSocketSetIpReceiveTypeOfServiceResponder {
57398                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57399                                tx_id: header.tx_id,
57400                            },
57401                        })
57402                    }
57403                    0x4158ba7dc2795960 => {
57404                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57405                        let mut req = fidl::new_empty!(
57406                            fidl::encoding::EmptyPayload,
57407                            fidl::encoding::DefaultFuchsiaResourceDialect
57408                        );
57409                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57410                        let control_handle =
57411                            StreamSocketControlHandle { inner: this.inner.clone() };
57412                        Ok(StreamSocketRequest::GetIpReceiveTypeOfService {
57413                            responder: StreamSocketGetIpReceiveTypeOfServiceResponder {
57414                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57415                                tx_id: header.tx_id,
57416                            },
57417                        })
57418                    }
57419                    0x46f15be0ce0ab82b => {
57420                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57421                        let mut req = fidl::new_empty!(
57422                            BaseNetworkSocketSetIpReceiveTtlRequest,
57423                            fidl::encoding::DefaultFuchsiaResourceDialect
57424                        );
57425                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveTtlRequest>(&header, _body_bytes, handles, &mut req)?;
57426                        let control_handle =
57427                            StreamSocketControlHandle { inner: this.inner.clone() };
57428                        Ok(StreamSocketRequest::SetIpReceiveTtl {
57429                            value: req.value,
57430
57431                            responder: StreamSocketSetIpReceiveTtlResponder {
57432                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57433                                tx_id: header.tx_id,
57434                            },
57435                        })
57436                    }
57437                    0x678ddd5a5dfa2eb5 => {
57438                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57439                        let mut req = fidl::new_empty!(
57440                            fidl::encoding::EmptyPayload,
57441                            fidl::encoding::DefaultFuchsiaResourceDialect
57442                        );
57443                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57444                        let control_handle =
57445                            StreamSocketControlHandle { inner: this.inner.clone() };
57446                        Ok(StreamSocketRequest::GetIpReceiveTtl {
57447                            responder: StreamSocketGetIpReceiveTtlResponder {
57448                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57449                                tx_id: header.tx_id,
57450                            },
57451                        })
57452                    }
57453                    0x752fbfa9b12befe => {
57454                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57455                        let mut req = fidl::new_empty!(
57456                            BaseNetworkSocketSetIpMulticastInterfaceRequest,
57457                            fidl::encoding::DefaultFuchsiaResourceDialect
57458                        );
57459                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastInterfaceRequest>(&header, _body_bytes, handles, &mut req)?;
57460                        let control_handle =
57461                            StreamSocketControlHandle { inner: this.inner.clone() };
57462                        Ok(StreamSocketRequest::SetIpMulticastInterface {
57463                            iface: req.iface,
57464                            address: req.address,
57465
57466                            responder: StreamSocketSetIpMulticastInterfaceResponder {
57467                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57468                                tx_id: header.tx_id,
57469                            },
57470                        })
57471                    }
57472                    0x320bd14c4df046c4 => {
57473                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57474                        let mut req = fidl::new_empty!(
57475                            fidl::encoding::EmptyPayload,
57476                            fidl::encoding::DefaultFuchsiaResourceDialect
57477                        );
57478                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57479                        let control_handle =
57480                            StreamSocketControlHandle { inner: this.inner.clone() };
57481                        Ok(StreamSocketRequest::GetIpMulticastInterface {
57482                            responder: StreamSocketGetIpMulticastInterfaceResponder {
57483                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57484                                tx_id: header.tx_id,
57485                            },
57486                        })
57487                    }
57488                    0x63134d53772916a1 => {
57489                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57490                        let mut req = fidl::new_empty!(
57491                            BaseNetworkSocketSetIpMulticastTtlRequest,
57492                            fidl::encoding::DefaultFuchsiaResourceDialect
57493                        );
57494                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastTtlRequest>(&header, _body_bytes, handles, &mut req)?;
57495                        let control_handle =
57496                            StreamSocketControlHandle { inner: this.inner.clone() };
57497                        Ok(StreamSocketRequest::SetIpMulticastTtl {
57498                            value: req.value,
57499
57500                            responder: StreamSocketSetIpMulticastTtlResponder {
57501                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57502                                tx_id: header.tx_id,
57503                            },
57504                        })
57505                    }
57506                    0x4665cd378f39e1a => {
57507                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57508                        let mut req = fidl::new_empty!(
57509                            fidl::encoding::EmptyPayload,
57510                            fidl::encoding::DefaultFuchsiaResourceDialect
57511                        );
57512                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57513                        let control_handle =
57514                            StreamSocketControlHandle { inner: this.inner.clone() };
57515                        Ok(StreamSocketRequest::GetIpMulticastTtl {
57516                            responder: StreamSocketGetIpMulticastTtlResponder {
57517                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57518                                tx_id: header.tx_id,
57519                            },
57520                        })
57521                    }
57522                    0x20c55c11f00943ea => {
57523                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57524                        let mut req = fidl::new_empty!(
57525                            BaseNetworkSocketSetIpMulticastLoopbackRequest,
57526                            fidl::encoding::DefaultFuchsiaResourceDialect
57527                        );
57528                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastLoopbackRequest>(&header, _body_bytes, handles, &mut req)?;
57529                        let control_handle =
57530                            StreamSocketControlHandle { inner: this.inner.clone() };
57531                        Ok(StreamSocketRequest::SetIpMulticastLoopback {
57532                            value: req.value,
57533
57534                            responder: StreamSocketSetIpMulticastLoopbackResponder {
57535                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57536                                tx_id: header.tx_id,
57537                            },
57538                        })
57539                    }
57540                    0x3b6b26ff558298f2 => {
57541                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57542                        let mut req = fidl::new_empty!(
57543                            fidl::encoding::EmptyPayload,
57544                            fidl::encoding::DefaultFuchsiaResourceDialect
57545                        );
57546                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57547                        let control_handle =
57548                            StreamSocketControlHandle { inner: this.inner.clone() };
57549                        Ok(StreamSocketRequest::GetIpMulticastLoopback {
57550                            responder: StreamSocketGetIpMulticastLoopbackResponder {
57551                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57552                                tx_id: header.tx_id,
57553                            },
57554                        })
57555                    }
57556                    0x76bc7df115a3b4d0 => {
57557                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57558                        let mut req = fidl::new_empty!(
57559                            BaseNetworkSocketAddIpMembershipRequest,
57560                            fidl::encoding::DefaultFuchsiaResourceDialect
57561                        );
57562                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketAddIpMembershipRequest>(&header, _body_bytes, handles, &mut req)?;
57563                        let control_handle =
57564                            StreamSocketControlHandle { inner: this.inner.clone() };
57565                        Ok(StreamSocketRequest::AddIpMembership {
57566                            membership: req.membership,
57567
57568                            responder: StreamSocketAddIpMembershipResponder {
57569                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57570                                tx_id: header.tx_id,
57571                            },
57572                        })
57573                    }
57574                    0x2888f3099188d03 => {
57575                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57576                        let mut req = fidl::new_empty!(
57577                            BaseNetworkSocketDropIpMembershipRequest,
57578                            fidl::encoding::DefaultFuchsiaResourceDialect
57579                        );
57580                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketDropIpMembershipRequest>(&header, _body_bytes, handles, &mut req)?;
57581                        let control_handle =
57582                            StreamSocketControlHandle { inner: this.inner.clone() };
57583                        Ok(StreamSocketRequest::DropIpMembership {
57584                            membership: req.membership,
57585
57586                            responder: StreamSocketDropIpMembershipResponder {
57587                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57588                                tx_id: header.tx_id,
57589                            },
57590                        })
57591                    }
57592                    0x1ae532b0c066e3a0 => {
57593                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57594                        let mut req = fidl::new_empty!(
57595                            BaseNetworkSocketSetIpTransparentRequest,
57596                            fidl::encoding::DefaultFuchsiaResourceDialect
57597                        );
57598                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTransparentRequest>(&header, _body_bytes, handles, &mut req)?;
57599                        let control_handle =
57600                            StreamSocketControlHandle { inner: this.inner.clone() };
57601                        Ok(StreamSocketRequest::SetIpTransparent {
57602                            value: req.value,
57603
57604                            responder: StreamSocketSetIpTransparentResponder {
57605                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57606                                tx_id: header.tx_id,
57607                            },
57608                        })
57609                    }
57610                    0x51d43695962ebfb5 => {
57611                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57612                        let mut req = fidl::new_empty!(
57613                            fidl::encoding::EmptyPayload,
57614                            fidl::encoding::DefaultFuchsiaResourceDialect
57615                        );
57616                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57617                        let control_handle =
57618                            StreamSocketControlHandle { inner: this.inner.clone() };
57619                        Ok(StreamSocketRequest::GetIpTransparent {
57620                            responder: StreamSocketGetIpTransparentResponder {
57621                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57622                                tx_id: header.tx_id,
57623                            },
57624                        })
57625                    }
57626                    0x4722b4ce52f7840 => {
57627                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57628                        let mut req = fidl::new_empty!(
57629                            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
57630                            fidl::encoding::DefaultFuchsiaResourceDialect
57631                        );
57632                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest>(&header, _body_bytes, handles, &mut req)?;
57633                        let control_handle =
57634                            StreamSocketControlHandle { inner: this.inner.clone() };
57635                        Ok(StreamSocketRequest::SetIpReceiveOriginalDestinationAddress {
57636                            value: req.value,
57637
57638                            responder:
57639                                StreamSocketSetIpReceiveOriginalDestinationAddressResponder {
57640                                    control_handle: std::mem::ManuallyDrop::new(control_handle),
57641                                    tx_id: header.tx_id,
57642                                },
57643                        })
57644                    }
57645                    0x2a0e7dc5d6bfdfe9 => {
57646                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57647                        let mut req = fidl::new_empty!(
57648                            fidl::encoding::EmptyPayload,
57649                            fidl::encoding::DefaultFuchsiaResourceDialect
57650                        );
57651                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57652                        let control_handle =
57653                            StreamSocketControlHandle { inner: this.inner.clone() };
57654                        Ok(StreamSocketRequest::GetIpReceiveOriginalDestinationAddress {
57655                            responder:
57656                                StreamSocketGetIpReceiveOriginalDestinationAddressResponder {
57657                                    control_handle: std::mem::ManuallyDrop::new(control_handle),
57658                                    tx_id: header.tx_id,
57659                                },
57660                        })
57661                    }
57662                    0x7c94727acb4ea4b3 => {
57663                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57664                        let mut req = fidl::new_empty!(
57665                            BaseNetworkSocketAddIpv6MembershipRequest,
57666                            fidl::encoding::DefaultFuchsiaResourceDialect
57667                        );
57668                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketAddIpv6MembershipRequest>(&header, _body_bytes, handles, &mut req)?;
57669                        let control_handle =
57670                            StreamSocketControlHandle { inner: this.inner.clone() };
57671                        Ok(StreamSocketRequest::AddIpv6Membership {
57672                            membership: req.membership,
57673
57674                            responder: StreamSocketAddIpv6MembershipResponder {
57675                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57676                                tx_id: header.tx_id,
57677                            },
57678                        })
57679                    }
57680                    0x42104c70ccaba304 => {
57681                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57682                        let mut req = fidl::new_empty!(
57683                            BaseNetworkSocketDropIpv6MembershipRequest,
57684                            fidl::encoding::DefaultFuchsiaResourceDialect
57685                        );
57686                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketDropIpv6MembershipRequest>(&header, _body_bytes, handles, &mut req)?;
57687                        let control_handle =
57688                            StreamSocketControlHandle { inner: this.inner.clone() };
57689                        Ok(StreamSocketRequest::DropIpv6Membership {
57690                            membership: req.membership,
57691
57692                            responder: StreamSocketDropIpv6MembershipResponder {
57693                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57694                                tx_id: header.tx_id,
57695                            },
57696                        })
57697                    }
57698                    0x135f76db3774ab3b => {
57699                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57700                        let mut req = fidl::new_empty!(
57701                            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
57702                            fidl::encoding::DefaultFuchsiaResourceDialect
57703                        );
57704                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastInterfaceRequest>(&header, _body_bytes, handles, &mut req)?;
57705                        let control_handle =
57706                            StreamSocketControlHandle { inner: this.inner.clone() };
57707                        Ok(StreamSocketRequest::SetIpv6MulticastInterface {
57708                            value: req.value,
57709
57710                            responder: StreamSocketSetIpv6MulticastInterfaceResponder {
57711                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57712                                tx_id: header.tx_id,
57713                            },
57714                        })
57715                    }
57716                    0x1f26fcdd348f1882 => {
57717                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57718                        let mut req = fidl::new_empty!(
57719                            fidl::encoding::EmptyPayload,
57720                            fidl::encoding::DefaultFuchsiaResourceDialect
57721                        );
57722                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57723                        let control_handle =
57724                            StreamSocketControlHandle { inner: this.inner.clone() };
57725                        Ok(StreamSocketRequest::GetIpv6MulticastInterface {
57726                            responder: StreamSocketGetIpv6MulticastInterfaceResponder {
57727                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57728                                tx_id: header.tx_id,
57729                            },
57730                        })
57731                    }
57732                    0x157d51e98f462859 => {
57733                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57734                        let mut req = fidl::new_empty!(
57735                            BaseNetworkSocketSetIpv6UnicastHopsRequest,
57736                            fidl::encoding::DefaultFuchsiaResourceDialect
57737                        );
57738                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6UnicastHopsRequest>(&header, _body_bytes, handles, &mut req)?;
57739                        let control_handle =
57740                            StreamSocketControlHandle { inner: this.inner.clone() };
57741                        Ok(StreamSocketRequest::SetIpv6UnicastHops {
57742                            value: req.value,
57743
57744                            responder: StreamSocketSetIpv6UnicastHopsResponder {
57745                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57746                                tx_id: header.tx_id,
57747                            },
57748                        })
57749                    }
57750                    0x21f4641cad8bd8d2 => {
57751                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57752                        let mut req = fidl::new_empty!(
57753                            fidl::encoding::EmptyPayload,
57754                            fidl::encoding::DefaultFuchsiaResourceDialect
57755                        );
57756                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57757                        let control_handle =
57758                            StreamSocketControlHandle { inner: this.inner.clone() };
57759                        Ok(StreamSocketRequest::GetIpv6UnicastHops {
57760                            responder: StreamSocketGetIpv6UnicastHopsResponder {
57761                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57762                                tx_id: header.tx_id,
57763                            },
57764                        })
57765                    }
57766                    0x5c24808ed2e84a1e => {
57767                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57768                        let mut req = fidl::new_empty!(
57769                            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
57770                            fidl::encoding::DefaultFuchsiaResourceDialect
57771                        );
57772                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceiveHopLimitRequest>(&header, _body_bytes, handles, &mut req)?;
57773                        let control_handle =
57774                            StreamSocketControlHandle { inner: this.inner.clone() };
57775                        Ok(StreamSocketRequest::SetIpv6ReceiveHopLimit {
57776                            value: req.value,
57777
57778                            responder: StreamSocketSetIpv6ReceiveHopLimitResponder {
57779                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57780                                tx_id: header.tx_id,
57781                            },
57782                        })
57783                    }
57784                    0x341e06689885b4c0 => {
57785                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57786                        let mut req = fidl::new_empty!(
57787                            fidl::encoding::EmptyPayload,
57788                            fidl::encoding::DefaultFuchsiaResourceDialect
57789                        );
57790                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57791                        let control_handle =
57792                            StreamSocketControlHandle { inner: this.inner.clone() };
57793                        Ok(StreamSocketRequest::GetIpv6ReceiveHopLimit {
57794                            responder: StreamSocketGetIpv6ReceiveHopLimitResponder {
57795                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57796                                tx_id: header.tx_id,
57797                            },
57798                        })
57799                    }
57800                    0x25b9cd4d181f82c1 => {
57801                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57802                        let mut req = fidl::new_empty!(
57803                            BaseNetworkSocketSetIpv6MulticastHopsRequest,
57804                            fidl::encoding::DefaultFuchsiaResourceDialect
57805                        );
57806                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastHopsRequest>(&header, _body_bytes, handles, &mut req)?;
57807                        let control_handle =
57808                            StreamSocketControlHandle { inner: this.inner.clone() };
57809                        Ok(StreamSocketRequest::SetIpv6MulticastHops {
57810                            value: req.value,
57811
57812                            responder: StreamSocketSetIpv6MulticastHopsResponder {
57813                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57814                                tx_id: header.tx_id,
57815                            },
57816                        })
57817                    }
57818                    0x52916948a365012a => {
57819                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57820                        let mut req = fidl::new_empty!(
57821                            fidl::encoding::EmptyPayload,
57822                            fidl::encoding::DefaultFuchsiaResourceDialect
57823                        );
57824                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57825                        let control_handle =
57826                            StreamSocketControlHandle { inner: this.inner.clone() };
57827                        Ok(StreamSocketRequest::GetIpv6MulticastHops {
57828                            responder: StreamSocketGetIpv6MulticastHopsResponder {
57829                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57830                                tx_id: header.tx_id,
57831                            },
57832                        })
57833                    }
57834                    0x55701c409ff41b40 => {
57835                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57836                        let mut req = fidl::new_empty!(
57837                            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
57838                            fidl::encoding::DefaultFuchsiaResourceDialect
57839                        );
57840                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastLoopbackRequest>(&header, _body_bytes, handles, &mut req)?;
57841                        let control_handle =
57842                            StreamSocketControlHandle { inner: this.inner.clone() };
57843                        Ok(StreamSocketRequest::SetIpv6MulticastLoopback {
57844                            value: req.value,
57845
57846                            responder: StreamSocketSetIpv6MulticastLoopbackResponder {
57847                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57848                                tx_id: header.tx_id,
57849                            },
57850                        })
57851                    }
57852                    0x4415b701fde319c3 => {
57853                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57854                        let mut req = fidl::new_empty!(
57855                            fidl::encoding::EmptyPayload,
57856                            fidl::encoding::DefaultFuchsiaResourceDialect
57857                        );
57858                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57859                        let control_handle =
57860                            StreamSocketControlHandle { inner: this.inner.clone() };
57861                        Ok(StreamSocketRequest::GetIpv6MulticastLoopback {
57862                            responder: StreamSocketGetIpv6MulticastLoopbackResponder {
57863                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57864                                tx_id: header.tx_id,
57865                            },
57866                        })
57867                    }
57868                    0x4873f1364758cbba => {
57869                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57870                        let mut req = fidl::new_empty!(
57871                            BaseNetworkSocketSetIpv6OnlyRequest,
57872                            fidl::encoding::DefaultFuchsiaResourceDialect
57873                        );
57874                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6OnlyRequest>(&header, _body_bytes, handles, &mut req)?;
57875                        let control_handle =
57876                            StreamSocketControlHandle { inner: this.inner.clone() };
57877                        Ok(StreamSocketRequest::SetIpv6Only {
57878                            value: req.value,
57879
57880                            responder: StreamSocketSetIpv6OnlyResponder {
57881                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57882                                tx_id: header.tx_id,
57883                            },
57884                        })
57885                    }
57886                    0x4aa3340a1a26b89c => {
57887                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57888                        let mut req = fidl::new_empty!(
57889                            fidl::encoding::EmptyPayload,
57890                            fidl::encoding::DefaultFuchsiaResourceDialect
57891                        );
57892                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57893                        let control_handle =
57894                            StreamSocketControlHandle { inner: this.inner.clone() };
57895                        Ok(StreamSocketRequest::GetIpv6Only {
57896                            responder: StreamSocketGetIpv6OnlyResponder {
57897                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57898                                tx_id: header.tx_id,
57899                            },
57900                        })
57901                    }
57902                    0x58f07c8788d099a0 => {
57903                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57904                        let mut req = fidl::new_empty!(
57905                            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
57906                            fidl::encoding::DefaultFuchsiaResourceDialect
57907                        );
57908                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest>(&header, _body_bytes, handles, &mut req)?;
57909                        let control_handle =
57910                            StreamSocketControlHandle { inner: this.inner.clone() };
57911                        Ok(StreamSocketRequest::SetIpv6ReceiveTrafficClass {
57912                            value: req.value,
57913
57914                            responder: StreamSocketSetIpv6ReceiveTrafficClassResponder {
57915                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57916                                tx_id: header.tx_id,
57917                            },
57918                        })
57919                    }
57920                    0x2e334df1da553ffa => {
57921                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57922                        let mut req = fidl::new_empty!(
57923                            fidl::encoding::EmptyPayload,
57924                            fidl::encoding::DefaultFuchsiaResourceDialect
57925                        );
57926                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57927                        let control_handle =
57928                            StreamSocketControlHandle { inner: this.inner.clone() };
57929                        Ok(StreamSocketRequest::GetIpv6ReceiveTrafficClass {
57930                            responder: StreamSocketGetIpv6ReceiveTrafficClassResponder {
57931                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57932                                tx_id: header.tx_id,
57933                            },
57934                        })
57935                    }
57936                    0x6af077800c5a0b4f => {
57937                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57938                        let mut req = fidl::new_empty!(
57939                            BaseNetworkSocketSetIpv6TrafficClassRequest,
57940                            fidl::encoding::DefaultFuchsiaResourceDialect
57941                        );
57942                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6TrafficClassRequest>(&header, _body_bytes, handles, &mut req)?;
57943                        let control_handle =
57944                            StreamSocketControlHandle { inner: this.inner.clone() };
57945                        Ok(StreamSocketRequest::SetIpv6TrafficClass {
57946                            value: req.value,
57947
57948                            responder: StreamSocketSetIpv6TrafficClassResponder {
57949                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57950                                tx_id: header.tx_id,
57951                            },
57952                        })
57953                    }
57954                    0x6baf6eed8fc2f04 => {
57955                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57956                        let mut req = fidl::new_empty!(
57957                            fidl::encoding::EmptyPayload,
57958                            fidl::encoding::DefaultFuchsiaResourceDialect
57959                        );
57960                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57961                        let control_handle =
57962                            StreamSocketControlHandle { inner: this.inner.clone() };
57963                        Ok(StreamSocketRequest::GetIpv6TrafficClass {
57964                            responder: StreamSocketGetIpv6TrafficClassResponder {
57965                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57966                                tx_id: header.tx_id,
57967                            },
57968                        })
57969                    }
57970                    0x19259775b1a92768 => {
57971                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57972                        let mut req = fidl::new_empty!(
57973                            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
57974                            fidl::encoding::DefaultFuchsiaResourceDialect
57975                        );
57976                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceivePacketInfoRequest>(&header, _body_bytes, handles, &mut req)?;
57977                        let control_handle =
57978                            StreamSocketControlHandle { inner: this.inner.clone() };
57979                        Ok(StreamSocketRequest::SetIpv6ReceivePacketInfo {
57980                            value: req.value,
57981
57982                            responder: StreamSocketSetIpv6ReceivePacketInfoResponder {
57983                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57984                                tx_id: header.tx_id,
57985                            },
57986                        })
57987                    }
57988                    0x7acd4a2775baec75 => {
57989                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57990                        let mut req = fidl::new_empty!(
57991                            fidl::encoding::EmptyPayload,
57992                            fidl::encoding::DefaultFuchsiaResourceDialect
57993                        );
57994                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57995                        let control_handle =
57996                            StreamSocketControlHandle { inner: this.inner.clone() };
57997                        Ok(StreamSocketRequest::GetIpv6ReceivePacketInfo {
57998                            responder: StreamSocketGetIpv6ReceivePacketInfoResponder {
57999                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58000                                tx_id: header.tx_id,
58001                            },
58002                        })
58003                    }
58004                    0x38bf28f0dafdbac0 => {
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::GetOriginalDestination {
58014                            responder: StreamSocketGetOriginalDestinationResponder {
58015                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58016                                tx_id: header.tx_id,
58017                            },
58018                        })
58019                    }
58020                    0x29e22969a7dadc32 => {
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::Describe {
58030                            responder: StreamSocketDescribeResponder {
58031                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58032                                tx_id: header.tx_id,
58033                            },
58034                        })
58035                    }
58036                    0x3d0a65ced3d10108 => {
58037                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58038                        let mut req = fidl::new_empty!(
58039                            StreamSocketListenRequest,
58040                            fidl::encoding::DefaultFuchsiaResourceDialect
58041                        );
58042                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketListenRequest>(&header, _body_bytes, handles, &mut req)?;
58043                        let control_handle =
58044                            StreamSocketControlHandle { inner: this.inner.clone() };
58045                        Ok(StreamSocketRequest::Listen {
58046                            backlog: req.backlog,
58047
58048                            responder: StreamSocketListenResponder {
58049                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58050                                tx_id: header.tx_id,
58051                            },
58052                        })
58053                    }
58054                    0x5ab7ad620424c163 => {
58055                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58056                        let mut req = fidl::new_empty!(
58057                            StreamSocketAcceptRequest,
58058                            fidl::encoding::DefaultFuchsiaResourceDialect
58059                        );
58060                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketAcceptRequest>(&header, _body_bytes, handles, &mut req)?;
58061                        let control_handle =
58062                            StreamSocketControlHandle { inner: this.inner.clone() };
58063                        Ok(StreamSocketRequest::Accept {
58064                            want_addr: req.want_addr,
58065
58066                            responder: StreamSocketAcceptResponder {
58067                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58068                                tx_id: header.tx_id,
58069                            },
58070                        })
58071                    }
58072                    0x87cfa55d19f878f => {
58073                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58074                        let mut req = fidl::new_empty!(
58075                            fidl::encoding::EmptyPayload,
58076                            fidl::encoding::DefaultFuchsiaResourceDialect
58077                        );
58078                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58079                        let control_handle =
58080                            StreamSocketControlHandle { inner: this.inner.clone() };
58081                        Ok(StreamSocketRequest::GetInfo {
58082                            responder: StreamSocketGetInfoResponder {
58083                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58084                                tx_id: header.tx_id,
58085                            },
58086                        })
58087                    }
58088                    0x5a59b778f7333ada => {
58089                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58090                        let mut req = fidl::new_empty!(
58091                            StreamSocketSetTcpNoDelayRequest,
58092                            fidl::encoding::DefaultFuchsiaResourceDialect
58093                        );
58094                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpNoDelayRequest>(&header, _body_bytes, handles, &mut req)?;
58095                        let control_handle =
58096                            StreamSocketControlHandle { inner: this.inner.clone() };
58097                        Ok(StreamSocketRequest::SetTcpNoDelay {
58098                            value: req.value,
58099
58100                            responder: StreamSocketSetTcpNoDelayResponder {
58101                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58102                                tx_id: header.tx_id,
58103                            },
58104                        })
58105                    }
58106                    0xac219a3218b0799 => {
58107                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58108                        let mut req = fidl::new_empty!(
58109                            fidl::encoding::EmptyPayload,
58110                            fidl::encoding::DefaultFuchsiaResourceDialect
58111                        );
58112                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58113                        let control_handle =
58114                            StreamSocketControlHandle { inner: this.inner.clone() };
58115                        Ok(StreamSocketRequest::GetTcpNoDelay {
58116                            responder: StreamSocketGetTcpNoDelayResponder {
58117                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58118                                tx_id: header.tx_id,
58119                            },
58120                        })
58121                    }
58122                    0xb3d30c498266d18 => {
58123                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58124                        let mut req = fidl::new_empty!(
58125                            StreamSocketSetTcpMaxSegmentRequest,
58126                            fidl::encoding::DefaultFuchsiaResourceDialect
58127                        );
58128                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpMaxSegmentRequest>(&header, _body_bytes, handles, &mut req)?;
58129                        let control_handle =
58130                            StreamSocketControlHandle { inner: this.inner.clone() };
58131                        Ok(StreamSocketRequest::SetTcpMaxSegment {
58132                            value_bytes: req.value_bytes,
58133
58134                            responder: StreamSocketSetTcpMaxSegmentResponder {
58135                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58136                                tx_id: header.tx_id,
58137                            },
58138                        })
58139                    }
58140                    0x637404d1b4b9982c => {
58141                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58142                        let mut req = fidl::new_empty!(
58143                            fidl::encoding::EmptyPayload,
58144                            fidl::encoding::DefaultFuchsiaResourceDialect
58145                        );
58146                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58147                        let control_handle =
58148                            StreamSocketControlHandle { inner: this.inner.clone() };
58149                        Ok(StreamSocketRequest::GetTcpMaxSegment {
58150                            responder: StreamSocketGetTcpMaxSegmentResponder {
58151                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58152                                tx_id: header.tx_id,
58153                            },
58154                        })
58155                    }
58156                    0x62e26891541143a0 => {
58157                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58158                        let mut req = fidl::new_empty!(
58159                            StreamSocketSetTcpCorkRequest,
58160                            fidl::encoding::DefaultFuchsiaResourceDialect
58161                        );
58162                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpCorkRequest>(&header, _body_bytes, handles, &mut req)?;
58163                        let control_handle =
58164                            StreamSocketControlHandle { inner: this.inner.clone() };
58165                        Ok(StreamSocketRequest::SetTcpCork {
58166                            value: req.value,
58167
58168                            responder: StreamSocketSetTcpCorkResponder {
58169                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58170                                tx_id: header.tx_id,
58171                            },
58172                        })
58173                    }
58174                    0x435bb232e0e74f32 => {
58175                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58176                        let mut req = fidl::new_empty!(
58177                            fidl::encoding::EmptyPayload,
58178                            fidl::encoding::DefaultFuchsiaResourceDialect
58179                        );
58180                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58181                        let control_handle =
58182                            StreamSocketControlHandle { inner: this.inner.clone() };
58183                        Ok(StreamSocketRequest::GetTcpCork {
58184                            responder: StreamSocketGetTcpCorkResponder {
58185                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58186                                tx_id: header.tx_id,
58187                            },
58188                        })
58189                    }
58190                    0x196d053d8363c42 => {
58191                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58192                        let mut req = fidl::new_empty!(
58193                            StreamSocketSetTcpKeepAliveIdleRequest,
58194                            fidl::encoding::DefaultFuchsiaResourceDialect
58195                        );
58196                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpKeepAliveIdleRequest>(&header, _body_bytes, handles, &mut req)?;
58197                        let control_handle =
58198                            StreamSocketControlHandle { inner: this.inner.clone() };
58199                        Ok(StreamSocketRequest::SetTcpKeepAliveIdle {
58200                            value_secs: req.value_secs,
58201
58202                            responder: StreamSocketSetTcpKeepAliveIdleResponder {
58203                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58204                                tx_id: header.tx_id,
58205                            },
58206                        })
58207                    }
58208                    0x35ec58564879dac => {
58209                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58210                        let mut req = fidl::new_empty!(
58211                            fidl::encoding::EmptyPayload,
58212                            fidl::encoding::DefaultFuchsiaResourceDialect
58213                        );
58214                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58215                        let control_handle =
58216                            StreamSocketControlHandle { inner: this.inner.clone() };
58217                        Ok(StreamSocketRequest::GetTcpKeepAliveIdle {
58218                            responder: StreamSocketGetTcpKeepAliveIdleResponder {
58219                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58220                                tx_id: header.tx_id,
58221                            },
58222                        })
58223                    }
58224                    0x485ffbc2da1243f2 => {
58225                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58226                        let mut req = fidl::new_empty!(
58227                            StreamSocketSetTcpKeepAliveIntervalRequest,
58228                            fidl::encoding::DefaultFuchsiaResourceDialect
58229                        );
58230                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpKeepAliveIntervalRequest>(&header, _body_bytes, handles, &mut req)?;
58231                        let control_handle =
58232                            StreamSocketControlHandle { inner: this.inner.clone() };
58233                        Ok(StreamSocketRequest::SetTcpKeepAliveInterval {
58234                            value_secs: req.value_secs,
58235
58236                            responder: StreamSocketSetTcpKeepAliveIntervalResponder {
58237                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58238                                tx_id: header.tx_id,
58239                            },
58240                        })
58241                    }
58242                    0x264eaf46306b284 => {
58243                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58244                        let mut req = fidl::new_empty!(
58245                            fidl::encoding::EmptyPayload,
58246                            fidl::encoding::DefaultFuchsiaResourceDialect
58247                        );
58248                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58249                        let control_handle =
58250                            StreamSocketControlHandle { inner: this.inner.clone() };
58251                        Ok(StreamSocketRequest::GetTcpKeepAliveInterval {
58252                            responder: StreamSocketGetTcpKeepAliveIntervalResponder {
58253                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58254                                tx_id: header.tx_id,
58255                            },
58256                        })
58257                    }
58258                    0x2ab2e8c111708421 => {
58259                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58260                        let mut req = fidl::new_empty!(
58261                            StreamSocketSetTcpKeepAliveCountRequest,
58262                            fidl::encoding::DefaultFuchsiaResourceDialect
58263                        );
58264                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpKeepAliveCountRequest>(&header, _body_bytes, handles, &mut req)?;
58265                        let control_handle =
58266                            StreamSocketControlHandle { inner: this.inner.clone() };
58267                        Ok(StreamSocketRequest::SetTcpKeepAliveCount {
58268                            value: req.value,
58269
58270                            responder: StreamSocketSetTcpKeepAliveCountResponder {
58271                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58272                                tx_id: header.tx_id,
58273                            },
58274                        })
58275                    }
58276                    0x2f176ae271fe7a09 => {
58277                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58278                        let mut req = fidl::new_empty!(
58279                            fidl::encoding::EmptyPayload,
58280                            fidl::encoding::DefaultFuchsiaResourceDialect
58281                        );
58282                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58283                        let control_handle =
58284                            StreamSocketControlHandle { inner: this.inner.clone() };
58285                        Ok(StreamSocketRequest::GetTcpKeepAliveCount {
58286                            responder: StreamSocketGetTcpKeepAliveCountResponder {
58287                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58288                                tx_id: header.tx_id,
58289                            },
58290                        })
58291                    }
58292                    0x4dcd6ab5573c1eb3 => {
58293                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58294                        let mut req = fidl::new_empty!(
58295                            StreamSocketSetTcpSynCountRequest,
58296                            fidl::encoding::DefaultFuchsiaResourceDialect
58297                        );
58298                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpSynCountRequest>(&header, _body_bytes, handles, &mut req)?;
58299                        let control_handle =
58300                            StreamSocketControlHandle { inner: this.inner.clone() };
58301                        Ok(StreamSocketRequest::SetTcpSynCount {
58302                            value: req.value,
58303
58304                            responder: StreamSocketSetTcpSynCountResponder {
58305                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58306                                tx_id: header.tx_id,
58307                            },
58308                        })
58309                    }
58310                    0x7d457cba8f5f3ee6 => {
58311                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58312                        let mut req = fidl::new_empty!(
58313                            fidl::encoding::EmptyPayload,
58314                            fidl::encoding::DefaultFuchsiaResourceDialect
58315                        );
58316                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58317                        let control_handle =
58318                            StreamSocketControlHandle { inner: this.inner.clone() };
58319                        Ok(StreamSocketRequest::GetTcpSynCount {
58320                            responder: StreamSocketGetTcpSynCountResponder {
58321                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58322                                tx_id: header.tx_id,
58323                            },
58324                        })
58325                    }
58326                    0xd5cc1e8654d36e4 => {
58327                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58328                        let mut req = fidl::new_empty!(
58329                            StreamSocketSetTcpLingerRequest,
58330                            fidl::encoding::DefaultFuchsiaResourceDialect
58331                        );
58332                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpLingerRequest>(&header, _body_bytes, handles, &mut req)?;
58333                        let control_handle =
58334                            StreamSocketControlHandle { inner: this.inner.clone() };
58335                        Ok(StreamSocketRequest::SetTcpLinger {
58336                            value_secs: req.value_secs,
58337
58338                            responder: StreamSocketSetTcpLingerResponder {
58339                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58340                                tx_id: header.tx_id,
58341                            },
58342                        })
58343                    }
58344                    0xad870d311cf30eb => {
58345                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58346                        let mut req = fidl::new_empty!(
58347                            fidl::encoding::EmptyPayload,
58348                            fidl::encoding::DefaultFuchsiaResourceDialect
58349                        );
58350                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58351                        let control_handle =
58352                            StreamSocketControlHandle { inner: this.inner.clone() };
58353                        Ok(StreamSocketRequest::GetTcpLinger {
58354                            responder: StreamSocketGetTcpLingerResponder {
58355                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58356                                tx_id: header.tx_id,
58357                            },
58358                        })
58359                    }
58360                    0x15092f181e57c404 => {
58361                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58362                        let mut req = fidl::new_empty!(
58363                            StreamSocketSetTcpDeferAcceptRequest,
58364                            fidl::encoding::DefaultFuchsiaResourceDialect
58365                        );
58366                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpDeferAcceptRequest>(&header, _body_bytes, handles, &mut req)?;
58367                        let control_handle =
58368                            StreamSocketControlHandle { inner: this.inner.clone() };
58369                        Ok(StreamSocketRequest::SetTcpDeferAccept {
58370                            value_secs: req.value_secs,
58371
58372                            responder: StreamSocketSetTcpDeferAcceptResponder {
58373                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58374                                tx_id: header.tx_id,
58375                            },
58376                        })
58377                    }
58378                    0x64589790842cb7c6 => {
58379                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58380                        let mut req = fidl::new_empty!(
58381                            fidl::encoding::EmptyPayload,
58382                            fidl::encoding::DefaultFuchsiaResourceDialect
58383                        );
58384                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58385                        let control_handle =
58386                            StreamSocketControlHandle { inner: this.inner.clone() };
58387                        Ok(StreamSocketRequest::GetTcpDeferAccept {
58388                            responder: StreamSocketGetTcpDeferAcceptResponder {
58389                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58390                                tx_id: header.tx_id,
58391                            },
58392                        })
58393                    }
58394                    0x4a26ce07d847f1c6 => {
58395                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58396                        let mut req = fidl::new_empty!(
58397                            StreamSocketSetTcpWindowClampRequest,
58398                            fidl::encoding::DefaultFuchsiaResourceDialect
58399                        );
58400                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpWindowClampRequest>(&header, _body_bytes, handles, &mut req)?;
58401                        let control_handle =
58402                            StreamSocketControlHandle { inner: this.inner.clone() };
58403                        Ok(StreamSocketRequest::SetTcpWindowClamp {
58404                            value: req.value,
58405
58406                            responder: StreamSocketSetTcpWindowClampResponder {
58407                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58408                                tx_id: header.tx_id,
58409                            },
58410                        })
58411                    }
58412                    0x2df6b636bf0a6a4e => {
58413                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58414                        let mut req = fidl::new_empty!(
58415                            fidl::encoding::EmptyPayload,
58416                            fidl::encoding::DefaultFuchsiaResourceDialect
58417                        );
58418                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58419                        let control_handle =
58420                            StreamSocketControlHandle { inner: this.inner.clone() };
58421                        Ok(StreamSocketRequest::GetTcpWindowClamp {
58422                            responder: StreamSocketGetTcpWindowClampResponder {
58423                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58424                                tx_id: header.tx_id,
58425                            },
58426                        })
58427                    }
58428                    0x1ffb123d9f03ead2 => {
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::GetTcpInfo {
58438                            responder: StreamSocketGetTcpInfoResponder {
58439                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58440                                tx_id: header.tx_id,
58441                            },
58442                        })
58443                    }
58444                    0x6fa811be8fde7457 => {
58445                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58446                        let mut req = fidl::new_empty!(
58447                            StreamSocketSetTcpQuickAckRequest,
58448                            fidl::encoding::DefaultFuchsiaResourceDialect
58449                        );
58450                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpQuickAckRequest>(&header, _body_bytes, handles, &mut req)?;
58451                        let control_handle =
58452                            StreamSocketControlHandle { inner: this.inner.clone() };
58453                        Ok(StreamSocketRequest::SetTcpQuickAck {
58454                            value: req.value,
58455
58456                            responder: StreamSocketSetTcpQuickAckResponder {
58457                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58458                                tx_id: header.tx_id,
58459                            },
58460                        })
58461                    }
58462                    0x7356a949bef2df32 => {
58463                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58464                        let mut req = fidl::new_empty!(
58465                            fidl::encoding::EmptyPayload,
58466                            fidl::encoding::DefaultFuchsiaResourceDialect
58467                        );
58468                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58469                        let control_handle =
58470                            StreamSocketControlHandle { inner: this.inner.clone() };
58471                        Ok(StreamSocketRequest::GetTcpQuickAck {
58472                            responder: StreamSocketGetTcpQuickAckResponder {
58473                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58474                                tx_id: header.tx_id,
58475                            },
58476                        })
58477                    }
58478                    0x7924c6eabde7819e => {
58479                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58480                        let mut req = fidl::new_empty!(
58481                            StreamSocketSetTcpCongestionRequest,
58482                            fidl::encoding::DefaultFuchsiaResourceDialect
58483                        );
58484                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpCongestionRequest>(&header, _body_bytes, handles, &mut req)?;
58485                        let control_handle =
58486                            StreamSocketControlHandle { inner: this.inner.clone() };
58487                        Ok(StreamSocketRequest::SetTcpCongestion {
58488                            value: req.value,
58489
58490                            responder: StreamSocketSetTcpCongestionResponder {
58491                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58492                                tx_id: header.tx_id,
58493                            },
58494                        })
58495                    }
58496                    0x11e16397e1b72a47 => {
58497                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58498                        let mut req = fidl::new_empty!(
58499                            fidl::encoding::EmptyPayload,
58500                            fidl::encoding::DefaultFuchsiaResourceDialect
58501                        );
58502                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58503                        let control_handle =
58504                            StreamSocketControlHandle { inner: this.inner.clone() };
58505                        Ok(StreamSocketRequest::GetTcpCongestion {
58506                            responder: StreamSocketGetTcpCongestionResponder {
58507                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58508                                tx_id: header.tx_id,
58509                            },
58510                        })
58511                    }
58512                    0x6b459e81c3741a60 => {
58513                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58514                        let mut req = fidl::new_empty!(
58515                            StreamSocketSetTcpUserTimeoutRequest,
58516                            fidl::encoding::DefaultFuchsiaResourceDialect
58517                        );
58518                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpUserTimeoutRequest>(&header, _body_bytes, handles, &mut req)?;
58519                        let control_handle =
58520                            StreamSocketControlHandle { inner: this.inner.clone() };
58521                        Ok(StreamSocketRequest::SetTcpUserTimeout {
58522                            value_millis: req.value_millis,
58523
58524                            responder: StreamSocketSetTcpUserTimeoutResponder {
58525                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58526                                tx_id: header.tx_id,
58527                            },
58528                        })
58529                    }
58530                    0x24bbd5858ad8c380 => {
58531                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58532                        let mut req = fidl::new_empty!(
58533                            fidl::encoding::EmptyPayload,
58534                            fidl::encoding::DefaultFuchsiaResourceDialect
58535                        );
58536                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58537                        let control_handle =
58538                            StreamSocketControlHandle { inner: this.inner.clone() };
58539                        Ok(StreamSocketRequest::GetTcpUserTimeout {
58540                            responder: StreamSocketGetTcpUserTimeoutResponder {
58541                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58542                                tx_id: header.tx_id,
58543                            },
58544                        })
58545                    }
58546                    _ => Err(fidl::Error::UnknownOrdinal {
58547                        ordinal: header.ordinal,
58548                        protocol_name:
58549                            <StreamSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
58550                    }),
58551                }))
58552            },
58553        )
58554    }
58555}
58556
58557/// A stream socket.
58558///
58559/// All methods on this type are nonblocking; their exact behaviors match their
58560/// Linux counterparts.
58561///
58562/// *Warning:* This protocol is not yet ready for direct use by clients.
58563/// Instead, clients should use the BSD sockets API to interact with sockets.
58564/// We plan to change this protocol substantially and clients that couple
58565/// directly to this protocol will make those changes more difficult.
58566#[derive(Debug)]
58567pub enum StreamSocketRequest {
58568    Clone {
58569        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
58570        control_handle: StreamSocketControlHandle,
58571    },
58572    /// Terminates the connection.
58573    ///
58574    /// After calling `Close`, the client must not send any other requests.
58575    ///
58576    /// Servers, after sending the status response, should close the connection
58577    /// regardless of status and without sending an epitaph.
58578    ///
58579    /// Closing the client end of the channel should be semantically equivalent
58580    /// to calling `Close` without knowing when the close has completed or its
58581    /// status.
58582    Close {
58583        responder: StreamSocketCloseResponder,
58584    },
58585    Query {
58586        responder: StreamSocketQueryResponder,
58587    },
58588    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
58589    SetReuseAddress {
58590        value: bool,
58591        responder: StreamSocketSetReuseAddressResponder,
58592    },
58593    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
58594    GetReuseAddress {
58595        responder: StreamSocketGetReuseAddressResponder,
58596    },
58597    /// Get `SOL_SOCKET` -> `SO_ERROR`.
58598    /// Returns the last error if there is an error set on the socket.
58599    GetError {
58600        responder: StreamSocketGetErrorResponder,
58601    },
58602    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
58603    SetBroadcast {
58604        value: bool,
58605        responder: StreamSocketSetBroadcastResponder,
58606    },
58607    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
58608    GetBroadcast {
58609        responder: StreamSocketGetBroadcastResponder,
58610    },
58611    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
58612    SetSendBuffer {
58613        value_bytes: u64,
58614        responder: StreamSocketSetSendBufferResponder,
58615    },
58616    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
58617    GetSendBuffer {
58618        responder: StreamSocketGetSendBufferResponder,
58619    },
58620    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
58621    SetReceiveBuffer {
58622        value_bytes: u64,
58623        responder: StreamSocketSetReceiveBufferResponder,
58624    },
58625    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
58626    GetReceiveBuffer {
58627        responder: StreamSocketGetReceiveBufferResponder,
58628    },
58629    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
58630    SetKeepAlive {
58631        value: bool,
58632        responder: StreamSocketSetKeepAliveResponder,
58633    },
58634    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
58635    GetKeepAlive {
58636        responder: StreamSocketGetKeepAliveResponder,
58637    },
58638    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
58639    SetOutOfBandInline {
58640        value: bool,
58641        responder: StreamSocketSetOutOfBandInlineResponder,
58642    },
58643    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
58644    GetOutOfBandInline {
58645        responder: StreamSocketGetOutOfBandInlineResponder,
58646    },
58647    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
58648    SetNoCheck {
58649        value: bool,
58650        responder: StreamSocketSetNoCheckResponder,
58651    },
58652    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
58653    GetNoCheck {
58654        responder: StreamSocketGetNoCheckResponder,
58655    },
58656    /// Set `SOL_SOCKET` -> `SO_LINGER`.
58657    SetLinger {
58658        linger: bool,
58659        length_secs: u32,
58660        responder: StreamSocketSetLingerResponder,
58661    },
58662    /// Get `SOL_SOCKET` -> `SO_LINGER`.
58663    GetLinger {
58664        responder: StreamSocketGetLingerResponder,
58665    },
58666    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
58667    SetReusePort {
58668        value: bool,
58669        responder: StreamSocketSetReusePortResponder,
58670    },
58671    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
58672    GetReusePort {
58673        responder: StreamSocketGetReusePortResponder,
58674    },
58675    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
58676    GetAcceptConn {
58677        responder: StreamSocketGetAcceptConnResponder,
58678    },
58679    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
58680    SetBindToDevice {
58681        value: String,
58682        responder: StreamSocketSetBindToDeviceResponder,
58683    },
58684    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
58685    GetBindToDevice {
58686        responder: StreamSocketGetBindToDeviceResponder,
58687    },
58688    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
58689    /// If `value` is 0, this clears the bound interface.
58690    SetBindToInterfaceIndex {
58691        value: u64,
58692        responder: StreamSocketSetBindToInterfaceIndexResponder,
58693    },
58694    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
58695    GetBindToInterfaceIndex {
58696        responder: StreamSocketGetBindToInterfaceIndexResponder,
58697    },
58698    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
58699    SetTimestamp {
58700        value: TimestampOption,
58701        responder: StreamSocketSetTimestampResponder,
58702    },
58703    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
58704    GetTimestamp {
58705        responder: StreamSocketGetTimestampResponder,
58706    },
58707    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
58708    /// unlike the standard SO_MARK, this API has multiple mark domains and each
58709    /// mark can be set independently in each domain.
58710    SetMark {
58711        domain: fidl_fuchsia_net::MarkDomain,
58712        mark: OptionalUint32,
58713        responder: StreamSocketSetMarkResponder,
58714    },
58715    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
58716    /// unlike the standard SO_MARK, this API has multiple mark domains and each
58717    /// mark can be retrieved independently in each domain.
58718    GetMark {
58719        domain: fidl_fuchsia_net::MarkDomain,
58720        responder: StreamSocketGetMarkResponder,
58721    },
58722    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
58723    GetCookie {
58724        responder: StreamSocketGetCookieResponder,
58725    },
58726    /// Sets the local address used for the socket.
58727    Bind {
58728        addr: fidl_fuchsia_net::SocketAddress,
58729        responder: StreamSocketBindResponder,
58730    },
58731    /// Initiates a connection to a remote address.
58732    Connect {
58733        addr: fidl_fuchsia_net::SocketAddress,
58734        responder: StreamSocketConnectResponder,
58735    },
58736    /// Clears connection information from this socket.
58737    Disconnect {
58738        responder: StreamSocketDisconnectResponder,
58739    },
58740    /// Retrieves the local socket address.
58741    GetSockName {
58742        responder: StreamSocketGetSockNameResponder,
58743    },
58744    /// Retrieves the remote socket address.
58745    GetPeerName {
58746        responder: StreamSocketGetPeerNameResponder,
58747    },
58748    /// Shuts down part of the socket.
58749    Shutdown {
58750        mode: ShutdownMode,
58751        responder: StreamSocketShutdownResponder,
58752    },
58753    /// Set `SOL_IP` -> `IP_TOS`.
58754    SetIpTypeOfService {
58755        value: u8,
58756        responder: StreamSocketSetIpTypeOfServiceResponder,
58757    },
58758    /// Get `SOL_IP` -> `IP_TOS`.
58759    GetIpTypeOfService {
58760        responder: StreamSocketGetIpTypeOfServiceResponder,
58761    },
58762    /// Set `SOL_IP` -> `IP_TTL`.
58763    SetIpTtl {
58764        value: OptionalUint8,
58765        responder: StreamSocketSetIpTtlResponder,
58766    },
58767    /// Get `SOL_IP` -> `IP_TTL`.
58768    GetIpTtl {
58769        responder: StreamSocketGetIpTtlResponder,
58770    },
58771    /// Set `SOL_IP` -> `IP_PKTINFO`.
58772    SetIpPacketInfo {
58773        value: bool,
58774        responder: StreamSocketSetIpPacketInfoResponder,
58775    },
58776    /// Get `SOL_IP` -> `IP_PKTINFO`.
58777    GetIpPacketInfo {
58778        responder: StreamSocketGetIpPacketInfoResponder,
58779    },
58780    /// Set `SOL_IP` -> `IP_RECVTOS`.
58781    SetIpReceiveTypeOfService {
58782        value: bool,
58783        responder: StreamSocketSetIpReceiveTypeOfServiceResponder,
58784    },
58785    /// Get `SOL_IP` -> `IP_RECVTOS`.
58786    GetIpReceiveTypeOfService {
58787        responder: StreamSocketGetIpReceiveTypeOfServiceResponder,
58788    },
58789    /// Set `SOL_IP` -> `IP_RECVTTL`.
58790    SetIpReceiveTtl {
58791        value: bool,
58792        responder: StreamSocketSetIpReceiveTtlResponder,
58793    },
58794    /// Get `SOL_IP` -> `IP_RECVTTL`.
58795    GetIpReceiveTtl {
58796        responder: StreamSocketGetIpReceiveTtlResponder,
58797    },
58798    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
58799    SetIpMulticastInterface {
58800        iface: u64,
58801        address: fidl_fuchsia_net::Ipv4Address,
58802        responder: StreamSocketSetIpMulticastInterfaceResponder,
58803    },
58804    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
58805    GetIpMulticastInterface {
58806        responder: StreamSocketGetIpMulticastInterfaceResponder,
58807    },
58808    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
58809    SetIpMulticastTtl {
58810        value: OptionalUint8,
58811        responder: StreamSocketSetIpMulticastTtlResponder,
58812    },
58813    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
58814    GetIpMulticastTtl {
58815        responder: StreamSocketGetIpMulticastTtlResponder,
58816    },
58817    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
58818    SetIpMulticastLoopback {
58819        value: bool,
58820        responder: StreamSocketSetIpMulticastLoopbackResponder,
58821    },
58822    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
58823    GetIpMulticastLoopback {
58824        responder: StreamSocketGetIpMulticastLoopbackResponder,
58825    },
58826    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
58827    AddIpMembership {
58828        membership: IpMulticastMembership,
58829        responder: StreamSocketAddIpMembershipResponder,
58830    },
58831    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
58832    DropIpMembership {
58833        membership: IpMulticastMembership,
58834        responder: StreamSocketDropIpMembershipResponder,
58835    },
58836    /// Set `SOL_IP` -> `IP_TRANSPARENT`
58837    SetIpTransparent {
58838        value: bool,
58839        responder: StreamSocketSetIpTransparentResponder,
58840    },
58841    /// Get `SOL_IP` -> `IP_TRANSPARENT`
58842    GetIpTransparent {
58843        responder: StreamSocketGetIpTransparentResponder,
58844    },
58845    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
58846    SetIpReceiveOriginalDestinationAddress {
58847        value: bool,
58848        responder: StreamSocketSetIpReceiveOriginalDestinationAddressResponder,
58849    },
58850    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
58851    GetIpReceiveOriginalDestinationAddress {
58852        responder: StreamSocketGetIpReceiveOriginalDestinationAddressResponder,
58853    },
58854    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
58855    AddIpv6Membership {
58856        membership: Ipv6MulticastMembership,
58857        responder: StreamSocketAddIpv6MembershipResponder,
58858    },
58859    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
58860    DropIpv6Membership {
58861        membership: Ipv6MulticastMembership,
58862        responder: StreamSocketDropIpv6MembershipResponder,
58863    },
58864    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
58865    SetIpv6MulticastInterface {
58866        value: u64,
58867        responder: StreamSocketSetIpv6MulticastInterfaceResponder,
58868    },
58869    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
58870    GetIpv6MulticastInterface {
58871        responder: StreamSocketGetIpv6MulticastInterfaceResponder,
58872    },
58873    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
58874    SetIpv6UnicastHops {
58875        value: OptionalUint8,
58876        responder: StreamSocketSetIpv6UnicastHopsResponder,
58877    },
58878    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
58879    GetIpv6UnicastHops {
58880        responder: StreamSocketGetIpv6UnicastHopsResponder,
58881    },
58882    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
58883    SetIpv6ReceiveHopLimit {
58884        value: bool,
58885        responder: StreamSocketSetIpv6ReceiveHopLimitResponder,
58886    },
58887    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
58888    GetIpv6ReceiveHopLimit {
58889        responder: StreamSocketGetIpv6ReceiveHopLimitResponder,
58890    },
58891    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
58892    SetIpv6MulticastHops {
58893        value: OptionalUint8,
58894        responder: StreamSocketSetIpv6MulticastHopsResponder,
58895    },
58896    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
58897    GetIpv6MulticastHops {
58898        responder: StreamSocketGetIpv6MulticastHopsResponder,
58899    },
58900    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
58901    SetIpv6MulticastLoopback {
58902        value: bool,
58903        responder: StreamSocketSetIpv6MulticastLoopbackResponder,
58904    },
58905    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
58906    GetIpv6MulticastLoopback {
58907        responder: StreamSocketGetIpv6MulticastLoopbackResponder,
58908    },
58909    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
58910    SetIpv6Only {
58911        value: bool,
58912        responder: StreamSocketSetIpv6OnlyResponder,
58913    },
58914    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
58915    GetIpv6Only {
58916        responder: StreamSocketGetIpv6OnlyResponder,
58917    },
58918    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
58919    SetIpv6ReceiveTrafficClass {
58920        value: bool,
58921        responder: StreamSocketSetIpv6ReceiveTrafficClassResponder,
58922    },
58923    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
58924    GetIpv6ReceiveTrafficClass {
58925        responder: StreamSocketGetIpv6ReceiveTrafficClassResponder,
58926    },
58927    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
58928    SetIpv6TrafficClass {
58929        value: OptionalUint8,
58930        responder: StreamSocketSetIpv6TrafficClassResponder,
58931    },
58932    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
58933    GetIpv6TrafficClass {
58934        responder: StreamSocketGetIpv6TrafficClassResponder,
58935    },
58936    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
58937    SetIpv6ReceivePacketInfo {
58938        value: bool,
58939        responder: StreamSocketSetIpv6ReceivePacketInfoResponder,
58940    },
58941    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
58942    GetIpv6ReceivePacketInfo {
58943        responder: StreamSocketGetIpv6ReceivePacketInfoResponder,
58944    },
58945    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
58946    GetOriginalDestination {
58947        responder: StreamSocketGetOriginalDestinationResponder,
58948    },
58949    Describe {
58950        responder: StreamSocketDescribeResponder,
58951    },
58952    /// Begins listening for new incoming connections. At most `backlog`
58953    /// connections will be buffered.
58954    Listen {
58955        backlog: i16,
58956        responder: StreamSocketListenResponder,
58957    },
58958    /// Accepts a buffered incoming connection.
58959    Accept {
58960        want_addr: bool,
58961        responder: StreamSocketAcceptResponder,
58962    },
58963    /// Retrieves creation information from the socket.
58964    GetInfo {
58965        responder: StreamSocketGetInfoResponder,
58966    },
58967    /// Set `SOL_TCP` -> `TCP_NODELAY`.
58968    SetTcpNoDelay {
58969        value: bool,
58970        responder: StreamSocketSetTcpNoDelayResponder,
58971    },
58972    /// Get `SOL_TCP` -> `TCP_NODELAY`.
58973    GetTcpNoDelay {
58974        responder: StreamSocketGetTcpNoDelayResponder,
58975    },
58976    /// Set `SOL_TCP` -> `TCP_MAXSEG`.
58977    SetTcpMaxSegment {
58978        value_bytes: u32,
58979        responder: StreamSocketSetTcpMaxSegmentResponder,
58980    },
58981    /// Get `SOL_TCP` -> `TCP_MAXSEG`.
58982    GetTcpMaxSegment {
58983        responder: StreamSocketGetTcpMaxSegmentResponder,
58984    },
58985    /// Set `SOL_TCP` -> `TCP_CORK`.
58986    SetTcpCork {
58987        value: bool,
58988        responder: StreamSocketSetTcpCorkResponder,
58989    },
58990    /// Get `SOL_TCP` -> `TCP_CORK`.
58991    GetTcpCork {
58992        responder: StreamSocketGetTcpCorkResponder,
58993    },
58994    /// Set `SOL_TCP` -> `TCP_KEEPIDLE`.
58995    SetTcpKeepAliveIdle {
58996        value_secs: u32,
58997        responder: StreamSocketSetTcpKeepAliveIdleResponder,
58998    },
58999    /// Get `SOL_TCP` -> `TCP_KEEPIDLE`.
59000    GetTcpKeepAliveIdle {
59001        responder: StreamSocketGetTcpKeepAliveIdleResponder,
59002    },
59003    /// Set `SOL_TCP` -> `TCP_KEEPINTVL`.
59004    SetTcpKeepAliveInterval {
59005        value_secs: u32,
59006        responder: StreamSocketSetTcpKeepAliveIntervalResponder,
59007    },
59008    /// Get `SOL_TCP` -> `TCP_KEEPINTVL`.
59009    GetTcpKeepAliveInterval {
59010        responder: StreamSocketGetTcpKeepAliveIntervalResponder,
59011    },
59012    /// Set `SOL_TCP` -> `TCP_KEEPCNT`.
59013    SetTcpKeepAliveCount {
59014        value: u32,
59015        responder: StreamSocketSetTcpKeepAliveCountResponder,
59016    },
59017    /// Get `SOL_TCP` -> `TCP_KEEPCNT`.
59018    GetTcpKeepAliveCount {
59019        responder: StreamSocketGetTcpKeepAliveCountResponder,
59020    },
59021    /// Set `SOL_TCP` -> `TCP_SYNCNT`.
59022    SetTcpSynCount {
59023        value: u32,
59024        responder: StreamSocketSetTcpSynCountResponder,
59025    },
59026    /// Get `SOL_TCP` -> `TCP_SYNCNT`.
59027    GetTcpSynCount {
59028        responder: StreamSocketGetTcpSynCountResponder,
59029    },
59030    /// Set `SOL_TCP` -> `TCP_LINGER2`.
59031    SetTcpLinger {
59032        value_secs: OptionalUint32,
59033        responder: StreamSocketSetTcpLingerResponder,
59034    },
59035    /// Get `SOL_TCP` -> `TCP_LINGER2`.
59036    GetTcpLinger {
59037        responder: StreamSocketGetTcpLingerResponder,
59038    },
59039    /// Set `SOL_TCP` -> `TCP_DEFER_ACCEPT`.
59040    SetTcpDeferAccept {
59041        value_secs: u32,
59042        responder: StreamSocketSetTcpDeferAcceptResponder,
59043    },
59044    /// Get `SOL_TCP` -> `TCP_DEFER_ACCEPT`.
59045    GetTcpDeferAccept {
59046        responder: StreamSocketGetTcpDeferAcceptResponder,
59047    },
59048    /// Set `SOL_TCP` -> `TCP_WINDOW_CLAMP`.
59049    SetTcpWindowClamp {
59050        value: u32,
59051        responder: StreamSocketSetTcpWindowClampResponder,
59052    },
59053    /// Get `SOL_TCP` -> `TCP_WINDOW_CLAMP`.
59054    GetTcpWindowClamp {
59055        responder: StreamSocketGetTcpWindowClampResponder,
59056    },
59057    /// Get `SOL_TCP` -> `TCP_INFO`.
59058    GetTcpInfo {
59059        responder: StreamSocketGetTcpInfoResponder,
59060    },
59061    /// Set `SOL_TCP` -> `TCP_QUICKACK`.
59062    SetTcpQuickAck {
59063        value: bool,
59064        responder: StreamSocketSetTcpQuickAckResponder,
59065    },
59066    /// Get `SOL_TCP` -> `TCP_QUICKACK`.
59067    GetTcpQuickAck {
59068        responder: StreamSocketGetTcpQuickAckResponder,
59069    },
59070    /// Set `SOL_TCP` -> `TCP_CONGESTION`.
59071    SetTcpCongestion {
59072        value: TcpCongestionControl,
59073        responder: StreamSocketSetTcpCongestionResponder,
59074    },
59075    /// Get `SOL_TCP` -> `TCP_CONGESTION`.
59076    GetTcpCongestion {
59077        responder: StreamSocketGetTcpCongestionResponder,
59078    },
59079    /// Set `SOL_TCP` -> `TCP_USER_TIMEOUT`.
59080    SetTcpUserTimeout {
59081        value_millis: u32,
59082        responder: StreamSocketSetTcpUserTimeoutResponder,
59083    },
59084    /// Get `SOL_TCP` -> `TCP_USER_TIMEOUT`.
59085    GetTcpUserTimeout {
59086        responder: StreamSocketGetTcpUserTimeoutResponder,
59087    },
59088}
59089
59090impl StreamSocketRequest {
59091    #[allow(irrefutable_let_patterns)]
59092    pub fn into_clone(
59093        self,
59094    ) -> Option<(
59095        fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
59096        StreamSocketControlHandle,
59097    )> {
59098        if let StreamSocketRequest::Clone { request, control_handle } = self {
59099            Some((request, control_handle))
59100        } else {
59101            None
59102        }
59103    }
59104
59105    #[allow(irrefutable_let_patterns)]
59106    pub fn into_close(self) -> Option<(StreamSocketCloseResponder)> {
59107        if let StreamSocketRequest::Close { responder } = self {
59108            Some((responder))
59109        } else {
59110            None
59111        }
59112    }
59113
59114    #[allow(irrefutable_let_patterns)]
59115    pub fn into_query(self) -> Option<(StreamSocketQueryResponder)> {
59116        if let StreamSocketRequest::Query { responder } = self {
59117            Some((responder))
59118        } else {
59119            None
59120        }
59121    }
59122
59123    #[allow(irrefutable_let_patterns)]
59124    pub fn into_set_reuse_address(self) -> Option<(bool, StreamSocketSetReuseAddressResponder)> {
59125        if let StreamSocketRequest::SetReuseAddress { value, responder } = self {
59126            Some((value, responder))
59127        } else {
59128            None
59129        }
59130    }
59131
59132    #[allow(irrefutable_let_patterns)]
59133    pub fn into_get_reuse_address(self) -> Option<(StreamSocketGetReuseAddressResponder)> {
59134        if let StreamSocketRequest::GetReuseAddress { responder } = self {
59135            Some((responder))
59136        } else {
59137            None
59138        }
59139    }
59140
59141    #[allow(irrefutable_let_patterns)]
59142    pub fn into_get_error(self) -> Option<(StreamSocketGetErrorResponder)> {
59143        if let StreamSocketRequest::GetError { responder } = self {
59144            Some((responder))
59145        } else {
59146            None
59147        }
59148    }
59149
59150    #[allow(irrefutable_let_patterns)]
59151    pub fn into_set_broadcast(self) -> Option<(bool, StreamSocketSetBroadcastResponder)> {
59152        if let StreamSocketRequest::SetBroadcast { value, responder } = self {
59153            Some((value, responder))
59154        } else {
59155            None
59156        }
59157    }
59158
59159    #[allow(irrefutable_let_patterns)]
59160    pub fn into_get_broadcast(self) -> Option<(StreamSocketGetBroadcastResponder)> {
59161        if let StreamSocketRequest::GetBroadcast { responder } = self {
59162            Some((responder))
59163        } else {
59164            None
59165        }
59166    }
59167
59168    #[allow(irrefutable_let_patterns)]
59169    pub fn into_set_send_buffer(self) -> Option<(u64, StreamSocketSetSendBufferResponder)> {
59170        if let StreamSocketRequest::SetSendBuffer { value_bytes, responder } = self {
59171            Some((value_bytes, responder))
59172        } else {
59173            None
59174        }
59175    }
59176
59177    #[allow(irrefutable_let_patterns)]
59178    pub fn into_get_send_buffer(self) -> Option<(StreamSocketGetSendBufferResponder)> {
59179        if let StreamSocketRequest::GetSendBuffer { responder } = self {
59180            Some((responder))
59181        } else {
59182            None
59183        }
59184    }
59185
59186    #[allow(irrefutable_let_patterns)]
59187    pub fn into_set_receive_buffer(self) -> Option<(u64, StreamSocketSetReceiveBufferResponder)> {
59188        if let StreamSocketRequest::SetReceiveBuffer { value_bytes, responder } = self {
59189            Some((value_bytes, responder))
59190        } else {
59191            None
59192        }
59193    }
59194
59195    #[allow(irrefutable_let_patterns)]
59196    pub fn into_get_receive_buffer(self) -> Option<(StreamSocketGetReceiveBufferResponder)> {
59197        if let StreamSocketRequest::GetReceiveBuffer { responder } = self {
59198            Some((responder))
59199        } else {
59200            None
59201        }
59202    }
59203
59204    #[allow(irrefutable_let_patterns)]
59205    pub fn into_set_keep_alive(self) -> Option<(bool, StreamSocketSetKeepAliveResponder)> {
59206        if let StreamSocketRequest::SetKeepAlive { value, responder } = self {
59207            Some((value, responder))
59208        } else {
59209            None
59210        }
59211    }
59212
59213    #[allow(irrefutable_let_patterns)]
59214    pub fn into_get_keep_alive(self) -> Option<(StreamSocketGetKeepAliveResponder)> {
59215        if let StreamSocketRequest::GetKeepAlive { responder } = self {
59216            Some((responder))
59217        } else {
59218            None
59219        }
59220    }
59221
59222    #[allow(irrefutable_let_patterns)]
59223    pub fn into_set_out_of_band_inline(
59224        self,
59225    ) -> Option<(bool, StreamSocketSetOutOfBandInlineResponder)> {
59226        if let StreamSocketRequest::SetOutOfBandInline { value, responder } = self {
59227            Some((value, responder))
59228        } else {
59229            None
59230        }
59231    }
59232
59233    #[allow(irrefutable_let_patterns)]
59234    pub fn into_get_out_of_band_inline(self) -> Option<(StreamSocketGetOutOfBandInlineResponder)> {
59235        if let StreamSocketRequest::GetOutOfBandInline { responder } = self {
59236            Some((responder))
59237        } else {
59238            None
59239        }
59240    }
59241
59242    #[allow(irrefutable_let_patterns)]
59243    pub fn into_set_no_check(self) -> Option<(bool, StreamSocketSetNoCheckResponder)> {
59244        if let StreamSocketRequest::SetNoCheck { value, responder } = self {
59245            Some((value, responder))
59246        } else {
59247            None
59248        }
59249    }
59250
59251    #[allow(irrefutable_let_patterns)]
59252    pub fn into_get_no_check(self) -> Option<(StreamSocketGetNoCheckResponder)> {
59253        if let StreamSocketRequest::GetNoCheck { responder } = self {
59254            Some((responder))
59255        } else {
59256            None
59257        }
59258    }
59259
59260    #[allow(irrefutable_let_patterns)]
59261    pub fn into_set_linger(self) -> Option<(bool, u32, StreamSocketSetLingerResponder)> {
59262        if let StreamSocketRequest::SetLinger { linger, length_secs, responder } = self {
59263            Some((linger, length_secs, responder))
59264        } else {
59265            None
59266        }
59267    }
59268
59269    #[allow(irrefutable_let_patterns)]
59270    pub fn into_get_linger(self) -> Option<(StreamSocketGetLingerResponder)> {
59271        if let StreamSocketRequest::GetLinger { responder } = self {
59272            Some((responder))
59273        } else {
59274            None
59275        }
59276    }
59277
59278    #[allow(irrefutable_let_patterns)]
59279    pub fn into_set_reuse_port(self) -> Option<(bool, StreamSocketSetReusePortResponder)> {
59280        if let StreamSocketRequest::SetReusePort { value, responder } = self {
59281            Some((value, responder))
59282        } else {
59283            None
59284        }
59285    }
59286
59287    #[allow(irrefutable_let_patterns)]
59288    pub fn into_get_reuse_port(self) -> Option<(StreamSocketGetReusePortResponder)> {
59289        if let StreamSocketRequest::GetReusePort { responder } = self {
59290            Some((responder))
59291        } else {
59292            None
59293        }
59294    }
59295
59296    #[allow(irrefutable_let_patterns)]
59297    pub fn into_get_accept_conn(self) -> Option<(StreamSocketGetAcceptConnResponder)> {
59298        if let StreamSocketRequest::GetAcceptConn { responder } = self {
59299            Some((responder))
59300        } else {
59301            None
59302        }
59303    }
59304
59305    #[allow(irrefutable_let_patterns)]
59306    pub fn into_set_bind_to_device(self) -> Option<(String, StreamSocketSetBindToDeviceResponder)> {
59307        if let StreamSocketRequest::SetBindToDevice { value, responder } = self {
59308            Some((value, responder))
59309        } else {
59310            None
59311        }
59312    }
59313
59314    #[allow(irrefutable_let_patterns)]
59315    pub fn into_get_bind_to_device(self) -> Option<(StreamSocketGetBindToDeviceResponder)> {
59316        if let StreamSocketRequest::GetBindToDevice { responder } = self {
59317            Some((responder))
59318        } else {
59319            None
59320        }
59321    }
59322
59323    #[allow(irrefutable_let_patterns)]
59324    pub fn into_set_bind_to_interface_index(
59325        self,
59326    ) -> Option<(u64, StreamSocketSetBindToInterfaceIndexResponder)> {
59327        if let StreamSocketRequest::SetBindToInterfaceIndex { value, responder } = self {
59328            Some((value, responder))
59329        } else {
59330            None
59331        }
59332    }
59333
59334    #[allow(irrefutable_let_patterns)]
59335    pub fn into_get_bind_to_interface_index(
59336        self,
59337    ) -> Option<(StreamSocketGetBindToInterfaceIndexResponder)> {
59338        if let StreamSocketRequest::GetBindToInterfaceIndex { responder } = self {
59339            Some((responder))
59340        } else {
59341            None
59342        }
59343    }
59344
59345    #[allow(irrefutable_let_patterns)]
59346    pub fn into_set_timestamp(
59347        self,
59348    ) -> Option<(TimestampOption, StreamSocketSetTimestampResponder)> {
59349        if let StreamSocketRequest::SetTimestamp { value, responder } = self {
59350            Some((value, responder))
59351        } else {
59352            None
59353        }
59354    }
59355
59356    #[allow(irrefutable_let_patterns)]
59357    pub fn into_get_timestamp(self) -> Option<(StreamSocketGetTimestampResponder)> {
59358        if let StreamSocketRequest::GetTimestamp { responder } = self {
59359            Some((responder))
59360        } else {
59361            None
59362        }
59363    }
59364
59365    #[allow(irrefutable_let_patterns)]
59366    pub fn into_set_mark(
59367        self,
59368    ) -> Option<(fidl_fuchsia_net::MarkDomain, OptionalUint32, StreamSocketSetMarkResponder)> {
59369        if let StreamSocketRequest::SetMark { domain, mark, responder } = self {
59370            Some((domain, mark, responder))
59371        } else {
59372            None
59373        }
59374    }
59375
59376    #[allow(irrefutable_let_patterns)]
59377    pub fn into_get_mark(
59378        self,
59379    ) -> Option<(fidl_fuchsia_net::MarkDomain, StreamSocketGetMarkResponder)> {
59380        if let StreamSocketRequest::GetMark { domain, responder } = self {
59381            Some((domain, responder))
59382        } else {
59383            None
59384        }
59385    }
59386
59387    #[allow(irrefutable_let_patterns)]
59388    pub fn into_get_cookie(self) -> Option<(StreamSocketGetCookieResponder)> {
59389        if let StreamSocketRequest::GetCookie { responder } = self {
59390            Some((responder))
59391        } else {
59392            None
59393        }
59394    }
59395
59396    #[allow(irrefutable_let_patterns)]
59397    pub fn into_bind(self) -> Option<(fidl_fuchsia_net::SocketAddress, StreamSocketBindResponder)> {
59398        if let StreamSocketRequest::Bind { addr, responder } = self {
59399            Some((addr, responder))
59400        } else {
59401            None
59402        }
59403    }
59404
59405    #[allow(irrefutable_let_patterns)]
59406    pub fn into_connect(
59407        self,
59408    ) -> Option<(fidl_fuchsia_net::SocketAddress, StreamSocketConnectResponder)> {
59409        if let StreamSocketRequest::Connect { addr, responder } = self {
59410            Some((addr, responder))
59411        } else {
59412            None
59413        }
59414    }
59415
59416    #[allow(irrefutable_let_patterns)]
59417    pub fn into_disconnect(self) -> Option<(StreamSocketDisconnectResponder)> {
59418        if let StreamSocketRequest::Disconnect { responder } = self {
59419            Some((responder))
59420        } else {
59421            None
59422        }
59423    }
59424
59425    #[allow(irrefutable_let_patterns)]
59426    pub fn into_get_sock_name(self) -> Option<(StreamSocketGetSockNameResponder)> {
59427        if let StreamSocketRequest::GetSockName { responder } = self {
59428            Some((responder))
59429        } else {
59430            None
59431        }
59432    }
59433
59434    #[allow(irrefutable_let_patterns)]
59435    pub fn into_get_peer_name(self) -> Option<(StreamSocketGetPeerNameResponder)> {
59436        if let StreamSocketRequest::GetPeerName { responder } = self {
59437            Some((responder))
59438        } else {
59439            None
59440        }
59441    }
59442
59443    #[allow(irrefutable_let_patterns)]
59444    pub fn into_shutdown(self) -> Option<(ShutdownMode, StreamSocketShutdownResponder)> {
59445        if let StreamSocketRequest::Shutdown { mode, responder } = self {
59446            Some((mode, responder))
59447        } else {
59448            None
59449        }
59450    }
59451
59452    #[allow(irrefutable_let_patterns)]
59453    pub fn into_set_ip_type_of_service(
59454        self,
59455    ) -> Option<(u8, StreamSocketSetIpTypeOfServiceResponder)> {
59456        if let StreamSocketRequest::SetIpTypeOfService { value, responder } = self {
59457            Some((value, responder))
59458        } else {
59459            None
59460        }
59461    }
59462
59463    #[allow(irrefutable_let_patterns)]
59464    pub fn into_get_ip_type_of_service(self) -> Option<(StreamSocketGetIpTypeOfServiceResponder)> {
59465        if let StreamSocketRequest::GetIpTypeOfService { responder } = self {
59466            Some((responder))
59467        } else {
59468            None
59469        }
59470    }
59471
59472    #[allow(irrefutable_let_patterns)]
59473    pub fn into_set_ip_ttl(self) -> Option<(OptionalUint8, StreamSocketSetIpTtlResponder)> {
59474        if let StreamSocketRequest::SetIpTtl { value, responder } = self {
59475            Some((value, responder))
59476        } else {
59477            None
59478        }
59479    }
59480
59481    #[allow(irrefutable_let_patterns)]
59482    pub fn into_get_ip_ttl(self) -> Option<(StreamSocketGetIpTtlResponder)> {
59483        if let StreamSocketRequest::GetIpTtl { responder } = self {
59484            Some((responder))
59485        } else {
59486            None
59487        }
59488    }
59489
59490    #[allow(irrefutable_let_patterns)]
59491    pub fn into_set_ip_packet_info(self) -> Option<(bool, StreamSocketSetIpPacketInfoResponder)> {
59492        if let StreamSocketRequest::SetIpPacketInfo { value, responder } = self {
59493            Some((value, responder))
59494        } else {
59495            None
59496        }
59497    }
59498
59499    #[allow(irrefutable_let_patterns)]
59500    pub fn into_get_ip_packet_info(self) -> Option<(StreamSocketGetIpPacketInfoResponder)> {
59501        if let StreamSocketRequest::GetIpPacketInfo { responder } = self {
59502            Some((responder))
59503        } else {
59504            None
59505        }
59506    }
59507
59508    #[allow(irrefutable_let_patterns)]
59509    pub fn into_set_ip_receive_type_of_service(
59510        self,
59511    ) -> Option<(bool, StreamSocketSetIpReceiveTypeOfServiceResponder)> {
59512        if let StreamSocketRequest::SetIpReceiveTypeOfService { value, responder } = self {
59513            Some((value, responder))
59514        } else {
59515            None
59516        }
59517    }
59518
59519    #[allow(irrefutable_let_patterns)]
59520    pub fn into_get_ip_receive_type_of_service(
59521        self,
59522    ) -> Option<(StreamSocketGetIpReceiveTypeOfServiceResponder)> {
59523        if let StreamSocketRequest::GetIpReceiveTypeOfService { responder } = self {
59524            Some((responder))
59525        } else {
59526            None
59527        }
59528    }
59529
59530    #[allow(irrefutable_let_patterns)]
59531    pub fn into_set_ip_receive_ttl(self) -> Option<(bool, StreamSocketSetIpReceiveTtlResponder)> {
59532        if let StreamSocketRequest::SetIpReceiveTtl { value, responder } = self {
59533            Some((value, responder))
59534        } else {
59535            None
59536        }
59537    }
59538
59539    #[allow(irrefutable_let_patterns)]
59540    pub fn into_get_ip_receive_ttl(self) -> Option<(StreamSocketGetIpReceiveTtlResponder)> {
59541        if let StreamSocketRequest::GetIpReceiveTtl { responder } = self {
59542            Some((responder))
59543        } else {
59544            None
59545        }
59546    }
59547
59548    #[allow(irrefutable_let_patterns)]
59549    pub fn into_set_ip_multicast_interface(
59550        self,
59551    ) -> Option<(u64, fidl_fuchsia_net::Ipv4Address, StreamSocketSetIpMulticastInterfaceResponder)>
59552    {
59553        if let StreamSocketRequest::SetIpMulticastInterface { iface, address, responder } = self {
59554            Some((iface, address, responder))
59555        } else {
59556            None
59557        }
59558    }
59559
59560    #[allow(irrefutable_let_patterns)]
59561    pub fn into_get_ip_multicast_interface(
59562        self,
59563    ) -> Option<(StreamSocketGetIpMulticastInterfaceResponder)> {
59564        if let StreamSocketRequest::GetIpMulticastInterface { responder } = self {
59565            Some((responder))
59566        } else {
59567            None
59568        }
59569    }
59570
59571    #[allow(irrefutable_let_patterns)]
59572    pub fn into_set_ip_multicast_ttl(
59573        self,
59574    ) -> Option<(OptionalUint8, StreamSocketSetIpMulticastTtlResponder)> {
59575        if let StreamSocketRequest::SetIpMulticastTtl { value, responder } = self {
59576            Some((value, responder))
59577        } else {
59578            None
59579        }
59580    }
59581
59582    #[allow(irrefutable_let_patterns)]
59583    pub fn into_get_ip_multicast_ttl(self) -> Option<(StreamSocketGetIpMulticastTtlResponder)> {
59584        if let StreamSocketRequest::GetIpMulticastTtl { responder } = self {
59585            Some((responder))
59586        } else {
59587            None
59588        }
59589    }
59590
59591    #[allow(irrefutable_let_patterns)]
59592    pub fn into_set_ip_multicast_loopback(
59593        self,
59594    ) -> Option<(bool, StreamSocketSetIpMulticastLoopbackResponder)> {
59595        if let StreamSocketRequest::SetIpMulticastLoopback { value, responder } = self {
59596            Some((value, responder))
59597        } else {
59598            None
59599        }
59600    }
59601
59602    #[allow(irrefutable_let_patterns)]
59603    pub fn into_get_ip_multicast_loopback(
59604        self,
59605    ) -> Option<(StreamSocketGetIpMulticastLoopbackResponder)> {
59606        if let StreamSocketRequest::GetIpMulticastLoopback { responder } = self {
59607            Some((responder))
59608        } else {
59609            None
59610        }
59611    }
59612
59613    #[allow(irrefutable_let_patterns)]
59614    pub fn into_add_ip_membership(
59615        self,
59616    ) -> Option<(IpMulticastMembership, StreamSocketAddIpMembershipResponder)> {
59617        if let StreamSocketRequest::AddIpMembership { membership, responder } = self {
59618            Some((membership, responder))
59619        } else {
59620            None
59621        }
59622    }
59623
59624    #[allow(irrefutable_let_patterns)]
59625    pub fn into_drop_ip_membership(
59626        self,
59627    ) -> Option<(IpMulticastMembership, StreamSocketDropIpMembershipResponder)> {
59628        if let StreamSocketRequest::DropIpMembership { membership, responder } = self {
59629            Some((membership, responder))
59630        } else {
59631            None
59632        }
59633    }
59634
59635    #[allow(irrefutable_let_patterns)]
59636    pub fn into_set_ip_transparent(self) -> Option<(bool, StreamSocketSetIpTransparentResponder)> {
59637        if let StreamSocketRequest::SetIpTransparent { value, responder } = self {
59638            Some((value, responder))
59639        } else {
59640            None
59641        }
59642    }
59643
59644    #[allow(irrefutable_let_patterns)]
59645    pub fn into_get_ip_transparent(self) -> Option<(StreamSocketGetIpTransparentResponder)> {
59646        if let StreamSocketRequest::GetIpTransparent { responder } = self {
59647            Some((responder))
59648        } else {
59649            None
59650        }
59651    }
59652
59653    #[allow(irrefutable_let_patterns)]
59654    pub fn into_set_ip_receive_original_destination_address(
59655        self,
59656    ) -> Option<(bool, StreamSocketSetIpReceiveOriginalDestinationAddressResponder)> {
59657        if let StreamSocketRequest::SetIpReceiveOriginalDestinationAddress { value, responder } =
59658            self
59659        {
59660            Some((value, responder))
59661        } else {
59662            None
59663        }
59664    }
59665
59666    #[allow(irrefutable_let_patterns)]
59667    pub fn into_get_ip_receive_original_destination_address(
59668        self,
59669    ) -> Option<(StreamSocketGetIpReceiveOriginalDestinationAddressResponder)> {
59670        if let StreamSocketRequest::GetIpReceiveOriginalDestinationAddress { responder } = self {
59671            Some((responder))
59672        } else {
59673            None
59674        }
59675    }
59676
59677    #[allow(irrefutable_let_patterns)]
59678    pub fn into_add_ipv6_membership(
59679        self,
59680    ) -> Option<(Ipv6MulticastMembership, StreamSocketAddIpv6MembershipResponder)> {
59681        if let StreamSocketRequest::AddIpv6Membership { membership, responder } = self {
59682            Some((membership, responder))
59683        } else {
59684            None
59685        }
59686    }
59687
59688    #[allow(irrefutable_let_patterns)]
59689    pub fn into_drop_ipv6_membership(
59690        self,
59691    ) -> Option<(Ipv6MulticastMembership, StreamSocketDropIpv6MembershipResponder)> {
59692        if let StreamSocketRequest::DropIpv6Membership { membership, responder } = self {
59693            Some((membership, responder))
59694        } else {
59695            None
59696        }
59697    }
59698
59699    #[allow(irrefutable_let_patterns)]
59700    pub fn into_set_ipv6_multicast_interface(
59701        self,
59702    ) -> Option<(u64, StreamSocketSetIpv6MulticastInterfaceResponder)> {
59703        if let StreamSocketRequest::SetIpv6MulticastInterface { value, responder } = self {
59704            Some((value, responder))
59705        } else {
59706            None
59707        }
59708    }
59709
59710    #[allow(irrefutable_let_patterns)]
59711    pub fn into_get_ipv6_multicast_interface(
59712        self,
59713    ) -> Option<(StreamSocketGetIpv6MulticastInterfaceResponder)> {
59714        if let StreamSocketRequest::GetIpv6MulticastInterface { responder } = self {
59715            Some((responder))
59716        } else {
59717            None
59718        }
59719    }
59720
59721    #[allow(irrefutable_let_patterns)]
59722    pub fn into_set_ipv6_unicast_hops(
59723        self,
59724    ) -> Option<(OptionalUint8, StreamSocketSetIpv6UnicastHopsResponder)> {
59725        if let StreamSocketRequest::SetIpv6UnicastHops { value, responder } = self {
59726            Some((value, responder))
59727        } else {
59728            None
59729        }
59730    }
59731
59732    #[allow(irrefutable_let_patterns)]
59733    pub fn into_get_ipv6_unicast_hops(self) -> Option<(StreamSocketGetIpv6UnicastHopsResponder)> {
59734        if let StreamSocketRequest::GetIpv6UnicastHops { responder } = self {
59735            Some((responder))
59736        } else {
59737            None
59738        }
59739    }
59740
59741    #[allow(irrefutable_let_patterns)]
59742    pub fn into_set_ipv6_receive_hop_limit(
59743        self,
59744    ) -> Option<(bool, StreamSocketSetIpv6ReceiveHopLimitResponder)> {
59745        if let StreamSocketRequest::SetIpv6ReceiveHopLimit { value, responder } = self {
59746            Some((value, responder))
59747        } else {
59748            None
59749        }
59750    }
59751
59752    #[allow(irrefutable_let_patterns)]
59753    pub fn into_get_ipv6_receive_hop_limit(
59754        self,
59755    ) -> Option<(StreamSocketGetIpv6ReceiveHopLimitResponder)> {
59756        if let StreamSocketRequest::GetIpv6ReceiveHopLimit { responder } = self {
59757            Some((responder))
59758        } else {
59759            None
59760        }
59761    }
59762
59763    #[allow(irrefutable_let_patterns)]
59764    pub fn into_set_ipv6_multicast_hops(
59765        self,
59766    ) -> Option<(OptionalUint8, StreamSocketSetIpv6MulticastHopsResponder)> {
59767        if let StreamSocketRequest::SetIpv6MulticastHops { value, responder } = self {
59768            Some((value, responder))
59769        } else {
59770            None
59771        }
59772    }
59773
59774    #[allow(irrefutable_let_patterns)]
59775    pub fn into_get_ipv6_multicast_hops(
59776        self,
59777    ) -> Option<(StreamSocketGetIpv6MulticastHopsResponder)> {
59778        if let StreamSocketRequest::GetIpv6MulticastHops { responder } = self {
59779            Some((responder))
59780        } else {
59781            None
59782        }
59783    }
59784
59785    #[allow(irrefutable_let_patterns)]
59786    pub fn into_set_ipv6_multicast_loopback(
59787        self,
59788    ) -> Option<(bool, StreamSocketSetIpv6MulticastLoopbackResponder)> {
59789        if let StreamSocketRequest::SetIpv6MulticastLoopback { value, responder } = self {
59790            Some((value, responder))
59791        } else {
59792            None
59793        }
59794    }
59795
59796    #[allow(irrefutable_let_patterns)]
59797    pub fn into_get_ipv6_multicast_loopback(
59798        self,
59799    ) -> Option<(StreamSocketGetIpv6MulticastLoopbackResponder)> {
59800        if let StreamSocketRequest::GetIpv6MulticastLoopback { responder } = self {
59801            Some((responder))
59802        } else {
59803            None
59804        }
59805    }
59806
59807    #[allow(irrefutable_let_patterns)]
59808    pub fn into_set_ipv6_only(self) -> Option<(bool, StreamSocketSetIpv6OnlyResponder)> {
59809        if let StreamSocketRequest::SetIpv6Only { value, responder } = self {
59810            Some((value, responder))
59811        } else {
59812            None
59813        }
59814    }
59815
59816    #[allow(irrefutable_let_patterns)]
59817    pub fn into_get_ipv6_only(self) -> Option<(StreamSocketGetIpv6OnlyResponder)> {
59818        if let StreamSocketRequest::GetIpv6Only { responder } = self {
59819            Some((responder))
59820        } else {
59821            None
59822        }
59823    }
59824
59825    #[allow(irrefutable_let_patterns)]
59826    pub fn into_set_ipv6_receive_traffic_class(
59827        self,
59828    ) -> Option<(bool, StreamSocketSetIpv6ReceiveTrafficClassResponder)> {
59829        if let StreamSocketRequest::SetIpv6ReceiveTrafficClass { value, responder } = self {
59830            Some((value, responder))
59831        } else {
59832            None
59833        }
59834    }
59835
59836    #[allow(irrefutable_let_patterns)]
59837    pub fn into_get_ipv6_receive_traffic_class(
59838        self,
59839    ) -> Option<(StreamSocketGetIpv6ReceiveTrafficClassResponder)> {
59840        if let StreamSocketRequest::GetIpv6ReceiveTrafficClass { responder } = self {
59841            Some((responder))
59842        } else {
59843            None
59844        }
59845    }
59846
59847    #[allow(irrefutable_let_patterns)]
59848    pub fn into_set_ipv6_traffic_class(
59849        self,
59850    ) -> Option<(OptionalUint8, StreamSocketSetIpv6TrafficClassResponder)> {
59851        if let StreamSocketRequest::SetIpv6TrafficClass { value, responder } = self {
59852            Some((value, responder))
59853        } else {
59854            None
59855        }
59856    }
59857
59858    #[allow(irrefutable_let_patterns)]
59859    pub fn into_get_ipv6_traffic_class(self) -> Option<(StreamSocketGetIpv6TrafficClassResponder)> {
59860        if let StreamSocketRequest::GetIpv6TrafficClass { responder } = self {
59861            Some((responder))
59862        } else {
59863            None
59864        }
59865    }
59866
59867    #[allow(irrefutable_let_patterns)]
59868    pub fn into_set_ipv6_receive_packet_info(
59869        self,
59870    ) -> Option<(bool, StreamSocketSetIpv6ReceivePacketInfoResponder)> {
59871        if let StreamSocketRequest::SetIpv6ReceivePacketInfo { value, responder } = self {
59872            Some((value, responder))
59873        } else {
59874            None
59875        }
59876    }
59877
59878    #[allow(irrefutable_let_patterns)]
59879    pub fn into_get_ipv6_receive_packet_info(
59880        self,
59881    ) -> Option<(StreamSocketGetIpv6ReceivePacketInfoResponder)> {
59882        if let StreamSocketRequest::GetIpv6ReceivePacketInfo { responder } = self {
59883            Some((responder))
59884        } else {
59885            None
59886        }
59887    }
59888
59889    #[allow(irrefutable_let_patterns)]
59890    pub fn into_get_original_destination(
59891        self,
59892    ) -> Option<(StreamSocketGetOriginalDestinationResponder)> {
59893        if let StreamSocketRequest::GetOriginalDestination { responder } = self {
59894            Some((responder))
59895        } else {
59896            None
59897        }
59898    }
59899
59900    #[allow(irrefutable_let_patterns)]
59901    pub fn into_describe(self) -> Option<(StreamSocketDescribeResponder)> {
59902        if let StreamSocketRequest::Describe { responder } = self {
59903            Some((responder))
59904        } else {
59905            None
59906        }
59907    }
59908
59909    #[allow(irrefutable_let_patterns)]
59910    pub fn into_listen(self) -> Option<(i16, StreamSocketListenResponder)> {
59911        if let StreamSocketRequest::Listen { backlog, responder } = self {
59912            Some((backlog, responder))
59913        } else {
59914            None
59915        }
59916    }
59917
59918    #[allow(irrefutable_let_patterns)]
59919    pub fn into_accept(self) -> Option<(bool, StreamSocketAcceptResponder)> {
59920        if let StreamSocketRequest::Accept { want_addr, responder } = self {
59921            Some((want_addr, responder))
59922        } else {
59923            None
59924        }
59925    }
59926
59927    #[allow(irrefutable_let_patterns)]
59928    pub fn into_get_info(self) -> Option<(StreamSocketGetInfoResponder)> {
59929        if let StreamSocketRequest::GetInfo { responder } = self {
59930            Some((responder))
59931        } else {
59932            None
59933        }
59934    }
59935
59936    #[allow(irrefutable_let_patterns)]
59937    pub fn into_set_tcp_no_delay(self) -> Option<(bool, StreamSocketSetTcpNoDelayResponder)> {
59938        if let StreamSocketRequest::SetTcpNoDelay { value, responder } = self {
59939            Some((value, responder))
59940        } else {
59941            None
59942        }
59943    }
59944
59945    #[allow(irrefutable_let_patterns)]
59946    pub fn into_get_tcp_no_delay(self) -> Option<(StreamSocketGetTcpNoDelayResponder)> {
59947        if let StreamSocketRequest::GetTcpNoDelay { responder } = self {
59948            Some((responder))
59949        } else {
59950            None
59951        }
59952    }
59953
59954    #[allow(irrefutable_let_patterns)]
59955    pub fn into_set_tcp_max_segment(self) -> Option<(u32, StreamSocketSetTcpMaxSegmentResponder)> {
59956        if let StreamSocketRequest::SetTcpMaxSegment { value_bytes, responder } = self {
59957            Some((value_bytes, responder))
59958        } else {
59959            None
59960        }
59961    }
59962
59963    #[allow(irrefutable_let_patterns)]
59964    pub fn into_get_tcp_max_segment(self) -> Option<(StreamSocketGetTcpMaxSegmentResponder)> {
59965        if let StreamSocketRequest::GetTcpMaxSegment { responder } = self {
59966            Some((responder))
59967        } else {
59968            None
59969        }
59970    }
59971
59972    #[allow(irrefutable_let_patterns)]
59973    pub fn into_set_tcp_cork(self) -> Option<(bool, StreamSocketSetTcpCorkResponder)> {
59974        if let StreamSocketRequest::SetTcpCork { value, responder } = self {
59975            Some((value, responder))
59976        } else {
59977            None
59978        }
59979    }
59980
59981    #[allow(irrefutable_let_patterns)]
59982    pub fn into_get_tcp_cork(self) -> Option<(StreamSocketGetTcpCorkResponder)> {
59983        if let StreamSocketRequest::GetTcpCork { responder } = self {
59984            Some((responder))
59985        } else {
59986            None
59987        }
59988    }
59989
59990    #[allow(irrefutable_let_patterns)]
59991    pub fn into_set_tcp_keep_alive_idle(
59992        self,
59993    ) -> Option<(u32, StreamSocketSetTcpKeepAliveIdleResponder)> {
59994        if let StreamSocketRequest::SetTcpKeepAliveIdle { value_secs, responder } = self {
59995            Some((value_secs, responder))
59996        } else {
59997            None
59998        }
59999    }
60000
60001    #[allow(irrefutable_let_patterns)]
60002    pub fn into_get_tcp_keep_alive_idle(
60003        self,
60004    ) -> Option<(StreamSocketGetTcpKeepAliveIdleResponder)> {
60005        if let StreamSocketRequest::GetTcpKeepAliveIdle { responder } = self {
60006            Some((responder))
60007        } else {
60008            None
60009        }
60010    }
60011
60012    #[allow(irrefutable_let_patterns)]
60013    pub fn into_set_tcp_keep_alive_interval(
60014        self,
60015    ) -> Option<(u32, StreamSocketSetTcpKeepAliveIntervalResponder)> {
60016        if let StreamSocketRequest::SetTcpKeepAliveInterval { value_secs, responder } = self {
60017            Some((value_secs, responder))
60018        } else {
60019            None
60020        }
60021    }
60022
60023    #[allow(irrefutable_let_patterns)]
60024    pub fn into_get_tcp_keep_alive_interval(
60025        self,
60026    ) -> Option<(StreamSocketGetTcpKeepAliveIntervalResponder)> {
60027        if let StreamSocketRequest::GetTcpKeepAliveInterval { responder } = self {
60028            Some((responder))
60029        } else {
60030            None
60031        }
60032    }
60033
60034    #[allow(irrefutable_let_patterns)]
60035    pub fn into_set_tcp_keep_alive_count(
60036        self,
60037    ) -> Option<(u32, StreamSocketSetTcpKeepAliveCountResponder)> {
60038        if let StreamSocketRequest::SetTcpKeepAliveCount { value, responder } = self {
60039            Some((value, responder))
60040        } else {
60041            None
60042        }
60043    }
60044
60045    #[allow(irrefutable_let_patterns)]
60046    pub fn into_get_tcp_keep_alive_count(
60047        self,
60048    ) -> Option<(StreamSocketGetTcpKeepAliveCountResponder)> {
60049        if let StreamSocketRequest::GetTcpKeepAliveCount { responder } = self {
60050            Some((responder))
60051        } else {
60052            None
60053        }
60054    }
60055
60056    #[allow(irrefutable_let_patterns)]
60057    pub fn into_set_tcp_syn_count(self) -> Option<(u32, StreamSocketSetTcpSynCountResponder)> {
60058        if let StreamSocketRequest::SetTcpSynCount { value, responder } = self {
60059            Some((value, responder))
60060        } else {
60061            None
60062        }
60063    }
60064
60065    #[allow(irrefutable_let_patterns)]
60066    pub fn into_get_tcp_syn_count(self) -> Option<(StreamSocketGetTcpSynCountResponder)> {
60067        if let StreamSocketRequest::GetTcpSynCount { responder } = self {
60068            Some((responder))
60069        } else {
60070            None
60071        }
60072    }
60073
60074    #[allow(irrefutable_let_patterns)]
60075    pub fn into_set_tcp_linger(
60076        self,
60077    ) -> Option<(OptionalUint32, StreamSocketSetTcpLingerResponder)> {
60078        if let StreamSocketRequest::SetTcpLinger { value_secs, responder } = self {
60079            Some((value_secs, responder))
60080        } else {
60081            None
60082        }
60083    }
60084
60085    #[allow(irrefutable_let_patterns)]
60086    pub fn into_get_tcp_linger(self) -> Option<(StreamSocketGetTcpLingerResponder)> {
60087        if let StreamSocketRequest::GetTcpLinger { responder } = self {
60088            Some((responder))
60089        } else {
60090            None
60091        }
60092    }
60093
60094    #[allow(irrefutable_let_patterns)]
60095    pub fn into_set_tcp_defer_accept(
60096        self,
60097    ) -> Option<(u32, StreamSocketSetTcpDeferAcceptResponder)> {
60098        if let StreamSocketRequest::SetTcpDeferAccept { value_secs, responder } = self {
60099            Some((value_secs, responder))
60100        } else {
60101            None
60102        }
60103    }
60104
60105    #[allow(irrefutable_let_patterns)]
60106    pub fn into_get_tcp_defer_accept(self) -> Option<(StreamSocketGetTcpDeferAcceptResponder)> {
60107        if let StreamSocketRequest::GetTcpDeferAccept { responder } = self {
60108            Some((responder))
60109        } else {
60110            None
60111        }
60112    }
60113
60114    #[allow(irrefutable_let_patterns)]
60115    pub fn into_set_tcp_window_clamp(
60116        self,
60117    ) -> Option<(u32, StreamSocketSetTcpWindowClampResponder)> {
60118        if let StreamSocketRequest::SetTcpWindowClamp { value, responder } = self {
60119            Some((value, responder))
60120        } else {
60121            None
60122        }
60123    }
60124
60125    #[allow(irrefutable_let_patterns)]
60126    pub fn into_get_tcp_window_clamp(self) -> Option<(StreamSocketGetTcpWindowClampResponder)> {
60127        if let StreamSocketRequest::GetTcpWindowClamp { responder } = self {
60128            Some((responder))
60129        } else {
60130            None
60131        }
60132    }
60133
60134    #[allow(irrefutable_let_patterns)]
60135    pub fn into_get_tcp_info(self) -> Option<(StreamSocketGetTcpInfoResponder)> {
60136        if let StreamSocketRequest::GetTcpInfo { responder } = self {
60137            Some((responder))
60138        } else {
60139            None
60140        }
60141    }
60142
60143    #[allow(irrefutable_let_patterns)]
60144    pub fn into_set_tcp_quick_ack(self) -> Option<(bool, StreamSocketSetTcpQuickAckResponder)> {
60145        if let StreamSocketRequest::SetTcpQuickAck { value, responder } = self {
60146            Some((value, responder))
60147        } else {
60148            None
60149        }
60150    }
60151
60152    #[allow(irrefutable_let_patterns)]
60153    pub fn into_get_tcp_quick_ack(self) -> Option<(StreamSocketGetTcpQuickAckResponder)> {
60154        if let StreamSocketRequest::GetTcpQuickAck { responder } = self {
60155            Some((responder))
60156        } else {
60157            None
60158        }
60159    }
60160
60161    #[allow(irrefutable_let_patterns)]
60162    pub fn into_set_tcp_congestion(
60163        self,
60164    ) -> Option<(TcpCongestionControl, StreamSocketSetTcpCongestionResponder)> {
60165        if let StreamSocketRequest::SetTcpCongestion { value, responder } = self {
60166            Some((value, responder))
60167        } else {
60168            None
60169        }
60170    }
60171
60172    #[allow(irrefutable_let_patterns)]
60173    pub fn into_get_tcp_congestion(self) -> Option<(StreamSocketGetTcpCongestionResponder)> {
60174        if let StreamSocketRequest::GetTcpCongestion { responder } = self {
60175            Some((responder))
60176        } else {
60177            None
60178        }
60179    }
60180
60181    #[allow(irrefutable_let_patterns)]
60182    pub fn into_set_tcp_user_timeout(
60183        self,
60184    ) -> Option<(u32, StreamSocketSetTcpUserTimeoutResponder)> {
60185        if let StreamSocketRequest::SetTcpUserTimeout { value_millis, responder } = self {
60186            Some((value_millis, responder))
60187        } else {
60188            None
60189        }
60190    }
60191
60192    #[allow(irrefutable_let_patterns)]
60193    pub fn into_get_tcp_user_timeout(self) -> Option<(StreamSocketGetTcpUserTimeoutResponder)> {
60194        if let StreamSocketRequest::GetTcpUserTimeout { responder } = self {
60195            Some((responder))
60196        } else {
60197            None
60198        }
60199    }
60200
60201    /// Name of the method defined in FIDL
60202    pub fn method_name(&self) -> &'static str {
60203        match *self {
60204            StreamSocketRequest::Clone { .. } => "clone",
60205            StreamSocketRequest::Close { .. } => "close",
60206            StreamSocketRequest::Query { .. } => "query",
60207            StreamSocketRequest::SetReuseAddress { .. } => "set_reuse_address",
60208            StreamSocketRequest::GetReuseAddress { .. } => "get_reuse_address",
60209            StreamSocketRequest::GetError { .. } => "get_error",
60210            StreamSocketRequest::SetBroadcast { .. } => "set_broadcast",
60211            StreamSocketRequest::GetBroadcast { .. } => "get_broadcast",
60212            StreamSocketRequest::SetSendBuffer { .. } => "set_send_buffer",
60213            StreamSocketRequest::GetSendBuffer { .. } => "get_send_buffer",
60214            StreamSocketRequest::SetReceiveBuffer { .. } => "set_receive_buffer",
60215            StreamSocketRequest::GetReceiveBuffer { .. } => "get_receive_buffer",
60216            StreamSocketRequest::SetKeepAlive { .. } => "set_keep_alive",
60217            StreamSocketRequest::GetKeepAlive { .. } => "get_keep_alive",
60218            StreamSocketRequest::SetOutOfBandInline { .. } => "set_out_of_band_inline",
60219            StreamSocketRequest::GetOutOfBandInline { .. } => "get_out_of_band_inline",
60220            StreamSocketRequest::SetNoCheck { .. } => "set_no_check",
60221            StreamSocketRequest::GetNoCheck { .. } => "get_no_check",
60222            StreamSocketRequest::SetLinger { .. } => "set_linger",
60223            StreamSocketRequest::GetLinger { .. } => "get_linger",
60224            StreamSocketRequest::SetReusePort { .. } => "set_reuse_port",
60225            StreamSocketRequest::GetReusePort { .. } => "get_reuse_port",
60226            StreamSocketRequest::GetAcceptConn { .. } => "get_accept_conn",
60227            StreamSocketRequest::SetBindToDevice { .. } => "set_bind_to_device",
60228            StreamSocketRequest::GetBindToDevice { .. } => "get_bind_to_device",
60229            StreamSocketRequest::SetBindToInterfaceIndex { .. } => "set_bind_to_interface_index",
60230            StreamSocketRequest::GetBindToInterfaceIndex { .. } => "get_bind_to_interface_index",
60231            StreamSocketRequest::SetTimestamp { .. } => "set_timestamp",
60232            StreamSocketRequest::GetTimestamp { .. } => "get_timestamp",
60233            StreamSocketRequest::SetMark { .. } => "set_mark",
60234            StreamSocketRequest::GetMark { .. } => "get_mark",
60235            StreamSocketRequest::GetCookie { .. } => "get_cookie",
60236            StreamSocketRequest::Bind { .. } => "bind",
60237            StreamSocketRequest::Connect { .. } => "connect",
60238            StreamSocketRequest::Disconnect { .. } => "disconnect",
60239            StreamSocketRequest::GetSockName { .. } => "get_sock_name",
60240            StreamSocketRequest::GetPeerName { .. } => "get_peer_name",
60241            StreamSocketRequest::Shutdown { .. } => "shutdown",
60242            StreamSocketRequest::SetIpTypeOfService { .. } => "set_ip_type_of_service",
60243            StreamSocketRequest::GetIpTypeOfService { .. } => "get_ip_type_of_service",
60244            StreamSocketRequest::SetIpTtl { .. } => "set_ip_ttl",
60245            StreamSocketRequest::GetIpTtl { .. } => "get_ip_ttl",
60246            StreamSocketRequest::SetIpPacketInfo { .. } => "set_ip_packet_info",
60247            StreamSocketRequest::GetIpPacketInfo { .. } => "get_ip_packet_info",
60248            StreamSocketRequest::SetIpReceiveTypeOfService { .. } => {
60249                "set_ip_receive_type_of_service"
60250            }
60251            StreamSocketRequest::GetIpReceiveTypeOfService { .. } => {
60252                "get_ip_receive_type_of_service"
60253            }
60254            StreamSocketRequest::SetIpReceiveTtl { .. } => "set_ip_receive_ttl",
60255            StreamSocketRequest::GetIpReceiveTtl { .. } => "get_ip_receive_ttl",
60256            StreamSocketRequest::SetIpMulticastInterface { .. } => "set_ip_multicast_interface",
60257            StreamSocketRequest::GetIpMulticastInterface { .. } => "get_ip_multicast_interface",
60258            StreamSocketRequest::SetIpMulticastTtl { .. } => "set_ip_multicast_ttl",
60259            StreamSocketRequest::GetIpMulticastTtl { .. } => "get_ip_multicast_ttl",
60260            StreamSocketRequest::SetIpMulticastLoopback { .. } => "set_ip_multicast_loopback",
60261            StreamSocketRequest::GetIpMulticastLoopback { .. } => "get_ip_multicast_loopback",
60262            StreamSocketRequest::AddIpMembership { .. } => "add_ip_membership",
60263            StreamSocketRequest::DropIpMembership { .. } => "drop_ip_membership",
60264            StreamSocketRequest::SetIpTransparent { .. } => "set_ip_transparent",
60265            StreamSocketRequest::GetIpTransparent { .. } => "get_ip_transparent",
60266            StreamSocketRequest::SetIpReceiveOriginalDestinationAddress { .. } => {
60267                "set_ip_receive_original_destination_address"
60268            }
60269            StreamSocketRequest::GetIpReceiveOriginalDestinationAddress { .. } => {
60270                "get_ip_receive_original_destination_address"
60271            }
60272            StreamSocketRequest::AddIpv6Membership { .. } => "add_ipv6_membership",
60273            StreamSocketRequest::DropIpv6Membership { .. } => "drop_ipv6_membership",
60274            StreamSocketRequest::SetIpv6MulticastInterface { .. } => "set_ipv6_multicast_interface",
60275            StreamSocketRequest::GetIpv6MulticastInterface { .. } => "get_ipv6_multicast_interface",
60276            StreamSocketRequest::SetIpv6UnicastHops { .. } => "set_ipv6_unicast_hops",
60277            StreamSocketRequest::GetIpv6UnicastHops { .. } => "get_ipv6_unicast_hops",
60278            StreamSocketRequest::SetIpv6ReceiveHopLimit { .. } => "set_ipv6_receive_hop_limit",
60279            StreamSocketRequest::GetIpv6ReceiveHopLimit { .. } => "get_ipv6_receive_hop_limit",
60280            StreamSocketRequest::SetIpv6MulticastHops { .. } => "set_ipv6_multicast_hops",
60281            StreamSocketRequest::GetIpv6MulticastHops { .. } => "get_ipv6_multicast_hops",
60282            StreamSocketRequest::SetIpv6MulticastLoopback { .. } => "set_ipv6_multicast_loopback",
60283            StreamSocketRequest::GetIpv6MulticastLoopback { .. } => "get_ipv6_multicast_loopback",
60284            StreamSocketRequest::SetIpv6Only { .. } => "set_ipv6_only",
60285            StreamSocketRequest::GetIpv6Only { .. } => "get_ipv6_only",
60286            StreamSocketRequest::SetIpv6ReceiveTrafficClass { .. } => {
60287                "set_ipv6_receive_traffic_class"
60288            }
60289            StreamSocketRequest::GetIpv6ReceiveTrafficClass { .. } => {
60290                "get_ipv6_receive_traffic_class"
60291            }
60292            StreamSocketRequest::SetIpv6TrafficClass { .. } => "set_ipv6_traffic_class",
60293            StreamSocketRequest::GetIpv6TrafficClass { .. } => "get_ipv6_traffic_class",
60294            StreamSocketRequest::SetIpv6ReceivePacketInfo { .. } => "set_ipv6_receive_packet_info",
60295            StreamSocketRequest::GetIpv6ReceivePacketInfo { .. } => "get_ipv6_receive_packet_info",
60296            StreamSocketRequest::GetOriginalDestination { .. } => "get_original_destination",
60297            StreamSocketRequest::Describe { .. } => "describe",
60298            StreamSocketRequest::Listen { .. } => "listen",
60299            StreamSocketRequest::Accept { .. } => "accept",
60300            StreamSocketRequest::GetInfo { .. } => "get_info",
60301            StreamSocketRequest::SetTcpNoDelay { .. } => "set_tcp_no_delay",
60302            StreamSocketRequest::GetTcpNoDelay { .. } => "get_tcp_no_delay",
60303            StreamSocketRequest::SetTcpMaxSegment { .. } => "set_tcp_max_segment",
60304            StreamSocketRequest::GetTcpMaxSegment { .. } => "get_tcp_max_segment",
60305            StreamSocketRequest::SetTcpCork { .. } => "set_tcp_cork",
60306            StreamSocketRequest::GetTcpCork { .. } => "get_tcp_cork",
60307            StreamSocketRequest::SetTcpKeepAliveIdle { .. } => "set_tcp_keep_alive_idle",
60308            StreamSocketRequest::GetTcpKeepAliveIdle { .. } => "get_tcp_keep_alive_idle",
60309            StreamSocketRequest::SetTcpKeepAliveInterval { .. } => "set_tcp_keep_alive_interval",
60310            StreamSocketRequest::GetTcpKeepAliveInterval { .. } => "get_tcp_keep_alive_interval",
60311            StreamSocketRequest::SetTcpKeepAliveCount { .. } => "set_tcp_keep_alive_count",
60312            StreamSocketRequest::GetTcpKeepAliveCount { .. } => "get_tcp_keep_alive_count",
60313            StreamSocketRequest::SetTcpSynCount { .. } => "set_tcp_syn_count",
60314            StreamSocketRequest::GetTcpSynCount { .. } => "get_tcp_syn_count",
60315            StreamSocketRequest::SetTcpLinger { .. } => "set_tcp_linger",
60316            StreamSocketRequest::GetTcpLinger { .. } => "get_tcp_linger",
60317            StreamSocketRequest::SetTcpDeferAccept { .. } => "set_tcp_defer_accept",
60318            StreamSocketRequest::GetTcpDeferAccept { .. } => "get_tcp_defer_accept",
60319            StreamSocketRequest::SetTcpWindowClamp { .. } => "set_tcp_window_clamp",
60320            StreamSocketRequest::GetTcpWindowClamp { .. } => "get_tcp_window_clamp",
60321            StreamSocketRequest::GetTcpInfo { .. } => "get_tcp_info",
60322            StreamSocketRequest::SetTcpQuickAck { .. } => "set_tcp_quick_ack",
60323            StreamSocketRequest::GetTcpQuickAck { .. } => "get_tcp_quick_ack",
60324            StreamSocketRequest::SetTcpCongestion { .. } => "set_tcp_congestion",
60325            StreamSocketRequest::GetTcpCongestion { .. } => "get_tcp_congestion",
60326            StreamSocketRequest::SetTcpUserTimeout { .. } => "set_tcp_user_timeout",
60327            StreamSocketRequest::GetTcpUserTimeout { .. } => "get_tcp_user_timeout",
60328        }
60329    }
60330}
60331
60332#[derive(Debug, Clone)]
60333pub struct StreamSocketControlHandle {
60334    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
60335}
60336
60337impl fidl::endpoints::ControlHandle for StreamSocketControlHandle {
60338    fn shutdown(&self) {
60339        self.inner.shutdown()
60340    }
60341    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
60342        self.inner.shutdown_with_epitaph(status)
60343    }
60344
60345    fn is_closed(&self) -> bool {
60346        self.inner.channel().is_closed()
60347    }
60348    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
60349        self.inner.channel().on_closed()
60350    }
60351
60352    #[cfg(target_os = "fuchsia")]
60353    fn signal_peer(
60354        &self,
60355        clear_mask: zx::Signals,
60356        set_mask: zx::Signals,
60357    ) -> Result<(), zx_status::Status> {
60358        use fidl::Peered;
60359        self.inner.channel().signal_peer(clear_mask, set_mask)
60360    }
60361}
60362
60363impl StreamSocketControlHandle {}
60364
60365#[must_use = "FIDL methods require a response to be sent"]
60366#[derive(Debug)]
60367pub struct StreamSocketCloseResponder {
60368    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
60369    tx_id: u32,
60370}
60371
60372/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
60373/// if the responder is dropped without sending a response, so that the client
60374/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
60375impl std::ops::Drop for StreamSocketCloseResponder {
60376    fn drop(&mut self) {
60377        self.control_handle.shutdown();
60378        // Safety: drops once, never accessed again
60379        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60380    }
60381}
60382
60383impl fidl::endpoints::Responder for StreamSocketCloseResponder {
60384    type ControlHandle = StreamSocketControlHandle;
60385
60386    fn control_handle(&self) -> &StreamSocketControlHandle {
60387        &self.control_handle
60388    }
60389
60390    fn drop_without_shutdown(mut self) {
60391        // Safety: drops once, never accessed again due to mem::forget
60392        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60393        // Prevent Drop from running (which would shut down the channel)
60394        std::mem::forget(self);
60395    }
60396}
60397
60398impl StreamSocketCloseResponder {
60399    /// Sends a response to the FIDL transaction.
60400    ///
60401    /// Sets the channel to shutdown if an error occurs.
60402    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
60403        let _result = self.send_raw(result);
60404        if _result.is_err() {
60405            self.control_handle.shutdown();
60406        }
60407        self.drop_without_shutdown();
60408        _result
60409    }
60410
60411    /// Similar to "send" but does not shutdown the channel if an error occurs.
60412    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
60413        let _result = self.send_raw(result);
60414        self.drop_without_shutdown();
60415        _result
60416    }
60417
60418    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
60419        self.control_handle
60420            .inner
60421            .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>>(
60422                result,
60423                self.tx_id,
60424                0x5ac5d459ad7f657e,
60425                fidl::encoding::DynamicFlags::empty(),
60426            )
60427    }
60428}
60429
60430#[must_use = "FIDL methods require a response to be sent"]
60431#[derive(Debug)]
60432pub struct StreamSocketQueryResponder {
60433    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
60434    tx_id: u32,
60435}
60436
60437/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
60438/// if the responder is dropped without sending a response, so that the client
60439/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
60440impl std::ops::Drop for StreamSocketQueryResponder {
60441    fn drop(&mut self) {
60442        self.control_handle.shutdown();
60443        // Safety: drops once, never accessed again
60444        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60445    }
60446}
60447
60448impl fidl::endpoints::Responder for StreamSocketQueryResponder {
60449    type ControlHandle = StreamSocketControlHandle;
60450
60451    fn control_handle(&self) -> &StreamSocketControlHandle {
60452        &self.control_handle
60453    }
60454
60455    fn drop_without_shutdown(mut self) {
60456        // Safety: drops once, never accessed again due to mem::forget
60457        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60458        // Prevent Drop from running (which would shut down the channel)
60459        std::mem::forget(self);
60460    }
60461}
60462
60463impl StreamSocketQueryResponder {
60464    /// Sends a response to the FIDL transaction.
60465    ///
60466    /// Sets the channel to shutdown if an error occurs.
60467    pub fn send(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
60468        let _result = self.send_raw(protocol);
60469        if _result.is_err() {
60470            self.control_handle.shutdown();
60471        }
60472        self.drop_without_shutdown();
60473        _result
60474    }
60475
60476    /// Similar to "send" but does not shutdown the channel if an error occurs.
60477    pub fn send_no_shutdown_on_err(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
60478        let _result = self.send_raw(protocol);
60479        self.drop_without_shutdown();
60480        _result
60481    }
60482
60483    fn send_raw(&self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
60484        self.control_handle.inner.send::<fidl_fuchsia_unknown::QueryableQueryResponse>(
60485            (protocol,),
60486            self.tx_id,
60487            0x2658edee9decfc06,
60488            fidl::encoding::DynamicFlags::empty(),
60489        )
60490    }
60491}
60492
60493#[must_use = "FIDL methods require a response to be sent"]
60494#[derive(Debug)]
60495pub struct StreamSocketSetReuseAddressResponder {
60496    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
60497    tx_id: u32,
60498}
60499
60500/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
60501/// if the responder is dropped without sending a response, so that the client
60502/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
60503impl std::ops::Drop for StreamSocketSetReuseAddressResponder {
60504    fn drop(&mut self) {
60505        self.control_handle.shutdown();
60506        // Safety: drops once, never accessed again
60507        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60508    }
60509}
60510
60511impl fidl::endpoints::Responder for StreamSocketSetReuseAddressResponder {
60512    type ControlHandle = StreamSocketControlHandle;
60513
60514    fn control_handle(&self) -> &StreamSocketControlHandle {
60515        &self.control_handle
60516    }
60517
60518    fn drop_without_shutdown(mut self) {
60519        // Safety: drops once, never accessed again due to mem::forget
60520        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60521        // Prevent Drop from running (which would shut down the channel)
60522        std::mem::forget(self);
60523    }
60524}
60525
60526impl StreamSocketSetReuseAddressResponder {
60527    /// Sends a response to the FIDL transaction.
60528    ///
60529    /// Sets the channel to shutdown if an error occurs.
60530    pub fn send(
60531        self,
60532        mut result: Result<(), fidl_fuchsia_posix::Errno>,
60533    ) -> Result<(), fidl::Error> {
60534        let _result = self.send_raw(result);
60535        if _result.is_err() {
60536            self.control_handle.shutdown();
60537        }
60538        self.drop_without_shutdown();
60539        _result
60540    }
60541
60542    /// Similar to "send" but does not shutdown the channel if an error occurs.
60543    pub fn send_no_shutdown_on_err(
60544        self,
60545        mut result: Result<(), fidl_fuchsia_posix::Errno>,
60546    ) -> Result<(), fidl::Error> {
60547        let _result = self.send_raw(result);
60548        self.drop_without_shutdown();
60549        _result
60550    }
60551
60552    fn send_raw(
60553        &self,
60554        mut result: Result<(), fidl_fuchsia_posix::Errno>,
60555    ) -> Result<(), fidl::Error> {
60556        self.control_handle.inner.send::<fidl::encoding::ResultType<
60557            fidl::encoding::EmptyStruct,
60558            fidl_fuchsia_posix::Errno,
60559        >>(
60560            result,
60561            self.tx_id,
60562            0x1fd74ee8b9a4a876,
60563            fidl::encoding::DynamicFlags::empty(),
60564        )
60565    }
60566}
60567
60568#[must_use = "FIDL methods require a response to be sent"]
60569#[derive(Debug)]
60570pub struct StreamSocketGetReuseAddressResponder {
60571    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
60572    tx_id: u32,
60573}
60574
60575/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
60576/// if the responder is dropped without sending a response, so that the client
60577/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
60578impl std::ops::Drop for StreamSocketGetReuseAddressResponder {
60579    fn drop(&mut self) {
60580        self.control_handle.shutdown();
60581        // Safety: drops once, never accessed again
60582        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60583    }
60584}
60585
60586impl fidl::endpoints::Responder for StreamSocketGetReuseAddressResponder {
60587    type ControlHandle = StreamSocketControlHandle;
60588
60589    fn control_handle(&self) -> &StreamSocketControlHandle {
60590        &self.control_handle
60591    }
60592
60593    fn drop_without_shutdown(mut self) {
60594        // Safety: drops once, never accessed again due to mem::forget
60595        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60596        // Prevent Drop from running (which would shut down the channel)
60597        std::mem::forget(self);
60598    }
60599}
60600
60601impl StreamSocketGetReuseAddressResponder {
60602    /// Sends a response to the FIDL transaction.
60603    ///
60604    /// Sets the channel to shutdown if an error occurs.
60605    pub fn send(
60606        self,
60607        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
60608    ) -> Result<(), fidl::Error> {
60609        let _result = self.send_raw(result);
60610        if _result.is_err() {
60611            self.control_handle.shutdown();
60612        }
60613        self.drop_without_shutdown();
60614        _result
60615    }
60616
60617    /// Similar to "send" but does not shutdown the channel if an error occurs.
60618    pub fn send_no_shutdown_on_err(
60619        self,
60620        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
60621    ) -> Result<(), fidl::Error> {
60622        let _result = self.send_raw(result);
60623        self.drop_without_shutdown();
60624        _result
60625    }
60626
60627    fn send_raw(
60628        &self,
60629        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
60630    ) -> Result<(), fidl::Error> {
60631        self.control_handle.inner.send::<fidl::encoding::ResultType<
60632            BaseSocketGetReuseAddressResponse,
60633            fidl_fuchsia_posix::Errno,
60634        >>(
60635            result.map(|value| (value,)),
60636            self.tx_id,
60637            0x67b7206b8d1bc0a5,
60638            fidl::encoding::DynamicFlags::empty(),
60639        )
60640    }
60641}
60642
60643#[must_use = "FIDL methods require a response to be sent"]
60644#[derive(Debug)]
60645pub struct StreamSocketGetErrorResponder {
60646    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
60647    tx_id: u32,
60648}
60649
60650/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
60651/// if the responder is dropped without sending a response, so that the client
60652/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
60653impl std::ops::Drop for StreamSocketGetErrorResponder {
60654    fn drop(&mut self) {
60655        self.control_handle.shutdown();
60656        // Safety: drops once, never accessed again
60657        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60658    }
60659}
60660
60661impl fidl::endpoints::Responder for StreamSocketGetErrorResponder {
60662    type ControlHandle = StreamSocketControlHandle;
60663
60664    fn control_handle(&self) -> &StreamSocketControlHandle {
60665        &self.control_handle
60666    }
60667
60668    fn drop_without_shutdown(mut self) {
60669        // Safety: drops once, never accessed again due to mem::forget
60670        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60671        // Prevent Drop from running (which would shut down the channel)
60672        std::mem::forget(self);
60673    }
60674}
60675
60676impl StreamSocketGetErrorResponder {
60677    /// Sends a response to the FIDL transaction.
60678    ///
60679    /// Sets the channel to shutdown if an error occurs.
60680    pub fn send(
60681        self,
60682        mut result: Result<(), fidl_fuchsia_posix::Errno>,
60683    ) -> Result<(), fidl::Error> {
60684        let _result = self.send_raw(result);
60685        if _result.is_err() {
60686            self.control_handle.shutdown();
60687        }
60688        self.drop_without_shutdown();
60689        _result
60690    }
60691
60692    /// Similar to "send" but does not shutdown the channel if an error occurs.
60693    pub fn send_no_shutdown_on_err(
60694        self,
60695        mut result: Result<(), fidl_fuchsia_posix::Errno>,
60696    ) -> Result<(), fidl::Error> {
60697        let _result = self.send_raw(result);
60698        self.drop_without_shutdown();
60699        _result
60700    }
60701
60702    fn send_raw(
60703        &self,
60704        mut result: Result<(), fidl_fuchsia_posix::Errno>,
60705    ) -> Result<(), fidl::Error> {
60706        self.control_handle.inner.send::<fidl::encoding::ResultType<
60707            fidl::encoding::EmptyStruct,
60708            fidl_fuchsia_posix::Errno,
60709        >>(
60710            result,
60711            self.tx_id,
60712            0x5aad39b33e5f6ebb,
60713            fidl::encoding::DynamicFlags::empty(),
60714        )
60715    }
60716}
60717
60718#[must_use = "FIDL methods require a response to be sent"]
60719#[derive(Debug)]
60720pub struct StreamSocketSetBroadcastResponder {
60721    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
60722    tx_id: u32,
60723}
60724
60725/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
60726/// if the responder is dropped without sending a response, so that the client
60727/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
60728impl std::ops::Drop for StreamSocketSetBroadcastResponder {
60729    fn drop(&mut self) {
60730        self.control_handle.shutdown();
60731        // Safety: drops once, never accessed again
60732        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60733    }
60734}
60735
60736impl fidl::endpoints::Responder for StreamSocketSetBroadcastResponder {
60737    type ControlHandle = StreamSocketControlHandle;
60738
60739    fn control_handle(&self) -> &StreamSocketControlHandle {
60740        &self.control_handle
60741    }
60742
60743    fn drop_without_shutdown(mut self) {
60744        // Safety: drops once, never accessed again due to mem::forget
60745        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60746        // Prevent Drop from running (which would shut down the channel)
60747        std::mem::forget(self);
60748    }
60749}
60750
60751impl StreamSocketSetBroadcastResponder {
60752    /// Sends a response to the FIDL transaction.
60753    ///
60754    /// Sets the channel to shutdown if an error occurs.
60755    pub fn send(
60756        self,
60757        mut result: Result<(), fidl_fuchsia_posix::Errno>,
60758    ) -> Result<(), fidl::Error> {
60759        let _result = self.send_raw(result);
60760        if _result.is_err() {
60761            self.control_handle.shutdown();
60762        }
60763        self.drop_without_shutdown();
60764        _result
60765    }
60766
60767    /// Similar to "send" but does not shutdown the channel if an error occurs.
60768    pub fn send_no_shutdown_on_err(
60769        self,
60770        mut result: Result<(), fidl_fuchsia_posix::Errno>,
60771    ) -> Result<(), fidl::Error> {
60772        let _result = self.send_raw(result);
60773        self.drop_without_shutdown();
60774        _result
60775    }
60776
60777    fn send_raw(
60778        &self,
60779        mut result: Result<(), fidl_fuchsia_posix::Errno>,
60780    ) -> Result<(), fidl::Error> {
60781        self.control_handle.inner.send::<fidl::encoding::ResultType<
60782            fidl::encoding::EmptyStruct,
60783            fidl_fuchsia_posix::Errno,
60784        >>(
60785            result,
60786            self.tx_id,
60787            0x6023e081ce3cd947,
60788            fidl::encoding::DynamicFlags::empty(),
60789        )
60790    }
60791}
60792
60793#[must_use = "FIDL methods require a response to be sent"]
60794#[derive(Debug)]
60795pub struct StreamSocketGetBroadcastResponder {
60796    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
60797    tx_id: u32,
60798}
60799
60800/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
60801/// if the responder is dropped without sending a response, so that the client
60802/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
60803impl std::ops::Drop for StreamSocketGetBroadcastResponder {
60804    fn drop(&mut self) {
60805        self.control_handle.shutdown();
60806        // Safety: drops once, never accessed again
60807        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60808    }
60809}
60810
60811impl fidl::endpoints::Responder for StreamSocketGetBroadcastResponder {
60812    type ControlHandle = StreamSocketControlHandle;
60813
60814    fn control_handle(&self) -> &StreamSocketControlHandle {
60815        &self.control_handle
60816    }
60817
60818    fn drop_without_shutdown(mut self) {
60819        // Safety: drops once, never accessed again due to mem::forget
60820        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60821        // Prevent Drop from running (which would shut down the channel)
60822        std::mem::forget(self);
60823    }
60824}
60825
60826impl StreamSocketGetBroadcastResponder {
60827    /// Sends a response to the FIDL transaction.
60828    ///
60829    /// Sets the channel to shutdown if an error occurs.
60830    pub fn send(
60831        self,
60832        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
60833    ) -> Result<(), fidl::Error> {
60834        let _result = self.send_raw(result);
60835        if _result.is_err() {
60836            self.control_handle.shutdown();
60837        }
60838        self.drop_without_shutdown();
60839        _result
60840    }
60841
60842    /// Similar to "send" but does not shutdown the channel if an error occurs.
60843    pub fn send_no_shutdown_on_err(
60844        self,
60845        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
60846    ) -> Result<(), fidl::Error> {
60847        let _result = self.send_raw(result);
60848        self.drop_without_shutdown();
60849        _result
60850    }
60851
60852    fn send_raw(
60853        &self,
60854        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
60855    ) -> Result<(), fidl::Error> {
60856        self.control_handle.inner.send::<fidl::encoding::ResultType<
60857            BaseSocketGetBroadcastResponse,
60858            fidl_fuchsia_posix::Errno,
60859        >>(
60860            result.map(|value| (value,)),
60861            self.tx_id,
60862            0x68796fc556f9780d,
60863            fidl::encoding::DynamicFlags::empty(),
60864        )
60865    }
60866}
60867
60868#[must_use = "FIDL methods require a response to be sent"]
60869#[derive(Debug)]
60870pub struct StreamSocketSetSendBufferResponder {
60871    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
60872    tx_id: u32,
60873}
60874
60875/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
60876/// if the responder is dropped without sending a response, so that the client
60877/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
60878impl std::ops::Drop for StreamSocketSetSendBufferResponder {
60879    fn drop(&mut self) {
60880        self.control_handle.shutdown();
60881        // Safety: drops once, never accessed again
60882        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60883    }
60884}
60885
60886impl fidl::endpoints::Responder for StreamSocketSetSendBufferResponder {
60887    type ControlHandle = StreamSocketControlHandle;
60888
60889    fn control_handle(&self) -> &StreamSocketControlHandle {
60890        &self.control_handle
60891    }
60892
60893    fn drop_without_shutdown(mut self) {
60894        // Safety: drops once, never accessed again due to mem::forget
60895        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60896        // Prevent Drop from running (which would shut down the channel)
60897        std::mem::forget(self);
60898    }
60899}
60900
60901impl StreamSocketSetSendBufferResponder {
60902    /// Sends a response to the FIDL transaction.
60903    ///
60904    /// Sets the channel to shutdown if an error occurs.
60905    pub fn send(
60906        self,
60907        mut result: Result<(), fidl_fuchsia_posix::Errno>,
60908    ) -> Result<(), fidl::Error> {
60909        let _result = self.send_raw(result);
60910        if _result.is_err() {
60911            self.control_handle.shutdown();
60912        }
60913        self.drop_without_shutdown();
60914        _result
60915    }
60916
60917    /// Similar to "send" but does not shutdown the channel if an error occurs.
60918    pub fn send_no_shutdown_on_err(
60919        self,
60920        mut result: Result<(), fidl_fuchsia_posix::Errno>,
60921    ) -> Result<(), fidl::Error> {
60922        let _result = self.send_raw(result);
60923        self.drop_without_shutdown();
60924        _result
60925    }
60926
60927    fn send_raw(
60928        &self,
60929        mut result: Result<(), fidl_fuchsia_posix::Errno>,
60930    ) -> Result<(), fidl::Error> {
60931        self.control_handle.inner.send::<fidl::encoding::ResultType<
60932            fidl::encoding::EmptyStruct,
60933            fidl_fuchsia_posix::Errno,
60934        >>(
60935            result,
60936            self.tx_id,
60937            0x756eac32d73a7a70,
60938            fidl::encoding::DynamicFlags::empty(),
60939        )
60940    }
60941}
60942
60943#[must_use = "FIDL methods require a response to be sent"]
60944#[derive(Debug)]
60945pub struct StreamSocketGetSendBufferResponder {
60946    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
60947    tx_id: u32,
60948}
60949
60950/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
60951/// if the responder is dropped without sending a response, so that the client
60952/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
60953impl std::ops::Drop for StreamSocketGetSendBufferResponder {
60954    fn drop(&mut self) {
60955        self.control_handle.shutdown();
60956        // Safety: drops once, never accessed again
60957        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60958    }
60959}
60960
60961impl fidl::endpoints::Responder for StreamSocketGetSendBufferResponder {
60962    type ControlHandle = StreamSocketControlHandle;
60963
60964    fn control_handle(&self) -> &StreamSocketControlHandle {
60965        &self.control_handle
60966    }
60967
60968    fn drop_without_shutdown(mut self) {
60969        // Safety: drops once, never accessed again due to mem::forget
60970        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60971        // Prevent Drop from running (which would shut down the channel)
60972        std::mem::forget(self);
60973    }
60974}
60975
60976impl StreamSocketGetSendBufferResponder {
60977    /// Sends a response to the FIDL transaction.
60978    ///
60979    /// Sets the channel to shutdown if an error occurs.
60980    pub fn send(
60981        self,
60982        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
60983    ) -> Result<(), fidl::Error> {
60984        let _result = self.send_raw(result);
60985        if _result.is_err() {
60986            self.control_handle.shutdown();
60987        }
60988        self.drop_without_shutdown();
60989        _result
60990    }
60991
60992    /// Similar to "send" but does not shutdown the channel if an error occurs.
60993    pub fn send_no_shutdown_on_err(
60994        self,
60995        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
60996    ) -> Result<(), fidl::Error> {
60997        let _result = self.send_raw(result);
60998        self.drop_without_shutdown();
60999        _result
61000    }
61001
61002    fn send_raw(
61003        &self,
61004        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
61005    ) -> Result<(), fidl::Error> {
61006        self.control_handle.inner.send::<fidl::encoding::ResultType<
61007            BaseSocketGetSendBufferResponse,
61008            fidl_fuchsia_posix::Errno,
61009        >>(
61010            result.map(|value_bytes| (value_bytes,)),
61011            self.tx_id,
61012            0x78a52fd9c7b2410b,
61013            fidl::encoding::DynamicFlags::empty(),
61014        )
61015    }
61016}
61017
61018#[must_use = "FIDL methods require a response to be sent"]
61019#[derive(Debug)]
61020pub struct StreamSocketSetReceiveBufferResponder {
61021    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61022    tx_id: u32,
61023}
61024
61025/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61026/// if the responder is dropped without sending a response, so that the client
61027/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61028impl std::ops::Drop for StreamSocketSetReceiveBufferResponder {
61029    fn drop(&mut self) {
61030        self.control_handle.shutdown();
61031        // Safety: drops once, never accessed again
61032        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61033    }
61034}
61035
61036impl fidl::endpoints::Responder for StreamSocketSetReceiveBufferResponder {
61037    type ControlHandle = StreamSocketControlHandle;
61038
61039    fn control_handle(&self) -> &StreamSocketControlHandle {
61040        &self.control_handle
61041    }
61042
61043    fn drop_without_shutdown(mut self) {
61044        // Safety: drops once, never accessed again due to mem::forget
61045        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61046        // Prevent Drop from running (which would shut down the channel)
61047        std::mem::forget(self);
61048    }
61049}
61050
61051impl StreamSocketSetReceiveBufferResponder {
61052    /// Sends a response to the FIDL transaction.
61053    ///
61054    /// Sets the channel to shutdown if an error occurs.
61055    pub fn send(
61056        self,
61057        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61058    ) -> Result<(), fidl::Error> {
61059        let _result = self.send_raw(result);
61060        if _result.is_err() {
61061            self.control_handle.shutdown();
61062        }
61063        self.drop_without_shutdown();
61064        _result
61065    }
61066
61067    /// Similar to "send" but does not shutdown the channel if an error occurs.
61068    pub fn send_no_shutdown_on_err(
61069        self,
61070        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61071    ) -> Result<(), fidl::Error> {
61072        let _result = self.send_raw(result);
61073        self.drop_without_shutdown();
61074        _result
61075    }
61076
61077    fn send_raw(
61078        &self,
61079        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61080    ) -> Result<(), fidl::Error> {
61081        self.control_handle.inner.send::<fidl::encoding::ResultType<
61082            fidl::encoding::EmptyStruct,
61083            fidl_fuchsia_posix::Errno,
61084        >>(
61085            result,
61086            self.tx_id,
61087            0x6b0cf2f1919c7001,
61088            fidl::encoding::DynamicFlags::empty(),
61089        )
61090    }
61091}
61092
61093#[must_use = "FIDL methods require a response to be sent"]
61094#[derive(Debug)]
61095pub struct StreamSocketGetReceiveBufferResponder {
61096    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61097    tx_id: u32,
61098}
61099
61100/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61101/// if the responder is dropped without sending a response, so that the client
61102/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61103impl std::ops::Drop for StreamSocketGetReceiveBufferResponder {
61104    fn drop(&mut self) {
61105        self.control_handle.shutdown();
61106        // Safety: drops once, never accessed again
61107        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61108    }
61109}
61110
61111impl fidl::endpoints::Responder for StreamSocketGetReceiveBufferResponder {
61112    type ControlHandle = StreamSocketControlHandle;
61113
61114    fn control_handle(&self) -> &StreamSocketControlHandle {
61115        &self.control_handle
61116    }
61117
61118    fn drop_without_shutdown(mut self) {
61119        // Safety: drops once, never accessed again due to mem::forget
61120        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61121        // Prevent Drop from running (which would shut down the channel)
61122        std::mem::forget(self);
61123    }
61124}
61125
61126impl StreamSocketGetReceiveBufferResponder {
61127    /// Sends a response to the FIDL transaction.
61128    ///
61129    /// Sets the channel to shutdown if an error occurs.
61130    pub fn send(
61131        self,
61132        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
61133    ) -> Result<(), fidl::Error> {
61134        let _result = self.send_raw(result);
61135        if _result.is_err() {
61136            self.control_handle.shutdown();
61137        }
61138        self.drop_without_shutdown();
61139        _result
61140    }
61141
61142    /// Similar to "send" but does not shutdown the channel if an error occurs.
61143    pub fn send_no_shutdown_on_err(
61144        self,
61145        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
61146    ) -> Result<(), fidl::Error> {
61147        let _result = self.send_raw(result);
61148        self.drop_without_shutdown();
61149        _result
61150    }
61151
61152    fn send_raw(
61153        &self,
61154        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
61155    ) -> Result<(), fidl::Error> {
61156        self.control_handle.inner.send::<fidl::encoding::ResultType<
61157            BaseSocketGetReceiveBufferResponse,
61158            fidl_fuchsia_posix::Errno,
61159        >>(
61160            result.map(|value_bytes| (value_bytes,)),
61161            self.tx_id,
61162            0x14c1a4b64f709e5c,
61163            fidl::encoding::DynamicFlags::empty(),
61164        )
61165    }
61166}
61167
61168#[must_use = "FIDL methods require a response to be sent"]
61169#[derive(Debug)]
61170pub struct StreamSocketSetKeepAliveResponder {
61171    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61172    tx_id: u32,
61173}
61174
61175/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61176/// if the responder is dropped without sending a response, so that the client
61177/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61178impl std::ops::Drop for StreamSocketSetKeepAliveResponder {
61179    fn drop(&mut self) {
61180        self.control_handle.shutdown();
61181        // Safety: drops once, never accessed again
61182        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61183    }
61184}
61185
61186impl fidl::endpoints::Responder for StreamSocketSetKeepAliveResponder {
61187    type ControlHandle = StreamSocketControlHandle;
61188
61189    fn control_handle(&self) -> &StreamSocketControlHandle {
61190        &self.control_handle
61191    }
61192
61193    fn drop_without_shutdown(mut self) {
61194        // Safety: drops once, never accessed again due to mem::forget
61195        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61196        // Prevent Drop from running (which would shut down the channel)
61197        std::mem::forget(self);
61198    }
61199}
61200
61201impl StreamSocketSetKeepAliveResponder {
61202    /// Sends a response to the FIDL transaction.
61203    ///
61204    /// Sets the channel to shutdown if an error occurs.
61205    pub fn send(
61206        self,
61207        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61208    ) -> Result<(), fidl::Error> {
61209        let _result = self.send_raw(result);
61210        if _result.is_err() {
61211            self.control_handle.shutdown();
61212        }
61213        self.drop_without_shutdown();
61214        _result
61215    }
61216
61217    /// Similar to "send" but does not shutdown the channel if an error occurs.
61218    pub fn send_no_shutdown_on_err(
61219        self,
61220        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61221    ) -> Result<(), fidl::Error> {
61222        let _result = self.send_raw(result);
61223        self.drop_without_shutdown();
61224        _result
61225    }
61226
61227    fn send_raw(
61228        &self,
61229        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61230    ) -> Result<(), fidl::Error> {
61231        self.control_handle.inner.send::<fidl::encoding::ResultType<
61232            fidl::encoding::EmptyStruct,
61233            fidl_fuchsia_posix::Errno,
61234        >>(
61235            result,
61236            self.tx_id,
61237            0x572df8f0b920d2c7,
61238            fidl::encoding::DynamicFlags::empty(),
61239        )
61240    }
61241}
61242
61243#[must_use = "FIDL methods require a response to be sent"]
61244#[derive(Debug)]
61245pub struct StreamSocketGetKeepAliveResponder {
61246    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61247    tx_id: u32,
61248}
61249
61250/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61251/// if the responder is dropped without sending a response, so that the client
61252/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61253impl std::ops::Drop for StreamSocketGetKeepAliveResponder {
61254    fn drop(&mut self) {
61255        self.control_handle.shutdown();
61256        // Safety: drops once, never accessed again
61257        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61258    }
61259}
61260
61261impl fidl::endpoints::Responder for StreamSocketGetKeepAliveResponder {
61262    type ControlHandle = StreamSocketControlHandle;
61263
61264    fn control_handle(&self) -> &StreamSocketControlHandle {
61265        &self.control_handle
61266    }
61267
61268    fn drop_without_shutdown(mut self) {
61269        // Safety: drops once, never accessed again due to mem::forget
61270        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61271        // Prevent Drop from running (which would shut down the channel)
61272        std::mem::forget(self);
61273    }
61274}
61275
61276impl StreamSocketGetKeepAliveResponder {
61277    /// Sends a response to the FIDL transaction.
61278    ///
61279    /// Sets the channel to shutdown if an error occurs.
61280    pub fn send(
61281        self,
61282        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61283    ) -> Result<(), fidl::Error> {
61284        let _result = self.send_raw(result);
61285        if _result.is_err() {
61286            self.control_handle.shutdown();
61287        }
61288        self.drop_without_shutdown();
61289        _result
61290    }
61291
61292    /// Similar to "send" but does not shutdown the channel if an error occurs.
61293    pub fn send_no_shutdown_on_err(
61294        self,
61295        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61296    ) -> Result<(), fidl::Error> {
61297        let _result = self.send_raw(result);
61298        self.drop_without_shutdown();
61299        _result
61300    }
61301
61302    fn send_raw(
61303        &self,
61304        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61305    ) -> Result<(), fidl::Error> {
61306        self.control_handle.inner.send::<fidl::encoding::ResultType<
61307            BaseSocketGetKeepAliveResponse,
61308            fidl_fuchsia_posix::Errno,
61309        >>(
61310            result.map(|value| (value,)),
61311            self.tx_id,
61312            0x2dd29d3215f2c9d2,
61313            fidl::encoding::DynamicFlags::empty(),
61314        )
61315    }
61316}
61317
61318#[must_use = "FIDL methods require a response to be sent"]
61319#[derive(Debug)]
61320pub struct StreamSocketSetOutOfBandInlineResponder {
61321    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61322    tx_id: u32,
61323}
61324
61325/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61326/// if the responder is dropped without sending a response, so that the client
61327/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61328impl std::ops::Drop for StreamSocketSetOutOfBandInlineResponder {
61329    fn drop(&mut self) {
61330        self.control_handle.shutdown();
61331        // Safety: drops once, never accessed again
61332        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61333    }
61334}
61335
61336impl fidl::endpoints::Responder for StreamSocketSetOutOfBandInlineResponder {
61337    type ControlHandle = StreamSocketControlHandle;
61338
61339    fn control_handle(&self) -> &StreamSocketControlHandle {
61340        &self.control_handle
61341    }
61342
61343    fn drop_without_shutdown(mut self) {
61344        // Safety: drops once, never accessed again due to mem::forget
61345        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61346        // Prevent Drop from running (which would shut down the channel)
61347        std::mem::forget(self);
61348    }
61349}
61350
61351impl StreamSocketSetOutOfBandInlineResponder {
61352    /// Sends a response to the FIDL transaction.
61353    ///
61354    /// Sets the channel to shutdown if an error occurs.
61355    pub fn send(
61356        self,
61357        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61358    ) -> Result<(), fidl::Error> {
61359        let _result = self.send_raw(result);
61360        if _result.is_err() {
61361            self.control_handle.shutdown();
61362        }
61363        self.drop_without_shutdown();
61364        _result
61365    }
61366
61367    /// Similar to "send" but does not shutdown the channel if an error occurs.
61368    pub fn send_no_shutdown_on_err(
61369        self,
61370        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61371    ) -> Result<(), fidl::Error> {
61372        let _result = self.send_raw(result);
61373        self.drop_without_shutdown();
61374        _result
61375    }
61376
61377    fn send_raw(
61378        &self,
61379        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61380    ) -> Result<(), fidl::Error> {
61381        self.control_handle.inner.send::<fidl::encoding::ResultType<
61382            fidl::encoding::EmptyStruct,
61383            fidl_fuchsia_posix::Errno,
61384        >>(
61385            result,
61386            self.tx_id,
61387            0x3ecb49968bee439,
61388            fidl::encoding::DynamicFlags::empty(),
61389        )
61390    }
61391}
61392
61393#[must_use = "FIDL methods require a response to be sent"]
61394#[derive(Debug)]
61395pub struct StreamSocketGetOutOfBandInlineResponder {
61396    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61397    tx_id: u32,
61398}
61399
61400/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61401/// if the responder is dropped without sending a response, so that the client
61402/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61403impl std::ops::Drop for StreamSocketGetOutOfBandInlineResponder {
61404    fn drop(&mut self) {
61405        self.control_handle.shutdown();
61406        // Safety: drops once, never accessed again
61407        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61408    }
61409}
61410
61411impl fidl::endpoints::Responder for StreamSocketGetOutOfBandInlineResponder {
61412    type ControlHandle = StreamSocketControlHandle;
61413
61414    fn control_handle(&self) -> &StreamSocketControlHandle {
61415        &self.control_handle
61416    }
61417
61418    fn drop_without_shutdown(mut self) {
61419        // Safety: drops once, never accessed again due to mem::forget
61420        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61421        // Prevent Drop from running (which would shut down the channel)
61422        std::mem::forget(self);
61423    }
61424}
61425
61426impl StreamSocketGetOutOfBandInlineResponder {
61427    /// Sends a response to the FIDL transaction.
61428    ///
61429    /// Sets the channel to shutdown if an error occurs.
61430    pub fn send(
61431        self,
61432        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61433    ) -> Result<(), fidl::Error> {
61434        let _result = self.send_raw(result);
61435        if _result.is_err() {
61436            self.control_handle.shutdown();
61437        }
61438        self.drop_without_shutdown();
61439        _result
61440    }
61441
61442    /// Similar to "send" but does not shutdown the channel if an error occurs.
61443    pub fn send_no_shutdown_on_err(
61444        self,
61445        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61446    ) -> Result<(), fidl::Error> {
61447        let _result = self.send_raw(result);
61448        self.drop_without_shutdown();
61449        _result
61450    }
61451
61452    fn send_raw(
61453        &self,
61454        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61455    ) -> Result<(), fidl::Error> {
61456        self.control_handle.inner.send::<fidl::encoding::ResultType<
61457            BaseSocketGetOutOfBandInlineResponse,
61458            fidl_fuchsia_posix::Errno,
61459        >>(
61460            result.map(|value| (value,)),
61461            self.tx_id,
61462            0x348c1ab3aeca1745,
61463            fidl::encoding::DynamicFlags::empty(),
61464        )
61465    }
61466}
61467
61468#[must_use = "FIDL methods require a response to be sent"]
61469#[derive(Debug)]
61470pub struct StreamSocketSetNoCheckResponder {
61471    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61472    tx_id: u32,
61473}
61474
61475/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61476/// if the responder is dropped without sending a response, so that the client
61477/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61478impl std::ops::Drop for StreamSocketSetNoCheckResponder {
61479    fn drop(&mut self) {
61480        self.control_handle.shutdown();
61481        // Safety: drops once, never accessed again
61482        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61483    }
61484}
61485
61486impl fidl::endpoints::Responder for StreamSocketSetNoCheckResponder {
61487    type ControlHandle = StreamSocketControlHandle;
61488
61489    fn control_handle(&self) -> &StreamSocketControlHandle {
61490        &self.control_handle
61491    }
61492
61493    fn drop_without_shutdown(mut self) {
61494        // Safety: drops once, never accessed again due to mem::forget
61495        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61496        // Prevent Drop from running (which would shut down the channel)
61497        std::mem::forget(self);
61498    }
61499}
61500
61501impl StreamSocketSetNoCheckResponder {
61502    /// Sends a response to the FIDL transaction.
61503    ///
61504    /// Sets the channel to shutdown if an error occurs.
61505    pub fn send(
61506        self,
61507        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61508    ) -> Result<(), fidl::Error> {
61509        let _result = self.send_raw(result);
61510        if _result.is_err() {
61511            self.control_handle.shutdown();
61512        }
61513        self.drop_without_shutdown();
61514        _result
61515    }
61516
61517    /// Similar to "send" but does not shutdown the channel if an error occurs.
61518    pub fn send_no_shutdown_on_err(
61519        self,
61520        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61521    ) -> Result<(), fidl::Error> {
61522        let _result = self.send_raw(result);
61523        self.drop_without_shutdown();
61524        _result
61525    }
61526
61527    fn send_raw(
61528        &self,
61529        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61530    ) -> Result<(), fidl::Error> {
61531        self.control_handle.inner.send::<fidl::encoding::ResultType<
61532            fidl::encoding::EmptyStruct,
61533            fidl_fuchsia_posix::Errno,
61534        >>(
61535            result,
61536            self.tx_id,
61537            0x6bbf00c53a4c78c2,
61538            fidl::encoding::DynamicFlags::empty(),
61539        )
61540    }
61541}
61542
61543#[must_use = "FIDL methods require a response to be sent"]
61544#[derive(Debug)]
61545pub struct StreamSocketGetNoCheckResponder {
61546    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61547    tx_id: u32,
61548}
61549
61550/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61551/// if the responder is dropped without sending a response, so that the client
61552/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61553impl std::ops::Drop for StreamSocketGetNoCheckResponder {
61554    fn drop(&mut self) {
61555        self.control_handle.shutdown();
61556        // Safety: drops once, never accessed again
61557        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61558    }
61559}
61560
61561impl fidl::endpoints::Responder for StreamSocketGetNoCheckResponder {
61562    type ControlHandle = StreamSocketControlHandle;
61563
61564    fn control_handle(&self) -> &StreamSocketControlHandle {
61565        &self.control_handle
61566    }
61567
61568    fn drop_without_shutdown(mut self) {
61569        // Safety: drops once, never accessed again due to mem::forget
61570        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61571        // Prevent Drop from running (which would shut down the channel)
61572        std::mem::forget(self);
61573    }
61574}
61575
61576impl StreamSocketGetNoCheckResponder {
61577    /// Sends a response to the FIDL transaction.
61578    ///
61579    /// Sets the channel to shutdown if an error occurs.
61580    pub fn send(
61581        self,
61582        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61583    ) -> Result<(), fidl::Error> {
61584        let _result = self.send_raw(result);
61585        if _result.is_err() {
61586            self.control_handle.shutdown();
61587        }
61588        self.drop_without_shutdown();
61589        _result
61590    }
61591
61592    /// Similar to "send" but does not shutdown the channel if an error occurs.
61593    pub fn send_no_shutdown_on_err(
61594        self,
61595        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61596    ) -> Result<(), fidl::Error> {
61597        let _result = self.send_raw(result);
61598        self.drop_without_shutdown();
61599        _result
61600    }
61601
61602    fn send_raw(
61603        &self,
61604        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61605    ) -> Result<(), fidl::Error> {
61606        self.control_handle.inner.send::<fidl::encoding::ResultType<
61607            BaseSocketGetNoCheckResponse,
61608            fidl_fuchsia_posix::Errno,
61609        >>(
61610            result.map(|value| (value,)),
61611            self.tx_id,
61612            0x2cd4249286417694,
61613            fidl::encoding::DynamicFlags::empty(),
61614        )
61615    }
61616}
61617
61618#[must_use = "FIDL methods require a response to be sent"]
61619#[derive(Debug)]
61620pub struct StreamSocketSetLingerResponder {
61621    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61622    tx_id: u32,
61623}
61624
61625/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61626/// if the responder is dropped without sending a response, so that the client
61627/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61628impl std::ops::Drop for StreamSocketSetLingerResponder {
61629    fn drop(&mut self) {
61630        self.control_handle.shutdown();
61631        // Safety: drops once, never accessed again
61632        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61633    }
61634}
61635
61636impl fidl::endpoints::Responder for StreamSocketSetLingerResponder {
61637    type ControlHandle = StreamSocketControlHandle;
61638
61639    fn control_handle(&self) -> &StreamSocketControlHandle {
61640        &self.control_handle
61641    }
61642
61643    fn drop_without_shutdown(mut self) {
61644        // Safety: drops once, never accessed again due to mem::forget
61645        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61646        // Prevent Drop from running (which would shut down the channel)
61647        std::mem::forget(self);
61648    }
61649}
61650
61651impl StreamSocketSetLingerResponder {
61652    /// Sends a response to the FIDL transaction.
61653    ///
61654    /// Sets the channel to shutdown if an error occurs.
61655    pub fn send(
61656        self,
61657        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61658    ) -> Result<(), fidl::Error> {
61659        let _result = self.send_raw(result);
61660        if _result.is_err() {
61661            self.control_handle.shutdown();
61662        }
61663        self.drop_without_shutdown();
61664        _result
61665    }
61666
61667    /// Similar to "send" but does not shutdown the channel if an error occurs.
61668    pub fn send_no_shutdown_on_err(
61669        self,
61670        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61671    ) -> Result<(), fidl::Error> {
61672        let _result = self.send_raw(result);
61673        self.drop_without_shutdown();
61674        _result
61675    }
61676
61677    fn send_raw(
61678        &self,
61679        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61680    ) -> Result<(), fidl::Error> {
61681        self.control_handle.inner.send::<fidl::encoding::ResultType<
61682            fidl::encoding::EmptyStruct,
61683            fidl_fuchsia_posix::Errno,
61684        >>(
61685            result,
61686            self.tx_id,
61687            0x45386351246e998e,
61688            fidl::encoding::DynamicFlags::empty(),
61689        )
61690    }
61691}
61692
61693#[must_use = "FIDL methods require a response to be sent"]
61694#[derive(Debug)]
61695pub struct StreamSocketGetLingerResponder {
61696    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61697    tx_id: u32,
61698}
61699
61700/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61701/// if the responder is dropped without sending a response, so that the client
61702/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61703impl std::ops::Drop for StreamSocketGetLingerResponder {
61704    fn drop(&mut self) {
61705        self.control_handle.shutdown();
61706        // Safety: drops once, never accessed again
61707        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61708    }
61709}
61710
61711impl fidl::endpoints::Responder for StreamSocketGetLingerResponder {
61712    type ControlHandle = StreamSocketControlHandle;
61713
61714    fn control_handle(&self) -> &StreamSocketControlHandle {
61715        &self.control_handle
61716    }
61717
61718    fn drop_without_shutdown(mut self) {
61719        // Safety: drops once, never accessed again due to mem::forget
61720        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61721        // Prevent Drop from running (which would shut down the channel)
61722        std::mem::forget(self);
61723    }
61724}
61725
61726impl StreamSocketGetLingerResponder {
61727    /// Sends a response to the FIDL transaction.
61728    ///
61729    /// Sets the channel to shutdown if an error occurs.
61730    pub fn send(
61731        self,
61732        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
61733    ) -> Result<(), fidl::Error> {
61734        let _result = self.send_raw(result);
61735        if _result.is_err() {
61736            self.control_handle.shutdown();
61737        }
61738        self.drop_without_shutdown();
61739        _result
61740    }
61741
61742    /// Similar to "send" but does not shutdown the channel if an error occurs.
61743    pub fn send_no_shutdown_on_err(
61744        self,
61745        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
61746    ) -> Result<(), fidl::Error> {
61747        let _result = self.send_raw(result);
61748        self.drop_without_shutdown();
61749        _result
61750    }
61751
61752    fn send_raw(
61753        &self,
61754        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
61755    ) -> Result<(), fidl::Error> {
61756        self.control_handle.inner.send::<fidl::encoding::ResultType<
61757            BaseSocketGetLingerResponse,
61758            fidl_fuchsia_posix::Errno,
61759        >>(
61760            result,
61761            self.tx_id,
61762            0x48eb20fc5ccb0e45,
61763            fidl::encoding::DynamicFlags::empty(),
61764        )
61765    }
61766}
61767
61768#[must_use = "FIDL methods require a response to be sent"]
61769#[derive(Debug)]
61770pub struct StreamSocketSetReusePortResponder {
61771    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61772    tx_id: u32,
61773}
61774
61775/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61776/// if the responder is dropped without sending a response, so that the client
61777/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61778impl std::ops::Drop for StreamSocketSetReusePortResponder {
61779    fn drop(&mut self) {
61780        self.control_handle.shutdown();
61781        // Safety: drops once, never accessed again
61782        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61783    }
61784}
61785
61786impl fidl::endpoints::Responder for StreamSocketSetReusePortResponder {
61787    type ControlHandle = StreamSocketControlHandle;
61788
61789    fn control_handle(&self) -> &StreamSocketControlHandle {
61790        &self.control_handle
61791    }
61792
61793    fn drop_without_shutdown(mut self) {
61794        // Safety: drops once, never accessed again due to mem::forget
61795        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61796        // Prevent Drop from running (which would shut down the channel)
61797        std::mem::forget(self);
61798    }
61799}
61800
61801impl StreamSocketSetReusePortResponder {
61802    /// Sends a response to the FIDL transaction.
61803    ///
61804    /// Sets the channel to shutdown if an error occurs.
61805    pub fn send(
61806        self,
61807        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61808    ) -> Result<(), fidl::Error> {
61809        let _result = self.send_raw(result);
61810        if _result.is_err() {
61811            self.control_handle.shutdown();
61812        }
61813        self.drop_without_shutdown();
61814        _result
61815    }
61816
61817    /// Similar to "send" but does not shutdown the channel if an error occurs.
61818    pub fn send_no_shutdown_on_err(
61819        self,
61820        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61821    ) -> Result<(), fidl::Error> {
61822        let _result = self.send_raw(result);
61823        self.drop_without_shutdown();
61824        _result
61825    }
61826
61827    fn send_raw(
61828        &self,
61829        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61830    ) -> Result<(), fidl::Error> {
61831        self.control_handle.inner.send::<fidl::encoding::ResultType<
61832            fidl::encoding::EmptyStruct,
61833            fidl_fuchsia_posix::Errno,
61834        >>(
61835            result,
61836            self.tx_id,
61837            0x24dd3e5cb36d9ccb,
61838            fidl::encoding::DynamicFlags::empty(),
61839        )
61840    }
61841}
61842
61843#[must_use = "FIDL methods require a response to be sent"]
61844#[derive(Debug)]
61845pub struct StreamSocketGetReusePortResponder {
61846    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61847    tx_id: u32,
61848}
61849
61850/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61851/// if the responder is dropped without sending a response, so that the client
61852/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61853impl std::ops::Drop for StreamSocketGetReusePortResponder {
61854    fn drop(&mut self) {
61855        self.control_handle.shutdown();
61856        // Safety: drops once, never accessed again
61857        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61858    }
61859}
61860
61861impl fidl::endpoints::Responder for StreamSocketGetReusePortResponder {
61862    type ControlHandle = StreamSocketControlHandle;
61863
61864    fn control_handle(&self) -> &StreamSocketControlHandle {
61865        &self.control_handle
61866    }
61867
61868    fn drop_without_shutdown(mut self) {
61869        // Safety: drops once, never accessed again due to mem::forget
61870        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61871        // Prevent Drop from running (which would shut down the channel)
61872        std::mem::forget(self);
61873    }
61874}
61875
61876impl StreamSocketGetReusePortResponder {
61877    /// Sends a response to the FIDL transaction.
61878    ///
61879    /// Sets the channel to shutdown if an error occurs.
61880    pub fn send(
61881        self,
61882        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61883    ) -> Result<(), fidl::Error> {
61884        let _result = self.send_raw(result);
61885        if _result.is_err() {
61886            self.control_handle.shutdown();
61887        }
61888        self.drop_without_shutdown();
61889        _result
61890    }
61891
61892    /// Similar to "send" but does not shutdown the channel if an error occurs.
61893    pub fn send_no_shutdown_on_err(
61894        self,
61895        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61896    ) -> Result<(), fidl::Error> {
61897        let _result = self.send_raw(result);
61898        self.drop_without_shutdown();
61899        _result
61900    }
61901
61902    fn send_raw(
61903        &self,
61904        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61905    ) -> Result<(), fidl::Error> {
61906        self.control_handle.inner.send::<fidl::encoding::ResultType<
61907            BaseSocketGetReusePortResponse,
61908            fidl_fuchsia_posix::Errno,
61909        >>(
61910            result.map(|value| (value,)),
61911            self.tx_id,
61912            0x7a112c1ab54ff828,
61913            fidl::encoding::DynamicFlags::empty(),
61914        )
61915    }
61916}
61917
61918#[must_use = "FIDL methods require a response to be sent"]
61919#[derive(Debug)]
61920pub struct StreamSocketGetAcceptConnResponder {
61921    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61922    tx_id: u32,
61923}
61924
61925/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61926/// if the responder is dropped without sending a response, so that the client
61927/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61928impl std::ops::Drop for StreamSocketGetAcceptConnResponder {
61929    fn drop(&mut self) {
61930        self.control_handle.shutdown();
61931        // Safety: drops once, never accessed again
61932        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61933    }
61934}
61935
61936impl fidl::endpoints::Responder for StreamSocketGetAcceptConnResponder {
61937    type ControlHandle = StreamSocketControlHandle;
61938
61939    fn control_handle(&self) -> &StreamSocketControlHandle {
61940        &self.control_handle
61941    }
61942
61943    fn drop_without_shutdown(mut self) {
61944        // Safety: drops once, never accessed again due to mem::forget
61945        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61946        // Prevent Drop from running (which would shut down the channel)
61947        std::mem::forget(self);
61948    }
61949}
61950
61951impl StreamSocketGetAcceptConnResponder {
61952    /// Sends a response to the FIDL transaction.
61953    ///
61954    /// Sets the channel to shutdown if an error occurs.
61955    pub fn send(
61956        self,
61957        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61958    ) -> Result<(), fidl::Error> {
61959        let _result = self.send_raw(result);
61960        if _result.is_err() {
61961            self.control_handle.shutdown();
61962        }
61963        self.drop_without_shutdown();
61964        _result
61965    }
61966
61967    /// Similar to "send" but does not shutdown the channel if an error occurs.
61968    pub fn send_no_shutdown_on_err(
61969        self,
61970        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61971    ) -> Result<(), fidl::Error> {
61972        let _result = self.send_raw(result);
61973        self.drop_without_shutdown();
61974        _result
61975    }
61976
61977    fn send_raw(
61978        &self,
61979        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61980    ) -> Result<(), fidl::Error> {
61981        self.control_handle.inner.send::<fidl::encoding::ResultType<
61982            BaseSocketGetAcceptConnResponse,
61983            fidl_fuchsia_posix::Errno,
61984        >>(
61985            result.map(|value| (value,)),
61986            self.tx_id,
61987            0x67ce6db6c2ec8966,
61988            fidl::encoding::DynamicFlags::empty(),
61989        )
61990    }
61991}
61992
61993#[must_use = "FIDL methods require a response to be sent"]
61994#[derive(Debug)]
61995pub struct StreamSocketSetBindToDeviceResponder {
61996    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61997    tx_id: u32,
61998}
61999
62000/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62001/// if the responder is dropped without sending a response, so that the client
62002/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62003impl std::ops::Drop for StreamSocketSetBindToDeviceResponder {
62004    fn drop(&mut self) {
62005        self.control_handle.shutdown();
62006        // Safety: drops once, never accessed again
62007        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62008    }
62009}
62010
62011impl fidl::endpoints::Responder for StreamSocketSetBindToDeviceResponder {
62012    type ControlHandle = StreamSocketControlHandle;
62013
62014    fn control_handle(&self) -> &StreamSocketControlHandle {
62015        &self.control_handle
62016    }
62017
62018    fn drop_without_shutdown(mut self) {
62019        // Safety: drops once, never accessed again due to mem::forget
62020        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62021        // Prevent Drop from running (which would shut down the channel)
62022        std::mem::forget(self);
62023    }
62024}
62025
62026impl StreamSocketSetBindToDeviceResponder {
62027    /// Sends a response to the FIDL transaction.
62028    ///
62029    /// Sets the channel to shutdown if an error occurs.
62030    pub fn send(
62031        self,
62032        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62033    ) -> Result<(), fidl::Error> {
62034        let _result = self.send_raw(result);
62035        if _result.is_err() {
62036            self.control_handle.shutdown();
62037        }
62038        self.drop_without_shutdown();
62039        _result
62040    }
62041
62042    /// Similar to "send" but does not shutdown the channel if an error occurs.
62043    pub fn send_no_shutdown_on_err(
62044        self,
62045        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62046    ) -> Result<(), fidl::Error> {
62047        let _result = self.send_raw(result);
62048        self.drop_without_shutdown();
62049        _result
62050    }
62051
62052    fn send_raw(
62053        &self,
62054        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62055    ) -> Result<(), fidl::Error> {
62056        self.control_handle.inner.send::<fidl::encoding::ResultType<
62057            fidl::encoding::EmptyStruct,
62058            fidl_fuchsia_posix::Errno,
62059        >>(
62060            result,
62061            self.tx_id,
62062            0x2118b483f28aafc4,
62063            fidl::encoding::DynamicFlags::empty(),
62064        )
62065    }
62066}
62067
62068#[must_use = "FIDL methods require a response to be sent"]
62069#[derive(Debug)]
62070pub struct StreamSocketGetBindToDeviceResponder {
62071    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62072    tx_id: u32,
62073}
62074
62075/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62076/// if the responder is dropped without sending a response, so that the client
62077/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62078impl std::ops::Drop for StreamSocketGetBindToDeviceResponder {
62079    fn drop(&mut self) {
62080        self.control_handle.shutdown();
62081        // Safety: drops once, never accessed again
62082        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62083    }
62084}
62085
62086impl fidl::endpoints::Responder for StreamSocketGetBindToDeviceResponder {
62087    type ControlHandle = StreamSocketControlHandle;
62088
62089    fn control_handle(&self) -> &StreamSocketControlHandle {
62090        &self.control_handle
62091    }
62092
62093    fn drop_without_shutdown(mut self) {
62094        // Safety: drops once, never accessed again due to mem::forget
62095        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62096        // Prevent Drop from running (which would shut down the channel)
62097        std::mem::forget(self);
62098    }
62099}
62100
62101impl StreamSocketGetBindToDeviceResponder {
62102    /// Sends a response to the FIDL transaction.
62103    ///
62104    /// Sets the channel to shutdown if an error occurs.
62105    pub fn send(
62106        self,
62107        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
62108    ) -> Result<(), fidl::Error> {
62109        let _result = self.send_raw(result);
62110        if _result.is_err() {
62111            self.control_handle.shutdown();
62112        }
62113        self.drop_without_shutdown();
62114        _result
62115    }
62116
62117    /// Similar to "send" but does not shutdown the channel if an error occurs.
62118    pub fn send_no_shutdown_on_err(
62119        self,
62120        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
62121    ) -> Result<(), fidl::Error> {
62122        let _result = self.send_raw(result);
62123        self.drop_without_shutdown();
62124        _result
62125    }
62126
62127    fn send_raw(
62128        &self,
62129        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
62130    ) -> Result<(), fidl::Error> {
62131        self.control_handle.inner.send::<fidl::encoding::ResultType<
62132            BaseSocketGetBindToDeviceResponse,
62133            fidl_fuchsia_posix::Errno,
62134        >>(
62135            result.map(|value| (value,)),
62136            self.tx_id,
62137            0x1ab1fbf0ef7906c8,
62138            fidl::encoding::DynamicFlags::empty(),
62139        )
62140    }
62141}
62142
62143#[must_use = "FIDL methods require a response to be sent"]
62144#[derive(Debug)]
62145pub struct StreamSocketSetBindToInterfaceIndexResponder {
62146    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62147    tx_id: u32,
62148}
62149
62150/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62151/// if the responder is dropped without sending a response, so that the client
62152/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62153impl std::ops::Drop for StreamSocketSetBindToInterfaceIndexResponder {
62154    fn drop(&mut self) {
62155        self.control_handle.shutdown();
62156        // Safety: drops once, never accessed again
62157        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62158    }
62159}
62160
62161impl fidl::endpoints::Responder for StreamSocketSetBindToInterfaceIndexResponder {
62162    type ControlHandle = StreamSocketControlHandle;
62163
62164    fn control_handle(&self) -> &StreamSocketControlHandle {
62165        &self.control_handle
62166    }
62167
62168    fn drop_without_shutdown(mut self) {
62169        // Safety: drops once, never accessed again due to mem::forget
62170        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62171        // Prevent Drop from running (which would shut down the channel)
62172        std::mem::forget(self);
62173    }
62174}
62175
62176impl StreamSocketSetBindToInterfaceIndexResponder {
62177    /// Sends a response to the FIDL transaction.
62178    ///
62179    /// Sets the channel to shutdown if an error occurs.
62180    pub fn send(
62181        self,
62182        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62183    ) -> Result<(), fidl::Error> {
62184        let _result = self.send_raw(result);
62185        if _result.is_err() {
62186            self.control_handle.shutdown();
62187        }
62188        self.drop_without_shutdown();
62189        _result
62190    }
62191
62192    /// Similar to "send" but does not shutdown the channel if an error occurs.
62193    pub fn send_no_shutdown_on_err(
62194        self,
62195        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62196    ) -> Result<(), fidl::Error> {
62197        let _result = self.send_raw(result);
62198        self.drop_without_shutdown();
62199        _result
62200    }
62201
62202    fn send_raw(
62203        &self,
62204        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62205    ) -> Result<(), fidl::Error> {
62206        self.control_handle.inner.send::<fidl::encoding::ResultType<
62207            fidl::encoding::EmptyStruct,
62208            fidl_fuchsia_posix::Errno,
62209        >>(
62210            result,
62211            self.tx_id,
62212            0x6e387a0def00821,
62213            fidl::encoding::DynamicFlags::empty(),
62214        )
62215    }
62216}
62217
62218#[must_use = "FIDL methods require a response to be sent"]
62219#[derive(Debug)]
62220pub struct StreamSocketGetBindToInterfaceIndexResponder {
62221    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62222    tx_id: u32,
62223}
62224
62225/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62226/// if the responder is dropped without sending a response, so that the client
62227/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62228impl std::ops::Drop for StreamSocketGetBindToInterfaceIndexResponder {
62229    fn drop(&mut self) {
62230        self.control_handle.shutdown();
62231        // Safety: drops once, never accessed again
62232        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62233    }
62234}
62235
62236impl fidl::endpoints::Responder for StreamSocketGetBindToInterfaceIndexResponder {
62237    type ControlHandle = StreamSocketControlHandle;
62238
62239    fn control_handle(&self) -> &StreamSocketControlHandle {
62240        &self.control_handle
62241    }
62242
62243    fn drop_without_shutdown(mut self) {
62244        // Safety: drops once, never accessed again due to mem::forget
62245        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62246        // Prevent Drop from running (which would shut down the channel)
62247        std::mem::forget(self);
62248    }
62249}
62250
62251impl StreamSocketGetBindToInterfaceIndexResponder {
62252    /// Sends a response to the FIDL transaction.
62253    ///
62254    /// Sets the channel to shutdown if an error occurs.
62255    pub fn send(
62256        self,
62257        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
62258    ) -> Result<(), fidl::Error> {
62259        let _result = self.send_raw(result);
62260        if _result.is_err() {
62261            self.control_handle.shutdown();
62262        }
62263        self.drop_without_shutdown();
62264        _result
62265    }
62266
62267    /// Similar to "send" but does not shutdown the channel if an error occurs.
62268    pub fn send_no_shutdown_on_err(
62269        self,
62270        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
62271    ) -> Result<(), fidl::Error> {
62272        let _result = self.send_raw(result);
62273        self.drop_without_shutdown();
62274        _result
62275    }
62276
62277    fn send_raw(
62278        &self,
62279        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
62280    ) -> Result<(), fidl::Error> {
62281        self.control_handle.inner.send::<fidl::encoding::ResultType<
62282            BaseSocketGetBindToInterfaceIndexResponse,
62283            fidl_fuchsia_posix::Errno,
62284        >>(
62285            result.map(|value| (value,)),
62286            self.tx_id,
62287            0x59c31dd3e3078295,
62288            fidl::encoding::DynamicFlags::empty(),
62289        )
62290    }
62291}
62292
62293#[must_use = "FIDL methods require a response to be sent"]
62294#[derive(Debug)]
62295pub struct StreamSocketSetTimestampResponder {
62296    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62297    tx_id: u32,
62298}
62299
62300/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62301/// if the responder is dropped without sending a response, so that the client
62302/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62303impl std::ops::Drop for StreamSocketSetTimestampResponder {
62304    fn drop(&mut self) {
62305        self.control_handle.shutdown();
62306        // Safety: drops once, never accessed again
62307        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62308    }
62309}
62310
62311impl fidl::endpoints::Responder for StreamSocketSetTimestampResponder {
62312    type ControlHandle = StreamSocketControlHandle;
62313
62314    fn control_handle(&self) -> &StreamSocketControlHandle {
62315        &self.control_handle
62316    }
62317
62318    fn drop_without_shutdown(mut self) {
62319        // Safety: drops once, never accessed again due to mem::forget
62320        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62321        // Prevent Drop from running (which would shut down the channel)
62322        std::mem::forget(self);
62323    }
62324}
62325
62326impl StreamSocketSetTimestampResponder {
62327    /// Sends a response to the FIDL transaction.
62328    ///
62329    /// Sets the channel to shutdown if an error occurs.
62330    pub fn send(
62331        self,
62332        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62333    ) -> Result<(), fidl::Error> {
62334        let _result = self.send_raw(result);
62335        if _result.is_err() {
62336            self.control_handle.shutdown();
62337        }
62338        self.drop_without_shutdown();
62339        _result
62340    }
62341
62342    /// Similar to "send" but does not shutdown the channel if an error occurs.
62343    pub fn send_no_shutdown_on_err(
62344        self,
62345        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62346    ) -> Result<(), fidl::Error> {
62347        let _result = self.send_raw(result);
62348        self.drop_without_shutdown();
62349        _result
62350    }
62351
62352    fn send_raw(
62353        &self,
62354        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62355    ) -> Result<(), fidl::Error> {
62356        self.control_handle.inner.send::<fidl::encoding::ResultType<
62357            fidl::encoding::EmptyStruct,
62358            fidl_fuchsia_posix::Errno,
62359        >>(
62360            result,
62361            self.tx_id,
62362            0x285d6516c263d839,
62363            fidl::encoding::DynamicFlags::empty(),
62364        )
62365    }
62366}
62367
62368#[must_use = "FIDL methods require a response to be sent"]
62369#[derive(Debug)]
62370pub struct StreamSocketGetTimestampResponder {
62371    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62372    tx_id: u32,
62373}
62374
62375/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62376/// if the responder is dropped without sending a response, so that the client
62377/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62378impl std::ops::Drop for StreamSocketGetTimestampResponder {
62379    fn drop(&mut self) {
62380        self.control_handle.shutdown();
62381        // Safety: drops once, never accessed again
62382        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62383    }
62384}
62385
62386impl fidl::endpoints::Responder for StreamSocketGetTimestampResponder {
62387    type ControlHandle = StreamSocketControlHandle;
62388
62389    fn control_handle(&self) -> &StreamSocketControlHandle {
62390        &self.control_handle
62391    }
62392
62393    fn drop_without_shutdown(mut self) {
62394        // Safety: drops once, never accessed again due to mem::forget
62395        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62396        // Prevent Drop from running (which would shut down the channel)
62397        std::mem::forget(self);
62398    }
62399}
62400
62401impl StreamSocketGetTimestampResponder {
62402    /// Sends a response to the FIDL transaction.
62403    ///
62404    /// Sets the channel to shutdown if an error occurs.
62405    pub fn send(
62406        self,
62407        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
62408    ) -> Result<(), fidl::Error> {
62409        let _result = self.send_raw(result);
62410        if _result.is_err() {
62411            self.control_handle.shutdown();
62412        }
62413        self.drop_without_shutdown();
62414        _result
62415    }
62416
62417    /// Similar to "send" but does not shutdown the channel if an error occurs.
62418    pub fn send_no_shutdown_on_err(
62419        self,
62420        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
62421    ) -> Result<(), fidl::Error> {
62422        let _result = self.send_raw(result);
62423        self.drop_without_shutdown();
62424        _result
62425    }
62426
62427    fn send_raw(
62428        &self,
62429        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
62430    ) -> Result<(), fidl::Error> {
62431        self.control_handle.inner.send::<fidl::encoding::ResultType<
62432            BaseSocketGetTimestampResponse,
62433            fidl_fuchsia_posix::Errno,
62434        >>(
62435            result.map(|value| (value,)),
62436            self.tx_id,
62437            0x49f2fffbbcc2bd27,
62438            fidl::encoding::DynamicFlags::empty(),
62439        )
62440    }
62441}
62442
62443#[must_use = "FIDL methods require a response to be sent"]
62444#[derive(Debug)]
62445pub struct StreamSocketSetMarkResponder {
62446    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62447    tx_id: u32,
62448}
62449
62450/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62451/// if the responder is dropped without sending a response, so that the client
62452/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62453impl std::ops::Drop for StreamSocketSetMarkResponder {
62454    fn drop(&mut self) {
62455        self.control_handle.shutdown();
62456        // Safety: drops once, never accessed again
62457        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62458    }
62459}
62460
62461impl fidl::endpoints::Responder for StreamSocketSetMarkResponder {
62462    type ControlHandle = StreamSocketControlHandle;
62463
62464    fn control_handle(&self) -> &StreamSocketControlHandle {
62465        &self.control_handle
62466    }
62467
62468    fn drop_without_shutdown(mut self) {
62469        // Safety: drops once, never accessed again due to mem::forget
62470        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62471        // Prevent Drop from running (which would shut down the channel)
62472        std::mem::forget(self);
62473    }
62474}
62475
62476impl StreamSocketSetMarkResponder {
62477    /// Sends a response to the FIDL transaction.
62478    ///
62479    /// Sets the channel to shutdown if an error occurs.
62480    pub fn send(
62481        self,
62482        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62483    ) -> Result<(), fidl::Error> {
62484        let _result = self.send_raw(result);
62485        if _result.is_err() {
62486            self.control_handle.shutdown();
62487        }
62488        self.drop_without_shutdown();
62489        _result
62490    }
62491
62492    /// Similar to "send" but does not shutdown the channel if an error occurs.
62493    pub fn send_no_shutdown_on_err(
62494        self,
62495        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62496    ) -> Result<(), fidl::Error> {
62497        let _result = self.send_raw(result);
62498        self.drop_without_shutdown();
62499        _result
62500    }
62501
62502    fn send_raw(
62503        &self,
62504        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62505    ) -> Result<(), fidl::Error> {
62506        self.control_handle.inner.send::<fidl::encoding::ResultType<
62507            fidl::encoding::EmptyStruct,
62508            fidl_fuchsia_posix::Errno,
62509        >>(
62510            result,
62511            self.tx_id,
62512            0x6ead6de09f653236,
62513            fidl::encoding::DynamicFlags::empty(),
62514        )
62515    }
62516}
62517
62518#[must_use = "FIDL methods require a response to be sent"]
62519#[derive(Debug)]
62520pub struct StreamSocketGetMarkResponder {
62521    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62522    tx_id: u32,
62523}
62524
62525/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62526/// if the responder is dropped without sending a response, so that the client
62527/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62528impl std::ops::Drop for StreamSocketGetMarkResponder {
62529    fn drop(&mut self) {
62530        self.control_handle.shutdown();
62531        // Safety: drops once, never accessed again
62532        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62533    }
62534}
62535
62536impl fidl::endpoints::Responder for StreamSocketGetMarkResponder {
62537    type ControlHandle = StreamSocketControlHandle;
62538
62539    fn control_handle(&self) -> &StreamSocketControlHandle {
62540        &self.control_handle
62541    }
62542
62543    fn drop_without_shutdown(mut self) {
62544        // Safety: drops once, never accessed again due to mem::forget
62545        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62546        // Prevent Drop from running (which would shut down the channel)
62547        std::mem::forget(self);
62548    }
62549}
62550
62551impl StreamSocketGetMarkResponder {
62552    /// Sends a response to the FIDL transaction.
62553    ///
62554    /// Sets the channel to shutdown if an error occurs.
62555    pub fn send(
62556        self,
62557        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
62558    ) -> Result<(), fidl::Error> {
62559        let _result = self.send_raw(result);
62560        if _result.is_err() {
62561            self.control_handle.shutdown();
62562        }
62563        self.drop_without_shutdown();
62564        _result
62565    }
62566
62567    /// Similar to "send" but does not shutdown the channel if an error occurs.
62568    pub fn send_no_shutdown_on_err(
62569        self,
62570        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
62571    ) -> Result<(), fidl::Error> {
62572        let _result = self.send_raw(result);
62573        self.drop_without_shutdown();
62574        _result
62575    }
62576
62577    fn send_raw(
62578        &self,
62579        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
62580    ) -> Result<(), fidl::Error> {
62581        self.control_handle.inner.send::<fidl::encoding::ResultType<
62582            BaseSocketGetMarkResponse,
62583            fidl_fuchsia_posix::Errno,
62584        >>(
62585            result.map(|mark| (mark,)),
62586            self.tx_id,
62587            0x57a2752c61d93d47,
62588            fidl::encoding::DynamicFlags::empty(),
62589        )
62590    }
62591}
62592
62593#[must_use = "FIDL methods require a response to be sent"]
62594#[derive(Debug)]
62595pub struct StreamSocketGetCookieResponder {
62596    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62597    tx_id: u32,
62598}
62599
62600/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62601/// if the responder is dropped without sending a response, so that the client
62602/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62603impl std::ops::Drop for StreamSocketGetCookieResponder {
62604    fn drop(&mut self) {
62605        self.control_handle.shutdown();
62606        // Safety: drops once, never accessed again
62607        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62608    }
62609}
62610
62611impl fidl::endpoints::Responder for StreamSocketGetCookieResponder {
62612    type ControlHandle = StreamSocketControlHandle;
62613
62614    fn control_handle(&self) -> &StreamSocketControlHandle {
62615        &self.control_handle
62616    }
62617
62618    fn drop_without_shutdown(mut self) {
62619        // Safety: drops once, never accessed again due to mem::forget
62620        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62621        // Prevent Drop from running (which would shut down the channel)
62622        std::mem::forget(self);
62623    }
62624}
62625
62626impl StreamSocketGetCookieResponder {
62627    /// Sends a response to the FIDL transaction.
62628    ///
62629    /// Sets the channel to shutdown if an error occurs.
62630    pub fn send(
62631        self,
62632        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
62633    ) -> Result<(), fidl::Error> {
62634        let _result = self.send_raw(result);
62635        if _result.is_err() {
62636            self.control_handle.shutdown();
62637        }
62638        self.drop_without_shutdown();
62639        _result
62640    }
62641
62642    /// Similar to "send" but does not shutdown the channel if an error occurs.
62643    pub fn send_no_shutdown_on_err(
62644        self,
62645        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
62646    ) -> Result<(), fidl::Error> {
62647        let _result = self.send_raw(result);
62648        self.drop_without_shutdown();
62649        _result
62650    }
62651
62652    fn send_raw(
62653        &self,
62654        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
62655    ) -> Result<(), fidl::Error> {
62656        self.control_handle.inner.send::<fidl::encoding::ResultType<
62657            BaseSocketGetCookieResponse,
62658            fidl_fuchsia_posix::Errno,
62659        >>(
62660            result.map(|value| (value,)),
62661            self.tx_id,
62662            0x2c2f47fd8f924e52,
62663            fidl::encoding::DynamicFlags::empty(),
62664        )
62665    }
62666}
62667
62668#[must_use = "FIDL methods require a response to be sent"]
62669#[derive(Debug)]
62670pub struct StreamSocketBindResponder {
62671    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62672    tx_id: u32,
62673}
62674
62675/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62676/// if the responder is dropped without sending a response, so that the client
62677/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62678impl std::ops::Drop for StreamSocketBindResponder {
62679    fn drop(&mut self) {
62680        self.control_handle.shutdown();
62681        // Safety: drops once, never accessed again
62682        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62683    }
62684}
62685
62686impl fidl::endpoints::Responder for StreamSocketBindResponder {
62687    type ControlHandle = StreamSocketControlHandle;
62688
62689    fn control_handle(&self) -> &StreamSocketControlHandle {
62690        &self.control_handle
62691    }
62692
62693    fn drop_without_shutdown(mut self) {
62694        // Safety: drops once, never accessed again due to mem::forget
62695        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62696        // Prevent Drop from running (which would shut down the channel)
62697        std::mem::forget(self);
62698    }
62699}
62700
62701impl StreamSocketBindResponder {
62702    /// Sends a response to the FIDL transaction.
62703    ///
62704    /// Sets the channel to shutdown if an error occurs.
62705    pub fn send(
62706        self,
62707        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62708    ) -> Result<(), fidl::Error> {
62709        let _result = self.send_raw(result);
62710        if _result.is_err() {
62711            self.control_handle.shutdown();
62712        }
62713        self.drop_without_shutdown();
62714        _result
62715    }
62716
62717    /// Similar to "send" but does not shutdown the channel if an error occurs.
62718    pub fn send_no_shutdown_on_err(
62719        self,
62720        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62721    ) -> Result<(), fidl::Error> {
62722        let _result = self.send_raw(result);
62723        self.drop_without_shutdown();
62724        _result
62725    }
62726
62727    fn send_raw(
62728        &self,
62729        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62730    ) -> Result<(), fidl::Error> {
62731        self.control_handle.inner.send::<fidl::encoding::ResultType<
62732            fidl::encoding::EmptyStruct,
62733            fidl_fuchsia_posix::Errno,
62734        >>(
62735            result,
62736            self.tx_id,
62737            0x4bc6400ae92125d,
62738            fidl::encoding::DynamicFlags::empty(),
62739        )
62740    }
62741}
62742
62743#[must_use = "FIDL methods require a response to be sent"]
62744#[derive(Debug)]
62745pub struct StreamSocketConnectResponder {
62746    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62747    tx_id: u32,
62748}
62749
62750/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62751/// if the responder is dropped without sending a response, so that the client
62752/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62753impl std::ops::Drop for StreamSocketConnectResponder {
62754    fn drop(&mut self) {
62755        self.control_handle.shutdown();
62756        // Safety: drops once, never accessed again
62757        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62758    }
62759}
62760
62761impl fidl::endpoints::Responder for StreamSocketConnectResponder {
62762    type ControlHandle = StreamSocketControlHandle;
62763
62764    fn control_handle(&self) -> &StreamSocketControlHandle {
62765        &self.control_handle
62766    }
62767
62768    fn drop_without_shutdown(mut self) {
62769        // Safety: drops once, never accessed again due to mem::forget
62770        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62771        // Prevent Drop from running (which would shut down the channel)
62772        std::mem::forget(self);
62773    }
62774}
62775
62776impl StreamSocketConnectResponder {
62777    /// Sends a response to the FIDL transaction.
62778    ///
62779    /// Sets the channel to shutdown if an error occurs.
62780    pub fn send(
62781        self,
62782        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62783    ) -> Result<(), fidl::Error> {
62784        let _result = self.send_raw(result);
62785        if _result.is_err() {
62786            self.control_handle.shutdown();
62787        }
62788        self.drop_without_shutdown();
62789        _result
62790    }
62791
62792    /// Similar to "send" but does not shutdown the channel if an error occurs.
62793    pub fn send_no_shutdown_on_err(
62794        self,
62795        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62796    ) -> Result<(), fidl::Error> {
62797        let _result = self.send_raw(result);
62798        self.drop_without_shutdown();
62799        _result
62800    }
62801
62802    fn send_raw(
62803        &self,
62804        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62805    ) -> Result<(), fidl::Error> {
62806        self.control_handle.inner.send::<fidl::encoding::ResultType<
62807            fidl::encoding::EmptyStruct,
62808            fidl_fuchsia_posix::Errno,
62809        >>(
62810            result,
62811            self.tx_id,
62812            0x5f05f19bfdd38871,
62813            fidl::encoding::DynamicFlags::empty(),
62814        )
62815    }
62816}
62817
62818#[must_use = "FIDL methods require a response to be sent"]
62819#[derive(Debug)]
62820pub struct StreamSocketDisconnectResponder {
62821    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62822    tx_id: u32,
62823}
62824
62825/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62826/// if the responder is dropped without sending a response, so that the client
62827/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62828impl std::ops::Drop for StreamSocketDisconnectResponder {
62829    fn drop(&mut self) {
62830        self.control_handle.shutdown();
62831        // Safety: drops once, never accessed again
62832        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62833    }
62834}
62835
62836impl fidl::endpoints::Responder for StreamSocketDisconnectResponder {
62837    type ControlHandle = StreamSocketControlHandle;
62838
62839    fn control_handle(&self) -> &StreamSocketControlHandle {
62840        &self.control_handle
62841    }
62842
62843    fn drop_without_shutdown(mut self) {
62844        // Safety: drops once, never accessed again due to mem::forget
62845        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62846        // Prevent Drop from running (which would shut down the channel)
62847        std::mem::forget(self);
62848    }
62849}
62850
62851impl StreamSocketDisconnectResponder {
62852    /// Sends a response to the FIDL transaction.
62853    ///
62854    /// Sets the channel to shutdown if an error occurs.
62855    pub fn send(
62856        self,
62857        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62858    ) -> Result<(), fidl::Error> {
62859        let _result = self.send_raw(result);
62860        if _result.is_err() {
62861            self.control_handle.shutdown();
62862        }
62863        self.drop_without_shutdown();
62864        _result
62865    }
62866
62867    /// Similar to "send" but does not shutdown the channel if an error occurs.
62868    pub fn send_no_shutdown_on_err(
62869        self,
62870        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62871    ) -> Result<(), fidl::Error> {
62872        let _result = self.send_raw(result);
62873        self.drop_without_shutdown();
62874        _result
62875    }
62876
62877    fn send_raw(
62878        &self,
62879        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62880    ) -> Result<(), fidl::Error> {
62881        self.control_handle.inner.send::<fidl::encoding::ResultType<
62882            fidl::encoding::EmptyStruct,
62883            fidl_fuchsia_posix::Errno,
62884        >>(
62885            result,
62886            self.tx_id,
62887            0x74e63b91f7b29b2,
62888            fidl::encoding::DynamicFlags::empty(),
62889        )
62890    }
62891}
62892
62893#[must_use = "FIDL methods require a response to be sent"]
62894#[derive(Debug)]
62895pub struct StreamSocketGetSockNameResponder {
62896    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62897    tx_id: u32,
62898}
62899
62900/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62901/// if the responder is dropped without sending a response, so that the client
62902/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62903impl std::ops::Drop for StreamSocketGetSockNameResponder {
62904    fn drop(&mut self) {
62905        self.control_handle.shutdown();
62906        // Safety: drops once, never accessed again
62907        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62908    }
62909}
62910
62911impl fidl::endpoints::Responder for StreamSocketGetSockNameResponder {
62912    type ControlHandle = StreamSocketControlHandle;
62913
62914    fn control_handle(&self) -> &StreamSocketControlHandle {
62915        &self.control_handle
62916    }
62917
62918    fn drop_without_shutdown(mut self) {
62919        // Safety: drops once, never accessed again due to mem::forget
62920        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62921        // Prevent Drop from running (which would shut down the channel)
62922        std::mem::forget(self);
62923    }
62924}
62925
62926impl StreamSocketGetSockNameResponder {
62927    /// Sends a response to the FIDL transaction.
62928    ///
62929    /// Sets the channel to shutdown if an error occurs.
62930    pub fn send(
62931        self,
62932        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
62933    ) -> Result<(), fidl::Error> {
62934        let _result = self.send_raw(result);
62935        if _result.is_err() {
62936            self.control_handle.shutdown();
62937        }
62938        self.drop_without_shutdown();
62939        _result
62940    }
62941
62942    /// Similar to "send" but does not shutdown the channel if an error occurs.
62943    pub fn send_no_shutdown_on_err(
62944        self,
62945        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
62946    ) -> Result<(), fidl::Error> {
62947        let _result = self.send_raw(result);
62948        self.drop_without_shutdown();
62949        _result
62950    }
62951
62952    fn send_raw(
62953        &self,
62954        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
62955    ) -> Result<(), fidl::Error> {
62956        self.control_handle.inner.send::<fidl::encoding::ResultType<
62957            BaseNetworkSocketGetSockNameResponse,
62958            fidl_fuchsia_posix::Errno,
62959        >>(
62960            result.map(|addr| (addr,)),
62961            self.tx_id,
62962            0x475f23f84a1a4f85,
62963            fidl::encoding::DynamicFlags::empty(),
62964        )
62965    }
62966}
62967
62968#[must_use = "FIDL methods require a response to be sent"]
62969#[derive(Debug)]
62970pub struct StreamSocketGetPeerNameResponder {
62971    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62972    tx_id: u32,
62973}
62974
62975/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62976/// if the responder is dropped without sending a response, so that the client
62977/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62978impl std::ops::Drop for StreamSocketGetPeerNameResponder {
62979    fn drop(&mut self) {
62980        self.control_handle.shutdown();
62981        // Safety: drops once, never accessed again
62982        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62983    }
62984}
62985
62986impl fidl::endpoints::Responder for StreamSocketGetPeerNameResponder {
62987    type ControlHandle = StreamSocketControlHandle;
62988
62989    fn control_handle(&self) -> &StreamSocketControlHandle {
62990        &self.control_handle
62991    }
62992
62993    fn drop_without_shutdown(mut self) {
62994        // Safety: drops once, never accessed again due to mem::forget
62995        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62996        // Prevent Drop from running (which would shut down the channel)
62997        std::mem::forget(self);
62998    }
62999}
63000
63001impl StreamSocketGetPeerNameResponder {
63002    /// Sends a response to the FIDL transaction.
63003    ///
63004    /// Sets the channel to shutdown if an error occurs.
63005    pub fn send(
63006        self,
63007        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
63008    ) -> Result<(), fidl::Error> {
63009        let _result = self.send_raw(result);
63010        if _result.is_err() {
63011            self.control_handle.shutdown();
63012        }
63013        self.drop_without_shutdown();
63014        _result
63015    }
63016
63017    /// Similar to "send" but does not shutdown the channel if an error occurs.
63018    pub fn send_no_shutdown_on_err(
63019        self,
63020        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
63021    ) -> Result<(), fidl::Error> {
63022        let _result = self.send_raw(result);
63023        self.drop_without_shutdown();
63024        _result
63025    }
63026
63027    fn send_raw(
63028        &self,
63029        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
63030    ) -> Result<(), fidl::Error> {
63031        self.control_handle.inner.send::<fidl::encoding::ResultType<
63032            BaseNetworkSocketGetPeerNameResponse,
63033            fidl_fuchsia_posix::Errno,
63034        >>(
63035            result.map(|addr| (addr,)),
63036            self.tx_id,
63037            0x1ffecf4bd5b6432e,
63038            fidl::encoding::DynamicFlags::empty(),
63039        )
63040    }
63041}
63042
63043#[must_use = "FIDL methods require a response to be sent"]
63044#[derive(Debug)]
63045pub struct StreamSocketShutdownResponder {
63046    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63047    tx_id: u32,
63048}
63049
63050/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63051/// if the responder is dropped without sending a response, so that the client
63052/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63053impl std::ops::Drop for StreamSocketShutdownResponder {
63054    fn drop(&mut self) {
63055        self.control_handle.shutdown();
63056        // Safety: drops once, never accessed again
63057        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63058    }
63059}
63060
63061impl fidl::endpoints::Responder for StreamSocketShutdownResponder {
63062    type ControlHandle = StreamSocketControlHandle;
63063
63064    fn control_handle(&self) -> &StreamSocketControlHandle {
63065        &self.control_handle
63066    }
63067
63068    fn drop_without_shutdown(mut self) {
63069        // Safety: drops once, never accessed again due to mem::forget
63070        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63071        // Prevent Drop from running (which would shut down the channel)
63072        std::mem::forget(self);
63073    }
63074}
63075
63076impl StreamSocketShutdownResponder {
63077    /// Sends a response to the FIDL transaction.
63078    ///
63079    /// Sets the channel to shutdown if an error occurs.
63080    pub fn send(
63081        self,
63082        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63083    ) -> Result<(), fidl::Error> {
63084        let _result = self.send_raw(result);
63085        if _result.is_err() {
63086            self.control_handle.shutdown();
63087        }
63088        self.drop_without_shutdown();
63089        _result
63090    }
63091
63092    /// Similar to "send" but does not shutdown the channel if an error occurs.
63093    pub fn send_no_shutdown_on_err(
63094        self,
63095        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63096    ) -> Result<(), fidl::Error> {
63097        let _result = self.send_raw(result);
63098        self.drop_without_shutdown();
63099        _result
63100    }
63101
63102    fn send_raw(
63103        &self,
63104        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63105    ) -> Result<(), fidl::Error> {
63106        self.control_handle.inner.send::<fidl::encoding::ResultType<
63107            fidl::encoding::EmptyStruct,
63108            fidl_fuchsia_posix::Errno,
63109        >>(
63110            result,
63111            self.tx_id,
63112            0x247f38b6db68c336,
63113            fidl::encoding::DynamicFlags::empty(),
63114        )
63115    }
63116}
63117
63118#[must_use = "FIDL methods require a response to be sent"]
63119#[derive(Debug)]
63120pub struct StreamSocketSetIpTypeOfServiceResponder {
63121    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63122    tx_id: u32,
63123}
63124
63125/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63126/// if the responder is dropped without sending a response, so that the client
63127/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63128impl std::ops::Drop for StreamSocketSetIpTypeOfServiceResponder {
63129    fn drop(&mut self) {
63130        self.control_handle.shutdown();
63131        // Safety: drops once, never accessed again
63132        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63133    }
63134}
63135
63136impl fidl::endpoints::Responder for StreamSocketSetIpTypeOfServiceResponder {
63137    type ControlHandle = StreamSocketControlHandle;
63138
63139    fn control_handle(&self) -> &StreamSocketControlHandle {
63140        &self.control_handle
63141    }
63142
63143    fn drop_without_shutdown(mut self) {
63144        // Safety: drops once, never accessed again due to mem::forget
63145        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63146        // Prevent Drop from running (which would shut down the channel)
63147        std::mem::forget(self);
63148    }
63149}
63150
63151impl StreamSocketSetIpTypeOfServiceResponder {
63152    /// Sends a response to the FIDL transaction.
63153    ///
63154    /// Sets the channel to shutdown if an error occurs.
63155    pub fn send(
63156        self,
63157        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63158    ) -> Result<(), fidl::Error> {
63159        let _result = self.send_raw(result);
63160        if _result.is_err() {
63161            self.control_handle.shutdown();
63162        }
63163        self.drop_without_shutdown();
63164        _result
63165    }
63166
63167    /// Similar to "send" but does not shutdown the channel if an error occurs.
63168    pub fn send_no_shutdown_on_err(
63169        self,
63170        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63171    ) -> Result<(), fidl::Error> {
63172        let _result = self.send_raw(result);
63173        self.drop_without_shutdown();
63174        _result
63175    }
63176
63177    fn send_raw(
63178        &self,
63179        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63180    ) -> Result<(), fidl::Error> {
63181        self.control_handle.inner.send::<fidl::encoding::ResultType<
63182            fidl::encoding::EmptyStruct,
63183            fidl_fuchsia_posix::Errno,
63184        >>(
63185            result,
63186            self.tx_id,
63187            0x995c600475b6d46,
63188            fidl::encoding::DynamicFlags::empty(),
63189        )
63190    }
63191}
63192
63193#[must_use = "FIDL methods require a response to be sent"]
63194#[derive(Debug)]
63195pub struct StreamSocketGetIpTypeOfServiceResponder {
63196    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63197    tx_id: u32,
63198}
63199
63200/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63201/// if the responder is dropped without sending a response, so that the client
63202/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63203impl std::ops::Drop for StreamSocketGetIpTypeOfServiceResponder {
63204    fn drop(&mut self) {
63205        self.control_handle.shutdown();
63206        // Safety: drops once, never accessed again
63207        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63208    }
63209}
63210
63211impl fidl::endpoints::Responder for StreamSocketGetIpTypeOfServiceResponder {
63212    type ControlHandle = StreamSocketControlHandle;
63213
63214    fn control_handle(&self) -> &StreamSocketControlHandle {
63215        &self.control_handle
63216    }
63217
63218    fn drop_without_shutdown(mut self) {
63219        // Safety: drops once, never accessed again due to mem::forget
63220        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63221        // Prevent Drop from running (which would shut down the channel)
63222        std::mem::forget(self);
63223    }
63224}
63225
63226impl StreamSocketGetIpTypeOfServiceResponder {
63227    /// Sends a response to the FIDL transaction.
63228    ///
63229    /// Sets the channel to shutdown if an error occurs.
63230    pub fn send(
63231        self,
63232        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
63233    ) -> Result<(), fidl::Error> {
63234        let _result = self.send_raw(result);
63235        if _result.is_err() {
63236            self.control_handle.shutdown();
63237        }
63238        self.drop_without_shutdown();
63239        _result
63240    }
63241
63242    /// Similar to "send" but does not shutdown the channel if an error occurs.
63243    pub fn send_no_shutdown_on_err(
63244        self,
63245        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
63246    ) -> Result<(), fidl::Error> {
63247        let _result = self.send_raw(result);
63248        self.drop_without_shutdown();
63249        _result
63250    }
63251
63252    fn send_raw(
63253        &self,
63254        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
63255    ) -> Result<(), fidl::Error> {
63256        self.control_handle.inner.send::<fidl::encoding::ResultType<
63257            BaseNetworkSocketGetIpTypeOfServiceResponse,
63258            fidl_fuchsia_posix::Errno,
63259        >>(
63260            result.map(|value| (value,)),
63261            self.tx_id,
63262            0x3814a04259f75fcb,
63263            fidl::encoding::DynamicFlags::empty(),
63264        )
63265    }
63266}
63267
63268#[must_use = "FIDL methods require a response to be sent"]
63269#[derive(Debug)]
63270pub struct StreamSocketSetIpTtlResponder {
63271    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63272    tx_id: u32,
63273}
63274
63275/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63276/// if the responder is dropped without sending a response, so that the client
63277/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63278impl std::ops::Drop for StreamSocketSetIpTtlResponder {
63279    fn drop(&mut self) {
63280        self.control_handle.shutdown();
63281        // Safety: drops once, never accessed again
63282        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63283    }
63284}
63285
63286impl fidl::endpoints::Responder for StreamSocketSetIpTtlResponder {
63287    type ControlHandle = StreamSocketControlHandle;
63288
63289    fn control_handle(&self) -> &StreamSocketControlHandle {
63290        &self.control_handle
63291    }
63292
63293    fn drop_without_shutdown(mut self) {
63294        // Safety: drops once, never accessed again due to mem::forget
63295        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63296        // Prevent Drop from running (which would shut down the channel)
63297        std::mem::forget(self);
63298    }
63299}
63300
63301impl StreamSocketSetIpTtlResponder {
63302    /// Sends a response to the FIDL transaction.
63303    ///
63304    /// Sets the channel to shutdown if an error occurs.
63305    pub fn send(
63306        self,
63307        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63308    ) -> Result<(), fidl::Error> {
63309        let _result = self.send_raw(result);
63310        if _result.is_err() {
63311            self.control_handle.shutdown();
63312        }
63313        self.drop_without_shutdown();
63314        _result
63315    }
63316
63317    /// Similar to "send" but does not shutdown the channel if an error occurs.
63318    pub fn send_no_shutdown_on_err(
63319        self,
63320        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63321    ) -> Result<(), fidl::Error> {
63322        let _result = self.send_raw(result);
63323        self.drop_without_shutdown();
63324        _result
63325    }
63326
63327    fn send_raw(
63328        &self,
63329        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63330    ) -> Result<(), fidl::Error> {
63331        self.control_handle.inner.send::<fidl::encoding::ResultType<
63332            fidl::encoding::EmptyStruct,
63333            fidl_fuchsia_posix::Errno,
63334        >>(
63335            result,
63336            self.tx_id,
63337            0x29e2424b433ae1ef,
63338            fidl::encoding::DynamicFlags::empty(),
63339        )
63340    }
63341}
63342
63343#[must_use = "FIDL methods require a response to be sent"]
63344#[derive(Debug)]
63345pub struct StreamSocketGetIpTtlResponder {
63346    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63347    tx_id: u32,
63348}
63349
63350/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63351/// if the responder is dropped without sending a response, so that the client
63352/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63353impl std::ops::Drop for StreamSocketGetIpTtlResponder {
63354    fn drop(&mut self) {
63355        self.control_handle.shutdown();
63356        // Safety: drops once, never accessed again
63357        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63358    }
63359}
63360
63361impl fidl::endpoints::Responder for StreamSocketGetIpTtlResponder {
63362    type ControlHandle = StreamSocketControlHandle;
63363
63364    fn control_handle(&self) -> &StreamSocketControlHandle {
63365        &self.control_handle
63366    }
63367
63368    fn drop_without_shutdown(mut self) {
63369        // Safety: drops once, never accessed again due to mem::forget
63370        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63371        // Prevent Drop from running (which would shut down the channel)
63372        std::mem::forget(self);
63373    }
63374}
63375
63376impl StreamSocketGetIpTtlResponder {
63377    /// Sends a response to the FIDL transaction.
63378    ///
63379    /// Sets the channel to shutdown if an error occurs.
63380    pub fn send(
63381        self,
63382        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
63383    ) -> Result<(), fidl::Error> {
63384        let _result = self.send_raw(result);
63385        if _result.is_err() {
63386            self.control_handle.shutdown();
63387        }
63388        self.drop_without_shutdown();
63389        _result
63390    }
63391
63392    /// Similar to "send" but does not shutdown the channel if an error occurs.
63393    pub fn send_no_shutdown_on_err(
63394        self,
63395        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
63396    ) -> Result<(), fidl::Error> {
63397        let _result = self.send_raw(result);
63398        self.drop_without_shutdown();
63399        _result
63400    }
63401
63402    fn send_raw(
63403        &self,
63404        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
63405    ) -> Result<(), fidl::Error> {
63406        self.control_handle.inner.send::<fidl::encoding::ResultType<
63407            BaseNetworkSocketGetIpTtlResponse,
63408            fidl_fuchsia_posix::Errno,
63409        >>(
63410            result.map(|value| (value,)),
63411            self.tx_id,
63412            0x47e47fa1f24da471,
63413            fidl::encoding::DynamicFlags::empty(),
63414        )
63415    }
63416}
63417
63418#[must_use = "FIDL methods require a response to be sent"]
63419#[derive(Debug)]
63420pub struct StreamSocketSetIpPacketInfoResponder {
63421    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63422    tx_id: u32,
63423}
63424
63425/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63426/// if the responder is dropped without sending a response, so that the client
63427/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63428impl std::ops::Drop for StreamSocketSetIpPacketInfoResponder {
63429    fn drop(&mut self) {
63430        self.control_handle.shutdown();
63431        // Safety: drops once, never accessed again
63432        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63433    }
63434}
63435
63436impl fidl::endpoints::Responder for StreamSocketSetIpPacketInfoResponder {
63437    type ControlHandle = StreamSocketControlHandle;
63438
63439    fn control_handle(&self) -> &StreamSocketControlHandle {
63440        &self.control_handle
63441    }
63442
63443    fn drop_without_shutdown(mut self) {
63444        // Safety: drops once, never accessed again due to mem::forget
63445        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63446        // Prevent Drop from running (which would shut down the channel)
63447        std::mem::forget(self);
63448    }
63449}
63450
63451impl StreamSocketSetIpPacketInfoResponder {
63452    /// Sends a response to the FIDL transaction.
63453    ///
63454    /// Sets the channel to shutdown if an error occurs.
63455    pub fn send(
63456        self,
63457        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63458    ) -> Result<(), fidl::Error> {
63459        let _result = self.send_raw(result);
63460        if _result.is_err() {
63461            self.control_handle.shutdown();
63462        }
63463        self.drop_without_shutdown();
63464        _result
63465    }
63466
63467    /// Similar to "send" but does not shutdown the channel if an error occurs.
63468    pub fn send_no_shutdown_on_err(
63469        self,
63470        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63471    ) -> Result<(), fidl::Error> {
63472        let _result = self.send_raw(result);
63473        self.drop_without_shutdown();
63474        _result
63475    }
63476
63477    fn send_raw(
63478        &self,
63479        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63480    ) -> Result<(), fidl::Error> {
63481        self.control_handle.inner.send::<fidl::encoding::ResultType<
63482            fidl::encoding::EmptyStruct,
63483            fidl_fuchsia_posix::Errno,
63484        >>(
63485            result,
63486            self.tx_id,
63487            0x392d16bee20c0e16,
63488            fidl::encoding::DynamicFlags::empty(),
63489        )
63490    }
63491}
63492
63493#[must_use = "FIDL methods require a response to be sent"]
63494#[derive(Debug)]
63495pub struct StreamSocketGetIpPacketInfoResponder {
63496    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63497    tx_id: u32,
63498}
63499
63500/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63501/// if the responder is dropped without sending a response, so that the client
63502/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63503impl std::ops::Drop for StreamSocketGetIpPacketInfoResponder {
63504    fn drop(&mut self) {
63505        self.control_handle.shutdown();
63506        // Safety: drops once, never accessed again
63507        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63508    }
63509}
63510
63511impl fidl::endpoints::Responder for StreamSocketGetIpPacketInfoResponder {
63512    type ControlHandle = StreamSocketControlHandle;
63513
63514    fn control_handle(&self) -> &StreamSocketControlHandle {
63515        &self.control_handle
63516    }
63517
63518    fn drop_without_shutdown(mut self) {
63519        // Safety: drops once, never accessed again due to mem::forget
63520        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63521        // Prevent Drop from running (which would shut down the channel)
63522        std::mem::forget(self);
63523    }
63524}
63525
63526impl StreamSocketGetIpPacketInfoResponder {
63527    /// Sends a response to the FIDL transaction.
63528    ///
63529    /// Sets the channel to shutdown if an error occurs.
63530    pub fn send(
63531        self,
63532        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
63533    ) -> Result<(), fidl::Error> {
63534        let _result = self.send_raw(result);
63535        if _result.is_err() {
63536            self.control_handle.shutdown();
63537        }
63538        self.drop_without_shutdown();
63539        _result
63540    }
63541
63542    /// Similar to "send" but does not shutdown the channel if an error occurs.
63543    pub fn send_no_shutdown_on_err(
63544        self,
63545        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
63546    ) -> Result<(), fidl::Error> {
63547        let _result = self.send_raw(result);
63548        self.drop_without_shutdown();
63549        _result
63550    }
63551
63552    fn send_raw(
63553        &self,
63554        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
63555    ) -> Result<(), fidl::Error> {
63556        self.control_handle.inner.send::<fidl::encoding::ResultType<
63557            BaseNetworkSocketGetIpPacketInfoResponse,
63558            fidl_fuchsia_posix::Errno,
63559        >>(
63560            result.map(|value| (value,)),
63561            self.tx_id,
63562            0x54b505f242280740,
63563            fidl::encoding::DynamicFlags::empty(),
63564        )
63565    }
63566}
63567
63568#[must_use = "FIDL methods require a response to be sent"]
63569#[derive(Debug)]
63570pub struct StreamSocketSetIpReceiveTypeOfServiceResponder {
63571    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63572    tx_id: u32,
63573}
63574
63575/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63576/// if the responder is dropped without sending a response, so that the client
63577/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63578impl std::ops::Drop for StreamSocketSetIpReceiveTypeOfServiceResponder {
63579    fn drop(&mut self) {
63580        self.control_handle.shutdown();
63581        // Safety: drops once, never accessed again
63582        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63583    }
63584}
63585
63586impl fidl::endpoints::Responder for StreamSocketSetIpReceiveTypeOfServiceResponder {
63587    type ControlHandle = StreamSocketControlHandle;
63588
63589    fn control_handle(&self) -> &StreamSocketControlHandle {
63590        &self.control_handle
63591    }
63592
63593    fn drop_without_shutdown(mut self) {
63594        // Safety: drops once, never accessed again due to mem::forget
63595        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63596        // Prevent Drop from running (which would shut down the channel)
63597        std::mem::forget(self);
63598    }
63599}
63600
63601impl StreamSocketSetIpReceiveTypeOfServiceResponder {
63602    /// Sends a response to the FIDL transaction.
63603    ///
63604    /// Sets the channel to shutdown if an error occurs.
63605    pub fn send(
63606        self,
63607        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63608    ) -> Result<(), fidl::Error> {
63609        let _result = self.send_raw(result);
63610        if _result.is_err() {
63611            self.control_handle.shutdown();
63612        }
63613        self.drop_without_shutdown();
63614        _result
63615    }
63616
63617    /// Similar to "send" but does not shutdown the channel if an error occurs.
63618    pub fn send_no_shutdown_on_err(
63619        self,
63620        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63621    ) -> Result<(), fidl::Error> {
63622        let _result = self.send_raw(result);
63623        self.drop_without_shutdown();
63624        _result
63625    }
63626
63627    fn send_raw(
63628        &self,
63629        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63630    ) -> Result<(), fidl::Error> {
63631        self.control_handle.inner.send::<fidl::encoding::ResultType<
63632            fidl::encoding::EmptyStruct,
63633            fidl_fuchsia_posix::Errno,
63634        >>(
63635            result,
63636            self.tx_id,
63637            0x6c4f6714995f84ef,
63638            fidl::encoding::DynamicFlags::empty(),
63639        )
63640    }
63641}
63642
63643#[must_use = "FIDL methods require a response to be sent"]
63644#[derive(Debug)]
63645pub struct StreamSocketGetIpReceiveTypeOfServiceResponder {
63646    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63647    tx_id: u32,
63648}
63649
63650/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63651/// if the responder is dropped without sending a response, so that the client
63652/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63653impl std::ops::Drop for StreamSocketGetIpReceiveTypeOfServiceResponder {
63654    fn drop(&mut self) {
63655        self.control_handle.shutdown();
63656        // Safety: drops once, never accessed again
63657        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63658    }
63659}
63660
63661impl fidl::endpoints::Responder for StreamSocketGetIpReceiveTypeOfServiceResponder {
63662    type ControlHandle = StreamSocketControlHandle;
63663
63664    fn control_handle(&self) -> &StreamSocketControlHandle {
63665        &self.control_handle
63666    }
63667
63668    fn drop_without_shutdown(mut self) {
63669        // Safety: drops once, never accessed again due to mem::forget
63670        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63671        // Prevent Drop from running (which would shut down the channel)
63672        std::mem::forget(self);
63673    }
63674}
63675
63676impl StreamSocketGetIpReceiveTypeOfServiceResponder {
63677    /// Sends a response to the FIDL transaction.
63678    ///
63679    /// Sets the channel to shutdown if an error occurs.
63680    pub fn send(
63681        self,
63682        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
63683    ) -> Result<(), fidl::Error> {
63684        let _result = self.send_raw(result);
63685        if _result.is_err() {
63686            self.control_handle.shutdown();
63687        }
63688        self.drop_without_shutdown();
63689        _result
63690    }
63691
63692    /// Similar to "send" but does not shutdown the channel if an error occurs.
63693    pub fn send_no_shutdown_on_err(
63694        self,
63695        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
63696    ) -> Result<(), fidl::Error> {
63697        let _result = self.send_raw(result);
63698        self.drop_without_shutdown();
63699        _result
63700    }
63701
63702    fn send_raw(
63703        &self,
63704        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
63705    ) -> Result<(), fidl::Error> {
63706        self.control_handle.inner.send::<fidl::encoding::ResultType<
63707            BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
63708            fidl_fuchsia_posix::Errno,
63709        >>(
63710            result.map(|value| (value,)),
63711            self.tx_id,
63712            0x4158ba7dc2795960,
63713            fidl::encoding::DynamicFlags::empty(),
63714        )
63715    }
63716}
63717
63718#[must_use = "FIDL methods require a response to be sent"]
63719#[derive(Debug)]
63720pub struct StreamSocketSetIpReceiveTtlResponder {
63721    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63722    tx_id: u32,
63723}
63724
63725/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63726/// if the responder is dropped without sending a response, so that the client
63727/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63728impl std::ops::Drop for StreamSocketSetIpReceiveTtlResponder {
63729    fn drop(&mut self) {
63730        self.control_handle.shutdown();
63731        // Safety: drops once, never accessed again
63732        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63733    }
63734}
63735
63736impl fidl::endpoints::Responder for StreamSocketSetIpReceiveTtlResponder {
63737    type ControlHandle = StreamSocketControlHandle;
63738
63739    fn control_handle(&self) -> &StreamSocketControlHandle {
63740        &self.control_handle
63741    }
63742
63743    fn drop_without_shutdown(mut self) {
63744        // Safety: drops once, never accessed again due to mem::forget
63745        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63746        // Prevent Drop from running (which would shut down the channel)
63747        std::mem::forget(self);
63748    }
63749}
63750
63751impl StreamSocketSetIpReceiveTtlResponder {
63752    /// Sends a response to the FIDL transaction.
63753    ///
63754    /// Sets the channel to shutdown if an error occurs.
63755    pub fn send(
63756        self,
63757        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63758    ) -> Result<(), fidl::Error> {
63759        let _result = self.send_raw(result);
63760        if _result.is_err() {
63761            self.control_handle.shutdown();
63762        }
63763        self.drop_without_shutdown();
63764        _result
63765    }
63766
63767    /// Similar to "send" but does not shutdown the channel if an error occurs.
63768    pub fn send_no_shutdown_on_err(
63769        self,
63770        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63771    ) -> Result<(), fidl::Error> {
63772        let _result = self.send_raw(result);
63773        self.drop_without_shutdown();
63774        _result
63775    }
63776
63777    fn send_raw(
63778        &self,
63779        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63780    ) -> Result<(), fidl::Error> {
63781        self.control_handle.inner.send::<fidl::encoding::ResultType<
63782            fidl::encoding::EmptyStruct,
63783            fidl_fuchsia_posix::Errno,
63784        >>(
63785            result,
63786            self.tx_id,
63787            0x46f15be0ce0ab82b,
63788            fidl::encoding::DynamicFlags::empty(),
63789        )
63790    }
63791}
63792
63793#[must_use = "FIDL methods require a response to be sent"]
63794#[derive(Debug)]
63795pub struct StreamSocketGetIpReceiveTtlResponder {
63796    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63797    tx_id: u32,
63798}
63799
63800/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63801/// if the responder is dropped without sending a response, so that the client
63802/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63803impl std::ops::Drop for StreamSocketGetIpReceiveTtlResponder {
63804    fn drop(&mut self) {
63805        self.control_handle.shutdown();
63806        // Safety: drops once, never accessed again
63807        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63808    }
63809}
63810
63811impl fidl::endpoints::Responder for StreamSocketGetIpReceiveTtlResponder {
63812    type ControlHandle = StreamSocketControlHandle;
63813
63814    fn control_handle(&self) -> &StreamSocketControlHandle {
63815        &self.control_handle
63816    }
63817
63818    fn drop_without_shutdown(mut self) {
63819        // Safety: drops once, never accessed again due to mem::forget
63820        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63821        // Prevent Drop from running (which would shut down the channel)
63822        std::mem::forget(self);
63823    }
63824}
63825
63826impl StreamSocketGetIpReceiveTtlResponder {
63827    /// Sends a response to the FIDL transaction.
63828    ///
63829    /// Sets the channel to shutdown if an error occurs.
63830    pub fn send(
63831        self,
63832        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
63833    ) -> Result<(), fidl::Error> {
63834        let _result = self.send_raw(result);
63835        if _result.is_err() {
63836            self.control_handle.shutdown();
63837        }
63838        self.drop_without_shutdown();
63839        _result
63840    }
63841
63842    /// Similar to "send" but does not shutdown the channel if an error occurs.
63843    pub fn send_no_shutdown_on_err(
63844        self,
63845        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
63846    ) -> Result<(), fidl::Error> {
63847        let _result = self.send_raw(result);
63848        self.drop_without_shutdown();
63849        _result
63850    }
63851
63852    fn send_raw(
63853        &self,
63854        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
63855    ) -> Result<(), fidl::Error> {
63856        self.control_handle.inner.send::<fidl::encoding::ResultType<
63857            BaseNetworkSocketGetIpReceiveTtlResponse,
63858            fidl_fuchsia_posix::Errno,
63859        >>(
63860            result.map(|value| (value,)),
63861            self.tx_id,
63862            0x678ddd5a5dfa2eb5,
63863            fidl::encoding::DynamicFlags::empty(),
63864        )
63865    }
63866}
63867
63868#[must_use = "FIDL methods require a response to be sent"]
63869#[derive(Debug)]
63870pub struct StreamSocketSetIpMulticastInterfaceResponder {
63871    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63872    tx_id: u32,
63873}
63874
63875/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63876/// if the responder is dropped without sending a response, so that the client
63877/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63878impl std::ops::Drop for StreamSocketSetIpMulticastInterfaceResponder {
63879    fn drop(&mut self) {
63880        self.control_handle.shutdown();
63881        // Safety: drops once, never accessed again
63882        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63883    }
63884}
63885
63886impl fidl::endpoints::Responder for StreamSocketSetIpMulticastInterfaceResponder {
63887    type ControlHandle = StreamSocketControlHandle;
63888
63889    fn control_handle(&self) -> &StreamSocketControlHandle {
63890        &self.control_handle
63891    }
63892
63893    fn drop_without_shutdown(mut self) {
63894        // Safety: drops once, never accessed again due to mem::forget
63895        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63896        // Prevent Drop from running (which would shut down the channel)
63897        std::mem::forget(self);
63898    }
63899}
63900
63901impl StreamSocketSetIpMulticastInterfaceResponder {
63902    /// Sends a response to the FIDL transaction.
63903    ///
63904    /// Sets the channel to shutdown if an error occurs.
63905    pub fn send(
63906        self,
63907        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63908    ) -> Result<(), fidl::Error> {
63909        let _result = self.send_raw(result);
63910        if _result.is_err() {
63911            self.control_handle.shutdown();
63912        }
63913        self.drop_without_shutdown();
63914        _result
63915    }
63916
63917    /// Similar to "send" but does not shutdown the channel if an error occurs.
63918    pub fn send_no_shutdown_on_err(
63919        self,
63920        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63921    ) -> Result<(), fidl::Error> {
63922        let _result = self.send_raw(result);
63923        self.drop_without_shutdown();
63924        _result
63925    }
63926
63927    fn send_raw(
63928        &self,
63929        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63930    ) -> Result<(), fidl::Error> {
63931        self.control_handle.inner.send::<fidl::encoding::ResultType<
63932            fidl::encoding::EmptyStruct,
63933            fidl_fuchsia_posix::Errno,
63934        >>(
63935            result,
63936            self.tx_id,
63937            0x752fbfa9b12befe,
63938            fidl::encoding::DynamicFlags::empty(),
63939        )
63940    }
63941}
63942
63943#[must_use = "FIDL methods require a response to be sent"]
63944#[derive(Debug)]
63945pub struct StreamSocketGetIpMulticastInterfaceResponder {
63946    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63947    tx_id: u32,
63948}
63949
63950/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63951/// if the responder is dropped without sending a response, so that the client
63952/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63953impl std::ops::Drop for StreamSocketGetIpMulticastInterfaceResponder {
63954    fn drop(&mut self) {
63955        self.control_handle.shutdown();
63956        // Safety: drops once, never accessed again
63957        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63958    }
63959}
63960
63961impl fidl::endpoints::Responder for StreamSocketGetIpMulticastInterfaceResponder {
63962    type ControlHandle = StreamSocketControlHandle;
63963
63964    fn control_handle(&self) -> &StreamSocketControlHandle {
63965        &self.control_handle
63966    }
63967
63968    fn drop_without_shutdown(mut self) {
63969        // Safety: drops once, never accessed again due to mem::forget
63970        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63971        // Prevent Drop from running (which would shut down the channel)
63972        std::mem::forget(self);
63973    }
63974}
63975
63976impl StreamSocketGetIpMulticastInterfaceResponder {
63977    /// Sends a response to the FIDL transaction.
63978    ///
63979    /// Sets the channel to shutdown if an error occurs.
63980    pub fn send(
63981        self,
63982        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
63983    ) -> Result<(), fidl::Error> {
63984        let _result = self.send_raw(result);
63985        if _result.is_err() {
63986            self.control_handle.shutdown();
63987        }
63988        self.drop_without_shutdown();
63989        _result
63990    }
63991
63992    /// Similar to "send" but does not shutdown the channel if an error occurs.
63993    pub fn send_no_shutdown_on_err(
63994        self,
63995        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
63996    ) -> Result<(), fidl::Error> {
63997        let _result = self.send_raw(result);
63998        self.drop_without_shutdown();
63999        _result
64000    }
64001
64002    fn send_raw(
64003        &self,
64004        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
64005    ) -> Result<(), fidl::Error> {
64006        self.control_handle.inner.send::<fidl::encoding::ResultType<
64007            BaseNetworkSocketGetIpMulticastInterfaceResponse,
64008            fidl_fuchsia_posix::Errno,
64009        >>(
64010            result.map(|value| (value,)),
64011            self.tx_id,
64012            0x320bd14c4df046c4,
64013            fidl::encoding::DynamicFlags::empty(),
64014        )
64015    }
64016}
64017
64018#[must_use = "FIDL methods require a response to be sent"]
64019#[derive(Debug)]
64020pub struct StreamSocketSetIpMulticastTtlResponder {
64021    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64022    tx_id: u32,
64023}
64024
64025/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64026/// if the responder is dropped without sending a response, so that the client
64027/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64028impl std::ops::Drop for StreamSocketSetIpMulticastTtlResponder {
64029    fn drop(&mut self) {
64030        self.control_handle.shutdown();
64031        // Safety: drops once, never accessed again
64032        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64033    }
64034}
64035
64036impl fidl::endpoints::Responder for StreamSocketSetIpMulticastTtlResponder {
64037    type ControlHandle = StreamSocketControlHandle;
64038
64039    fn control_handle(&self) -> &StreamSocketControlHandle {
64040        &self.control_handle
64041    }
64042
64043    fn drop_without_shutdown(mut self) {
64044        // Safety: drops once, never accessed again due to mem::forget
64045        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64046        // Prevent Drop from running (which would shut down the channel)
64047        std::mem::forget(self);
64048    }
64049}
64050
64051impl StreamSocketSetIpMulticastTtlResponder {
64052    /// Sends a response to the FIDL transaction.
64053    ///
64054    /// Sets the channel to shutdown if an error occurs.
64055    pub fn send(
64056        self,
64057        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64058    ) -> Result<(), fidl::Error> {
64059        let _result = self.send_raw(result);
64060        if _result.is_err() {
64061            self.control_handle.shutdown();
64062        }
64063        self.drop_without_shutdown();
64064        _result
64065    }
64066
64067    /// Similar to "send" but does not shutdown the channel if an error occurs.
64068    pub fn send_no_shutdown_on_err(
64069        self,
64070        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64071    ) -> Result<(), fidl::Error> {
64072        let _result = self.send_raw(result);
64073        self.drop_without_shutdown();
64074        _result
64075    }
64076
64077    fn send_raw(
64078        &self,
64079        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64080    ) -> Result<(), fidl::Error> {
64081        self.control_handle.inner.send::<fidl::encoding::ResultType<
64082            fidl::encoding::EmptyStruct,
64083            fidl_fuchsia_posix::Errno,
64084        >>(
64085            result,
64086            self.tx_id,
64087            0x63134d53772916a1,
64088            fidl::encoding::DynamicFlags::empty(),
64089        )
64090    }
64091}
64092
64093#[must_use = "FIDL methods require a response to be sent"]
64094#[derive(Debug)]
64095pub struct StreamSocketGetIpMulticastTtlResponder {
64096    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64097    tx_id: u32,
64098}
64099
64100/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64101/// if the responder is dropped without sending a response, so that the client
64102/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64103impl std::ops::Drop for StreamSocketGetIpMulticastTtlResponder {
64104    fn drop(&mut self) {
64105        self.control_handle.shutdown();
64106        // Safety: drops once, never accessed again
64107        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64108    }
64109}
64110
64111impl fidl::endpoints::Responder for StreamSocketGetIpMulticastTtlResponder {
64112    type ControlHandle = StreamSocketControlHandle;
64113
64114    fn control_handle(&self) -> &StreamSocketControlHandle {
64115        &self.control_handle
64116    }
64117
64118    fn drop_without_shutdown(mut self) {
64119        // Safety: drops once, never accessed again due to mem::forget
64120        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64121        // Prevent Drop from running (which would shut down the channel)
64122        std::mem::forget(self);
64123    }
64124}
64125
64126impl StreamSocketGetIpMulticastTtlResponder {
64127    /// Sends a response to the FIDL transaction.
64128    ///
64129    /// Sets the channel to shutdown if an error occurs.
64130    pub fn send(
64131        self,
64132        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
64133    ) -> Result<(), fidl::Error> {
64134        let _result = self.send_raw(result);
64135        if _result.is_err() {
64136            self.control_handle.shutdown();
64137        }
64138        self.drop_without_shutdown();
64139        _result
64140    }
64141
64142    /// Similar to "send" but does not shutdown the channel if an error occurs.
64143    pub fn send_no_shutdown_on_err(
64144        self,
64145        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
64146    ) -> Result<(), fidl::Error> {
64147        let _result = self.send_raw(result);
64148        self.drop_without_shutdown();
64149        _result
64150    }
64151
64152    fn send_raw(
64153        &self,
64154        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
64155    ) -> Result<(), fidl::Error> {
64156        self.control_handle.inner.send::<fidl::encoding::ResultType<
64157            BaseNetworkSocketGetIpMulticastTtlResponse,
64158            fidl_fuchsia_posix::Errno,
64159        >>(
64160            result.map(|value| (value,)),
64161            self.tx_id,
64162            0x4665cd378f39e1a,
64163            fidl::encoding::DynamicFlags::empty(),
64164        )
64165    }
64166}
64167
64168#[must_use = "FIDL methods require a response to be sent"]
64169#[derive(Debug)]
64170pub struct StreamSocketSetIpMulticastLoopbackResponder {
64171    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64172    tx_id: u32,
64173}
64174
64175/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64176/// if the responder is dropped without sending a response, so that the client
64177/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64178impl std::ops::Drop for StreamSocketSetIpMulticastLoopbackResponder {
64179    fn drop(&mut self) {
64180        self.control_handle.shutdown();
64181        // Safety: drops once, never accessed again
64182        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64183    }
64184}
64185
64186impl fidl::endpoints::Responder for StreamSocketSetIpMulticastLoopbackResponder {
64187    type ControlHandle = StreamSocketControlHandle;
64188
64189    fn control_handle(&self) -> &StreamSocketControlHandle {
64190        &self.control_handle
64191    }
64192
64193    fn drop_without_shutdown(mut self) {
64194        // Safety: drops once, never accessed again due to mem::forget
64195        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64196        // Prevent Drop from running (which would shut down the channel)
64197        std::mem::forget(self);
64198    }
64199}
64200
64201impl StreamSocketSetIpMulticastLoopbackResponder {
64202    /// Sends a response to the FIDL transaction.
64203    ///
64204    /// Sets the channel to shutdown if an error occurs.
64205    pub fn send(
64206        self,
64207        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64208    ) -> Result<(), fidl::Error> {
64209        let _result = self.send_raw(result);
64210        if _result.is_err() {
64211            self.control_handle.shutdown();
64212        }
64213        self.drop_without_shutdown();
64214        _result
64215    }
64216
64217    /// Similar to "send" but does not shutdown the channel if an error occurs.
64218    pub fn send_no_shutdown_on_err(
64219        self,
64220        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64221    ) -> Result<(), fidl::Error> {
64222        let _result = self.send_raw(result);
64223        self.drop_without_shutdown();
64224        _result
64225    }
64226
64227    fn send_raw(
64228        &self,
64229        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64230    ) -> Result<(), fidl::Error> {
64231        self.control_handle.inner.send::<fidl::encoding::ResultType<
64232            fidl::encoding::EmptyStruct,
64233            fidl_fuchsia_posix::Errno,
64234        >>(
64235            result,
64236            self.tx_id,
64237            0x20c55c11f00943ea,
64238            fidl::encoding::DynamicFlags::empty(),
64239        )
64240    }
64241}
64242
64243#[must_use = "FIDL methods require a response to be sent"]
64244#[derive(Debug)]
64245pub struct StreamSocketGetIpMulticastLoopbackResponder {
64246    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64247    tx_id: u32,
64248}
64249
64250/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64251/// if the responder is dropped without sending a response, so that the client
64252/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64253impl std::ops::Drop for StreamSocketGetIpMulticastLoopbackResponder {
64254    fn drop(&mut self) {
64255        self.control_handle.shutdown();
64256        // Safety: drops once, never accessed again
64257        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64258    }
64259}
64260
64261impl fidl::endpoints::Responder for StreamSocketGetIpMulticastLoopbackResponder {
64262    type ControlHandle = StreamSocketControlHandle;
64263
64264    fn control_handle(&self) -> &StreamSocketControlHandle {
64265        &self.control_handle
64266    }
64267
64268    fn drop_without_shutdown(mut self) {
64269        // Safety: drops once, never accessed again due to mem::forget
64270        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64271        // Prevent Drop from running (which would shut down the channel)
64272        std::mem::forget(self);
64273    }
64274}
64275
64276impl StreamSocketGetIpMulticastLoopbackResponder {
64277    /// Sends a response to the FIDL transaction.
64278    ///
64279    /// Sets the channel to shutdown if an error occurs.
64280    pub fn send(
64281        self,
64282        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
64283    ) -> Result<(), fidl::Error> {
64284        let _result = self.send_raw(result);
64285        if _result.is_err() {
64286            self.control_handle.shutdown();
64287        }
64288        self.drop_without_shutdown();
64289        _result
64290    }
64291
64292    /// Similar to "send" but does not shutdown the channel if an error occurs.
64293    pub fn send_no_shutdown_on_err(
64294        self,
64295        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
64296    ) -> Result<(), fidl::Error> {
64297        let _result = self.send_raw(result);
64298        self.drop_without_shutdown();
64299        _result
64300    }
64301
64302    fn send_raw(
64303        &self,
64304        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
64305    ) -> Result<(), fidl::Error> {
64306        self.control_handle.inner.send::<fidl::encoding::ResultType<
64307            BaseNetworkSocketGetIpMulticastLoopbackResponse,
64308            fidl_fuchsia_posix::Errno,
64309        >>(
64310            result.map(|value| (value,)),
64311            self.tx_id,
64312            0x3b6b26ff558298f2,
64313            fidl::encoding::DynamicFlags::empty(),
64314        )
64315    }
64316}
64317
64318#[must_use = "FIDL methods require a response to be sent"]
64319#[derive(Debug)]
64320pub struct StreamSocketAddIpMembershipResponder {
64321    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64322    tx_id: u32,
64323}
64324
64325/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64326/// if the responder is dropped without sending a response, so that the client
64327/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64328impl std::ops::Drop for StreamSocketAddIpMembershipResponder {
64329    fn drop(&mut self) {
64330        self.control_handle.shutdown();
64331        // Safety: drops once, never accessed again
64332        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64333    }
64334}
64335
64336impl fidl::endpoints::Responder for StreamSocketAddIpMembershipResponder {
64337    type ControlHandle = StreamSocketControlHandle;
64338
64339    fn control_handle(&self) -> &StreamSocketControlHandle {
64340        &self.control_handle
64341    }
64342
64343    fn drop_without_shutdown(mut self) {
64344        // Safety: drops once, never accessed again due to mem::forget
64345        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64346        // Prevent Drop from running (which would shut down the channel)
64347        std::mem::forget(self);
64348    }
64349}
64350
64351impl StreamSocketAddIpMembershipResponder {
64352    /// Sends a response to the FIDL transaction.
64353    ///
64354    /// Sets the channel to shutdown if an error occurs.
64355    pub fn send(
64356        self,
64357        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64358    ) -> Result<(), fidl::Error> {
64359        let _result = self.send_raw(result);
64360        if _result.is_err() {
64361            self.control_handle.shutdown();
64362        }
64363        self.drop_without_shutdown();
64364        _result
64365    }
64366
64367    /// Similar to "send" but does not shutdown the channel if an error occurs.
64368    pub fn send_no_shutdown_on_err(
64369        self,
64370        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64371    ) -> Result<(), fidl::Error> {
64372        let _result = self.send_raw(result);
64373        self.drop_without_shutdown();
64374        _result
64375    }
64376
64377    fn send_raw(
64378        &self,
64379        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64380    ) -> Result<(), fidl::Error> {
64381        self.control_handle.inner.send::<fidl::encoding::ResultType<
64382            fidl::encoding::EmptyStruct,
64383            fidl_fuchsia_posix::Errno,
64384        >>(
64385            result,
64386            self.tx_id,
64387            0x76bc7df115a3b4d0,
64388            fidl::encoding::DynamicFlags::empty(),
64389        )
64390    }
64391}
64392
64393#[must_use = "FIDL methods require a response to be sent"]
64394#[derive(Debug)]
64395pub struct StreamSocketDropIpMembershipResponder {
64396    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64397    tx_id: u32,
64398}
64399
64400/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64401/// if the responder is dropped without sending a response, so that the client
64402/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64403impl std::ops::Drop for StreamSocketDropIpMembershipResponder {
64404    fn drop(&mut self) {
64405        self.control_handle.shutdown();
64406        // Safety: drops once, never accessed again
64407        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64408    }
64409}
64410
64411impl fidl::endpoints::Responder for StreamSocketDropIpMembershipResponder {
64412    type ControlHandle = StreamSocketControlHandle;
64413
64414    fn control_handle(&self) -> &StreamSocketControlHandle {
64415        &self.control_handle
64416    }
64417
64418    fn drop_without_shutdown(mut self) {
64419        // Safety: drops once, never accessed again due to mem::forget
64420        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64421        // Prevent Drop from running (which would shut down the channel)
64422        std::mem::forget(self);
64423    }
64424}
64425
64426impl StreamSocketDropIpMembershipResponder {
64427    /// Sends a response to the FIDL transaction.
64428    ///
64429    /// Sets the channel to shutdown if an error occurs.
64430    pub fn send(
64431        self,
64432        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64433    ) -> Result<(), fidl::Error> {
64434        let _result = self.send_raw(result);
64435        if _result.is_err() {
64436            self.control_handle.shutdown();
64437        }
64438        self.drop_without_shutdown();
64439        _result
64440    }
64441
64442    /// Similar to "send" but does not shutdown the channel if an error occurs.
64443    pub fn send_no_shutdown_on_err(
64444        self,
64445        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64446    ) -> Result<(), fidl::Error> {
64447        let _result = self.send_raw(result);
64448        self.drop_without_shutdown();
64449        _result
64450    }
64451
64452    fn send_raw(
64453        &self,
64454        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64455    ) -> Result<(), fidl::Error> {
64456        self.control_handle.inner.send::<fidl::encoding::ResultType<
64457            fidl::encoding::EmptyStruct,
64458            fidl_fuchsia_posix::Errno,
64459        >>(
64460            result,
64461            self.tx_id,
64462            0x2888f3099188d03,
64463            fidl::encoding::DynamicFlags::empty(),
64464        )
64465    }
64466}
64467
64468#[must_use = "FIDL methods require a response to be sent"]
64469#[derive(Debug)]
64470pub struct StreamSocketSetIpTransparentResponder {
64471    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64472    tx_id: u32,
64473}
64474
64475/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64476/// if the responder is dropped without sending a response, so that the client
64477/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64478impl std::ops::Drop for StreamSocketSetIpTransparentResponder {
64479    fn drop(&mut self) {
64480        self.control_handle.shutdown();
64481        // Safety: drops once, never accessed again
64482        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64483    }
64484}
64485
64486impl fidl::endpoints::Responder for StreamSocketSetIpTransparentResponder {
64487    type ControlHandle = StreamSocketControlHandle;
64488
64489    fn control_handle(&self) -> &StreamSocketControlHandle {
64490        &self.control_handle
64491    }
64492
64493    fn drop_without_shutdown(mut self) {
64494        // Safety: drops once, never accessed again due to mem::forget
64495        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64496        // Prevent Drop from running (which would shut down the channel)
64497        std::mem::forget(self);
64498    }
64499}
64500
64501impl StreamSocketSetIpTransparentResponder {
64502    /// Sends a response to the FIDL transaction.
64503    ///
64504    /// Sets the channel to shutdown if an error occurs.
64505    pub fn send(
64506        self,
64507        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64508    ) -> Result<(), fidl::Error> {
64509        let _result = self.send_raw(result);
64510        if _result.is_err() {
64511            self.control_handle.shutdown();
64512        }
64513        self.drop_without_shutdown();
64514        _result
64515    }
64516
64517    /// Similar to "send" but does not shutdown the channel if an error occurs.
64518    pub fn send_no_shutdown_on_err(
64519        self,
64520        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64521    ) -> Result<(), fidl::Error> {
64522        let _result = self.send_raw(result);
64523        self.drop_without_shutdown();
64524        _result
64525    }
64526
64527    fn send_raw(
64528        &self,
64529        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64530    ) -> Result<(), fidl::Error> {
64531        self.control_handle.inner.send::<fidl::encoding::ResultType<
64532            fidl::encoding::EmptyStruct,
64533            fidl_fuchsia_posix::Errno,
64534        >>(
64535            result,
64536            self.tx_id,
64537            0x1ae532b0c066e3a0,
64538            fidl::encoding::DynamicFlags::empty(),
64539        )
64540    }
64541}
64542
64543#[must_use = "FIDL methods require a response to be sent"]
64544#[derive(Debug)]
64545pub struct StreamSocketGetIpTransparentResponder {
64546    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64547    tx_id: u32,
64548}
64549
64550/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64551/// if the responder is dropped without sending a response, so that the client
64552/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64553impl std::ops::Drop for StreamSocketGetIpTransparentResponder {
64554    fn drop(&mut self) {
64555        self.control_handle.shutdown();
64556        // Safety: drops once, never accessed again
64557        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64558    }
64559}
64560
64561impl fidl::endpoints::Responder for StreamSocketGetIpTransparentResponder {
64562    type ControlHandle = StreamSocketControlHandle;
64563
64564    fn control_handle(&self) -> &StreamSocketControlHandle {
64565        &self.control_handle
64566    }
64567
64568    fn drop_without_shutdown(mut self) {
64569        // Safety: drops once, never accessed again due to mem::forget
64570        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64571        // Prevent Drop from running (which would shut down the channel)
64572        std::mem::forget(self);
64573    }
64574}
64575
64576impl StreamSocketGetIpTransparentResponder {
64577    /// Sends a response to the FIDL transaction.
64578    ///
64579    /// Sets the channel to shutdown if an error occurs.
64580    pub fn send(
64581        self,
64582        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
64583    ) -> Result<(), fidl::Error> {
64584        let _result = self.send_raw(result);
64585        if _result.is_err() {
64586            self.control_handle.shutdown();
64587        }
64588        self.drop_without_shutdown();
64589        _result
64590    }
64591
64592    /// Similar to "send" but does not shutdown the channel if an error occurs.
64593    pub fn send_no_shutdown_on_err(
64594        self,
64595        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
64596    ) -> Result<(), fidl::Error> {
64597        let _result = self.send_raw(result);
64598        self.drop_without_shutdown();
64599        _result
64600    }
64601
64602    fn send_raw(
64603        &self,
64604        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
64605    ) -> Result<(), fidl::Error> {
64606        self.control_handle.inner.send::<fidl::encoding::ResultType<
64607            BaseNetworkSocketGetIpTransparentResponse,
64608            fidl_fuchsia_posix::Errno,
64609        >>(
64610            result.map(|value| (value,)),
64611            self.tx_id,
64612            0x51d43695962ebfb5,
64613            fidl::encoding::DynamicFlags::empty(),
64614        )
64615    }
64616}
64617
64618#[must_use = "FIDL methods require a response to be sent"]
64619#[derive(Debug)]
64620pub struct StreamSocketSetIpReceiveOriginalDestinationAddressResponder {
64621    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64622    tx_id: u32,
64623}
64624
64625/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64626/// if the responder is dropped without sending a response, so that the client
64627/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64628impl std::ops::Drop for StreamSocketSetIpReceiveOriginalDestinationAddressResponder {
64629    fn drop(&mut self) {
64630        self.control_handle.shutdown();
64631        // Safety: drops once, never accessed again
64632        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64633    }
64634}
64635
64636impl fidl::endpoints::Responder for StreamSocketSetIpReceiveOriginalDestinationAddressResponder {
64637    type ControlHandle = StreamSocketControlHandle;
64638
64639    fn control_handle(&self) -> &StreamSocketControlHandle {
64640        &self.control_handle
64641    }
64642
64643    fn drop_without_shutdown(mut self) {
64644        // Safety: drops once, never accessed again due to mem::forget
64645        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64646        // Prevent Drop from running (which would shut down the channel)
64647        std::mem::forget(self);
64648    }
64649}
64650
64651impl StreamSocketSetIpReceiveOriginalDestinationAddressResponder {
64652    /// Sends a response to the FIDL transaction.
64653    ///
64654    /// Sets the channel to shutdown if an error occurs.
64655    pub fn send(
64656        self,
64657        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64658    ) -> Result<(), fidl::Error> {
64659        let _result = self.send_raw(result);
64660        if _result.is_err() {
64661            self.control_handle.shutdown();
64662        }
64663        self.drop_without_shutdown();
64664        _result
64665    }
64666
64667    /// Similar to "send" but does not shutdown the channel if an error occurs.
64668    pub fn send_no_shutdown_on_err(
64669        self,
64670        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64671    ) -> Result<(), fidl::Error> {
64672        let _result = self.send_raw(result);
64673        self.drop_without_shutdown();
64674        _result
64675    }
64676
64677    fn send_raw(
64678        &self,
64679        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64680    ) -> Result<(), fidl::Error> {
64681        self.control_handle.inner.send::<fidl::encoding::ResultType<
64682            fidl::encoding::EmptyStruct,
64683            fidl_fuchsia_posix::Errno,
64684        >>(
64685            result,
64686            self.tx_id,
64687            0x4722b4ce52f7840,
64688            fidl::encoding::DynamicFlags::empty(),
64689        )
64690    }
64691}
64692
64693#[must_use = "FIDL methods require a response to be sent"]
64694#[derive(Debug)]
64695pub struct StreamSocketGetIpReceiveOriginalDestinationAddressResponder {
64696    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64697    tx_id: u32,
64698}
64699
64700/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64701/// if the responder is dropped without sending a response, so that the client
64702/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64703impl std::ops::Drop for StreamSocketGetIpReceiveOriginalDestinationAddressResponder {
64704    fn drop(&mut self) {
64705        self.control_handle.shutdown();
64706        // Safety: drops once, never accessed again
64707        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64708    }
64709}
64710
64711impl fidl::endpoints::Responder for StreamSocketGetIpReceiveOriginalDestinationAddressResponder {
64712    type ControlHandle = StreamSocketControlHandle;
64713
64714    fn control_handle(&self) -> &StreamSocketControlHandle {
64715        &self.control_handle
64716    }
64717
64718    fn drop_without_shutdown(mut self) {
64719        // Safety: drops once, never accessed again due to mem::forget
64720        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64721        // Prevent Drop from running (which would shut down the channel)
64722        std::mem::forget(self);
64723    }
64724}
64725
64726impl StreamSocketGetIpReceiveOriginalDestinationAddressResponder {
64727    /// Sends a response to the FIDL transaction.
64728    ///
64729    /// Sets the channel to shutdown if an error occurs.
64730    pub fn send(
64731        self,
64732        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
64733    ) -> Result<(), fidl::Error> {
64734        let _result = self.send_raw(result);
64735        if _result.is_err() {
64736            self.control_handle.shutdown();
64737        }
64738        self.drop_without_shutdown();
64739        _result
64740    }
64741
64742    /// Similar to "send" but does not shutdown the channel if an error occurs.
64743    pub fn send_no_shutdown_on_err(
64744        self,
64745        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
64746    ) -> Result<(), fidl::Error> {
64747        let _result = self.send_raw(result);
64748        self.drop_without_shutdown();
64749        _result
64750    }
64751
64752    fn send_raw(
64753        &self,
64754        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
64755    ) -> Result<(), fidl::Error> {
64756        self.control_handle.inner.send::<fidl::encoding::ResultType<
64757            BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
64758            fidl_fuchsia_posix::Errno,
64759        >>(
64760            result.map(|value| (value,)),
64761            self.tx_id,
64762            0x2a0e7dc5d6bfdfe9,
64763            fidl::encoding::DynamicFlags::empty(),
64764        )
64765    }
64766}
64767
64768#[must_use = "FIDL methods require a response to be sent"]
64769#[derive(Debug)]
64770pub struct StreamSocketAddIpv6MembershipResponder {
64771    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64772    tx_id: u32,
64773}
64774
64775/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64776/// if the responder is dropped without sending a response, so that the client
64777/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64778impl std::ops::Drop for StreamSocketAddIpv6MembershipResponder {
64779    fn drop(&mut self) {
64780        self.control_handle.shutdown();
64781        // Safety: drops once, never accessed again
64782        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64783    }
64784}
64785
64786impl fidl::endpoints::Responder for StreamSocketAddIpv6MembershipResponder {
64787    type ControlHandle = StreamSocketControlHandle;
64788
64789    fn control_handle(&self) -> &StreamSocketControlHandle {
64790        &self.control_handle
64791    }
64792
64793    fn drop_without_shutdown(mut self) {
64794        // Safety: drops once, never accessed again due to mem::forget
64795        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64796        // Prevent Drop from running (which would shut down the channel)
64797        std::mem::forget(self);
64798    }
64799}
64800
64801impl StreamSocketAddIpv6MembershipResponder {
64802    /// Sends a response to the FIDL transaction.
64803    ///
64804    /// Sets the channel to shutdown if an error occurs.
64805    pub fn send(
64806        self,
64807        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64808    ) -> Result<(), fidl::Error> {
64809        let _result = self.send_raw(result);
64810        if _result.is_err() {
64811            self.control_handle.shutdown();
64812        }
64813        self.drop_without_shutdown();
64814        _result
64815    }
64816
64817    /// Similar to "send" but does not shutdown the channel if an error occurs.
64818    pub fn send_no_shutdown_on_err(
64819        self,
64820        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64821    ) -> Result<(), fidl::Error> {
64822        let _result = self.send_raw(result);
64823        self.drop_without_shutdown();
64824        _result
64825    }
64826
64827    fn send_raw(
64828        &self,
64829        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64830    ) -> Result<(), fidl::Error> {
64831        self.control_handle.inner.send::<fidl::encoding::ResultType<
64832            fidl::encoding::EmptyStruct,
64833            fidl_fuchsia_posix::Errno,
64834        >>(
64835            result,
64836            self.tx_id,
64837            0x7c94727acb4ea4b3,
64838            fidl::encoding::DynamicFlags::empty(),
64839        )
64840    }
64841}
64842
64843#[must_use = "FIDL methods require a response to be sent"]
64844#[derive(Debug)]
64845pub struct StreamSocketDropIpv6MembershipResponder {
64846    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64847    tx_id: u32,
64848}
64849
64850/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64851/// if the responder is dropped without sending a response, so that the client
64852/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64853impl std::ops::Drop for StreamSocketDropIpv6MembershipResponder {
64854    fn drop(&mut self) {
64855        self.control_handle.shutdown();
64856        // Safety: drops once, never accessed again
64857        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64858    }
64859}
64860
64861impl fidl::endpoints::Responder for StreamSocketDropIpv6MembershipResponder {
64862    type ControlHandle = StreamSocketControlHandle;
64863
64864    fn control_handle(&self) -> &StreamSocketControlHandle {
64865        &self.control_handle
64866    }
64867
64868    fn drop_without_shutdown(mut self) {
64869        // Safety: drops once, never accessed again due to mem::forget
64870        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64871        // Prevent Drop from running (which would shut down the channel)
64872        std::mem::forget(self);
64873    }
64874}
64875
64876impl StreamSocketDropIpv6MembershipResponder {
64877    /// Sends a response to the FIDL transaction.
64878    ///
64879    /// Sets the channel to shutdown if an error occurs.
64880    pub fn send(
64881        self,
64882        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64883    ) -> Result<(), fidl::Error> {
64884        let _result = self.send_raw(result);
64885        if _result.is_err() {
64886            self.control_handle.shutdown();
64887        }
64888        self.drop_without_shutdown();
64889        _result
64890    }
64891
64892    /// Similar to "send" but does not shutdown the channel if an error occurs.
64893    pub fn send_no_shutdown_on_err(
64894        self,
64895        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64896    ) -> Result<(), fidl::Error> {
64897        let _result = self.send_raw(result);
64898        self.drop_without_shutdown();
64899        _result
64900    }
64901
64902    fn send_raw(
64903        &self,
64904        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64905    ) -> Result<(), fidl::Error> {
64906        self.control_handle.inner.send::<fidl::encoding::ResultType<
64907            fidl::encoding::EmptyStruct,
64908            fidl_fuchsia_posix::Errno,
64909        >>(
64910            result,
64911            self.tx_id,
64912            0x42104c70ccaba304,
64913            fidl::encoding::DynamicFlags::empty(),
64914        )
64915    }
64916}
64917
64918#[must_use = "FIDL methods require a response to be sent"]
64919#[derive(Debug)]
64920pub struct StreamSocketSetIpv6MulticastInterfaceResponder {
64921    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64922    tx_id: u32,
64923}
64924
64925/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64926/// if the responder is dropped without sending a response, so that the client
64927/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64928impl std::ops::Drop for StreamSocketSetIpv6MulticastInterfaceResponder {
64929    fn drop(&mut self) {
64930        self.control_handle.shutdown();
64931        // Safety: drops once, never accessed again
64932        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64933    }
64934}
64935
64936impl fidl::endpoints::Responder for StreamSocketSetIpv6MulticastInterfaceResponder {
64937    type ControlHandle = StreamSocketControlHandle;
64938
64939    fn control_handle(&self) -> &StreamSocketControlHandle {
64940        &self.control_handle
64941    }
64942
64943    fn drop_without_shutdown(mut self) {
64944        // Safety: drops once, never accessed again due to mem::forget
64945        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64946        // Prevent Drop from running (which would shut down the channel)
64947        std::mem::forget(self);
64948    }
64949}
64950
64951impl StreamSocketSetIpv6MulticastInterfaceResponder {
64952    /// Sends a response to the FIDL transaction.
64953    ///
64954    /// Sets the channel to shutdown if an error occurs.
64955    pub fn send(
64956        self,
64957        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64958    ) -> Result<(), fidl::Error> {
64959        let _result = self.send_raw(result);
64960        if _result.is_err() {
64961            self.control_handle.shutdown();
64962        }
64963        self.drop_without_shutdown();
64964        _result
64965    }
64966
64967    /// Similar to "send" but does not shutdown the channel if an error occurs.
64968    pub fn send_no_shutdown_on_err(
64969        self,
64970        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64971    ) -> Result<(), fidl::Error> {
64972        let _result = self.send_raw(result);
64973        self.drop_without_shutdown();
64974        _result
64975    }
64976
64977    fn send_raw(
64978        &self,
64979        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64980    ) -> Result<(), fidl::Error> {
64981        self.control_handle.inner.send::<fidl::encoding::ResultType<
64982            fidl::encoding::EmptyStruct,
64983            fidl_fuchsia_posix::Errno,
64984        >>(
64985            result,
64986            self.tx_id,
64987            0x135f76db3774ab3b,
64988            fidl::encoding::DynamicFlags::empty(),
64989        )
64990    }
64991}
64992
64993#[must_use = "FIDL methods require a response to be sent"]
64994#[derive(Debug)]
64995pub struct StreamSocketGetIpv6MulticastInterfaceResponder {
64996    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64997    tx_id: u32,
64998}
64999
65000/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65001/// if the responder is dropped without sending a response, so that the client
65002/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65003impl std::ops::Drop for StreamSocketGetIpv6MulticastInterfaceResponder {
65004    fn drop(&mut self) {
65005        self.control_handle.shutdown();
65006        // Safety: drops once, never accessed again
65007        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65008    }
65009}
65010
65011impl fidl::endpoints::Responder for StreamSocketGetIpv6MulticastInterfaceResponder {
65012    type ControlHandle = StreamSocketControlHandle;
65013
65014    fn control_handle(&self) -> &StreamSocketControlHandle {
65015        &self.control_handle
65016    }
65017
65018    fn drop_without_shutdown(mut self) {
65019        // Safety: drops once, never accessed again due to mem::forget
65020        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65021        // Prevent Drop from running (which would shut down the channel)
65022        std::mem::forget(self);
65023    }
65024}
65025
65026impl StreamSocketGetIpv6MulticastInterfaceResponder {
65027    /// Sends a response to the FIDL transaction.
65028    ///
65029    /// Sets the channel to shutdown if an error occurs.
65030    pub fn send(
65031        self,
65032        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
65033    ) -> Result<(), fidl::Error> {
65034        let _result = self.send_raw(result);
65035        if _result.is_err() {
65036            self.control_handle.shutdown();
65037        }
65038        self.drop_without_shutdown();
65039        _result
65040    }
65041
65042    /// Similar to "send" but does not shutdown the channel if an error occurs.
65043    pub fn send_no_shutdown_on_err(
65044        self,
65045        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
65046    ) -> Result<(), fidl::Error> {
65047        let _result = self.send_raw(result);
65048        self.drop_without_shutdown();
65049        _result
65050    }
65051
65052    fn send_raw(
65053        &self,
65054        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
65055    ) -> Result<(), fidl::Error> {
65056        self.control_handle.inner.send::<fidl::encoding::ResultType<
65057            BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
65058            fidl_fuchsia_posix::Errno,
65059        >>(
65060            result.map(|value| (value,)),
65061            self.tx_id,
65062            0x1f26fcdd348f1882,
65063            fidl::encoding::DynamicFlags::empty(),
65064        )
65065    }
65066}
65067
65068#[must_use = "FIDL methods require a response to be sent"]
65069#[derive(Debug)]
65070pub struct StreamSocketSetIpv6UnicastHopsResponder {
65071    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65072    tx_id: u32,
65073}
65074
65075/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65076/// if the responder is dropped without sending a response, so that the client
65077/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65078impl std::ops::Drop for StreamSocketSetIpv6UnicastHopsResponder {
65079    fn drop(&mut self) {
65080        self.control_handle.shutdown();
65081        // Safety: drops once, never accessed again
65082        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65083    }
65084}
65085
65086impl fidl::endpoints::Responder for StreamSocketSetIpv6UnicastHopsResponder {
65087    type ControlHandle = StreamSocketControlHandle;
65088
65089    fn control_handle(&self) -> &StreamSocketControlHandle {
65090        &self.control_handle
65091    }
65092
65093    fn drop_without_shutdown(mut self) {
65094        // Safety: drops once, never accessed again due to mem::forget
65095        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65096        // Prevent Drop from running (which would shut down the channel)
65097        std::mem::forget(self);
65098    }
65099}
65100
65101impl StreamSocketSetIpv6UnicastHopsResponder {
65102    /// Sends a response to the FIDL transaction.
65103    ///
65104    /// Sets the channel to shutdown if an error occurs.
65105    pub fn send(
65106        self,
65107        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65108    ) -> Result<(), fidl::Error> {
65109        let _result = self.send_raw(result);
65110        if _result.is_err() {
65111            self.control_handle.shutdown();
65112        }
65113        self.drop_without_shutdown();
65114        _result
65115    }
65116
65117    /// Similar to "send" but does not shutdown the channel if an error occurs.
65118    pub fn send_no_shutdown_on_err(
65119        self,
65120        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65121    ) -> Result<(), fidl::Error> {
65122        let _result = self.send_raw(result);
65123        self.drop_without_shutdown();
65124        _result
65125    }
65126
65127    fn send_raw(
65128        &self,
65129        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65130    ) -> Result<(), fidl::Error> {
65131        self.control_handle.inner.send::<fidl::encoding::ResultType<
65132            fidl::encoding::EmptyStruct,
65133            fidl_fuchsia_posix::Errno,
65134        >>(
65135            result,
65136            self.tx_id,
65137            0x157d51e98f462859,
65138            fidl::encoding::DynamicFlags::empty(),
65139        )
65140    }
65141}
65142
65143#[must_use = "FIDL methods require a response to be sent"]
65144#[derive(Debug)]
65145pub struct StreamSocketGetIpv6UnicastHopsResponder {
65146    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65147    tx_id: u32,
65148}
65149
65150/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65151/// if the responder is dropped without sending a response, so that the client
65152/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65153impl std::ops::Drop for StreamSocketGetIpv6UnicastHopsResponder {
65154    fn drop(&mut self) {
65155        self.control_handle.shutdown();
65156        // Safety: drops once, never accessed again
65157        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65158    }
65159}
65160
65161impl fidl::endpoints::Responder for StreamSocketGetIpv6UnicastHopsResponder {
65162    type ControlHandle = StreamSocketControlHandle;
65163
65164    fn control_handle(&self) -> &StreamSocketControlHandle {
65165        &self.control_handle
65166    }
65167
65168    fn drop_without_shutdown(mut self) {
65169        // Safety: drops once, never accessed again due to mem::forget
65170        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65171        // Prevent Drop from running (which would shut down the channel)
65172        std::mem::forget(self);
65173    }
65174}
65175
65176impl StreamSocketGetIpv6UnicastHopsResponder {
65177    /// Sends a response to the FIDL transaction.
65178    ///
65179    /// Sets the channel to shutdown if an error occurs.
65180    pub fn send(
65181        self,
65182        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
65183    ) -> Result<(), fidl::Error> {
65184        let _result = self.send_raw(result);
65185        if _result.is_err() {
65186            self.control_handle.shutdown();
65187        }
65188        self.drop_without_shutdown();
65189        _result
65190    }
65191
65192    /// Similar to "send" but does not shutdown the channel if an error occurs.
65193    pub fn send_no_shutdown_on_err(
65194        self,
65195        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
65196    ) -> Result<(), fidl::Error> {
65197        let _result = self.send_raw(result);
65198        self.drop_without_shutdown();
65199        _result
65200    }
65201
65202    fn send_raw(
65203        &self,
65204        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
65205    ) -> Result<(), fidl::Error> {
65206        self.control_handle.inner.send::<fidl::encoding::ResultType<
65207            BaseNetworkSocketGetIpv6UnicastHopsResponse,
65208            fidl_fuchsia_posix::Errno,
65209        >>(
65210            result.map(|value| (value,)),
65211            self.tx_id,
65212            0x21f4641cad8bd8d2,
65213            fidl::encoding::DynamicFlags::empty(),
65214        )
65215    }
65216}
65217
65218#[must_use = "FIDL methods require a response to be sent"]
65219#[derive(Debug)]
65220pub struct StreamSocketSetIpv6ReceiveHopLimitResponder {
65221    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65222    tx_id: u32,
65223}
65224
65225/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65226/// if the responder is dropped without sending a response, so that the client
65227/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65228impl std::ops::Drop for StreamSocketSetIpv6ReceiveHopLimitResponder {
65229    fn drop(&mut self) {
65230        self.control_handle.shutdown();
65231        // Safety: drops once, never accessed again
65232        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65233    }
65234}
65235
65236impl fidl::endpoints::Responder for StreamSocketSetIpv6ReceiveHopLimitResponder {
65237    type ControlHandle = StreamSocketControlHandle;
65238
65239    fn control_handle(&self) -> &StreamSocketControlHandle {
65240        &self.control_handle
65241    }
65242
65243    fn drop_without_shutdown(mut self) {
65244        // Safety: drops once, never accessed again due to mem::forget
65245        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65246        // Prevent Drop from running (which would shut down the channel)
65247        std::mem::forget(self);
65248    }
65249}
65250
65251impl StreamSocketSetIpv6ReceiveHopLimitResponder {
65252    /// Sends a response to the FIDL transaction.
65253    ///
65254    /// Sets the channel to shutdown if an error occurs.
65255    pub fn send(
65256        self,
65257        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65258    ) -> Result<(), fidl::Error> {
65259        let _result = self.send_raw(result);
65260        if _result.is_err() {
65261            self.control_handle.shutdown();
65262        }
65263        self.drop_without_shutdown();
65264        _result
65265    }
65266
65267    /// Similar to "send" but does not shutdown the channel if an error occurs.
65268    pub fn send_no_shutdown_on_err(
65269        self,
65270        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65271    ) -> Result<(), fidl::Error> {
65272        let _result = self.send_raw(result);
65273        self.drop_without_shutdown();
65274        _result
65275    }
65276
65277    fn send_raw(
65278        &self,
65279        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65280    ) -> Result<(), fidl::Error> {
65281        self.control_handle.inner.send::<fidl::encoding::ResultType<
65282            fidl::encoding::EmptyStruct,
65283            fidl_fuchsia_posix::Errno,
65284        >>(
65285            result,
65286            self.tx_id,
65287            0x5c24808ed2e84a1e,
65288            fidl::encoding::DynamicFlags::empty(),
65289        )
65290    }
65291}
65292
65293#[must_use = "FIDL methods require a response to be sent"]
65294#[derive(Debug)]
65295pub struct StreamSocketGetIpv6ReceiveHopLimitResponder {
65296    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65297    tx_id: u32,
65298}
65299
65300/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65301/// if the responder is dropped without sending a response, so that the client
65302/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65303impl std::ops::Drop for StreamSocketGetIpv6ReceiveHopLimitResponder {
65304    fn drop(&mut self) {
65305        self.control_handle.shutdown();
65306        // Safety: drops once, never accessed again
65307        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65308    }
65309}
65310
65311impl fidl::endpoints::Responder for StreamSocketGetIpv6ReceiveHopLimitResponder {
65312    type ControlHandle = StreamSocketControlHandle;
65313
65314    fn control_handle(&self) -> &StreamSocketControlHandle {
65315        &self.control_handle
65316    }
65317
65318    fn drop_without_shutdown(mut self) {
65319        // Safety: drops once, never accessed again due to mem::forget
65320        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65321        // Prevent Drop from running (which would shut down the channel)
65322        std::mem::forget(self);
65323    }
65324}
65325
65326impl StreamSocketGetIpv6ReceiveHopLimitResponder {
65327    /// Sends a response to the FIDL transaction.
65328    ///
65329    /// Sets the channel to shutdown if an error occurs.
65330    pub fn send(
65331        self,
65332        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65333    ) -> Result<(), fidl::Error> {
65334        let _result = self.send_raw(result);
65335        if _result.is_err() {
65336            self.control_handle.shutdown();
65337        }
65338        self.drop_without_shutdown();
65339        _result
65340    }
65341
65342    /// Similar to "send" but does not shutdown the channel if an error occurs.
65343    pub fn send_no_shutdown_on_err(
65344        self,
65345        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65346    ) -> Result<(), fidl::Error> {
65347        let _result = self.send_raw(result);
65348        self.drop_without_shutdown();
65349        _result
65350    }
65351
65352    fn send_raw(
65353        &self,
65354        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65355    ) -> Result<(), fidl::Error> {
65356        self.control_handle.inner.send::<fidl::encoding::ResultType<
65357            BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
65358            fidl_fuchsia_posix::Errno,
65359        >>(
65360            result.map(|value| (value,)),
65361            self.tx_id,
65362            0x341e06689885b4c0,
65363            fidl::encoding::DynamicFlags::empty(),
65364        )
65365    }
65366}
65367
65368#[must_use = "FIDL methods require a response to be sent"]
65369#[derive(Debug)]
65370pub struct StreamSocketSetIpv6MulticastHopsResponder {
65371    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65372    tx_id: u32,
65373}
65374
65375/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65376/// if the responder is dropped without sending a response, so that the client
65377/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65378impl std::ops::Drop for StreamSocketSetIpv6MulticastHopsResponder {
65379    fn drop(&mut self) {
65380        self.control_handle.shutdown();
65381        // Safety: drops once, never accessed again
65382        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65383    }
65384}
65385
65386impl fidl::endpoints::Responder for StreamSocketSetIpv6MulticastHopsResponder {
65387    type ControlHandle = StreamSocketControlHandle;
65388
65389    fn control_handle(&self) -> &StreamSocketControlHandle {
65390        &self.control_handle
65391    }
65392
65393    fn drop_without_shutdown(mut self) {
65394        // Safety: drops once, never accessed again due to mem::forget
65395        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65396        // Prevent Drop from running (which would shut down the channel)
65397        std::mem::forget(self);
65398    }
65399}
65400
65401impl StreamSocketSetIpv6MulticastHopsResponder {
65402    /// Sends a response to the FIDL transaction.
65403    ///
65404    /// Sets the channel to shutdown if an error occurs.
65405    pub fn send(
65406        self,
65407        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65408    ) -> Result<(), fidl::Error> {
65409        let _result = self.send_raw(result);
65410        if _result.is_err() {
65411            self.control_handle.shutdown();
65412        }
65413        self.drop_without_shutdown();
65414        _result
65415    }
65416
65417    /// Similar to "send" but does not shutdown the channel if an error occurs.
65418    pub fn send_no_shutdown_on_err(
65419        self,
65420        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65421    ) -> Result<(), fidl::Error> {
65422        let _result = self.send_raw(result);
65423        self.drop_without_shutdown();
65424        _result
65425    }
65426
65427    fn send_raw(
65428        &self,
65429        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65430    ) -> Result<(), fidl::Error> {
65431        self.control_handle.inner.send::<fidl::encoding::ResultType<
65432            fidl::encoding::EmptyStruct,
65433            fidl_fuchsia_posix::Errno,
65434        >>(
65435            result,
65436            self.tx_id,
65437            0x25b9cd4d181f82c1,
65438            fidl::encoding::DynamicFlags::empty(),
65439        )
65440    }
65441}
65442
65443#[must_use = "FIDL methods require a response to be sent"]
65444#[derive(Debug)]
65445pub struct StreamSocketGetIpv6MulticastHopsResponder {
65446    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65447    tx_id: u32,
65448}
65449
65450/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65451/// if the responder is dropped without sending a response, so that the client
65452/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65453impl std::ops::Drop for StreamSocketGetIpv6MulticastHopsResponder {
65454    fn drop(&mut self) {
65455        self.control_handle.shutdown();
65456        // Safety: drops once, never accessed again
65457        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65458    }
65459}
65460
65461impl fidl::endpoints::Responder for StreamSocketGetIpv6MulticastHopsResponder {
65462    type ControlHandle = StreamSocketControlHandle;
65463
65464    fn control_handle(&self) -> &StreamSocketControlHandle {
65465        &self.control_handle
65466    }
65467
65468    fn drop_without_shutdown(mut self) {
65469        // Safety: drops once, never accessed again due to mem::forget
65470        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65471        // Prevent Drop from running (which would shut down the channel)
65472        std::mem::forget(self);
65473    }
65474}
65475
65476impl StreamSocketGetIpv6MulticastHopsResponder {
65477    /// Sends a response to the FIDL transaction.
65478    ///
65479    /// Sets the channel to shutdown if an error occurs.
65480    pub fn send(
65481        self,
65482        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
65483    ) -> Result<(), fidl::Error> {
65484        let _result = self.send_raw(result);
65485        if _result.is_err() {
65486            self.control_handle.shutdown();
65487        }
65488        self.drop_without_shutdown();
65489        _result
65490    }
65491
65492    /// Similar to "send" but does not shutdown the channel if an error occurs.
65493    pub fn send_no_shutdown_on_err(
65494        self,
65495        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
65496    ) -> Result<(), fidl::Error> {
65497        let _result = self.send_raw(result);
65498        self.drop_without_shutdown();
65499        _result
65500    }
65501
65502    fn send_raw(
65503        &self,
65504        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
65505    ) -> Result<(), fidl::Error> {
65506        self.control_handle.inner.send::<fidl::encoding::ResultType<
65507            BaseNetworkSocketGetIpv6MulticastHopsResponse,
65508            fidl_fuchsia_posix::Errno,
65509        >>(
65510            result.map(|value| (value,)),
65511            self.tx_id,
65512            0x52916948a365012a,
65513            fidl::encoding::DynamicFlags::empty(),
65514        )
65515    }
65516}
65517
65518#[must_use = "FIDL methods require a response to be sent"]
65519#[derive(Debug)]
65520pub struct StreamSocketSetIpv6MulticastLoopbackResponder {
65521    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65522    tx_id: u32,
65523}
65524
65525/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65526/// if the responder is dropped without sending a response, so that the client
65527/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65528impl std::ops::Drop for StreamSocketSetIpv6MulticastLoopbackResponder {
65529    fn drop(&mut self) {
65530        self.control_handle.shutdown();
65531        // Safety: drops once, never accessed again
65532        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65533    }
65534}
65535
65536impl fidl::endpoints::Responder for StreamSocketSetIpv6MulticastLoopbackResponder {
65537    type ControlHandle = StreamSocketControlHandle;
65538
65539    fn control_handle(&self) -> &StreamSocketControlHandle {
65540        &self.control_handle
65541    }
65542
65543    fn drop_without_shutdown(mut self) {
65544        // Safety: drops once, never accessed again due to mem::forget
65545        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65546        // Prevent Drop from running (which would shut down the channel)
65547        std::mem::forget(self);
65548    }
65549}
65550
65551impl StreamSocketSetIpv6MulticastLoopbackResponder {
65552    /// Sends a response to the FIDL transaction.
65553    ///
65554    /// Sets the channel to shutdown if an error occurs.
65555    pub fn send(
65556        self,
65557        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65558    ) -> Result<(), fidl::Error> {
65559        let _result = self.send_raw(result);
65560        if _result.is_err() {
65561            self.control_handle.shutdown();
65562        }
65563        self.drop_without_shutdown();
65564        _result
65565    }
65566
65567    /// Similar to "send" but does not shutdown the channel if an error occurs.
65568    pub fn send_no_shutdown_on_err(
65569        self,
65570        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65571    ) -> Result<(), fidl::Error> {
65572        let _result = self.send_raw(result);
65573        self.drop_without_shutdown();
65574        _result
65575    }
65576
65577    fn send_raw(
65578        &self,
65579        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65580    ) -> Result<(), fidl::Error> {
65581        self.control_handle.inner.send::<fidl::encoding::ResultType<
65582            fidl::encoding::EmptyStruct,
65583            fidl_fuchsia_posix::Errno,
65584        >>(
65585            result,
65586            self.tx_id,
65587            0x55701c409ff41b40,
65588            fidl::encoding::DynamicFlags::empty(),
65589        )
65590    }
65591}
65592
65593#[must_use = "FIDL methods require a response to be sent"]
65594#[derive(Debug)]
65595pub struct StreamSocketGetIpv6MulticastLoopbackResponder {
65596    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65597    tx_id: u32,
65598}
65599
65600/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65601/// if the responder is dropped without sending a response, so that the client
65602/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65603impl std::ops::Drop for StreamSocketGetIpv6MulticastLoopbackResponder {
65604    fn drop(&mut self) {
65605        self.control_handle.shutdown();
65606        // Safety: drops once, never accessed again
65607        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65608    }
65609}
65610
65611impl fidl::endpoints::Responder for StreamSocketGetIpv6MulticastLoopbackResponder {
65612    type ControlHandle = StreamSocketControlHandle;
65613
65614    fn control_handle(&self) -> &StreamSocketControlHandle {
65615        &self.control_handle
65616    }
65617
65618    fn drop_without_shutdown(mut self) {
65619        // Safety: drops once, never accessed again due to mem::forget
65620        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65621        // Prevent Drop from running (which would shut down the channel)
65622        std::mem::forget(self);
65623    }
65624}
65625
65626impl StreamSocketGetIpv6MulticastLoopbackResponder {
65627    /// Sends a response to the FIDL transaction.
65628    ///
65629    /// Sets the channel to shutdown if an error occurs.
65630    pub fn send(
65631        self,
65632        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65633    ) -> Result<(), fidl::Error> {
65634        let _result = self.send_raw(result);
65635        if _result.is_err() {
65636            self.control_handle.shutdown();
65637        }
65638        self.drop_without_shutdown();
65639        _result
65640    }
65641
65642    /// Similar to "send" but does not shutdown the channel if an error occurs.
65643    pub fn send_no_shutdown_on_err(
65644        self,
65645        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65646    ) -> Result<(), fidl::Error> {
65647        let _result = self.send_raw(result);
65648        self.drop_without_shutdown();
65649        _result
65650    }
65651
65652    fn send_raw(
65653        &self,
65654        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65655    ) -> Result<(), fidl::Error> {
65656        self.control_handle.inner.send::<fidl::encoding::ResultType<
65657            BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
65658            fidl_fuchsia_posix::Errno,
65659        >>(
65660            result.map(|value| (value,)),
65661            self.tx_id,
65662            0x4415b701fde319c3,
65663            fidl::encoding::DynamicFlags::empty(),
65664        )
65665    }
65666}
65667
65668#[must_use = "FIDL methods require a response to be sent"]
65669#[derive(Debug)]
65670pub struct StreamSocketSetIpv6OnlyResponder {
65671    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65672    tx_id: u32,
65673}
65674
65675/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65676/// if the responder is dropped without sending a response, so that the client
65677/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65678impl std::ops::Drop for StreamSocketSetIpv6OnlyResponder {
65679    fn drop(&mut self) {
65680        self.control_handle.shutdown();
65681        // Safety: drops once, never accessed again
65682        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65683    }
65684}
65685
65686impl fidl::endpoints::Responder for StreamSocketSetIpv6OnlyResponder {
65687    type ControlHandle = StreamSocketControlHandle;
65688
65689    fn control_handle(&self) -> &StreamSocketControlHandle {
65690        &self.control_handle
65691    }
65692
65693    fn drop_without_shutdown(mut self) {
65694        // Safety: drops once, never accessed again due to mem::forget
65695        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65696        // Prevent Drop from running (which would shut down the channel)
65697        std::mem::forget(self);
65698    }
65699}
65700
65701impl StreamSocketSetIpv6OnlyResponder {
65702    /// Sends a response to the FIDL transaction.
65703    ///
65704    /// Sets the channel to shutdown if an error occurs.
65705    pub fn send(
65706        self,
65707        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65708    ) -> Result<(), fidl::Error> {
65709        let _result = self.send_raw(result);
65710        if _result.is_err() {
65711            self.control_handle.shutdown();
65712        }
65713        self.drop_without_shutdown();
65714        _result
65715    }
65716
65717    /// Similar to "send" but does not shutdown the channel if an error occurs.
65718    pub fn send_no_shutdown_on_err(
65719        self,
65720        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65721    ) -> Result<(), fidl::Error> {
65722        let _result = self.send_raw(result);
65723        self.drop_without_shutdown();
65724        _result
65725    }
65726
65727    fn send_raw(
65728        &self,
65729        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65730    ) -> Result<(), fidl::Error> {
65731        self.control_handle.inner.send::<fidl::encoding::ResultType<
65732            fidl::encoding::EmptyStruct,
65733            fidl_fuchsia_posix::Errno,
65734        >>(
65735            result,
65736            self.tx_id,
65737            0x4873f1364758cbba,
65738            fidl::encoding::DynamicFlags::empty(),
65739        )
65740    }
65741}
65742
65743#[must_use = "FIDL methods require a response to be sent"]
65744#[derive(Debug)]
65745pub struct StreamSocketGetIpv6OnlyResponder {
65746    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65747    tx_id: u32,
65748}
65749
65750/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65751/// if the responder is dropped without sending a response, so that the client
65752/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65753impl std::ops::Drop for StreamSocketGetIpv6OnlyResponder {
65754    fn drop(&mut self) {
65755        self.control_handle.shutdown();
65756        // Safety: drops once, never accessed again
65757        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65758    }
65759}
65760
65761impl fidl::endpoints::Responder for StreamSocketGetIpv6OnlyResponder {
65762    type ControlHandle = StreamSocketControlHandle;
65763
65764    fn control_handle(&self) -> &StreamSocketControlHandle {
65765        &self.control_handle
65766    }
65767
65768    fn drop_without_shutdown(mut self) {
65769        // Safety: drops once, never accessed again due to mem::forget
65770        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65771        // Prevent Drop from running (which would shut down the channel)
65772        std::mem::forget(self);
65773    }
65774}
65775
65776impl StreamSocketGetIpv6OnlyResponder {
65777    /// Sends a response to the FIDL transaction.
65778    ///
65779    /// Sets the channel to shutdown if an error occurs.
65780    pub fn send(
65781        self,
65782        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65783    ) -> Result<(), fidl::Error> {
65784        let _result = self.send_raw(result);
65785        if _result.is_err() {
65786            self.control_handle.shutdown();
65787        }
65788        self.drop_without_shutdown();
65789        _result
65790    }
65791
65792    /// Similar to "send" but does not shutdown the channel if an error occurs.
65793    pub fn send_no_shutdown_on_err(
65794        self,
65795        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65796    ) -> Result<(), fidl::Error> {
65797        let _result = self.send_raw(result);
65798        self.drop_without_shutdown();
65799        _result
65800    }
65801
65802    fn send_raw(
65803        &self,
65804        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65805    ) -> Result<(), fidl::Error> {
65806        self.control_handle.inner.send::<fidl::encoding::ResultType<
65807            BaseNetworkSocketGetIpv6OnlyResponse,
65808            fidl_fuchsia_posix::Errno,
65809        >>(
65810            result.map(|value| (value,)),
65811            self.tx_id,
65812            0x4aa3340a1a26b89c,
65813            fidl::encoding::DynamicFlags::empty(),
65814        )
65815    }
65816}
65817
65818#[must_use = "FIDL methods require a response to be sent"]
65819#[derive(Debug)]
65820pub struct StreamSocketSetIpv6ReceiveTrafficClassResponder {
65821    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65822    tx_id: u32,
65823}
65824
65825/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65826/// if the responder is dropped without sending a response, so that the client
65827/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65828impl std::ops::Drop for StreamSocketSetIpv6ReceiveTrafficClassResponder {
65829    fn drop(&mut self) {
65830        self.control_handle.shutdown();
65831        // Safety: drops once, never accessed again
65832        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65833    }
65834}
65835
65836impl fidl::endpoints::Responder for StreamSocketSetIpv6ReceiveTrafficClassResponder {
65837    type ControlHandle = StreamSocketControlHandle;
65838
65839    fn control_handle(&self) -> &StreamSocketControlHandle {
65840        &self.control_handle
65841    }
65842
65843    fn drop_without_shutdown(mut self) {
65844        // Safety: drops once, never accessed again due to mem::forget
65845        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65846        // Prevent Drop from running (which would shut down the channel)
65847        std::mem::forget(self);
65848    }
65849}
65850
65851impl StreamSocketSetIpv6ReceiveTrafficClassResponder {
65852    /// Sends a response to the FIDL transaction.
65853    ///
65854    /// Sets the channel to shutdown if an error occurs.
65855    pub fn send(
65856        self,
65857        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65858    ) -> Result<(), fidl::Error> {
65859        let _result = self.send_raw(result);
65860        if _result.is_err() {
65861            self.control_handle.shutdown();
65862        }
65863        self.drop_without_shutdown();
65864        _result
65865    }
65866
65867    /// Similar to "send" but does not shutdown the channel if an error occurs.
65868    pub fn send_no_shutdown_on_err(
65869        self,
65870        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65871    ) -> Result<(), fidl::Error> {
65872        let _result = self.send_raw(result);
65873        self.drop_without_shutdown();
65874        _result
65875    }
65876
65877    fn send_raw(
65878        &self,
65879        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65880    ) -> Result<(), fidl::Error> {
65881        self.control_handle.inner.send::<fidl::encoding::ResultType<
65882            fidl::encoding::EmptyStruct,
65883            fidl_fuchsia_posix::Errno,
65884        >>(
65885            result,
65886            self.tx_id,
65887            0x58f07c8788d099a0,
65888            fidl::encoding::DynamicFlags::empty(),
65889        )
65890    }
65891}
65892
65893#[must_use = "FIDL methods require a response to be sent"]
65894#[derive(Debug)]
65895pub struct StreamSocketGetIpv6ReceiveTrafficClassResponder {
65896    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65897    tx_id: u32,
65898}
65899
65900/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65901/// if the responder is dropped without sending a response, so that the client
65902/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65903impl std::ops::Drop for StreamSocketGetIpv6ReceiveTrafficClassResponder {
65904    fn drop(&mut self) {
65905        self.control_handle.shutdown();
65906        // Safety: drops once, never accessed again
65907        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65908    }
65909}
65910
65911impl fidl::endpoints::Responder for StreamSocketGetIpv6ReceiveTrafficClassResponder {
65912    type ControlHandle = StreamSocketControlHandle;
65913
65914    fn control_handle(&self) -> &StreamSocketControlHandle {
65915        &self.control_handle
65916    }
65917
65918    fn drop_without_shutdown(mut self) {
65919        // Safety: drops once, never accessed again due to mem::forget
65920        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65921        // Prevent Drop from running (which would shut down the channel)
65922        std::mem::forget(self);
65923    }
65924}
65925
65926impl StreamSocketGetIpv6ReceiveTrafficClassResponder {
65927    /// Sends a response to the FIDL transaction.
65928    ///
65929    /// Sets the channel to shutdown if an error occurs.
65930    pub fn send(
65931        self,
65932        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65933    ) -> Result<(), fidl::Error> {
65934        let _result = self.send_raw(result);
65935        if _result.is_err() {
65936            self.control_handle.shutdown();
65937        }
65938        self.drop_without_shutdown();
65939        _result
65940    }
65941
65942    /// Similar to "send" but does not shutdown the channel if an error occurs.
65943    pub fn send_no_shutdown_on_err(
65944        self,
65945        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65946    ) -> Result<(), fidl::Error> {
65947        let _result = self.send_raw(result);
65948        self.drop_without_shutdown();
65949        _result
65950    }
65951
65952    fn send_raw(
65953        &self,
65954        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65955    ) -> Result<(), fidl::Error> {
65956        self.control_handle.inner.send::<fidl::encoding::ResultType<
65957            BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
65958            fidl_fuchsia_posix::Errno,
65959        >>(
65960            result.map(|value| (value,)),
65961            self.tx_id,
65962            0x2e334df1da553ffa,
65963            fidl::encoding::DynamicFlags::empty(),
65964        )
65965    }
65966}
65967
65968#[must_use = "FIDL methods require a response to be sent"]
65969#[derive(Debug)]
65970pub struct StreamSocketSetIpv6TrafficClassResponder {
65971    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65972    tx_id: u32,
65973}
65974
65975/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65976/// if the responder is dropped without sending a response, so that the client
65977/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65978impl std::ops::Drop for StreamSocketSetIpv6TrafficClassResponder {
65979    fn drop(&mut self) {
65980        self.control_handle.shutdown();
65981        // Safety: drops once, never accessed again
65982        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65983    }
65984}
65985
65986impl fidl::endpoints::Responder for StreamSocketSetIpv6TrafficClassResponder {
65987    type ControlHandle = StreamSocketControlHandle;
65988
65989    fn control_handle(&self) -> &StreamSocketControlHandle {
65990        &self.control_handle
65991    }
65992
65993    fn drop_without_shutdown(mut self) {
65994        // Safety: drops once, never accessed again due to mem::forget
65995        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65996        // Prevent Drop from running (which would shut down the channel)
65997        std::mem::forget(self);
65998    }
65999}
66000
66001impl StreamSocketSetIpv6TrafficClassResponder {
66002    /// Sends a response to the FIDL transaction.
66003    ///
66004    /// Sets the channel to shutdown if an error occurs.
66005    pub fn send(
66006        self,
66007        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66008    ) -> Result<(), fidl::Error> {
66009        let _result = self.send_raw(result);
66010        if _result.is_err() {
66011            self.control_handle.shutdown();
66012        }
66013        self.drop_without_shutdown();
66014        _result
66015    }
66016
66017    /// Similar to "send" but does not shutdown the channel if an error occurs.
66018    pub fn send_no_shutdown_on_err(
66019        self,
66020        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66021    ) -> Result<(), fidl::Error> {
66022        let _result = self.send_raw(result);
66023        self.drop_without_shutdown();
66024        _result
66025    }
66026
66027    fn send_raw(
66028        &self,
66029        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66030    ) -> Result<(), fidl::Error> {
66031        self.control_handle.inner.send::<fidl::encoding::ResultType<
66032            fidl::encoding::EmptyStruct,
66033            fidl_fuchsia_posix::Errno,
66034        >>(
66035            result,
66036            self.tx_id,
66037            0x6af077800c5a0b4f,
66038            fidl::encoding::DynamicFlags::empty(),
66039        )
66040    }
66041}
66042
66043#[must_use = "FIDL methods require a response to be sent"]
66044#[derive(Debug)]
66045pub struct StreamSocketGetIpv6TrafficClassResponder {
66046    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66047    tx_id: u32,
66048}
66049
66050/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66051/// if the responder is dropped without sending a response, so that the client
66052/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66053impl std::ops::Drop for StreamSocketGetIpv6TrafficClassResponder {
66054    fn drop(&mut self) {
66055        self.control_handle.shutdown();
66056        // Safety: drops once, never accessed again
66057        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66058    }
66059}
66060
66061impl fidl::endpoints::Responder for StreamSocketGetIpv6TrafficClassResponder {
66062    type ControlHandle = StreamSocketControlHandle;
66063
66064    fn control_handle(&self) -> &StreamSocketControlHandle {
66065        &self.control_handle
66066    }
66067
66068    fn drop_without_shutdown(mut self) {
66069        // Safety: drops once, never accessed again due to mem::forget
66070        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66071        // Prevent Drop from running (which would shut down the channel)
66072        std::mem::forget(self);
66073    }
66074}
66075
66076impl StreamSocketGetIpv6TrafficClassResponder {
66077    /// Sends a response to the FIDL transaction.
66078    ///
66079    /// Sets the channel to shutdown if an error occurs.
66080    pub fn send(
66081        self,
66082        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
66083    ) -> Result<(), fidl::Error> {
66084        let _result = self.send_raw(result);
66085        if _result.is_err() {
66086            self.control_handle.shutdown();
66087        }
66088        self.drop_without_shutdown();
66089        _result
66090    }
66091
66092    /// Similar to "send" but does not shutdown the channel if an error occurs.
66093    pub fn send_no_shutdown_on_err(
66094        self,
66095        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
66096    ) -> Result<(), fidl::Error> {
66097        let _result = self.send_raw(result);
66098        self.drop_without_shutdown();
66099        _result
66100    }
66101
66102    fn send_raw(
66103        &self,
66104        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
66105    ) -> Result<(), fidl::Error> {
66106        self.control_handle.inner.send::<fidl::encoding::ResultType<
66107            BaseNetworkSocketGetIpv6TrafficClassResponse,
66108            fidl_fuchsia_posix::Errno,
66109        >>(
66110            result.map(|value| (value,)),
66111            self.tx_id,
66112            0x6baf6eed8fc2f04,
66113            fidl::encoding::DynamicFlags::empty(),
66114        )
66115    }
66116}
66117
66118#[must_use = "FIDL methods require a response to be sent"]
66119#[derive(Debug)]
66120pub struct StreamSocketSetIpv6ReceivePacketInfoResponder {
66121    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66122    tx_id: u32,
66123}
66124
66125/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66126/// if the responder is dropped without sending a response, so that the client
66127/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66128impl std::ops::Drop for StreamSocketSetIpv6ReceivePacketInfoResponder {
66129    fn drop(&mut self) {
66130        self.control_handle.shutdown();
66131        // Safety: drops once, never accessed again
66132        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66133    }
66134}
66135
66136impl fidl::endpoints::Responder for StreamSocketSetIpv6ReceivePacketInfoResponder {
66137    type ControlHandle = StreamSocketControlHandle;
66138
66139    fn control_handle(&self) -> &StreamSocketControlHandle {
66140        &self.control_handle
66141    }
66142
66143    fn drop_without_shutdown(mut self) {
66144        // Safety: drops once, never accessed again due to mem::forget
66145        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66146        // Prevent Drop from running (which would shut down the channel)
66147        std::mem::forget(self);
66148    }
66149}
66150
66151impl StreamSocketSetIpv6ReceivePacketInfoResponder {
66152    /// Sends a response to the FIDL transaction.
66153    ///
66154    /// Sets the channel to shutdown if an error occurs.
66155    pub fn send(
66156        self,
66157        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66158    ) -> Result<(), fidl::Error> {
66159        let _result = self.send_raw(result);
66160        if _result.is_err() {
66161            self.control_handle.shutdown();
66162        }
66163        self.drop_without_shutdown();
66164        _result
66165    }
66166
66167    /// Similar to "send" but does not shutdown the channel if an error occurs.
66168    pub fn send_no_shutdown_on_err(
66169        self,
66170        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66171    ) -> Result<(), fidl::Error> {
66172        let _result = self.send_raw(result);
66173        self.drop_without_shutdown();
66174        _result
66175    }
66176
66177    fn send_raw(
66178        &self,
66179        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66180    ) -> Result<(), fidl::Error> {
66181        self.control_handle.inner.send::<fidl::encoding::ResultType<
66182            fidl::encoding::EmptyStruct,
66183            fidl_fuchsia_posix::Errno,
66184        >>(
66185            result,
66186            self.tx_id,
66187            0x19259775b1a92768,
66188            fidl::encoding::DynamicFlags::empty(),
66189        )
66190    }
66191}
66192
66193#[must_use = "FIDL methods require a response to be sent"]
66194#[derive(Debug)]
66195pub struct StreamSocketGetIpv6ReceivePacketInfoResponder {
66196    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66197    tx_id: u32,
66198}
66199
66200/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66201/// if the responder is dropped without sending a response, so that the client
66202/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66203impl std::ops::Drop for StreamSocketGetIpv6ReceivePacketInfoResponder {
66204    fn drop(&mut self) {
66205        self.control_handle.shutdown();
66206        // Safety: drops once, never accessed again
66207        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66208    }
66209}
66210
66211impl fidl::endpoints::Responder for StreamSocketGetIpv6ReceivePacketInfoResponder {
66212    type ControlHandle = StreamSocketControlHandle;
66213
66214    fn control_handle(&self) -> &StreamSocketControlHandle {
66215        &self.control_handle
66216    }
66217
66218    fn drop_without_shutdown(mut self) {
66219        // Safety: drops once, never accessed again due to mem::forget
66220        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66221        // Prevent Drop from running (which would shut down the channel)
66222        std::mem::forget(self);
66223    }
66224}
66225
66226impl StreamSocketGetIpv6ReceivePacketInfoResponder {
66227    /// Sends a response to the FIDL transaction.
66228    ///
66229    /// Sets the channel to shutdown if an error occurs.
66230    pub fn send(
66231        self,
66232        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
66233    ) -> Result<(), fidl::Error> {
66234        let _result = self.send_raw(result);
66235        if _result.is_err() {
66236            self.control_handle.shutdown();
66237        }
66238        self.drop_without_shutdown();
66239        _result
66240    }
66241
66242    /// Similar to "send" but does not shutdown the channel if an error occurs.
66243    pub fn send_no_shutdown_on_err(
66244        self,
66245        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
66246    ) -> Result<(), fidl::Error> {
66247        let _result = self.send_raw(result);
66248        self.drop_without_shutdown();
66249        _result
66250    }
66251
66252    fn send_raw(
66253        &self,
66254        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
66255    ) -> Result<(), fidl::Error> {
66256        self.control_handle.inner.send::<fidl::encoding::ResultType<
66257            BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
66258            fidl_fuchsia_posix::Errno,
66259        >>(
66260            result.map(|value| (value,)),
66261            self.tx_id,
66262            0x7acd4a2775baec75,
66263            fidl::encoding::DynamicFlags::empty(),
66264        )
66265    }
66266}
66267
66268#[must_use = "FIDL methods require a response to be sent"]
66269#[derive(Debug)]
66270pub struct StreamSocketGetOriginalDestinationResponder {
66271    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66272    tx_id: u32,
66273}
66274
66275/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66276/// if the responder is dropped without sending a response, so that the client
66277/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66278impl std::ops::Drop for StreamSocketGetOriginalDestinationResponder {
66279    fn drop(&mut self) {
66280        self.control_handle.shutdown();
66281        // Safety: drops once, never accessed again
66282        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66283    }
66284}
66285
66286impl fidl::endpoints::Responder for StreamSocketGetOriginalDestinationResponder {
66287    type ControlHandle = StreamSocketControlHandle;
66288
66289    fn control_handle(&self) -> &StreamSocketControlHandle {
66290        &self.control_handle
66291    }
66292
66293    fn drop_without_shutdown(mut self) {
66294        // Safety: drops once, never accessed again due to mem::forget
66295        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66296        // Prevent Drop from running (which would shut down the channel)
66297        std::mem::forget(self);
66298    }
66299}
66300
66301impl StreamSocketGetOriginalDestinationResponder {
66302    /// Sends a response to the FIDL transaction.
66303    ///
66304    /// Sets the channel to shutdown if an error occurs.
66305    pub fn send(
66306        self,
66307        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
66308    ) -> Result<(), fidl::Error> {
66309        let _result = self.send_raw(result);
66310        if _result.is_err() {
66311            self.control_handle.shutdown();
66312        }
66313        self.drop_without_shutdown();
66314        _result
66315    }
66316
66317    /// Similar to "send" but does not shutdown the channel if an error occurs.
66318    pub fn send_no_shutdown_on_err(
66319        self,
66320        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
66321    ) -> Result<(), fidl::Error> {
66322        let _result = self.send_raw(result);
66323        self.drop_without_shutdown();
66324        _result
66325    }
66326
66327    fn send_raw(
66328        &self,
66329        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
66330    ) -> Result<(), fidl::Error> {
66331        self.control_handle.inner.send::<fidl::encoding::ResultType<
66332            BaseNetworkSocketGetOriginalDestinationResponse,
66333            fidl_fuchsia_posix::Errno,
66334        >>(
66335            result.map(|value| (value,)),
66336            self.tx_id,
66337            0x38bf28f0dafdbac0,
66338            fidl::encoding::DynamicFlags::empty(),
66339        )
66340    }
66341}
66342
66343#[must_use = "FIDL methods require a response to be sent"]
66344#[derive(Debug)]
66345pub struct StreamSocketDescribeResponder {
66346    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66347    tx_id: u32,
66348}
66349
66350/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66351/// if the responder is dropped without sending a response, so that the client
66352/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66353impl std::ops::Drop for StreamSocketDescribeResponder {
66354    fn drop(&mut self) {
66355        self.control_handle.shutdown();
66356        // Safety: drops once, never accessed again
66357        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66358    }
66359}
66360
66361impl fidl::endpoints::Responder for StreamSocketDescribeResponder {
66362    type ControlHandle = StreamSocketControlHandle;
66363
66364    fn control_handle(&self) -> &StreamSocketControlHandle {
66365        &self.control_handle
66366    }
66367
66368    fn drop_without_shutdown(mut self) {
66369        // Safety: drops once, never accessed again due to mem::forget
66370        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66371        // Prevent Drop from running (which would shut down the channel)
66372        std::mem::forget(self);
66373    }
66374}
66375
66376impl StreamSocketDescribeResponder {
66377    /// Sends a response to the FIDL transaction.
66378    ///
66379    /// Sets the channel to shutdown if an error occurs.
66380    pub fn send(self, mut payload: StreamSocketDescribeResponse) -> Result<(), fidl::Error> {
66381        let _result = self.send_raw(payload);
66382        if _result.is_err() {
66383            self.control_handle.shutdown();
66384        }
66385        self.drop_without_shutdown();
66386        _result
66387    }
66388
66389    /// Similar to "send" but does not shutdown the channel if an error occurs.
66390    pub fn send_no_shutdown_on_err(
66391        self,
66392        mut payload: StreamSocketDescribeResponse,
66393    ) -> Result<(), fidl::Error> {
66394        let _result = self.send_raw(payload);
66395        self.drop_without_shutdown();
66396        _result
66397    }
66398
66399    fn send_raw(&self, mut payload: StreamSocketDescribeResponse) -> Result<(), fidl::Error> {
66400        self.control_handle.inner.send::<StreamSocketDescribeResponse>(
66401            &mut payload,
66402            self.tx_id,
66403            0x29e22969a7dadc32,
66404            fidl::encoding::DynamicFlags::empty(),
66405        )
66406    }
66407}
66408
66409#[must_use = "FIDL methods require a response to be sent"]
66410#[derive(Debug)]
66411pub struct StreamSocketListenResponder {
66412    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66413    tx_id: u32,
66414}
66415
66416/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66417/// if the responder is dropped without sending a response, so that the client
66418/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66419impl std::ops::Drop for StreamSocketListenResponder {
66420    fn drop(&mut self) {
66421        self.control_handle.shutdown();
66422        // Safety: drops once, never accessed again
66423        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66424    }
66425}
66426
66427impl fidl::endpoints::Responder for StreamSocketListenResponder {
66428    type ControlHandle = StreamSocketControlHandle;
66429
66430    fn control_handle(&self) -> &StreamSocketControlHandle {
66431        &self.control_handle
66432    }
66433
66434    fn drop_without_shutdown(mut self) {
66435        // Safety: drops once, never accessed again due to mem::forget
66436        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66437        // Prevent Drop from running (which would shut down the channel)
66438        std::mem::forget(self);
66439    }
66440}
66441
66442impl StreamSocketListenResponder {
66443    /// Sends a response to the FIDL transaction.
66444    ///
66445    /// Sets the channel to shutdown if an error occurs.
66446    pub fn send(
66447        self,
66448        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66449    ) -> Result<(), fidl::Error> {
66450        let _result = self.send_raw(result);
66451        if _result.is_err() {
66452            self.control_handle.shutdown();
66453        }
66454        self.drop_without_shutdown();
66455        _result
66456    }
66457
66458    /// Similar to "send" but does not shutdown the channel if an error occurs.
66459    pub fn send_no_shutdown_on_err(
66460        self,
66461        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66462    ) -> Result<(), fidl::Error> {
66463        let _result = self.send_raw(result);
66464        self.drop_without_shutdown();
66465        _result
66466    }
66467
66468    fn send_raw(
66469        &self,
66470        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66471    ) -> Result<(), fidl::Error> {
66472        self.control_handle.inner.send::<fidl::encoding::ResultType<
66473            fidl::encoding::EmptyStruct,
66474            fidl_fuchsia_posix::Errno,
66475        >>(
66476            result,
66477            self.tx_id,
66478            0x3d0a65ced3d10108,
66479            fidl::encoding::DynamicFlags::empty(),
66480        )
66481    }
66482}
66483
66484#[must_use = "FIDL methods require a response to be sent"]
66485#[derive(Debug)]
66486pub struct StreamSocketAcceptResponder {
66487    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66488    tx_id: u32,
66489}
66490
66491/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66492/// if the responder is dropped without sending a response, so that the client
66493/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66494impl std::ops::Drop for StreamSocketAcceptResponder {
66495    fn drop(&mut self) {
66496        self.control_handle.shutdown();
66497        // Safety: drops once, never accessed again
66498        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66499    }
66500}
66501
66502impl fidl::endpoints::Responder for StreamSocketAcceptResponder {
66503    type ControlHandle = StreamSocketControlHandle;
66504
66505    fn control_handle(&self) -> &StreamSocketControlHandle {
66506        &self.control_handle
66507    }
66508
66509    fn drop_without_shutdown(mut self) {
66510        // Safety: drops once, never accessed again due to mem::forget
66511        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66512        // Prevent Drop from running (which would shut down the channel)
66513        std::mem::forget(self);
66514    }
66515}
66516
66517impl StreamSocketAcceptResponder {
66518    /// Sends a response to the FIDL transaction.
66519    ///
66520    /// Sets the channel to shutdown if an error occurs.
66521    pub fn send(
66522        self,
66523        mut result: Result<
66524            (
66525                Option<&fidl_fuchsia_net::SocketAddress>,
66526                fidl::endpoints::ClientEnd<StreamSocketMarker>,
66527            ),
66528            fidl_fuchsia_posix::Errno,
66529        >,
66530    ) -> Result<(), fidl::Error> {
66531        let _result = self.send_raw(result);
66532        if _result.is_err() {
66533            self.control_handle.shutdown();
66534        }
66535        self.drop_without_shutdown();
66536        _result
66537    }
66538
66539    /// Similar to "send" but does not shutdown the channel if an error occurs.
66540    pub fn send_no_shutdown_on_err(
66541        self,
66542        mut result: Result<
66543            (
66544                Option<&fidl_fuchsia_net::SocketAddress>,
66545                fidl::endpoints::ClientEnd<StreamSocketMarker>,
66546            ),
66547            fidl_fuchsia_posix::Errno,
66548        >,
66549    ) -> Result<(), fidl::Error> {
66550        let _result = self.send_raw(result);
66551        self.drop_without_shutdown();
66552        _result
66553    }
66554
66555    fn send_raw(
66556        &self,
66557        mut result: Result<
66558            (
66559                Option<&fidl_fuchsia_net::SocketAddress>,
66560                fidl::endpoints::ClientEnd<StreamSocketMarker>,
66561            ),
66562            fidl_fuchsia_posix::Errno,
66563        >,
66564    ) -> Result<(), fidl::Error> {
66565        self.control_handle.inner.send::<fidl::encoding::ResultType<
66566            StreamSocketAcceptResponse,
66567            fidl_fuchsia_posix::Errno,
66568        >>(
66569            result,
66570            self.tx_id,
66571            0x5ab7ad620424c163,
66572            fidl::encoding::DynamicFlags::empty(),
66573        )
66574    }
66575}
66576
66577#[must_use = "FIDL methods require a response to be sent"]
66578#[derive(Debug)]
66579pub struct StreamSocketGetInfoResponder {
66580    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66581    tx_id: u32,
66582}
66583
66584/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66585/// if the responder is dropped without sending a response, so that the client
66586/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66587impl std::ops::Drop for StreamSocketGetInfoResponder {
66588    fn drop(&mut self) {
66589        self.control_handle.shutdown();
66590        // Safety: drops once, never accessed again
66591        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66592    }
66593}
66594
66595impl fidl::endpoints::Responder for StreamSocketGetInfoResponder {
66596    type ControlHandle = StreamSocketControlHandle;
66597
66598    fn control_handle(&self) -> &StreamSocketControlHandle {
66599        &self.control_handle
66600    }
66601
66602    fn drop_without_shutdown(mut self) {
66603        // Safety: drops once, never accessed again due to mem::forget
66604        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66605        // Prevent Drop from running (which would shut down the channel)
66606        std::mem::forget(self);
66607    }
66608}
66609
66610impl StreamSocketGetInfoResponder {
66611    /// Sends a response to the FIDL transaction.
66612    ///
66613    /// Sets the channel to shutdown if an error occurs.
66614    pub fn send(
66615        self,
66616        mut result: Result<(Domain, StreamSocketProtocol), fidl_fuchsia_posix::Errno>,
66617    ) -> Result<(), fidl::Error> {
66618        let _result = self.send_raw(result);
66619        if _result.is_err() {
66620            self.control_handle.shutdown();
66621        }
66622        self.drop_without_shutdown();
66623        _result
66624    }
66625
66626    /// Similar to "send" but does not shutdown the channel if an error occurs.
66627    pub fn send_no_shutdown_on_err(
66628        self,
66629        mut result: Result<(Domain, StreamSocketProtocol), fidl_fuchsia_posix::Errno>,
66630    ) -> Result<(), fidl::Error> {
66631        let _result = self.send_raw(result);
66632        self.drop_without_shutdown();
66633        _result
66634    }
66635
66636    fn send_raw(
66637        &self,
66638        mut result: Result<(Domain, StreamSocketProtocol), fidl_fuchsia_posix::Errno>,
66639    ) -> Result<(), fidl::Error> {
66640        self.control_handle.inner.send::<fidl::encoding::ResultType<
66641            StreamSocketGetInfoResponse,
66642            fidl_fuchsia_posix::Errno,
66643        >>(
66644            result,
66645            self.tx_id,
66646            0x87cfa55d19f878f,
66647            fidl::encoding::DynamicFlags::empty(),
66648        )
66649    }
66650}
66651
66652#[must_use = "FIDL methods require a response to be sent"]
66653#[derive(Debug)]
66654pub struct StreamSocketSetTcpNoDelayResponder {
66655    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66656    tx_id: u32,
66657}
66658
66659/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66660/// if the responder is dropped without sending a response, so that the client
66661/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66662impl std::ops::Drop for StreamSocketSetTcpNoDelayResponder {
66663    fn drop(&mut self) {
66664        self.control_handle.shutdown();
66665        // Safety: drops once, never accessed again
66666        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66667    }
66668}
66669
66670impl fidl::endpoints::Responder for StreamSocketSetTcpNoDelayResponder {
66671    type ControlHandle = StreamSocketControlHandle;
66672
66673    fn control_handle(&self) -> &StreamSocketControlHandle {
66674        &self.control_handle
66675    }
66676
66677    fn drop_without_shutdown(mut self) {
66678        // Safety: drops once, never accessed again due to mem::forget
66679        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66680        // Prevent Drop from running (which would shut down the channel)
66681        std::mem::forget(self);
66682    }
66683}
66684
66685impl StreamSocketSetTcpNoDelayResponder {
66686    /// Sends a response to the FIDL transaction.
66687    ///
66688    /// Sets the channel to shutdown if an error occurs.
66689    pub fn send(
66690        self,
66691        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66692    ) -> Result<(), fidl::Error> {
66693        let _result = self.send_raw(result);
66694        if _result.is_err() {
66695            self.control_handle.shutdown();
66696        }
66697        self.drop_without_shutdown();
66698        _result
66699    }
66700
66701    /// Similar to "send" but does not shutdown the channel if an error occurs.
66702    pub fn send_no_shutdown_on_err(
66703        self,
66704        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66705    ) -> Result<(), fidl::Error> {
66706        let _result = self.send_raw(result);
66707        self.drop_without_shutdown();
66708        _result
66709    }
66710
66711    fn send_raw(
66712        &self,
66713        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66714    ) -> Result<(), fidl::Error> {
66715        self.control_handle.inner.send::<fidl::encoding::ResultType<
66716            fidl::encoding::EmptyStruct,
66717            fidl_fuchsia_posix::Errno,
66718        >>(
66719            result,
66720            self.tx_id,
66721            0x5a59b778f7333ada,
66722            fidl::encoding::DynamicFlags::empty(),
66723        )
66724    }
66725}
66726
66727#[must_use = "FIDL methods require a response to be sent"]
66728#[derive(Debug)]
66729pub struct StreamSocketGetTcpNoDelayResponder {
66730    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66731    tx_id: u32,
66732}
66733
66734/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66735/// if the responder is dropped without sending a response, so that the client
66736/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66737impl std::ops::Drop for StreamSocketGetTcpNoDelayResponder {
66738    fn drop(&mut self) {
66739        self.control_handle.shutdown();
66740        // Safety: drops once, never accessed again
66741        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66742    }
66743}
66744
66745impl fidl::endpoints::Responder for StreamSocketGetTcpNoDelayResponder {
66746    type ControlHandle = StreamSocketControlHandle;
66747
66748    fn control_handle(&self) -> &StreamSocketControlHandle {
66749        &self.control_handle
66750    }
66751
66752    fn drop_without_shutdown(mut self) {
66753        // Safety: drops once, never accessed again due to mem::forget
66754        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66755        // Prevent Drop from running (which would shut down the channel)
66756        std::mem::forget(self);
66757    }
66758}
66759
66760impl StreamSocketGetTcpNoDelayResponder {
66761    /// Sends a response to the FIDL transaction.
66762    ///
66763    /// Sets the channel to shutdown if an error occurs.
66764    pub fn send(
66765        self,
66766        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
66767    ) -> Result<(), fidl::Error> {
66768        let _result = self.send_raw(result);
66769        if _result.is_err() {
66770            self.control_handle.shutdown();
66771        }
66772        self.drop_without_shutdown();
66773        _result
66774    }
66775
66776    /// Similar to "send" but does not shutdown the channel if an error occurs.
66777    pub fn send_no_shutdown_on_err(
66778        self,
66779        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
66780    ) -> Result<(), fidl::Error> {
66781        let _result = self.send_raw(result);
66782        self.drop_without_shutdown();
66783        _result
66784    }
66785
66786    fn send_raw(
66787        &self,
66788        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
66789    ) -> Result<(), fidl::Error> {
66790        self.control_handle.inner.send::<fidl::encoding::ResultType<
66791            StreamSocketGetTcpNoDelayResponse,
66792            fidl_fuchsia_posix::Errno,
66793        >>(
66794            result.map(|value| (value,)),
66795            self.tx_id,
66796            0xac219a3218b0799,
66797            fidl::encoding::DynamicFlags::empty(),
66798        )
66799    }
66800}
66801
66802#[must_use = "FIDL methods require a response to be sent"]
66803#[derive(Debug)]
66804pub struct StreamSocketSetTcpMaxSegmentResponder {
66805    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66806    tx_id: u32,
66807}
66808
66809/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66810/// if the responder is dropped without sending a response, so that the client
66811/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66812impl std::ops::Drop for StreamSocketSetTcpMaxSegmentResponder {
66813    fn drop(&mut self) {
66814        self.control_handle.shutdown();
66815        // Safety: drops once, never accessed again
66816        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66817    }
66818}
66819
66820impl fidl::endpoints::Responder for StreamSocketSetTcpMaxSegmentResponder {
66821    type ControlHandle = StreamSocketControlHandle;
66822
66823    fn control_handle(&self) -> &StreamSocketControlHandle {
66824        &self.control_handle
66825    }
66826
66827    fn drop_without_shutdown(mut self) {
66828        // Safety: drops once, never accessed again due to mem::forget
66829        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66830        // Prevent Drop from running (which would shut down the channel)
66831        std::mem::forget(self);
66832    }
66833}
66834
66835impl StreamSocketSetTcpMaxSegmentResponder {
66836    /// Sends a response to the FIDL transaction.
66837    ///
66838    /// Sets the channel to shutdown if an error occurs.
66839    pub fn send(
66840        self,
66841        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66842    ) -> Result<(), fidl::Error> {
66843        let _result = self.send_raw(result);
66844        if _result.is_err() {
66845            self.control_handle.shutdown();
66846        }
66847        self.drop_without_shutdown();
66848        _result
66849    }
66850
66851    /// Similar to "send" but does not shutdown the channel if an error occurs.
66852    pub fn send_no_shutdown_on_err(
66853        self,
66854        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66855    ) -> Result<(), fidl::Error> {
66856        let _result = self.send_raw(result);
66857        self.drop_without_shutdown();
66858        _result
66859    }
66860
66861    fn send_raw(
66862        &self,
66863        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66864    ) -> Result<(), fidl::Error> {
66865        self.control_handle.inner.send::<fidl::encoding::ResultType<
66866            fidl::encoding::EmptyStruct,
66867            fidl_fuchsia_posix::Errno,
66868        >>(
66869            result,
66870            self.tx_id,
66871            0xb3d30c498266d18,
66872            fidl::encoding::DynamicFlags::empty(),
66873        )
66874    }
66875}
66876
66877#[must_use = "FIDL methods require a response to be sent"]
66878#[derive(Debug)]
66879pub struct StreamSocketGetTcpMaxSegmentResponder {
66880    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66881    tx_id: u32,
66882}
66883
66884/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66885/// if the responder is dropped without sending a response, so that the client
66886/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66887impl std::ops::Drop for StreamSocketGetTcpMaxSegmentResponder {
66888    fn drop(&mut self) {
66889        self.control_handle.shutdown();
66890        // Safety: drops once, never accessed again
66891        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66892    }
66893}
66894
66895impl fidl::endpoints::Responder for StreamSocketGetTcpMaxSegmentResponder {
66896    type ControlHandle = StreamSocketControlHandle;
66897
66898    fn control_handle(&self) -> &StreamSocketControlHandle {
66899        &self.control_handle
66900    }
66901
66902    fn drop_without_shutdown(mut self) {
66903        // Safety: drops once, never accessed again due to mem::forget
66904        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66905        // Prevent Drop from running (which would shut down the channel)
66906        std::mem::forget(self);
66907    }
66908}
66909
66910impl StreamSocketGetTcpMaxSegmentResponder {
66911    /// Sends a response to the FIDL transaction.
66912    ///
66913    /// Sets the channel to shutdown if an error occurs.
66914    pub fn send(
66915        self,
66916        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
66917    ) -> Result<(), fidl::Error> {
66918        let _result = self.send_raw(result);
66919        if _result.is_err() {
66920            self.control_handle.shutdown();
66921        }
66922        self.drop_without_shutdown();
66923        _result
66924    }
66925
66926    /// Similar to "send" but does not shutdown the channel if an error occurs.
66927    pub fn send_no_shutdown_on_err(
66928        self,
66929        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
66930    ) -> Result<(), fidl::Error> {
66931        let _result = self.send_raw(result);
66932        self.drop_without_shutdown();
66933        _result
66934    }
66935
66936    fn send_raw(
66937        &self,
66938        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
66939    ) -> Result<(), fidl::Error> {
66940        self.control_handle.inner.send::<fidl::encoding::ResultType<
66941            StreamSocketGetTcpMaxSegmentResponse,
66942            fidl_fuchsia_posix::Errno,
66943        >>(
66944            result.map(|value_bytes| (value_bytes,)),
66945            self.tx_id,
66946            0x637404d1b4b9982c,
66947            fidl::encoding::DynamicFlags::empty(),
66948        )
66949    }
66950}
66951
66952#[must_use = "FIDL methods require a response to be sent"]
66953#[derive(Debug)]
66954pub struct StreamSocketSetTcpCorkResponder {
66955    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66956    tx_id: u32,
66957}
66958
66959/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66960/// if the responder is dropped without sending a response, so that the client
66961/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66962impl std::ops::Drop for StreamSocketSetTcpCorkResponder {
66963    fn drop(&mut self) {
66964        self.control_handle.shutdown();
66965        // Safety: drops once, never accessed again
66966        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66967    }
66968}
66969
66970impl fidl::endpoints::Responder for StreamSocketSetTcpCorkResponder {
66971    type ControlHandle = StreamSocketControlHandle;
66972
66973    fn control_handle(&self) -> &StreamSocketControlHandle {
66974        &self.control_handle
66975    }
66976
66977    fn drop_without_shutdown(mut self) {
66978        // Safety: drops once, never accessed again due to mem::forget
66979        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66980        // Prevent Drop from running (which would shut down the channel)
66981        std::mem::forget(self);
66982    }
66983}
66984
66985impl StreamSocketSetTcpCorkResponder {
66986    /// Sends a response to the FIDL transaction.
66987    ///
66988    /// Sets the channel to shutdown if an error occurs.
66989    pub fn send(
66990        self,
66991        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66992    ) -> Result<(), fidl::Error> {
66993        let _result = self.send_raw(result);
66994        if _result.is_err() {
66995            self.control_handle.shutdown();
66996        }
66997        self.drop_without_shutdown();
66998        _result
66999    }
67000
67001    /// Similar to "send" but does not shutdown the channel if an error occurs.
67002    pub fn send_no_shutdown_on_err(
67003        self,
67004        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67005    ) -> Result<(), fidl::Error> {
67006        let _result = self.send_raw(result);
67007        self.drop_without_shutdown();
67008        _result
67009    }
67010
67011    fn send_raw(
67012        &self,
67013        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67014    ) -> Result<(), fidl::Error> {
67015        self.control_handle.inner.send::<fidl::encoding::ResultType<
67016            fidl::encoding::EmptyStruct,
67017            fidl_fuchsia_posix::Errno,
67018        >>(
67019            result,
67020            self.tx_id,
67021            0x62e26891541143a0,
67022            fidl::encoding::DynamicFlags::empty(),
67023        )
67024    }
67025}
67026
67027#[must_use = "FIDL methods require a response to be sent"]
67028#[derive(Debug)]
67029pub struct StreamSocketGetTcpCorkResponder {
67030    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67031    tx_id: u32,
67032}
67033
67034/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67035/// if the responder is dropped without sending a response, so that the client
67036/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67037impl std::ops::Drop for StreamSocketGetTcpCorkResponder {
67038    fn drop(&mut self) {
67039        self.control_handle.shutdown();
67040        // Safety: drops once, never accessed again
67041        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67042    }
67043}
67044
67045impl fidl::endpoints::Responder for StreamSocketGetTcpCorkResponder {
67046    type ControlHandle = StreamSocketControlHandle;
67047
67048    fn control_handle(&self) -> &StreamSocketControlHandle {
67049        &self.control_handle
67050    }
67051
67052    fn drop_without_shutdown(mut self) {
67053        // Safety: drops once, never accessed again due to mem::forget
67054        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67055        // Prevent Drop from running (which would shut down the channel)
67056        std::mem::forget(self);
67057    }
67058}
67059
67060impl StreamSocketGetTcpCorkResponder {
67061    /// Sends a response to the FIDL transaction.
67062    ///
67063    /// Sets the channel to shutdown if an error occurs.
67064    pub fn send(
67065        self,
67066        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
67067    ) -> Result<(), fidl::Error> {
67068        let _result = self.send_raw(result);
67069        if _result.is_err() {
67070            self.control_handle.shutdown();
67071        }
67072        self.drop_without_shutdown();
67073        _result
67074    }
67075
67076    /// Similar to "send" but does not shutdown the channel if an error occurs.
67077    pub fn send_no_shutdown_on_err(
67078        self,
67079        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
67080    ) -> Result<(), fidl::Error> {
67081        let _result = self.send_raw(result);
67082        self.drop_without_shutdown();
67083        _result
67084    }
67085
67086    fn send_raw(
67087        &self,
67088        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
67089    ) -> Result<(), fidl::Error> {
67090        self.control_handle.inner.send::<fidl::encoding::ResultType<
67091            StreamSocketGetTcpCorkResponse,
67092            fidl_fuchsia_posix::Errno,
67093        >>(
67094            result.map(|value| (value,)),
67095            self.tx_id,
67096            0x435bb232e0e74f32,
67097            fidl::encoding::DynamicFlags::empty(),
67098        )
67099    }
67100}
67101
67102#[must_use = "FIDL methods require a response to be sent"]
67103#[derive(Debug)]
67104pub struct StreamSocketSetTcpKeepAliveIdleResponder {
67105    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67106    tx_id: u32,
67107}
67108
67109/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67110/// if the responder is dropped without sending a response, so that the client
67111/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67112impl std::ops::Drop for StreamSocketSetTcpKeepAliveIdleResponder {
67113    fn drop(&mut self) {
67114        self.control_handle.shutdown();
67115        // Safety: drops once, never accessed again
67116        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67117    }
67118}
67119
67120impl fidl::endpoints::Responder for StreamSocketSetTcpKeepAliveIdleResponder {
67121    type ControlHandle = StreamSocketControlHandle;
67122
67123    fn control_handle(&self) -> &StreamSocketControlHandle {
67124        &self.control_handle
67125    }
67126
67127    fn drop_without_shutdown(mut self) {
67128        // Safety: drops once, never accessed again due to mem::forget
67129        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67130        // Prevent Drop from running (which would shut down the channel)
67131        std::mem::forget(self);
67132    }
67133}
67134
67135impl StreamSocketSetTcpKeepAliveIdleResponder {
67136    /// Sends a response to the FIDL transaction.
67137    ///
67138    /// Sets the channel to shutdown if an error occurs.
67139    pub fn send(
67140        self,
67141        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67142    ) -> Result<(), fidl::Error> {
67143        let _result = self.send_raw(result);
67144        if _result.is_err() {
67145            self.control_handle.shutdown();
67146        }
67147        self.drop_without_shutdown();
67148        _result
67149    }
67150
67151    /// Similar to "send" but does not shutdown the channel if an error occurs.
67152    pub fn send_no_shutdown_on_err(
67153        self,
67154        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67155    ) -> Result<(), fidl::Error> {
67156        let _result = self.send_raw(result);
67157        self.drop_without_shutdown();
67158        _result
67159    }
67160
67161    fn send_raw(
67162        &self,
67163        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67164    ) -> Result<(), fidl::Error> {
67165        self.control_handle.inner.send::<fidl::encoding::ResultType<
67166            fidl::encoding::EmptyStruct,
67167            fidl_fuchsia_posix::Errno,
67168        >>(
67169            result,
67170            self.tx_id,
67171            0x196d053d8363c42,
67172            fidl::encoding::DynamicFlags::empty(),
67173        )
67174    }
67175}
67176
67177#[must_use = "FIDL methods require a response to be sent"]
67178#[derive(Debug)]
67179pub struct StreamSocketGetTcpKeepAliveIdleResponder {
67180    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67181    tx_id: u32,
67182}
67183
67184/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67185/// if the responder is dropped without sending a response, so that the client
67186/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67187impl std::ops::Drop for StreamSocketGetTcpKeepAliveIdleResponder {
67188    fn drop(&mut self) {
67189        self.control_handle.shutdown();
67190        // Safety: drops once, never accessed again
67191        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67192    }
67193}
67194
67195impl fidl::endpoints::Responder for StreamSocketGetTcpKeepAliveIdleResponder {
67196    type ControlHandle = StreamSocketControlHandle;
67197
67198    fn control_handle(&self) -> &StreamSocketControlHandle {
67199        &self.control_handle
67200    }
67201
67202    fn drop_without_shutdown(mut self) {
67203        // Safety: drops once, never accessed again due to mem::forget
67204        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67205        // Prevent Drop from running (which would shut down the channel)
67206        std::mem::forget(self);
67207    }
67208}
67209
67210impl StreamSocketGetTcpKeepAliveIdleResponder {
67211    /// Sends a response to the FIDL transaction.
67212    ///
67213    /// Sets the channel to shutdown if an error occurs.
67214    pub fn send(
67215        self,
67216        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
67217    ) -> Result<(), fidl::Error> {
67218        let _result = self.send_raw(result);
67219        if _result.is_err() {
67220            self.control_handle.shutdown();
67221        }
67222        self.drop_without_shutdown();
67223        _result
67224    }
67225
67226    /// Similar to "send" but does not shutdown the channel if an error occurs.
67227    pub fn send_no_shutdown_on_err(
67228        self,
67229        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
67230    ) -> Result<(), fidl::Error> {
67231        let _result = self.send_raw(result);
67232        self.drop_without_shutdown();
67233        _result
67234    }
67235
67236    fn send_raw(
67237        &self,
67238        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
67239    ) -> Result<(), fidl::Error> {
67240        self.control_handle.inner.send::<fidl::encoding::ResultType<
67241            StreamSocketGetTcpKeepAliveIdleResponse,
67242            fidl_fuchsia_posix::Errno,
67243        >>(
67244            result.map(|value_secs| (value_secs,)),
67245            self.tx_id,
67246            0x35ec58564879dac,
67247            fidl::encoding::DynamicFlags::empty(),
67248        )
67249    }
67250}
67251
67252#[must_use = "FIDL methods require a response to be sent"]
67253#[derive(Debug)]
67254pub struct StreamSocketSetTcpKeepAliveIntervalResponder {
67255    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67256    tx_id: u32,
67257}
67258
67259/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67260/// if the responder is dropped without sending a response, so that the client
67261/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67262impl std::ops::Drop for StreamSocketSetTcpKeepAliveIntervalResponder {
67263    fn drop(&mut self) {
67264        self.control_handle.shutdown();
67265        // Safety: drops once, never accessed again
67266        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67267    }
67268}
67269
67270impl fidl::endpoints::Responder for StreamSocketSetTcpKeepAliveIntervalResponder {
67271    type ControlHandle = StreamSocketControlHandle;
67272
67273    fn control_handle(&self) -> &StreamSocketControlHandle {
67274        &self.control_handle
67275    }
67276
67277    fn drop_without_shutdown(mut self) {
67278        // Safety: drops once, never accessed again due to mem::forget
67279        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67280        // Prevent Drop from running (which would shut down the channel)
67281        std::mem::forget(self);
67282    }
67283}
67284
67285impl StreamSocketSetTcpKeepAliveIntervalResponder {
67286    /// Sends a response to the FIDL transaction.
67287    ///
67288    /// Sets the channel to shutdown if an error occurs.
67289    pub fn send(
67290        self,
67291        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67292    ) -> Result<(), fidl::Error> {
67293        let _result = self.send_raw(result);
67294        if _result.is_err() {
67295            self.control_handle.shutdown();
67296        }
67297        self.drop_without_shutdown();
67298        _result
67299    }
67300
67301    /// Similar to "send" but does not shutdown the channel if an error occurs.
67302    pub fn send_no_shutdown_on_err(
67303        self,
67304        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67305    ) -> Result<(), fidl::Error> {
67306        let _result = self.send_raw(result);
67307        self.drop_without_shutdown();
67308        _result
67309    }
67310
67311    fn send_raw(
67312        &self,
67313        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67314    ) -> Result<(), fidl::Error> {
67315        self.control_handle.inner.send::<fidl::encoding::ResultType<
67316            fidl::encoding::EmptyStruct,
67317            fidl_fuchsia_posix::Errno,
67318        >>(
67319            result,
67320            self.tx_id,
67321            0x485ffbc2da1243f2,
67322            fidl::encoding::DynamicFlags::empty(),
67323        )
67324    }
67325}
67326
67327#[must_use = "FIDL methods require a response to be sent"]
67328#[derive(Debug)]
67329pub struct StreamSocketGetTcpKeepAliveIntervalResponder {
67330    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67331    tx_id: u32,
67332}
67333
67334/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67335/// if the responder is dropped without sending a response, so that the client
67336/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67337impl std::ops::Drop for StreamSocketGetTcpKeepAliveIntervalResponder {
67338    fn drop(&mut self) {
67339        self.control_handle.shutdown();
67340        // Safety: drops once, never accessed again
67341        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67342    }
67343}
67344
67345impl fidl::endpoints::Responder for StreamSocketGetTcpKeepAliveIntervalResponder {
67346    type ControlHandle = StreamSocketControlHandle;
67347
67348    fn control_handle(&self) -> &StreamSocketControlHandle {
67349        &self.control_handle
67350    }
67351
67352    fn drop_without_shutdown(mut self) {
67353        // Safety: drops once, never accessed again due to mem::forget
67354        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67355        // Prevent Drop from running (which would shut down the channel)
67356        std::mem::forget(self);
67357    }
67358}
67359
67360impl StreamSocketGetTcpKeepAliveIntervalResponder {
67361    /// Sends a response to the FIDL transaction.
67362    ///
67363    /// Sets the channel to shutdown if an error occurs.
67364    pub fn send(
67365        self,
67366        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
67367    ) -> Result<(), fidl::Error> {
67368        let _result = self.send_raw(result);
67369        if _result.is_err() {
67370            self.control_handle.shutdown();
67371        }
67372        self.drop_without_shutdown();
67373        _result
67374    }
67375
67376    /// Similar to "send" but does not shutdown the channel if an error occurs.
67377    pub fn send_no_shutdown_on_err(
67378        self,
67379        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
67380    ) -> Result<(), fidl::Error> {
67381        let _result = self.send_raw(result);
67382        self.drop_without_shutdown();
67383        _result
67384    }
67385
67386    fn send_raw(
67387        &self,
67388        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
67389    ) -> Result<(), fidl::Error> {
67390        self.control_handle.inner.send::<fidl::encoding::ResultType<
67391            StreamSocketGetTcpKeepAliveIntervalResponse,
67392            fidl_fuchsia_posix::Errno,
67393        >>(
67394            result.map(|value_secs| (value_secs,)),
67395            self.tx_id,
67396            0x264eaf46306b284,
67397            fidl::encoding::DynamicFlags::empty(),
67398        )
67399    }
67400}
67401
67402#[must_use = "FIDL methods require a response to be sent"]
67403#[derive(Debug)]
67404pub struct StreamSocketSetTcpKeepAliveCountResponder {
67405    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67406    tx_id: u32,
67407}
67408
67409/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67410/// if the responder is dropped without sending a response, so that the client
67411/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67412impl std::ops::Drop for StreamSocketSetTcpKeepAliveCountResponder {
67413    fn drop(&mut self) {
67414        self.control_handle.shutdown();
67415        // Safety: drops once, never accessed again
67416        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67417    }
67418}
67419
67420impl fidl::endpoints::Responder for StreamSocketSetTcpKeepAliveCountResponder {
67421    type ControlHandle = StreamSocketControlHandle;
67422
67423    fn control_handle(&self) -> &StreamSocketControlHandle {
67424        &self.control_handle
67425    }
67426
67427    fn drop_without_shutdown(mut self) {
67428        // Safety: drops once, never accessed again due to mem::forget
67429        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67430        // Prevent Drop from running (which would shut down the channel)
67431        std::mem::forget(self);
67432    }
67433}
67434
67435impl StreamSocketSetTcpKeepAliveCountResponder {
67436    /// Sends a response to the FIDL transaction.
67437    ///
67438    /// Sets the channel to shutdown if an error occurs.
67439    pub fn send(
67440        self,
67441        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67442    ) -> Result<(), fidl::Error> {
67443        let _result = self.send_raw(result);
67444        if _result.is_err() {
67445            self.control_handle.shutdown();
67446        }
67447        self.drop_without_shutdown();
67448        _result
67449    }
67450
67451    /// Similar to "send" but does not shutdown the channel if an error occurs.
67452    pub fn send_no_shutdown_on_err(
67453        self,
67454        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67455    ) -> Result<(), fidl::Error> {
67456        let _result = self.send_raw(result);
67457        self.drop_without_shutdown();
67458        _result
67459    }
67460
67461    fn send_raw(
67462        &self,
67463        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67464    ) -> Result<(), fidl::Error> {
67465        self.control_handle.inner.send::<fidl::encoding::ResultType<
67466            fidl::encoding::EmptyStruct,
67467            fidl_fuchsia_posix::Errno,
67468        >>(
67469            result,
67470            self.tx_id,
67471            0x2ab2e8c111708421,
67472            fidl::encoding::DynamicFlags::empty(),
67473        )
67474    }
67475}
67476
67477#[must_use = "FIDL methods require a response to be sent"]
67478#[derive(Debug)]
67479pub struct StreamSocketGetTcpKeepAliveCountResponder {
67480    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67481    tx_id: u32,
67482}
67483
67484/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67485/// if the responder is dropped without sending a response, so that the client
67486/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67487impl std::ops::Drop for StreamSocketGetTcpKeepAliveCountResponder {
67488    fn drop(&mut self) {
67489        self.control_handle.shutdown();
67490        // Safety: drops once, never accessed again
67491        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67492    }
67493}
67494
67495impl fidl::endpoints::Responder for StreamSocketGetTcpKeepAliveCountResponder {
67496    type ControlHandle = StreamSocketControlHandle;
67497
67498    fn control_handle(&self) -> &StreamSocketControlHandle {
67499        &self.control_handle
67500    }
67501
67502    fn drop_without_shutdown(mut self) {
67503        // Safety: drops once, never accessed again due to mem::forget
67504        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67505        // Prevent Drop from running (which would shut down the channel)
67506        std::mem::forget(self);
67507    }
67508}
67509
67510impl StreamSocketGetTcpKeepAliveCountResponder {
67511    /// Sends a response to the FIDL transaction.
67512    ///
67513    /// Sets the channel to shutdown if an error occurs.
67514    pub fn send(
67515        self,
67516        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
67517    ) -> Result<(), fidl::Error> {
67518        let _result = self.send_raw(result);
67519        if _result.is_err() {
67520            self.control_handle.shutdown();
67521        }
67522        self.drop_without_shutdown();
67523        _result
67524    }
67525
67526    /// Similar to "send" but does not shutdown the channel if an error occurs.
67527    pub fn send_no_shutdown_on_err(
67528        self,
67529        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
67530    ) -> Result<(), fidl::Error> {
67531        let _result = self.send_raw(result);
67532        self.drop_without_shutdown();
67533        _result
67534    }
67535
67536    fn send_raw(
67537        &self,
67538        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
67539    ) -> Result<(), fidl::Error> {
67540        self.control_handle.inner.send::<fidl::encoding::ResultType<
67541            StreamSocketGetTcpKeepAliveCountResponse,
67542            fidl_fuchsia_posix::Errno,
67543        >>(
67544            result.map(|value| (value,)),
67545            self.tx_id,
67546            0x2f176ae271fe7a09,
67547            fidl::encoding::DynamicFlags::empty(),
67548        )
67549    }
67550}
67551
67552#[must_use = "FIDL methods require a response to be sent"]
67553#[derive(Debug)]
67554pub struct StreamSocketSetTcpSynCountResponder {
67555    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67556    tx_id: u32,
67557}
67558
67559/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67560/// if the responder is dropped without sending a response, so that the client
67561/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67562impl std::ops::Drop for StreamSocketSetTcpSynCountResponder {
67563    fn drop(&mut self) {
67564        self.control_handle.shutdown();
67565        // Safety: drops once, never accessed again
67566        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67567    }
67568}
67569
67570impl fidl::endpoints::Responder for StreamSocketSetTcpSynCountResponder {
67571    type ControlHandle = StreamSocketControlHandle;
67572
67573    fn control_handle(&self) -> &StreamSocketControlHandle {
67574        &self.control_handle
67575    }
67576
67577    fn drop_without_shutdown(mut self) {
67578        // Safety: drops once, never accessed again due to mem::forget
67579        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67580        // Prevent Drop from running (which would shut down the channel)
67581        std::mem::forget(self);
67582    }
67583}
67584
67585impl StreamSocketSetTcpSynCountResponder {
67586    /// Sends a response to the FIDL transaction.
67587    ///
67588    /// Sets the channel to shutdown if an error occurs.
67589    pub fn send(
67590        self,
67591        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67592    ) -> Result<(), fidl::Error> {
67593        let _result = self.send_raw(result);
67594        if _result.is_err() {
67595            self.control_handle.shutdown();
67596        }
67597        self.drop_without_shutdown();
67598        _result
67599    }
67600
67601    /// Similar to "send" but does not shutdown the channel if an error occurs.
67602    pub fn send_no_shutdown_on_err(
67603        self,
67604        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67605    ) -> Result<(), fidl::Error> {
67606        let _result = self.send_raw(result);
67607        self.drop_without_shutdown();
67608        _result
67609    }
67610
67611    fn send_raw(
67612        &self,
67613        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67614    ) -> Result<(), fidl::Error> {
67615        self.control_handle.inner.send::<fidl::encoding::ResultType<
67616            fidl::encoding::EmptyStruct,
67617            fidl_fuchsia_posix::Errno,
67618        >>(
67619            result,
67620            self.tx_id,
67621            0x4dcd6ab5573c1eb3,
67622            fidl::encoding::DynamicFlags::empty(),
67623        )
67624    }
67625}
67626
67627#[must_use = "FIDL methods require a response to be sent"]
67628#[derive(Debug)]
67629pub struct StreamSocketGetTcpSynCountResponder {
67630    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67631    tx_id: u32,
67632}
67633
67634/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67635/// if the responder is dropped without sending a response, so that the client
67636/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67637impl std::ops::Drop for StreamSocketGetTcpSynCountResponder {
67638    fn drop(&mut self) {
67639        self.control_handle.shutdown();
67640        // Safety: drops once, never accessed again
67641        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67642    }
67643}
67644
67645impl fidl::endpoints::Responder for StreamSocketGetTcpSynCountResponder {
67646    type ControlHandle = StreamSocketControlHandle;
67647
67648    fn control_handle(&self) -> &StreamSocketControlHandle {
67649        &self.control_handle
67650    }
67651
67652    fn drop_without_shutdown(mut self) {
67653        // Safety: drops once, never accessed again due to mem::forget
67654        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67655        // Prevent Drop from running (which would shut down the channel)
67656        std::mem::forget(self);
67657    }
67658}
67659
67660impl StreamSocketGetTcpSynCountResponder {
67661    /// Sends a response to the FIDL transaction.
67662    ///
67663    /// Sets the channel to shutdown if an error occurs.
67664    pub fn send(
67665        self,
67666        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
67667    ) -> Result<(), fidl::Error> {
67668        let _result = self.send_raw(result);
67669        if _result.is_err() {
67670            self.control_handle.shutdown();
67671        }
67672        self.drop_without_shutdown();
67673        _result
67674    }
67675
67676    /// Similar to "send" but does not shutdown the channel if an error occurs.
67677    pub fn send_no_shutdown_on_err(
67678        self,
67679        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
67680    ) -> Result<(), fidl::Error> {
67681        let _result = self.send_raw(result);
67682        self.drop_without_shutdown();
67683        _result
67684    }
67685
67686    fn send_raw(
67687        &self,
67688        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
67689    ) -> Result<(), fidl::Error> {
67690        self.control_handle.inner.send::<fidl::encoding::ResultType<
67691            StreamSocketGetTcpSynCountResponse,
67692            fidl_fuchsia_posix::Errno,
67693        >>(
67694            result.map(|value| (value,)),
67695            self.tx_id,
67696            0x7d457cba8f5f3ee6,
67697            fidl::encoding::DynamicFlags::empty(),
67698        )
67699    }
67700}
67701
67702#[must_use = "FIDL methods require a response to be sent"]
67703#[derive(Debug)]
67704pub struct StreamSocketSetTcpLingerResponder {
67705    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67706    tx_id: u32,
67707}
67708
67709/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67710/// if the responder is dropped without sending a response, so that the client
67711/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67712impl std::ops::Drop for StreamSocketSetTcpLingerResponder {
67713    fn drop(&mut self) {
67714        self.control_handle.shutdown();
67715        // Safety: drops once, never accessed again
67716        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67717    }
67718}
67719
67720impl fidl::endpoints::Responder for StreamSocketSetTcpLingerResponder {
67721    type ControlHandle = StreamSocketControlHandle;
67722
67723    fn control_handle(&self) -> &StreamSocketControlHandle {
67724        &self.control_handle
67725    }
67726
67727    fn drop_without_shutdown(mut self) {
67728        // Safety: drops once, never accessed again due to mem::forget
67729        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67730        // Prevent Drop from running (which would shut down the channel)
67731        std::mem::forget(self);
67732    }
67733}
67734
67735impl StreamSocketSetTcpLingerResponder {
67736    /// Sends a response to the FIDL transaction.
67737    ///
67738    /// Sets the channel to shutdown if an error occurs.
67739    pub fn send(
67740        self,
67741        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67742    ) -> Result<(), fidl::Error> {
67743        let _result = self.send_raw(result);
67744        if _result.is_err() {
67745            self.control_handle.shutdown();
67746        }
67747        self.drop_without_shutdown();
67748        _result
67749    }
67750
67751    /// Similar to "send" but does not shutdown the channel if an error occurs.
67752    pub fn send_no_shutdown_on_err(
67753        self,
67754        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67755    ) -> Result<(), fidl::Error> {
67756        let _result = self.send_raw(result);
67757        self.drop_without_shutdown();
67758        _result
67759    }
67760
67761    fn send_raw(
67762        &self,
67763        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67764    ) -> Result<(), fidl::Error> {
67765        self.control_handle.inner.send::<fidl::encoding::ResultType<
67766            fidl::encoding::EmptyStruct,
67767            fidl_fuchsia_posix::Errno,
67768        >>(
67769            result,
67770            self.tx_id,
67771            0xd5cc1e8654d36e4,
67772            fidl::encoding::DynamicFlags::empty(),
67773        )
67774    }
67775}
67776
67777#[must_use = "FIDL methods require a response to be sent"]
67778#[derive(Debug)]
67779pub struct StreamSocketGetTcpLingerResponder {
67780    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67781    tx_id: u32,
67782}
67783
67784/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67785/// if the responder is dropped without sending a response, so that the client
67786/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67787impl std::ops::Drop for StreamSocketGetTcpLingerResponder {
67788    fn drop(&mut self) {
67789        self.control_handle.shutdown();
67790        // Safety: drops once, never accessed again
67791        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67792    }
67793}
67794
67795impl fidl::endpoints::Responder for StreamSocketGetTcpLingerResponder {
67796    type ControlHandle = StreamSocketControlHandle;
67797
67798    fn control_handle(&self) -> &StreamSocketControlHandle {
67799        &self.control_handle
67800    }
67801
67802    fn drop_without_shutdown(mut self) {
67803        // Safety: drops once, never accessed again due to mem::forget
67804        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67805        // Prevent Drop from running (which would shut down the channel)
67806        std::mem::forget(self);
67807    }
67808}
67809
67810impl StreamSocketGetTcpLingerResponder {
67811    /// Sends a response to the FIDL transaction.
67812    ///
67813    /// Sets the channel to shutdown if an error occurs.
67814    pub fn send(
67815        self,
67816        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
67817    ) -> Result<(), fidl::Error> {
67818        let _result = self.send_raw(result);
67819        if _result.is_err() {
67820            self.control_handle.shutdown();
67821        }
67822        self.drop_without_shutdown();
67823        _result
67824    }
67825
67826    /// Similar to "send" but does not shutdown the channel if an error occurs.
67827    pub fn send_no_shutdown_on_err(
67828        self,
67829        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
67830    ) -> Result<(), fidl::Error> {
67831        let _result = self.send_raw(result);
67832        self.drop_without_shutdown();
67833        _result
67834    }
67835
67836    fn send_raw(
67837        &self,
67838        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
67839    ) -> Result<(), fidl::Error> {
67840        self.control_handle.inner.send::<fidl::encoding::ResultType<
67841            StreamSocketGetTcpLingerResponse,
67842            fidl_fuchsia_posix::Errno,
67843        >>(
67844            result.map(|value_secs| (value_secs,)),
67845            self.tx_id,
67846            0xad870d311cf30eb,
67847            fidl::encoding::DynamicFlags::empty(),
67848        )
67849    }
67850}
67851
67852#[must_use = "FIDL methods require a response to be sent"]
67853#[derive(Debug)]
67854pub struct StreamSocketSetTcpDeferAcceptResponder {
67855    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67856    tx_id: u32,
67857}
67858
67859/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67860/// if the responder is dropped without sending a response, so that the client
67861/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67862impl std::ops::Drop for StreamSocketSetTcpDeferAcceptResponder {
67863    fn drop(&mut self) {
67864        self.control_handle.shutdown();
67865        // Safety: drops once, never accessed again
67866        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67867    }
67868}
67869
67870impl fidl::endpoints::Responder for StreamSocketSetTcpDeferAcceptResponder {
67871    type ControlHandle = StreamSocketControlHandle;
67872
67873    fn control_handle(&self) -> &StreamSocketControlHandle {
67874        &self.control_handle
67875    }
67876
67877    fn drop_without_shutdown(mut self) {
67878        // Safety: drops once, never accessed again due to mem::forget
67879        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67880        // Prevent Drop from running (which would shut down the channel)
67881        std::mem::forget(self);
67882    }
67883}
67884
67885impl StreamSocketSetTcpDeferAcceptResponder {
67886    /// Sends a response to the FIDL transaction.
67887    ///
67888    /// Sets the channel to shutdown if an error occurs.
67889    pub fn send(
67890        self,
67891        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67892    ) -> Result<(), fidl::Error> {
67893        let _result = self.send_raw(result);
67894        if _result.is_err() {
67895            self.control_handle.shutdown();
67896        }
67897        self.drop_without_shutdown();
67898        _result
67899    }
67900
67901    /// Similar to "send" but does not shutdown the channel if an error occurs.
67902    pub fn send_no_shutdown_on_err(
67903        self,
67904        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67905    ) -> Result<(), fidl::Error> {
67906        let _result = self.send_raw(result);
67907        self.drop_without_shutdown();
67908        _result
67909    }
67910
67911    fn send_raw(
67912        &self,
67913        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67914    ) -> Result<(), fidl::Error> {
67915        self.control_handle.inner.send::<fidl::encoding::ResultType<
67916            fidl::encoding::EmptyStruct,
67917            fidl_fuchsia_posix::Errno,
67918        >>(
67919            result,
67920            self.tx_id,
67921            0x15092f181e57c404,
67922            fidl::encoding::DynamicFlags::empty(),
67923        )
67924    }
67925}
67926
67927#[must_use = "FIDL methods require a response to be sent"]
67928#[derive(Debug)]
67929pub struct StreamSocketGetTcpDeferAcceptResponder {
67930    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67931    tx_id: u32,
67932}
67933
67934/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67935/// if the responder is dropped without sending a response, so that the client
67936/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67937impl std::ops::Drop for StreamSocketGetTcpDeferAcceptResponder {
67938    fn drop(&mut self) {
67939        self.control_handle.shutdown();
67940        // Safety: drops once, never accessed again
67941        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67942    }
67943}
67944
67945impl fidl::endpoints::Responder for StreamSocketGetTcpDeferAcceptResponder {
67946    type ControlHandle = StreamSocketControlHandle;
67947
67948    fn control_handle(&self) -> &StreamSocketControlHandle {
67949        &self.control_handle
67950    }
67951
67952    fn drop_without_shutdown(mut self) {
67953        // Safety: drops once, never accessed again due to mem::forget
67954        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67955        // Prevent Drop from running (which would shut down the channel)
67956        std::mem::forget(self);
67957    }
67958}
67959
67960impl StreamSocketGetTcpDeferAcceptResponder {
67961    /// Sends a response to the FIDL transaction.
67962    ///
67963    /// Sets the channel to shutdown if an error occurs.
67964    pub fn send(
67965        self,
67966        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
67967    ) -> Result<(), fidl::Error> {
67968        let _result = self.send_raw(result);
67969        if _result.is_err() {
67970            self.control_handle.shutdown();
67971        }
67972        self.drop_without_shutdown();
67973        _result
67974    }
67975
67976    /// Similar to "send" but does not shutdown the channel if an error occurs.
67977    pub fn send_no_shutdown_on_err(
67978        self,
67979        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
67980    ) -> Result<(), fidl::Error> {
67981        let _result = self.send_raw(result);
67982        self.drop_without_shutdown();
67983        _result
67984    }
67985
67986    fn send_raw(
67987        &self,
67988        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
67989    ) -> Result<(), fidl::Error> {
67990        self.control_handle.inner.send::<fidl::encoding::ResultType<
67991            StreamSocketGetTcpDeferAcceptResponse,
67992            fidl_fuchsia_posix::Errno,
67993        >>(
67994            result.map(|value_secs| (value_secs,)),
67995            self.tx_id,
67996            0x64589790842cb7c6,
67997            fidl::encoding::DynamicFlags::empty(),
67998        )
67999    }
68000}
68001
68002#[must_use = "FIDL methods require a response to be sent"]
68003#[derive(Debug)]
68004pub struct StreamSocketSetTcpWindowClampResponder {
68005    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
68006    tx_id: u32,
68007}
68008
68009/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
68010/// if the responder is dropped without sending a response, so that the client
68011/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
68012impl std::ops::Drop for StreamSocketSetTcpWindowClampResponder {
68013    fn drop(&mut self) {
68014        self.control_handle.shutdown();
68015        // Safety: drops once, never accessed again
68016        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68017    }
68018}
68019
68020impl fidl::endpoints::Responder for StreamSocketSetTcpWindowClampResponder {
68021    type ControlHandle = StreamSocketControlHandle;
68022
68023    fn control_handle(&self) -> &StreamSocketControlHandle {
68024        &self.control_handle
68025    }
68026
68027    fn drop_without_shutdown(mut self) {
68028        // Safety: drops once, never accessed again due to mem::forget
68029        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68030        // Prevent Drop from running (which would shut down the channel)
68031        std::mem::forget(self);
68032    }
68033}
68034
68035impl StreamSocketSetTcpWindowClampResponder {
68036    /// Sends a response to the FIDL transaction.
68037    ///
68038    /// Sets the channel to shutdown if an error occurs.
68039    pub fn send(
68040        self,
68041        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68042    ) -> Result<(), fidl::Error> {
68043        let _result = self.send_raw(result);
68044        if _result.is_err() {
68045            self.control_handle.shutdown();
68046        }
68047        self.drop_without_shutdown();
68048        _result
68049    }
68050
68051    /// Similar to "send" but does not shutdown the channel if an error occurs.
68052    pub fn send_no_shutdown_on_err(
68053        self,
68054        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68055    ) -> Result<(), fidl::Error> {
68056        let _result = self.send_raw(result);
68057        self.drop_without_shutdown();
68058        _result
68059    }
68060
68061    fn send_raw(
68062        &self,
68063        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68064    ) -> Result<(), fidl::Error> {
68065        self.control_handle.inner.send::<fidl::encoding::ResultType<
68066            fidl::encoding::EmptyStruct,
68067            fidl_fuchsia_posix::Errno,
68068        >>(
68069            result,
68070            self.tx_id,
68071            0x4a26ce07d847f1c6,
68072            fidl::encoding::DynamicFlags::empty(),
68073        )
68074    }
68075}
68076
68077#[must_use = "FIDL methods require a response to be sent"]
68078#[derive(Debug)]
68079pub struct StreamSocketGetTcpWindowClampResponder {
68080    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
68081    tx_id: u32,
68082}
68083
68084/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
68085/// if the responder is dropped without sending a response, so that the client
68086/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
68087impl std::ops::Drop for StreamSocketGetTcpWindowClampResponder {
68088    fn drop(&mut self) {
68089        self.control_handle.shutdown();
68090        // Safety: drops once, never accessed again
68091        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68092    }
68093}
68094
68095impl fidl::endpoints::Responder for StreamSocketGetTcpWindowClampResponder {
68096    type ControlHandle = StreamSocketControlHandle;
68097
68098    fn control_handle(&self) -> &StreamSocketControlHandle {
68099        &self.control_handle
68100    }
68101
68102    fn drop_without_shutdown(mut self) {
68103        // Safety: drops once, never accessed again due to mem::forget
68104        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68105        // Prevent Drop from running (which would shut down the channel)
68106        std::mem::forget(self);
68107    }
68108}
68109
68110impl StreamSocketGetTcpWindowClampResponder {
68111    /// Sends a response to the FIDL transaction.
68112    ///
68113    /// Sets the channel to shutdown if an error occurs.
68114    pub fn send(
68115        self,
68116        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
68117    ) -> Result<(), fidl::Error> {
68118        let _result = self.send_raw(result);
68119        if _result.is_err() {
68120            self.control_handle.shutdown();
68121        }
68122        self.drop_without_shutdown();
68123        _result
68124    }
68125
68126    /// Similar to "send" but does not shutdown the channel if an error occurs.
68127    pub fn send_no_shutdown_on_err(
68128        self,
68129        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
68130    ) -> Result<(), fidl::Error> {
68131        let _result = self.send_raw(result);
68132        self.drop_without_shutdown();
68133        _result
68134    }
68135
68136    fn send_raw(
68137        &self,
68138        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
68139    ) -> Result<(), fidl::Error> {
68140        self.control_handle.inner.send::<fidl::encoding::ResultType<
68141            StreamSocketGetTcpWindowClampResponse,
68142            fidl_fuchsia_posix::Errno,
68143        >>(
68144            result.map(|value| (value,)),
68145            self.tx_id,
68146            0x2df6b636bf0a6a4e,
68147            fidl::encoding::DynamicFlags::empty(),
68148        )
68149    }
68150}
68151
68152#[must_use = "FIDL methods require a response to be sent"]
68153#[derive(Debug)]
68154pub struct StreamSocketGetTcpInfoResponder {
68155    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
68156    tx_id: u32,
68157}
68158
68159/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
68160/// if the responder is dropped without sending a response, so that the client
68161/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
68162impl std::ops::Drop for StreamSocketGetTcpInfoResponder {
68163    fn drop(&mut self) {
68164        self.control_handle.shutdown();
68165        // Safety: drops once, never accessed again
68166        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68167    }
68168}
68169
68170impl fidl::endpoints::Responder for StreamSocketGetTcpInfoResponder {
68171    type ControlHandle = StreamSocketControlHandle;
68172
68173    fn control_handle(&self) -> &StreamSocketControlHandle {
68174        &self.control_handle
68175    }
68176
68177    fn drop_without_shutdown(mut self) {
68178        // Safety: drops once, never accessed again due to mem::forget
68179        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68180        // Prevent Drop from running (which would shut down the channel)
68181        std::mem::forget(self);
68182    }
68183}
68184
68185impl StreamSocketGetTcpInfoResponder {
68186    /// Sends a response to the FIDL transaction.
68187    ///
68188    /// Sets the channel to shutdown if an error occurs.
68189    pub fn send(
68190        self,
68191        mut result: Result<&TcpInfo, fidl_fuchsia_posix::Errno>,
68192    ) -> Result<(), fidl::Error> {
68193        let _result = self.send_raw(result);
68194        if _result.is_err() {
68195            self.control_handle.shutdown();
68196        }
68197        self.drop_without_shutdown();
68198        _result
68199    }
68200
68201    /// Similar to "send" but does not shutdown the channel if an error occurs.
68202    pub fn send_no_shutdown_on_err(
68203        self,
68204        mut result: Result<&TcpInfo, fidl_fuchsia_posix::Errno>,
68205    ) -> Result<(), fidl::Error> {
68206        let _result = self.send_raw(result);
68207        self.drop_without_shutdown();
68208        _result
68209    }
68210
68211    fn send_raw(
68212        &self,
68213        mut result: Result<&TcpInfo, fidl_fuchsia_posix::Errno>,
68214    ) -> Result<(), fidl::Error> {
68215        self.control_handle.inner.send::<fidl::encoding::ResultType<
68216            StreamSocketGetTcpInfoResponse,
68217            fidl_fuchsia_posix::Errno,
68218        >>(
68219            result.map(|info| (info,)),
68220            self.tx_id,
68221            0x1ffb123d9f03ead2,
68222            fidl::encoding::DynamicFlags::empty(),
68223        )
68224    }
68225}
68226
68227#[must_use = "FIDL methods require a response to be sent"]
68228#[derive(Debug)]
68229pub struct StreamSocketSetTcpQuickAckResponder {
68230    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
68231    tx_id: u32,
68232}
68233
68234/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
68235/// if the responder is dropped without sending a response, so that the client
68236/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
68237impl std::ops::Drop for StreamSocketSetTcpQuickAckResponder {
68238    fn drop(&mut self) {
68239        self.control_handle.shutdown();
68240        // Safety: drops once, never accessed again
68241        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68242    }
68243}
68244
68245impl fidl::endpoints::Responder for StreamSocketSetTcpQuickAckResponder {
68246    type ControlHandle = StreamSocketControlHandle;
68247
68248    fn control_handle(&self) -> &StreamSocketControlHandle {
68249        &self.control_handle
68250    }
68251
68252    fn drop_without_shutdown(mut self) {
68253        // Safety: drops once, never accessed again due to mem::forget
68254        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68255        // Prevent Drop from running (which would shut down the channel)
68256        std::mem::forget(self);
68257    }
68258}
68259
68260impl StreamSocketSetTcpQuickAckResponder {
68261    /// Sends a response to the FIDL transaction.
68262    ///
68263    /// Sets the channel to shutdown if an error occurs.
68264    pub fn send(
68265        self,
68266        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68267    ) -> Result<(), fidl::Error> {
68268        let _result = self.send_raw(result);
68269        if _result.is_err() {
68270            self.control_handle.shutdown();
68271        }
68272        self.drop_without_shutdown();
68273        _result
68274    }
68275
68276    /// Similar to "send" but does not shutdown the channel if an error occurs.
68277    pub fn send_no_shutdown_on_err(
68278        self,
68279        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68280    ) -> Result<(), fidl::Error> {
68281        let _result = self.send_raw(result);
68282        self.drop_without_shutdown();
68283        _result
68284    }
68285
68286    fn send_raw(
68287        &self,
68288        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68289    ) -> Result<(), fidl::Error> {
68290        self.control_handle.inner.send::<fidl::encoding::ResultType<
68291            fidl::encoding::EmptyStruct,
68292            fidl_fuchsia_posix::Errno,
68293        >>(
68294            result,
68295            self.tx_id,
68296            0x6fa811be8fde7457,
68297            fidl::encoding::DynamicFlags::empty(),
68298        )
68299    }
68300}
68301
68302#[must_use = "FIDL methods require a response to be sent"]
68303#[derive(Debug)]
68304pub struct StreamSocketGetTcpQuickAckResponder {
68305    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
68306    tx_id: u32,
68307}
68308
68309/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
68310/// if the responder is dropped without sending a response, so that the client
68311/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
68312impl std::ops::Drop for StreamSocketGetTcpQuickAckResponder {
68313    fn drop(&mut self) {
68314        self.control_handle.shutdown();
68315        // Safety: drops once, never accessed again
68316        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68317    }
68318}
68319
68320impl fidl::endpoints::Responder for StreamSocketGetTcpQuickAckResponder {
68321    type ControlHandle = StreamSocketControlHandle;
68322
68323    fn control_handle(&self) -> &StreamSocketControlHandle {
68324        &self.control_handle
68325    }
68326
68327    fn drop_without_shutdown(mut self) {
68328        // Safety: drops once, never accessed again due to mem::forget
68329        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68330        // Prevent Drop from running (which would shut down the channel)
68331        std::mem::forget(self);
68332    }
68333}
68334
68335impl StreamSocketGetTcpQuickAckResponder {
68336    /// Sends a response to the FIDL transaction.
68337    ///
68338    /// Sets the channel to shutdown if an error occurs.
68339    pub fn send(
68340        self,
68341        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
68342    ) -> Result<(), fidl::Error> {
68343        let _result = self.send_raw(result);
68344        if _result.is_err() {
68345            self.control_handle.shutdown();
68346        }
68347        self.drop_without_shutdown();
68348        _result
68349    }
68350
68351    /// Similar to "send" but does not shutdown the channel if an error occurs.
68352    pub fn send_no_shutdown_on_err(
68353        self,
68354        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
68355    ) -> Result<(), fidl::Error> {
68356        let _result = self.send_raw(result);
68357        self.drop_without_shutdown();
68358        _result
68359    }
68360
68361    fn send_raw(
68362        &self,
68363        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
68364    ) -> Result<(), fidl::Error> {
68365        self.control_handle.inner.send::<fidl::encoding::ResultType<
68366            StreamSocketGetTcpQuickAckResponse,
68367            fidl_fuchsia_posix::Errno,
68368        >>(
68369            result.map(|value| (value,)),
68370            self.tx_id,
68371            0x7356a949bef2df32,
68372            fidl::encoding::DynamicFlags::empty(),
68373        )
68374    }
68375}
68376
68377#[must_use = "FIDL methods require a response to be sent"]
68378#[derive(Debug)]
68379pub struct StreamSocketSetTcpCongestionResponder {
68380    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
68381    tx_id: u32,
68382}
68383
68384/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
68385/// if the responder is dropped without sending a response, so that the client
68386/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
68387impl std::ops::Drop for StreamSocketSetTcpCongestionResponder {
68388    fn drop(&mut self) {
68389        self.control_handle.shutdown();
68390        // Safety: drops once, never accessed again
68391        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68392    }
68393}
68394
68395impl fidl::endpoints::Responder for StreamSocketSetTcpCongestionResponder {
68396    type ControlHandle = StreamSocketControlHandle;
68397
68398    fn control_handle(&self) -> &StreamSocketControlHandle {
68399        &self.control_handle
68400    }
68401
68402    fn drop_without_shutdown(mut self) {
68403        // Safety: drops once, never accessed again due to mem::forget
68404        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68405        // Prevent Drop from running (which would shut down the channel)
68406        std::mem::forget(self);
68407    }
68408}
68409
68410impl StreamSocketSetTcpCongestionResponder {
68411    /// Sends a response to the FIDL transaction.
68412    ///
68413    /// Sets the channel to shutdown if an error occurs.
68414    pub fn send(
68415        self,
68416        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68417    ) -> Result<(), fidl::Error> {
68418        let _result = self.send_raw(result);
68419        if _result.is_err() {
68420            self.control_handle.shutdown();
68421        }
68422        self.drop_without_shutdown();
68423        _result
68424    }
68425
68426    /// Similar to "send" but does not shutdown the channel if an error occurs.
68427    pub fn send_no_shutdown_on_err(
68428        self,
68429        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68430    ) -> Result<(), fidl::Error> {
68431        let _result = self.send_raw(result);
68432        self.drop_without_shutdown();
68433        _result
68434    }
68435
68436    fn send_raw(
68437        &self,
68438        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68439    ) -> Result<(), fidl::Error> {
68440        self.control_handle.inner.send::<fidl::encoding::ResultType<
68441            fidl::encoding::EmptyStruct,
68442            fidl_fuchsia_posix::Errno,
68443        >>(
68444            result,
68445            self.tx_id,
68446            0x7924c6eabde7819e,
68447            fidl::encoding::DynamicFlags::empty(),
68448        )
68449    }
68450}
68451
68452#[must_use = "FIDL methods require a response to be sent"]
68453#[derive(Debug)]
68454pub struct StreamSocketGetTcpCongestionResponder {
68455    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
68456    tx_id: u32,
68457}
68458
68459/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
68460/// if the responder is dropped without sending a response, so that the client
68461/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
68462impl std::ops::Drop for StreamSocketGetTcpCongestionResponder {
68463    fn drop(&mut self) {
68464        self.control_handle.shutdown();
68465        // Safety: drops once, never accessed again
68466        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68467    }
68468}
68469
68470impl fidl::endpoints::Responder for StreamSocketGetTcpCongestionResponder {
68471    type ControlHandle = StreamSocketControlHandle;
68472
68473    fn control_handle(&self) -> &StreamSocketControlHandle {
68474        &self.control_handle
68475    }
68476
68477    fn drop_without_shutdown(mut self) {
68478        // Safety: drops once, never accessed again due to mem::forget
68479        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68480        // Prevent Drop from running (which would shut down the channel)
68481        std::mem::forget(self);
68482    }
68483}
68484
68485impl StreamSocketGetTcpCongestionResponder {
68486    /// Sends a response to the FIDL transaction.
68487    ///
68488    /// Sets the channel to shutdown if an error occurs.
68489    pub fn send(
68490        self,
68491        mut result: Result<TcpCongestionControl, fidl_fuchsia_posix::Errno>,
68492    ) -> Result<(), fidl::Error> {
68493        let _result = self.send_raw(result);
68494        if _result.is_err() {
68495            self.control_handle.shutdown();
68496        }
68497        self.drop_without_shutdown();
68498        _result
68499    }
68500
68501    /// Similar to "send" but does not shutdown the channel if an error occurs.
68502    pub fn send_no_shutdown_on_err(
68503        self,
68504        mut result: Result<TcpCongestionControl, fidl_fuchsia_posix::Errno>,
68505    ) -> Result<(), fidl::Error> {
68506        let _result = self.send_raw(result);
68507        self.drop_without_shutdown();
68508        _result
68509    }
68510
68511    fn send_raw(
68512        &self,
68513        mut result: Result<TcpCongestionControl, fidl_fuchsia_posix::Errno>,
68514    ) -> Result<(), fidl::Error> {
68515        self.control_handle.inner.send::<fidl::encoding::ResultType<
68516            StreamSocketGetTcpCongestionResponse,
68517            fidl_fuchsia_posix::Errno,
68518        >>(
68519            result.map(|value| (value,)),
68520            self.tx_id,
68521            0x11e16397e1b72a47,
68522            fidl::encoding::DynamicFlags::empty(),
68523        )
68524    }
68525}
68526
68527#[must_use = "FIDL methods require a response to be sent"]
68528#[derive(Debug)]
68529pub struct StreamSocketSetTcpUserTimeoutResponder {
68530    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
68531    tx_id: u32,
68532}
68533
68534/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
68535/// if the responder is dropped without sending a response, so that the client
68536/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
68537impl std::ops::Drop for StreamSocketSetTcpUserTimeoutResponder {
68538    fn drop(&mut self) {
68539        self.control_handle.shutdown();
68540        // Safety: drops once, never accessed again
68541        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68542    }
68543}
68544
68545impl fidl::endpoints::Responder for StreamSocketSetTcpUserTimeoutResponder {
68546    type ControlHandle = StreamSocketControlHandle;
68547
68548    fn control_handle(&self) -> &StreamSocketControlHandle {
68549        &self.control_handle
68550    }
68551
68552    fn drop_without_shutdown(mut self) {
68553        // Safety: drops once, never accessed again due to mem::forget
68554        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68555        // Prevent Drop from running (which would shut down the channel)
68556        std::mem::forget(self);
68557    }
68558}
68559
68560impl StreamSocketSetTcpUserTimeoutResponder {
68561    /// Sends a response to the FIDL transaction.
68562    ///
68563    /// Sets the channel to shutdown if an error occurs.
68564    pub fn send(
68565        self,
68566        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68567    ) -> Result<(), fidl::Error> {
68568        let _result = self.send_raw(result);
68569        if _result.is_err() {
68570            self.control_handle.shutdown();
68571        }
68572        self.drop_without_shutdown();
68573        _result
68574    }
68575
68576    /// Similar to "send" but does not shutdown the channel if an error occurs.
68577    pub fn send_no_shutdown_on_err(
68578        self,
68579        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68580    ) -> Result<(), fidl::Error> {
68581        let _result = self.send_raw(result);
68582        self.drop_without_shutdown();
68583        _result
68584    }
68585
68586    fn send_raw(
68587        &self,
68588        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68589    ) -> Result<(), fidl::Error> {
68590        self.control_handle.inner.send::<fidl::encoding::ResultType<
68591            fidl::encoding::EmptyStruct,
68592            fidl_fuchsia_posix::Errno,
68593        >>(
68594            result,
68595            self.tx_id,
68596            0x6b459e81c3741a60,
68597            fidl::encoding::DynamicFlags::empty(),
68598        )
68599    }
68600}
68601
68602#[must_use = "FIDL methods require a response to be sent"]
68603#[derive(Debug)]
68604pub struct StreamSocketGetTcpUserTimeoutResponder {
68605    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
68606    tx_id: u32,
68607}
68608
68609/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
68610/// if the responder is dropped without sending a response, so that the client
68611/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
68612impl std::ops::Drop for StreamSocketGetTcpUserTimeoutResponder {
68613    fn drop(&mut self) {
68614        self.control_handle.shutdown();
68615        // Safety: drops once, never accessed again
68616        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68617    }
68618}
68619
68620impl fidl::endpoints::Responder for StreamSocketGetTcpUserTimeoutResponder {
68621    type ControlHandle = StreamSocketControlHandle;
68622
68623    fn control_handle(&self) -> &StreamSocketControlHandle {
68624        &self.control_handle
68625    }
68626
68627    fn drop_without_shutdown(mut self) {
68628        // Safety: drops once, never accessed again due to mem::forget
68629        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68630        // Prevent Drop from running (which would shut down the channel)
68631        std::mem::forget(self);
68632    }
68633}
68634
68635impl StreamSocketGetTcpUserTimeoutResponder {
68636    /// Sends a response to the FIDL transaction.
68637    ///
68638    /// Sets the channel to shutdown if an error occurs.
68639    pub fn send(
68640        self,
68641        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
68642    ) -> Result<(), fidl::Error> {
68643        let _result = self.send_raw(result);
68644        if _result.is_err() {
68645            self.control_handle.shutdown();
68646        }
68647        self.drop_without_shutdown();
68648        _result
68649    }
68650
68651    /// Similar to "send" but does not shutdown the channel if an error occurs.
68652    pub fn send_no_shutdown_on_err(
68653        self,
68654        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
68655    ) -> Result<(), fidl::Error> {
68656        let _result = self.send_raw(result);
68657        self.drop_without_shutdown();
68658        _result
68659    }
68660
68661    fn send_raw(
68662        &self,
68663        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
68664    ) -> Result<(), fidl::Error> {
68665        self.control_handle.inner.send::<fidl::encoding::ResultType<
68666            StreamSocketGetTcpUserTimeoutResponse,
68667            fidl_fuchsia_posix::Errno,
68668        >>(
68669            result.map(|value_millis| (value_millis,)),
68670            self.tx_id,
68671            0x24bbd5858ad8c380,
68672            fidl::encoding::DynamicFlags::empty(),
68673        )
68674    }
68675}
68676
68677#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
68678pub struct SynchronousDatagramSocketMarker;
68679
68680impl fidl::endpoints::ProtocolMarker for SynchronousDatagramSocketMarker {
68681    type Proxy = SynchronousDatagramSocketProxy;
68682    type RequestStream = SynchronousDatagramSocketRequestStream;
68683    #[cfg(target_os = "fuchsia")]
68684    type SynchronousProxy = SynchronousDatagramSocketSynchronousProxy;
68685
68686    const DEBUG_NAME: &'static str = "fuchsia.posix.socket.SynchronousDatagramSocket";
68687}
68688impl fidl::endpoints::DiscoverableProtocolMarker for SynchronousDatagramSocketMarker {}
68689pub type SynchronousDatagramSocketRecvMsgResult = Result<
68690    (Option<Box<fidl_fuchsia_net::SocketAddress>>, Vec<u8>, DatagramSocketRecvControlData, u32),
68691    fidl_fuchsia_posix::Errno,
68692>;
68693pub type SynchronousDatagramSocketSendMsgResult = Result<i64, fidl_fuchsia_posix::Errno>;
68694
68695pub trait SynchronousDatagramSocketProxyInterface: Send + Sync {
68696    fn r#clone(
68697        &self,
68698        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
68699    ) -> Result<(), fidl::Error>;
68700    type CloseResponseFut: std::future::Future<
68701            Output = Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error>,
68702        > + Send;
68703    fn r#close(&self) -> Self::CloseResponseFut;
68704    type QueryResponseFut: std::future::Future<Output = Result<Vec<u8>, fidl::Error>> + Send;
68705    fn r#query(&self) -> Self::QueryResponseFut;
68706    type SetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketSetReuseAddressResult, fidl::Error>>
68707        + Send;
68708    fn r#set_reuse_address(&self, value: bool) -> Self::SetReuseAddressResponseFut;
68709    type GetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketGetReuseAddressResult, fidl::Error>>
68710        + Send;
68711    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut;
68712    type GetErrorResponseFut: std::future::Future<Output = Result<BaseSocketGetErrorResult, fidl::Error>>
68713        + Send;
68714    fn r#get_error(&self) -> Self::GetErrorResponseFut;
68715    type SetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketSetBroadcastResult, fidl::Error>>
68716        + Send;
68717    fn r#set_broadcast(&self, value: bool) -> Self::SetBroadcastResponseFut;
68718    type GetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketGetBroadcastResult, fidl::Error>>
68719        + Send;
68720    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut;
68721    type SetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetSendBufferResult, fidl::Error>>
68722        + Send;
68723    fn r#set_send_buffer(&self, value_bytes: u64) -> Self::SetSendBufferResponseFut;
68724    type GetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetSendBufferResult, fidl::Error>>
68725        + Send;
68726    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut;
68727    type SetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetReceiveBufferResult, fidl::Error>>
68728        + Send;
68729    fn r#set_receive_buffer(&self, value_bytes: u64) -> Self::SetReceiveBufferResponseFut;
68730    type GetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetReceiveBufferResult, fidl::Error>>
68731        + Send;
68732    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut;
68733    type SetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketSetKeepAliveResult, fidl::Error>>
68734        + Send;
68735    fn r#set_keep_alive(&self, value: bool) -> Self::SetKeepAliveResponseFut;
68736    type GetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketGetKeepAliveResult, fidl::Error>>
68737        + Send;
68738    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut;
68739    type SetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketSetOutOfBandInlineResult, fidl::Error>>
68740        + Send;
68741    fn r#set_out_of_band_inline(&self, value: bool) -> Self::SetOutOfBandInlineResponseFut;
68742    type GetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketGetOutOfBandInlineResult, fidl::Error>>
68743        + Send;
68744    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut;
68745    type SetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketSetNoCheckResult, fidl::Error>>
68746        + Send;
68747    fn r#set_no_check(&self, value: bool) -> Self::SetNoCheckResponseFut;
68748    type GetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketGetNoCheckResult, fidl::Error>>
68749        + Send;
68750    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut;
68751    type SetLingerResponseFut: std::future::Future<Output = Result<BaseSocketSetLingerResult, fidl::Error>>
68752        + Send;
68753    fn r#set_linger(&self, linger: bool, length_secs: u32) -> Self::SetLingerResponseFut;
68754    type GetLingerResponseFut: std::future::Future<Output = Result<BaseSocketGetLingerResult, fidl::Error>>
68755        + Send;
68756    fn r#get_linger(&self) -> Self::GetLingerResponseFut;
68757    type SetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketSetReusePortResult, fidl::Error>>
68758        + Send;
68759    fn r#set_reuse_port(&self, value: bool) -> Self::SetReusePortResponseFut;
68760    type GetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketGetReusePortResult, fidl::Error>>
68761        + Send;
68762    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut;
68763    type GetAcceptConnResponseFut: std::future::Future<Output = Result<BaseSocketGetAcceptConnResult, fidl::Error>>
68764        + Send;
68765    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut;
68766    type SetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToDeviceResult, fidl::Error>>
68767        + Send;
68768    fn r#set_bind_to_device(&self, value: &str) -> Self::SetBindToDeviceResponseFut;
68769    type GetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToDeviceResult, fidl::Error>>
68770        + Send;
68771    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut;
68772    type SetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error>>
68773        + Send;
68774    fn r#set_bind_to_interface_index(&self, value: u64)
68775        -> Self::SetBindToInterfaceIndexResponseFut;
68776    type GetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error>>
68777        + Send;
68778    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut;
68779    type SetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketSetTimestampResult, fidl::Error>>
68780        + Send;
68781    fn r#set_timestamp(&self, value: TimestampOption) -> Self::SetTimestampResponseFut;
68782    type GetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketGetTimestampResult, fidl::Error>>
68783        + Send;
68784    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut;
68785    type SetMarkResponseFut: std::future::Future<Output = Result<BaseSocketSetMarkResult, fidl::Error>>
68786        + Send;
68787    fn r#set_mark(
68788        &self,
68789        domain: fidl_fuchsia_net::MarkDomain,
68790        mark: &OptionalUint32,
68791    ) -> Self::SetMarkResponseFut;
68792    type GetMarkResponseFut: std::future::Future<Output = Result<BaseSocketGetMarkResult, fidl::Error>>
68793        + Send;
68794    fn r#get_mark(&self, domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut;
68795    type GetCookieResponseFut: std::future::Future<Output = Result<BaseSocketGetCookieResult, fidl::Error>>
68796        + Send;
68797    fn r#get_cookie(&self) -> Self::GetCookieResponseFut;
68798    type BindResponseFut: std::future::Future<Output = Result<BaseNetworkSocketBindResult, fidl::Error>>
68799        + Send;
68800    fn r#bind(&self, addr: &fidl_fuchsia_net::SocketAddress) -> Self::BindResponseFut;
68801    type ConnectResponseFut: std::future::Future<Output = Result<BaseNetworkSocketConnectResult, fidl::Error>>
68802        + Send;
68803    fn r#connect(&self, addr: &fidl_fuchsia_net::SocketAddress) -> Self::ConnectResponseFut;
68804    type DisconnectResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDisconnectResult, fidl::Error>>
68805        + Send;
68806    fn r#disconnect(&self) -> Self::DisconnectResponseFut;
68807    type GetSockNameResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetSockNameResult, fidl::Error>>
68808        + Send;
68809    fn r#get_sock_name(&self) -> Self::GetSockNameResponseFut;
68810    type GetPeerNameResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetPeerNameResult, fidl::Error>>
68811        + Send;
68812    fn r#get_peer_name(&self) -> Self::GetPeerNameResponseFut;
68813    type ShutdownResponseFut: std::future::Future<Output = Result<BaseNetworkSocketShutdownResult, fidl::Error>>
68814        + Send;
68815    fn r#shutdown(&self, mode: ShutdownMode) -> Self::ShutdownResponseFut;
68816    type SetIpTypeOfServiceResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error>>
68817        + Send;
68818    fn r#set_ip_type_of_service(&self, value: u8) -> Self::SetIpTypeOfServiceResponseFut;
68819    type GetIpTypeOfServiceResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error>>
68820        + Send;
68821    fn r#get_ip_type_of_service(&self) -> Self::GetIpTypeOfServiceResponseFut;
68822    type SetIpTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTtlResult, fidl::Error>>
68823        + Send;
68824    fn r#set_ip_ttl(&self, value: &OptionalUint8) -> Self::SetIpTtlResponseFut;
68825    type GetIpTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTtlResult, fidl::Error>>
68826        + Send;
68827    fn r#get_ip_ttl(&self) -> Self::GetIpTtlResponseFut;
68828    type SetIpPacketInfoResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error>>
68829        + Send;
68830    fn r#set_ip_packet_info(&self, value: bool) -> Self::SetIpPacketInfoResponseFut;
68831    type GetIpPacketInfoResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error>>
68832        + Send;
68833    fn r#get_ip_packet_info(&self) -> Self::GetIpPacketInfoResponseFut;
68834    type SetIpReceiveTypeOfServiceResponseFut: std::future::Future<
68835            Output = Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error>,
68836        > + Send;
68837    fn r#set_ip_receive_type_of_service(
68838        &self,
68839        value: bool,
68840    ) -> Self::SetIpReceiveTypeOfServiceResponseFut;
68841    type GetIpReceiveTypeOfServiceResponseFut: std::future::Future<
68842            Output = Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error>,
68843        > + Send;
68844    fn r#get_ip_receive_type_of_service(&self) -> Self::GetIpReceiveTypeOfServiceResponseFut;
68845    type SetIpReceiveTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error>>
68846        + Send;
68847    fn r#set_ip_receive_ttl(&self, value: bool) -> Self::SetIpReceiveTtlResponseFut;
68848    type GetIpReceiveTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error>>
68849        + Send;
68850    fn r#get_ip_receive_ttl(&self) -> Self::GetIpReceiveTtlResponseFut;
68851    type SetIpMulticastInterfaceResponseFut: std::future::Future<
68852            Output = Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error>,
68853        > + Send;
68854    fn r#set_ip_multicast_interface(
68855        &self,
68856        iface: u64,
68857        address: &fidl_fuchsia_net::Ipv4Address,
68858    ) -> Self::SetIpMulticastInterfaceResponseFut;
68859    type GetIpMulticastInterfaceResponseFut: std::future::Future<
68860            Output = Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error>,
68861        > + Send;
68862    fn r#get_ip_multicast_interface(&self) -> Self::GetIpMulticastInterfaceResponseFut;
68863    type SetIpMulticastTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error>>
68864        + Send;
68865    fn r#set_ip_multicast_ttl(&self, value: &OptionalUint8) -> Self::SetIpMulticastTtlResponseFut;
68866    type GetIpMulticastTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error>>
68867        + Send;
68868    fn r#get_ip_multicast_ttl(&self) -> Self::GetIpMulticastTtlResponseFut;
68869    type SetIpMulticastLoopbackResponseFut: std::future::Future<
68870            Output = Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error>,
68871        > + Send;
68872    fn r#set_ip_multicast_loopback(&self, value: bool) -> Self::SetIpMulticastLoopbackResponseFut;
68873    type GetIpMulticastLoopbackResponseFut: std::future::Future<
68874            Output = Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error>,
68875        > + Send;
68876    fn r#get_ip_multicast_loopback(&self) -> Self::GetIpMulticastLoopbackResponseFut;
68877    type AddIpMembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error>>
68878        + Send;
68879    fn r#add_ip_membership(
68880        &self,
68881        membership: &IpMulticastMembership,
68882    ) -> Self::AddIpMembershipResponseFut;
68883    type DropIpMembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error>>
68884        + Send;
68885    fn r#drop_ip_membership(
68886        &self,
68887        membership: &IpMulticastMembership,
68888    ) -> Self::DropIpMembershipResponseFut;
68889    type SetIpTransparentResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error>>
68890        + Send;
68891    fn r#set_ip_transparent(&self, value: bool) -> Self::SetIpTransparentResponseFut;
68892    type GetIpTransparentResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error>>
68893        + Send;
68894    fn r#get_ip_transparent(&self) -> Self::GetIpTransparentResponseFut;
68895    type SetIpReceiveOriginalDestinationAddressResponseFut: std::future::Future<
68896            Output = Result<
68897                BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
68898                fidl::Error,
68899            >,
68900        > + Send;
68901    fn r#set_ip_receive_original_destination_address(
68902        &self,
68903        value: bool,
68904    ) -> Self::SetIpReceiveOriginalDestinationAddressResponseFut;
68905    type GetIpReceiveOriginalDestinationAddressResponseFut: std::future::Future<
68906            Output = Result<
68907                BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
68908                fidl::Error,
68909            >,
68910        > + Send;
68911    fn r#get_ip_receive_original_destination_address(
68912        &self,
68913    ) -> Self::GetIpReceiveOriginalDestinationAddressResponseFut;
68914    type AddIpv6MembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error>>
68915        + Send;
68916    fn r#add_ipv6_membership(
68917        &self,
68918        membership: &Ipv6MulticastMembership,
68919    ) -> Self::AddIpv6MembershipResponseFut;
68920    type DropIpv6MembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error>>
68921        + Send;
68922    fn r#drop_ipv6_membership(
68923        &self,
68924        membership: &Ipv6MulticastMembership,
68925    ) -> Self::DropIpv6MembershipResponseFut;
68926    type SetIpv6MulticastInterfaceResponseFut: std::future::Future<
68927            Output = Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error>,
68928        > + Send;
68929    fn r#set_ipv6_multicast_interface(
68930        &self,
68931        value: u64,
68932    ) -> Self::SetIpv6MulticastInterfaceResponseFut;
68933    type GetIpv6MulticastInterfaceResponseFut: std::future::Future<
68934            Output = Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error>,
68935        > + Send;
68936    fn r#get_ipv6_multicast_interface(&self) -> Self::GetIpv6MulticastInterfaceResponseFut;
68937    type SetIpv6UnicastHopsResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error>>
68938        + Send;
68939    fn r#set_ipv6_unicast_hops(&self, value: &OptionalUint8)
68940        -> Self::SetIpv6UnicastHopsResponseFut;
68941    type GetIpv6UnicastHopsResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error>>
68942        + Send;
68943    fn r#get_ipv6_unicast_hops(&self) -> Self::GetIpv6UnicastHopsResponseFut;
68944    type SetIpv6ReceiveHopLimitResponseFut: std::future::Future<
68945            Output = Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error>,
68946        > + Send;
68947    fn r#set_ipv6_receive_hop_limit(&self, value: bool) -> Self::SetIpv6ReceiveHopLimitResponseFut;
68948    type GetIpv6ReceiveHopLimitResponseFut: std::future::Future<
68949            Output = Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error>,
68950        > + Send;
68951    fn r#get_ipv6_receive_hop_limit(&self) -> Self::GetIpv6ReceiveHopLimitResponseFut;
68952    type SetIpv6MulticastHopsResponseFut: std::future::Future<
68953            Output = Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error>,
68954        > + Send;
68955    fn r#set_ipv6_multicast_hops(
68956        &self,
68957        value: &OptionalUint8,
68958    ) -> Self::SetIpv6MulticastHopsResponseFut;
68959    type GetIpv6MulticastHopsResponseFut: std::future::Future<
68960            Output = Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error>,
68961        > + Send;
68962    fn r#get_ipv6_multicast_hops(&self) -> Self::GetIpv6MulticastHopsResponseFut;
68963    type SetIpv6MulticastLoopbackResponseFut: std::future::Future<
68964            Output = Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error>,
68965        > + Send;
68966    fn r#set_ipv6_multicast_loopback(
68967        &self,
68968        value: bool,
68969    ) -> Self::SetIpv6MulticastLoopbackResponseFut;
68970    type GetIpv6MulticastLoopbackResponseFut: std::future::Future<
68971            Output = Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error>,
68972        > + Send;
68973    fn r#get_ipv6_multicast_loopback(&self) -> Self::GetIpv6MulticastLoopbackResponseFut;
68974    type SetIpv6OnlyResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error>>
68975        + Send;
68976    fn r#set_ipv6_only(&self, value: bool) -> Self::SetIpv6OnlyResponseFut;
68977    type GetIpv6OnlyResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error>>
68978        + Send;
68979    fn r#get_ipv6_only(&self) -> Self::GetIpv6OnlyResponseFut;
68980    type SetIpv6ReceiveTrafficClassResponseFut: std::future::Future<
68981            Output = Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error>,
68982        > + Send;
68983    fn r#set_ipv6_receive_traffic_class(
68984        &self,
68985        value: bool,
68986    ) -> Self::SetIpv6ReceiveTrafficClassResponseFut;
68987    type GetIpv6ReceiveTrafficClassResponseFut: std::future::Future<
68988            Output = Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error>,
68989        > + Send;
68990    fn r#get_ipv6_receive_traffic_class(&self) -> Self::GetIpv6ReceiveTrafficClassResponseFut;
68991    type SetIpv6TrafficClassResponseFut: std::future::Future<
68992            Output = Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error>,
68993        > + Send;
68994    fn r#set_ipv6_traffic_class(
68995        &self,
68996        value: &OptionalUint8,
68997    ) -> Self::SetIpv6TrafficClassResponseFut;
68998    type GetIpv6TrafficClassResponseFut: std::future::Future<
68999            Output = Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error>,
69000        > + Send;
69001    fn r#get_ipv6_traffic_class(&self) -> Self::GetIpv6TrafficClassResponseFut;
69002    type SetIpv6ReceivePacketInfoResponseFut: std::future::Future<
69003            Output = Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error>,
69004        > + Send;
69005    fn r#set_ipv6_receive_packet_info(
69006        &self,
69007        value: bool,
69008    ) -> Self::SetIpv6ReceivePacketInfoResponseFut;
69009    type GetIpv6ReceivePacketInfoResponseFut: std::future::Future<
69010            Output = Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error>,
69011        > + Send;
69012    fn r#get_ipv6_receive_packet_info(&self) -> Self::GetIpv6ReceivePacketInfoResponseFut;
69013    type GetOriginalDestinationResponseFut: std::future::Future<
69014            Output = Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error>,
69015        > + Send;
69016    fn r#get_original_destination(&self) -> Self::GetOriginalDestinationResponseFut;
69017    type GetInfoResponseFut: std::future::Future<Output = Result<BaseDatagramSocketGetInfoResult, fidl::Error>>
69018        + Send;
69019    fn r#get_info(&self) -> Self::GetInfoResponseFut;
69020    type DescribeResponseFut: std::future::Future<Output = Result<SynchronousDatagramSocketDescribeResponse, fidl::Error>>
69021        + Send;
69022    fn r#describe(&self) -> Self::DescribeResponseFut;
69023    type RecvMsgResponseFut: std::future::Future<Output = Result<SynchronousDatagramSocketRecvMsgResult, fidl::Error>>
69024        + Send;
69025    fn r#recv_msg(
69026        &self,
69027        want_addr: bool,
69028        data_len: u32,
69029        want_control: bool,
69030        flags: RecvMsgFlags,
69031    ) -> Self::RecvMsgResponseFut;
69032    type SendMsgResponseFut: std::future::Future<Output = Result<SynchronousDatagramSocketSendMsgResult, fidl::Error>>
69033        + Send;
69034    fn r#send_msg(
69035        &self,
69036        addr: Option<&fidl_fuchsia_net::SocketAddress>,
69037        data: &[u8],
69038        control: &DatagramSocketSendControlData,
69039        flags: SendMsgFlags,
69040    ) -> Self::SendMsgResponseFut;
69041}
69042#[derive(Debug)]
69043#[cfg(target_os = "fuchsia")]
69044pub struct SynchronousDatagramSocketSynchronousProxy {
69045    client: fidl::client::sync::Client,
69046}
69047
69048#[cfg(target_os = "fuchsia")]
69049impl fidl::endpoints::SynchronousProxy for SynchronousDatagramSocketSynchronousProxy {
69050    type Proxy = SynchronousDatagramSocketProxy;
69051    type Protocol = SynchronousDatagramSocketMarker;
69052
69053    fn from_channel(inner: fidl::Channel) -> Self {
69054        Self::new(inner)
69055    }
69056
69057    fn into_channel(self) -> fidl::Channel {
69058        self.client.into_channel()
69059    }
69060
69061    fn as_channel(&self) -> &fidl::Channel {
69062        self.client.as_channel()
69063    }
69064}
69065
69066#[cfg(target_os = "fuchsia")]
69067impl SynchronousDatagramSocketSynchronousProxy {
69068    pub fn new(channel: fidl::Channel) -> Self {
69069        let protocol_name =
69070            <SynchronousDatagramSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
69071        Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
69072    }
69073
69074    pub fn into_channel(self) -> fidl::Channel {
69075        self.client.into_channel()
69076    }
69077
69078    /// Waits until an event arrives and returns it. It is safe for other
69079    /// threads to make concurrent requests while waiting for an event.
69080    pub fn wait_for_event(
69081        &self,
69082        deadline: zx::MonotonicInstant,
69083    ) -> Result<SynchronousDatagramSocketEvent, fidl::Error> {
69084        SynchronousDatagramSocketEvent::decode(self.client.wait_for_event(deadline)?)
69085    }
69086
69087    pub fn r#clone(
69088        &self,
69089        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
69090    ) -> Result<(), fidl::Error> {
69091        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
69092            (request,),
69093            0x20d8a7aba2168a79,
69094            fidl::encoding::DynamicFlags::empty(),
69095        )
69096    }
69097
69098    /// Terminates the connection.
69099    ///
69100    /// After calling `Close`, the client must not send any other requests.
69101    ///
69102    /// Servers, after sending the status response, should close the connection
69103    /// regardless of status and without sending an epitaph.
69104    ///
69105    /// Closing the client end of the channel should be semantically equivalent
69106    /// to calling `Close` without knowing when the close has completed or its
69107    /// status.
69108    pub fn r#close(
69109        &self,
69110        ___deadline: zx::MonotonicInstant,
69111    ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
69112        let _response = self.client.send_query::<
69113            fidl::encoding::EmptyPayload,
69114            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
69115        >(
69116            (),
69117            0x5ac5d459ad7f657e,
69118            fidl::encoding::DynamicFlags::empty(),
69119            ___deadline,
69120        )?;
69121        Ok(_response.map(|x| x))
69122    }
69123
69124    pub fn r#query(&self, ___deadline: zx::MonotonicInstant) -> Result<Vec<u8>, fidl::Error> {
69125        let _response = self.client.send_query::<
69126            fidl::encoding::EmptyPayload,
69127            fidl_fuchsia_unknown::QueryableQueryResponse,
69128        >(
69129            (),
69130            0x2658edee9decfc06,
69131            fidl::encoding::DynamicFlags::empty(),
69132            ___deadline,
69133        )?;
69134        Ok(_response.protocol)
69135    }
69136
69137    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
69138    pub fn r#set_reuse_address(
69139        &self,
69140        mut value: bool,
69141        ___deadline: zx::MonotonicInstant,
69142    ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
69143        let _response =
69144            self.client.send_query::<BaseSocketSetReuseAddressRequest, fidl::encoding::ResultType<
69145                fidl::encoding::EmptyStruct,
69146                fidl_fuchsia_posix::Errno,
69147            >>(
69148                (value,),
69149                0x1fd74ee8b9a4a876,
69150                fidl::encoding::DynamicFlags::empty(),
69151                ___deadline,
69152            )?;
69153        Ok(_response.map(|x| x))
69154    }
69155
69156    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
69157    pub fn r#get_reuse_address(
69158        &self,
69159        ___deadline: zx::MonotonicInstant,
69160    ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
69161        let _response = self
69162            .client
69163            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69164                BaseSocketGetReuseAddressResponse,
69165                fidl_fuchsia_posix::Errno,
69166            >>(
69167                (), 0x67b7206b8d1bc0a5, fidl::encoding::DynamicFlags::empty(), ___deadline
69168            )?;
69169        Ok(_response.map(|x| x.value))
69170    }
69171
69172    /// Get `SOL_SOCKET` -> `SO_ERROR`.
69173    /// Returns the last error if there is an error set on the socket.
69174    pub fn r#get_error(
69175        &self,
69176        ___deadline: zx::MonotonicInstant,
69177    ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
69178        let _response =
69179            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69180                fidl::encoding::EmptyStruct,
69181                fidl_fuchsia_posix::Errno,
69182            >>(
69183                (),
69184                0x5aad39b33e5f6ebb,
69185                fidl::encoding::DynamicFlags::empty(),
69186                ___deadline,
69187            )?;
69188        Ok(_response.map(|x| x))
69189    }
69190
69191    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
69192    pub fn r#set_broadcast(
69193        &self,
69194        mut value: bool,
69195        ___deadline: zx::MonotonicInstant,
69196    ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
69197        let _response =
69198            self.client.send_query::<BaseSocketSetBroadcastRequest, fidl::encoding::ResultType<
69199                fidl::encoding::EmptyStruct,
69200                fidl_fuchsia_posix::Errno,
69201            >>(
69202                (value,),
69203                0x6023e081ce3cd947,
69204                fidl::encoding::DynamicFlags::empty(),
69205                ___deadline,
69206            )?;
69207        Ok(_response.map(|x| x))
69208    }
69209
69210    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
69211    pub fn r#get_broadcast(
69212        &self,
69213        ___deadline: zx::MonotonicInstant,
69214    ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
69215        let _response =
69216            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69217                BaseSocketGetBroadcastResponse,
69218                fidl_fuchsia_posix::Errno,
69219            >>(
69220                (),
69221                0x68796fc556f9780d,
69222                fidl::encoding::DynamicFlags::empty(),
69223                ___deadline,
69224            )?;
69225        Ok(_response.map(|x| x.value))
69226    }
69227
69228    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
69229    pub fn r#set_send_buffer(
69230        &self,
69231        mut value_bytes: u64,
69232        ___deadline: zx::MonotonicInstant,
69233    ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
69234        let _response =
69235            self.client.send_query::<BaseSocketSetSendBufferRequest, fidl::encoding::ResultType<
69236                fidl::encoding::EmptyStruct,
69237                fidl_fuchsia_posix::Errno,
69238            >>(
69239                (value_bytes,),
69240                0x756eac32d73a7a70,
69241                fidl::encoding::DynamicFlags::empty(),
69242                ___deadline,
69243            )?;
69244        Ok(_response.map(|x| x))
69245    }
69246
69247    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
69248    pub fn r#get_send_buffer(
69249        &self,
69250        ___deadline: zx::MonotonicInstant,
69251    ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
69252        let _response = self
69253            .client
69254            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69255                BaseSocketGetSendBufferResponse,
69256                fidl_fuchsia_posix::Errno,
69257            >>(
69258                (), 0x78a52fd9c7b2410b, fidl::encoding::DynamicFlags::empty(), ___deadline
69259            )?;
69260        Ok(_response.map(|x| x.value_bytes))
69261    }
69262
69263    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
69264    pub fn r#set_receive_buffer(
69265        &self,
69266        mut value_bytes: u64,
69267        ___deadline: zx::MonotonicInstant,
69268    ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
69269        let _response =
69270            self.client
69271                .send_query::<BaseSocketSetReceiveBufferRequest, fidl::encoding::ResultType<
69272                    fidl::encoding::EmptyStruct,
69273                    fidl_fuchsia_posix::Errno,
69274                >>(
69275                    (value_bytes,),
69276                    0x6b0cf2f1919c7001,
69277                    fidl::encoding::DynamicFlags::empty(),
69278                    ___deadline,
69279                )?;
69280        Ok(_response.map(|x| x))
69281    }
69282
69283    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
69284    pub fn r#get_receive_buffer(
69285        &self,
69286        ___deadline: zx::MonotonicInstant,
69287    ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
69288        let _response = self
69289            .client
69290            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69291                BaseSocketGetReceiveBufferResponse,
69292                fidl_fuchsia_posix::Errno,
69293            >>(
69294                (), 0x14c1a4b64f709e5c, fidl::encoding::DynamicFlags::empty(), ___deadline
69295            )?;
69296        Ok(_response.map(|x| x.value_bytes))
69297    }
69298
69299    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
69300    pub fn r#set_keep_alive(
69301        &self,
69302        mut value: bool,
69303        ___deadline: zx::MonotonicInstant,
69304    ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
69305        let _response =
69306            self.client.send_query::<BaseSocketSetKeepAliveRequest, fidl::encoding::ResultType<
69307                fidl::encoding::EmptyStruct,
69308                fidl_fuchsia_posix::Errno,
69309            >>(
69310                (value,),
69311                0x572df8f0b920d2c7,
69312                fidl::encoding::DynamicFlags::empty(),
69313                ___deadline,
69314            )?;
69315        Ok(_response.map(|x| x))
69316    }
69317
69318    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
69319    pub fn r#get_keep_alive(
69320        &self,
69321        ___deadline: zx::MonotonicInstant,
69322    ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
69323        let _response =
69324            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69325                BaseSocketGetKeepAliveResponse,
69326                fidl_fuchsia_posix::Errno,
69327            >>(
69328                (),
69329                0x2dd29d3215f2c9d2,
69330                fidl::encoding::DynamicFlags::empty(),
69331                ___deadline,
69332            )?;
69333        Ok(_response.map(|x| x.value))
69334    }
69335
69336    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
69337    pub fn r#set_out_of_band_inline(
69338        &self,
69339        mut value: bool,
69340        ___deadline: zx::MonotonicInstant,
69341    ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
69342        let _response =
69343            self.client
69344                .send_query::<BaseSocketSetOutOfBandInlineRequest, fidl::encoding::ResultType<
69345                    fidl::encoding::EmptyStruct,
69346                    fidl_fuchsia_posix::Errno,
69347                >>(
69348                    (value,),
69349                    0x3ecb49968bee439,
69350                    fidl::encoding::DynamicFlags::empty(),
69351                    ___deadline,
69352                )?;
69353        Ok(_response.map(|x| x))
69354    }
69355
69356    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
69357    pub fn r#get_out_of_band_inline(
69358        &self,
69359        ___deadline: zx::MonotonicInstant,
69360    ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
69361        let _response = self
69362            .client
69363            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69364                BaseSocketGetOutOfBandInlineResponse,
69365                fidl_fuchsia_posix::Errno,
69366            >>(
69367                (), 0x348c1ab3aeca1745, fidl::encoding::DynamicFlags::empty(), ___deadline
69368            )?;
69369        Ok(_response.map(|x| x.value))
69370    }
69371
69372    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
69373    pub fn r#set_no_check(
69374        &self,
69375        mut value: bool,
69376        ___deadline: zx::MonotonicInstant,
69377    ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
69378        let _response =
69379            self.client.send_query::<BaseSocketSetNoCheckRequest, fidl::encoding::ResultType<
69380                fidl::encoding::EmptyStruct,
69381                fidl_fuchsia_posix::Errno,
69382            >>(
69383                (value,),
69384                0x6bbf00c53a4c78c2,
69385                fidl::encoding::DynamicFlags::empty(),
69386                ___deadline,
69387            )?;
69388        Ok(_response.map(|x| x))
69389    }
69390
69391    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
69392    pub fn r#get_no_check(
69393        &self,
69394        ___deadline: zx::MonotonicInstant,
69395    ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
69396        let _response =
69397            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69398                BaseSocketGetNoCheckResponse,
69399                fidl_fuchsia_posix::Errno,
69400            >>(
69401                (),
69402                0x2cd4249286417694,
69403                fidl::encoding::DynamicFlags::empty(),
69404                ___deadline,
69405            )?;
69406        Ok(_response.map(|x| x.value))
69407    }
69408
69409    /// Set `SOL_SOCKET` -> `SO_LINGER`.
69410    pub fn r#set_linger(
69411        &self,
69412        mut linger: bool,
69413        mut length_secs: u32,
69414        ___deadline: zx::MonotonicInstant,
69415    ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
69416        let _response =
69417            self.client.send_query::<BaseSocketSetLingerRequest, fidl::encoding::ResultType<
69418                fidl::encoding::EmptyStruct,
69419                fidl_fuchsia_posix::Errno,
69420            >>(
69421                (linger, length_secs),
69422                0x45386351246e998e,
69423                fidl::encoding::DynamicFlags::empty(),
69424                ___deadline,
69425            )?;
69426        Ok(_response.map(|x| x))
69427    }
69428
69429    /// Get `SOL_SOCKET` -> `SO_LINGER`.
69430    pub fn r#get_linger(
69431        &self,
69432        ___deadline: zx::MonotonicInstant,
69433    ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
69434        let _response =
69435            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69436                BaseSocketGetLingerResponse,
69437                fidl_fuchsia_posix::Errno,
69438            >>(
69439                (),
69440                0x48eb20fc5ccb0e45,
69441                fidl::encoding::DynamicFlags::empty(),
69442                ___deadline,
69443            )?;
69444        Ok(_response.map(|x| (x.linger, x.length_secs)))
69445    }
69446
69447    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
69448    pub fn r#set_reuse_port(
69449        &self,
69450        mut value: bool,
69451        ___deadline: zx::MonotonicInstant,
69452    ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
69453        let _response =
69454            self.client.send_query::<BaseSocketSetReusePortRequest, fidl::encoding::ResultType<
69455                fidl::encoding::EmptyStruct,
69456                fidl_fuchsia_posix::Errno,
69457            >>(
69458                (value,),
69459                0x24dd3e5cb36d9ccb,
69460                fidl::encoding::DynamicFlags::empty(),
69461                ___deadline,
69462            )?;
69463        Ok(_response.map(|x| x))
69464    }
69465
69466    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
69467    pub fn r#get_reuse_port(
69468        &self,
69469        ___deadline: zx::MonotonicInstant,
69470    ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
69471        let _response =
69472            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69473                BaseSocketGetReusePortResponse,
69474                fidl_fuchsia_posix::Errno,
69475            >>(
69476                (),
69477                0x7a112c1ab54ff828,
69478                fidl::encoding::DynamicFlags::empty(),
69479                ___deadline,
69480            )?;
69481        Ok(_response.map(|x| x.value))
69482    }
69483
69484    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
69485    pub fn r#get_accept_conn(
69486        &self,
69487        ___deadline: zx::MonotonicInstant,
69488    ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
69489        let _response = self
69490            .client
69491            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69492                BaseSocketGetAcceptConnResponse,
69493                fidl_fuchsia_posix::Errno,
69494            >>(
69495                (), 0x67ce6db6c2ec8966, fidl::encoding::DynamicFlags::empty(), ___deadline
69496            )?;
69497        Ok(_response.map(|x| x.value))
69498    }
69499
69500    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
69501    pub fn r#set_bind_to_device(
69502        &self,
69503        mut value: &str,
69504        ___deadline: zx::MonotonicInstant,
69505    ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
69506        let _response =
69507            self.client.send_query::<BaseSocketSetBindToDeviceRequest, fidl::encoding::ResultType<
69508                fidl::encoding::EmptyStruct,
69509                fidl_fuchsia_posix::Errno,
69510            >>(
69511                (value,),
69512                0x2118b483f28aafc4,
69513                fidl::encoding::DynamicFlags::empty(),
69514                ___deadline,
69515            )?;
69516        Ok(_response.map(|x| x))
69517    }
69518
69519    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
69520    pub fn r#get_bind_to_device(
69521        &self,
69522        ___deadline: zx::MonotonicInstant,
69523    ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
69524        let _response = self
69525            .client
69526            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69527                BaseSocketGetBindToDeviceResponse,
69528                fidl_fuchsia_posix::Errno,
69529            >>(
69530                (), 0x1ab1fbf0ef7906c8, fidl::encoding::DynamicFlags::empty(), ___deadline
69531            )?;
69532        Ok(_response.map(|x| x.value))
69533    }
69534
69535    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
69536    /// If `value` is 0, this clears the bound interface.
69537    pub fn r#set_bind_to_interface_index(
69538        &self,
69539        mut value: u64,
69540        ___deadline: zx::MonotonicInstant,
69541    ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
69542        let _response =
69543            self.client
69544                .send_query::<BaseSocketSetBindToInterfaceIndexRequest, fidl::encoding::ResultType<
69545                    fidl::encoding::EmptyStruct,
69546                    fidl_fuchsia_posix::Errno,
69547                >>(
69548                    (value,),
69549                    0x6e387a0def00821,
69550                    fidl::encoding::DynamicFlags::empty(),
69551                    ___deadline,
69552                )?;
69553        Ok(_response.map(|x| x))
69554    }
69555
69556    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
69557    pub fn r#get_bind_to_interface_index(
69558        &self,
69559        ___deadline: zx::MonotonicInstant,
69560    ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
69561        let _response = self
69562            .client
69563            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69564                BaseSocketGetBindToInterfaceIndexResponse,
69565                fidl_fuchsia_posix::Errno,
69566            >>(
69567                (), 0x59c31dd3e3078295, fidl::encoding::DynamicFlags::empty(), ___deadline
69568            )?;
69569        Ok(_response.map(|x| x.value))
69570    }
69571
69572    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
69573    pub fn r#set_timestamp(
69574        &self,
69575        mut value: TimestampOption,
69576        ___deadline: zx::MonotonicInstant,
69577    ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
69578        let _response =
69579            self.client.send_query::<BaseSocketSetTimestampRequest, fidl::encoding::ResultType<
69580                fidl::encoding::EmptyStruct,
69581                fidl_fuchsia_posix::Errno,
69582            >>(
69583                (value,),
69584                0x285d6516c263d839,
69585                fidl::encoding::DynamicFlags::empty(),
69586                ___deadline,
69587            )?;
69588        Ok(_response.map(|x| x))
69589    }
69590
69591    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
69592    pub fn r#get_timestamp(
69593        &self,
69594        ___deadline: zx::MonotonicInstant,
69595    ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
69596        let _response =
69597            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69598                BaseSocketGetTimestampResponse,
69599                fidl_fuchsia_posix::Errno,
69600            >>(
69601                (),
69602                0x49f2fffbbcc2bd27,
69603                fidl::encoding::DynamicFlags::empty(),
69604                ___deadline,
69605            )?;
69606        Ok(_response.map(|x| x.value))
69607    }
69608
69609    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
69610    /// unlike the standard SO_MARK, this API has multiple mark domains and each
69611    /// mark can be set independently in each domain.
69612    pub fn r#set_mark(
69613        &self,
69614        mut domain: fidl_fuchsia_net::MarkDomain,
69615        mut mark: &OptionalUint32,
69616        ___deadline: zx::MonotonicInstant,
69617    ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
69618        let _response =
69619            self.client.send_query::<BaseSocketSetMarkRequest, fidl::encoding::ResultType<
69620                fidl::encoding::EmptyStruct,
69621                fidl_fuchsia_posix::Errno,
69622            >>(
69623                (domain, mark),
69624                0x6ead6de09f653236,
69625                fidl::encoding::DynamicFlags::empty(),
69626                ___deadline,
69627            )?;
69628        Ok(_response.map(|x| x))
69629    }
69630
69631    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
69632    /// unlike the standard SO_MARK, this API has multiple mark domains and each
69633    /// mark can be retrieved independently in each domain.
69634    pub fn r#get_mark(
69635        &self,
69636        mut domain: fidl_fuchsia_net::MarkDomain,
69637        ___deadline: zx::MonotonicInstant,
69638    ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
69639        let _response =
69640            self.client.send_query::<BaseSocketGetMarkRequest, fidl::encoding::ResultType<
69641                BaseSocketGetMarkResponse,
69642                fidl_fuchsia_posix::Errno,
69643            >>(
69644                (domain,),
69645                0x57a2752c61d93d47,
69646                fidl::encoding::DynamicFlags::empty(),
69647                ___deadline,
69648            )?;
69649        Ok(_response.map(|x| x.mark))
69650    }
69651
69652    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
69653    pub fn r#get_cookie(
69654        &self,
69655        ___deadline: zx::MonotonicInstant,
69656    ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
69657        let _response =
69658            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69659                BaseSocketGetCookieResponse,
69660                fidl_fuchsia_posix::Errno,
69661            >>(
69662                (),
69663                0x2c2f47fd8f924e52,
69664                fidl::encoding::DynamicFlags::empty(),
69665                ___deadline,
69666            )?;
69667        Ok(_response.map(|x| x.value))
69668    }
69669
69670    /// Sets the local address used for the socket.
69671    pub fn r#bind(
69672        &self,
69673        mut addr: &fidl_fuchsia_net::SocketAddress,
69674        ___deadline: zx::MonotonicInstant,
69675    ) -> Result<BaseNetworkSocketBindResult, fidl::Error> {
69676        let _response =
69677            self.client.send_query::<BaseNetworkSocketBindRequest, fidl::encoding::ResultType<
69678                fidl::encoding::EmptyStruct,
69679                fidl_fuchsia_posix::Errno,
69680            >>(
69681                (addr,),
69682                0x4bc6400ae92125d,
69683                fidl::encoding::DynamicFlags::empty(),
69684                ___deadline,
69685            )?;
69686        Ok(_response.map(|x| x))
69687    }
69688
69689    /// Initiates a connection to a remote address.
69690    pub fn r#connect(
69691        &self,
69692        mut addr: &fidl_fuchsia_net::SocketAddress,
69693        ___deadline: zx::MonotonicInstant,
69694    ) -> Result<BaseNetworkSocketConnectResult, fidl::Error> {
69695        let _response =
69696            self.client.send_query::<BaseNetworkSocketConnectRequest, fidl::encoding::ResultType<
69697                fidl::encoding::EmptyStruct,
69698                fidl_fuchsia_posix::Errno,
69699            >>(
69700                (addr,),
69701                0x5f05f19bfdd38871,
69702                fidl::encoding::DynamicFlags::empty(),
69703                ___deadline,
69704            )?;
69705        Ok(_response.map(|x| x))
69706    }
69707
69708    /// Clears connection information from this socket.
69709    pub fn r#disconnect(
69710        &self,
69711        ___deadline: zx::MonotonicInstant,
69712    ) -> Result<BaseNetworkSocketDisconnectResult, fidl::Error> {
69713        let _response =
69714            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69715                fidl::encoding::EmptyStruct,
69716                fidl_fuchsia_posix::Errno,
69717            >>(
69718                (),
69719                0x74e63b91f7b29b2,
69720                fidl::encoding::DynamicFlags::empty(),
69721                ___deadline,
69722            )?;
69723        Ok(_response.map(|x| x))
69724    }
69725
69726    /// Retrieves the local socket address.
69727    pub fn r#get_sock_name(
69728        &self,
69729        ___deadline: zx::MonotonicInstant,
69730    ) -> Result<BaseNetworkSocketGetSockNameResult, fidl::Error> {
69731        let _response = self
69732            .client
69733            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69734                BaseNetworkSocketGetSockNameResponse,
69735                fidl_fuchsia_posix::Errno,
69736            >>(
69737                (), 0x475f23f84a1a4f85, fidl::encoding::DynamicFlags::empty(), ___deadline
69738            )?;
69739        Ok(_response.map(|x| x.addr))
69740    }
69741
69742    /// Retrieves the remote socket address.
69743    pub fn r#get_peer_name(
69744        &self,
69745        ___deadline: zx::MonotonicInstant,
69746    ) -> Result<BaseNetworkSocketGetPeerNameResult, fidl::Error> {
69747        let _response = self
69748            .client
69749            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69750                BaseNetworkSocketGetPeerNameResponse,
69751                fidl_fuchsia_posix::Errno,
69752            >>(
69753                (), 0x1ffecf4bd5b6432e, fidl::encoding::DynamicFlags::empty(), ___deadline
69754            )?;
69755        Ok(_response.map(|x| x.addr))
69756    }
69757
69758    /// Shuts down part of the socket.
69759    pub fn r#shutdown(
69760        &self,
69761        mut mode: ShutdownMode,
69762        ___deadline: zx::MonotonicInstant,
69763    ) -> Result<BaseNetworkSocketShutdownResult, fidl::Error> {
69764        let _response =
69765            self.client.send_query::<BaseNetworkSocketShutdownRequest, fidl::encoding::ResultType<
69766                fidl::encoding::EmptyStruct,
69767                fidl_fuchsia_posix::Errno,
69768            >>(
69769                (mode,),
69770                0x247f38b6db68c336,
69771                fidl::encoding::DynamicFlags::empty(),
69772                ___deadline,
69773            )?;
69774        Ok(_response.map(|x| x))
69775    }
69776
69777    /// Set `SOL_IP` -> `IP_TOS`.
69778    pub fn r#set_ip_type_of_service(
69779        &self,
69780        mut value: u8,
69781        ___deadline: zx::MonotonicInstant,
69782    ) -> Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error> {
69783        let _response = self.client.send_query::<
69784            BaseNetworkSocketSetIpTypeOfServiceRequest,
69785            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
69786        >(
69787            (value,),
69788            0x995c600475b6d46,
69789            fidl::encoding::DynamicFlags::empty(),
69790            ___deadline,
69791        )?;
69792        Ok(_response.map(|x| x))
69793    }
69794
69795    /// Get `SOL_IP` -> `IP_TOS`.
69796    pub fn r#get_ip_type_of_service(
69797        &self,
69798        ___deadline: zx::MonotonicInstant,
69799    ) -> Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error> {
69800        let _response = self
69801            .client
69802            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69803                BaseNetworkSocketGetIpTypeOfServiceResponse,
69804                fidl_fuchsia_posix::Errno,
69805            >>(
69806                (), 0x3814a04259f75fcb, fidl::encoding::DynamicFlags::empty(), ___deadline
69807            )?;
69808        Ok(_response.map(|x| x.value))
69809    }
69810
69811    /// Set `SOL_IP` -> `IP_TTL`.
69812    pub fn r#set_ip_ttl(
69813        &self,
69814        mut value: &OptionalUint8,
69815        ___deadline: zx::MonotonicInstant,
69816    ) -> Result<BaseNetworkSocketSetIpTtlResult, fidl::Error> {
69817        let _response =
69818            self.client.send_query::<BaseNetworkSocketSetIpTtlRequest, fidl::encoding::ResultType<
69819                fidl::encoding::EmptyStruct,
69820                fidl_fuchsia_posix::Errno,
69821            >>(
69822                (value,),
69823                0x29e2424b433ae1ef,
69824                fidl::encoding::DynamicFlags::empty(),
69825                ___deadline,
69826            )?;
69827        Ok(_response.map(|x| x))
69828    }
69829
69830    /// Get `SOL_IP` -> `IP_TTL`.
69831    pub fn r#get_ip_ttl(
69832        &self,
69833        ___deadline: zx::MonotonicInstant,
69834    ) -> Result<BaseNetworkSocketGetIpTtlResult, fidl::Error> {
69835        let _response = self
69836            .client
69837            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69838                BaseNetworkSocketGetIpTtlResponse,
69839                fidl_fuchsia_posix::Errno,
69840            >>(
69841                (), 0x47e47fa1f24da471, fidl::encoding::DynamicFlags::empty(), ___deadline
69842            )?;
69843        Ok(_response.map(|x| x.value))
69844    }
69845
69846    /// Set `SOL_IP` -> `IP_PKTINFO`.
69847    pub fn r#set_ip_packet_info(
69848        &self,
69849        mut value: bool,
69850        ___deadline: zx::MonotonicInstant,
69851    ) -> Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error> {
69852        let _response =
69853            self.client
69854                .send_query::<BaseNetworkSocketSetIpPacketInfoRequest, fidl::encoding::ResultType<
69855                    fidl::encoding::EmptyStruct,
69856                    fidl_fuchsia_posix::Errno,
69857                >>(
69858                    (value,),
69859                    0x392d16bee20c0e16,
69860                    fidl::encoding::DynamicFlags::empty(),
69861                    ___deadline,
69862                )?;
69863        Ok(_response.map(|x| x))
69864    }
69865
69866    /// Get `SOL_IP` -> `IP_PKTINFO`.
69867    pub fn r#get_ip_packet_info(
69868        &self,
69869        ___deadline: zx::MonotonicInstant,
69870    ) -> Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error> {
69871        let _response = self
69872            .client
69873            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69874                BaseNetworkSocketGetIpPacketInfoResponse,
69875                fidl_fuchsia_posix::Errno,
69876            >>(
69877                (), 0x54b505f242280740, fidl::encoding::DynamicFlags::empty(), ___deadline
69878            )?;
69879        Ok(_response.map(|x| x.value))
69880    }
69881
69882    /// Set `SOL_IP` -> `IP_RECVTOS`.
69883    pub fn r#set_ip_receive_type_of_service(
69884        &self,
69885        mut value: bool,
69886        ___deadline: zx::MonotonicInstant,
69887    ) -> Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error> {
69888        let _response = self.client.send_query::<
69889            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
69890            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
69891        >(
69892            (value,),
69893            0x6c4f6714995f84ef,
69894            fidl::encoding::DynamicFlags::empty(),
69895            ___deadline,
69896        )?;
69897        Ok(_response.map(|x| x))
69898    }
69899
69900    /// Get `SOL_IP` -> `IP_RECVTOS`.
69901    pub fn r#get_ip_receive_type_of_service(
69902        &self,
69903        ___deadline: zx::MonotonicInstant,
69904    ) -> Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error> {
69905        let _response = self
69906            .client
69907            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69908                BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
69909                fidl_fuchsia_posix::Errno,
69910            >>(
69911                (), 0x4158ba7dc2795960, fidl::encoding::DynamicFlags::empty(), ___deadline
69912            )?;
69913        Ok(_response.map(|x| x.value))
69914    }
69915
69916    /// Set `SOL_IP` -> `IP_RECVTTL`.
69917    pub fn r#set_ip_receive_ttl(
69918        &self,
69919        mut value: bool,
69920        ___deadline: zx::MonotonicInstant,
69921    ) -> Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error> {
69922        let _response =
69923            self.client
69924                .send_query::<BaseNetworkSocketSetIpReceiveTtlRequest, fidl::encoding::ResultType<
69925                    fidl::encoding::EmptyStruct,
69926                    fidl_fuchsia_posix::Errno,
69927                >>(
69928                    (value,),
69929                    0x46f15be0ce0ab82b,
69930                    fidl::encoding::DynamicFlags::empty(),
69931                    ___deadline,
69932                )?;
69933        Ok(_response.map(|x| x))
69934    }
69935
69936    /// Get `SOL_IP` -> `IP_RECVTTL`.
69937    pub fn r#get_ip_receive_ttl(
69938        &self,
69939        ___deadline: zx::MonotonicInstant,
69940    ) -> Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error> {
69941        let _response = self
69942            .client
69943            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69944                BaseNetworkSocketGetIpReceiveTtlResponse,
69945                fidl_fuchsia_posix::Errno,
69946            >>(
69947                (), 0x678ddd5a5dfa2eb5, fidl::encoding::DynamicFlags::empty(), ___deadline
69948            )?;
69949        Ok(_response.map(|x| x.value))
69950    }
69951
69952    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
69953    pub fn r#set_ip_multicast_interface(
69954        &self,
69955        mut iface: u64,
69956        mut address: &fidl_fuchsia_net::Ipv4Address,
69957        ___deadline: zx::MonotonicInstant,
69958    ) -> Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error> {
69959        let _response = self.client.send_query::<
69960            BaseNetworkSocketSetIpMulticastInterfaceRequest,
69961            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
69962        >(
69963            (iface, address,),
69964            0x752fbfa9b12befe,
69965            fidl::encoding::DynamicFlags::empty(),
69966            ___deadline,
69967        )?;
69968        Ok(_response.map(|x| x))
69969    }
69970
69971    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
69972    pub fn r#get_ip_multicast_interface(
69973        &self,
69974        ___deadline: zx::MonotonicInstant,
69975    ) -> Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error> {
69976        let _response = self
69977            .client
69978            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69979                BaseNetworkSocketGetIpMulticastInterfaceResponse,
69980                fidl_fuchsia_posix::Errno,
69981            >>(
69982                (), 0x320bd14c4df046c4, fidl::encoding::DynamicFlags::empty(), ___deadline
69983            )?;
69984        Ok(_response.map(|x| x.value))
69985    }
69986
69987    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
69988    pub fn r#set_ip_multicast_ttl(
69989        &self,
69990        mut value: &OptionalUint8,
69991        ___deadline: zx::MonotonicInstant,
69992    ) -> Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error> {
69993        let _response =
69994            self.client
69995                .send_query::<BaseNetworkSocketSetIpMulticastTtlRequest, fidl::encoding::ResultType<
69996                    fidl::encoding::EmptyStruct,
69997                    fidl_fuchsia_posix::Errno,
69998                >>(
69999                    (value,),
70000                    0x63134d53772916a1,
70001                    fidl::encoding::DynamicFlags::empty(),
70002                    ___deadline,
70003                )?;
70004        Ok(_response.map(|x| x))
70005    }
70006
70007    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
70008    pub fn r#get_ip_multicast_ttl(
70009        &self,
70010        ___deadline: zx::MonotonicInstant,
70011    ) -> Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error> {
70012        let _response = self
70013            .client
70014            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70015                BaseNetworkSocketGetIpMulticastTtlResponse,
70016                fidl_fuchsia_posix::Errno,
70017            >>(
70018                (), 0x4665cd378f39e1a, fidl::encoding::DynamicFlags::empty(), ___deadline
70019            )?;
70020        Ok(_response.map(|x| x.value))
70021    }
70022
70023    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
70024    pub fn r#set_ip_multicast_loopback(
70025        &self,
70026        mut value: bool,
70027        ___deadline: zx::MonotonicInstant,
70028    ) -> Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error> {
70029        let _response = self.client.send_query::<
70030            BaseNetworkSocketSetIpMulticastLoopbackRequest,
70031            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
70032        >(
70033            (value,),
70034            0x20c55c11f00943ea,
70035            fidl::encoding::DynamicFlags::empty(),
70036            ___deadline,
70037        )?;
70038        Ok(_response.map(|x| x))
70039    }
70040
70041    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
70042    pub fn r#get_ip_multicast_loopback(
70043        &self,
70044        ___deadline: zx::MonotonicInstant,
70045    ) -> Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error> {
70046        let _response = self
70047            .client
70048            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70049                BaseNetworkSocketGetIpMulticastLoopbackResponse,
70050                fidl_fuchsia_posix::Errno,
70051            >>(
70052                (), 0x3b6b26ff558298f2, fidl::encoding::DynamicFlags::empty(), ___deadline
70053            )?;
70054        Ok(_response.map(|x| x.value))
70055    }
70056
70057    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
70058    pub fn r#add_ip_membership(
70059        &self,
70060        mut membership: &IpMulticastMembership,
70061        ___deadline: zx::MonotonicInstant,
70062    ) -> Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error> {
70063        let _response =
70064            self.client
70065                .send_query::<BaseNetworkSocketAddIpMembershipRequest, fidl::encoding::ResultType<
70066                    fidl::encoding::EmptyStruct,
70067                    fidl_fuchsia_posix::Errno,
70068                >>(
70069                    (membership,),
70070                    0x76bc7df115a3b4d0,
70071                    fidl::encoding::DynamicFlags::empty(),
70072                    ___deadline,
70073                )?;
70074        Ok(_response.map(|x| x))
70075    }
70076
70077    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
70078    pub fn r#drop_ip_membership(
70079        &self,
70080        mut membership: &IpMulticastMembership,
70081        ___deadline: zx::MonotonicInstant,
70082    ) -> Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error> {
70083        let _response =
70084            self.client
70085                .send_query::<BaseNetworkSocketDropIpMembershipRequest, fidl::encoding::ResultType<
70086                    fidl::encoding::EmptyStruct,
70087                    fidl_fuchsia_posix::Errno,
70088                >>(
70089                    (membership,),
70090                    0x2888f3099188d03,
70091                    fidl::encoding::DynamicFlags::empty(),
70092                    ___deadline,
70093                )?;
70094        Ok(_response.map(|x| x))
70095    }
70096
70097    /// Set `SOL_IP` -> `IP_TRANSPARENT`
70098    pub fn r#set_ip_transparent(
70099        &self,
70100        mut value: bool,
70101        ___deadline: zx::MonotonicInstant,
70102    ) -> Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error> {
70103        let _response =
70104            self.client
70105                .send_query::<BaseNetworkSocketSetIpTransparentRequest, fidl::encoding::ResultType<
70106                    fidl::encoding::EmptyStruct,
70107                    fidl_fuchsia_posix::Errno,
70108                >>(
70109                    (value,),
70110                    0x1ae532b0c066e3a0,
70111                    fidl::encoding::DynamicFlags::empty(),
70112                    ___deadline,
70113                )?;
70114        Ok(_response.map(|x| x))
70115    }
70116
70117    /// Get `SOL_IP` -> `IP_TRANSPARENT`
70118    pub fn r#get_ip_transparent(
70119        &self,
70120        ___deadline: zx::MonotonicInstant,
70121    ) -> Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error> {
70122        let _response = self
70123            .client
70124            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70125                BaseNetworkSocketGetIpTransparentResponse,
70126                fidl_fuchsia_posix::Errno,
70127            >>(
70128                (), 0x51d43695962ebfb5, fidl::encoding::DynamicFlags::empty(), ___deadline
70129            )?;
70130        Ok(_response.map(|x| x.value))
70131    }
70132
70133    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
70134    pub fn r#set_ip_receive_original_destination_address(
70135        &self,
70136        mut value: bool,
70137        ___deadline: zx::MonotonicInstant,
70138    ) -> Result<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult, fidl::Error> {
70139        let _response = self.client.send_query::<
70140            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
70141            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
70142        >(
70143            (value,),
70144            0x4722b4ce52f7840,
70145            fidl::encoding::DynamicFlags::empty(),
70146            ___deadline,
70147        )?;
70148        Ok(_response.map(|x| x))
70149    }
70150
70151    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
70152    pub fn r#get_ip_receive_original_destination_address(
70153        &self,
70154        ___deadline: zx::MonotonicInstant,
70155    ) -> Result<BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult, fidl::Error> {
70156        let _response = self
70157            .client
70158            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70159                BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
70160                fidl_fuchsia_posix::Errno,
70161            >>(
70162                (), 0x2a0e7dc5d6bfdfe9, fidl::encoding::DynamicFlags::empty(), ___deadline
70163            )?;
70164        Ok(_response.map(|x| x.value))
70165    }
70166
70167    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
70168    pub fn r#add_ipv6_membership(
70169        &self,
70170        mut membership: &Ipv6MulticastMembership,
70171        ___deadline: zx::MonotonicInstant,
70172    ) -> Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error> {
70173        let _response =
70174            self.client
70175                .send_query::<BaseNetworkSocketAddIpv6MembershipRequest, fidl::encoding::ResultType<
70176                    fidl::encoding::EmptyStruct,
70177                    fidl_fuchsia_posix::Errno,
70178                >>(
70179                    (membership,),
70180                    0x7c94727acb4ea4b3,
70181                    fidl::encoding::DynamicFlags::empty(),
70182                    ___deadline,
70183                )?;
70184        Ok(_response.map(|x| x))
70185    }
70186
70187    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
70188    pub fn r#drop_ipv6_membership(
70189        &self,
70190        mut membership: &Ipv6MulticastMembership,
70191        ___deadline: zx::MonotonicInstant,
70192    ) -> Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error> {
70193        let _response = self.client.send_query::<
70194            BaseNetworkSocketDropIpv6MembershipRequest,
70195            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
70196        >(
70197            (membership,),
70198            0x42104c70ccaba304,
70199            fidl::encoding::DynamicFlags::empty(),
70200            ___deadline,
70201        )?;
70202        Ok(_response.map(|x| x))
70203    }
70204
70205    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
70206    pub fn r#set_ipv6_multicast_interface(
70207        &self,
70208        mut value: u64,
70209        ___deadline: zx::MonotonicInstant,
70210    ) -> Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error> {
70211        let _response = self.client.send_query::<
70212            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
70213            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
70214        >(
70215            (value,),
70216            0x135f76db3774ab3b,
70217            fidl::encoding::DynamicFlags::empty(),
70218            ___deadline,
70219        )?;
70220        Ok(_response.map(|x| x))
70221    }
70222
70223    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
70224    pub fn r#get_ipv6_multicast_interface(
70225        &self,
70226        ___deadline: zx::MonotonicInstant,
70227    ) -> Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error> {
70228        let _response = self
70229            .client
70230            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70231                BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
70232                fidl_fuchsia_posix::Errno,
70233            >>(
70234                (), 0x1f26fcdd348f1882, fidl::encoding::DynamicFlags::empty(), ___deadline
70235            )?;
70236        Ok(_response.map(|x| x.value))
70237    }
70238
70239    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
70240    pub fn r#set_ipv6_unicast_hops(
70241        &self,
70242        mut value: &OptionalUint8,
70243        ___deadline: zx::MonotonicInstant,
70244    ) -> Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error> {
70245        let _response = self.client.send_query::<
70246            BaseNetworkSocketSetIpv6UnicastHopsRequest,
70247            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
70248        >(
70249            (value,),
70250            0x157d51e98f462859,
70251            fidl::encoding::DynamicFlags::empty(),
70252            ___deadline,
70253        )?;
70254        Ok(_response.map(|x| x))
70255    }
70256
70257    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
70258    pub fn r#get_ipv6_unicast_hops(
70259        &self,
70260        ___deadline: zx::MonotonicInstant,
70261    ) -> Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error> {
70262        let _response = self
70263            .client
70264            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70265                BaseNetworkSocketGetIpv6UnicastHopsResponse,
70266                fidl_fuchsia_posix::Errno,
70267            >>(
70268                (), 0x21f4641cad8bd8d2, fidl::encoding::DynamicFlags::empty(), ___deadline
70269            )?;
70270        Ok(_response.map(|x| x.value))
70271    }
70272
70273    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
70274    pub fn r#set_ipv6_receive_hop_limit(
70275        &self,
70276        mut value: bool,
70277        ___deadline: zx::MonotonicInstant,
70278    ) -> Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error> {
70279        let _response = self.client.send_query::<
70280            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
70281            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
70282        >(
70283            (value,),
70284            0x5c24808ed2e84a1e,
70285            fidl::encoding::DynamicFlags::empty(),
70286            ___deadline,
70287        )?;
70288        Ok(_response.map(|x| x))
70289    }
70290
70291    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
70292    pub fn r#get_ipv6_receive_hop_limit(
70293        &self,
70294        ___deadline: zx::MonotonicInstant,
70295    ) -> Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error> {
70296        let _response = self
70297            .client
70298            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70299                BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
70300                fidl_fuchsia_posix::Errno,
70301            >>(
70302                (), 0x341e06689885b4c0, fidl::encoding::DynamicFlags::empty(), ___deadline
70303            )?;
70304        Ok(_response.map(|x| x.value))
70305    }
70306
70307    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
70308    pub fn r#set_ipv6_multicast_hops(
70309        &self,
70310        mut value: &OptionalUint8,
70311        ___deadline: zx::MonotonicInstant,
70312    ) -> Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error> {
70313        let _response = self.client.send_query::<
70314            BaseNetworkSocketSetIpv6MulticastHopsRequest,
70315            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
70316        >(
70317            (value,),
70318            0x25b9cd4d181f82c1,
70319            fidl::encoding::DynamicFlags::empty(),
70320            ___deadline,
70321        )?;
70322        Ok(_response.map(|x| x))
70323    }
70324
70325    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
70326    pub fn r#get_ipv6_multicast_hops(
70327        &self,
70328        ___deadline: zx::MonotonicInstant,
70329    ) -> Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error> {
70330        let _response = self
70331            .client
70332            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70333                BaseNetworkSocketGetIpv6MulticastHopsResponse,
70334                fidl_fuchsia_posix::Errno,
70335            >>(
70336                (), 0x52916948a365012a, fidl::encoding::DynamicFlags::empty(), ___deadline
70337            )?;
70338        Ok(_response.map(|x| x.value))
70339    }
70340
70341    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
70342    pub fn r#set_ipv6_multicast_loopback(
70343        &self,
70344        mut value: bool,
70345        ___deadline: zx::MonotonicInstant,
70346    ) -> Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error> {
70347        let _response = self.client.send_query::<
70348            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
70349            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
70350        >(
70351            (value,),
70352            0x55701c409ff41b40,
70353            fidl::encoding::DynamicFlags::empty(),
70354            ___deadline,
70355        )?;
70356        Ok(_response.map(|x| x))
70357    }
70358
70359    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
70360    pub fn r#get_ipv6_multicast_loopback(
70361        &self,
70362        ___deadline: zx::MonotonicInstant,
70363    ) -> Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error> {
70364        let _response = self
70365            .client
70366            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70367                BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
70368                fidl_fuchsia_posix::Errno,
70369            >>(
70370                (), 0x4415b701fde319c3, fidl::encoding::DynamicFlags::empty(), ___deadline
70371            )?;
70372        Ok(_response.map(|x| x.value))
70373    }
70374
70375    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
70376    pub fn r#set_ipv6_only(
70377        &self,
70378        mut value: bool,
70379        ___deadline: zx::MonotonicInstant,
70380    ) -> Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error> {
70381        let _response =
70382            self.client
70383                .send_query::<BaseNetworkSocketSetIpv6OnlyRequest, fidl::encoding::ResultType<
70384                    fidl::encoding::EmptyStruct,
70385                    fidl_fuchsia_posix::Errno,
70386                >>(
70387                    (value,),
70388                    0x4873f1364758cbba,
70389                    fidl::encoding::DynamicFlags::empty(),
70390                    ___deadline,
70391                )?;
70392        Ok(_response.map(|x| x))
70393    }
70394
70395    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
70396    pub fn r#get_ipv6_only(
70397        &self,
70398        ___deadline: zx::MonotonicInstant,
70399    ) -> Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error> {
70400        let _response = self
70401            .client
70402            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70403                BaseNetworkSocketGetIpv6OnlyResponse,
70404                fidl_fuchsia_posix::Errno,
70405            >>(
70406                (), 0x4aa3340a1a26b89c, fidl::encoding::DynamicFlags::empty(), ___deadline
70407            )?;
70408        Ok(_response.map(|x| x.value))
70409    }
70410
70411    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
70412    pub fn r#set_ipv6_receive_traffic_class(
70413        &self,
70414        mut value: bool,
70415        ___deadline: zx::MonotonicInstant,
70416    ) -> Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error> {
70417        let _response = self.client.send_query::<
70418            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
70419            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
70420        >(
70421            (value,),
70422            0x58f07c8788d099a0,
70423            fidl::encoding::DynamicFlags::empty(),
70424            ___deadline,
70425        )?;
70426        Ok(_response.map(|x| x))
70427    }
70428
70429    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
70430    pub fn r#get_ipv6_receive_traffic_class(
70431        &self,
70432        ___deadline: zx::MonotonicInstant,
70433    ) -> Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error> {
70434        let _response = self
70435            .client
70436            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70437                BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
70438                fidl_fuchsia_posix::Errno,
70439            >>(
70440                (), 0x2e334df1da553ffa, fidl::encoding::DynamicFlags::empty(), ___deadline
70441            )?;
70442        Ok(_response.map(|x| x.value))
70443    }
70444
70445    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
70446    pub fn r#set_ipv6_traffic_class(
70447        &self,
70448        mut value: &OptionalUint8,
70449        ___deadline: zx::MonotonicInstant,
70450    ) -> Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error> {
70451        let _response = self.client.send_query::<
70452            BaseNetworkSocketSetIpv6TrafficClassRequest,
70453            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
70454        >(
70455            (value,),
70456            0x6af077800c5a0b4f,
70457            fidl::encoding::DynamicFlags::empty(),
70458            ___deadline,
70459        )?;
70460        Ok(_response.map(|x| x))
70461    }
70462
70463    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
70464    pub fn r#get_ipv6_traffic_class(
70465        &self,
70466        ___deadline: zx::MonotonicInstant,
70467    ) -> Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error> {
70468        let _response = self
70469            .client
70470            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70471                BaseNetworkSocketGetIpv6TrafficClassResponse,
70472                fidl_fuchsia_posix::Errno,
70473            >>(
70474                (), 0x6baf6eed8fc2f04, fidl::encoding::DynamicFlags::empty(), ___deadline
70475            )?;
70476        Ok(_response.map(|x| x.value))
70477    }
70478
70479    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
70480    pub fn r#set_ipv6_receive_packet_info(
70481        &self,
70482        mut value: bool,
70483        ___deadline: zx::MonotonicInstant,
70484    ) -> Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error> {
70485        let _response = self.client.send_query::<
70486            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
70487            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
70488        >(
70489            (value,),
70490            0x19259775b1a92768,
70491            fidl::encoding::DynamicFlags::empty(),
70492            ___deadline,
70493        )?;
70494        Ok(_response.map(|x| x))
70495    }
70496
70497    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
70498    pub fn r#get_ipv6_receive_packet_info(
70499        &self,
70500        ___deadline: zx::MonotonicInstant,
70501    ) -> Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error> {
70502        let _response = self
70503            .client
70504            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70505                BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
70506                fidl_fuchsia_posix::Errno,
70507            >>(
70508                (), 0x7acd4a2775baec75, fidl::encoding::DynamicFlags::empty(), ___deadline
70509            )?;
70510        Ok(_response.map(|x| x.value))
70511    }
70512
70513    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
70514    pub fn r#get_original_destination(
70515        &self,
70516        ___deadline: zx::MonotonicInstant,
70517    ) -> Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error> {
70518        let _response = self
70519            .client
70520            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70521                BaseNetworkSocketGetOriginalDestinationResponse,
70522                fidl_fuchsia_posix::Errno,
70523            >>(
70524                (), 0x38bf28f0dafdbac0, fidl::encoding::DynamicFlags::empty(), ___deadline
70525            )?;
70526        Ok(_response.map(|x| x.value))
70527    }
70528
70529    /// Retrieves creation information from the socket.
70530    ///
70531    /// - response `domain` the socket's associated domain.
70532    /// - response `proto` the socket's associated protocol.
70533    pub fn r#get_info(
70534        &self,
70535        ___deadline: zx::MonotonicInstant,
70536    ) -> Result<BaseDatagramSocketGetInfoResult, fidl::Error> {
70537        let _response = self
70538            .client
70539            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70540                BaseDatagramSocketGetInfoResponse,
70541                fidl_fuchsia_posix::Errno,
70542            >>(
70543                (), 0x48aa0a1f6a32d2ed, fidl::encoding::DynamicFlags::empty(), ___deadline
70544            )?;
70545        Ok(_response.map(|x| (x.domain, x.proto)))
70546    }
70547
70548    pub fn r#describe(
70549        &self,
70550        ___deadline: zx::MonotonicInstant,
70551    ) -> Result<SynchronousDatagramSocketDescribeResponse, fidl::Error> {
70552        let _response = self
70553            .client
70554            .send_query::<fidl::encoding::EmptyPayload, SynchronousDatagramSocketDescribeResponse>(
70555                (),
70556                0x585f20b73631070d,
70557                fidl::encoding::DynamicFlags::empty(),
70558                ___deadline,
70559            )?;
70560        Ok(_response)
70561    }
70562
70563    /// Receives a message from the socket.
70564    ///
70565    /// + request `want_addr` request message's source address information to
70566    ///   be returned.
70567    /// + request `data_len` the maximum allowed length of the response data
70568    ///   buffer.
70569    /// + request `want_control` request ancillary data to be returned.
70570    /// + request `flags` flags for the receive request.
70571    /// - response `addr` the message's source address information, if
70572    ///   requested.
70573    /// - response `data` the message.
70574    /// - response `control` control messages, if requested.
70575    /// - response `truncated` indicates whether or not the returned message
70576    ///   was truncated.
70577    pub fn r#recv_msg(
70578        &self,
70579        mut want_addr: bool,
70580        mut data_len: u32,
70581        mut want_control: bool,
70582        mut flags: RecvMsgFlags,
70583        ___deadline: zx::MonotonicInstant,
70584    ) -> Result<SynchronousDatagramSocketRecvMsgResult, fidl::Error> {
70585        let _response = self
70586            .client
70587            .send_query::<SynchronousDatagramSocketRecvMsgRequest, fidl::encoding::ResultType<
70588                SynchronousDatagramSocketRecvMsgResponse,
70589                fidl_fuchsia_posix::Errno,
70590            >>(
70591                (want_addr, data_len, want_control, flags),
70592                0x28e494e48fb5dbf3,
70593                fidl::encoding::DynamicFlags::empty(),
70594                ___deadline,
70595            )?;
70596        Ok(_response.map(|x| (x.addr, x.data, x.control, x.truncated)))
70597    }
70598
70599    /// Sends a message on the socket.
70600    ///
70601    /// + request `addr` the address to send the message to. If unset, will send
70602    ///   to the connected peer.
70603    /// + request `data` the message.
70604    /// + request `control` ancillary data.
70605    /// + request `flags` flags for the send request.
70606    /// - response `len` the number of bytes sent.
70607    pub fn r#send_msg(
70608        &self,
70609        mut addr: Option<&fidl_fuchsia_net::SocketAddress>,
70610        mut data: &[u8],
70611        mut control: &DatagramSocketSendControlData,
70612        mut flags: SendMsgFlags,
70613        ___deadline: zx::MonotonicInstant,
70614    ) -> Result<SynchronousDatagramSocketSendMsgResult, fidl::Error> {
70615        let _response = self
70616            .client
70617            .send_query::<SynchronousDatagramSocketSendMsgRequest, fidl::encoding::ResultType<
70618                SynchronousDatagramSocketSendMsgResponse,
70619                fidl_fuchsia_posix::Errno,
70620            >>(
70621                (addr, data, control, flags),
70622                0x12dc2fceab6cefaa,
70623                fidl::encoding::DynamicFlags::empty(),
70624                ___deadline,
70625            )?;
70626        Ok(_response.map(|x| x.len))
70627    }
70628}
70629
70630#[cfg(target_os = "fuchsia")]
70631impl From<SynchronousDatagramSocketSynchronousProxy> for zx::Handle {
70632    fn from(value: SynchronousDatagramSocketSynchronousProxy) -> Self {
70633        value.into_channel().into()
70634    }
70635}
70636
70637#[cfg(target_os = "fuchsia")]
70638impl From<fidl::Channel> for SynchronousDatagramSocketSynchronousProxy {
70639    fn from(value: fidl::Channel) -> Self {
70640        Self::new(value)
70641    }
70642}
70643
70644#[cfg(target_os = "fuchsia")]
70645impl fidl::endpoints::FromClient for SynchronousDatagramSocketSynchronousProxy {
70646    type Protocol = SynchronousDatagramSocketMarker;
70647
70648    fn from_client(value: fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>) -> Self {
70649        Self::new(value.into_channel())
70650    }
70651}
70652
70653#[derive(Debug, Clone)]
70654pub struct SynchronousDatagramSocketProxy {
70655    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
70656}
70657
70658impl fidl::endpoints::Proxy for SynchronousDatagramSocketProxy {
70659    type Protocol = SynchronousDatagramSocketMarker;
70660
70661    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
70662        Self::new(inner)
70663    }
70664
70665    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
70666        self.client.into_channel().map_err(|client| Self { client })
70667    }
70668
70669    fn as_channel(&self) -> &::fidl::AsyncChannel {
70670        self.client.as_channel()
70671    }
70672}
70673
70674impl SynchronousDatagramSocketProxy {
70675    /// Create a new Proxy for fuchsia.posix.socket/SynchronousDatagramSocket.
70676    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
70677        let protocol_name =
70678            <SynchronousDatagramSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
70679        Self { client: fidl::client::Client::new(channel, protocol_name) }
70680    }
70681
70682    /// Get a Stream of events from the remote end of the protocol.
70683    ///
70684    /// # Panics
70685    ///
70686    /// Panics if the event stream was already taken.
70687    pub fn take_event_stream(&self) -> SynchronousDatagramSocketEventStream {
70688        SynchronousDatagramSocketEventStream { event_receiver: self.client.take_event_receiver() }
70689    }
70690
70691    pub fn r#clone(
70692        &self,
70693        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
70694    ) -> Result<(), fidl::Error> {
70695        SynchronousDatagramSocketProxyInterface::r#clone(self, request)
70696    }
70697
70698    /// Terminates the connection.
70699    ///
70700    /// After calling `Close`, the client must not send any other requests.
70701    ///
70702    /// Servers, after sending the status response, should close the connection
70703    /// regardless of status and without sending an epitaph.
70704    ///
70705    /// Closing the client end of the channel should be semantically equivalent
70706    /// to calling `Close` without knowing when the close has completed or its
70707    /// status.
70708    pub fn r#close(
70709        &self,
70710    ) -> fidl::client::QueryResponseFut<
70711        fidl_fuchsia_unknown::CloseableCloseResult,
70712        fidl::encoding::DefaultFuchsiaResourceDialect,
70713    > {
70714        SynchronousDatagramSocketProxyInterface::r#close(self)
70715    }
70716
70717    pub fn r#query(
70718        &self,
70719    ) -> fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>
70720    {
70721        SynchronousDatagramSocketProxyInterface::r#query(self)
70722    }
70723
70724    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
70725    pub fn r#set_reuse_address(
70726        &self,
70727        mut value: bool,
70728    ) -> fidl::client::QueryResponseFut<
70729        BaseSocketSetReuseAddressResult,
70730        fidl::encoding::DefaultFuchsiaResourceDialect,
70731    > {
70732        SynchronousDatagramSocketProxyInterface::r#set_reuse_address(self, value)
70733    }
70734
70735    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
70736    pub fn r#get_reuse_address(
70737        &self,
70738    ) -> fidl::client::QueryResponseFut<
70739        BaseSocketGetReuseAddressResult,
70740        fidl::encoding::DefaultFuchsiaResourceDialect,
70741    > {
70742        SynchronousDatagramSocketProxyInterface::r#get_reuse_address(self)
70743    }
70744
70745    /// Get `SOL_SOCKET` -> `SO_ERROR`.
70746    /// Returns the last error if there is an error set on the socket.
70747    pub fn r#get_error(
70748        &self,
70749    ) -> fidl::client::QueryResponseFut<
70750        BaseSocketGetErrorResult,
70751        fidl::encoding::DefaultFuchsiaResourceDialect,
70752    > {
70753        SynchronousDatagramSocketProxyInterface::r#get_error(self)
70754    }
70755
70756    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
70757    pub fn r#set_broadcast(
70758        &self,
70759        mut value: bool,
70760    ) -> fidl::client::QueryResponseFut<
70761        BaseSocketSetBroadcastResult,
70762        fidl::encoding::DefaultFuchsiaResourceDialect,
70763    > {
70764        SynchronousDatagramSocketProxyInterface::r#set_broadcast(self, value)
70765    }
70766
70767    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
70768    pub fn r#get_broadcast(
70769        &self,
70770    ) -> fidl::client::QueryResponseFut<
70771        BaseSocketGetBroadcastResult,
70772        fidl::encoding::DefaultFuchsiaResourceDialect,
70773    > {
70774        SynchronousDatagramSocketProxyInterface::r#get_broadcast(self)
70775    }
70776
70777    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
70778    pub fn r#set_send_buffer(
70779        &self,
70780        mut value_bytes: u64,
70781    ) -> fidl::client::QueryResponseFut<
70782        BaseSocketSetSendBufferResult,
70783        fidl::encoding::DefaultFuchsiaResourceDialect,
70784    > {
70785        SynchronousDatagramSocketProxyInterface::r#set_send_buffer(self, value_bytes)
70786    }
70787
70788    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
70789    pub fn r#get_send_buffer(
70790        &self,
70791    ) -> fidl::client::QueryResponseFut<
70792        BaseSocketGetSendBufferResult,
70793        fidl::encoding::DefaultFuchsiaResourceDialect,
70794    > {
70795        SynchronousDatagramSocketProxyInterface::r#get_send_buffer(self)
70796    }
70797
70798    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
70799    pub fn r#set_receive_buffer(
70800        &self,
70801        mut value_bytes: u64,
70802    ) -> fidl::client::QueryResponseFut<
70803        BaseSocketSetReceiveBufferResult,
70804        fidl::encoding::DefaultFuchsiaResourceDialect,
70805    > {
70806        SynchronousDatagramSocketProxyInterface::r#set_receive_buffer(self, value_bytes)
70807    }
70808
70809    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
70810    pub fn r#get_receive_buffer(
70811        &self,
70812    ) -> fidl::client::QueryResponseFut<
70813        BaseSocketGetReceiveBufferResult,
70814        fidl::encoding::DefaultFuchsiaResourceDialect,
70815    > {
70816        SynchronousDatagramSocketProxyInterface::r#get_receive_buffer(self)
70817    }
70818
70819    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
70820    pub fn r#set_keep_alive(
70821        &self,
70822        mut value: bool,
70823    ) -> fidl::client::QueryResponseFut<
70824        BaseSocketSetKeepAliveResult,
70825        fidl::encoding::DefaultFuchsiaResourceDialect,
70826    > {
70827        SynchronousDatagramSocketProxyInterface::r#set_keep_alive(self, value)
70828    }
70829
70830    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
70831    pub fn r#get_keep_alive(
70832        &self,
70833    ) -> fidl::client::QueryResponseFut<
70834        BaseSocketGetKeepAliveResult,
70835        fidl::encoding::DefaultFuchsiaResourceDialect,
70836    > {
70837        SynchronousDatagramSocketProxyInterface::r#get_keep_alive(self)
70838    }
70839
70840    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
70841    pub fn r#set_out_of_band_inline(
70842        &self,
70843        mut value: bool,
70844    ) -> fidl::client::QueryResponseFut<
70845        BaseSocketSetOutOfBandInlineResult,
70846        fidl::encoding::DefaultFuchsiaResourceDialect,
70847    > {
70848        SynchronousDatagramSocketProxyInterface::r#set_out_of_band_inline(self, value)
70849    }
70850
70851    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
70852    pub fn r#get_out_of_band_inline(
70853        &self,
70854    ) -> fidl::client::QueryResponseFut<
70855        BaseSocketGetOutOfBandInlineResult,
70856        fidl::encoding::DefaultFuchsiaResourceDialect,
70857    > {
70858        SynchronousDatagramSocketProxyInterface::r#get_out_of_band_inline(self)
70859    }
70860
70861    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
70862    pub fn r#set_no_check(
70863        &self,
70864        mut value: bool,
70865    ) -> fidl::client::QueryResponseFut<
70866        BaseSocketSetNoCheckResult,
70867        fidl::encoding::DefaultFuchsiaResourceDialect,
70868    > {
70869        SynchronousDatagramSocketProxyInterface::r#set_no_check(self, value)
70870    }
70871
70872    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
70873    pub fn r#get_no_check(
70874        &self,
70875    ) -> fidl::client::QueryResponseFut<
70876        BaseSocketGetNoCheckResult,
70877        fidl::encoding::DefaultFuchsiaResourceDialect,
70878    > {
70879        SynchronousDatagramSocketProxyInterface::r#get_no_check(self)
70880    }
70881
70882    /// Set `SOL_SOCKET` -> `SO_LINGER`.
70883    pub fn r#set_linger(
70884        &self,
70885        mut linger: bool,
70886        mut length_secs: u32,
70887    ) -> fidl::client::QueryResponseFut<
70888        BaseSocketSetLingerResult,
70889        fidl::encoding::DefaultFuchsiaResourceDialect,
70890    > {
70891        SynchronousDatagramSocketProxyInterface::r#set_linger(self, linger, length_secs)
70892    }
70893
70894    /// Get `SOL_SOCKET` -> `SO_LINGER`.
70895    pub fn r#get_linger(
70896        &self,
70897    ) -> fidl::client::QueryResponseFut<
70898        BaseSocketGetLingerResult,
70899        fidl::encoding::DefaultFuchsiaResourceDialect,
70900    > {
70901        SynchronousDatagramSocketProxyInterface::r#get_linger(self)
70902    }
70903
70904    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
70905    pub fn r#set_reuse_port(
70906        &self,
70907        mut value: bool,
70908    ) -> fidl::client::QueryResponseFut<
70909        BaseSocketSetReusePortResult,
70910        fidl::encoding::DefaultFuchsiaResourceDialect,
70911    > {
70912        SynchronousDatagramSocketProxyInterface::r#set_reuse_port(self, value)
70913    }
70914
70915    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
70916    pub fn r#get_reuse_port(
70917        &self,
70918    ) -> fidl::client::QueryResponseFut<
70919        BaseSocketGetReusePortResult,
70920        fidl::encoding::DefaultFuchsiaResourceDialect,
70921    > {
70922        SynchronousDatagramSocketProxyInterface::r#get_reuse_port(self)
70923    }
70924
70925    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
70926    pub fn r#get_accept_conn(
70927        &self,
70928    ) -> fidl::client::QueryResponseFut<
70929        BaseSocketGetAcceptConnResult,
70930        fidl::encoding::DefaultFuchsiaResourceDialect,
70931    > {
70932        SynchronousDatagramSocketProxyInterface::r#get_accept_conn(self)
70933    }
70934
70935    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
70936    pub fn r#set_bind_to_device(
70937        &self,
70938        mut value: &str,
70939    ) -> fidl::client::QueryResponseFut<
70940        BaseSocketSetBindToDeviceResult,
70941        fidl::encoding::DefaultFuchsiaResourceDialect,
70942    > {
70943        SynchronousDatagramSocketProxyInterface::r#set_bind_to_device(self, value)
70944    }
70945
70946    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
70947    pub fn r#get_bind_to_device(
70948        &self,
70949    ) -> fidl::client::QueryResponseFut<
70950        BaseSocketGetBindToDeviceResult,
70951        fidl::encoding::DefaultFuchsiaResourceDialect,
70952    > {
70953        SynchronousDatagramSocketProxyInterface::r#get_bind_to_device(self)
70954    }
70955
70956    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
70957    /// If `value` is 0, this clears the bound interface.
70958    pub fn r#set_bind_to_interface_index(
70959        &self,
70960        mut value: u64,
70961    ) -> fidl::client::QueryResponseFut<
70962        BaseSocketSetBindToInterfaceIndexResult,
70963        fidl::encoding::DefaultFuchsiaResourceDialect,
70964    > {
70965        SynchronousDatagramSocketProxyInterface::r#set_bind_to_interface_index(self, value)
70966    }
70967
70968    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
70969    pub fn r#get_bind_to_interface_index(
70970        &self,
70971    ) -> fidl::client::QueryResponseFut<
70972        BaseSocketGetBindToInterfaceIndexResult,
70973        fidl::encoding::DefaultFuchsiaResourceDialect,
70974    > {
70975        SynchronousDatagramSocketProxyInterface::r#get_bind_to_interface_index(self)
70976    }
70977
70978    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
70979    pub fn r#set_timestamp(
70980        &self,
70981        mut value: TimestampOption,
70982    ) -> fidl::client::QueryResponseFut<
70983        BaseSocketSetTimestampResult,
70984        fidl::encoding::DefaultFuchsiaResourceDialect,
70985    > {
70986        SynchronousDatagramSocketProxyInterface::r#set_timestamp(self, value)
70987    }
70988
70989    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
70990    pub fn r#get_timestamp(
70991        &self,
70992    ) -> fidl::client::QueryResponseFut<
70993        BaseSocketGetTimestampResult,
70994        fidl::encoding::DefaultFuchsiaResourceDialect,
70995    > {
70996        SynchronousDatagramSocketProxyInterface::r#get_timestamp(self)
70997    }
70998
70999    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
71000    /// unlike the standard SO_MARK, this API has multiple mark domains and each
71001    /// mark can be set independently in each domain.
71002    pub fn r#set_mark(
71003        &self,
71004        mut domain: fidl_fuchsia_net::MarkDomain,
71005        mut mark: &OptionalUint32,
71006    ) -> fidl::client::QueryResponseFut<
71007        BaseSocketSetMarkResult,
71008        fidl::encoding::DefaultFuchsiaResourceDialect,
71009    > {
71010        SynchronousDatagramSocketProxyInterface::r#set_mark(self, domain, mark)
71011    }
71012
71013    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
71014    /// unlike the standard SO_MARK, this API has multiple mark domains and each
71015    /// mark can be retrieved independently in each domain.
71016    pub fn r#get_mark(
71017        &self,
71018        mut domain: fidl_fuchsia_net::MarkDomain,
71019    ) -> fidl::client::QueryResponseFut<
71020        BaseSocketGetMarkResult,
71021        fidl::encoding::DefaultFuchsiaResourceDialect,
71022    > {
71023        SynchronousDatagramSocketProxyInterface::r#get_mark(self, domain)
71024    }
71025
71026    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
71027    pub fn r#get_cookie(
71028        &self,
71029    ) -> fidl::client::QueryResponseFut<
71030        BaseSocketGetCookieResult,
71031        fidl::encoding::DefaultFuchsiaResourceDialect,
71032    > {
71033        SynchronousDatagramSocketProxyInterface::r#get_cookie(self)
71034    }
71035
71036    /// Sets the local address used for the socket.
71037    pub fn r#bind(
71038        &self,
71039        mut addr: &fidl_fuchsia_net::SocketAddress,
71040    ) -> fidl::client::QueryResponseFut<
71041        BaseNetworkSocketBindResult,
71042        fidl::encoding::DefaultFuchsiaResourceDialect,
71043    > {
71044        SynchronousDatagramSocketProxyInterface::r#bind(self, addr)
71045    }
71046
71047    /// Initiates a connection to a remote address.
71048    pub fn r#connect(
71049        &self,
71050        mut addr: &fidl_fuchsia_net::SocketAddress,
71051    ) -> fidl::client::QueryResponseFut<
71052        BaseNetworkSocketConnectResult,
71053        fidl::encoding::DefaultFuchsiaResourceDialect,
71054    > {
71055        SynchronousDatagramSocketProxyInterface::r#connect(self, addr)
71056    }
71057
71058    /// Clears connection information from this socket.
71059    pub fn r#disconnect(
71060        &self,
71061    ) -> fidl::client::QueryResponseFut<
71062        BaseNetworkSocketDisconnectResult,
71063        fidl::encoding::DefaultFuchsiaResourceDialect,
71064    > {
71065        SynchronousDatagramSocketProxyInterface::r#disconnect(self)
71066    }
71067
71068    /// Retrieves the local socket address.
71069    pub fn r#get_sock_name(
71070        &self,
71071    ) -> fidl::client::QueryResponseFut<
71072        BaseNetworkSocketGetSockNameResult,
71073        fidl::encoding::DefaultFuchsiaResourceDialect,
71074    > {
71075        SynchronousDatagramSocketProxyInterface::r#get_sock_name(self)
71076    }
71077
71078    /// Retrieves the remote socket address.
71079    pub fn r#get_peer_name(
71080        &self,
71081    ) -> fidl::client::QueryResponseFut<
71082        BaseNetworkSocketGetPeerNameResult,
71083        fidl::encoding::DefaultFuchsiaResourceDialect,
71084    > {
71085        SynchronousDatagramSocketProxyInterface::r#get_peer_name(self)
71086    }
71087
71088    /// Shuts down part of the socket.
71089    pub fn r#shutdown(
71090        &self,
71091        mut mode: ShutdownMode,
71092    ) -> fidl::client::QueryResponseFut<
71093        BaseNetworkSocketShutdownResult,
71094        fidl::encoding::DefaultFuchsiaResourceDialect,
71095    > {
71096        SynchronousDatagramSocketProxyInterface::r#shutdown(self, mode)
71097    }
71098
71099    /// Set `SOL_IP` -> `IP_TOS`.
71100    pub fn r#set_ip_type_of_service(
71101        &self,
71102        mut value: u8,
71103    ) -> fidl::client::QueryResponseFut<
71104        BaseNetworkSocketSetIpTypeOfServiceResult,
71105        fidl::encoding::DefaultFuchsiaResourceDialect,
71106    > {
71107        SynchronousDatagramSocketProxyInterface::r#set_ip_type_of_service(self, value)
71108    }
71109
71110    /// Get `SOL_IP` -> `IP_TOS`.
71111    pub fn r#get_ip_type_of_service(
71112        &self,
71113    ) -> fidl::client::QueryResponseFut<
71114        BaseNetworkSocketGetIpTypeOfServiceResult,
71115        fidl::encoding::DefaultFuchsiaResourceDialect,
71116    > {
71117        SynchronousDatagramSocketProxyInterface::r#get_ip_type_of_service(self)
71118    }
71119
71120    /// Set `SOL_IP` -> `IP_TTL`.
71121    pub fn r#set_ip_ttl(
71122        &self,
71123        mut value: &OptionalUint8,
71124    ) -> fidl::client::QueryResponseFut<
71125        BaseNetworkSocketSetIpTtlResult,
71126        fidl::encoding::DefaultFuchsiaResourceDialect,
71127    > {
71128        SynchronousDatagramSocketProxyInterface::r#set_ip_ttl(self, value)
71129    }
71130
71131    /// Get `SOL_IP` -> `IP_TTL`.
71132    pub fn r#get_ip_ttl(
71133        &self,
71134    ) -> fidl::client::QueryResponseFut<
71135        BaseNetworkSocketGetIpTtlResult,
71136        fidl::encoding::DefaultFuchsiaResourceDialect,
71137    > {
71138        SynchronousDatagramSocketProxyInterface::r#get_ip_ttl(self)
71139    }
71140
71141    /// Set `SOL_IP` -> `IP_PKTINFO`.
71142    pub fn r#set_ip_packet_info(
71143        &self,
71144        mut value: bool,
71145    ) -> fidl::client::QueryResponseFut<
71146        BaseNetworkSocketSetIpPacketInfoResult,
71147        fidl::encoding::DefaultFuchsiaResourceDialect,
71148    > {
71149        SynchronousDatagramSocketProxyInterface::r#set_ip_packet_info(self, value)
71150    }
71151
71152    /// Get `SOL_IP` -> `IP_PKTINFO`.
71153    pub fn r#get_ip_packet_info(
71154        &self,
71155    ) -> fidl::client::QueryResponseFut<
71156        BaseNetworkSocketGetIpPacketInfoResult,
71157        fidl::encoding::DefaultFuchsiaResourceDialect,
71158    > {
71159        SynchronousDatagramSocketProxyInterface::r#get_ip_packet_info(self)
71160    }
71161
71162    /// Set `SOL_IP` -> `IP_RECVTOS`.
71163    pub fn r#set_ip_receive_type_of_service(
71164        &self,
71165        mut value: bool,
71166    ) -> fidl::client::QueryResponseFut<
71167        BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
71168        fidl::encoding::DefaultFuchsiaResourceDialect,
71169    > {
71170        SynchronousDatagramSocketProxyInterface::r#set_ip_receive_type_of_service(self, value)
71171    }
71172
71173    /// Get `SOL_IP` -> `IP_RECVTOS`.
71174    pub fn r#get_ip_receive_type_of_service(
71175        &self,
71176    ) -> fidl::client::QueryResponseFut<
71177        BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
71178        fidl::encoding::DefaultFuchsiaResourceDialect,
71179    > {
71180        SynchronousDatagramSocketProxyInterface::r#get_ip_receive_type_of_service(self)
71181    }
71182
71183    /// Set `SOL_IP` -> `IP_RECVTTL`.
71184    pub fn r#set_ip_receive_ttl(
71185        &self,
71186        mut value: bool,
71187    ) -> fidl::client::QueryResponseFut<
71188        BaseNetworkSocketSetIpReceiveTtlResult,
71189        fidl::encoding::DefaultFuchsiaResourceDialect,
71190    > {
71191        SynchronousDatagramSocketProxyInterface::r#set_ip_receive_ttl(self, value)
71192    }
71193
71194    /// Get `SOL_IP` -> `IP_RECVTTL`.
71195    pub fn r#get_ip_receive_ttl(
71196        &self,
71197    ) -> fidl::client::QueryResponseFut<
71198        BaseNetworkSocketGetIpReceiveTtlResult,
71199        fidl::encoding::DefaultFuchsiaResourceDialect,
71200    > {
71201        SynchronousDatagramSocketProxyInterface::r#get_ip_receive_ttl(self)
71202    }
71203
71204    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
71205    pub fn r#set_ip_multicast_interface(
71206        &self,
71207        mut iface: u64,
71208        mut address: &fidl_fuchsia_net::Ipv4Address,
71209    ) -> fidl::client::QueryResponseFut<
71210        BaseNetworkSocketSetIpMulticastInterfaceResult,
71211        fidl::encoding::DefaultFuchsiaResourceDialect,
71212    > {
71213        SynchronousDatagramSocketProxyInterface::r#set_ip_multicast_interface(self, iface, address)
71214    }
71215
71216    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
71217    pub fn r#get_ip_multicast_interface(
71218        &self,
71219    ) -> fidl::client::QueryResponseFut<
71220        BaseNetworkSocketGetIpMulticastInterfaceResult,
71221        fidl::encoding::DefaultFuchsiaResourceDialect,
71222    > {
71223        SynchronousDatagramSocketProxyInterface::r#get_ip_multicast_interface(self)
71224    }
71225
71226    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
71227    pub fn r#set_ip_multicast_ttl(
71228        &self,
71229        mut value: &OptionalUint8,
71230    ) -> fidl::client::QueryResponseFut<
71231        BaseNetworkSocketSetIpMulticastTtlResult,
71232        fidl::encoding::DefaultFuchsiaResourceDialect,
71233    > {
71234        SynchronousDatagramSocketProxyInterface::r#set_ip_multicast_ttl(self, value)
71235    }
71236
71237    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
71238    pub fn r#get_ip_multicast_ttl(
71239        &self,
71240    ) -> fidl::client::QueryResponseFut<
71241        BaseNetworkSocketGetIpMulticastTtlResult,
71242        fidl::encoding::DefaultFuchsiaResourceDialect,
71243    > {
71244        SynchronousDatagramSocketProxyInterface::r#get_ip_multicast_ttl(self)
71245    }
71246
71247    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
71248    pub fn r#set_ip_multicast_loopback(
71249        &self,
71250        mut value: bool,
71251    ) -> fidl::client::QueryResponseFut<
71252        BaseNetworkSocketSetIpMulticastLoopbackResult,
71253        fidl::encoding::DefaultFuchsiaResourceDialect,
71254    > {
71255        SynchronousDatagramSocketProxyInterface::r#set_ip_multicast_loopback(self, value)
71256    }
71257
71258    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
71259    pub fn r#get_ip_multicast_loopback(
71260        &self,
71261    ) -> fidl::client::QueryResponseFut<
71262        BaseNetworkSocketGetIpMulticastLoopbackResult,
71263        fidl::encoding::DefaultFuchsiaResourceDialect,
71264    > {
71265        SynchronousDatagramSocketProxyInterface::r#get_ip_multicast_loopback(self)
71266    }
71267
71268    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
71269    pub fn r#add_ip_membership(
71270        &self,
71271        mut membership: &IpMulticastMembership,
71272    ) -> fidl::client::QueryResponseFut<
71273        BaseNetworkSocketAddIpMembershipResult,
71274        fidl::encoding::DefaultFuchsiaResourceDialect,
71275    > {
71276        SynchronousDatagramSocketProxyInterface::r#add_ip_membership(self, membership)
71277    }
71278
71279    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
71280    pub fn r#drop_ip_membership(
71281        &self,
71282        mut membership: &IpMulticastMembership,
71283    ) -> fidl::client::QueryResponseFut<
71284        BaseNetworkSocketDropIpMembershipResult,
71285        fidl::encoding::DefaultFuchsiaResourceDialect,
71286    > {
71287        SynchronousDatagramSocketProxyInterface::r#drop_ip_membership(self, membership)
71288    }
71289
71290    /// Set `SOL_IP` -> `IP_TRANSPARENT`
71291    pub fn r#set_ip_transparent(
71292        &self,
71293        mut value: bool,
71294    ) -> fidl::client::QueryResponseFut<
71295        BaseNetworkSocketSetIpTransparentResult,
71296        fidl::encoding::DefaultFuchsiaResourceDialect,
71297    > {
71298        SynchronousDatagramSocketProxyInterface::r#set_ip_transparent(self, value)
71299    }
71300
71301    /// Get `SOL_IP` -> `IP_TRANSPARENT`
71302    pub fn r#get_ip_transparent(
71303        &self,
71304    ) -> fidl::client::QueryResponseFut<
71305        BaseNetworkSocketGetIpTransparentResult,
71306        fidl::encoding::DefaultFuchsiaResourceDialect,
71307    > {
71308        SynchronousDatagramSocketProxyInterface::r#get_ip_transparent(self)
71309    }
71310
71311    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
71312    pub fn r#set_ip_receive_original_destination_address(
71313        &self,
71314        mut value: bool,
71315    ) -> fidl::client::QueryResponseFut<
71316        BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
71317        fidl::encoding::DefaultFuchsiaResourceDialect,
71318    > {
71319        SynchronousDatagramSocketProxyInterface::r#set_ip_receive_original_destination_address(
71320            self, value,
71321        )
71322    }
71323
71324    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
71325    pub fn r#get_ip_receive_original_destination_address(
71326        &self,
71327    ) -> fidl::client::QueryResponseFut<
71328        BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
71329        fidl::encoding::DefaultFuchsiaResourceDialect,
71330    > {
71331        SynchronousDatagramSocketProxyInterface::r#get_ip_receive_original_destination_address(self)
71332    }
71333
71334    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
71335    pub fn r#add_ipv6_membership(
71336        &self,
71337        mut membership: &Ipv6MulticastMembership,
71338    ) -> fidl::client::QueryResponseFut<
71339        BaseNetworkSocketAddIpv6MembershipResult,
71340        fidl::encoding::DefaultFuchsiaResourceDialect,
71341    > {
71342        SynchronousDatagramSocketProxyInterface::r#add_ipv6_membership(self, membership)
71343    }
71344
71345    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
71346    pub fn r#drop_ipv6_membership(
71347        &self,
71348        mut membership: &Ipv6MulticastMembership,
71349    ) -> fidl::client::QueryResponseFut<
71350        BaseNetworkSocketDropIpv6MembershipResult,
71351        fidl::encoding::DefaultFuchsiaResourceDialect,
71352    > {
71353        SynchronousDatagramSocketProxyInterface::r#drop_ipv6_membership(self, membership)
71354    }
71355
71356    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
71357    pub fn r#set_ipv6_multicast_interface(
71358        &self,
71359        mut value: u64,
71360    ) -> fidl::client::QueryResponseFut<
71361        BaseNetworkSocketSetIpv6MulticastInterfaceResult,
71362        fidl::encoding::DefaultFuchsiaResourceDialect,
71363    > {
71364        SynchronousDatagramSocketProxyInterface::r#set_ipv6_multicast_interface(self, value)
71365    }
71366
71367    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
71368    pub fn r#get_ipv6_multicast_interface(
71369        &self,
71370    ) -> fidl::client::QueryResponseFut<
71371        BaseNetworkSocketGetIpv6MulticastInterfaceResult,
71372        fidl::encoding::DefaultFuchsiaResourceDialect,
71373    > {
71374        SynchronousDatagramSocketProxyInterface::r#get_ipv6_multicast_interface(self)
71375    }
71376
71377    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
71378    pub fn r#set_ipv6_unicast_hops(
71379        &self,
71380        mut value: &OptionalUint8,
71381    ) -> fidl::client::QueryResponseFut<
71382        BaseNetworkSocketSetIpv6UnicastHopsResult,
71383        fidl::encoding::DefaultFuchsiaResourceDialect,
71384    > {
71385        SynchronousDatagramSocketProxyInterface::r#set_ipv6_unicast_hops(self, value)
71386    }
71387
71388    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
71389    pub fn r#get_ipv6_unicast_hops(
71390        &self,
71391    ) -> fidl::client::QueryResponseFut<
71392        BaseNetworkSocketGetIpv6UnicastHopsResult,
71393        fidl::encoding::DefaultFuchsiaResourceDialect,
71394    > {
71395        SynchronousDatagramSocketProxyInterface::r#get_ipv6_unicast_hops(self)
71396    }
71397
71398    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
71399    pub fn r#set_ipv6_receive_hop_limit(
71400        &self,
71401        mut value: bool,
71402    ) -> fidl::client::QueryResponseFut<
71403        BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
71404        fidl::encoding::DefaultFuchsiaResourceDialect,
71405    > {
71406        SynchronousDatagramSocketProxyInterface::r#set_ipv6_receive_hop_limit(self, value)
71407    }
71408
71409    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
71410    pub fn r#get_ipv6_receive_hop_limit(
71411        &self,
71412    ) -> fidl::client::QueryResponseFut<
71413        BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
71414        fidl::encoding::DefaultFuchsiaResourceDialect,
71415    > {
71416        SynchronousDatagramSocketProxyInterface::r#get_ipv6_receive_hop_limit(self)
71417    }
71418
71419    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
71420    pub fn r#set_ipv6_multicast_hops(
71421        &self,
71422        mut value: &OptionalUint8,
71423    ) -> fidl::client::QueryResponseFut<
71424        BaseNetworkSocketSetIpv6MulticastHopsResult,
71425        fidl::encoding::DefaultFuchsiaResourceDialect,
71426    > {
71427        SynchronousDatagramSocketProxyInterface::r#set_ipv6_multicast_hops(self, value)
71428    }
71429
71430    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
71431    pub fn r#get_ipv6_multicast_hops(
71432        &self,
71433    ) -> fidl::client::QueryResponseFut<
71434        BaseNetworkSocketGetIpv6MulticastHopsResult,
71435        fidl::encoding::DefaultFuchsiaResourceDialect,
71436    > {
71437        SynchronousDatagramSocketProxyInterface::r#get_ipv6_multicast_hops(self)
71438    }
71439
71440    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
71441    pub fn r#set_ipv6_multicast_loopback(
71442        &self,
71443        mut value: bool,
71444    ) -> fidl::client::QueryResponseFut<
71445        BaseNetworkSocketSetIpv6MulticastLoopbackResult,
71446        fidl::encoding::DefaultFuchsiaResourceDialect,
71447    > {
71448        SynchronousDatagramSocketProxyInterface::r#set_ipv6_multicast_loopback(self, value)
71449    }
71450
71451    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
71452    pub fn r#get_ipv6_multicast_loopback(
71453        &self,
71454    ) -> fidl::client::QueryResponseFut<
71455        BaseNetworkSocketGetIpv6MulticastLoopbackResult,
71456        fidl::encoding::DefaultFuchsiaResourceDialect,
71457    > {
71458        SynchronousDatagramSocketProxyInterface::r#get_ipv6_multicast_loopback(self)
71459    }
71460
71461    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
71462    pub fn r#set_ipv6_only(
71463        &self,
71464        mut value: bool,
71465    ) -> fidl::client::QueryResponseFut<
71466        BaseNetworkSocketSetIpv6OnlyResult,
71467        fidl::encoding::DefaultFuchsiaResourceDialect,
71468    > {
71469        SynchronousDatagramSocketProxyInterface::r#set_ipv6_only(self, value)
71470    }
71471
71472    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
71473    pub fn r#get_ipv6_only(
71474        &self,
71475    ) -> fidl::client::QueryResponseFut<
71476        BaseNetworkSocketGetIpv6OnlyResult,
71477        fidl::encoding::DefaultFuchsiaResourceDialect,
71478    > {
71479        SynchronousDatagramSocketProxyInterface::r#get_ipv6_only(self)
71480    }
71481
71482    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
71483    pub fn r#set_ipv6_receive_traffic_class(
71484        &self,
71485        mut value: bool,
71486    ) -> fidl::client::QueryResponseFut<
71487        BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
71488        fidl::encoding::DefaultFuchsiaResourceDialect,
71489    > {
71490        SynchronousDatagramSocketProxyInterface::r#set_ipv6_receive_traffic_class(self, value)
71491    }
71492
71493    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
71494    pub fn r#get_ipv6_receive_traffic_class(
71495        &self,
71496    ) -> fidl::client::QueryResponseFut<
71497        BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
71498        fidl::encoding::DefaultFuchsiaResourceDialect,
71499    > {
71500        SynchronousDatagramSocketProxyInterface::r#get_ipv6_receive_traffic_class(self)
71501    }
71502
71503    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
71504    pub fn r#set_ipv6_traffic_class(
71505        &self,
71506        mut value: &OptionalUint8,
71507    ) -> fidl::client::QueryResponseFut<
71508        BaseNetworkSocketSetIpv6TrafficClassResult,
71509        fidl::encoding::DefaultFuchsiaResourceDialect,
71510    > {
71511        SynchronousDatagramSocketProxyInterface::r#set_ipv6_traffic_class(self, value)
71512    }
71513
71514    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
71515    pub fn r#get_ipv6_traffic_class(
71516        &self,
71517    ) -> fidl::client::QueryResponseFut<
71518        BaseNetworkSocketGetIpv6TrafficClassResult,
71519        fidl::encoding::DefaultFuchsiaResourceDialect,
71520    > {
71521        SynchronousDatagramSocketProxyInterface::r#get_ipv6_traffic_class(self)
71522    }
71523
71524    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
71525    pub fn r#set_ipv6_receive_packet_info(
71526        &self,
71527        mut value: bool,
71528    ) -> fidl::client::QueryResponseFut<
71529        BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
71530        fidl::encoding::DefaultFuchsiaResourceDialect,
71531    > {
71532        SynchronousDatagramSocketProxyInterface::r#set_ipv6_receive_packet_info(self, value)
71533    }
71534
71535    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
71536    pub fn r#get_ipv6_receive_packet_info(
71537        &self,
71538    ) -> fidl::client::QueryResponseFut<
71539        BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
71540        fidl::encoding::DefaultFuchsiaResourceDialect,
71541    > {
71542        SynchronousDatagramSocketProxyInterface::r#get_ipv6_receive_packet_info(self)
71543    }
71544
71545    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
71546    pub fn r#get_original_destination(
71547        &self,
71548    ) -> fidl::client::QueryResponseFut<
71549        BaseNetworkSocketGetOriginalDestinationResult,
71550        fidl::encoding::DefaultFuchsiaResourceDialect,
71551    > {
71552        SynchronousDatagramSocketProxyInterface::r#get_original_destination(self)
71553    }
71554
71555    /// Retrieves creation information from the socket.
71556    ///
71557    /// - response `domain` the socket's associated domain.
71558    /// - response `proto` the socket's associated protocol.
71559    pub fn r#get_info(
71560        &self,
71561    ) -> fidl::client::QueryResponseFut<
71562        BaseDatagramSocketGetInfoResult,
71563        fidl::encoding::DefaultFuchsiaResourceDialect,
71564    > {
71565        SynchronousDatagramSocketProxyInterface::r#get_info(self)
71566    }
71567
71568    pub fn r#describe(
71569        &self,
71570    ) -> fidl::client::QueryResponseFut<
71571        SynchronousDatagramSocketDescribeResponse,
71572        fidl::encoding::DefaultFuchsiaResourceDialect,
71573    > {
71574        SynchronousDatagramSocketProxyInterface::r#describe(self)
71575    }
71576
71577    /// Receives a message from the socket.
71578    ///
71579    /// + request `want_addr` request message's source address information to
71580    ///   be returned.
71581    /// + request `data_len` the maximum allowed length of the response data
71582    ///   buffer.
71583    /// + request `want_control` request ancillary data to be returned.
71584    /// + request `flags` flags for the receive request.
71585    /// - response `addr` the message's source address information, if
71586    ///   requested.
71587    /// - response `data` the message.
71588    /// - response `control` control messages, if requested.
71589    /// - response `truncated` indicates whether or not the returned message
71590    ///   was truncated.
71591    pub fn r#recv_msg(
71592        &self,
71593        mut want_addr: bool,
71594        mut data_len: u32,
71595        mut want_control: bool,
71596        mut flags: RecvMsgFlags,
71597    ) -> fidl::client::QueryResponseFut<
71598        SynchronousDatagramSocketRecvMsgResult,
71599        fidl::encoding::DefaultFuchsiaResourceDialect,
71600    > {
71601        SynchronousDatagramSocketProxyInterface::r#recv_msg(
71602            self,
71603            want_addr,
71604            data_len,
71605            want_control,
71606            flags,
71607        )
71608    }
71609
71610    /// Sends a message on the socket.
71611    ///
71612    /// + request `addr` the address to send the message to. If unset, will send
71613    ///   to the connected peer.
71614    /// + request `data` the message.
71615    /// + request `control` ancillary data.
71616    /// + request `flags` flags for the send request.
71617    /// - response `len` the number of bytes sent.
71618    pub fn r#send_msg(
71619        &self,
71620        mut addr: Option<&fidl_fuchsia_net::SocketAddress>,
71621        mut data: &[u8],
71622        mut control: &DatagramSocketSendControlData,
71623        mut flags: SendMsgFlags,
71624    ) -> fidl::client::QueryResponseFut<
71625        SynchronousDatagramSocketSendMsgResult,
71626        fidl::encoding::DefaultFuchsiaResourceDialect,
71627    > {
71628        SynchronousDatagramSocketProxyInterface::r#send_msg(self, addr, data, control, flags)
71629    }
71630}
71631
71632impl SynchronousDatagramSocketProxyInterface for SynchronousDatagramSocketProxy {
71633    fn r#clone(
71634        &self,
71635        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
71636    ) -> Result<(), fidl::Error> {
71637        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
71638            (request,),
71639            0x20d8a7aba2168a79,
71640            fidl::encoding::DynamicFlags::empty(),
71641        )
71642    }
71643
71644    type CloseResponseFut = fidl::client::QueryResponseFut<
71645        fidl_fuchsia_unknown::CloseableCloseResult,
71646        fidl::encoding::DefaultFuchsiaResourceDialect,
71647    >;
71648    fn r#close(&self) -> Self::CloseResponseFut {
71649        fn _decode(
71650            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
71651        ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
71652            let _response = fidl::client::decode_transaction_body::<
71653                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
71654                fidl::encoding::DefaultFuchsiaResourceDialect,
71655                0x5ac5d459ad7f657e,
71656            >(_buf?)?;
71657            Ok(_response.map(|x| x))
71658        }
71659        self.client.send_query_and_decode::<
71660            fidl::encoding::EmptyPayload,
71661            fidl_fuchsia_unknown::CloseableCloseResult,
71662        >(
71663            (),
71664            0x5ac5d459ad7f657e,
71665            fidl::encoding::DynamicFlags::empty(),
71666            _decode,
71667        )
71668    }
71669
71670    type QueryResponseFut =
71671        fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>;
71672    fn r#query(&self) -> Self::QueryResponseFut {
71673        fn _decode(
71674            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
71675        ) -> Result<Vec<u8>, fidl::Error> {
71676            let _response = fidl::client::decode_transaction_body::<
71677                fidl_fuchsia_unknown::QueryableQueryResponse,
71678                fidl::encoding::DefaultFuchsiaResourceDialect,
71679                0x2658edee9decfc06,
71680            >(_buf?)?;
71681            Ok(_response.protocol)
71682        }
71683        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, Vec<u8>>(
71684            (),
71685            0x2658edee9decfc06,
71686            fidl::encoding::DynamicFlags::empty(),
71687            _decode,
71688        )
71689    }
71690
71691    type SetReuseAddressResponseFut = fidl::client::QueryResponseFut<
71692        BaseSocketSetReuseAddressResult,
71693        fidl::encoding::DefaultFuchsiaResourceDialect,
71694    >;
71695    fn r#set_reuse_address(&self, mut value: bool) -> Self::SetReuseAddressResponseFut {
71696        fn _decode(
71697            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
71698        ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
71699            let _response = fidl::client::decode_transaction_body::<
71700                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
71701                fidl::encoding::DefaultFuchsiaResourceDialect,
71702                0x1fd74ee8b9a4a876,
71703            >(_buf?)?;
71704            Ok(_response.map(|x| x))
71705        }
71706        self.client.send_query_and_decode::<
71707            BaseSocketSetReuseAddressRequest,
71708            BaseSocketSetReuseAddressResult,
71709        >(
71710            (value,),
71711            0x1fd74ee8b9a4a876,
71712            fidl::encoding::DynamicFlags::empty(),
71713            _decode,
71714        )
71715    }
71716
71717    type GetReuseAddressResponseFut = fidl::client::QueryResponseFut<
71718        BaseSocketGetReuseAddressResult,
71719        fidl::encoding::DefaultFuchsiaResourceDialect,
71720    >;
71721    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut {
71722        fn _decode(
71723            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
71724        ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
71725            let _response = fidl::client::decode_transaction_body::<
71726                fidl::encoding::ResultType<
71727                    BaseSocketGetReuseAddressResponse,
71728                    fidl_fuchsia_posix::Errno,
71729                >,
71730                fidl::encoding::DefaultFuchsiaResourceDialect,
71731                0x67b7206b8d1bc0a5,
71732            >(_buf?)?;
71733            Ok(_response.map(|x| x.value))
71734        }
71735        self.client
71736            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReuseAddressResult>(
71737                (),
71738                0x67b7206b8d1bc0a5,
71739                fidl::encoding::DynamicFlags::empty(),
71740                _decode,
71741            )
71742    }
71743
71744    type GetErrorResponseFut = fidl::client::QueryResponseFut<
71745        BaseSocketGetErrorResult,
71746        fidl::encoding::DefaultFuchsiaResourceDialect,
71747    >;
71748    fn r#get_error(&self) -> Self::GetErrorResponseFut {
71749        fn _decode(
71750            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
71751        ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
71752            let _response = fidl::client::decode_transaction_body::<
71753                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
71754                fidl::encoding::DefaultFuchsiaResourceDialect,
71755                0x5aad39b33e5f6ebb,
71756            >(_buf?)?;
71757            Ok(_response.map(|x| x))
71758        }
71759        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetErrorResult>(
71760            (),
71761            0x5aad39b33e5f6ebb,
71762            fidl::encoding::DynamicFlags::empty(),
71763            _decode,
71764        )
71765    }
71766
71767    type SetBroadcastResponseFut = fidl::client::QueryResponseFut<
71768        BaseSocketSetBroadcastResult,
71769        fidl::encoding::DefaultFuchsiaResourceDialect,
71770    >;
71771    fn r#set_broadcast(&self, mut value: bool) -> Self::SetBroadcastResponseFut {
71772        fn _decode(
71773            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
71774        ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
71775            let _response = fidl::client::decode_transaction_body::<
71776                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
71777                fidl::encoding::DefaultFuchsiaResourceDialect,
71778                0x6023e081ce3cd947,
71779            >(_buf?)?;
71780            Ok(_response.map(|x| x))
71781        }
71782        self.client
71783            .send_query_and_decode::<BaseSocketSetBroadcastRequest, BaseSocketSetBroadcastResult>(
71784                (value,),
71785                0x6023e081ce3cd947,
71786                fidl::encoding::DynamicFlags::empty(),
71787                _decode,
71788            )
71789    }
71790
71791    type GetBroadcastResponseFut = fidl::client::QueryResponseFut<
71792        BaseSocketGetBroadcastResult,
71793        fidl::encoding::DefaultFuchsiaResourceDialect,
71794    >;
71795    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut {
71796        fn _decode(
71797            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
71798        ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
71799            let _response = fidl::client::decode_transaction_body::<
71800                fidl::encoding::ResultType<
71801                    BaseSocketGetBroadcastResponse,
71802                    fidl_fuchsia_posix::Errno,
71803                >,
71804                fidl::encoding::DefaultFuchsiaResourceDialect,
71805                0x68796fc556f9780d,
71806            >(_buf?)?;
71807            Ok(_response.map(|x| x.value))
71808        }
71809        self.client
71810            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBroadcastResult>(
71811                (),
71812                0x68796fc556f9780d,
71813                fidl::encoding::DynamicFlags::empty(),
71814                _decode,
71815            )
71816    }
71817
71818    type SetSendBufferResponseFut = fidl::client::QueryResponseFut<
71819        BaseSocketSetSendBufferResult,
71820        fidl::encoding::DefaultFuchsiaResourceDialect,
71821    >;
71822    fn r#set_send_buffer(&self, mut value_bytes: u64) -> Self::SetSendBufferResponseFut {
71823        fn _decode(
71824            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
71825        ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
71826            let _response = fidl::client::decode_transaction_body::<
71827                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
71828                fidl::encoding::DefaultFuchsiaResourceDialect,
71829                0x756eac32d73a7a70,
71830            >(_buf?)?;
71831            Ok(_response.map(|x| x))
71832        }
71833        self.client
71834            .send_query_and_decode::<BaseSocketSetSendBufferRequest, BaseSocketSetSendBufferResult>(
71835                (value_bytes,),
71836                0x756eac32d73a7a70,
71837                fidl::encoding::DynamicFlags::empty(),
71838                _decode,
71839            )
71840    }
71841
71842    type GetSendBufferResponseFut = fidl::client::QueryResponseFut<
71843        BaseSocketGetSendBufferResult,
71844        fidl::encoding::DefaultFuchsiaResourceDialect,
71845    >;
71846    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut {
71847        fn _decode(
71848            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
71849        ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
71850            let _response = fidl::client::decode_transaction_body::<
71851                fidl::encoding::ResultType<
71852                    BaseSocketGetSendBufferResponse,
71853                    fidl_fuchsia_posix::Errno,
71854                >,
71855                fidl::encoding::DefaultFuchsiaResourceDialect,
71856                0x78a52fd9c7b2410b,
71857            >(_buf?)?;
71858            Ok(_response.map(|x| x.value_bytes))
71859        }
71860        self.client
71861            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetSendBufferResult>(
71862                (),
71863                0x78a52fd9c7b2410b,
71864                fidl::encoding::DynamicFlags::empty(),
71865                _decode,
71866            )
71867    }
71868
71869    type SetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
71870        BaseSocketSetReceiveBufferResult,
71871        fidl::encoding::DefaultFuchsiaResourceDialect,
71872    >;
71873    fn r#set_receive_buffer(&self, mut value_bytes: u64) -> Self::SetReceiveBufferResponseFut {
71874        fn _decode(
71875            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
71876        ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
71877            let _response = fidl::client::decode_transaction_body::<
71878                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
71879                fidl::encoding::DefaultFuchsiaResourceDialect,
71880                0x6b0cf2f1919c7001,
71881            >(_buf?)?;
71882            Ok(_response.map(|x| x))
71883        }
71884        self.client.send_query_and_decode::<
71885            BaseSocketSetReceiveBufferRequest,
71886            BaseSocketSetReceiveBufferResult,
71887        >(
71888            (value_bytes,),
71889            0x6b0cf2f1919c7001,
71890            fidl::encoding::DynamicFlags::empty(),
71891            _decode,
71892        )
71893    }
71894
71895    type GetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
71896        BaseSocketGetReceiveBufferResult,
71897        fidl::encoding::DefaultFuchsiaResourceDialect,
71898    >;
71899    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut {
71900        fn _decode(
71901            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
71902        ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
71903            let _response = fidl::client::decode_transaction_body::<
71904                fidl::encoding::ResultType<
71905                    BaseSocketGetReceiveBufferResponse,
71906                    fidl_fuchsia_posix::Errno,
71907                >,
71908                fidl::encoding::DefaultFuchsiaResourceDialect,
71909                0x14c1a4b64f709e5c,
71910            >(_buf?)?;
71911            Ok(_response.map(|x| x.value_bytes))
71912        }
71913        self.client.send_query_and_decode::<
71914            fidl::encoding::EmptyPayload,
71915            BaseSocketGetReceiveBufferResult,
71916        >(
71917            (),
71918            0x14c1a4b64f709e5c,
71919            fidl::encoding::DynamicFlags::empty(),
71920            _decode,
71921        )
71922    }
71923
71924    type SetKeepAliveResponseFut = fidl::client::QueryResponseFut<
71925        BaseSocketSetKeepAliveResult,
71926        fidl::encoding::DefaultFuchsiaResourceDialect,
71927    >;
71928    fn r#set_keep_alive(&self, mut value: bool) -> Self::SetKeepAliveResponseFut {
71929        fn _decode(
71930            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
71931        ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
71932            let _response = fidl::client::decode_transaction_body::<
71933                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
71934                fidl::encoding::DefaultFuchsiaResourceDialect,
71935                0x572df8f0b920d2c7,
71936            >(_buf?)?;
71937            Ok(_response.map(|x| x))
71938        }
71939        self.client
71940            .send_query_and_decode::<BaseSocketSetKeepAliveRequest, BaseSocketSetKeepAliveResult>(
71941                (value,),
71942                0x572df8f0b920d2c7,
71943                fidl::encoding::DynamicFlags::empty(),
71944                _decode,
71945            )
71946    }
71947
71948    type GetKeepAliveResponseFut = fidl::client::QueryResponseFut<
71949        BaseSocketGetKeepAliveResult,
71950        fidl::encoding::DefaultFuchsiaResourceDialect,
71951    >;
71952    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut {
71953        fn _decode(
71954            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
71955        ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
71956            let _response = fidl::client::decode_transaction_body::<
71957                fidl::encoding::ResultType<
71958                    BaseSocketGetKeepAliveResponse,
71959                    fidl_fuchsia_posix::Errno,
71960                >,
71961                fidl::encoding::DefaultFuchsiaResourceDialect,
71962                0x2dd29d3215f2c9d2,
71963            >(_buf?)?;
71964            Ok(_response.map(|x| x.value))
71965        }
71966        self.client
71967            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetKeepAliveResult>(
71968                (),
71969                0x2dd29d3215f2c9d2,
71970                fidl::encoding::DynamicFlags::empty(),
71971                _decode,
71972            )
71973    }
71974
71975    type SetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
71976        BaseSocketSetOutOfBandInlineResult,
71977        fidl::encoding::DefaultFuchsiaResourceDialect,
71978    >;
71979    fn r#set_out_of_band_inline(&self, mut value: bool) -> Self::SetOutOfBandInlineResponseFut {
71980        fn _decode(
71981            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
71982        ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
71983            let _response = fidl::client::decode_transaction_body::<
71984                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
71985                fidl::encoding::DefaultFuchsiaResourceDialect,
71986                0x3ecb49968bee439,
71987            >(_buf?)?;
71988            Ok(_response.map(|x| x))
71989        }
71990        self.client.send_query_and_decode::<
71991            BaseSocketSetOutOfBandInlineRequest,
71992            BaseSocketSetOutOfBandInlineResult,
71993        >(
71994            (value,),
71995            0x3ecb49968bee439,
71996            fidl::encoding::DynamicFlags::empty(),
71997            _decode,
71998        )
71999    }
72000
72001    type GetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
72002        BaseSocketGetOutOfBandInlineResult,
72003        fidl::encoding::DefaultFuchsiaResourceDialect,
72004    >;
72005    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut {
72006        fn _decode(
72007            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72008        ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
72009            let _response = fidl::client::decode_transaction_body::<
72010                fidl::encoding::ResultType<
72011                    BaseSocketGetOutOfBandInlineResponse,
72012                    fidl_fuchsia_posix::Errno,
72013                >,
72014                fidl::encoding::DefaultFuchsiaResourceDialect,
72015                0x348c1ab3aeca1745,
72016            >(_buf?)?;
72017            Ok(_response.map(|x| x.value))
72018        }
72019        self.client.send_query_and_decode::<
72020            fidl::encoding::EmptyPayload,
72021            BaseSocketGetOutOfBandInlineResult,
72022        >(
72023            (),
72024            0x348c1ab3aeca1745,
72025            fidl::encoding::DynamicFlags::empty(),
72026            _decode,
72027        )
72028    }
72029
72030    type SetNoCheckResponseFut = fidl::client::QueryResponseFut<
72031        BaseSocketSetNoCheckResult,
72032        fidl::encoding::DefaultFuchsiaResourceDialect,
72033    >;
72034    fn r#set_no_check(&self, mut value: bool) -> Self::SetNoCheckResponseFut {
72035        fn _decode(
72036            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72037        ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
72038            let _response = fidl::client::decode_transaction_body::<
72039                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72040                fidl::encoding::DefaultFuchsiaResourceDialect,
72041                0x6bbf00c53a4c78c2,
72042            >(_buf?)?;
72043            Ok(_response.map(|x| x))
72044        }
72045        self.client
72046            .send_query_and_decode::<BaseSocketSetNoCheckRequest, BaseSocketSetNoCheckResult>(
72047                (value,),
72048                0x6bbf00c53a4c78c2,
72049                fidl::encoding::DynamicFlags::empty(),
72050                _decode,
72051            )
72052    }
72053
72054    type GetNoCheckResponseFut = fidl::client::QueryResponseFut<
72055        BaseSocketGetNoCheckResult,
72056        fidl::encoding::DefaultFuchsiaResourceDialect,
72057    >;
72058    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut {
72059        fn _decode(
72060            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72061        ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
72062            let _response = fidl::client::decode_transaction_body::<
72063                fidl::encoding::ResultType<BaseSocketGetNoCheckResponse, fidl_fuchsia_posix::Errno>,
72064                fidl::encoding::DefaultFuchsiaResourceDialect,
72065                0x2cd4249286417694,
72066            >(_buf?)?;
72067            Ok(_response.map(|x| x.value))
72068        }
72069        self.client
72070            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetNoCheckResult>(
72071                (),
72072                0x2cd4249286417694,
72073                fidl::encoding::DynamicFlags::empty(),
72074                _decode,
72075            )
72076    }
72077
72078    type SetLingerResponseFut = fidl::client::QueryResponseFut<
72079        BaseSocketSetLingerResult,
72080        fidl::encoding::DefaultFuchsiaResourceDialect,
72081    >;
72082    fn r#set_linger(&self, mut linger: bool, mut length_secs: u32) -> Self::SetLingerResponseFut {
72083        fn _decode(
72084            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72085        ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
72086            let _response = fidl::client::decode_transaction_body::<
72087                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72088                fidl::encoding::DefaultFuchsiaResourceDialect,
72089                0x45386351246e998e,
72090            >(_buf?)?;
72091            Ok(_response.map(|x| x))
72092        }
72093        self.client.send_query_and_decode::<BaseSocketSetLingerRequest, BaseSocketSetLingerResult>(
72094            (linger, length_secs),
72095            0x45386351246e998e,
72096            fidl::encoding::DynamicFlags::empty(),
72097            _decode,
72098        )
72099    }
72100
72101    type GetLingerResponseFut = fidl::client::QueryResponseFut<
72102        BaseSocketGetLingerResult,
72103        fidl::encoding::DefaultFuchsiaResourceDialect,
72104    >;
72105    fn r#get_linger(&self) -> Self::GetLingerResponseFut {
72106        fn _decode(
72107            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72108        ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
72109            let _response = fidl::client::decode_transaction_body::<
72110                fidl::encoding::ResultType<BaseSocketGetLingerResponse, fidl_fuchsia_posix::Errno>,
72111                fidl::encoding::DefaultFuchsiaResourceDialect,
72112                0x48eb20fc5ccb0e45,
72113            >(_buf?)?;
72114            Ok(_response.map(|x| (x.linger, x.length_secs)))
72115        }
72116        self.client
72117            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetLingerResult>(
72118                (),
72119                0x48eb20fc5ccb0e45,
72120                fidl::encoding::DynamicFlags::empty(),
72121                _decode,
72122            )
72123    }
72124
72125    type SetReusePortResponseFut = fidl::client::QueryResponseFut<
72126        BaseSocketSetReusePortResult,
72127        fidl::encoding::DefaultFuchsiaResourceDialect,
72128    >;
72129    fn r#set_reuse_port(&self, mut value: bool) -> Self::SetReusePortResponseFut {
72130        fn _decode(
72131            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72132        ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
72133            let _response = fidl::client::decode_transaction_body::<
72134                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72135                fidl::encoding::DefaultFuchsiaResourceDialect,
72136                0x24dd3e5cb36d9ccb,
72137            >(_buf?)?;
72138            Ok(_response.map(|x| x))
72139        }
72140        self.client
72141            .send_query_and_decode::<BaseSocketSetReusePortRequest, BaseSocketSetReusePortResult>(
72142                (value,),
72143                0x24dd3e5cb36d9ccb,
72144                fidl::encoding::DynamicFlags::empty(),
72145                _decode,
72146            )
72147    }
72148
72149    type GetReusePortResponseFut = fidl::client::QueryResponseFut<
72150        BaseSocketGetReusePortResult,
72151        fidl::encoding::DefaultFuchsiaResourceDialect,
72152    >;
72153    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut {
72154        fn _decode(
72155            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72156        ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
72157            let _response = fidl::client::decode_transaction_body::<
72158                fidl::encoding::ResultType<
72159                    BaseSocketGetReusePortResponse,
72160                    fidl_fuchsia_posix::Errno,
72161                >,
72162                fidl::encoding::DefaultFuchsiaResourceDialect,
72163                0x7a112c1ab54ff828,
72164            >(_buf?)?;
72165            Ok(_response.map(|x| x.value))
72166        }
72167        self.client
72168            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReusePortResult>(
72169                (),
72170                0x7a112c1ab54ff828,
72171                fidl::encoding::DynamicFlags::empty(),
72172                _decode,
72173            )
72174    }
72175
72176    type GetAcceptConnResponseFut = fidl::client::QueryResponseFut<
72177        BaseSocketGetAcceptConnResult,
72178        fidl::encoding::DefaultFuchsiaResourceDialect,
72179    >;
72180    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut {
72181        fn _decode(
72182            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72183        ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
72184            let _response = fidl::client::decode_transaction_body::<
72185                fidl::encoding::ResultType<
72186                    BaseSocketGetAcceptConnResponse,
72187                    fidl_fuchsia_posix::Errno,
72188                >,
72189                fidl::encoding::DefaultFuchsiaResourceDialect,
72190                0x67ce6db6c2ec8966,
72191            >(_buf?)?;
72192            Ok(_response.map(|x| x.value))
72193        }
72194        self.client
72195            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetAcceptConnResult>(
72196                (),
72197                0x67ce6db6c2ec8966,
72198                fidl::encoding::DynamicFlags::empty(),
72199                _decode,
72200            )
72201    }
72202
72203    type SetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
72204        BaseSocketSetBindToDeviceResult,
72205        fidl::encoding::DefaultFuchsiaResourceDialect,
72206    >;
72207    fn r#set_bind_to_device(&self, mut value: &str) -> Self::SetBindToDeviceResponseFut {
72208        fn _decode(
72209            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72210        ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
72211            let _response = fidl::client::decode_transaction_body::<
72212                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72213                fidl::encoding::DefaultFuchsiaResourceDialect,
72214                0x2118b483f28aafc4,
72215            >(_buf?)?;
72216            Ok(_response.map(|x| x))
72217        }
72218        self.client.send_query_and_decode::<
72219            BaseSocketSetBindToDeviceRequest,
72220            BaseSocketSetBindToDeviceResult,
72221        >(
72222            (value,),
72223            0x2118b483f28aafc4,
72224            fidl::encoding::DynamicFlags::empty(),
72225            _decode,
72226        )
72227    }
72228
72229    type GetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
72230        BaseSocketGetBindToDeviceResult,
72231        fidl::encoding::DefaultFuchsiaResourceDialect,
72232    >;
72233    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut {
72234        fn _decode(
72235            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72236        ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
72237            let _response = fidl::client::decode_transaction_body::<
72238                fidl::encoding::ResultType<
72239                    BaseSocketGetBindToDeviceResponse,
72240                    fidl_fuchsia_posix::Errno,
72241                >,
72242                fidl::encoding::DefaultFuchsiaResourceDialect,
72243                0x1ab1fbf0ef7906c8,
72244            >(_buf?)?;
72245            Ok(_response.map(|x| x.value))
72246        }
72247        self.client
72248            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBindToDeviceResult>(
72249                (),
72250                0x1ab1fbf0ef7906c8,
72251                fidl::encoding::DynamicFlags::empty(),
72252                _decode,
72253            )
72254    }
72255
72256    type SetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
72257        BaseSocketSetBindToInterfaceIndexResult,
72258        fidl::encoding::DefaultFuchsiaResourceDialect,
72259    >;
72260    fn r#set_bind_to_interface_index(
72261        &self,
72262        mut value: u64,
72263    ) -> Self::SetBindToInterfaceIndexResponseFut {
72264        fn _decode(
72265            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72266        ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
72267            let _response = fidl::client::decode_transaction_body::<
72268                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72269                fidl::encoding::DefaultFuchsiaResourceDialect,
72270                0x6e387a0def00821,
72271            >(_buf?)?;
72272            Ok(_response.map(|x| x))
72273        }
72274        self.client.send_query_and_decode::<
72275            BaseSocketSetBindToInterfaceIndexRequest,
72276            BaseSocketSetBindToInterfaceIndexResult,
72277        >(
72278            (value,),
72279            0x6e387a0def00821,
72280            fidl::encoding::DynamicFlags::empty(),
72281            _decode,
72282        )
72283    }
72284
72285    type GetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
72286        BaseSocketGetBindToInterfaceIndexResult,
72287        fidl::encoding::DefaultFuchsiaResourceDialect,
72288    >;
72289    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut {
72290        fn _decode(
72291            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72292        ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
72293            let _response = fidl::client::decode_transaction_body::<
72294                fidl::encoding::ResultType<
72295                    BaseSocketGetBindToInterfaceIndexResponse,
72296                    fidl_fuchsia_posix::Errno,
72297                >,
72298                fidl::encoding::DefaultFuchsiaResourceDialect,
72299                0x59c31dd3e3078295,
72300            >(_buf?)?;
72301            Ok(_response.map(|x| x.value))
72302        }
72303        self.client.send_query_and_decode::<
72304            fidl::encoding::EmptyPayload,
72305            BaseSocketGetBindToInterfaceIndexResult,
72306        >(
72307            (),
72308            0x59c31dd3e3078295,
72309            fidl::encoding::DynamicFlags::empty(),
72310            _decode,
72311        )
72312    }
72313
72314    type SetTimestampResponseFut = fidl::client::QueryResponseFut<
72315        BaseSocketSetTimestampResult,
72316        fidl::encoding::DefaultFuchsiaResourceDialect,
72317    >;
72318    fn r#set_timestamp(&self, mut value: TimestampOption) -> Self::SetTimestampResponseFut {
72319        fn _decode(
72320            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72321        ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
72322            let _response = fidl::client::decode_transaction_body::<
72323                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72324                fidl::encoding::DefaultFuchsiaResourceDialect,
72325                0x285d6516c263d839,
72326            >(_buf?)?;
72327            Ok(_response.map(|x| x))
72328        }
72329        self.client
72330            .send_query_and_decode::<BaseSocketSetTimestampRequest, BaseSocketSetTimestampResult>(
72331                (value,),
72332                0x285d6516c263d839,
72333                fidl::encoding::DynamicFlags::empty(),
72334                _decode,
72335            )
72336    }
72337
72338    type GetTimestampResponseFut = fidl::client::QueryResponseFut<
72339        BaseSocketGetTimestampResult,
72340        fidl::encoding::DefaultFuchsiaResourceDialect,
72341    >;
72342    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut {
72343        fn _decode(
72344            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72345        ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
72346            let _response = fidl::client::decode_transaction_body::<
72347                fidl::encoding::ResultType<
72348                    BaseSocketGetTimestampResponse,
72349                    fidl_fuchsia_posix::Errno,
72350                >,
72351                fidl::encoding::DefaultFuchsiaResourceDialect,
72352                0x49f2fffbbcc2bd27,
72353            >(_buf?)?;
72354            Ok(_response.map(|x| x.value))
72355        }
72356        self.client
72357            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetTimestampResult>(
72358                (),
72359                0x49f2fffbbcc2bd27,
72360                fidl::encoding::DynamicFlags::empty(),
72361                _decode,
72362            )
72363    }
72364
72365    type SetMarkResponseFut = fidl::client::QueryResponseFut<
72366        BaseSocketSetMarkResult,
72367        fidl::encoding::DefaultFuchsiaResourceDialect,
72368    >;
72369    fn r#set_mark(
72370        &self,
72371        mut domain: fidl_fuchsia_net::MarkDomain,
72372        mut mark: &OptionalUint32,
72373    ) -> Self::SetMarkResponseFut {
72374        fn _decode(
72375            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72376        ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
72377            let _response = fidl::client::decode_transaction_body::<
72378                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72379                fidl::encoding::DefaultFuchsiaResourceDialect,
72380                0x6ead6de09f653236,
72381            >(_buf?)?;
72382            Ok(_response.map(|x| x))
72383        }
72384        self.client.send_query_and_decode::<BaseSocketSetMarkRequest, BaseSocketSetMarkResult>(
72385            (domain, mark),
72386            0x6ead6de09f653236,
72387            fidl::encoding::DynamicFlags::empty(),
72388            _decode,
72389        )
72390    }
72391
72392    type GetMarkResponseFut = fidl::client::QueryResponseFut<
72393        BaseSocketGetMarkResult,
72394        fidl::encoding::DefaultFuchsiaResourceDialect,
72395    >;
72396    fn r#get_mark(&self, mut domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut {
72397        fn _decode(
72398            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72399        ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
72400            let _response = fidl::client::decode_transaction_body::<
72401                fidl::encoding::ResultType<BaseSocketGetMarkResponse, fidl_fuchsia_posix::Errno>,
72402                fidl::encoding::DefaultFuchsiaResourceDialect,
72403                0x57a2752c61d93d47,
72404            >(_buf?)?;
72405            Ok(_response.map(|x| x.mark))
72406        }
72407        self.client.send_query_and_decode::<BaseSocketGetMarkRequest, BaseSocketGetMarkResult>(
72408            (domain,),
72409            0x57a2752c61d93d47,
72410            fidl::encoding::DynamicFlags::empty(),
72411            _decode,
72412        )
72413    }
72414
72415    type GetCookieResponseFut = fidl::client::QueryResponseFut<
72416        BaseSocketGetCookieResult,
72417        fidl::encoding::DefaultFuchsiaResourceDialect,
72418    >;
72419    fn r#get_cookie(&self) -> Self::GetCookieResponseFut {
72420        fn _decode(
72421            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72422        ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
72423            let _response = fidl::client::decode_transaction_body::<
72424                fidl::encoding::ResultType<BaseSocketGetCookieResponse, fidl_fuchsia_posix::Errno>,
72425                fidl::encoding::DefaultFuchsiaResourceDialect,
72426                0x2c2f47fd8f924e52,
72427            >(_buf?)?;
72428            Ok(_response.map(|x| x.value))
72429        }
72430        self.client
72431            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetCookieResult>(
72432                (),
72433                0x2c2f47fd8f924e52,
72434                fidl::encoding::DynamicFlags::empty(),
72435                _decode,
72436            )
72437    }
72438
72439    type BindResponseFut = fidl::client::QueryResponseFut<
72440        BaseNetworkSocketBindResult,
72441        fidl::encoding::DefaultFuchsiaResourceDialect,
72442    >;
72443    fn r#bind(&self, mut addr: &fidl_fuchsia_net::SocketAddress) -> Self::BindResponseFut {
72444        fn _decode(
72445            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72446        ) -> Result<BaseNetworkSocketBindResult, fidl::Error> {
72447            let _response = fidl::client::decode_transaction_body::<
72448                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72449                fidl::encoding::DefaultFuchsiaResourceDialect,
72450                0x4bc6400ae92125d,
72451            >(_buf?)?;
72452            Ok(_response.map(|x| x))
72453        }
72454        self.client
72455            .send_query_and_decode::<BaseNetworkSocketBindRequest, BaseNetworkSocketBindResult>(
72456                (addr,),
72457                0x4bc6400ae92125d,
72458                fidl::encoding::DynamicFlags::empty(),
72459                _decode,
72460            )
72461    }
72462
72463    type ConnectResponseFut = fidl::client::QueryResponseFut<
72464        BaseNetworkSocketConnectResult,
72465        fidl::encoding::DefaultFuchsiaResourceDialect,
72466    >;
72467    fn r#connect(&self, mut addr: &fidl_fuchsia_net::SocketAddress) -> Self::ConnectResponseFut {
72468        fn _decode(
72469            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72470        ) -> Result<BaseNetworkSocketConnectResult, fidl::Error> {
72471            let _response = fidl::client::decode_transaction_body::<
72472                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72473                fidl::encoding::DefaultFuchsiaResourceDialect,
72474                0x5f05f19bfdd38871,
72475            >(_buf?)?;
72476            Ok(_response.map(|x| x))
72477        }
72478        self.client.send_query_and_decode::<
72479            BaseNetworkSocketConnectRequest,
72480            BaseNetworkSocketConnectResult,
72481        >(
72482            (addr,),
72483            0x5f05f19bfdd38871,
72484            fidl::encoding::DynamicFlags::empty(),
72485            _decode,
72486        )
72487    }
72488
72489    type DisconnectResponseFut = fidl::client::QueryResponseFut<
72490        BaseNetworkSocketDisconnectResult,
72491        fidl::encoding::DefaultFuchsiaResourceDialect,
72492    >;
72493    fn r#disconnect(&self) -> Self::DisconnectResponseFut {
72494        fn _decode(
72495            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72496        ) -> Result<BaseNetworkSocketDisconnectResult, fidl::Error> {
72497            let _response = fidl::client::decode_transaction_body::<
72498                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72499                fidl::encoding::DefaultFuchsiaResourceDialect,
72500                0x74e63b91f7b29b2,
72501            >(_buf?)?;
72502            Ok(_response.map(|x| x))
72503        }
72504        self.client.send_query_and_decode::<
72505            fidl::encoding::EmptyPayload,
72506            BaseNetworkSocketDisconnectResult,
72507        >(
72508            (),
72509            0x74e63b91f7b29b2,
72510            fidl::encoding::DynamicFlags::empty(),
72511            _decode,
72512        )
72513    }
72514
72515    type GetSockNameResponseFut = fidl::client::QueryResponseFut<
72516        BaseNetworkSocketGetSockNameResult,
72517        fidl::encoding::DefaultFuchsiaResourceDialect,
72518    >;
72519    fn r#get_sock_name(&self) -> Self::GetSockNameResponseFut {
72520        fn _decode(
72521            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72522        ) -> Result<BaseNetworkSocketGetSockNameResult, fidl::Error> {
72523            let _response = fidl::client::decode_transaction_body::<
72524                fidl::encoding::ResultType<
72525                    BaseNetworkSocketGetSockNameResponse,
72526                    fidl_fuchsia_posix::Errno,
72527                >,
72528                fidl::encoding::DefaultFuchsiaResourceDialect,
72529                0x475f23f84a1a4f85,
72530            >(_buf?)?;
72531            Ok(_response.map(|x| x.addr))
72532        }
72533        self.client.send_query_and_decode::<
72534            fidl::encoding::EmptyPayload,
72535            BaseNetworkSocketGetSockNameResult,
72536        >(
72537            (),
72538            0x475f23f84a1a4f85,
72539            fidl::encoding::DynamicFlags::empty(),
72540            _decode,
72541        )
72542    }
72543
72544    type GetPeerNameResponseFut = fidl::client::QueryResponseFut<
72545        BaseNetworkSocketGetPeerNameResult,
72546        fidl::encoding::DefaultFuchsiaResourceDialect,
72547    >;
72548    fn r#get_peer_name(&self) -> Self::GetPeerNameResponseFut {
72549        fn _decode(
72550            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72551        ) -> Result<BaseNetworkSocketGetPeerNameResult, fidl::Error> {
72552            let _response = fidl::client::decode_transaction_body::<
72553                fidl::encoding::ResultType<
72554                    BaseNetworkSocketGetPeerNameResponse,
72555                    fidl_fuchsia_posix::Errno,
72556                >,
72557                fidl::encoding::DefaultFuchsiaResourceDialect,
72558                0x1ffecf4bd5b6432e,
72559            >(_buf?)?;
72560            Ok(_response.map(|x| x.addr))
72561        }
72562        self.client.send_query_and_decode::<
72563            fidl::encoding::EmptyPayload,
72564            BaseNetworkSocketGetPeerNameResult,
72565        >(
72566            (),
72567            0x1ffecf4bd5b6432e,
72568            fidl::encoding::DynamicFlags::empty(),
72569            _decode,
72570        )
72571    }
72572
72573    type ShutdownResponseFut = fidl::client::QueryResponseFut<
72574        BaseNetworkSocketShutdownResult,
72575        fidl::encoding::DefaultFuchsiaResourceDialect,
72576    >;
72577    fn r#shutdown(&self, mut mode: ShutdownMode) -> Self::ShutdownResponseFut {
72578        fn _decode(
72579            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72580        ) -> Result<BaseNetworkSocketShutdownResult, fidl::Error> {
72581            let _response = fidl::client::decode_transaction_body::<
72582                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72583                fidl::encoding::DefaultFuchsiaResourceDialect,
72584                0x247f38b6db68c336,
72585            >(_buf?)?;
72586            Ok(_response.map(|x| x))
72587        }
72588        self.client.send_query_and_decode::<
72589            BaseNetworkSocketShutdownRequest,
72590            BaseNetworkSocketShutdownResult,
72591        >(
72592            (mode,),
72593            0x247f38b6db68c336,
72594            fidl::encoding::DynamicFlags::empty(),
72595            _decode,
72596        )
72597    }
72598
72599    type SetIpTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
72600        BaseNetworkSocketSetIpTypeOfServiceResult,
72601        fidl::encoding::DefaultFuchsiaResourceDialect,
72602    >;
72603    fn r#set_ip_type_of_service(&self, mut value: u8) -> Self::SetIpTypeOfServiceResponseFut {
72604        fn _decode(
72605            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72606        ) -> Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error> {
72607            let _response = fidl::client::decode_transaction_body::<
72608                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72609                fidl::encoding::DefaultFuchsiaResourceDialect,
72610                0x995c600475b6d46,
72611            >(_buf?)?;
72612            Ok(_response.map(|x| x))
72613        }
72614        self.client.send_query_and_decode::<
72615            BaseNetworkSocketSetIpTypeOfServiceRequest,
72616            BaseNetworkSocketSetIpTypeOfServiceResult,
72617        >(
72618            (value,),
72619            0x995c600475b6d46,
72620            fidl::encoding::DynamicFlags::empty(),
72621            _decode,
72622        )
72623    }
72624
72625    type GetIpTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
72626        BaseNetworkSocketGetIpTypeOfServiceResult,
72627        fidl::encoding::DefaultFuchsiaResourceDialect,
72628    >;
72629    fn r#get_ip_type_of_service(&self) -> Self::GetIpTypeOfServiceResponseFut {
72630        fn _decode(
72631            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72632        ) -> Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error> {
72633            let _response = fidl::client::decode_transaction_body::<
72634                fidl::encoding::ResultType<
72635                    BaseNetworkSocketGetIpTypeOfServiceResponse,
72636                    fidl_fuchsia_posix::Errno,
72637                >,
72638                fidl::encoding::DefaultFuchsiaResourceDialect,
72639                0x3814a04259f75fcb,
72640            >(_buf?)?;
72641            Ok(_response.map(|x| x.value))
72642        }
72643        self.client.send_query_and_decode::<
72644            fidl::encoding::EmptyPayload,
72645            BaseNetworkSocketGetIpTypeOfServiceResult,
72646        >(
72647            (),
72648            0x3814a04259f75fcb,
72649            fidl::encoding::DynamicFlags::empty(),
72650            _decode,
72651        )
72652    }
72653
72654    type SetIpTtlResponseFut = fidl::client::QueryResponseFut<
72655        BaseNetworkSocketSetIpTtlResult,
72656        fidl::encoding::DefaultFuchsiaResourceDialect,
72657    >;
72658    fn r#set_ip_ttl(&self, mut value: &OptionalUint8) -> Self::SetIpTtlResponseFut {
72659        fn _decode(
72660            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72661        ) -> Result<BaseNetworkSocketSetIpTtlResult, fidl::Error> {
72662            let _response = fidl::client::decode_transaction_body::<
72663                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72664                fidl::encoding::DefaultFuchsiaResourceDialect,
72665                0x29e2424b433ae1ef,
72666            >(_buf?)?;
72667            Ok(_response.map(|x| x))
72668        }
72669        self.client.send_query_and_decode::<
72670            BaseNetworkSocketSetIpTtlRequest,
72671            BaseNetworkSocketSetIpTtlResult,
72672        >(
72673            (value,),
72674            0x29e2424b433ae1ef,
72675            fidl::encoding::DynamicFlags::empty(),
72676            _decode,
72677        )
72678    }
72679
72680    type GetIpTtlResponseFut = fidl::client::QueryResponseFut<
72681        BaseNetworkSocketGetIpTtlResult,
72682        fidl::encoding::DefaultFuchsiaResourceDialect,
72683    >;
72684    fn r#get_ip_ttl(&self) -> Self::GetIpTtlResponseFut {
72685        fn _decode(
72686            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72687        ) -> Result<BaseNetworkSocketGetIpTtlResult, fidl::Error> {
72688            let _response = fidl::client::decode_transaction_body::<
72689                fidl::encoding::ResultType<
72690                    BaseNetworkSocketGetIpTtlResponse,
72691                    fidl_fuchsia_posix::Errno,
72692                >,
72693                fidl::encoding::DefaultFuchsiaResourceDialect,
72694                0x47e47fa1f24da471,
72695            >(_buf?)?;
72696            Ok(_response.map(|x| x.value))
72697        }
72698        self.client
72699            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseNetworkSocketGetIpTtlResult>(
72700                (),
72701                0x47e47fa1f24da471,
72702                fidl::encoding::DynamicFlags::empty(),
72703                _decode,
72704            )
72705    }
72706
72707    type SetIpPacketInfoResponseFut = fidl::client::QueryResponseFut<
72708        BaseNetworkSocketSetIpPacketInfoResult,
72709        fidl::encoding::DefaultFuchsiaResourceDialect,
72710    >;
72711    fn r#set_ip_packet_info(&self, mut value: bool) -> Self::SetIpPacketInfoResponseFut {
72712        fn _decode(
72713            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72714        ) -> Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error> {
72715            let _response = fidl::client::decode_transaction_body::<
72716                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72717                fidl::encoding::DefaultFuchsiaResourceDialect,
72718                0x392d16bee20c0e16,
72719            >(_buf?)?;
72720            Ok(_response.map(|x| x))
72721        }
72722        self.client.send_query_and_decode::<
72723            BaseNetworkSocketSetIpPacketInfoRequest,
72724            BaseNetworkSocketSetIpPacketInfoResult,
72725        >(
72726            (value,),
72727            0x392d16bee20c0e16,
72728            fidl::encoding::DynamicFlags::empty(),
72729            _decode,
72730        )
72731    }
72732
72733    type GetIpPacketInfoResponseFut = fidl::client::QueryResponseFut<
72734        BaseNetworkSocketGetIpPacketInfoResult,
72735        fidl::encoding::DefaultFuchsiaResourceDialect,
72736    >;
72737    fn r#get_ip_packet_info(&self) -> Self::GetIpPacketInfoResponseFut {
72738        fn _decode(
72739            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72740        ) -> Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error> {
72741            let _response = fidl::client::decode_transaction_body::<
72742                fidl::encoding::ResultType<
72743                    BaseNetworkSocketGetIpPacketInfoResponse,
72744                    fidl_fuchsia_posix::Errno,
72745                >,
72746                fidl::encoding::DefaultFuchsiaResourceDialect,
72747                0x54b505f242280740,
72748            >(_buf?)?;
72749            Ok(_response.map(|x| x.value))
72750        }
72751        self.client.send_query_and_decode::<
72752            fidl::encoding::EmptyPayload,
72753            BaseNetworkSocketGetIpPacketInfoResult,
72754        >(
72755            (),
72756            0x54b505f242280740,
72757            fidl::encoding::DynamicFlags::empty(),
72758            _decode,
72759        )
72760    }
72761
72762    type SetIpReceiveTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
72763        BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
72764        fidl::encoding::DefaultFuchsiaResourceDialect,
72765    >;
72766    fn r#set_ip_receive_type_of_service(
72767        &self,
72768        mut value: bool,
72769    ) -> Self::SetIpReceiveTypeOfServiceResponseFut {
72770        fn _decode(
72771            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72772        ) -> Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error> {
72773            let _response = fidl::client::decode_transaction_body::<
72774                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72775                fidl::encoding::DefaultFuchsiaResourceDialect,
72776                0x6c4f6714995f84ef,
72777            >(_buf?)?;
72778            Ok(_response.map(|x| x))
72779        }
72780        self.client.send_query_and_decode::<
72781            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
72782            BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
72783        >(
72784            (value,),
72785            0x6c4f6714995f84ef,
72786            fidl::encoding::DynamicFlags::empty(),
72787            _decode,
72788        )
72789    }
72790
72791    type GetIpReceiveTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
72792        BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
72793        fidl::encoding::DefaultFuchsiaResourceDialect,
72794    >;
72795    fn r#get_ip_receive_type_of_service(&self) -> Self::GetIpReceiveTypeOfServiceResponseFut {
72796        fn _decode(
72797            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72798        ) -> Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error> {
72799            let _response = fidl::client::decode_transaction_body::<
72800                fidl::encoding::ResultType<
72801                    BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
72802                    fidl_fuchsia_posix::Errno,
72803                >,
72804                fidl::encoding::DefaultFuchsiaResourceDialect,
72805                0x4158ba7dc2795960,
72806            >(_buf?)?;
72807            Ok(_response.map(|x| x.value))
72808        }
72809        self.client.send_query_and_decode::<
72810            fidl::encoding::EmptyPayload,
72811            BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
72812        >(
72813            (),
72814            0x4158ba7dc2795960,
72815            fidl::encoding::DynamicFlags::empty(),
72816            _decode,
72817        )
72818    }
72819
72820    type SetIpReceiveTtlResponseFut = fidl::client::QueryResponseFut<
72821        BaseNetworkSocketSetIpReceiveTtlResult,
72822        fidl::encoding::DefaultFuchsiaResourceDialect,
72823    >;
72824    fn r#set_ip_receive_ttl(&self, mut value: bool) -> Self::SetIpReceiveTtlResponseFut {
72825        fn _decode(
72826            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72827        ) -> Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error> {
72828            let _response = fidl::client::decode_transaction_body::<
72829                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72830                fidl::encoding::DefaultFuchsiaResourceDialect,
72831                0x46f15be0ce0ab82b,
72832            >(_buf?)?;
72833            Ok(_response.map(|x| x))
72834        }
72835        self.client.send_query_and_decode::<
72836            BaseNetworkSocketSetIpReceiveTtlRequest,
72837            BaseNetworkSocketSetIpReceiveTtlResult,
72838        >(
72839            (value,),
72840            0x46f15be0ce0ab82b,
72841            fidl::encoding::DynamicFlags::empty(),
72842            _decode,
72843        )
72844    }
72845
72846    type GetIpReceiveTtlResponseFut = fidl::client::QueryResponseFut<
72847        BaseNetworkSocketGetIpReceiveTtlResult,
72848        fidl::encoding::DefaultFuchsiaResourceDialect,
72849    >;
72850    fn r#get_ip_receive_ttl(&self) -> Self::GetIpReceiveTtlResponseFut {
72851        fn _decode(
72852            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72853        ) -> Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error> {
72854            let _response = fidl::client::decode_transaction_body::<
72855                fidl::encoding::ResultType<
72856                    BaseNetworkSocketGetIpReceiveTtlResponse,
72857                    fidl_fuchsia_posix::Errno,
72858                >,
72859                fidl::encoding::DefaultFuchsiaResourceDialect,
72860                0x678ddd5a5dfa2eb5,
72861            >(_buf?)?;
72862            Ok(_response.map(|x| x.value))
72863        }
72864        self.client.send_query_and_decode::<
72865            fidl::encoding::EmptyPayload,
72866            BaseNetworkSocketGetIpReceiveTtlResult,
72867        >(
72868            (),
72869            0x678ddd5a5dfa2eb5,
72870            fidl::encoding::DynamicFlags::empty(),
72871            _decode,
72872        )
72873    }
72874
72875    type SetIpMulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
72876        BaseNetworkSocketSetIpMulticastInterfaceResult,
72877        fidl::encoding::DefaultFuchsiaResourceDialect,
72878    >;
72879    fn r#set_ip_multicast_interface(
72880        &self,
72881        mut iface: u64,
72882        mut address: &fidl_fuchsia_net::Ipv4Address,
72883    ) -> Self::SetIpMulticastInterfaceResponseFut {
72884        fn _decode(
72885            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72886        ) -> Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error> {
72887            let _response = fidl::client::decode_transaction_body::<
72888                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72889                fidl::encoding::DefaultFuchsiaResourceDialect,
72890                0x752fbfa9b12befe,
72891            >(_buf?)?;
72892            Ok(_response.map(|x| x))
72893        }
72894        self.client.send_query_and_decode::<
72895            BaseNetworkSocketSetIpMulticastInterfaceRequest,
72896            BaseNetworkSocketSetIpMulticastInterfaceResult,
72897        >(
72898            (iface, address,),
72899            0x752fbfa9b12befe,
72900            fidl::encoding::DynamicFlags::empty(),
72901            _decode,
72902        )
72903    }
72904
72905    type GetIpMulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
72906        BaseNetworkSocketGetIpMulticastInterfaceResult,
72907        fidl::encoding::DefaultFuchsiaResourceDialect,
72908    >;
72909    fn r#get_ip_multicast_interface(&self) -> Self::GetIpMulticastInterfaceResponseFut {
72910        fn _decode(
72911            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72912        ) -> Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error> {
72913            let _response = fidl::client::decode_transaction_body::<
72914                fidl::encoding::ResultType<
72915                    BaseNetworkSocketGetIpMulticastInterfaceResponse,
72916                    fidl_fuchsia_posix::Errno,
72917                >,
72918                fidl::encoding::DefaultFuchsiaResourceDialect,
72919                0x320bd14c4df046c4,
72920            >(_buf?)?;
72921            Ok(_response.map(|x| x.value))
72922        }
72923        self.client.send_query_and_decode::<
72924            fidl::encoding::EmptyPayload,
72925            BaseNetworkSocketGetIpMulticastInterfaceResult,
72926        >(
72927            (),
72928            0x320bd14c4df046c4,
72929            fidl::encoding::DynamicFlags::empty(),
72930            _decode,
72931        )
72932    }
72933
72934    type SetIpMulticastTtlResponseFut = fidl::client::QueryResponseFut<
72935        BaseNetworkSocketSetIpMulticastTtlResult,
72936        fidl::encoding::DefaultFuchsiaResourceDialect,
72937    >;
72938    fn r#set_ip_multicast_ttl(
72939        &self,
72940        mut value: &OptionalUint8,
72941    ) -> Self::SetIpMulticastTtlResponseFut {
72942        fn _decode(
72943            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72944        ) -> Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error> {
72945            let _response = fidl::client::decode_transaction_body::<
72946                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72947                fidl::encoding::DefaultFuchsiaResourceDialect,
72948                0x63134d53772916a1,
72949            >(_buf?)?;
72950            Ok(_response.map(|x| x))
72951        }
72952        self.client.send_query_and_decode::<
72953            BaseNetworkSocketSetIpMulticastTtlRequest,
72954            BaseNetworkSocketSetIpMulticastTtlResult,
72955        >(
72956            (value,),
72957            0x63134d53772916a1,
72958            fidl::encoding::DynamicFlags::empty(),
72959            _decode,
72960        )
72961    }
72962
72963    type GetIpMulticastTtlResponseFut = fidl::client::QueryResponseFut<
72964        BaseNetworkSocketGetIpMulticastTtlResult,
72965        fidl::encoding::DefaultFuchsiaResourceDialect,
72966    >;
72967    fn r#get_ip_multicast_ttl(&self) -> Self::GetIpMulticastTtlResponseFut {
72968        fn _decode(
72969            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72970        ) -> Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error> {
72971            let _response = fidl::client::decode_transaction_body::<
72972                fidl::encoding::ResultType<
72973                    BaseNetworkSocketGetIpMulticastTtlResponse,
72974                    fidl_fuchsia_posix::Errno,
72975                >,
72976                fidl::encoding::DefaultFuchsiaResourceDialect,
72977                0x4665cd378f39e1a,
72978            >(_buf?)?;
72979            Ok(_response.map(|x| x.value))
72980        }
72981        self.client.send_query_and_decode::<
72982            fidl::encoding::EmptyPayload,
72983            BaseNetworkSocketGetIpMulticastTtlResult,
72984        >(
72985            (),
72986            0x4665cd378f39e1a,
72987            fidl::encoding::DynamicFlags::empty(),
72988            _decode,
72989        )
72990    }
72991
72992    type SetIpMulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
72993        BaseNetworkSocketSetIpMulticastLoopbackResult,
72994        fidl::encoding::DefaultFuchsiaResourceDialect,
72995    >;
72996    fn r#set_ip_multicast_loopback(
72997        &self,
72998        mut value: bool,
72999    ) -> Self::SetIpMulticastLoopbackResponseFut {
73000        fn _decode(
73001            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73002        ) -> Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error> {
73003            let _response = fidl::client::decode_transaction_body::<
73004                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73005                fidl::encoding::DefaultFuchsiaResourceDialect,
73006                0x20c55c11f00943ea,
73007            >(_buf?)?;
73008            Ok(_response.map(|x| x))
73009        }
73010        self.client.send_query_and_decode::<
73011            BaseNetworkSocketSetIpMulticastLoopbackRequest,
73012            BaseNetworkSocketSetIpMulticastLoopbackResult,
73013        >(
73014            (value,),
73015            0x20c55c11f00943ea,
73016            fidl::encoding::DynamicFlags::empty(),
73017            _decode,
73018        )
73019    }
73020
73021    type GetIpMulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
73022        BaseNetworkSocketGetIpMulticastLoopbackResult,
73023        fidl::encoding::DefaultFuchsiaResourceDialect,
73024    >;
73025    fn r#get_ip_multicast_loopback(&self) -> Self::GetIpMulticastLoopbackResponseFut {
73026        fn _decode(
73027            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73028        ) -> Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error> {
73029            let _response = fidl::client::decode_transaction_body::<
73030                fidl::encoding::ResultType<
73031                    BaseNetworkSocketGetIpMulticastLoopbackResponse,
73032                    fidl_fuchsia_posix::Errno,
73033                >,
73034                fidl::encoding::DefaultFuchsiaResourceDialect,
73035                0x3b6b26ff558298f2,
73036            >(_buf?)?;
73037            Ok(_response.map(|x| x.value))
73038        }
73039        self.client.send_query_and_decode::<
73040            fidl::encoding::EmptyPayload,
73041            BaseNetworkSocketGetIpMulticastLoopbackResult,
73042        >(
73043            (),
73044            0x3b6b26ff558298f2,
73045            fidl::encoding::DynamicFlags::empty(),
73046            _decode,
73047        )
73048    }
73049
73050    type AddIpMembershipResponseFut = fidl::client::QueryResponseFut<
73051        BaseNetworkSocketAddIpMembershipResult,
73052        fidl::encoding::DefaultFuchsiaResourceDialect,
73053    >;
73054    fn r#add_ip_membership(
73055        &self,
73056        mut membership: &IpMulticastMembership,
73057    ) -> Self::AddIpMembershipResponseFut {
73058        fn _decode(
73059            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73060        ) -> Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error> {
73061            let _response = fidl::client::decode_transaction_body::<
73062                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73063                fidl::encoding::DefaultFuchsiaResourceDialect,
73064                0x76bc7df115a3b4d0,
73065            >(_buf?)?;
73066            Ok(_response.map(|x| x))
73067        }
73068        self.client.send_query_and_decode::<
73069            BaseNetworkSocketAddIpMembershipRequest,
73070            BaseNetworkSocketAddIpMembershipResult,
73071        >(
73072            (membership,),
73073            0x76bc7df115a3b4d0,
73074            fidl::encoding::DynamicFlags::empty(),
73075            _decode,
73076        )
73077    }
73078
73079    type DropIpMembershipResponseFut = fidl::client::QueryResponseFut<
73080        BaseNetworkSocketDropIpMembershipResult,
73081        fidl::encoding::DefaultFuchsiaResourceDialect,
73082    >;
73083    fn r#drop_ip_membership(
73084        &self,
73085        mut membership: &IpMulticastMembership,
73086    ) -> Self::DropIpMembershipResponseFut {
73087        fn _decode(
73088            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73089        ) -> Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error> {
73090            let _response = fidl::client::decode_transaction_body::<
73091                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73092                fidl::encoding::DefaultFuchsiaResourceDialect,
73093                0x2888f3099188d03,
73094            >(_buf?)?;
73095            Ok(_response.map(|x| x))
73096        }
73097        self.client.send_query_and_decode::<
73098            BaseNetworkSocketDropIpMembershipRequest,
73099            BaseNetworkSocketDropIpMembershipResult,
73100        >(
73101            (membership,),
73102            0x2888f3099188d03,
73103            fidl::encoding::DynamicFlags::empty(),
73104            _decode,
73105        )
73106    }
73107
73108    type SetIpTransparentResponseFut = fidl::client::QueryResponseFut<
73109        BaseNetworkSocketSetIpTransparentResult,
73110        fidl::encoding::DefaultFuchsiaResourceDialect,
73111    >;
73112    fn r#set_ip_transparent(&self, mut value: bool) -> Self::SetIpTransparentResponseFut {
73113        fn _decode(
73114            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73115        ) -> Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error> {
73116            let _response = fidl::client::decode_transaction_body::<
73117                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73118                fidl::encoding::DefaultFuchsiaResourceDialect,
73119                0x1ae532b0c066e3a0,
73120            >(_buf?)?;
73121            Ok(_response.map(|x| x))
73122        }
73123        self.client.send_query_and_decode::<
73124            BaseNetworkSocketSetIpTransparentRequest,
73125            BaseNetworkSocketSetIpTransparentResult,
73126        >(
73127            (value,),
73128            0x1ae532b0c066e3a0,
73129            fidl::encoding::DynamicFlags::empty(),
73130            _decode,
73131        )
73132    }
73133
73134    type GetIpTransparentResponseFut = fidl::client::QueryResponseFut<
73135        BaseNetworkSocketGetIpTransparentResult,
73136        fidl::encoding::DefaultFuchsiaResourceDialect,
73137    >;
73138    fn r#get_ip_transparent(&self) -> Self::GetIpTransparentResponseFut {
73139        fn _decode(
73140            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73141        ) -> Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error> {
73142            let _response = fidl::client::decode_transaction_body::<
73143                fidl::encoding::ResultType<
73144                    BaseNetworkSocketGetIpTransparentResponse,
73145                    fidl_fuchsia_posix::Errno,
73146                >,
73147                fidl::encoding::DefaultFuchsiaResourceDialect,
73148                0x51d43695962ebfb5,
73149            >(_buf?)?;
73150            Ok(_response.map(|x| x.value))
73151        }
73152        self.client.send_query_and_decode::<
73153            fidl::encoding::EmptyPayload,
73154            BaseNetworkSocketGetIpTransparentResult,
73155        >(
73156            (),
73157            0x51d43695962ebfb5,
73158            fidl::encoding::DynamicFlags::empty(),
73159            _decode,
73160        )
73161    }
73162
73163    type SetIpReceiveOriginalDestinationAddressResponseFut = fidl::client::QueryResponseFut<
73164        BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
73165        fidl::encoding::DefaultFuchsiaResourceDialect,
73166    >;
73167    fn r#set_ip_receive_original_destination_address(
73168        &self,
73169        mut value: bool,
73170    ) -> Self::SetIpReceiveOriginalDestinationAddressResponseFut {
73171        fn _decode(
73172            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73173        ) -> Result<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult, fidl::Error>
73174        {
73175            let _response = fidl::client::decode_transaction_body::<
73176                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73177                fidl::encoding::DefaultFuchsiaResourceDialect,
73178                0x4722b4ce52f7840,
73179            >(_buf?)?;
73180            Ok(_response.map(|x| x))
73181        }
73182        self.client.send_query_and_decode::<
73183            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
73184            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
73185        >(
73186            (value,),
73187            0x4722b4ce52f7840,
73188            fidl::encoding::DynamicFlags::empty(),
73189            _decode,
73190        )
73191    }
73192
73193    type GetIpReceiveOriginalDestinationAddressResponseFut = fidl::client::QueryResponseFut<
73194        BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
73195        fidl::encoding::DefaultFuchsiaResourceDialect,
73196    >;
73197    fn r#get_ip_receive_original_destination_address(
73198        &self,
73199    ) -> Self::GetIpReceiveOriginalDestinationAddressResponseFut {
73200        fn _decode(
73201            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73202        ) -> Result<BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult, fidl::Error>
73203        {
73204            let _response = fidl::client::decode_transaction_body::<
73205                fidl::encoding::ResultType<
73206                    BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
73207                    fidl_fuchsia_posix::Errno,
73208                >,
73209                fidl::encoding::DefaultFuchsiaResourceDialect,
73210                0x2a0e7dc5d6bfdfe9,
73211            >(_buf?)?;
73212            Ok(_response.map(|x| x.value))
73213        }
73214        self.client.send_query_and_decode::<
73215            fidl::encoding::EmptyPayload,
73216            BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
73217        >(
73218            (),
73219            0x2a0e7dc5d6bfdfe9,
73220            fidl::encoding::DynamicFlags::empty(),
73221            _decode,
73222        )
73223    }
73224
73225    type AddIpv6MembershipResponseFut = fidl::client::QueryResponseFut<
73226        BaseNetworkSocketAddIpv6MembershipResult,
73227        fidl::encoding::DefaultFuchsiaResourceDialect,
73228    >;
73229    fn r#add_ipv6_membership(
73230        &self,
73231        mut membership: &Ipv6MulticastMembership,
73232    ) -> Self::AddIpv6MembershipResponseFut {
73233        fn _decode(
73234            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73235        ) -> Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error> {
73236            let _response = fidl::client::decode_transaction_body::<
73237                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73238                fidl::encoding::DefaultFuchsiaResourceDialect,
73239                0x7c94727acb4ea4b3,
73240            >(_buf?)?;
73241            Ok(_response.map(|x| x))
73242        }
73243        self.client.send_query_and_decode::<
73244            BaseNetworkSocketAddIpv6MembershipRequest,
73245            BaseNetworkSocketAddIpv6MembershipResult,
73246        >(
73247            (membership,),
73248            0x7c94727acb4ea4b3,
73249            fidl::encoding::DynamicFlags::empty(),
73250            _decode,
73251        )
73252    }
73253
73254    type DropIpv6MembershipResponseFut = fidl::client::QueryResponseFut<
73255        BaseNetworkSocketDropIpv6MembershipResult,
73256        fidl::encoding::DefaultFuchsiaResourceDialect,
73257    >;
73258    fn r#drop_ipv6_membership(
73259        &self,
73260        mut membership: &Ipv6MulticastMembership,
73261    ) -> Self::DropIpv6MembershipResponseFut {
73262        fn _decode(
73263            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73264        ) -> Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error> {
73265            let _response = fidl::client::decode_transaction_body::<
73266                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73267                fidl::encoding::DefaultFuchsiaResourceDialect,
73268                0x42104c70ccaba304,
73269            >(_buf?)?;
73270            Ok(_response.map(|x| x))
73271        }
73272        self.client.send_query_and_decode::<
73273            BaseNetworkSocketDropIpv6MembershipRequest,
73274            BaseNetworkSocketDropIpv6MembershipResult,
73275        >(
73276            (membership,),
73277            0x42104c70ccaba304,
73278            fidl::encoding::DynamicFlags::empty(),
73279            _decode,
73280        )
73281    }
73282
73283    type SetIpv6MulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
73284        BaseNetworkSocketSetIpv6MulticastInterfaceResult,
73285        fidl::encoding::DefaultFuchsiaResourceDialect,
73286    >;
73287    fn r#set_ipv6_multicast_interface(
73288        &self,
73289        mut value: u64,
73290    ) -> Self::SetIpv6MulticastInterfaceResponseFut {
73291        fn _decode(
73292            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73293        ) -> Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error> {
73294            let _response = fidl::client::decode_transaction_body::<
73295                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73296                fidl::encoding::DefaultFuchsiaResourceDialect,
73297                0x135f76db3774ab3b,
73298            >(_buf?)?;
73299            Ok(_response.map(|x| x))
73300        }
73301        self.client.send_query_and_decode::<
73302            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
73303            BaseNetworkSocketSetIpv6MulticastInterfaceResult,
73304        >(
73305            (value,),
73306            0x135f76db3774ab3b,
73307            fidl::encoding::DynamicFlags::empty(),
73308            _decode,
73309        )
73310    }
73311
73312    type GetIpv6MulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
73313        BaseNetworkSocketGetIpv6MulticastInterfaceResult,
73314        fidl::encoding::DefaultFuchsiaResourceDialect,
73315    >;
73316    fn r#get_ipv6_multicast_interface(&self) -> Self::GetIpv6MulticastInterfaceResponseFut {
73317        fn _decode(
73318            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73319        ) -> Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error> {
73320            let _response = fidl::client::decode_transaction_body::<
73321                fidl::encoding::ResultType<
73322                    BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
73323                    fidl_fuchsia_posix::Errno,
73324                >,
73325                fidl::encoding::DefaultFuchsiaResourceDialect,
73326                0x1f26fcdd348f1882,
73327            >(_buf?)?;
73328            Ok(_response.map(|x| x.value))
73329        }
73330        self.client.send_query_and_decode::<
73331            fidl::encoding::EmptyPayload,
73332            BaseNetworkSocketGetIpv6MulticastInterfaceResult,
73333        >(
73334            (),
73335            0x1f26fcdd348f1882,
73336            fidl::encoding::DynamicFlags::empty(),
73337            _decode,
73338        )
73339    }
73340
73341    type SetIpv6UnicastHopsResponseFut = fidl::client::QueryResponseFut<
73342        BaseNetworkSocketSetIpv6UnicastHopsResult,
73343        fidl::encoding::DefaultFuchsiaResourceDialect,
73344    >;
73345    fn r#set_ipv6_unicast_hops(
73346        &self,
73347        mut value: &OptionalUint8,
73348    ) -> Self::SetIpv6UnicastHopsResponseFut {
73349        fn _decode(
73350            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73351        ) -> Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error> {
73352            let _response = fidl::client::decode_transaction_body::<
73353                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73354                fidl::encoding::DefaultFuchsiaResourceDialect,
73355                0x157d51e98f462859,
73356            >(_buf?)?;
73357            Ok(_response.map(|x| x))
73358        }
73359        self.client.send_query_and_decode::<
73360            BaseNetworkSocketSetIpv6UnicastHopsRequest,
73361            BaseNetworkSocketSetIpv6UnicastHopsResult,
73362        >(
73363            (value,),
73364            0x157d51e98f462859,
73365            fidl::encoding::DynamicFlags::empty(),
73366            _decode,
73367        )
73368    }
73369
73370    type GetIpv6UnicastHopsResponseFut = fidl::client::QueryResponseFut<
73371        BaseNetworkSocketGetIpv6UnicastHopsResult,
73372        fidl::encoding::DefaultFuchsiaResourceDialect,
73373    >;
73374    fn r#get_ipv6_unicast_hops(&self) -> Self::GetIpv6UnicastHopsResponseFut {
73375        fn _decode(
73376            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73377        ) -> Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error> {
73378            let _response = fidl::client::decode_transaction_body::<
73379                fidl::encoding::ResultType<
73380                    BaseNetworkSocketGetIpv6UnicastHopsResponse,
73381                    fidl_fuchsia_posix::Errno,
73382                >,
73383                fidl::encoding::DefaultFuchsiaResourceDialect,
73384                0x21f4641cad8bd8d2,
73385            >(_buf?)?;
73386            Ok(_response.map(|x| x.value))
73387        }
73388        self.client.send_query_and_decode::<
73389            fidl::encoding::EmptyPayload,
73390            BaseNetworkSocketGetIpv6UnicastHopsResult,
73391        >(
73392            (),
73393            0x21f4641cad8bd8d2,
73394            fidl::encoding::DynamicFlags::empty(),
73395            _decode,
73396        )
73397    }
73398
73399    type SetIpv6ReceiveHopLimitResponseFut = fidl::client::QueryResponseFut<
73400        BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
73401        fidl::encoding::DefaultFuchsiaResourceDialect,
73402    >;
73403    fn r#set_ipv6_receive_hop_limit(
73404        &self,
73405        mut value: bool,
73406    ) -> Self::SetIpv6ReceiveHopLimitResponseFut {
73407        fn _decode(
73408            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73409        ) -> Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error> {
73410            let _response = fidl::client::decode_transaction_body::<
73411                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73412                fidl::encoding::DefaultFuchsiaResourceDialect,
73413                0x5c24808ed2e84a1e,
73414            >(_buf?)?;
73415            Ok(_response.map(|x| x))
73416        }
73417        self.client.send_query_and_decode::<
73418            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
73419            BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
73420        >(
73421            (value,),
73422            0x5c24808ed2e84a1e,
73423            fidl::encoding::DynamicFlags::empty(),
73424            _decode,
73425        )
73426    }
73427
73428    type GetIpv6ReceiveHopLimitResponseFut = fidl::client::QueryResponseFut<
73429        BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
73430        fidl::encoding::DefaultFuchsiaResourceDialect,
73431    >;
73432    fn r#get_ipv6_receive_hop_limit(&self) -> Self::GetIpv6ReceiveHopLimitResponseFut {
73433        fn _decode(
73434            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73435        ) -> Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error> {
73436            let _response = fidl::client::decode_transaction_body::<
73437                fidl::encoding::ResultType<
73438                    BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
73439                    fidl_fuchsia_posix::Errno,
73440                >,
73441                fidl::encoding::DefaultFuchsiaResourceDialect,
73442                0x341e06689885b4c0,
73443            >(_buf?)?;
73444            Ok(_response.map(|x| x.value))
73445        }
73446        self.client.send_query_and_decode::<
73447            fidl::encoding::EmptyPayload,
73448            BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
73449        >(
73450            (),
73451            0x341e06689885b4c0,
73452            fidl::encoding::DynamicFlags::empty(),
73453            _decode,
73454        )
73455    }
73456
73457    type SetIpv6MulticastHopsResponseFut = fidl::client::QueryResponseFut<
73458        BaseNetworkSocketSetIpv6MulticastHopsResult,
73459        fidl::encoding::DefaultFuchsiaResourceDialect,
73460    >;
73461    fn r#set_ipv6_multicast_hops(
73462        &self,
73463        mut value: &OptionalUint8,
73464    ) -> Self::SetIpv6MulticastHopsResponseFut {
73465        fn _decode(
73466            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73467        ) -> Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error> {
73468            let _response = fidl::client::decode_transaction_body::<
73469                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73470                fidl::encoding::DefaultFuchsiaResourceDialect,
73471                0x25b9cd4d181f82c1,
73472            >(_buf?)?;
73473            Ok(_response.map(|x| x))
73474        }
73475        self.client.send_query_and_decode::<
73476            BaseNetworkSocketSetIpv6MulticastHopsRequest,
73477            BaseNetworkSocketSetIpv6MulticastHopsResult,
73478        >(
73479            (value,),
73480            0x25b9cd4d181f82c1,
73481            fidl::encoding::DynamicFlags::empty(),
73482            _decode,
73483        )
73484    }
73485
73486    type GetIpv6MulticastHopsResponseFut = fidl::client::QueryResponseFut<
73487        BaseNetworkSocketGetIpv6MulticastHopsResult,
73488        fidl::encoding::DefaultFuchsiaResourceDialect,
73489    >;
73490    fn r#get_ipv6_multicast_hops(&self) -> Self::GetIpv6MulticastHopsResponseFut {
73491        fn _decode(
73492            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73493        ) -> Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error> {
73494            let _response = fidl::client::decode_transaction_body::<
73495                fidl::encoding::ResultType<
73496                    BaseNetworkSocketGetIpv6MulticastHopsResponse,
73497                    fidl_fuchsia_posix::Errno,
73498                >,
73499                fidl::encoding::DefaultFuchsiaResourceDialect,
73500                0x52916948a365012a,
73501            >(_buf?)?;
73502            Ok(_response.map(|x| x.value))
73503        }
73504        self.client.send_query_and_decode::<
73505            fidl::encoding::EmptyPayload,
73506            BaseNetworkSocketGetIpv6MulticastHopsResult,
73507        >(
73508            (),
73509            0x52916948a365012a,
73510            fidl::encoding::DynamicFlags::empty(),
73511            _decode,
73512        )
73513    }
73514
73515    type SetIpv6MulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
73516        BaseNetworkSocketSetIpv6MulticastLoopbackResult,
73517        fidl::encoding::DefaultFuchsiaResourceDialect,
73518    >;
73519    fn r#set_ipv6_multicast_loopback(
73520        &self,
73521        mut value: bool,
73522    ) -> Self::SetIpv6MulticastLoopbackResponseFut {
73523        fn _decode(
73524            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73525        ) -> Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error> {
73526            let _response = fidl::client::decode_transaction_body::<
73527                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73528                fidl::encoding::DefaultFuchsiaResourceDialect,
73529                0x55701c409ff41b40,
73530            >(_buf?)?;
73531            Ok(_response.map(|x| x))
73532        }
73533        self.client.send_query_and_decode::<
73534            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
73535            BaseNetworkSocketSetIpv6MulticastLoopbackResult,
73536        >(
73537            (value,),
73538            0x55701c409ff41b40,
73539            fidl::encoding::DynamicFlags::empty(),
73540            _decode,
73541        )
73542    }
73543
73544    type GetIpv6MulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
73545        BaseNetworkSocketGetIpv6MulticastLoopbackResult,
73546        fidl::encoding::DefaultFuchsiaResourceDialect,
73547    >;
73548    fn r#get_ipv6_multicast_loopback(&self) -> Self::GetIpv6MulticastLoopbackResponseFut {
73549        fn _decode(
73550            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73551        ) -> Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error> {
73552            let _response = fidl::client::decode_transaction_body::<
73553                fidl::encoding::ResultType<
73554                    BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
73555                    fidl_fuchsia_posix::Errno,
73556                >,
73557                fidl::encoding::DefaultFuchsiaResourceDialect,
73558                0x4415b701fde319c3,
73559            >(_buf?)?;
73560            Ok(_response.map(|x| x.value))
73561        }
73562        self.client.send_query_and_decode::<
73563            fidl::encoding::EmptyPayload,
73564            BaseNetworkSocketGetIpv6MulticastLoopbackResult,
73565        >(
73566            (),
73567            0x4415b701fde319c3,
73568            fidl::encoding::DynamicFlags::empty(),
73569            _decode,
73570        )
73571    }
73572
73573    type SetIpv6OnlyResponseFut = fidl::client::QueryResponseFut<
73574        BaseNetworkSocketSetIpv6OnlyResult,
73575        fidl::encoding::DefaultFuchsiaResourceDialect,
73576    >;
73577    fn r#set_ipv6_only(&self, mut value: bool) -> Self::SetIpv6OnlyResponseFut {
73578        fn _decode(
73579            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73580        ) -> Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error> {
73581            let _response = fidl::client::decode_transaction_body::<
73582                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73583                fidl::encoding::DefaultFuchsiaResourceDialect,
73584                0x4873f1364758cbba,
73585            >(_buf?)?;
73586            Ok(_response.map(|x| x))
73587        }
73588        self.client.send_query_and_decode::<
73589            BaseNetworkSocketSetIpv6OnlyRequest,
73590            BaseNetworkSocketSetIpv6OnlyResult,
73591        >(
73592            (value,),
73593            0x4873f1364758cbba,
73594            fidl::encoding::DynamicFlags::empty(),
73595            _decode,
73596        )
73597    }
73598
73599    type GetIpv6OnlyResponseFut = fidl::client::QueryResponseFut<
73600        BaseNetworkSocketGetIpv6OnlyResult,
73601        fidl::encoding::DefaultFuchsiaResourceDialect,
73602    >;
73603    fn r#get_ipv6_only(&self) -> Self::GetIpv6OnlyResponseFut {
73604        fn _decode(
73605            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73606        ) -> Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error> {
73607            let _response = fidl::client::decode_transaction_body::<
73608                fidl::encoding::ResultType<
73609                    BaseNetworkSocketGetIpv6OnlyResponse,
73610                    fidl_fuchsia_posix::Errno,
73611                >,
73612                fidl::encoding::DefaultFuchsiaResourceDialect,
73613                0x4aa3340a1a26b89c,
73614            >(_buf?)?;
73615            Ok(_response.map(|x| x.value))
73616        }
73617        self.client.send_query_and_decode::<
73618            fidl::encoding::EmptyPayload,
73619            BaseNetworkSocketGetIpv6OnlyResult,
73620        >(
73621            (),
73622            0x4aa3340a1a26b89c,
73623            fidl::encoding::DynamicFlags::empty(),
73624            _decode,
73625        )
73626    }
73627
73628    type SetIpv6ReceiveTrafficClassResponseFut = fidl::client::QueryResponseFut<
73629        BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
73630        fidl::encoding::DefaultFuchsiaResourceDialect,
73631    >;
73632    fn r#set_ipv6_receive_traffic_class(
73633        &self,
73634        mut value: bool,
73635    ) -> Self::SetIpv6ReceiveTrafficClassResponseFut {
73636        fn _decode(
73637            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73638        ) -> Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error> {
73639            let _response = fidl::client::decode_transaction_body::<
73640                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73641                fidl::encoding::DefaultFuchsiaResourceDialect,
73642                0x58f07c8788d099a0,
73643            >(_buf?)?;
73644            Ok(_response.map(|x| x))
73645        }
73646        self.client.send_query_and_decode::<
73647            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
73648            BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
73649        >(
73650            (value,),
73651            0x58f07c8788d099a0,
73652            fidl::encoding::DynamicFlags::empty(),
73653            _decode,
73654        )
73655    }
73656
73657    type GetIpv6ReceiveTrafficClassResponseFut = fidl::client::QueryResponseFut<
73658        BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
73659        fidl::encoding::DefaultFuchsiaResourceDialect,
73660    >;
73661    fn r#get_ipv6_receive_traffic_class(&self) -> Self::GetIpv6ReceiveTrafficClassResponseFut {
73662        fn _decode(
73663            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73664        ) -> Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error> {
73665            let _response = fidl::client::decode_transaction_body::<
73666                fidl::encoding::ResultType<
73667                    BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
73668                    fidl_fuchsia_posix::Errno,
73669                >,
73670                fidl::encoding::DefaultFuchsiaResourceDialect,
73671                0x2e334df1da553ffa,
73672            >(_buf?)?;
73673            Ok(_response.map(|x| x.value))
73674        }
73675        self.client.send_query_and_decode::<
73676            fidl::encoding::EmptyPayload,
73677            BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
73678        >(
73679            (),
73680            0x2e334df1da553ffa,
73681            fidl::encoding::DynamicFlags::empty(),
73682            _decode,
73683        )
73684    }
73685
73686    type SetIpv6TrafficClassResponseFut = fidl::client::QueryResponseFut<
73687        BaseNetworkSocketSetIpv6TrafficClassResult,
73688        fidl::encoding::DefaultFuchsiaResourceDialect,
73689    >;
73690    fn r#set_ipv6_traffic_class(
73691        &self,
73692        mut value: &OptionalUint8,
73693    ) -> Self::SetIpv6TrafficClassResponseFut {
73694        fn _decode(
73695            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73696        ) -> Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error> {
73697            let _response = fidl::client::decode_transaction_body::<
73698                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73699                fidl::encoding::DefaultFuchsiaResourceDialect,
73700                0x6af077800c5a0b4f,
73701            >(_buf?)?;
73702            Ok(_response.map(|x| x))
73703        }
73704        self.client.send_query_and_decode::<
73705            BaseNetworkSocketSetIpv6TrafficClassRequest,
73706            BaseNetworkSocketSetIpv6TrafficClassResult,
73707        >(
73708            (value,),
73709            0x6af077800c5a0b4f,
73710            fidl::encoding::DynamicFlags::empty(),
73711            _decode,
73712        )
73713    }
73714
73715    type GetIpv6TrafficClassResponseFut = fidl::client::QueryResponseFut<
73716        BaseNetworkSocketGetIpv6TrafficClassResult,
73717        fidl::encoding::DefaultFuchsiaResourceDialect,
73718    >;
73719    fn r#get_ipv6_traffic_class(&self) -> Self::GetIpv6TrafficClassResponseFut {
73720        fn _decode(
73721            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73722        ) -> Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error> {
73723            let _response = fidl::client::decode_transaction_body::<
73724                fidl::encoding::ResultType<
73725                    BaseNetworkSocketGetIpv6TrafficClassResponse,
73726                    fidl_fuchsia_posix::Errno,
73727                >,
73728                fidl::encoding::DefaultFuchsiaResourceDialect,
73729                0x6baf6eed8fc2f04,
73730            >(_buf?)?;
73731            Ok(_response.map(|x| x.value))
73732        }
73733        self.client.send_query_and_decode::<
73734            fidl::encoding::EmptyPayload,
73735            BaseNetworkSocketGetIpv6TrafficClassResult,
73736        >(
73737            (),
73738            0x6baf6eed8fc2f04,
73739            fidl::encoding::DynamicFlags::empty(),
73740            _decode,
73741        )
73742    }
73743
73744    type SetIpv6ReceivePacketInfoResponseFut = fidl::client::QueryResponseFut<
73745        BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
73746        fidl::encoding::DefaultFuchsiaResourceDialect,
73747    >;
73748    fn r#set_ipv6_receive_packet_info(
73749        &self,
73750        mut value: bool,
73751    ) -> Self::SetIpv6ReceivePacketInfoResponseFut {
73752        fn _decode(
73753            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73754        ) -> Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error> {
73755            let _response = fidl::client::decode_transaction_body::<
73756                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73757                fidl::encoding::DefaultFuchsiaResourceDialect,
73758                0x19259775b1a92768,
73759            >(_buf?)?;
73760            Ok(_response.map(|x| x))
73761        }
73762        self.client.send_query_and_decode::<
73763            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
73764            BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
73765        >(
73766            (value,),
73767            0x19259775b1a92768,
73768            fidl::encoding::DynamicFlags::empty(),
73769            _decode,
73770        )
73771    }
73772
73773    type GetIpv6ReceivePacketInfoResponseFut = fidl::client::QueryResponseFut<
73774        BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
73775        fidl::encoding::DefaultFuchsiaResourceDialect,
73776    >;
73777    fn r#get_ipv6_receive_packet_info(&self) -> Self::GetIpv6ReceivePacketInfoResponseFut {
73778        fn _decode(
73779            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73780        ) -> Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error> {
73781            let _response = fidl::client::decode_transaction_body::<
73782                fidl::encoding::ResultType<
73783                    BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
73784                    fidl_fuchsia_posix::Errno,
73785                >,
73786                fidl::encoding::DefaultFuchsiaResourceDialect,
73787                0x7acd4a2775baec75,
73788            >(_buf?)?;
73789            Ok(_response.map(|x| x.value))
73790        }
73791        self.client.send_query_and_decode::<
73792            fidl::encoding::EmptyPayload,
73793            BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
73794        >(
73795            (),
73796            0x7acd4a2775baec75,
73797            fidl::encoding::DynamicFlags::empty(),
73798            _decode,
73799        )
73800    }
73801
73802    type GetOriginalDestinationResponseFut = fidl::client::QueryResponseFut<
73803        BaseNetworkSocketGetOriginalDestinationResult,
73804        fidl::encoding::DefaultFuchsiaResourceDialect,
73805    >;
73806    fn r#get_original_destination(&self) -> Self::GetOriginalDestinationResponseFut {
73807        fn _decode(
73808            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73809        ) -> Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error> {
73810            let _response = fidl::client::decode_transaction_body::<
73811                fidl::encoding::ResultType<
73812                    BaseNetworkSocketGetOriginalDestinationResponse,
73813                    fidl_fuchsia_posix::Errno,
73814                >,
73815                fidl::encoding::DefaultFuchsiaResourceDialect,
73816                0x38bf28f0dafdbac0,
73817            >(_buf?)?;
73818            Ok(_response.map(|x| x.value))
73819        }
73820        self.client.send_query_and_decode::<
73821            fidl::encoding::EmptyPayload,
73822            BaseNetworkSocketGetOriginalDestinationResult,
73823        >(
73824            (),
73825            0x38bf28f0dafdbac0,
73826            fidl::encoding::DynamicFlags::empty(),
73827            _decode,
73828        )
73829    }
73830
73831    type GetInfoResponseFut = fidl::client::QueryResponseFut<
73832        BaseDatagramSocketGetInfoResult,
73833        fidl::encoding::DefaultFuchsiaResourceDialect,
73834    >;
73835    fn r#get_info(&self) -> Self::GetInfoResponseFut {
73836        fn _decode(
73837            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73838        ) -> Result<BaseDatagramSocketGetInfoResult, fidl::Error> {
73839            let _response = fidl::client::decode_transaction_body::<
73840                fidl::encoding::ResultType<
73841                    BaseDatagramSocketGetInfoResponse,
73842                    fidl_fuchsia_posix::Errno,
73843                >,
73844                fidl::encoding::DefaultFuchsiaResourceDialect,
73845                0x48aa0a1f6a32d2ed,
73846            >(_buf?)?;
73847            Ok(_response.map(|x| (x.domain, x.proto)))
73848        }
73849        self.client
73850            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseDatagramSocketGetInfoResult>(
73851                (),
73852                0x48aa0a1f6a32d2ed,
73853                fidl::encoding::DynamicFlags::empty(),
73854                _decode,
73855            )
73856    }
73857
73858    type DescribeResponseFut = fidl::client::QueryResponseFut<
73859        SynchronousDatagramSocketDescribeResponse,
73860        fidl::encoding::DefaultFuchsiaResourceDialect,
73861    >;
73862    fn r#describe(&self) -> Self::DescribeResponseFut {
73863        fn _decode(
73864            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73865        ) -> Result<SynchronousDatagramSocketDescribeResponse, fidl::Error> {
73866            let _response = fidl::client::decode_transaction_body::<
73867                SynchronousDatagramSocketDescribeResponse,
73868                fidl::encoding::DefaultFuchsiaResourceDialect,
73869                0x585f20b73631070d,
73870            >(_buf?)?;
73871            Ok(_response)
73872        }
73873        self.client.send_query_and_decode::<
73874            fidl::encoding::EmptyPayload,
73875            SynchronousDatagramSocketDescribeResponse,
73876        >(
73877            (),
73878            0x585f20b73631070d,
73879            fidl::encoding::DynamicFlags::empty(),
73880            _decode,
73881        )
73882    }
73883
73884    type RecvMsgResponseFut = fidl::client::QueryResponseFut<
73885        SynchronousDatagramSocketRecvMsgResult,
73886        fidl::encoding::DefaultFuchsiaResourceDialect,
73887    >;
73888    fn r#recv_msg(
73889        &self,
73890        mut want_addr: bool,
73891        mut data_len: u32,
73892        mut want_control: bool,
73893        mut flags: RecvMsgFlags,
73894    ) -> Self::RecvMsgResponseFut {
73895        fn _decode(
73896            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73897        ) -> Result<SynchronousDatagramSocketRecvMsgResult, fidl::Error> {
73898            let _response = fidl::client::decode_transaction_body::<
73899                fidl::encoding::ResultType<
73900                    SynchronousDatagramSocketRecvMsgResponse,
73901                    fidl_fuchsia_posix::Errno,
73902                >,
73903                fidl::encoding::DefaultFuchsiaResourceDialect,
73904                0x28e494e48fb5dbf3,
73905            >(_buf?)?;
73906            Ok(_response.map(|x| (x.addr, x.data, x.control, x.truncated)))
73907        }
73908        self.client.send_query_and_decode::<
73909            SynchronousDatagramSocketRecvMsgRequest,
73910            SynchronousDatagramSocketRecvMsgResult,
73911        >(
73912            (want_addr, data_len, want_control, flags,),
73913            0x28e494e48fb5dbf3,
73914            fidl::encoding::DynamicFlags::empty(),
73915            _decode,
73916        )
73917    }
73918
73919    type SendMsgResponseFut = fidl::client::QueryResponseFut<
73920        SynchronousDatagramSocketSendMsgResult,
73921        fidl::encoding::DefaultFuchsiaResourceDialect,
73922    >;
73923    fn r#send_msg(
73924        &self,
73925        mut addr: Option<&fidl_fuchsia_net::SocketAddress>,
73926        mut data: &[u8],
73927        mut control: &DatagramSocketSendControlData,
73928        mut flags: SendMsgFlags,
73929    ) -> Self::SendMsgResponseFut {
73930        fn _decode(
73931            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73932        ) -> Result<SynchronousDatagramSocketSendMsgResult, fidl::Error> {
73933            let _response = fidl::client::decode_transaction_body::<
73934                fidl::encoding::ResultType<
73935                    SynchronousDatagramSocketSendMsgResponse,
73936                    fidl_fuchsia_posix::Errno,
73937                >,
73938                fidl::encoding::DefaultFuchsiaResourceDialect,
73939                0x12dc2fceab6cefaa,
73940            >(_buf?)?;
73941            Ok(_response.map(|x| x.len))
73942        }
73943        self.client.send_query_and_decode::<
73944            SynchronousDatagramSocketSendMsgRequest,
73945            SynchronousDatagramSocketSendMsgResult,
73946        >(
73947            (addr, data, control, flags,),
73948            0x12dc2fceab6cefaa,
73949            fidl::encoding::DynamicFlags::empty(),
73950            _decode,
73951        )
73952    }
73953}
73954
73955pub struct SynchronousDatagramSocketEventStream {
73956    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
73957}
73958
73959impl std::marker::Unpin for SynchronousDatagramSocketEventStream {}
73960
73961impl futures::stream::FusedStream for SynchronousDatagramSocketEventStream {
73962    fn is_terminated(&self) -> bool {
73963        self.event_receiver.is_terminated()
73964    }
73965}
73966
73967impl futures::Stream for SynchronousDatagramSocketEventStream {
73968    type Item = Result<SynchronousDatagramSocketEvent, fidl::Error>;
73969
73970    fn poll_next(
73971        mut self: std::pin::Pin<&mut Self>,
73972        cx: &mut std::task::Context<'_>,
73973    ) -> std::task::Poll<Option<Self::Item>> {
73974        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
73975            &mut self.event_receiver,
73976            cx
73977        )?) {
73978            Some(buf) => std::task::Poll::Ready(Some(SynchronousDatagramSocketEvent::decode(buf))),
73979            None => std::task::Poll::Ready(None),
73980        }
73981    }
73982}
73983
73984#[derive(Debug)]
73985pub enum SynchronousDatagramSocketEvent {}
73986
73987impl SynchronousDatagramSocketEvent {
73988    /// Decodes a message buffer as a [`SynchronousDatagramSocketEvent`].
73989    fn decode(
73990        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
73991    ) -> Result<SynchronousDatagramSocketEvent, fidl::Error> {
73992        let (bytes, _handles) = buf.split_mut();
73993        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
73994        debug_assert_eq!(tx_header.tx_id, 0);
73995        match tx_header.ordinal {
73996            _ => Err(fidl::Error::UnknownOrdinal {
73997                ordinal: tx_header.ordinal,
73998                protocol_name:
73999                    <SynchronousDatagramSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
74000            }),
74001        }
74002    }
74003}
74004
74005/// A Stream of incoming requests for fuchsia.posix.socket/SynchronousDatagramSocket.
74006pub struct SynchronousDatagramSocketRequestStream {
74007    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
74008    is_terminated: bool,
74009}
74010
74011impl std::marker::Unpin for SynchronousDatagramSocketRequestStream {}
74012
74013impl futures::stream::FusedStream for SynchronousDatagramSocketRequestStream {
74014    fn is_terminated(&self) -> bool {
74015        self.is_terminated
74016    }
74017}
74018
74019impl fidl::endpoints::RequestStream for SynchronousDatagramSocketRequestStream {
74020    type Protocol = SynchronousDatagramSocketMarker;
74021    type ControlHandle = SynchronousDatagramSocketControlHandle;
74022
74023    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
74024        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
74025    }
74026
74027    fn control_handle(&self) -> Self::ControlHandle {
74028        SynchronousDatagramSocketControlHandle { inner: self.inner.clone() }
74029    }
74030
74031    fn into_inner(
74032        self,
74033    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
74034    {
74035        (self.inner, self.is_terminated)
74036    }
74037
74038    fn from_inner(
74039        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
74040        is_terminated: bool,
74041    ) -> Self {
74042        Self { inner, is_terminated }
74043    }
74044}
74045
74046impl futures::Stream for SynchronousDatagramSocketRequestStream {
74047    type Item = Result<SynchronousDatagramSocketRequest, fidl::Error>;
74048
74049    fn poll_next(
74050        mut self: std::pin::Pin<&mut Self>,
74051        cx: &mut std::task::Context<'_>,
74052    ) -> std::task::Poll<Option<Self::Item>> {
74053        let this = &mut *self;
74054        if this.inner.check_shutdown(cx) {
74055            this.is_terminated = true;
74056            return std::task::Poll::Ready(None);
74057        }
74058        if this.is_terminated {
74059            panic!("polled SynchronousDatagramSocketRequestStream after completion");
74060        }
74061        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
74062            |bytes, handles| {
74063                match this.inner.channel().read_etc(cx, bytes, handles) {
74064                    std::task::Poll::Ready(Ok(())) => {}
74065                    std::task::Poll::Pending => return std::task::Poll::Pending,
74066                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
74067                        this.is_terminated = true;
74068                        return std::task::Poll::Ready(None);
74069                    }
74070                    std::task::Poll::Ready(Err(e)) => {
74071                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
74072                            e.into(),
74073                        ))))
74074                    }
74075                }
74076
74077                // A message has been received from the channel
74078                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
74079
74080                std::task::Poll::Ready(Some(match header.ordinal {
74081                0x20d8a7aba2168a79 => {
74082                    header.validate_request_tx_id(fidl::MethodType::OneWay)?;
74083                    let mut req = fidl::new_empty!(fidl_fuchsia_unknown::CloneableCloneRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74084                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl_fuchsia_unknown::CloneableCloneRequest>(&header, _body_bytes, handles, &mut req)?;
74085                    let control_handle = SynchronousDatagramSocketControlHandle {
74086                        inner: this.inner.clone(),
74087                    };
74088                    Ok(SynchronousDatagramSocketRequest::Clone {request: req.request,
74089
74090                        control_handle,
74091                    })
74092                }
74093                0x5ac5d459ad7f657e => {
74094                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74095                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74096                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74097                    let control_handle = SynchronousDatagramSocketControlHandle {
74098                        inner: this.inner.clone(),
74099                    };
74100                    Ok(SynchronousDatagramSocketRequest::Close {
74101                        responder: SynchronousDatagramSocketCloseResponder {
74102                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74103                            tx_id: header.tx_id,
74104                        },
74105                    })
74106                }
74107                0x2658edee9decfc06 => {
74108                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74109                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74110                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74111                    let control_handle = SynchronousDatagramSocketControlHandle {
74112                        inner: this.inner.clone(),
74113                    };
74114                    Ok(SynchronousDatagramSocketRequest::Query {
74115                        responder: SynchronousDatagramSocketQueryResponder {
74116                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74117                            tx_id: header.tx_id,
74118                        },
74119                    })
74120                }
74121                0x1fd74ee8b9a4a876 => {
74122                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74123                    let mut req = fidl::new_empty!(BaseSocketSetReuseAddressRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74124                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReuseAddressRequest>(&header, _body_bytes, handles, &mut req)?;
74125                    let control_handle = SynchronousDatagramSocketControlHandle {
74126                        inner: this.inner.clone(),
74127                    };
74128                    Ok(SynchronousDatagramSocketRequest::SetReuseAddress {value: req.value,
74129
74130                        responder: SynchronousDatagramSocketSetReuseAddressResponder {
74131                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74132                            tx_id: header.tx_id,
74133                        },
74134                    })
74135                }
74136                0x67b7206b8d1bc0a5 => {
74137                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74138                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74139                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74140                    let control_handle = SynchronousDatagramSocketControlHandle {
74141                        inner: this.inner.clone(),
74142                    };
74143                    Ok(SynchronousDatagramSocketRequest::GetReuseAddress {
74144                        responder: SynchronousDatagramSocketGetReuseAddressResponder {
74145                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74146                            tx_id: header.tx_id,
74147                        },
74148                    })
74149                }
74150                0x5aad39b33e5f6ebb => {
74151                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74152                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74153                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74154                    let control_handle = SynchronousDatagramSocketControlHandle {
74155                        inner: this.inner.clone(),
74156                    };
74157                    Ok(SynchronousDatagramSocketRequest::GetError {
74158                        responder: SynchronousDatagramSocketGetErrorResponder {
74159                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74160                            tx_id: header.tx_id,
74161                        },
74162                    })
74163                }
74164                0x6023e081ce3cd947 => {
74165                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74166                    let mut req = fidl::new_empty!(BaseSocketSetBroadcastRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74167                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBroadcastRequest>(&header, _body_bytes, handles, &mut req)?;
74168                    let control_handle = SynchronousDatagramSocketControlHandle {
74169                        inner: this.inner.clone(),
74170                    };
74171                    Ok(SynchronousDatagramSocketRequest::SetBroadcast {value: req.value,
74172
74173                        responder: SynchronousDatagramSocketSetBroadcastResponder {
74174                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74175                            tx_id: header.tx_id,
74176                        },
74177                    })
74178                }
74179                0x68796fc556f9780d => {
74180                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74181                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74182                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74183                    let control_handle = SynchronousDatagramSocketControlHandle {
74184                        inner: this.inner.clone(),
74185                    };
74186                    Ok(SynchronousDatagramSocketRequest::GetBroadcast {
74187                        responder: SynchronousDatagramSocketGetBroadcastResponder {
74188                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74189                            tx_id: header.tx_id,
74190                        },
74191                    })
74192                }
74193                0x756eac32d73a7a70 => {
74194                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74195                    let mut req = fidl::new_empty!(BaseSocketSetSendBufferRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74196                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetSendBufferRequest>(&header, _body_bytes, handles, &mut req)?;
74197                    let control_handle = SynchronousDatagramSocketControlHandle {
74198                        inner: this.inner.clone(),
74199                    };
74200                    Ok(SynchronousDatagramSocketRequest::SetSendBuffer {value_bytes: req.value_bytes,
74201
74202                        responder: SynchronousDatagramSocketSetSendBufferResponder {
74203                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74204                            tx_id: header.tx_id,
74205                        },
74206                    })
74207                }
74208                0x78a52fd9c7b2410b => {
74209                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74210                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74211                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74212                    let control_handle = SynchronousDatagramSocketControlHandle {
74213                        inner: this.inner.clone(),
74214                    };
74215                    Ok(SynchronousDatagramSocketRequest::GetSendBuffer {
74216                        responder: SynchronousDatagramSocketGetSendBufferResponder {
74217                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74218                            tx_id: header.tx_id,
74219                        },
74220                    })
74221                }
74222                0x6b0cf2f1919c7001 => {
74223                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74224                    let mut req = fidl::new_empty!(BaseSocketSetReceiveBufferRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74225                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReceiveBufferRequest>(&header, _body_bytes, handles, &mut req)?;
74226                    let control_handle = SynchronousDatagramSocketControlHandle {
74227                        inner: this.inner.clone(),
74228                    };
74229                    Ok(SynchronousDatagramSocketRequest::SetReceiveBuffer {value_bytes: req.value_bytes,
74230
74231                        responder: SynchronousDatagramSocketSetReceiveBufferResponder {
74232                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74233                            tx_id: header.tx_id,
74234                        },
74235                    })
74236                }
74237                0x14c1a4b64f709e5c => {
74238                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74239                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74240                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74241                    let control_handle = SynchronousDatagramSocketControlHandle {
74242                        inner: this.inner.clone(),
74243                    };
74244                    Ok(SynchronousDatagramSocketRequest::GetReceiveBuffer {
74245                        responder: SynchronousDatagramSocketGetReceiveBufferResponder {
74246                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74247                            tx_id: header.tx_id,
74248                        },
74249                    })
74250                }
74251                0x572df8f0b920d2c7 => {
74252                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74253                    let mut req = fidl::new_empty!(BaseSocketSetKeepAliveRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74254                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetKeepAliveRequest>(&header, _body_bytes, handles, &mut req)?;
74255                    let control_handle = SynchronousDatagramSocketControlHandle {
74256                        inner: this.inner.clone(),
74257                    };
74258                    Ok(SynchronousDatagramSocketRequest::SetKeepAlive {value: req.value,
74259
74260                        responder: SynchronousDatagramSocketSetKeepAliveResponder {
74261                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74262                            tx_id: header.tx_id,
74263                        },
74264                    })
74265                }
74266                0x2dd29d3215f2c9d2 => {
74267                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74268                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74269                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74270                    let control_handle = SynchronousDatagramSocketControlHandle {
74271                        inner: this.inner.clone(),
74272                    };
74273                    Ok(SynchronousDatagramSocketRequest::GetKeepAlive {
74274                        responder: SynchronousDatagramSocketGetKeepAliveResponder {
74275                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74276                            tx_id: header.tx_id,
74277                        },
74278                    })
74279                }
74280                0x3ecb49968bee439 => {
74281                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74282                    let mut req = fidl::new_empty!(BaseSocketSetOutOfBandInlineRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74283                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetOutOfBandInlineRequest>(&header, _body_bytes, handles, &mut req)?;
74284                    let control_handle = SynchronousDatagramSocketControlHandle {
74285                        inner: this.inner.clone(),
74286                    };
74287                    Ok(SynchronousDatagramSocketRequest::SetOutOfBandInline {value: req.value,
74288
74289                        responder: SynchronousDatagramSocketSetOutOfBandInlineResponder {
74290                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74291                            tx_id: header.tx_id,
74292                        },
74293                    })
74294                }
74295                0x348c1ab3aeca1745 => {
74296                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74297                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74298                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74299                    let control_handle = SynchronousDatagramSocketControlHandle {
74300                        inner: this.inner.clone(),
74301                    };
74302                    Ok(SynchronousDatagramSocketRequest::GetOutOfBandInline {
74303                        responder: SynchronousDatagramSocketGetOutOfBandInlineResponder {
74304                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74305                            tx_id: header.tx_id,
74306                        },
74307                    })
74308                }
74309                0x6bbf00c53a4c78c2 => {
74310                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74311                    let mut req = fidl::new_empty!(BaseSocketSetNoCheckRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74312                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetNoCheckRequest>(&header, _body_bytes, handles, &mut req)?;
74313                    let control_handle = SynchronousDatagramSocketControlHandle {
74314                        inner: this.inner.clone(),
74315                    };
74316                    Ok(SynchronousDatagramSocketRequest::SetNoCheck {value: req.value,
74317
74318                        responder: SynchronousDatagramSocketSetNoCheckResponder {
74319                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74320                            tx_id: header.tx_id,
74321                        },
74322                    })
74323                }
74324                0x2cd4249286417694 => {
74325                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74326                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74327                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74328                    let control_handle = SynchronousDatagramSocketControlHandle {
74329                        inner: this.inner.clone(),
74330                    };
74331                    Ok(SynchronousDatagramSocketRequest::GetNoCheck {
74332                        responder: SynchronousDatagramSocketGetNoCheckResponder {
74333                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74334                            tx_id: header.tx_id,
74335                        },
74336                    })
74337                }
74338                0x45386351246e998e => {
74339                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74340                    let mut req = fidl::new_empty!(BaseSocketSetLingerRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74341                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetLingerRequest>(&header, _body_bytes, handles, &mut req)?;
74342                    let control_handle = SynchronousDatagramSocketControlHandle {
74343                        inner: this.inner.clone(),
74344                    };
74345                    Ok(SynchronousDatagramSocketRequest::SetLinger {linger: req.linger,
74346length_secs: req.length_secs,
74347
74348                        responder: SynchronousDatagramSocketSetLingerResponder {
74349                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74350                            tx_id: header.tx_id,
74351                        },
74352                    })
74353                }
74354                0x48eb20fc5ccb0e45 => {
74355                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74356                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74357                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74358                    let control_handle = SynchronousDatagramSocketControlHandle {
74359                        inner: this.inner.clone(),
74360                    };
74361                    Ok(SynchronousDatagramSocketRequest::GetLinger {
74362                        responder: SynchronousDatagramSocketGetLingerResponder {
74363                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74364                            tx_id: header.tx_id,
74365                        },
74366                    })
74367                }
74368                0x24dd3e5cb36d9ccb => {
74369                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74370                    let mut req = fidl::new_empty!(BaseSocketSetReusePortRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74371                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReusePortRequest>(&header, _body_bytes, handles, &mut req)?;
74372                    let control_handle = SynchronousDatagramSocketControlHandle {
74373                        inner: this.inner.clone(),
74374                    };
74375                    Ok(SynchronousDatagramSocketRequest::SetReusePort {value: req.value,
74376
74377                        responder: SynchronousDatagramSocketSetReusePortResponder {
74378                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74379                            tx_id: header.tx_id,
74380                        },
74381                    })
74382                }
74383                0x7a112c1ab54ff828 => {
74384                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74385                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74386                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74387                    let control_handle = SynchronousDatagramSocketControlHandle {
74388                        inner: this.inner.clone(),
74389                    };
74390                    Ok(SynchronousDatagramSocketRequest::GetReusePort {
74391                        responder: SynchronousDatagramSocketGetReusePortResponder {
74392                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74393                            tx_id: header.tx_id,
74394                        },
74395                    })
74396                }
74397                0x67ce6db6c2ec8966 => {
74398                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74399                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74400                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74401                    let control_handle = SynchronousDatagramSocketControlHandle {
74402                        inner: this.inner.clone(),
74403                    };
74404                    Ok(SynchronousDatagramSocketRequest::GetAcceptConn {
74405                        responder: SynchronousDatagramSocketGetAcceptConnResponder {
74406                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74407                            tx_id: header.tx_id,
74408                        },
74409                    })
74410                }
74411                0x2118b483f28aafc4 => {
74412                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74413                    let mut req = fidl::new_empty!(BaseSocketSetBindToDeviceRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74414                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToDeviceRequest>(&header, _body_bytes, handles, &mut req)?;
74415                    let control_handle = SynchronousDatagramSocketControlHandle {
74416                        inner: this.inner.clone(),
74417                    };
74418                    Ok(SynchronousDatagramSocketRequest::SetBindToDevice {value: req.value,
74419
74420                        responder: SynchronousDatagramSocketSetBindToDeviceResponder {
74421                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74422                            tx_id: header.tx_id,
74423                        },
74424                    })
74425                }
74426                0x1ab1fbf0ef7906c8 => {
74427                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74428                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74429                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74430                    let control_handle = SynchronousDatagramSocketControlHandle {
74431                        inner: this.inner.clone(),
74432                    };
74433                    Ok(SynchronousDatagramSocketRequest::GetBindToDevice {
74434                        responder: SynchronousDatagramSocketGetBindToDeviceResponder {
74435                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74436                            tx_id: header.tx_id,
74437                        },
74438                    })
74439                }
74440                0x6e387a0def00821 => {
74441                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74442                    let mut req = fidl::new_empty!(BaseSocketSetBindToInterfaceIndexRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74443                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToInterfaceIndexRequest>(&header, _body_bytes, handles, &mut req)?;
74444                    let control_handle = SynchronousDatagramSocketControlHandle {
74445                        inner: this.inner.clone(),
74446                    };
74447                    Ok(SynchronousDatagramSocketRequest::SetBindToInterfaceIndex {value: req.value,
74448
74449                        responder: SynchronousDatagramSocketSetBindToInterfaceIndexResponder {
74450                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74451                            tx_id: header.tx_id,
74452                        },
74453                    })
74454                }
74455                0x59c31dd3e3078295 => {
74456                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74457                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74458                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74459                    let control_handle = SynchronousDatagramSocketControlHandle {
74460                        inner: this.inner.clone(),
74461                    };
74462                    Ok(SynchronousDatagramSocketRequest::GetBindToInterfaceIndex {
74463                        responder: SynchronousDatagramSocketGetBindToInterfaceIndexResponder {
74464                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74465                            tx_id: header.tx_id,
74466                        },
74467                    })
74468                }
74469                0x285d6516c263d839 => {
74470                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74471                    let mut req = fidl::new_empty!(BaseSocketSetTimestampRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74472                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetTimestampRequest>(&header, _body_bytes, handles, &mut req)?;
74473                    let control_handle = SynchronousDatagramSocketControlHandle {
74474                        inner: this.inner.clone(),
74475                    };
74476                    Ok(SynchronousDatagramSocketRequest::SetTimestamp {value: req.value,
74477
74478                        responder: SynchronousDatagramSocketSetTimestampResponder {
74479                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74480                            tx_id: header.tx_id,
74481                        },
74482                    })
74483                }
74484                0x49f2fffbbcc2bd27 => {
74485                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74486                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74487                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74488                    let control_handle = SynchronousDatagramSocketControlHandle {
74489                        inner: this.inner.clone(),
74490                    };
74491                    Ok(SynchronousDatagramSocketRequest::GetTimestamp {
74492                        responder: SynchronousDatagramSocketGetTimestampResponder {
74493                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74494                            tx_id: header.tx_id,
74495                        },
74496                    })
74497                }
74498                0x6ead6de09f653236 => {
74499                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74500                    let mut req = fidl::new_empty!(BaseSocketSetMarkRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74501                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
74502                    let control_handle = SynchronousDatagramSocketControlHandle {
74503                        inner: this.inner.clone(),
74504                    };
74505                    Ok(SynchronousDatagramSocketRequest::SetMark {domain: req.domain,
74506mark: req.mark,
74507
74508                        responder: SynchronousDatagramSocketSetMarkResponder {
74509                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74510                            tx_id: header.tx_id,
74511                        },
74512                    })
74513                }
74514                0x57a2752c61d93d47 => {
74515                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74516                    let mut req = fidl::new_empty!(BaseSocketGetMarkRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74517                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketGetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
74518                    let control_handle = SynchronousDatagramSocketControlHandle {
74519                        inner: this.inner.clone(),
74520                    };
74521                    Ok(SynchronousDatagramSocketRequest::GetMark {domain: req.domain,
74522
74523                        responder: SynchronousDatagramSocketGetMarkResponder {
74524                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74525                            tx_id: header.tx_id,
74526                        },
74527                    })
74528                }
74529                0x2c2f47fd8f924e52 => {
74530                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74531                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74532                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74533                    let control_handle = SynchronousDatagramSocketControlHandle {
74534                        inner: this.inner.clone(),
74535                    };
74536                    Ok(SynchronousDatagramSocketRequest::GetCookie {
74537                        responder: SynchronousDatagramSocketGetCookieResponder {
74538                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74539                            tx_id: header.tx_id,
74540                        },
74541                    })
74542                }
74543                0x4bc6400ae92125d => {
74544                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74545                    let mut req = fidl::new_empty!(BaseNetworkSocketBindRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74546                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketBindRequest>(&header, _body_bytes, handles, &mut req)?;
74547                    let control_handle = SynchronousDatagramSocketControlHandle {
74548                        inner: this.inner.clone(),
74549                    };
74550                    Ok(SynchronousDatagramSocketRequest::Bind {addr: req.addr,
74551
74552                        responder: SynchronousDatagramSocketBindResponder {
74553                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74554                            tx_id: header.tx_id,
74555                        },
74556                    })
74557                }
74558                0x5f05f19bfdd38871 => {
74559                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74560                    let mut req = fidl::new_empty!(BaseNetworkSocketConnectRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74561                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketConnectRequest>(&header, _body_bytes, handles, &mut req)?;
74562                    let control_handle = SynchronousDatagramSocketControlHandle {
74563                        inner: this.inner.clone(),
74564                    };
74565                    Ok(SynchronousDatagramSocketRequest::Connect {addr: req.addr,
74566
74567                        responder: SynchronousDatagramSocketConnectResponder {
74568                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74569                            tx_id: header.tx_id,
74570                        },
74571                    })
74572                }
74573                0x74e63b91f7b29b2 => {
74574                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74575                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74576                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74577                    let control_handle = SynchronousDatagramSocketControlHandle {
74578                        inner: this.inner.clone(),
74579                    };
74580                    Ok(SynchronousDatagramSocketRequest::Disconnect {
74581                        responder: SynchronousDatagramSocketDisconnectResponder {
74582                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74583                            tx_id: header.tx_id,
74584                        },
74585                    })
74586                }
74587                0x475f23f84a1a4f85 => {
74588                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74589                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74590                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74591                    let control_handle = SynchronousDatagramSocketControlHandle {
74592                        inner: this.inner.clone(),
74593                    };
74594                    Ok(SynchronousDatagramSocketRequest::GetSockName {
74595                        responder: SynchronousDatagramSocketGetSockNameResponder {
74596                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74597                            tx_id: header.tx_id,
74598                        },
74599                    })
74600                }
74601                0x1ffecf4bd5b6432e => {
74602                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74603                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74604                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74605                    let control_handle = SynchronousDatagramSocketControlHandle {
74606                        inner: this.inner.clone(),
74607                    };
74608                    Ok(SynchronousDatagramSocketRequest::GetPeerName {
74609                        responder: SynchronousDatagramSocketGetPeerNameResponder {
74610                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74611                            tx_id: header.tx_id,
74612                        },
74613                    })
74614                }
74615                0x247f38b6db68c336 => {
74616                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74617                    let mut req = fidl::new_empty!(BaseNetworkSocketShutdownRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74618                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketShutdownRequest>(&header, _body_bytes, handles, &mut req)?;
74619                    let control_handle = SynchronousDatagramSocketControlHandle {
74620                        inner: this.inner.clone(),
74621                    };
74622                    Ok(SynchronousDatagramSocketRequest::Shutdown {mode: req.mode,
74623
74624                        responder: SynchronousDatagramSocketShutdownResponder {
74625                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74626                            tx_id: header.tx_id,
74627                        },
74628                    })
74629                }
74630                0x995c600475b6d46 => {
74631                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74632                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpTypeOfServiceRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74633                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTypeOfServiceRequest>(&header, _body_bytes, handles, &mut req)?;
74634                    let control_handle = SynchronousDatagramSocketControlHandle {
74635                        inner: this.inner.clone(),
74636                    };
74637                    Ok(SynchronousDatagramSocketRequest::SetIpTypeOfService {value: req.value,
74638
74639                        responder: SynchronousDatagramSocketSetIpTypeOfServiceResponder {
74640                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74641                            tx_id: header.tx_id,
74642                        },
74643                    })
74644                }
74645                0x3814a04259f75fcb => {
74646                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74647                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74648                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74649                    let control_handle = SynchronousDatagramSocketControlHandle {
74650                        inner: this.inner.clone(),
74651                    };
74652                    Ok(SynchronousDatagramSocketRequest::GetIpTypeOfService {
74653                        responder: SynchronousDatagramSocketGetIpTypeOfServiceResponder {
74654                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74655                            tx_id: header.tx_id,
74656                        },
74657                    })
74658                }
74659                0x29e2424b433ae1ef => {
74660                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74661                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpTtlRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74662                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTtlRequest>(&header, _body_bytes, handles, &mut req)?;
74663                    let control_handle = SynchronousDatagramSocketControlHandle {
74664                        inner: this.inner.clone(),
74665                    };
74666                    Ok(SynchronousDatagramSocketRequest::SetIpTtl {value: req.value,
74667
74668                        responder: SynchronousDatagramSocketSetIpTtlResponder {
74669                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74670                            tx_id: header.tx_id,
74671                        },
74672                    })
74673                }
74674                0x47e47fa1f24da471 => {
74675                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74676                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74677                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74678                    let control_handle = SynchronousDatagramSocketControlHandle {
74679                        inner: this.inner.clone(),
74680                    };
74681                    Ok(SynchronousDatagramSocketRequest::GetIpTtl {
74682                        responder: SynchronousDatagramSocketGetIpTtlResponder {
74683                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74684                            tx_id: header.tx_id,
74685                        },
74686                    })
74687                }
74688                0x392d16bee20c0e16 => {
74689                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74690                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpPacketInfoRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74691                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpPacketInfoRequest>(&header, _body_bytes, handles, &mut req)?;
74692                    let control_handle = SynchronousDatagramSocketControlHandle {
74693                        inner: this.inner.clone(),
74694                    };
74695                    Ok(SynchronousDatagramSocketRequest::SetIpPacketInfo {value: req.value,
74696
74697                        responder: SynchronousDatagramSocketSetIpPacketInfoResponder {
74698                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74699                            tx_id: header.tx_id,
74700                        },
74701                    })
74702                }
74703                0x54b505f242280740 => {
74704                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74705                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74706                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74707                    let control_handle = SynchronousDatagramSocketControlHandle {
74708                        inner: this.inner.clone(),
74709                    };
74710                    Ok(SynchronousDatagramSocketRequest::GetIpPacketInfo {
74711                        responder: SynchronousDatagramSocketGetIpPacketInfoResponder {
74712                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74713                            tx_id: header.tx_id,
74714                        },
74715                    })
74716                }
74717                0x6c4f6714995f84ef => {
74718                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74719                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpReceiveTypeOfServiceRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74720                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveTypeOfServiceRequest>(&header, _body_bytes, handles, &mut req)?;
74721                    let control_handle = SynchronousDatagramSocketControlHandle {
74722                        inner: this.inner.clone(),
74723                    };
74724                    Ok(SynchronousDatagramSocketRequest::SetIpReceiveTypeOfService {value: req.value,
74725
74726                        responder: SynchronousDatagramSocketSetIpReceiveTypeOfServiceResponder {
74727                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74728                            tx_id: header.tx_id,
74729                        },
74730                    })
74731                }
74732                0x4158ba7dc2795960 => {
74733                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74734                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74735                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74736                    let control_handle = SynchronousDatagramSocketControlHandle {
74737                        inner: this.inner.clone(),
74738                    };
74739                    Ok(SynchronousDatagramSocketRequest::GetIpReceiveTypeOfService {
74740                        responder: SynchronousDatagramSocketGetIpReceiveTypeOfServiceResponder {
74741                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74742                            tx_id: header.tx_id,
74743                        },
74744                    })
74745                }
74746                0x46f15be0ce0ab82b => {
74747                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74748                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpReceiveTtlRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74749                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveTtlRequest>(&header, _body_bytes, handles, &mut req)?;
74750                    let control_handle = SynchronousDatagramSocketControlHandle {
74751                        inner: this.inner.clone(),
74752                    };
74753                    Ok(SynchronousDatagramSocketRequest::SetIpReceiveTtl {value: req.value,
74754
74755                        responder: SynchronousDatagramSocketSetIpReceiveTtlResponder {
74756                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74757                            tx_id: header.tx_id,
74758                        },
74759                    })
74760                }
74761                0x678ddd5a5dfa2eb5 => {
74762                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74763                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74764                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74765                    let control_handle = SynchronousDatagramSocketControlHandle {
74766                        inner: this.inner.clone(),
74767                    };
74768                    Ok(SynchronousDatagramSocketRequest::GetIpReceiveTtl {
74769                        responder: SynchronousDatagramSocketGetIpReceiveTtlResponder {
74770                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74771                            tx_id: header.tx_id,
74772                        },
74773                    })
74774                }
74775                0x752fbfa9b12befe => {
74776                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74777                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpMulticastInterfaceRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74778                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastInterfaceRequest>(&header, _body_bytes, handles, &mut req)?;
74779                    let control_handle = SynchronousDatagramSocketControlHandle {
74780                        inner: this.inner.clone(),
74781                    };
74782                    Ok(SynchronousDatagramSocketRequest::SetIpMulticastInterface {iface: req.iface,
74783address: req.address,
74784
74785                        responder: SynchronousDatagramSocketSetIpMulticastInterfaceResponder {
74786                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74787                            tx_id: header.tx_id,
74788                        },
74789                    })
74790                }
74791                0x320bd14c4df046c4 => {
74792                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74793                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74794                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74795                    let control_handle = SynchronousDatagramSocketControlHandle {
74796                        inner: this.inner.clone(),
74797                    };
74798                    Ok(SynchronousDatagramSocketRequest::GetIpMulticastInterface {
74799                        responder: SynchronousDatagramSocketGetIpMulticastInterfaceResponder {
74800                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74801                            tx_id: header.tx_id,
74802                        },
74803                    })
74804                }
74805                0x63134d53772916a1 => {
74806                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74807                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpMulticastTtlRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74808                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastTtlRequest>(&header, _body_bytes, handles, &mut req)?;
74809                    let control_handle = SynchronousDatagramSocketControlHandle {
74810                        inner: this.inner.clone(),
74811                    };
74812                    Ok(SynchronousDatagramSocketRequest::SetIpMulticastTtl {value: req.value,
74813
74814                        responder: SynchronousDatagramSocketSetIpMulticastTtlResponder {
74815                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74816                            tx_id: header.tx_id,
74817                        },
74818                    })
74819                }
74820                0x4665cd378f39e1a => {
74821                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74822                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74823                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74824                    let control_handle = SynchronousDatagramSocketControlHandle {
74825                        inner: this.inner.clone(),
74826                    };
74827                    Ok(SynchronousDatagramSocketRequest::GetIpMulticastTtl {
74828                        responder: SynchronousDatagramSocketGetIpMulticastTtlResponder {
74829                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74830                            tx_id: header.tx_id,
74831                        },
74832                    })
74833                }
74834                0x20c55c11f00943ea => {
74835                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74836                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpMulticastLoopbackRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74837                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastLoopbackRequest>(&header, _body_bytes, handles, &mut req)?;
74838                    let control_handle = SynchronousDatagramSocketControlHandle {
74839                        inner: this.inner.clone(),
74840                    };
74841                    Ok(SynchronousDatagramSocketRequest::SetIpMulticastLoopback {value: req.value,
74842
74843                        responder: SynchronousDatagramSocketSetIpMulticastLoopbackResponder {
74844                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74845                            tx_id: header.tx_id,
74846                        },
74847                    })
74848                }
74849                0x3b6b26ff558298f2 => {
74850                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74851                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74852                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74853                    let control_handle = SynchronousDatagramSocketControlHandle {
74854                        inner: this.inner.clone(),
74855                    };
74856                    Ok(SynchronousDatagramSocketRequest::GetIpMulticastLoopback {
74857                        responder: SynchronousDatagramSocketGetIpMulticastLoopbackResponder {
74858                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74859                            tx_id: header.tx_id,
74860                        },
74861                    })
74862                }
74863                0x76bc7df115a3b4d0 => {
74864                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74865                    let mut req = fidl::new_empty!(BaseNetworkSocketAddIpMembershipRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74866                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketAddIpMembershipRequest>(&header, _body_bytes, handles, &mut req)?;
74867                    let control_handle = SynchronousDatagramSocketControlHandle {
74868                        inner: this.inner.clone(),
74869                    };
74870                    Ok(SynchronousDatagramSocketRequest::AddIpMembership {membership: req.membership,
74871
74872                        responder: SynchronousDatagramSocketAddIpMembershipResponder {
74873                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74874                            tx_id: header.tx_id,
74875                        },
74876                    })
74877                }
74878                0x2888f3099188d03 => {
74879                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74880                    let mut req = fidl::new_empty!(BaseNetworkSocketDropIpMembershipRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74881                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketDropIpMembershipRequest>(&header, _body_bytes, handles, &mut req)?;
74882                    let control_handle = SynchronousDatagramSocketControlHandle {
74883                        inner: this.inner.clone(),
74884                    };
74885                    Ok(SynchronousDatagramSocketRequest::DropIpMembership {membership: req.membership,
74886
74887                        responder: SynchronousDatagramSocketDropIpMembershipResponder {
74888                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74889                            tx_id: header.tx_id,
74890                        },
74891                    })
74892                }
74893                0x1ae532b0c066e3a0 => {
74894                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74895                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpTransparentRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74896                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTransparentRequest>(&header, _body_bytes, handles, &mut req)?;
74897                    let control_handle = SynchronousDatagramSocketControlHandle {
74898                        inner: this.inner.clone(),
74899                    };
74900                    Ok(SynchronousDatagramSocketRequest::SetIpTransparent {value: req.value,
74901
74902                        responder: SynchronousDatagramSocketSetIpTransparentResponder {
74903                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74904                            tx_id: header.tx_id,
74905                        },
74906                    })
74907                }
74908                0x51d43695962ebfb5 => {
74909                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74910                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74911                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74912                    let control_handle = SynchronousDatagramSocketControlHandle {
74913                        inner: this.inner.clone(),
74914                    };
74915                    Ok(SynchronousDatagramSocketRequest::GetIpTransparent {
74916                        responder: SynchronousDatagramSocketGetIpTransparentResponder {
74917                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74918                            tx_id: header.tx_id,
74919                        },
74920                    })
74921                }
74922                0x4722b4ce52f7840 => {
74923                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74924                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74925                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest>(&header, _body_bytes, handles, &mut req)?;
74926                    let control_handle = SynchronousDatagramSocketControlHandle {
74927                        inner: this.inner.clone(),
74928                    };
74929                    Ok(SynchronousDatagramSocketRequest::SetIpReceiveOriginalDestinationAddress {value: req.value,
74930
74931                        responder: SynchronousDatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
74932                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74933                            tx_id: header.tx_id,
74934                        },
74935                    })
74936                }
74937                0x2a0e7dc5d6bfdfe9 => {
74938                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74939                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74940                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74941                    let control_handle = SynchronousDatagramSocketControlHandle {
74942                        inner: this.inner.clone(),
74943                    };
74944                    Ok(SynchronousDatagramSocketRequest::GetIpReceiveOriginalDestinationAddress {
74945                        responder: SynchronousDatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
74946                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74947                            tx_id: header.tx_id,
74948                        },
74949                    })
74950                }
74951                0x7c94727acb4ea4b3 => {
74952                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74953                    let mut req = fidl::new_empty!(BaseNetworkSocketAddIpv6MembershipRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74954                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketAddIpv6MembershipRequest>(&header, _body_bytes, handles, &mut req)?;
74955                    let control_handle = SynchronousDatagramSocketControlHandle {
74956                        inner: this.inner.clone(),
74957                    };
74958                    Ok(SynchronousDatagramSocketRequest::AddIpv6Membership {membership: req.membership,
74959
74960                        responder: SynchronousDatagramSocketAddIpv6MembershipResponder {
74961                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74962                            tx_id: header.tx_id,
74963                        },
74964                    })
74965                }
74966                0x42104c70ccaba304 => {
74967                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74968                    let mut req = fidl::new_empty!(BaseNetworkSocketDropIpv6MembershipRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74969                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketDropIpv6MembershipRequest>(&header, _body_bytes, handles, &mut req)?;
74970                    let control_handle = SynchronousDatagramSocketControlHandle {
74971                        inner: this.inner.clone(),
74972                    };
74973                    Ok(SynchronousDatagramSocketRequest::DropIpv6Membership {membership: req.membership,
74974
74975                        responder: SynchronousDatagramSocketDropIpv6MembershipResponder {
74976                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74977                            tx_id: header.tx_id,
74978                        },
74979                    })
74980                }
74981                0x135f76db3774ab3b => {
74982                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74983                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6MulticastInterfaceRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74984                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastInterfaceRequest>(&header, _body_bytes, handles, &mut req)?;
74985                    let control_handle = SynchronousDatagramSocketControlHandle {
74986                        inner: this.inner.clone(),
74987                    };
74988                    Ok(SynchronousDatagramSocketRequest::SetIpv6MulticastInterface {value: req.value,
74989
74990                        responder: SynchronousDatagramSocketSetIpv6MulticastInterfaceResponder {
74991                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74992                            tx_id: header.tx_id,
74993                        },
74994                    })
74995                }
74996                0x1f26fcdd348f1882 => {
74997                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74998                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74999                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75000                    let control_handle = SynchronousDatagramSocketControlHandle {
75001                        inner: this.inner.clone(),
75002                    };
75003                    Ok(SynchronousDatagramSocketRequest::GetIpv6MulticastInterface {
75004                        responder: SynchronousDatagramSocketGetIpv6MulticastInterfaceResponder {
75005                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75006                            tx_id: header.tx_id,
75007                        },
75008                    })
75009                }
75010                0x157d51e98f462859 => {
75011                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75012                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6UnicastHopsRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75013                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6UnicastHopsRequest>(&header, _body_bytes, handles, &mut req)?;
75014                    let control_handle = SynchronousDatagramSocketControlHandle {
75015                        inner: this.inner.clone(),
75016                    };
75017                    Ok(SynchronousDatagramSocketRequest::SetIpv6UnicastHops {value: req.value,
75018
75019                        responder: SynchronousDatagramSocketSetIpv6UnicastHopsResponder {
75020                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75021                            tx_id: header.tx_id,
75022                        },
75023                    })
75024                }
75025                0x21f4641cad8bd8d2 => {
75026                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75027                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75028                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75029                    let control_handle = SynchronousDatagramSocketControlHandle {
75030                        inner: this.inner.clone(),
75031                    };
75032                    Ok(SynchronousDatagramSocketRequest::GetIpv6UnicastHops {
75033                        responder: SynchronousDatagramSocketGetIpv6UnicastHopsResponder {
75034                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75035                            tx_id: header.tx_id,
75036                        },
75037                    })
75038                }
75039                0x5c24808ed2e84a1e => {
75040                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75041                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6ReceiveHopLimitRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75042                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceiveHopLimitRequest>(&header, _body_bytes, handles, &mut req)?;
75043                    let control_handle = SynchronousDatagramSocketControlHandle {
75044                        inner: this.inner.clone(),
75045                    };
75046                    Ok(SynchronousDatagramSocketRequest::SetIpv6ReceiveHopLimit {value: req.value,
75047
75048                        responder: SynchronousDatagramSocketSetIpv6ReceiveHopLimitResponder {
75049                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75050                            tx_id: header.tx_id,
75051                        },
75052                    })
75053                }
75054                0x341e06689885b4c0 => {
75055                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75056                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75057                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75058                    let control_handle = SynchronousDatagramSocketControlHandle {
75059                        inner: this.inner.clone(),
75060                    };
75061                    Ok(SynchronousDatagramSocketRequest::GetIpv6ReceiveHopLimit {
75062                        responder: SynchronousDatagramSocketGetIpv6ReceiveHopLimitResponder {
75063                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75064                            tx_id: header.tx_id,
75065                        },
75066                    })
75067                }
75068                0x25b9cd4d181f82c1 => {
75069                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75070                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6MulticastHopsRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75071                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastHopsRequest>(&header, _body_bytes, handles, &mut req)?;
75072                    let control_handle = SynchronousDatagramSocketControlHandle {
75073                        inner: this.inner.clone(),
75074                    };
75075                    Ok(SynchronousDatagramSocketRequest::SetIpv6MulticastHops {value: req.value,
75076
75077                        responder: SynchronousDatagramSocketSetIpv6MulticastHopsResponder {
75078                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75079                            tx_id: header.tx_id,
75080                        },
75081                    })
75082                }
75083                0x52916948a365012a => {
75084                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75085                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75086                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75087                    let control_handle = SynchronousDatagramSocketControlHandle {
75088                        inner: this.inner.clone(),
75089                    };
75090                    Ok(SynchronousDatagramSocketRequest::GetIpv6MulticastHops {
75091                        responder: SynchronousDatagramSocketGetIpv6MulticastHopsResponder {
75092                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75093                            tx_id: header.tx_id,
75094                        },
75095                    })
75096                }
75097                0x55701c409ff41b40 => {
75098                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75099                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6MulticastLoopbackRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75100                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastLoopbackRequest>(&header, _body_bytes, handles, &mut req)?;
75101                    let control_handle = SynchronousDatagramSocketControlHandle {
75102                        inner: this.inner.clone(),
75103                    };
75104                    Ok(SynchronousDatagramSocketRequest::SetIpv6MulticastLoopback {value: req.value,
75105
75106                        responder: SynchronousDatagramSocketSetIpv6MulticastLoopbackResponder {
75107                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75108                            tx_id: header.tx_id,
75109                        },
75110                    })
75111                }
75112                0x4415b701fde319c3 => {
75113                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75114                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75115                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75116                    let control_handle = SynchronousDatagramSocketControlHandle {
75117                        inner: this.inner.clone(),
75118                    };
75119                    Ok(SynchronousDatagramSocketRequest::GetIpv6MulticastLoopback {
75120                        responder: SynchronousDatagramSocketGetIpv6MulticastLoopbackResponder {
75121                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75122                            tx_id: header.tx_id,
75123                        },
75124                    })
75125                }
75126                0x4873f1364758cbba => {
75127                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75128                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6OnlyRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75129                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6OnlyRequest>(&header, _body_bytes, handles, &mut req)?;
75130                    let control_handle = SynchronousDatagramSocketControlHandle {
75131                        inner: this.inner.clone(),
75132                    };
75133                    Ok(SynchronousDatagramSocketRequest::SetIpv6Only {value: req.value,
75134
75135                        responder: SynchronousDatagramSocketSetIpv6OnlyResponder {
75136                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75137                            tx_id: header.tx_id,
75138                        },
75139                    })
75140                }
75141                0x4aa3340a1a26b89c => {
75142                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75143                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75144                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75145                    let control_handle = SynchronousDatagramSocketControlHandle {
75146                        inner: this.inner.clone(),
75147                    };
75148                    Ok(SynchronousDatagramSocketRequest::GetIpv6Only {
75149                        responder: SynchronousDatagramSocketGetIpv6OnlyResponder {
75150                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75151                            tx_id: header.tx_id,
75152                        },
75153                    })
75154                }
75155                0x58f07c8788d099a0 => {
75156                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75157                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75158                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest>(&header, _body_bytes, handles, &mut req)?;
75159                    let control_handle = SynchronousDatagramSocketControlHandle {
75160                        inner: this.inner.clone(),
75161                    };
75162                    Ok(SynchronousDatagramSocketRequest::SetIpv6ReceiveTrafficClass {value: req.value,
75163
75164                        responder: SynchronousDatagramSocketSetIpv6ReceiveTrafficClassResponder {
75165                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75166                            tx_id: header.tx_id,
75167                        },
75168                    })
75169                }
75170                0x2e334df1da553ffa => {
75171                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75172                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75173                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75174                    let control_handle = SynchronousDatagramSocketControlHandle {
75175                        inner: this.inner.clone(),
75176                    };
75177                    Ok(SynchronousDatagramSocketRequest::GetIpv6ReceiveTrafficClass {
75178                        responder: SynchronousDatagramSocketGetIpv6ReceiveTrafficClassResponder {
75179                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75180                            tx_id: header.tx_id,
75181                        },
75182                    })
75183                }
75184                0x6af077800c5a0b4f => {
75185                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75186                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6TrafficClassRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75187                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6TrafficClassRequest>(&header, _body_bytes, handles, &mut req)?;
75188                    let control_handle = SynchronousDatagramSocketControlHandle {
75189                        inner: this.inner.clone(),
75190                    };
75191                    Ok(SynchronousDatagramSocketRequest::SetIpv6TrafficClass {value: req.value,
75192
75193                        responder: SynchronousDatagramSocketSetIpv6TrafficClassResponder {
75194                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75195                            tx_id: header.tx_id,
75196                        },
75197                    })
75198                }
75199                0x6baf6eed8fc2f04 => {
75200                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75201                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75202                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75203                    let control_handle = SynchronousDatagramSocketControlHandle {
75204                        inner: this.inner.clone(),
75205                    };
75206                    Ok(SynchronousDatagramSocketRequest::GetIpv6TrafficClass {
75207                        responder: SynchronousDatagramSocketGetIpv6TrafficClassResponder {
75208                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75209                            tx_id: header.tx_id,
75210                        },
75211                    })
75212                }
75213                0x19259775b1a92768 => {
75214                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75215                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6ReceivePacketInfoRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75216                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceivePacketInfoRequest>(&header, _body_bytes, handles, &mut req)?;
75217                    let control_handle = SynchronousDatagramSocketControlHandle {
75218                        inner: this.inner.clone(),
75219                    };
75220                    Ok(SynchronousDatagramSocketRequest::SetIpv6ReceivePacketInfo {value: req.value,
75221
75222                        responder: SynchronousDatagramSocketSetIpv6ReceivePacketInfoResponder {
75223                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75224                            tx_id: header.tx_id,
75225                        },
75226                    })
75227                }
75228                0x7acd4a2775baec75 => {
75229                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75230                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75231                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75232                    let control_handle = SynchronousDatagramSocketControlHandle {
75233                        inner: this.inner.clone(),
75234                    };
75235                    Ok(SynchronousDatagramSocketRequest::GetIpv6ReceivePacketInfo {
75236                        responder: SynchronousDatagramSocketGetIpv6ReceivePacketInfoResponder {
75237                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75238                            tx_id: header.tx_id,
75239                        },
75240                    })
75241                }
75242                0x38bf28f0dafdbac0 => {
75243                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75244                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75245                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75246                    let control_handle = SynchronousDatagramSocketControlHandle {
75247                        inner: this.inner.clone(),
75248                    };
75249                    Ok(SynchronousDatagramSocketRequest::GetOriginalDestination {
75250                        responder: SynchronousDatagramSocketGetOriginalDestinationResponder {
75251                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75252                            tx_id: header.tx_id,
75253                        },
75254                    })
75255                }
75256                0x48aa0a1f6a32d2ed => {
75257                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75258                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75259                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75260                    let control_handle = SynchronousDatagramSocketControlHandle {
75261                        inner: this.inner.clone(),
75262                    };
75263                    Ok(SynchronousDatagramSocketRequest::GetInfo {
75264                        responder: SynchronousDatagramSocketGetInfoResponder {
75265                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75266                            tx_id: header.tx_id,
75267                        },
75268                    })
75269                }
75270                0x585f20b73631070d => {
75271                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75272                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75273                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75274                    let control_handle = SynchronousDatagramSocketControlHandle {
75275                        inner: this.inner.clone(),
75276                    };
75277                    Ok(SynchronousDatagramSocketRequest::Describe {
75278                        responder: SynchronousDatagramSocketDescribeResponder {
75279                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75280                            tx_id: header.tx_id,
75281                        },
75282                    })
75283                }
75284                0x28e494e48fb5dbf3 => {
75285                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75286                    let mut req = fidl::new_empty!(SynchronousDatagramSocketRecvMsgRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75287                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<SynchronousDatagramSocketRecvMsgRequest>(&header, _body_bytes, handles, &mut req)?;
75288                    let control_handle = SynchronousDatagramSocketControlHandle {
75289                        inner: this.inner.clone(),
75290                    };
75291                    Ok(SynchronousDatagramSocketRequest::RecvMsg {want_addr: req.want_addr,
75292data_len: req.data_len,
75293want_control: req.want_control,
75294flags: req.flags,
75295
75296                        responder: SynchronousDatagramSocketRecvMsgResponder {
75297                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75298                            tx_id: header.tx_id,
75299                        },
75300                    })
75301                }
75302                0x12dc2fceab6cefaa => {
75303                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75304                    let mut req = fidl::new_empty!(SynchronousDatagramSocketSendMsgRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75305                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<SynchronousDatagramSocketSendMsgRequest>(&header, _body_bytes, handles, &mut req)?;
75306                    let control_handle = SynchronousDatagramSocketControlHandle {
75307                        inner: this.inner.clone(),
75308                    };
75309                    Ok(SynchronousDatagramSocketRequest::SendMsg {addr: req.addr,
75310data: req.data,
75311control: req.control,
75312flags: req.flags,
75313
75314                        responder: SynchronousDatagramSocketSendMsgResponder {
75315                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75316                            tx_id: header.tx_id,
75317                        },
75318                    })
75319                }
75320                _ => Err(fidl::Error::UnknownOrdinal {
75321                    ordinal: header.ordinal,
75322                    protocol_name: <SynchronousDatagramSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
75323                }),
75324            }))
75325            },
75326        )
75327    }
75328}
75329
75330/// A synchronous datagram socket.
75331///
75332/// This protocol defines synchronous methods for sending and receiving datagram
75333/// payloads over a channel. All methods are nonblocking; their behavior roughly
75334/// matches their Linux counterparts.
75335///
75336/// *Warning:* This protocol is not yet ready for direct use by clients.
75337/// Instead, clients should use the BSD sockets API to interact with sockets.
75338/// We plan to change this protocol substantially and clients that couple
75339/// directly to this protocol will make those changes more difficult.
75340#[derive(Debug)]
75341pub enum SynchronousDatagramSocketRequest {
75342    Clone {
75343        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
75344        control_handle: SynchronousDatagramSocketControlHandle,
75345    },
75346    /// Terminates the connection.
75347    ///
75348    /// After calling `Close`, the client must not send any other requests.
75349    ///
75350    /// Servers, after sending the status response, should close the connection
75351    /// regardless of status and without sending an epitaph.
75352    ///
75353    /// Closing the client end of the channel should be semantically equivalent
75354    /// to calling `Close` without knowing when the close has completed or its
75355    /// status.
75356    Close {
75357        responder: SynchronousDatagramSocketCloseResponder,
75358    },
75359    Query {
75360        responder: SynchronousDatagramSocketQueryResponder,
75361    },
75362    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
75363    SetReuseAddress {
75364        value: bool,
75365        responder: SynchronousDatagramSocketSetReuseAddressResponder,
75366    },
75367    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
75368    GetReuseAddress {
75369        responder: SynchronousDatagramSocketGetReuseAddressResponder,
75370    },
75371    /// Get `SOL_SOCKET` -> `SO_ERROR`.
75372    /// Returns the last error if there is an error set on the socket.
75373    GetError {
75374        responder: SynchronousDatagramSocketGetErrorResponder,
75375    },
75376    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
75377    SetBroadcast {
75378        value: bool,
75379        responder: SynchronousDatagramSocketSetBroadcastResponder,
75380    },
75381    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
75382    GetBroadcast {
75383        responder: SynchronousDatagramSocketGetBroadcastResponder,
75384    },
75385    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
75386    SetSendBuffer {
75387        value_bytes: u64,
75388        responder: SynchronousDatagramSocketSetSendBufferResponder,
75389    },
75390    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
75391    GetSendBuffer {
75392        responder: SynchronousDatagramSocketGetSendBufferResponder,
75393    },
75394    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
75395    SetReceiveBuffer {
75396        value_bytes: u64,
75397        responder: SynchronousDatagramSocketSetReceiveBufferResponder,
75398    },
75399    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
75400    GetReceiveBuffer {
75401        responder: SynchronousDatagramSocketGetReceiveBufferResponder,
75402    },
75403    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
75404    SetKeepAlive {
75405        value: bool,
75406        responder: SynchronousDatagramSocketSetKeepAliveResponder,
75407    },
75408    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
75409    GetKeepAlive {
75410        responder: SynchronousDatagramSocketGetKeepAliveResponder,
75411    },
75412    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
75413    SetOutOfBandInline {
75414        value: bool,
75415        responder: SynchronousDatagramSocketSetOutOfBandInlineResponder,
75416    },
75417    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
75418    GetOutOfBandInline {
75419        responder: SynchronousDatagramSocketGetOutOfBandInlineResponder,
75420    },
75421    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
75422    SetNoCheck {
75423        value: bool,
75424        responder: SynchronousDatagramSocketSetNoCheckResponder,
75425    },
75426    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
75427    GetNoCheck {
75428        responder: SynchronousDatagramSocketGetNoCheckResponder,
75429    },
75430    /// Set `SOL_SOCKET` -> `SO_LINGER`.
75431    SetLinger {
75432        linger: bool,
75433        length_secs: u32,
75434        responder: SynchronousDatagramSocketSetLingerResponder,
75435    },
75436    /// Get `SOL_SOCKET` -> `SO_LINGER`.
75437    GetLinger {
75438        responder: SynchronousDatagramSocketGetLingerResponder,
75439    },
75440    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
75441    SetReusePort {
75442        value: bool,
75443        responder: SynchronousDatagramSocketSetReusePortResponder,
75444    },
75445    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
75446    GetReusePort {
75447        responder: SynchronousDatagramSocketGetReusePortResponder,
75448    },
75449    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
75450    GetAcceptConn {
75451        responder: SynchronousDatagramSocketGetAcceptConnResponder,
75452    },
75453    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
75454    SetBindToDevice {
75455        value: String,
75456        responder: SynchronousDatagramSocketSetBindToDeviceResponder,
75457    },
75458    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
75459    GetBindToDevice {
75460        responder: SynchronousDatagramSocketGetBindToDeviceResponder,
75461    },
75462    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
75463    /// If `value` is 0, this clears the bound interface.
75464    SetBindToInterfaceIndex {
75465        value: u64,
75466        responder: SynchronousDatagramSocketSetBindToInterfaceIndexResponder,
75467    },
75468    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
75469    GetBindToInterfaceIndex {
75470        responder: SynchronousDatagramSocketGetBindToInterfaceIndexResponder,
75471    },
75472    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
75473    SetTimestamp {
75474        value: TimestampOption,
75475        responder: SynchronousDatagramSocketSetTimestampResponder,
75476    },
75477    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
75478    GetTimestamp {
75479        responder: SynchronousDatagramSocketGetTimestampResponder,
75480    },
75481    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
75482    /// unlike the standard SO_MARK, this API has multiple mark domains and each
75483    /// mark can be set independently in each domain.
75484    SetMark {
75485        domain: fidl_fuchsia_net::MarkDomain,
75486        mark: OptionalUint32,
75487        responder: SynchronousDatagramSocketSetMarkResponder,
75488    },
75489    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
75490    /// unlike the standard SO_MARK, this API has multiple mark domains and each
75491    /// mark can be retrieved independently in each domain.
75492    GetMark {
75493        domain: fidl_fuchsia_net::MarkDomain,
75494        responder: SynchronousDatagramSocketGetMarkResponder,
75495    },
75496    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
75497    GetCookie {
75498        responder: SynchronousDatagramSocketGetCookieResponder,
75499    },
75500    /// Sets the local address used for the socket.
75501    Bind {
75502        addr: fidl_fuchsia_net::SocketAddress,
75503        responder: SynchronousDatagramSocketBindResponder,
75504    },
75505    /// Initiates a connection to a remote address.
75506    Connect {
75507        addr: fidl_fuchsia_net::SocketAddress,
75508        responder: SynchronousDatagramSocketConnectResponder,
75509    },
75510    /// Clears connection information from this socket.
75511    Disconnect {
75512        responder: SynchronousDatagramSocketDisconnectResponder,
75513    },
75514    /// Retrieves the local socket address.
75515    GetSockName {
75516        responder: SynchronousDatagramSocketGetSockNameResponder,
75517    },
75518    /// Retrieves the remote socket address.
75519    GetPeerName {
75520        responder: SynchronousDatagramSocketGetPeerNameResponder,
75521    },
75522    /// Shuts down part of the socket.
75523    Shutdown {
75524        mode: ShutdownMode,
75525        responder: SynchronousDatagramSocketShutdownResponder,
75526    },
75527    /// Set `SOL_IP` -> `IP_TOS`.
75528    SetIpTypeOfService {
75529        value: u8,
75530        responder: SynchronousDatagramSocketSetIpTypeOfServiceResponder,
75531    },
75532    /// Get `SOL_IP` -> `IP_TOS`.
75533    GetIpTypeOfService {
75534        responder: SynchronousDatagramSocketGetIpTypeOfServiceResponder,
75535    },
75536    /// Set `SOL_IP` -> `IP_TTL`.
75537    SetIpTtl {
75538        value: OptionalUint8,
75539        responder: SynchronousDatagramSocketSetIpTtlResponder,
75540    },
75541    /// Get `SOL_IP` -> `IP_TTL`.
75542    GetIpTtl {
75543        responder: SynchronousDatagramSocketGetIpTtlResponder,
75544    },
75545    /// Set `SOL_IP` -> `IP_PKTINFO`.
75546    SetIpPacketInfo {
75547        value: bool,
75548        responder: SynchronousDatagramSocketSetIpPacketInfoResponder,
75549    },
75550    /// Get `SOL_IP` -> `IP_PKTINFO`.
75551    GetIpPacketInfo {
75552        responder: SynchronousDatagramSocketGetIpPacketInfoResponder,
75553    },
75554    /// Set `SOL_IP` -> `IP_RECVTOS`.
75555    SetIpReceiveTypeOfService {
75556        value: bool,
75557        responder: SynchronousDatagramSocketSetIpReceiveTypeOfServiceResponder,
75558    },
75559    /// Get `SOL_IP` -> `IP_RECVTOS`.
75560    GetIpReceiveTypeOfService {
75561        responder: SynchronousDatagramSocketGetIpReceiveTypeOfServiceResponder,
75562    },
75563    /// Set `SOL_IP` -> `IP_RECVTTL`.
75564    SetIpReceiveTtl {
75565        value: bool,
75566        responder: SynchronousDatagramSocketSetIpReceiveTtlResponder,
75567    },
75568    /// Get `SOL_IP` -> `IP_RECVTTL`.
75569    GetIpReceiveTtl {
75570        responder: SynchronousDatagramSocketGetIpReceiveTtlResponder,
75571    },
75572    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
75573    SetIpMulticastInterface {
75574        iface: u64,
75575        address: fidl_fuchsia_net::Ipv4Address,
75576        responder: SynchronousDatagramSocketSetIpMulticastInterfaceResponder,
75577    },
75578    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
75579    GetIpMulticastInterface {
75580        responder: SynchronousDatagramSocketGetIpMulticastInterfaceResponder,
75581    },
75582    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
75583    SetIpMulticastTtl {
75584        value: OptionalUint8,
75585        responder: SynchronousDatagramSocketSetIpMulticastTtlResponder,
75586    },
75587    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
75588    GetIpMulticastTtl {
75589        responder: SynchronousDatagramSocketGetIpMulticastTtlResponder,
75590    },
75591    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
75592    SetIpMulticastLoopback {
75593        value: bool,
75594        responder: SynchronousDatagramSocketSetIpMulticastLoopbackResponder,
75595    },
75596    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
75597    GetIpMulticastLoopback {
75598        responder: SynchronousDatagramSocketGetIpMulticastLoopbackResponder,
75599    },
75600    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
75601    AddIpMembership {
75602        membership: IpMulticastMembership,
75603        responder: SynchronousDatagramSocketAddIpMembershipResponder,
75604    },
75605    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
75606    DropIpMembership {
75607        membership: IpMulticastMembership,
75608        responder: SynchronousDatagramSocketDropIpMembershipResponder,
75609    },
75610    /// Set `SOL_IP` -> `IP_TRANSPARENT`
75611    SetIpTransparent {
75612        value: bool,
75613        responder: SynchronousDatagramSocketSetIpTransparentResponder,
75614    },
75615    /// Get `SOL_IP` -> `IP_TRANSPARENT`
75616    GetIpTransparent {
75617        responder: SynchronousDatagramSocketGetIpTransparentResponder,
75618    },
75619    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
75620    SetIpReceiveOriginalDestinationAddress {
75621        value: bool,
75622        responder: SynchronousDatagramSocketSetIpReceiveOriginalDestinationAddressResponder,
75623    },
75624    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
75625    GetIpReceiveOriginalDestinationAddress {
75626        responder: SynchronousDatagramSocketGetIpReceiveOriginalDestinationAddressResponder,
75627    },
75628    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
75629    AddIpv6Membership {
75630        membership: Ipv6MulticastMembership,
75631        responder: SynchronousDatagramSocketAddIpv6MembershipResponder,
75632    },
75633    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
75634    DropIpv6Membership {
75635        membership: Ipv6MulticastMembership,
75636        responder: SynchronousDatagramSocketDropIpv6MembershipResponder,
75637    },
75638    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
75639    SetIpv6MulticastInterface {
75640        value: u64,
75641        responder: SynchronousDatagramSocketSetIpv6MulticastInterfaceResponder,
75642    },
75643    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
75644    GetIpv6MulticastInterface {
75645        responder: SynchronousDatagramSocketGetIpv6MulticastInterfaceResponder,
75646    },
75647    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
75648    SetIpv6UnicastHops {
75649        value: OptionalUint8,
75650        responder: SynchronousDatagramSocketSetIpv6UnicastHopsResponder,
75651    },
75652    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
75653    GetIpv6UnicastHops {
75654        responder: SynchronousDatagramSocketGetIpv6UnicastHopsResponder,
75655    },
75656    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
75657    SetIpv6ReceiveHopLimit {
75658        value: bool,
75659        responder: SynchronousDatagramSocketSetIpv6ReceiveHopLimitResponder,
75660    },
75661    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
75662    GetIpv6ReceiveHopLimit {
75663        responder: SynchronousDatagramSocketGetIpv6ReceiveHopLimitResponder,
75664    },
75665    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
75666    SetIpv6MulticastHops {
75667        value: OptionalUint8,
75668        responder: SynchronousDatagramSocketSetIpv6MulticastHopsResponder,
75669    },
75670    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
75671    GetIpv6MulticastHops {
75672        responder: SynchronousDatagramSocketGetIpv6MulticastHopsResponder,
75673    },
75674    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
75675    SetIpv6MulticastLoopback {
75676        value: bool,
75677        responder: SynchronousDatagramSocketSetIpv6MulticastLoopbackResponder,
75678    },
75679    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
75680    GetIpv6MulticastLoopback {
75681        responder: SynchronousDatagramSocketGetIpv6MulticastLoopbackResponder,
75682    },
75683    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
75684    SetIpv6Only {
75685        value: bool,
75686        responder: SynchronousDatagramSocketSetIpv6OnlyResponder,
75687    },
75688    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
75689    GetIpv6Only {
75690        responder: SynchronousDatagramSocketGetIpv6OnlyResponder,
75691    },
75692    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
75693    SetIpv6ReceiveTrafficClass {
75694        value: bool,
75695        responder: SynchronousDatagramSocketSetIpv6ReceiveTrafficClassResponder,
75696    },
75697    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
75698    GetIpv6ReceiveTrafficClass {
75699        responder: SynchronousDatagramSocketGetIpv6ReceiveTrafficClassResponder,
75700    },
75701    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
75702    SetIpv6TrafficClass {
75703        value: OptionalUint8,
75704        responder: SynchronousDatagramSocketSetIpv6TrafficClassResponder,
75705    },
75706    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
75707    GetIpv6TrafficClass {
75708        responder: SynchronousDatagramSocketGetIpv6TrafficClassResponder,
75709    },
75710    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
75711    SetIpv6ReceivePacketInfo {
75712        value: bool,
75713        responder: SynchronousDatagramSocketSetIpv6ReceivePacketInfoResponder,
75714    },
75715    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
75716    GetIpv6ReceivePacketInfo {
75717        responder: SynchronousDatagramSocketGetIpv6ReceivePacketInfoResponder,
75718    },
75719    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
75720    GetOriginalDestination {
75721        responder: SynchronousDatagramSocketGetOriginalDestinationResponder,
75722    },
75723    /// Retrieves creation information from the socket.
75724    ///
75725    /// - response `domain` the socket's associated domain.
75726    /// - response `proto` the socket's associated protocol.
75727    GetInfo {
75728        responder: SynchronousDatagramSocketGetInfoResponder,
75729    },
75730    Describe {
75731        responder: SynchronousDatagramSocketDescribeResponder,
75732    },
75733    /// Receives a message from the socket.
75734    ///
75735    /// + request `want_addr` request message's source address information to
75736    ///   be returned.
75737    /// + request `data_len` the maximum allowed length of the response data
75738    ///   buffer.
75739    /// + request `want_control` request ancillary data to be returned.
75740    /// + request `flags` flags for the receive request.
75741    /// - response `addr` the message's source address information, if
75742    ///   requested.
75743    /// - response `data` the message.
75744    /// - response `control` control messages, if requested.
75745    /// - response `truncated` indicates whether or not the returned message
75746    ///   was truncated.
75747    RecvMsg {
75748        want_addr: bool,
75749        data_len: u32,
75750        want_control: bool,
75751        flags: RecvMsgFlags,
75752        responder: SynchronousDatagramSocketRecvMsgResponder,
75753    },
75754    /// Sends a message on the socket.
75755    ///
75756    /// + request `addr` the address to send the message to. If unset, will send
75757    ///   to the connected peer.
75758    /// + request `data` the message.
75759    /// + request `control` ancillary data.
75760    /// + request `flags` flags for the send request.
75761    /// - response `len` the number of bytes sent.
75762    SendMsg {
75763        addr: Option<Box<fidl_fuchsia_net::SocketAddress>>,
75764        data: Vec<u8>,
75765        control: DatagramSocketSendControlData,
75766        flags: SendMsgFlags,
75767        responder: SynchronousDatagramSocketSendMsgResponder,
75768    },
75769}
75770
75771impl SynchronousDatagramSocketRequest {
75772    #[allow(irrefutable_let_patterns)]
75773    pub fn into_clone(
75774        self,
75775    ) -> Option<(
75776        fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
75777        SynchronousDatagramSocketControlHandle,
75778    )> {
75779        if let SynchronousDatagramSocketRequest::Clone { request, control_handle } = self {
75780            Some((request, control_handle))
75781        } else {
75782            None
75783        }
75784    }
75785
75786    #[allow(irrefutable_let_patterns)]
75787    pub fn into_close(self) -> Option<(SynchronousDatagramSocketCloseResponder)> {
75788        if let SynchronousDatagramSocketRequest::Close { responder } = self {
75789            Some((responder))
75790        } else {
75791            None
75792        }
75793    }
75794
75795    #[allow(irrefutable_let_patterns)]
75796    pub fn into_query(self) -> Option<(SynchronousDatagramSocketQueryResponder)> {
75797        if let SynchronousDatagramSocketRequest::Query { responder } = self {
75798            Some((responder))
75799        } else {
75800            None
75801        }
75802    }
75803
75804    #[allow(irrefutable_let_patterns)]
75805    pub fn into_set_reuse_address(
75806        self,
75807    ) -> Option<(bool, SynchronousDatagramSocketSetReuseAddressResponder)> {
75808        if let SynchronousDatagramSocketRequest::SetReuseAddress { value, responder } = self {
75809            Some((value, responder))
75810        } else {
75811            None
75812        }
75813    }
75814
75815    #[allow(irrefutable_let_patterns)]
75816    pub fn into_get_reuse_address(
75817        self,
75818    ) -> Option<(SynchronousDatagramSocketGetReuseAddressResponder)> {
75819        if let SynchronousDatagramSocketRequest::GetReuseAddress { responder } = self {
75820            Some((responder))
75821        } else {
75822            None
75823        }
75824    }
75825
75826    #[allow(irrefutable_let_patterns)]
75827    pub fn into_get_error(self) -> Option<(SynchronousDatagramSocketGetErrorResponder)> {
75828        if let SynchronousDatagramSocketRequest::GetError { responder } = self {
75829            Some((responder))
75830        } else {
75831            None
75832        }
75833    }
75834
75835    #[allow(irrefutable_let_patterns)]
75836    pub fn into_set_broadcast(
75837        self,
75838    ) -> Option<(bool, SynchronousDatagramSocketSetBroadcastResponder)> {
75839        if let SynchronousDatagramSocketRequest::SetBroadcast { value, responder } = self {
75840            Some((value, responder))
75841        } else {
75842            None
75843        }
75844    }
75845
75846    #[allow(irrefutable_let_patterns)]
75847    pub fn into_get_broadcast(self) -> Option<(SynchronousDatagramSocketGetBroadcastResponder)> {
75848        if let SynchronousDatagramSocketRequest::GetBroadcast { responder } = self {
75849            Some((responder))
75850        } else {
75851            None
75852        }
75853    }
75854
75855    #[allow(irrefutable_let_patterns)]
75856    pub fn into_set_send_buffer(
75857        self,
75858    ) -> Option<(u64, SynchronousDatagramSocketSetSendBufferResponder)> {
75859        if let SynchronousDatagramSocketRequest::SetSendBuffer { value_bytes, responder } = self {
75860            Some((value_bytes, responder))
75861        } else {
75862            None
75863        }
75864    }
75865
75866    #[allow(irrefutable_let_patterns)]
75867    pub fn into_get_send_buffer(self) -> Option<(SynchronousDatagramSocketGetSendBufferResponder)> {
75868        if let SynchronousDatagramSocketRequest::GetSendBuffer { responder } = self {
75869            Some((responder))
75870        } else {
75871            None
75872        }
75873    }
75874
75875    #[allow(irrefutable_let_patterns)]
75876    pub fn into_set_receive_buffer(
75877        self,
75878    ) -> Option<(u64, SynchronousDatagramSocketSetReceiveBufferResponder)> {
75879        if let SynchronousDatagramSocketRequest::SetReceiveBuffer { value_bytes, responder } = self
75880        {
75881            Some((value_bytes, responder))
75882        } else {
75883            None
75884        }
75885    }
75886
75887    #[allow(irrefutable_let_patterns)]
75888    pub fn into_get_receive_buffer(
75889        self,
75890    ) -> Option<(SynchronousDatagramSocketGetReceiveBufferResponder)> {
75891        if let SynchronousDatagramSocketRequest::GetReceiveBuffer { responder } = self {
75892            Some((responder))
75893        } else {
75894            None
75895        }
75896    }
75897
75898    #[allow(irrefutable_let_patterns)]
75899    pub fn into_set_keep_alive(
75900        self,
75901    ) -> Option<(bool, SynchronousDatagramSocketSetKeepAliveResponder)> {
75902        if let SynchronousDatagramSocketRequest::SetKeepAlive { value, responder } = self {
75903            Some((value, responder))
75904        } else {
75905            None
75906        }
75907    }
75908
75909    #[allow(irrefutable_let_patterns)]
75910    pub fn into_get_keep_alive(self) -> Option<(SynchronousDatagramSocketGetKeepAliveResponder)> {
75911        if let SynchronousDatagramSocketRequest::GetKeepAlive { responder } = self {
75912            Some((responder))
75913        } else {
75914            None
75915        }
75916    }
75917
75918    #[allow(irrefutable_let_patterns)]
75919    pub fn into_set_out_of_band_inline(
75920        self,
75921    ) -> Option<(bool, SynchronousDatagramSocketSetOutOfBandInlineResponder)> {
75922        if let SynchronousDatagramSocketRequest::SetOutOfBandInline { value, responder } = self {
75923            Some((value, responder))
75924        } else {
75925            None
75926        }
75927    }
75928
75929    #[allow(irrefutable_let_patterns)]
75930    pub fn into_get_out_of_band_inline(
75931        self,
75932    ) -> Option<(SynchronousDatagramSocketGetOutOfBandInlineResponder)> {
75933        if let SynchronousDatagramSocketRequest::GetOutOfBandInline { responder } = self {
75934            Some((responder))
75935        } else {
75936            None
75937        }
75938    }
75939
75940    #[allow(irrefutable_let_patterns)]
75941    pub fn into_set_no_check(self) -> Option<(bool, SynchronousDatagramSocketSetNoCheckResponder)> {
75942        if let SynchronousDatagramSocketRequest::SetNoCheck { value, responder } = self {
75943            Some((value, responder))
75944        } else {
75945            None
75946        }
75947    }
75948
75949    #[allow(irrefutable_let_patterns)]
75950    pub fn into_get_no_check(self) -> Option<(SynchronousDatagramSocketGetNoCheckResponder)> {
75951        if let SynchronousDatagramSocketRequest::GetNoCheck { responder } = self {
75952            Some((responder))
75953        } else {
75954            None
75955        }
75956    }
75957
75958    #[allow(irrefutable_let_patterns)]
75959    pub fn into_set_linger(
75960        self,
75961    ) -> Option<(bool, u32, SynchronousDatagramSocketSetLingerResponder)> {
75962        if let SynchronousDatagramSocketRequest::SetLinger { linger, length_secs, responder } = self
75963        {
75964            Some((linger, length_secs, responder))
75965        } else {
75966            None
75967        }
75968    }
75969
75970    #[allow(irrefutable_let_patterns)]
75971    pub fn into_get_linger(self) -> Option<(SynchronousDatagramSocketGetLingerResponder)> {
75972        if let SynchronousDatagramSocketRequest::GetLinger { responder } = self {
75973            Some((responder))
75974        } else {
75975            None
75976        }
75977    }
75978
75979    #[allow(irrefutable_let_patterns)]
75980    pub fn into_set_reuse_port(
75981        self,
75982    ) -> Option<(bool, SynchronousDatagramSocketSetReusePortResponder)> {
75983        if let SynchronousDatagramSocketRequest::SetReusePort { value, responder } = self {
75984            Some((value, responder))
75985        } else {
75986            None
75987        }
75988    }
75989
75990    #[allow(irrefutable_let_patterns)]
75991    pub fn into_get_reuse_port(self) -> Option<(SynchronousDatagramSocketGetReusePortResponder)> {
75992        if let SynchronousDatagramSocketRequest::GetReusePort { responder } = self {
75993            Some((responder))
75994        } else {
75995            None
75996        }
75997    }
75998
75999    #[allow(irrefutable_let_patterns)]
76000    pub fn into_get_accept_conn(self) -> Option<(SynchronousDatagramSocketGetAcceptConnResponder)> {
76001        if let SynchronousDatagramSocketRequest::GetAcceptConn { responder } = self {
76002            Some((responder))
76003        } else {
76004            None
76005        }
76006    }
76007
76008    #[allow(irrefutable_let_patterns)]
76009    pub fn into_set_bind_to_device(
76010        self,
76011    ) -> Option<(String, SynchronousDatagramSocketSetBindToDeviceResponder)> {
76012        if let SynchronousDatagramSocketRequest::SetBindToDevice { value, responder } = self {
76013            Some((value, responder))
76014        } else {
76015            None
76016        }
76017    }
76018
76019    #[allow(irrefutable_let_patterns)]
76020    pub fn into_get_bind_to_device(
76021        self,
76022    ) -> Option<(SynchronousDatagramSocketGetBindToDeviceResponder)> {
76023        if let SynchronousDatagramSocketRequest::GetBindToDevice { responder } = self {
76024            Some((responder))
76025        } else {
76026            None
76027        }
76028    }
76029
76030    #[allow(irrefutable_let_patterns)]
76031    pub fn into_set_bind_to_interface_index(
76032        self,
76033    ) -> Option<(u64, SynchronousDatagramSocketSetBindToInterfaceIndexResponder)> {
76034        if let SynchronousDatagramSocketRequest::SetBindToInterfaceIndex { value, responder } = self
76035        {
76036            Some((value, responder))
76037        } else {
76038            None
76039        }
76040    }
76041
76042    #[allow(irrefutable_let_patterns)]
76043    pub fn into_get_bind_to_interface_index(
76044        self,
76045    ) -> Option<(SynchronousDatagramSocketGetBindToInterfaceIndexResponder)> {
76046        if let SynchronousDatagramSocketRequest::GetBindToInterfaceIndex { responder } = self {
76047            Some((responder))
76048        } else {
76049            None
76050        }
76051    }
76052
76053    #[allow(irrefutable_let_patterns)]
76054    pub fn into_set_timestamp(
76055        self,
76056    ) -> Option<(TimestampOption, SynchronousDatagramSocketSetTimestampResponder)> {
76057        if let SynchronousDatagramSocketRequest::SetTimestamp { value, responder } = self {
76058            Some((value, responder))
76059        } else {
76060            None
76061        }
76062    }
76063
76064    #[allow(irrefutable_let_patterns)]
76065    pub fn into_get_timestamp(self) -> Option<(SynchronousDatagramSocketGetTimestampResponder)> {
76066        if let SynchronousDatagramSocketRequest::GetTimestamp { responder } = self {
76067            Some((responder))
76068        } else {
76069            None
76070        }
76071    }
76072
76073    #[allow(irrefutable_let_patterns)]
76074    pub fn into_set_mark(
76075        self,
76076    ) -> Option<(
76077        fidl_fuchsia_net::MarkDomain,
76078        OptionalUint32,
76079        SynchronousDatagramSocketSetMarkResponder,
76080    )> {
76081        if let SynchronousDatagramSocketRequest::SetMark { domain, mark, responder } = self {
76082            Some((domain, mark, responder))
76083        } else {
76084            None
76085        }
76086    }
76087
76088    #[allow(irrefutable_let_patterns)]
76089    pub fn into_get_mark(
76090        self,
76091    ) -> Option<(fidl_fuchsia_net::MarkDomain, SynchronousDatagramSocketGetMarkResponder)> {
76092        if let SynchronousDatagramSocketRequest::GetMark { domain, responder } = self {
76093            Some((domain, responder))
76094        } else {
76095            None
76096        }
76097    }
76098
76099    #[allow(irrefutable_let_patterns)]
76100    pub fn into_get_cookie(self) -> Option<(SynchronousDatagramSocketGetCookieResponder)> {
76101        if let SynchronousDatagramSocketRequest::GetCookie { responder } = self {
76102            Some((responder))
76103        } else {
76104            None
76105        }
76106    }
76107
76108    #[allow(irrefutable_let_patterns)]
76109    pub fn into_bind(
76110        self,
76111    ) -> Option<(fidl_fuchsia_net::SocketAddress, SynchronousDatagramSocketBindResponder)> {
76112        if let SynchronousDatagramSocketRequest::Bind { addr, responder } = self {
76113            Some((addr, responder))
76114        } else {
76115            None
76116        }
76117    }
76118
76119    #[allow(irrefutable_let_patterns)]
76120    pub fn into_connect(
76121        self,
76122    ) -> Option<(fidl_fuchsia_net::SocketAddress, SynchronousDatagramSocketConnectResponder)> {
76123        if let SynchronousDatagramSocketRequest::Connect { addr, responder } = self {
76124            Some((addr, responder))
76125        } else {
76126            None
76127        }
76128    }
76129
76130    #[allow(irrefutable_let_patterns)]
76131    pub fn into_disconnect(self) -> Option<(SynchronousDatagramSocketDisconnectResponder)> {
76132        if let SynchronousDatagramSocketRequest::Disconnect { responder } = self {
76133            Some((responder))
76134        } else {
76135            None
76136        }
76137    }
76138
76139    #[allow(irrefutable_let_patterns)]
76140    pub fn into_get_sock_name(self) -> Option<(SynchronousDatagramSocketGetSockNameResponder)> {
76141        if let SynchronousDatagramSocketRequest::GetSockName { responder } = self {
76142            Some((responder))
76143        } else {
76144            None
76145        }
76146    }
76147
76148    #[allow(irrefutable_let_patterns)]
76149    pub fn into_get_peer_name(self) -> Option<(SynchronousDatagramSocketGetPeerNameResponder)> {
76150        if let SynchronousDatagramSocketRequest::GetPeerName { responder } = self {
76151            Some((responder))
76152        } else {
76153            None
76154        }
76155    }
76156
76157    #[allow(irrefutable_let_patterns)]
76158    pub fn into_shutdown(
76159        self,
76160    ) -> Option<(ShutdownMode, SynchronousDatagramSocketShutdownResponder)> {
76161        if let SynchronousDatagramSocketRequest::Shutdown { mode, responder } = self {
76162            Some((mode, responder))
76163        } else {
76164            None
76165        }
76166    }
76167
76168    #[allow(irrefutable_let_patterns)]
76169    pub fn into_set_ip_type_of_service(
76170        self,
76171    ) -> Option<(u8, SynchronousDatagramSocketSetIpTypeOfServiceResponder)> {
76172        if let SynchronousDatagramSocketRequest::SetIpTypeOfService { value, responder } = self {
76173            Some((value, responder))
76174        } else {
76175            None
76176        }
76177    }
76178
76179    #[allow(irrefutable_let_patterns)]
76180    pub fn into_get_ip_type_of_service(
76181        self,
76182    ) -> Option<(SynchronousDatagramSocketGetIpTypeOfServiceResponder)> {
76183        if let SynchronousDatagramSocketRequest::GetIpTypeOfService { responder } = self {
76184            Some((responder))
76185        } else {
76186            None
76187        }
76188    }
76189
76190    #[allow(irrefutable_let_patterns)]
76191    pub fn into_set_ip_ttl(
76192        self,
76193    ) -> Option<(OptionalUint8, SynchronousDatagramSocketSetIpTtlResponder)> {
76194        if let SynchronousDatagramSocketRequest::SetIpTtl { value, responder } = self {
76195            Some((value, responder))
76196        } else {
76197            None
76198        }
76199    }
76200
76201    #[allow(irrefutable_let_patterns)]
76202    pub fn into_get_ip_ttl(self) -> Option<(SynchronousDatagramSocketGetIpTtlResponder)> {
76203        if let SynchronousDatagramSocketRequest::GetIpTtl { responder } = self {
76204            Some((responder))
76205        } else {
76206            None
76207        }
76208    }
76209
76210    #[allow(irrefutable_let_patterns)]
76211    pub fn into_set_ip_packet_info(
76212        self,
76213    ) -> Option<(bool, SynchronousDatagramSocketSetIpPacketInfoResponder)> {
76214        if let SynchronousDatagramSocketRequest::SetIpPacketInfo { value, responder } = self {
76215            Some((value, responder))
76216        } else {
76217            None
76218        }
76219    }
76220
76221    #[allow(irrefutable_let_patterns)]
76222    pub fn into_get_ip_packet_info(
76223        self,
76224    ) -> Option<(SynchronousDatagramSocketGetIpPacketInfoResponder)> {
76225        if let SynchronousDatagramSocketRequest::GetIpPacketInfo { responder } = self {
76226            Some((responder))
76227        } else {
76228            None
76229        }
76230    }
76231
76232    #[allow(irrefutable_let_patterns)]
76233    pub fn into_set_ip_receive_type_of_service(
76234        self,
76235    ) -> Option<(bool, SynchronousDatagramSocketSetIpReceiveTypeOfServiceResponder)> {
76236        if let SynchronousDatagramSocketRequest::SetIpReceiveTypeOfService { value, responder } =
76237            self
76238        {
76239            Some((value, responder))
76240        } else {
76241            None
76242        }
76243    }
76244
76245    #[allow(irrefutable_let_patterns)]
76246    pub fn into_get_ip_receive_type_of_service(
76247        self,
76248    ) -> Option<(SynchronousDatagramSocketGetIpReceiveTypeOfServiceResponder)> {
76249        if let SynchronousDatagramSocketRequest::GetIpReceiveTypeOfService { responder } = self {
76250            Some((responder))
76251        } else {
76252            None
76253        }
76254    }
76255
76256    #[allow(irrefutable_let_patterns)]
76257    pub fn into_set_ip_receive_ttl(
76258        self,
76259    ) -> Option<(bool, SynchronousDatagramSocketSetIpReceiveTtlResponder)> {
76260        if let SynchronousDatagramSocketRequest::SetIpReceiveTtl { value, responder } = self {
76261            Some((value, responder))
76262        } else {
76263            None
76264        }
76265    }
76266
76267    #[allow(irrefutable_let_patterns)]
76268    pub fn into_get_ip_receive_ttl(
76269        self,
76270    ) -> Option<(SynchronousDatagramSocketGetIpReceiveTtlResponder)> {
76271        if let SynchronousDatagramSocketRequest::GetIpReceiveTtl { responder } = self {
76272            Some((responder))
76273        } else {
76274            None
76275        }
76276    }
76277
76278    #[allow(irrefutable_let_patterns)]
76279    pub fn into_set_ip_multicast_interface(
76280        self,
76281    ) -> Option<(
76282        u64,
76283        fidl_fuchsia_net::Ipv4Address,
76284        SynchronousDatagramSocketSetIpMulticastInterfaceResponder,
76285    )> {
76286        if let SynchronousDatagramSocketRequest::SetIpMulticastInterface {
76287            iface,
76288            address,
76289            responder,
76290        } = self
76291        {
76292            Some((iface, address, responder))
76293        } else {
76294            None
76295        }
76296    }
76297
76298    #[allow(irrefutable_let_patterns)]
76299    pub fn into_get_ip_multicast_interface(
76300        self,
76301    ) -> Option<(SynchronousDatagramSocketGetIpMulticastInterfaceResponder)> {
76302        if let SynchronousDatagramSocketRequest::GetIpMulticastInterface { responder } = self {
76303            Some((responder))
76304        } else {
76305            None
76306        }
76307    }
76308
76309    #[allow(irrefutable_let_patterns)]
76310    pub fn into_set_ip_multicast_ttl(
76311        self,
76312    ) -> Option<(OptionalUint8, SynchronousDatagramSocketSetIpMulticastTtlResponder)> {
76313        if let SynchronousDatagramSocketRequest::SetIpMulticastTtl { value, responder } = self {
76314            Some((value, responder))
76315        } else {
76316            None
76317        }
76318    }
76319
76320    #[allow(irrefutable_let_patterns)]
76321    pub fn into_get_ip_multicast_ttl(
76322        self,
76323    ) -> Option<(SynchronousDatagramSocketGetIpMulticastTtlResponder)> {
76324        if let SynchronousDatagramSocketRequest::GetIpMulticastTtl { responder } = self {
76325            Some((responder))
76326        } else {
76327            None
76328        }
76329    }
76330
76331    #[allow(irrefutable_let_patterns)]
76332    pub fn into_set_ip_multicast_loopback(
76333        self,
76334    ) -> Option<(bool, SynchronousDatagramSocketSetIpMulticastLoopbackResponder)> {
76335        if let SynchronousDatagramSocketRequest::SetIpMulticastLoopback { value, responder } = self
76336        {
76337            Some((value, responder))
76338        } else {
76339            None
76340        }
76341    }
76342
76343    #[allow(irrefutable_let_patterns)]
76344    pub fn into_get_ip_multicast_loopback(
76345        self,
76346    ) -> Option<(SynchronousDatagramSocketGetIpMulticastLoopbackResponder)> {
76347        if let SynchronousDatagramSocketRequest::GetIpMulticastLoopback { responder } = self {
76348            Some((responder))
76349        } else {
76350            None
76351        }
76352    }
76353
76354    #[allow(irrefutable_let_patterns)]
76355    pub fn into_add_ip_membership(
76356        self,
76357    ) -> Option<(IpMulticastMembership, SynchronousDatagramSocketAddIpMembershipResponder)> {
76358        if let SynchronousDatagramSocketRequest::AddIpMembership { membership, responder } = self {
76359            Some((membership, responder))
76360        } else {
76361            None
76362        }
76363    }
76364
76365    #[allow(irrefutable_let_patterns)]
76366    pub fn into_drop_ip_membership(
76367        self,
76368    ) -> Option<(IpMulticastMembership, SynchronousDatagramSocketDropIpMembershipResponder)> {
76369        if let SynchronousDatagramSocketRequest::DropIpMembership { membership, responder } = self {
76370            Some((membership, responder))
76371        } else {
76372            None
76373        }
76374    }
76375
76376    #[allow(irrefutable_let_patterns)]
76377    pub fn into_set_ip_transparent(
76378        self,
76379    ) -> Option<(bool, SynchronousDatagramSocketSetIpTransparentResponder)> {
76380        if let SynchronousDatagramSocketRequest::SetIpTransparent { value, responder } = self {
76381            Some((value, responder))
76382        } else {
76383            None
76384        }
76385    }
76386
76387    #[allow(irrefutable_let_patterns)]
76388    pub fn into_get_ip_transparent(
76389        self,
76390    ) -> Option<(SynchronousDatagramSocketGetIpTransparentResponder)> {
76391        if let SynchronousDatagramSocketRequest::GetIpTransparent { responder } = self {
76392            Some((responder))
76393        } else {
76394            None
76395        }
76396    }
76397
76398    #[allow(irrefutable_let_patterns)]
76399    pub fn into_set_ip_receive_original_destination_address(
76400        self,
76401    ) -> Option<(bool, SynchronousDatagramSocketSetIpReceiveOriginalDestinationAddressResponder)>
76402    {
76403        if let SynchronousDatagramSocketRequest::SetIpReceiveOriginalDestinationAddress {
76404            value,
76405            responder,
76406        } = self
76407        {
76408            Some((value, responder))
76409        } else {
76410            None
76411        }
76412    }
76413
76414    #[allow(irrefutable_let_patterns)]
76415    pub fn into_get_ip_receive_original_destination_address(
76416        self,
76417    ) -> Option<(SynchronousDatagramSocketGetIpReceiveOriginalDestinationAddressResponder)> {
76418        if let SynchronousDatagramSocketRequest::GetIpReceiveOriginalDestinationAddress {
76419            responder,
76420        } = self
76421        {
76422            Some((responder))
76423        } else {
76424            None
76425        }
76426    }
76427
76428    #[allow(irrefutable_let_patterns)]
76429    pub fn into_add_ipv6_membership(
76430        self,
76431    ) -> Option<(Ipv6MulticastMembership, SynchronousDatagramSocketAddIpv6MembershipResponder)>
76432    {
76433        if let SynchronousDatagramSocketRequest::AddIpv6Membership { membership, responder } = self
76434        {
76435            Some((membership, responder))
76436        } else {
76437            None
76438        }
76439    }
76440
76441    #[allow(irrefutable_let_patterns)]
76442    pub fn into_drop_ipv6_membership(
76443        self,
76444    ) -> Option<(Ipv6MulticastMembership, SynchronousDatagramSocketDropIpv6MembershipResponder)>
76445    {
76446        if let SynchronousDatagramSocketRequest::DropIpv6Membership { membership, responder } = self
76447        {
76448            Some((membership, responder))
76449        } else {
76450            None
76451        }
76452    }
76453
76454    #[allow(irrefutable_let_patterns)]
76455    pub fn into_set_ipv6_multicast_interface(
76456        self,
76457    ) -> Option<(u64, SynchronousDatagramSocketSetIpv6MulticastInterfaceResponder)> {
76458        if let SynchronousDatagramSocketRequest::SetIpv6MulticastInterface { value, responder } =
76459            self
76460        {
76461            Some((value, responder))
76462        } else {
76463            None
76464        }
76465    }
76466
76467    #[allow(irrefutable_let_patterns)]
76468    pub fn into_get_ipv6_multicast_interface(
76469        self,
76470    ) -> Option<(SynchronousDatagramSocketGetIpv6MulticastInterfaceResponder)> {
76471        if let SynchronousDatagramSocketRequest::GetIpv6MulticastInterface { responder } = self {
76472            Some((responder))
76473        } else {
76474            None
76475        }
76476    }
76477
76478    #[allow(irrefutable_let_patterns)]
76479    pub fn into_set_ipv6_unicast_hops(
76480        self,
76481    ) -> Option<(OptionalUint8, SynchronousDatagramSocketSetIpv6UnicastHopsResponder)> {
76482        if let SynchronousDatagramSocketRequest::SetIpv6UnicastHops { value, responder } = self {
76483            Some((value, responder))
76484        } else {
76485            None
76486        }
76487    }
76488
76489    #[allow(irrefutable_let_patterns)]
76490    pub fn into_get_ipv6_unicast_hops(
76491        self,
76492    ) -> Option<(SynchronousDatagramSocketGetIpv6UnicastHopsResponder)> {
76493        if let SynchronousDatagramSocketRequest::GetIpv6UnicastHops { responder } = self {
76494            Some((responder))
76495        } else {
76496            None
76497        }
76498    }
76499
76500    #[allow(irrefutable_let_patterns)]
76501    pub fn into_set_ipv6_receive_hop_limit(
76502        self,
76503    ) -> Option<(bool, SynchronousDatagramSocketSetIpv6ReceiveHopLimitResponder)> {
76504        if let SynchronousDatagramSocketRequest::SetIpv6ReceiveHopLimit { value, responder } = self
76505        {
76506            Some((value, responder))
76507        } else {
76508            None
76509        }
76510    }
76511
76512    #[allow(irrefutable_let_patterns)]
76513    pub fn into_get_ipv6_receive_hop_limit(
76514        self,
76515    ) -> Option<(SynchronousDatagramSocketGetIpv6ReceiveHopLimitResponder)> {
76516        if let SynchronousDatagramSocketRequest::GetIpv6ReceiveHopLimit { responder } = self {
76517            Some((responder))
76518        } else {
76519            None
76520        }
76521    }
76522
76523    #[allow(irrefutable_let_patterns)]
76524    pub fn into_set_ipv6_multicast_hops(
76525        self,
76526    ) -> Option<(OptionalUint8, SynchronousDatagramSocketSetIpv6MulticastHopsResponder)> {
76527        if let SynchronousDatagramSocketRequest::SetIpv6MulticastHops { value, responder } = self {
76528            Some((value, responder))
76529        } else {
76530            None
76531        }
76532    }
76533
76534    #[allow(irrefutable_let_patterns)]
76535    pub fn into_get_ipv6_multicast_hops(
76536        self,
76537    ) -> Option<(SynchronousDatagramSocketGetIpv6MulticastHopsResponder)> {
76538        if let SynchronousDatagramSocketRequest::GetIpv6MulticastHops { responder } = self {
76539            Some((responder))
76540        } else {
76541            None
76542        }
76543    }
76544
76545    #[allow(irrefutable_let_patterns)]
76546    pub fn into_set_ipv6_multicast_loopback(
76547        self,
76548    ) -> Option<(bool, SynchronousDatagramSocketSetIpv6MulticastLoopbackResponder)> {
76549        if let SynchronousDatagramSocketRequest::SetIpv6MulticastLoopback { value, responder } =
76550            self
76551        {
76552            Some((value, responder))
76553        } else {
76554            None
76555        }
76556    }
76557
76558    #[allow(irrefutable_let_patterns)]
76559    pub fn into_get_ipv6_multicast_loopback(
76560        self,
76561    ) -> Option<(SynchronousDatagramSocketGetIpv6MulticastLoopbackResponder)> {
76562        if let SynchronousDatagramSocketRequest::GetIpv6MulticastLoopback { responder } = self {
76563            Some((responder))
76564        } else {
76565            None
76566        }
76567    }
76568
76569    #[allow(irrefutable_let_patterns)]
76570    pub fn into_set_ipv6_only(
76571        self,
76572    ) -> Option<(bool, SynchronousDatagramSocketSetIpv6OnlyResponder)> {
76573        if let SynchronousDatagramSocketRequest::SetIpv6Only { value, responder } = self {
76574            Some((value, responder))
76575        } else {
76576            None
76577        }
76578    }
76579
76580    #[allow(irrefutable_let_patterns)]
76581    pub fn into_get_ipv6_only(self) -> Option<(SynchronousDatagramSocketGetIpv6OnlyResponder)> {
76582        if let SynchronousDatagramSocketRequest::GetIpv6Only { responder } = self {
76583            Some((responder))
76584        } else {
76585            None
76586        }
76587    }
76588
76589    #[allow(irrefutable_let_patterns)]
76590    pub fn into_set_ipv6_receive_traffic_class(
76591        self,
76592    ) -> Option<(bool, SynchronousDatagramSocketSetIpv6ReceiveTrafficClassResponder)> {
76593        if let SynchronousDatagramSocketRequest::SetIpv6ReceiveTrafficClass { value, responder } =
76594            self
76595        {
76596            Some((value, responder))
76597        } else {
76598            None
76599        }
76600    }
76601
76602    #[allow(irrefutable_let_patterns)]
76603    pub fn into_get_ipv6_receive_traffic_class(
76604        self,
76605    ) -> Option<(SynchronousDatagramSocketGetIpv6ReceiveTrafficClassResponder)> {
76606        if let SynchronousDatagramSocketRequest::GetIpv6ReceiveTrafficClass { responder } = self {
76607            Some((responder))
76608        } else {
76609            None
76610        }
76611    }
76612
76613    #[allow(irrefutable_let_patterns)]
76614    pub fn into_set_ipv6_traffic_class(
76615        self,
76616    ) -> Option<(OptionalUint8, SynchronousDatagramSocketSetIpv6TrafficClassResponder)> {
76617        if let SynchronousDatagramSocketRequest::SetIpv6TrafficClass { value, responder } = self {
76618            Some((value, responder))
76619        } else {
76620            None
76621        }
76622    }
76623
76624    #[allow(irrefutable_let_patterns)]
76625    pub fn into_get_ipv6_traffic_class(
76626        self,
76627    ) -> Option<(SynchronousDatagramSocketGetIpv6TrafficClassResponder)> {
76628        if let SynchronousDatagramSocketRequest::GetIpv6TrafficClass { responder } = self {
76629            Some((responder))
76630        } else {
76631            None
76632        }
76633    }
76634
76635    #[allow(irrefutable_let_patterns)]
76636    pub fn into_set_ipv6_receive_packet_info(
76637        self,
76638    ) -> Option<(bool, SynchronousDatagramSocketSetIpv6ReceivePacketInfoResponder)> {
76639        if let SynchronousDatagramSocketRequest::SetIpv6ReceivePacketInfo { value, responder } =
76640            self
76641        {
76642            Some((value, responder))
76643        } else {
76644            None
76645        }
76646    }
76647
76648    #[allow(irrefutable_let_patterns)]
76649    pub fn into_get_ipv6_receive_packet_info(
76650        self,
76651    ) -> Option<(SynchronousDatagramSocketGetIpv6ReceivePacketInfoResponder)> {
76652        if let SynchronousDatagramSocketRequest::GetIpv6ReceivePacketInfo { responder } = self {
76653            Some((responder))
76654        } else {
76655            None
76656        }
76657    }
76658
76659    #[allow(irrefutable_let_patterns)]
76660    pub fn into_get_original_destination(
76661        self,
76662    ) -> Option<(SynchronousDatagramSocketGetOriginalDestinationResponder)> {
76663        if let SynchronousDatagramSocketRequest::GetOriginalDestination { responder } = self {
76664            Some((responder))
76665        } else {
76666            None
76667        }
76668    }
76669
76670    #[allow(irrefutable_let_patterns)]
76671    pub fn into_get_info(self) -> Option<(SynchronousDatagramSocketGetInfoResponder)> {
76672        if let SynchronousDatagramSocketRequest::GetInfo { responder } = self {
76673            Some((responder))
76674        } else {
76675            None
76676        }
76677    }
76678
76679    #[allow(irrefutable_let_patterns)]
76680    pub fn into_describe(self) -> Option<(SynchronousDatagramSocketDescribeResponder)> {
76681        if let SynchronousDatagramSocketRequest::Describe { responder } = self {
76682            Some((responder))
76683        } else {
76684            None
76685        }
76686    }
76687
76688    #[allow(irrefutable_let_patterns)]
76689    pub fn into_recv_msg(
76690        self,
76691    ) -> Option<(bool, u32, bool, RecvMsgFlags, SynchronousDatagramSocketRecvMsgResponder)> {
76692        if let SynchronousDatagramSocketRequest::RecvMsg {
76693            want_addr,
76694            data_len,
76695            want_control,
76696            flags,
76697            responder,
76698        } = self
76699        {
76700            Some((want_addr, data_len, want_control, flags, responder))
76701        } else {
76702            None
76703        }
76704    }
76705
76706    #[allow(irrefutable_let_patterns)]
76707    pub fn into_send_msg(
76708        self,
76709    ) -> Option<(
76710        Option<Box<fidl_fuchsia_net::SocketAddress>>,
76711        Vec<u8>,
76712        DatagramSocketSendControlData,
76713        SendMsgFlags,
76714        SynchronousDatagramSocketSendMsgResponder,
76715    )> {
76716        if let SynchronousDatagramSocketRequest::SendMsg { addr, data, control, flags, responder } =
76717            self
76718        {
76719            Some((addr, data, control, flags, responder))
76720        } else {
76721            None
76722        }
76723    }
76724
76725    /// Name of the method defined in FIDL
76726    pub fn method_name(&self) -> &'static str {
76727        match *self {
76728            SynchronousDatagramSocketRequest::Clone { .. } => "clone",
76729            SynchronousDatagramSocketRequest::Close { .. } => "close",
76730            SynchronousDatagramSocketRequest::Query { .. } => "query",
76731            SynchronousDatagramSocketRequest::SetReuseAddress { .. } => "set_reuse_address",
76732            SynchronousDatagramSocketRequest::GetReuseAddress { .. } => "get_reuse_address",
76733            SynchronousDatagramSocketRequest::GetError { .. } => "get_error",
76734            SynchronousDatagramSocketRequest::SetBroadcast { .. } => "set_broadcast",
76735            SynchronousDatagramSocketRequest::GetBroadcast { .. } => "get_broadcast",
76736            SynchronousDatagramSocketRequest::SetSendBuffer { .. } => "set_send_buffer",
76737            SynchronousDatagramSocketRequest::GetSendBuffer { .. } => "get_send_buffer",
76738            SynchronousDatagramSocketRequest::SetReceiveBuffer { .. } => "set_receive_buffer",
76739            SynchronousDatagramSocketRequest::GetReceiveBuffer { .. } => "get_receive_buffer",
76740            SynchronousDatagramSocketRequest::SetKeepAlive { .. } => "set_keep_alive",
76741            SynchronousDatagramSocketRequest::GetKeepAlive { .. } => "get_keep_alive",
76742            SynchronousDatagramSocketRequest::SetOutOfBandInline { .. } => "set_out_of_band_inline",
76743            SynchronousDatagramSocketRequest::GetOutOfBandInline { .. } => "get_out_of_band_inline",
76744            SynchronousDatagramSocketRequest::SetNoCheck { .. } => "set_no_check",
76745            SynchronousDatagramSocketRequest::GetNoCheck { .. } => "get_no_check",
76746            SynchronousDatagramSocketRequest::SetLinger { .. } => "set_linger",
76747            SynchronousDatagramSocketRequest::GetLinger { .. } => "get_linger",
76748            SynchronousDatagramSocketRequest::SetReusePort { .. } => "set_reuse_port",
76749            SynchronousDatagramSocketRequest::GetReusePort { .. } => "get_reuse_port",
76750            SynchronousDatagramSocketRequest::GetAcceptConn { .. } => "get_accept_conn",
76751            SynchronousDatagramSocketRequest::SetBindToDevice { .. } => "set_bind_to_device",
76752            SynchronousDatagramSocketRequest::GetBindToDevice { .. } => "get_bind_to_device",
76753            SynchronousDatagramSocketRequest::SetBindToInterfaceIndex { .. } => {
76754                "set_bind_to_interface_index"
76755            }
76756            SynchronousDatagramSocketRequest::GetBindToInterfaceIndex { .. } => {
76757                "get_bind_to_interface_index"
76758            }
76759            SynchronousDatagramSocketRequest::SetTimestamp { .. } => "set_timestamp",
76760            SynchronousDatagramSocketRequest::GetTimestamp { .. } => "get_timestamp",
76761            SynchronousDatagramSocketRequest::SetMark { .. } => "set_mark",
76762            SynchronousDatagramSocketRequest::GetMark { .. } => "get_mark",
76763            SynchronousDatagramSocketRequest::GetCookie { .. } => "get_cookie",
76764            SynchronousDatagramSocketRequest::Bind { .. } => "bind",
76765            SynchronousDatagramSocketRequest::Connect { .. } => "connect",
76766            SynchronousDatagramSocketRequest::Disconnect { .. } => "disconnect",
76767            SynchronousDatagramSocketRequest::GetSockName { .. } => "get_sock_name",
76768            SynchronousDatagramSocketRequest::GetPeerName { .. } => "get_peer_name",
76769            SynchronousDatagramSocketRequest::Shutdown { .. } => "shutdown",
76770            SynchronousDatagramSocketRequest::SetIpTypeOfService { .. } => "set_ip_type_of_service",
76771            SynchronousDatagramSocketRequest::GetIpTypeOfService { .. } => "get_ip_type_of_service",
76772            SynchronousDatagramSocketRequest::SetIpTtl { .. } => "set_ip_ttl",
76773            SynchronousDatagramSocketRequest::GetIpTtl { .. } => "get_ip_ttl",
76774            SynchronousDatagramSocketRequest::SetIpPacketInfo { .. } => "set_ip_packet_info",
76775            SynchronousDatagramSocketRequest::GetIpPacketInfo { .. } => "get_ip_packet_info",
76776            SynchronousDatagramSocketRequest::SetIpReceiveTypeOfService { .. } => {
76777                "set_ip_receive_type_of_service"
76778            }
76779            SynchronousDatagramSocketRequest::GetIpReceiveTypeOfService { .. } => {
76780                "get_ip_receive_type_of_service"
76781            }
76782            SynchronousDatagramSocketRequest::SetIpReceiveTtl { .. } => "set_ip_receive_ttl",
76783            SynchronousDatagramSocketRequest::GetIpReceiveTtl { .. } => "get_ip_receive_ttl",
76784            SynchronousDatagramSocketRequest::SetIpMulticastInterface { .. } => {
76785                "set_ip_multicast_interface"
76786            }
76787            SynchronousDatagramSocketRequest::GetIpMulticastInterface { .. } => {
76788                "get_ip_multicast_interface"
76789            }
76790            SynchronousDatagramSocketRequest::SetIpMulticastTtl { .. } => "set_ip_multicast_ttl",
76791            SynchronousDatagramSocketRequest::GetIpMulticastTtl { .. } => "get_ip_multicast_ttl",
76792            SynchronousDatagramSocketRequest::SetIpMulticastLoopback { .. } => {
76793                "set_ip_multicast_loopback"
76794            }
76795            SynchronousDatagramSocketRequest::GetIpMulticastLoopback { .. } => {
76796                "get_ip_multicast_loopback"
76797            }
76798            SynchronousDatagramSocketRequest::AddIpMembership { .. } => "add_ip_membership",
76799            SynchronousDatagramSocketRequest::DropIpMembership { .. } => "drop_ip_membership",
76800            SynchronousDatagramSocketRequest::SetIpTransparent { .. } => "set_ip_transparent",
76801            SynchronousDatagramSocketRequest::GetIpTransparent { .. } => "get_ip_transparent",
76802            SynchronousDatagramSocketRequest::SetIpReceiveOriginalDestinationAddress { .. } => {
76803                "set_ip_receive_original_destination_address"
76804            }
76805            SynchronousDatagramSocketRequest::GetIpReceiveOriginalDestinationAddress { .. } => {
76806                "get_ip_receive_original_destination_address"
76807            }
76808            SynchronousDatagramSocketRequest::AddIpv6Membership { .. } => "add_ipv6_membership",
76809            SynchronousDatagramSocketRequest::DropIpv6Membership { .. } => "drop_ipv6_membership",
76810            SynchronousDatagramSocketRequest::SetIpv6MulticastInterface { .. } => {
76811                "set_ipv6_multicast_interface"
76812            }
76813            SynchronousDatagramSocketRequest::GetIpv6MulticastInterface { .. } => {
76814                "get_ipv6_multicast_interface"
76815            }
76816            SynchronousDatagramSocketRequest::SetIpv6UnicastHops { .. } => "set_ipv6_unicast_hops",
76817            SynchronousDatagramSocketRequest::GetIpv6UnicastHops { .. } => "get_ipv6_unicast_hops",
76818            SynchronousDatagramSocketRequest::SetIpv6ReceiveHopLimit { .. } => {
76819                "set_ipv6_receive_hop_limit"
76820            }
76821            SynchronousDatagramSocketRequest::GetIpv6ReceiveHopLimit { .. } => {
76822                "get_ipv6_receive_hop_limit"
76823            }
76824            SynchronousDatagramSocketRequest::SetIpv6MulticastHops { .. } => {
76825                "set_ipv6_multicast_hops"
76826            }
76827            SynchronousDatagramSocketRequest::GetIpv6MulticastHops { .. } => {
76828                "get_ipv6_multicast_hops"
76829            }
76830            SynchronousDatagramSocketRequest::SetIpv6MulticastLoopback { .. } => {
76831                "set_ipv6_multicast_loopback"
76832            }
76833            SynchronousDatagramSocketRequest::GetIpv6MulticastLoopback { .. } => {
76834                "get_ipv6_multicast_loopback"
76835            }
76836            SynchronousDatagramSocketRequest::SetIpv6Only { .. } => "set_ipv6_only",
76837            SynchronousDatagramSocketRequest::GetIpv6Only { .. } => "get_ipv6_only",
76838            SynchronousDatagramSocketRequest::SetIpv6ReceiveTrafficClass { .. } => {
76839                "set_ipv6_receive_traffic_class"
76840            }
76841            SynchronousDatagramSocketRequest::GetIpv6ReceiveTrafficClass { .. } => {
76842                "get_ipv6_receive_traffic_class"
76843            }
76844            SynchronousDatagramSocketRequest::SetIpv6TrafficClass { .. } => {
76845                "set_ipv6_traffic_class"
76846            }
76847            SynchronousDatagramSocketRequest::GetIpv6TrafficClass { .. } => {
76848                "get_ipv6_traffic_class"
76849            }
76850            SynchronousDatagramSocketRequest::SetIpv6ReceivePacketInfo { .. } => {
76851                "set_ipv6_receive_packet_info"
76852            }
76853            SynchronousDatagramSocketRequest::GetIpv6ReceivePacketInfo { .. } => {
76854                "get_ipv6_receive_packet_info"
76855            }
76856            SynchronousDatagramSocketRequest::GetOriginalDestination { .. } => {
76857                "get_original_destination"
76858            }
76859            SynchronousDatagramSocketRequest::GetInfo { .. } => "get_info",
76860            SynchronousDatagramSocketRequest::Describe { .. } => "describe",
76861            SynchronousDatagramSocketRequest::RecvMsg { .. } => "recv_msg",
76862            SynchronousDatagramSocketRequest::SendMsg { .. } => "send_msg",
76863        }
76864    }
76865}
76866
76867#[derive(Debug, Clone)]
76868pub struct SynchronousDatagramSocketControlHandle {
76869    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
76870}
76871
76872impl fidl::endpoints::ControlHandle for SynchronousDatagramSocketControlHandle {
76873    fn shutdown(&self) {
76874        self.inner.shutdown()
76875    }
76876    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
76877        self.inner.shutdown_with_epitaph(status)
76878    }
76879
76880    fn is_closed(&self) -> bool {
76881        self.inner.channel().is_closed()
76882    }
76883    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
76884        self.inner.channel().on_closed()
76885    }
76886
76887    #[cfg(target_os = "fuchsia")]
76888    fn signal_peer(
76889        &self,
76890        clear_mask: zx::Signals,
76891        set_mask: zx::Signals,
76892    ) -> Result<(), zx_status::Status> {
76893        use fidl::Peered;
76894        self.inner.channel().signal_peer(clear_mask, set_mask)
76895    }
76896}
76897
76898impl SynchronousDatagramSocketControlHandle {}
76899
76900#[must_use = "FIDL methods require a response to be sent"]
76901#[derive(Debug)]
76902pub struct SynchronousDatagramSocketCloseResponder {
76903    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
76904    tx_id: u32,
76905}
76906
76907/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
76908/// if the responder is dropped without sending a response, so that the client
76909/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
76910impl std::ops::Drop for SynchronousDatagramSocketCloseResponder {
76911    fn drop(&mut self) {
76912        self.control_handle.shutdown();
76913        // Safety: drops once, never accessed again
76914        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
76915    }
76916}
76917
76918impl fidl::endpoints::Responder for SynchronousDatagramSocketCloseResponder {
76919    type ControlHandle = SynchronousDatagramSocketControlHandle;
76920
76921    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
76922        &self.control_handle
76923    }
76924
76925    fn drop_without_shutdown(mut self) {
76926        // Safety: drops once, never accessed again due to mem::forget
76927        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
76928        // Prevent Drop from running (which would shut down the channel)
76929        std::mem::forget(self);
76930    }
76931}
76932
76933impl SynchronousDatagramSocketCloseResponder {
76934    /// Sends a response to the FIDL transaction.
76935    ///
76936    /// Sets the channel to shutdown if an error occurs.
76937    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
76938        let _result = self.send_raw(result);
76939        if _result.is_err() {
76940            self.control_handle.shutdown();
76941        }
76942        self.drop_without_shutdown();
76943        _result
76944    }
76945
76946    /// Similar to "send" but does not shutdown the channel if an error occurs.
76947    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
76948        let _result = self.send_raw(result);
76949        self.drop_without_shutdown();
76950        _result
76951    }
76952
76953    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
76954        self.control_handle
76955            .inner
76956            .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>>(
76957                result,
76958                self.tx_id,
76959                0x5ac5d459ad7f657e,
76960                fidl::encoding::DynamicFlags::empty(),
76961            )
76962    }
76963}
76964
76965#[must_use = "FIDL methods require a response to be sent"]
76966#[derive(Debug)]
76967pub struct SynchronousDatagramSocketQueryResponder {
76968    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
76969    tx_id: u32,
76970}
76971
76972/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
76973/// if the responder is dropped without sending a response, so that the client
76974/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
76975impl std::ops::Drop for SynchronousDatagramSocketQueryResponder {
76976    fn drop(&mut self) {
76977        self.control_handle.shutdown();
76978        // Safety: drops once, never accessed again
76979        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
76980    }
76981}
76982
76983impl fidl::endpoints::Responder for SynchronousDatagramSocketQueryResponder {
76984    type ControlHandle = SynchronousDatagramSocketControlHandle;
76985
76986    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
76987        &self.control_handle
76988    }
76989
76990    fn drop_without_shutdown(mut self) {
76991        // Safety: drops once, never accessed again due to mem::forget
76992        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
76993        // Prevent Drop from running (which would shut down the channel)
76994        std::mem::forget(self);
76995    }
76996}
76997
76998impl SynchronousDatagramSocketQueryResponder {
76999    /// Sends a response to the FIDL transaction.
77000    ///
77001    /// Sets the channel to shutdown if an error occurs.
77002    pub fn send(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
77003        let _result = self.send_raw(protocol);
77004        if _result.is_err() {
77005            self.control_handle.shutdown();
77006        }
77007        self.drop_without_shutdown();
77008        _result
77009    }
77010
77011    /// Similar to "send" but does not shutdown the channel if an error occurs.
77012    pub fn send_no_shutdown_on_err(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
77013        let _result = self.send_raw(protocol);
77014        self.drop_without_shutdown();
77015        _result
77016    }
77017
77018    fn send_raw(&self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
77019        self.control_handle.inner.send::<fidl_fuchsia_unknown::QueryableQueryResponse>(
77020            (protocol,),
77021            self.tx_id,
77022            0x2658edee9decfc06,
77023            fidl::encoding::DynamicFlags::empty(),
77024        )
77025    }
77026}
77027
77028#[must_use = "FIDL methods require a response to be sent"]
77029#[derive(Debug)]
77030pub struct SynchronousDatagramSocketSetReuseAddressResponder {
77031    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
77032    tx_id: u32,
77033}
77034
77035/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
77036/// if the responder is dropped without sending a response, so that the client
77037/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
77038impl std::ops::Drop for SynchronousDatagramSocketSetReuseAddressResponder {
77039    fn drop(&mut self) {
77040        self.control_handle.shutdown();
77041        // Safety: drops once, never accessed again
77042        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77043    }
77044}
77045
77046impl fidl::endpoints::Responder for SynchronousDatagramSocketSetReuseAddressResponder {
77047    type ControlHandle = SynchronousDatagramSocketControlHandle;
77048
77049    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
77050        &self.control_handle
77051    }
77052
77053    fn drop_without_shutdown(mut self) {
77054        // Safety: drops once, never accessed again due to mem::forget
77055        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77056        // Prevent Drop from running (which would shut down the channel)
77057        std::mem::forget(self);
77058    }
77059}
77060
77061impl SynchronousDatagramSocketSetReuseAddressResponder {
77062    /// Sends a response to the FIDL transaction.
77063    ///
77064    /// Sets the channel to shutdown if an error occurs.
77065    pub fn send(
77066        self,
77067        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77068    ) -> Result<(), fidl::Error> {
77069        let _result = self.send_raw(result);
77070        if _result.is_err() {
77071            self.control_handle.shutdown();
77072        }
77073        self.drop_without_shutdown();
77074        _result
77075    }
77076
77077    /// Similar to "send" but does not shutdown the channel if an error occurs.
77078    pub fn send_no_shutdown_on_err(
77079        self,
77080        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77081    ) -> Result<(), fidl::Error> {
77082        let _result = self.send_raw(result);
77083        self.drop_without_shutdown();
77084        _result
77085    }
77086
77087    fn send_raw(
77088        &self,
77089        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77090    ) -> Result<(), fidl::Error> {
77091        self.control_handle.inner.send::<fidl::encoding::ResultType<
77092            fidl::encoding::EmptyStruct,
77093            fidl_fuchsia_posix::Errno,
77094        >>(
77095            result,
77096            self.tx_id,
77097            0x1fd74ee8b9a4a876,
77098            fidl::encoding::DynamicFlags::empty(),
77099        )
77100    }
77101}
77102
77103#[must_use = "FIDL methods require a response to be sent"]
77104#[derive(Debug)]
77105pub struct SynchronousDatagramSocketGetReuseAddressResponder {
77106    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
77107    tx_id: u32,
77108}
77109
77110/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
77111/// if the responder is dropped without sending a response, so that the client
77112/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
77113impl std::ops::Drop for SynchronousDatagramSocketGetReuseAddressResponder {
77114    fn drop(&mut self) {
77115        self.control_handle.shutdown();
77116        // Safety: drops once, never accessed again
77117        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77118    }
77119}
77120
77121impl fidl::endpoints::Responder for SynchronousDatagramSocketGetReuseAddressResponder {
77122    type ControlHandle = SynchronousDatagramSocketControlHandle;
77123
77124    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
77125        &self.control_handle
77126    }
77127
77128    fn drop_without_shutdown(mut self) {
77129        // Safety: drops once, never accessed again due to mem::forget
77130        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77131        // Prevent Drop from running (which would shut down the channel)
77132        std::mem::forget(self);
77133    }
77134}
77135
77136impl SynchronousDatagramSocketGetReuseAddressResponder {
77137    /// Sends a response to the FIDL transaction.
77138    ///
77139    /// Sets the channel to shutdown if an error occurs.
77140    pub fn send(
77141        self,
77142        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
77143    ) -> Result<(), fidl::Error> {
77144        let _result = self.send_raw(result);
77145        if _result.is_err() {
77146            self.control_handle.shutdown();
77147        }
77148        self.drop_without_shutdown();
77149        _result
77150    }
77151
77152    /// Similar to "send" but does not shutdown the channel if an error occurs.
77153    pub fn send_no_shutdown_on_err(
77154        self,
77155        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
77156    ) -> Result<(), fidl::Error> {
77157        let _result = self.send_raw(result);
77158        self.drop_without_shutdown();
77159        _result
77160    }
77161
77162    fn send_raw(
77163        &self,
77164        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
77165    ) -> Result<(), fidl::Error> {
77166        self.control_handle.inner.send::<fidl::encoding::ResultType<
77167            BaseSocketGetReuseAddressResponse,
77168            fidl_fuchsia_posix::Errno,
77169        >>(
77170            result.map(|value| (value,)),
77171            self.tx_id,
77172            0x67b7206b8d1bc0a5,
77173            fidl::encoding::DynamicFlags::empty(),
77174        )
77175    }
77176}
77177
77178#[must_use = "FIDL methods require a response to be sent"]
77179#[derive(Debug)]
77180pub struct SynchronousDatagramSocketGetErrorResponder {
77181    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
77182    tx_id: u32,
77183}
77184
77185/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
77186/// if the responder is dropped without sending a response, so that the client
77187/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
77188impl std::ops::Drop for SynchronousDatagramSocketGetErrorResponder {
77189    fn drop(&mut self) {
77190        self.control_handle.shutdown();
77191        // Safety: drops once, never accessed again
77192        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77193    }
77194}
77195
77196impl fidl::endpoints::Responder for SynchronousDatagramSocketGetErrorResponder {
77197    type ControlHandle = SynchronousDatagramSocketControlHandle;
77198
77199    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
77200        &self.control_handle
77201    }
77202
77203    fn drop_without_shutdown(mut self) {
77204        // Safety: drops once, never accessed again due to mem::forget
77205        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77206        // Prevent Drop from running (which would shut down the channel)
77207        std::mem::forget(self);
77208    }
77209}
77210
77211impl SynchronousDatagramSocketGetErrorResponder {
77212    /// Sends a response to the FIDL transaction.
77213    ///
77214    /// Sets the channel to shutdown if an error occurs.
77215    pub fn send(
77216        self,
77217        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77218    ) -> Result<(), fidl::Error> {
77219        let _result = self.send_raw(result);
77220        if _result.is_err() {
77221            self.control_handle.shutdown();
77222        }
77223        self.drop_without_shutdown();
77224        _result
77225    }
77226
77227    /// Similar to "send" but does not shutdown the channel if an error occurs.
77228    pub fn send_no_shutdown_on_err(
77229        self,
77230        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77231    ) -> Result<(), fidl::Error> {
77232        let _result = self.send_raw(result);
77233        self.drop_without_shutdown();
77234        _result
77235    }
77236
77237    fn send_raw(
77238        &self,
77239        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77240    ) -> Result<(), fidl::Error> {
77241        self.control_handle.inner.send::<fidl::encoding::ResultType<
77242            fidl::encoding::EmptyStruct,
77243            fidl_fuchsia_posix::Errno,
77244        >>(
77245            result,
77246            self.tx_id,
77247            0x5aad39b33e5f6ebb,
77248            fidl::encoding::DynamicFlags::empty(),
77249        )
77250    }
77251}
77252
77253#[must_use = "FIDL methods require a response to be sent"]
77254#[derive(Debug)]
77255pub struct SynchronousDatagramSocketSetBroadcastResponder {
77256    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
77257    tx_id: u32,
77258}
77259
77260/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
77261/// if the responder is dropped without sending a response, so that the client
77262/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
77263impl std::ops::Drop for SynchronousDatagramSocketSetBroadcastResponder {
77264    fn drop(&mut self) {
77265        self.control_handle.shutdown();
77266        // Safety: drops once, never accessed again
77267        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77268    }
77269}
77270
77271impl fidl::endpoints::Responder for SynchronousDatagramSocketSetBroadcastResponder {
77272    type ControlHandle = SynchronousDatagramSocketControlHandle;
77273
77274    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
77275        &self.control_handle
77276    }
77277
77278    fn drop_without_shutdown(mut self) {
77279        // Safety: drops once, never accessed again due to mem::forget
77280        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77281        // Prevent Drop from running (which would shut down the channel)
77282        std::mem::forget(self);
77283    }
77284}
77285
77286impl SynchronousDatagramSocketSetBroadcastResponder {
77287    /// Sends a response to the FIDL transaction.
77288    ///
77289    /// Sets the channel to shutdown if an error occurs.
77290    pub fn send(
77291        self,
77292        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77293    ) -> Result<(), fidl::Error> {
77294        let _result = self.send_raw(result);
77295        if _result.is_err() {
77296            self.control_handle.shutdown();
77297        }
77298        self.drop_without_shutdown();
77299        _result
77300    }
77301
77302    /// Similar to "send" but does not shutdown the channel if an error occurs.
77303    pub fn send_no_shutdown_on_err(
77304        self,
77305        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77306    ) -> Result<(), fidl::Error> {
77307        let _result = self.send_raw(result);
77308        self.drop_without_shutdown();
77309        _result
77310    }
77311
77312    fn send_raw(
77313        &self,
77314        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77315    ) -> Result<(), fidl::Error> {
77316        self.control_handle.inner.send::<fidl::encoding::ResultType<
77317            fidl::encoding::EmptyStruct,
77318            fidl_fuchsia_posix::Errno,
77319        >>(
77320            result,
77321            self.tx_id,
77322            0x6023e081ce3cd947,
77323            fidl::encoding::DynamicFlags::empty(),
77324        )
77325    }
77326}
77327
77328#[must_use = "FIDL methods require a response to be sent"]
77329#[derive(Debug)]
77330pub struct SynchronousDatagramSocketGetBroadcastResponder {
77331    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
77332    tx_id: u32,
77333}
77334
77335/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
77336/// if the responder is dropped without sending a response, so that the client
77337/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
77338impl std::ops::Drop for SynchronousDatagramSocketGetBroadcastResponder {
77339    fn drop(&mut self) {
77340        self.control_handle.shutdown();
77341        // Safety: drops once, never accessed again
77342        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77343    }
77344}
77345
77346impl fidl::endpoints::Responder for SynchronousDatagramSocketGetBroadcastResponder {
77347    type ControlHandle = SynchronousDatagramSocketControlHandle;
77348
77349    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
77350        &self.control_handle
77351    }
77352
77353    fn drop_without_shutdown(mut self) {
77354        // Safety: drops once, never accessed again due to mem::forget
77355        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77356        // Prevent Drop from running (which would shut down the channel)
77357        std::mem::forget(self);
77358    }
77359}
77360
77361impl SynchronousDatagramSocketGetBroadcastResponder {
77362    /// Sends a response to the FIDL transaction.
77363    ///
77364    /// Sets the channel to shutdown if an error occurs.
77365    pub fn send(
77366        self,
77367        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
77368    ) -> Result<(), fidl::Error> {
77369        let _result = self.send_raw(result);
77370        if _result.is_err() {
77371            self.control_handle.shutdown();
77372        }
77373        self.drop_without_shutdown();
77374        _result
77375    }
77376
77377    /// Similar to "send" but does not shutdown the channel if an error occurs.
77378    pub fn send_no_shutdown_on_err(
77379        self,
77380        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
77381    ) -> Result<(), fidl::Error> {
77382        let _result = self.send_raw(result);
77383        self.drop_without_shutdown();
77384        _result
77385    }
77386
77387    fn send_raw(
77388        &self,
77389        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
77390    ) -> Result<(), fidl::Error> {
77391        self.control_handle.inner.send::<fidl::encoding::ResultType<
77392            BaseSocketGetBroadcastResponse,
77393            fidl_fuchsia_posix::Errno,
77394        >>(
77395            result.map(|value| (value,)),
77396            self.tx_id,
77397            0x68796fc556f9780d,
77398            fidl::encoding::DynamicFlags::empty(),
77399        )
77400    }
77401}
77402
77403#[must_use = "FIDL methods require a response to be sent"]
77404#[derive(Debug)]
77405pub struct SynchronousDatagramSocketSetSendBufferResponder {
77406    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
77407    tx_id: u32,
77408}
77409
77410/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
77411/// if the responder is dropped without sending a response, so that the client
77412/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
77413impl std::ops::Drop for SynchronousDatagramSocketSetSendBufferResponder {
77414    fn drop(&mut self) {
77415        self.control_handle.shutdown();
77416        // Safety: drops once, never accessed again
77417        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77418    }
77419}
77420
77421impl fidl::endpoints::Responder for SynchronousDatagramSocketSetSendBufferResponder {
77422    type ControlHandle = SynchronousDatagramSocketControlHandle;
77423
77424    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
77425        &self.control_handle
77426    }
77427
77428    fn drop_without_shutdown(mut self) {
77429        // Safety: drops once, never accessed again due to mem::forget
77430        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77431        // Prevent Drop from running (which would shut down the channel)
77432        std::mem::forget(self);
77433    }
77434}
77435
77436impl SynchronousDatagramSocketSetSendBufferResponder {
77437    /// Sends a response to the FIDL transaction.
77438    ///
77439    /// Sets the channel to shutdown if an error occurs.
77440    pub fn send(
77441        self,
77442        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77443    ) -> Result<(), fidl::Error> {
77444        let _result = self.send_raw(result);
77445        if _result.is_err() {
77446            self.control_handle.shutdown();
77447        }
77448        self.drop_without_shutdown();
77449        _result
77450    }
77451
77452    /// Similar to "send" but does not shutdown the channel if an error occurs.
77453    pub fn send_no_shutdown_on_err(
77454        self,
77455        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77456    ) -> Result<(), fidl::Error> {
77457        let _result = self.send_raw(result);
77458        self.drop_without_shutdown();
77459        _result
77460    }
77461
77462    fn send_raw(
77463        &self,
77464        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77465    ) -> Result<(), fidl::Error> {
77466        self.control_handle.inner.send::<fidl::encoding::ResultType<
77467            fidl::encoding::EmptyStruct,
77468            fidl_fuchsia_posix::Errno,
77469        >>(
77470            result,
77471            self.tx_id,
77472            0x756eac32d73a7a70,
77473            fidl::encoding::DynamicFlags::empty(),
77474        )
77475    }
77476}
77477
77478#[must_use = "FIDL methods require a response to be sent"]
77479#[derive(Debug)]
77480pub struct SynchronousDatagramSocketGetSendBufferResponder {
77481    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
77482    tx_id: u32,
77483}
77484
77485/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
77486/// if the responder is dropped without sending a response, so that the client
77487/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
77488impl std::ops::Drop for SynchronousDatagramSocketGetSendBufferResponder {
77489    fn drop(&mut self) {
77490        self.control_handle.shutdown();
77491        // Safety: drops once, never accessed again
77492        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77493    }
77494}
77495
77496impl fidl::endpoints::Responder for SynchronousDatagramSocketGetSendBufferResponder {
77497    type ControlHandle = SynchronousDatagramSocketControlHandle;
77498
77499    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
77500        &self.control_handle
77501    }
77502
77503    fn drop_without_shutdown(mut self) {
77504        // Safety: drops once, never accessed again due to mem::forget
77505        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77506        // Prevent Drop from running (which would shut down the channel)
77507        std::mem::forget(self);
77508    }
77509}
77510
77511impl SynchronousDatagramSocketGetSendBufferResponder {
77512    /// Sends a response to the FIDL transaction.
77513    ///
77514    /// Sets the channel to shutdown if an error occurs.
77515    pub fn send(
77516        self,
77517        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
77518    ) -> Result<(), fidl::Error> {
77519        let _result = self.send_raw(result);
77520        if _result.is_err() {
77521            self.control_handle.shutdown();
77522        }
77523        self.drop_without_shutdown();
77524        _result
77525    }
77526
77527    /// Similar to "send" but does not shutdown the channel if an error occurs.
77528    pub fn send_no_shutdown_on_err(
77529        self,
77530        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
77531    ) -> Result<(), fidl::Error> {
77532        let _result = self.send_raw(result);
77533        self.drop_without_shutdown();
77534        _result
77535    }
77536
77537    fn send_raw(
77538        &self,
77539        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
77540    ) -> Result<(), fidl::Error> {
77541        self.control_handle.inner.send::<fidl::encoding::ResultType<
77542            BaseSocketGetSendBufferResponse,
77543            fidl_fuchsia_posix::Errno,
77544        >>(
77545            result.map(|value_bytes| (value_bytes,)),
77546            self.tx_id,
77547            0x78a52fd9c7b2410b,
77548            fidl::encoding::DynamicFlags::empty(),
77549        )
77550    }
77551}
77552
77553#[must_use = "FIDL methods require a response to be sent"]
77554#[derive(Debug)]
77555pub struct SynchronousDatagramSocketSetReceiveBufferResponder {
77556    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
77557    tx_id: u32,
77558}
77559
77560/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
77561/// if the responder is dropped without sending a response, so that the client
77562/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
77563impl std::ops::Drop for SynchronousDatagramSocketSetReceiveBufferResponder {
77564    fn drop(&mut self) {
77565        self.control_handle.shutdown();
77566        // Safety: drops once, never accessed again
77567        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77568    }
77569}
77570
77571impl fidl::endpoints::Responder for SynchronousDatagramSocketSetReceiveBufferResponder {
77572    type ControlHandle = SynchronousDatagramSocketControlHandle;
77573
77574    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
77575        &self.control_handle
77576    }
77577
77578    fn drop_without_shutdown(mut self) {
77579        // Safety: drops once, never accessed again due to mem::forget
77580        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77581        // Prevent Drop from running (which would shut down the channel)
77582        std::mem::forget(self);
77583    }
77584}
77585
77586impl SynchronousDatagramSocketSetReceiveBufferResponder {
77587    /// Sends a response to the FIDL transaction.
77588    ///
77589    /// Sets the channel to shutdown if an error occurs.
77590    pub fn send(
77591        self,
77592        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77593    ) -> Result<(), fidl::Error> {
77594        let _result = self.send_raw(result);
77595        if _result.is_err() {
77596            self.control_handle.shutdown();
77597        }
77598        self.drop_without_shutdown();
77599        _result
77600    }
77601
77602    /// Similar to "send" but does not shutdown the channel if an error occurs.
77603    pub fn send_no_shutdown_on_err(
77604        self,
77605        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77606    ) -> Result<(), fidl::Error> {
77607        let _result = self.send_raw(result);
77608        self.drop_without_shutdown();
77609        _result
77610    }
77611
77612    fn send_raw(
77613        &self,
77614        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77615    ) -> Result<(), fidl::Error> {
77616        self.control_handle.inner.send::<fidl::encoding::ResultType<
77617            fidl::encoding::EmptyStruct,
77618            fidl_fuchsia_posix::Errno,
77619        >>(
77620            result,
77621            self.tx_id,
77622            0x6b0cf2f1919c7001,
77623            fidl::encoding::DynamicFlags::empty(),
77624        )
77625    }
77626}
77627
77628#[must_use = "FIDL methods require a response to be sent"]
77629#[derive(Debug)]
77630pub struct SynchronousDatagramSocketGetReceiveBufferResponder {
77631    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
77632    tx_id: u32,
77633}
77634
77635/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
77636/// if the responder is dropped without sending a response, so that the client
77637/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
77638impl std::ops::Drop for SynchronousDatagramSocketGetReceiveBufferResponder {
77639    fn drop(&mut self) {
77640        self.control_handle.shutdown();
77641        // Safety: drops once, never accessed again
77642        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77643    }
77644}
77645
77646impl fidl::endpoints::Responder for SynchronousDatagramSocketGetReceiveBufferResponder {
77647    type ControlHandle = SynchronousDatagramSocketControlHandle;
77648
77649    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
77650        &self.control_handle
77651    }
77652
77653    fn drop_without_shutdown(mut self) {
77654        // Safety: drops once, never accessed again due to mem::forget
77655        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77656        // Prevent Drop from running (which would shut down the channel)
77657        std::mem::forget(self);
77658    }
77659}
77660
77661impl SynchronousDatagramSocketGetReceiveBufferResponder {
77662    /// Sends a response to the FIDL transaction.
77663    ///
77664    /// Sets the channel to shutdown if an error occurs.
77665    pub fn send(
77666        self,
77667        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
77668    ) -> Result<(), fidl::Error> {
77669        let _result = self.send_raw(result);
77670        if _result.is_err() {
77671            self.control_handle.shutdown();
77672        }
77673        self.drop_without_shutdown();
77674        _result
77675    }
77676
77677    /// Similar to "send" but does not shutdown the channel if an error occurs.
77678    pub fn send_no_shutdown_on_err(
77679        self,
77680        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
77681    ) -> Result<(), fidl::Error> {
77682        let _result = self.send_raw(result);
77683        self.drop_without_shutdown();
77684        _result
77685    }
77686
77687    fn send_raw(
77688        &self,
77689        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
77690    ) -> Result<(), fidl::Error> {
77691        self.control_handle.inner.send::<fidl::encoding::ResultType<
77692            BaseSocketGetReceiveBufferResponse,
77693            fidl_fuchsia_posix::Errno,
77694        >>(
77695            result.map(|value_bytes| (value_bytes,)),
77696            self.tx_id,
77697            0x14c1a4b64f709e5c,
77698            fidl::encoding::DynamicFlags::empty(),
77699        )
77700    }
77701}
77702
77703#[must_use = "FIDL methods require a response to be sent"]
77704#[derive(Debug)]
77705pub struct SynchronousDatagramSocketSetKeepAliveResponder {
77706    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
77707    tx_id: u32,
77708}
77709
77710/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
77711/// if the responder is dropped without sending a response, so that the client
77712/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
77713impl std::ops::Drop for SynchronousDatagramSocketSetKeepAliveResponder {
77714    fn drop(&mut self) {
77715        self.control_handle.shutdown();
77716        // Safety: drops once, never accessed again
77717        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77718    }
77719}
77720
77721impl fidl::endpoints::Responder for SynchronousDatagramSocketSetKeepAliveResponder {
77722    type ControlHandle = SynchronousDatagramSocketControlHandle;
77723
77724    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
77725        &self.control_handle
77726    }
77727
77728    fn drop_without_shutdown(mut self) {
77729        // Safety: drops once, never accessed again due to mem::forget
77730        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77731        // Prevent Drop from running (which would shut down the channel)
77732        std::mem::forget(self);
77733    }
77734}
77735
77736impl SynchronousDatagramSocketSetKeepAliveResponder {
77737    /// Sends a response to the FIDL transaction.
77738    ///
77739    /// Sets the channel to shutdown if an error occurs.
77740    pub fn send(
77741        self,
77742        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77743    ) -> Result<(), fidl::Error> {
77744        let _result = self.send_raw(result);
77745        if _result.is_err() {
77746            self.control_handle.shutdown();
77747        }
77748        self.drop_without_shutdown();
77749        _result
77750    }
77751
77752    /// Similar to "send" but does not shutdown the channel if an error occurs.
77753    pub fn send_no_shutdown_on_err(
77754        self,
77755        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77756    ) -> Result<(), fidl::Error> {
77757        let _result = self.send_raw(result);
77758        self.drop_without_shutdown();
77759        _result
77760    }
77761
77762    fn send_raw(
77763        &self,
77764        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77765    ) -> Result<(), fidl::Error> {
77766        self.control_handle.inner.send::<fidl::encoding::ResultType<
77767            fidl::encoding::EmptyStruct,
77768            fidl_fuchsia_posix::Errno,
77769        >>(
77770            result,
77771            self.tx_id,
77772            0x572df8f0b920d2c7,
77773            fidl::encoding::DynamicFlags::empty(),
77774        )
77775    }
77776}
77777
77778#[must_use = "FIDL methods require a response to be sent"]
77779#[derive(Debug)]
77780pub struct SynchronousDatagramSocketGetKeepAliveResponder {
77781    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
77782    tx_id: u32,
77783}
77784
77785/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
77786/// if the responder is dropped without sending a response, so that the client
77787/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
77788impl std::ops::Drop for SynchronousDatagramSocketGetKeepAliveResponder {
77789    fn drop(&mut self) {
77790        self.control_handle.shutdown();
77791        // Safety: drops once, never accessed again
77792        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77793    }
77794}
77795
77796impl fidl::endpoints::Responder for SynchronousDatagramSocketGetKeepAliveResponder {
77797    type ControlHandle = SynchronousDatagramSocketControlHandle;
77798
77799    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
77800        &self.control_handle
77801    }
77802
77803    fn drop_without_shutdown(mut self) {
77804        // Safety: drops once, never accessed again due to mem::forget
77805        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77806        // Prevent Drop from running (which would shut down the channel)
77807        std::mem::forget(self);
77808    }
77809}
77810
77811impl SynchronousDatagramSocketGetKeepAliveResponder {
77812    /// Sends a response to the FIDL transaction.
77813    ///
77814    /// Sets the channel to shutdown if an error occurs.
77815    pub fn send(
77816        self,
77817        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
77818    ) -> Result<(), fidl::Error> {
77819        let _result = self.send_raw(result);
77820        if _result.is_err() {
77821            self.control_handle.shutdown();
77822        }
77823        self.drop_without_shutdown();
77824        _result
77825    }
77826
77827    /// Similar to "send" but does not shutdown the channel if an error occurs.
77828    pub fn send_no_shutdown_on_err(
77829        self,
77830        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
77831    ) -> Result<(), fidl::Error> {
77832        let _result = self.send_raw(result);
77833        self.drop_without_shutdown();
77834        _result
77835    }
77836
77837    fn send_raw(
77838        &self,
77839        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
77840    ) -> Result<(), fidl::Error> {
77841        self.control_handle.inner.send::<fidl::encoding::ResultType<
77842            BaseSocketGetKeepAliveResponse,
77843            fidl_fuchsia_posix::Errno,
77844        >>(
77845            result.map(|value| (value,)),
77846            self.tx_id,
77847            0x2dd29d3215f2c9d2,
77848            fidl::encoding::DynamicFlags::empty(),
77849        )
77850    }
77851}
77852
77853#[must_use = "FIDL methods require a response to be sent"]
77854#[derive(Debug)]
77855pub struct SynchronousDatagramSocketSetOutOfBandInlineResponder {
77856    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
77857    tx_id: u32,
77858}
77859
77860/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
77861/// if the responder is dropped without sending a response, so that the client
77862/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
77863impl std::ops::Drop for SynchronousDatagramSocketSetOutOfBandInlineResponder {
77864    fn drop(&mut self) {
77865        self.control_handle.shutdown();
77866        // Safety: drops once, never accessed again
77867        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77868    }
77869}
77870
77871impl fidl::endpoints::Responder for SynchronousDatagramSocketSetOutOfBandInlineResponder {
77872    type ControlHandle = SynchronousDatagramSocketControlHandle;
77873
77874    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
77875        &self.control_handle
77876    }
77877
77878    fn drop_without_shutdown(mut self) {
77879        // Safety: drops once, never accessed again due to mem::forget
77880        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77881        // Prevent Drop from running (which would shut down the channel)
77882        std::mem::forget(self);
77883    }
77884}
77885
77886impl SynchronousDatagramSocketSetOutOfBandInlineResponder {
77887    /// Sends a response to the FIDL transaction.
77888    ///
77889    /// Sets the channel to shutdown if an error occurs.
77890    pub fn send(
77891        self,
77892        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77893    ) -> Result<(), fidl::Error> {
77894        let _result = self.send_raw(result);
77895        if _result.is_err() {
77896            self.control_handle.shutdown();
77897        }
77898        self.drop_without_shutdown();
77899        _result
77900    }
77901
77902    /// Similar to "send" but does not shutdown the channel if an error occurs.
77903    pub fn send_no_shutdown_on_err(
77904        self,
77905        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77906    ) -> Result<(), fidl::Error> {
77907        let _result = self.send_raw(result);
77908        self.drop_without_shutdown();
77909        _result
77910    }
77911
77912    fn send_raw(
77913        &self,
77914        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77915    ) -> Result<(), fidl::Error> {
77916        self.control_handle.inner.send::<fidl::encoding::ResultType<
77917            fidl::encoding::EmptyStruct,
77918            fidl_fuchsia_posix::Errno,
77919        >>(
77920            result,
77921            self.tx_id,
77922            0x3ecb49968bee439,
77923            fidl::encoding::DynamicFlags::empty(),
77924        )
77925    }
77926}
77927
77928#[must_use = "FIDL methods require a response to be sent"]
77929#[derive(Debug)]
77930pub struct SynchronousDatagramSocketGetOutOfBandInlineResponder {
77931    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
77932    tx_id: u32,
77933}
77934
77935/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
77936/// if the responder is dropped without sending a response, so that the client
77937/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
77938impl std::ops::Drop for SynchronousDatagramSocketGetOutOfBandInlineResponder {
77939    fn drop(&mut self) {
77940        self.control_handle.shutdown();
77941        // Safety: drops once, never accessed again
77942        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77943    }
77944}
77945
77946impl fidl::endpoints::Responder for SynchronousDatagramSocketGetOutOfBandInlineResponder {
77947    type ControlHandle = SynchronousDatagramSocketControlHandle;
77948
77949    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
77950        &self.control_handle
77951    }
77952
77953    fn drop_without_shutdown(mut self) {
77954        // Safety: drops once, never accessed again due to mem::forget
77955        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77956        // Prevent Drop from running (which would shut down the channel)
77957        std::mem::forget(self);
77958    }
77959}
77960
77961impl SynchronousDatagramSocketGetOutOfBandInlineResponder {
77962    /// Sends a response to the FIDL transaction.
77963    ///
77964    /// Sets the channel to shutdown if an error occurs.
77965    pub fn send(
77966        self,
77967        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
77968    ) -> Result<(), fidl::Error> {
77969        let _result = self.send_raw(result);
77970        if _result.is_err() {
77971            self.control_handle.shutdown();
77972        }
77973        self.drop_without_shutdown();
77974        _result
77975    }
77976
77977    /// Similar to "send" but does not shutdown the channel if an error occurs.
77978    pub fn send_no_shutdown_on_err(
77979        self,
77980        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
77981    ) -> Result<(), fidl::Error> {
77982        let _result = self.send_raw(result);
77983        self.drop_without_shutdown();
77984        _result
77985    }
77986
77987    fn send_raw(
77988        &self,
77989        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
77990    ) -> Result<(), fidl::Error> {
77991        self.control_handle.inner.send::<fidl::encoding::ResultType<
77992            BaseSocketGetOutOfBandInlineResponse,
77993            fidl_fuchsia_posix::Errno,
77994        >>(
77995            result.map(|value| (value,)),
77996            self.tx_id,
77997            0x348c1ab3aeca1745,
77998            fidl::encoding::DynamicFlags::empty(),
77999        )
78000    }
78001}
78002
78003#[must_use = "FIDL methods require a response to be sent"]
78004#[derive(Debug)]
78005pub struct SynchronousDatagramSocketSetNoCheckResponder {
78006    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78007    tx_id: u32,
78008}
78009
78010/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78011/// if the responder is dropped without sending a response, so that the client
78012/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78013impl std::ops::Drop for SynchronousDatagramSocketSetNoCheckResponder {
78014    fn drop(&mut self) {
78015        self.control_handle.shutdown();
78016        // Safety: drops once, never accessed again
78017        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78018    }
78019}
78020
78021impl fidl::endpoints::Responder for SynchronousDatagramSocketSetNoCheckResponder {
78022    type ControlHandle = SynchronousDatagramSocketControlHandle;
78023
78024    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78025        &self.control_handle
78026    }
78027
78028    fn drop_without_shutdown(mut self) {
78029        // Safety: drops once, never accessed again due to mem::forget
78030        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78031        // Prevent Drop from running (which would shut down the channel)
78032        std::mem::forget(self);
78033    }
78034}
78035
78036impl SynchronousDatagramSocketSetNoCheckResponder {
78037    /// Sends a response to the FIDL transaction.
78038    ///
78039    /// Sets the channel to shutdown if an error occurs.
78040    pub fn send(
78041        self,
78042        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78043    ) -> Result<(), fidl::Error> {
78044        let _result = self.send_raw(result);
78045        if _result.is_err() {
78046            self.control_handle.shutdown();
78047        }
78048        self.drop_without_shutdown();
78049        _result
78050    }
78051
78052    /// Similar to "send" but does not shutdown the channel if an error occurs.
78053    pub fn send_no_shutdown_on_err(
78054        self,
78055        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78056    ) -> Result<(), fidl::Error> {
78057        let _result = self.send_raw(result);
78058        self.drop_without_shutdown();
78059        _result
78060    }
78061
78062    fn send_raw(
78063        &self,
78064        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78065    ) -> Result<(), fidl::Error> {
78066        self.control_handle.inner.send::<fidl::encoding::ResultType<
78067            fidl::encoding::EmptyStruct,
78068            fidl_fuchsia_posix::Errno,
78069        >>(
78070            result,
78071            self.tx_id,
78072            0x6bbf00c53a4c78c2,
78073            fidl::encoding::DynamicFlags::empty(),
78074        )
78075    }
78076}
78077
78078#[must_use = "FIDL methods require a response to be sent"]
78079#[derive(Debug)]
78080pub struct SynchronousDatagramSocketGetNoCheckResponder {
78081    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78082    tx_id: u32,
78083}
78084
78085/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78086/// if the responder is dropped without sending a response, so that the client
78087/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78088impl std::ops::Drop for SynchronousDatagramSocketGetNoCheckResponder {
78089    fn drop(&mut self) {
78090        self.control_handle.shutdown();
78091        // Safety: drops once, never accessed again
78092        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78093    }
78094}
78095
78096impl fidl::endpoints::Responder for SynchronousDatagramSocketGetNoCheckResponder {
78097    type ControlHandle = SynchronousDatagramSocketControlHandle;
78098
78099    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78100        &self.control_handle
78101    }
78102
78103    fn drop_without_shutdown(mut self) {
78104        // Safety: drops once, never accessed again due to mem::forget
78105        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78106        // Prevent Drop from running (which would shut down the channel)
78107        std::mem::forget(self);
78108    }
78109}
78110
78111impl SynchronousDatagramSocketGetNoCheckResponder {
78112    /// Sends a response to the FIDL transaction.
78113    ///
78114    /// Sets the channel to shutdown if an error occurs.
78115    pub fn send(
78116        self,
78117        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
78118    ) -> Result<(), fidl::Error> {
78119        let _result = self.send_raw(result);
78120        if _result.is_err() {
78121            self.control_handle.shutdown();
78122        }
78123        self.drop_without_shutdown();
78124        _result
78125    }
78126
78127    /// Similar to "send" but does not shutdown the channel if an error occurs.
78128    pub fn send_no_shutdown_on_err(
78129        self,
78130        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
78131    ) -> Result<(), fidl::Error> {
78132        let _result = self.send_raw(result);
78133        self.drop_without_shutdown();
78134        _result
78135    }
78136
78137    fn send_raw(
78138        &self,
78139        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
78140    ) -> Result<(), fidl::Error> {
78141        self.control_handle.inner.send::<fidl::encoding::ResultType<
78142            BaseSocketGetNoCheckResponse,
78143            fidl_fuchsia_posix::Errno,
78144        >>(
78145            result.map(|value| (value,)),
78146            self.tx_id,
78147            0x2cd4249286417694,
78148            fidl::encoding::DynamicFlags::empty(),
78149        )
78150    }
78151}
78152
78153#[must_use = "FIDL methods require a response to be sent"]
78154#[derive(Debug)]
78155pub struct SynchronousDatagramSocketSetLingerResponder {
78156    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78157    tx_id: u32,
78158}
78159
78160/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78161/// if the responder is dropped without sending a response, so that the client
78162/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78163impl std::ops::Drop for SynchronousDatagramSocketSetLingerResponder {
78164    fn drop(&mut self) {
78165        self.control_handle.shutdown();
78166        // Safety: drops once, never accessed again
78167        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78168    }
78169}
78170
78171impl fidl::endpoints::Responder for SynchronousDatagramSocketSetLingerResponder {
78172    type ControlHandle = SynchronousDatagramSocketControlHandle;
78173
78174    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78175        &self.control_handle
78176    }
78177
78178    fn drop_without_shutdown(mut self) {
78179        // Safety: drops once, never accessed again due to mem::forget
78180        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78181        // Prevent Drop from running (which would shut down the channel)
78182        std::mem::forget(self);
78183    }
78184}
78185
78186impl SynchronousDatagramSocketSetLingerResponder {
78187    /// Sends a response to the FIDL transaction.
78188    ///
78189    /// Sets the channel to shutdown if an error occurs.
78190    pub fn send(
78191        self,
78192        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78193    ) -> Result<(), fidl::Error> {
78194        let _result = self.send_raw(result);
78195        if _result.is_err() {
78196            self.control_handle.shutdown();
78197        }
78198        self.drop_without_shutdown();
78199        _result
78200    }
78201
78202    /// Similar to "send" but does not shutdown the channel if an error occurs.
78203    pub fn send_no_shutdown_on_err(
78204        self,
78205        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78206    ) -> Result<(), fidl::Error> {
78207        let _result = self.send_raw(result);
78208        self.drop_without_shutdown();
78209        _result
78210    }
78211
78212    fn send_raw(
78213        &self,
78214        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78215    ) -> Result<(), fidl::Error> {
78216        self.control_handle.inner.send::<fidl::encoding::ResultType<
78217            fidl::encoding::EmptyStruct,
78218            fidl_fuchsia_posix::Errno,
78219        >>(
78220            result,
78221            self.tx_id,
78222            0x45386351246e998e,
78223            fidl::encoding::DynamicFlags::empty(),
78224        )
78225    }
78226}
78227
78228#[must_use = "FIDL methods require a response to be sent"]
78229#[derive(Debug)]
78230pub struct SynchronousDatagramSocketGetLingerResponder {
78231    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78232    tx_id: u32,
78233}
78234
78235/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78236/// if the responder is dropped without sending a response, so that the client
78237/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78238impl std::ops::Drop for SynchronousDatagramSocketGetLingerResponder {
78239    fn drop(&mut self) {
78240        self.control_handle.shutdown();
78241        // Safety: drops once, never accessed again
78242        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78243    }
78244}
78245
78246impl fidl::endpoints::Responder for SynchronousDatagramSocketGetLingerResponder {
78247    type ControlHandle = SynchronousDatagramSocketControlHandle;
78248
78249    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78250        &self.control_handle
78251    }
78252
78253    fn drop_without_shutdown(mut self) {
78254        // Safety: drops once, never accessed again due to mem::forget
78255        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78256        // Prevent Drop from running (which would shut down the channel)
78257        std::mem::forget(self);
78258    }
78259}
78260
78261impl SynchronousDatagramSocketGetLingerResponder {
78262    /// Sends a response to the FIDL transaction.
78263    ///
78264    /// Sets the channel to shutdown if an error occurs.
78265    pub fn send(
78266        self,
78267        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
78268    ) -> Result<(), fidl::Error> {
78269        let _result = self.send_raw(result);
78270        if _result.is_err() {
78271            self.control_handle.shutdown();
78272        }
78273        self.drop_without_shutdown();
78274        _result
78275    }
78276
78277    /// Similar to "send" but does not shutdown the channel if an error occurs.
78278    pub fn send_no_shutdown_on_err(
78279        self,
78280        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
78281    ) -> Result<(), fidl::Error> {
78282        let _result = self.send_raw(result);
78283        self.drop_without_shutdown();
78284        _result
78285    }
78286
78287    fn send_raw(
78288        &self,
78289        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
78290    ) -> Result<(), fidl::Error> {
78291        self.control_handle.inner.send::<fidl::encoding::ResultType<
78292            BaseSocketGetLingerResponse,
78293            fidl_fuchsia_posix::Errno,
78294        >>(
78295            result,
78296            self.tx_id,
78297            0x48eb20fc5ccb0e45,
78298            fidl::encoding::DynamicFlags::empty(),
78299        )
78300    }
78301}
78302
78303#[must_use = "FIDL methods require a response to be sent"]
78304#[derive(Debug)]
78305pub struct SynchronousDatagramSocketSetReusePortResponder {
78306    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78307    tx_id: u32,
78308}
78309
78310/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78311/// if the responder is dropped without sending a response, so that the client
78312/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78313impl std::ops::Drop for SynchronousDatagramSocketSetReusePortResponder {
78314    fn drop(&mut self) {
78315        self.control_handle.shutdown();
78316        // Safety: drops once, never accessed again
78317        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78318    }
78319}
78320
78321impl fidl::endpoints::Responder for SynchronousDatagramSocketSetReusePortResponder {
78322    type ControlHandle = SynchronousDatagramSocketControlHandle;
78323
78324    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78325        &self.control_handle
78326    }
78327
78328    fn drop_without_shutdown(mut self) {
78329        // Safety: drops once, never accessed again due to mem::forget
78330        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78331        // Prevent Drop from running (which would shut down the channel)
78332        std::mem::forget(self);
78333    }
78334}
78335
78336impl SynchronousDatagramSocketSetReusePortResponder {
78337    /// Sends a response to the FIDL transaction.
78338    ///
78339    /// Sets the channel to shutdown if an error occurs.
78340    pub fn send(
78341        self,
78342        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78343    ) -> Result<(), fidl::Error> {
78344        let _result = self.send_raw(result);
78345        if _result.is_err() {
78346            self.control_handle.shutdown();
78347        }
78348        self.drop_without_shutdown();
78349        _result
78350    }
78351
78352    /// Similar to "send" but does not shutdown the channel if an error occurs.
78353    pub fn send_no_shutdown_on_err(
78354        self,
78355        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78356    ) -> Result<(), fidl::Error> {
78357        let _result = self.send_raw(result);
78358        self.drop_without_shutdown();
78359        _result
78360    }
78361
78362    fn send_raw(
78363        &self,
78364        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78365    ) -> Result<(), fidl::Error> {
78366        self.control_handle.inner.send::<fidl::encoding::ResultType<
78367            fidl::encoding::EmptyStruct,
78368            fidl_fuchsia_posix::Errno,
78369        >>(
78370            result,
78371            self.tx_id,
78372            0x24dd3e5cb36d9ccb,
78373            fidl::encoding::DynamicFlags::empty(),
78374        )
78375    }
78376}
78377
78378#[must_use = "FIDL methods require a response to be sent"]
78379#[derive(Debug)]
78380pub struct SynchronousDatagramSocketGetReusePortResponder {
78381    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78382    tx_id: u32,
78383}
78384
78385/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78386/// if the responder is dropped without sending a response, so that the client
78387/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78388impl std::ops::Drop for SynchronousDatagramSocketGetReusePortResponder {
78389    fn drop(&mut self) {
78390        self.control_handle.shutdown();
78391        // Safety: drops once, never accessed again
78392        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78393    }
78394}
78395
78396impl fidl::endpoints::Responder for SynchronousDatagramSocketGetReusePortResponder {
78397    type ControlHandle = SynchronousDatagramSocketControlHandle;
78398
78399    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78400        &self.control_handle
78401    }
78402
78403    fn drop_without_shutdown(mut self) {
78404        // Safety: drops once, never accessed again due to mem::forget
78405        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78406        // Prevent Drop from running (which would shut down the channel)
78407        std::mem::forget(self);
78408    }
78409}
78410
78411impl SynchronousDatagramSocketGetReusePortResponder {
78412    /// Sends a response to the FIDL transaction.
78413    ///
78414    /// Sets the channel to shutdown if an error occurs.
78415    pub fn send(
78416        self,
78417        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
78418    ) -> Result<(), fidl::Error> {
78419        let _result = self.send_raw(result);
78420        if _result.is_err() {
78421            self.control_handle.shutdown();
78422        }
78423        self.drop_without_shutdown();
78424        _result
78425    }
78426
78427    /// Similar to "send" but does not shutdown the channel if an error occurs.
78428    pub fn send_no_shutdown_on_err(
78429        self,
78430        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
78431    ) -> Result<(), fidl::Error> {
78432        let _result = self.send_raw(result);
78433        self.drop_without_shutdown();
78434        _result
78435    }
78436
78437    fn send_raw(
78438        &self,
78439        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
78440    ) -> Result<(), fidl::Error> {
78441        self.control_handle.inner.send::<fidl::encoding::ResultType<
78442            BaseSocketGetReusePortResponse,
78443            fidl_fuchsia_posix::Errno,
78444        >>(
78445            result.map(|value| (value,)),
78446            self.tx_id,
78447            0x7a112c1ab54ff828,
78448            fidl::encoding::DynamicFlags::empty(),
78449        )
78450    }
78451}
78452
78453#[must_use = "FIDL methods require a response to be sent"]
78454#[derive(Debug)]
78455pub struct SynchronousDatagramSocketGetAcceptConnResponder {
78456    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78457    tx_id: u32,
78458}
78459
78460/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78461/// if the responder is dropped without sending a response, so that the client
78462/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78463impl std::ops::Drop for SynchronousDatagramSocketGetAcceptConnResponder {
78464    fn drop(&mut self) {
78465        self.control_handle.shutdown();
78466        // Safety: drops once, never accessed again
78467        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78468    }
78469}
78470
78471impl fidl::endpoints::Responder for SynchronousDatagramSocketGetAcceptConnResponder {
78472    type ControlHandle = SynchronousDatagramSocketControlHandle;
78473
78474    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78475        &self.control_handle
78476    }
78477
78478    fn drop_without_shutdown(mut self) {
78479        // Safety: drops once, never accessed again due to mem::forget
78480        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78481        // Prevent Drop from running (which would shut down the channel)
78482        std::mem::forget(self);
78483    }
78484}
78485
78486impl SynchronousDatagramSocketGetAcceptConnResponder {
78487    /// Sends a response to the FIDL transaction.
78488    ///
78489    /// Sets the channel to shutdown if an error occurs.
78490    pub fn send(
78491        self,
78492        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
78493    ) -> Result<(), fidl::Error> {
78494        let _result = self.send_raw(result);
78495        if _result.is_err() {
78496            self.control_handle.shutdown();
78497        }
78498        self.drop_without_shutdown();
78499        _result
78500    }
78501
78502    /// Similar to "send" but does not shutdown the channel if an error occurs.
78503    pub fn send_no_shutdown_on_err(
78504        self,
78505        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
78506    ) -> Result<(), fidl::Error> {
78507        let _result = self.send_raw(result);
78508        self.drop_without_shutdown();
78509        _result
78510    }
78511
78512    fn send_raw(
78513        &self,
78514        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
78515    ) -> Result<(), fidl::Error> {
78516        self.control_handle.inner.send::<fidl::encoding::ResultType<
78517            BaseSocketGetAcceptConnResponse,
78518            fidl_fuchsia_posix::Errno,
78519        >>(
78520            result.map(|value| (value,)),
78521            self.tx_id,
78522            0x67ce6db6c2ec8966,
78523            fidl::encoding::DynamicFlags::empty(),
78524        )
78525    }
78526}
78527
78528#[must_use = "FIDL methods require a response to be sent"]
78529#[derive(Debug)]
78530pub struct SynchronousDatagramSocketSetBindToDeviceResponder {
78531    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78532    tx_id: u32,
78533}
78534
78535/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78536/// if the responder is dropped without sending a response, so that the client
78537/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78538impl std::ops::Drop for SynchronousDatagramSocketSetBindToDeviceResponder {
78539    fn drop(&mut self) {
78540        self.control_handle.shutdown();
78541        // Safety: drops once, never accessed again
78542        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78543    }
78544}
78545
78546impl fidl::endpoints::Responder for SynchronousDatagramSocketSetBindToDeviceResponder {
78547    type ControlHandle = SynchronousDatagramSocketControlHandle;
78548
78549    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78550        &self.control_handle
78551    }
78552
78553    fn drop_without_shutdown(mut self) {
78554        // Safety: drops once, never accessed again due to mem::forget
78555        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78556        // Prevent Drop from running (which would shut down the channel)
78557        std::mem::forget(self);
78558    }
78559}
78560
78561impl SynchronousDatagramSocketSetBindToDeviceResponder {
78562    /// Sends a response to the FIDL transaction.
78563    ///
78564    /// Sets the channel to shutdown if an error occurs.
78565    pub fn send(
78566        self,
78567        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78568    ) -> Result<(), fidl::Error> {
78569        let _result = self.send_raw(result);
78570        if _result.is_err() {
78571            self.control_handle.shutdown();
78572        }
78573        self.drop_without_shutdown();
78574        _result
78575    }
78576
78577    /// Similar to "send" but does not shutdown the channel if an error occurs.
78578    pub fn send_no_shutdown_on_err(
78579        self,
78580        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78581    ) -> Result<(), fidl::Error> {
78582        let _result = self.send_raw(result);
78583        self.drop_without_shutdown();
78584        _result
78585    }
78586
78587    fn send_raw(
78588        &self,
78589        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78590    ) -> Result<(), fidl::Error> {
78591        self.control_handle.inner.send::<fidl::encoding::ResultType<
78592            fidl::encoding::EmptyStruct,
78593            fidl_fuchsia_posix::Errno,
78594        >>(
78595            result,
78596            self.tx_id,
78597            0x2118b483f28aafc4,
78598            fidl::encoding::DynamicFlags::empty(),
78599        )
78600    }
78601}
78602
78603#[must_use = "FIDL methods require a response to be sent"]
78604#[derive(Debug)]
78605pub struct SynchronousDatagramSocketGetBindToDeviceResponder {
78606    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78607    tx_id: u32,
78608}
78609
78610/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78611/// if the responder is dropped without sending a response, so that the client
78612/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78613impl std::ops::Drop for SynchronousDatagramSocketGetBindToDeviceResponder {
78614    fn drop(&mut self) {
78615        self.control_handle.shutdown();
78616        // Safety: drops once, never accessed again
78617        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78618    }
78619}
78620
78621impl fidl::endpoints::Responder for SynchronousDatagramSocketGetBindToDeviceResponder {
78622    type ControlHandle = SynchronousDatagramSocketControlHandle;
78623
78624    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78625        &self.control_handle
78626    }
78627
78628    fn drop_without_shutdown(mut self) {
78629        // Safety: drops once, never accessed again due to mem::forget
78630        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78631        // Prevent Drop from running (which would shut down the channel)
78632        std::mem::forget(self);
78633    }
78634}
78635
78636impl SynchronousDatagramSocketGetBindToDeviceResponder {
78637    /// Sends a response to the FIDL transaction.
78638    ///
78639    /// Sets the channel to shutdown if an error occurs.
78640    pub fn send(
78641        self,
78642        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
78643    ) -> Result<(), fidl::Error> {
78644        let _result = self.send_raw(result);
78645        if _result.is_err() {
78646            self.control_handle.shutdown();
78647        }
78648        self.drop_without_shutdown();
78649        _result
78650    }
78651
78652    /// Similar to "send" but does not shutdown the channel if an error occurs.
78653    pub fn send_no_shutdown_on_err(
78654        self,
78655        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
78656    ) -> Result<(), fidl::Error> {
78657        let _result = self.send_raw(result);
78658        self.drop_without_shutdown();
78659        _result
78660    }
78661
78662    fn send_raw(
78663        &self,
78664        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
78665    ) -> Result<(), fidl::Error> {
78666        self.control_handle.inner.send::<fidl::encoding::ResultType<
78667            BaseSocketGetBindToDeviceResponse,
78668            fidl_fuchsia_posix::Errno,
78669        >>(
78670            result.map(|value| (value,)),
78671            self.tx_id,
78672            0x1ab1fbf0ef7906c8,
78673            fidl::encoding::DynamicFlags::empty(),
78674        )
78675    }
78676}
78677
78678#[must_use = "FIDL methods require a response to be sent"]
78679#[derive(Debug)]
78680pub struct SynchronousDatagramSocketSetBindToInterfaceIndexResponder {
78681    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78682    tx_id: u32,
78683}
78684
78685/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78686/// if the responder is dropped without sending a response, so that the client
78687/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78688impl std::ops::Drop for SynchronousDatagramSocketSetBindToInterfaceIndexResponder {
78689    fn drop(&mut self) {
78690        self.control_handle.shutdown();
78691        // Safety: drops once, never accessed again
78692        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78693    }
78694}
78695
78696impl fidl::endpoints::Responder for SynchronousDatagramSocketSetBindToInterfaceIndexResponder {
78697    type ControlHandle = SynchronousDatagramSocketControlHandle;
78698
78699    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78700        &self.control_handle
78701    }
78702
78703    fn drop_without_shutdown(mut self) {
78704        // Safety: drops once, never accessed again due to mem::forget
78705        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78706        // Prevent Drop from running (which would shut down the channel)
78707        std::mem::forget(self);
78708    }
78709}
78710
78711impl SynchronousDatagramSocketSetBindToInterfaceIndexResponder {
78712    /// Sends a response to the FIDL transaction.
78713    ///
78714    /// Sets the channel to shutdown if an error occurs.
78715    pub fn send(
78716        self,
78717        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78718    ) -> Result<(), fidl::Error> {
78719        let _result = self.send_raw(result);
78720        if _result.is_err() {
78721            self.control_handle.shutdown();
78722        }
78723        self.drop_without_shutdown();
78724        _result
78725    }
78726
78727    /// Similar to "send" but does not shutdown the channel if an error occurs.
78728    pub fn send_no_shutdown_on_err(
78729        self,
78730        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78731    ) -> Result<(), fidl::Error> {
78732        let _result = self.send_raw(result);
78733        self.drop_without_shutdown();
78734        _result
78735    }
78736
78737    fn send_raw(
78738        &self,
78739        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78740    ) -> Result<(), fidl::Error> {
78741        self.control_handle.inner.send::<fidl::encoding::ResultType<
78742            fidl::encoding::EmptyStruct,
78743            fidl_fuchsia_posix::Errno,
78744        >>(
78745            result,
78746            self.tx_id,
78747            0x6e387a0def00821,
78748            fidl::encoding::DynamicFlags::empty(),
78749        )
78750    }
78751}
78752
78753#[must_use = "FIDL methods require a response to be sent"]
78754#[derive(Debug)]
78755pub struct SynchronousDatagramSocketGetBindToInterfaceIndexResponder {
78756    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78757    tx_id: u32,
78758}
78759
78760/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78761/// if the responder is dropped without sending a response, so that the client
78762/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78763impl std::ops::Drop for SynchronousDatagramSocketGetBindToInterfaceIndexResponder {
78764    fn drop(&mut self) {
78765        self.control_handle.shutdown();
78766        // Safety: drops once, never accessed again
78767        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78768    }
78769}
78770
78771impl fidl::endpoints::Responder for SynchronousDatagramSocketGetBindToInterfaceIndexResponder {
78772    type ControlHandle = SynchronousDatagramSocketControlHandle;
78773
78774    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78775        &self.control_handle
78776    }
78777
78778    fn drop_without_shutdown(mut self) {
78779        // Safety: drops once, never accessed again due to mem::forget
78780        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78781        // Prevent Drop from running (which would shut down the channel)
78782        std::mem::forget(self);
78783    }
78784}
78785
78786impl SynchronousDatagramSocketGetBindToInterfaceIndexResponder {
78787    /// Sends a response to the FIDL transaction.
78788    ///
78789    /// Sets the channel to shutdown if an error occurs.
78790    pub fn send(
78791        self,
78792        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
78793    ) -> Result<(), fidl::Error> {
78794        let _result = self.send_raw(result);
78795        if _result.is_err() {
78796            self.control_handle.shutdown();
78797        }
78798        self.drop_without_shutdown();
78799        _result
78800    }
78801
78802    /// Similar to "send" but does not shutdown the channel if an error occurs.
78803    pub fn send_no_shutdown_on_err(
78804        self,
78805        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
78806    ) -> Result<(), fidl::Error> {
78807        let _result = self.send_raw(result);
78808        self.drop_without_shutdown();
78809        _result
78810    }
78811
78812    fn send_raw(
78813        &self,
78814        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
78815    ) -> Result<(), fidl::Error> {
78816        self.control_handle.inner.send::<fidl::encoding::ResultType<
78817            BaseSocketGetBindToInterfaceIndexResponse,
78818            fidl_fuchsia_posix::Errno,
78819        >>(
78820            result.map(|value| (value,)),
78821            self.tx_id,
78822            0x59c31dd3e3078295,
78823            fidl::encoding::DynamicFlags::empty(),
78824        )
78825    }
78826}
78827
78828#[must_use = "FIDL methods require a response to be sent"]
78829#[derive(Debug)]
78830pub struct SynchronousDatagramSocketSetTimestampResponder {
78831    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78832    tx_id: u32,
78833}
78834
78835/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78836/// if the responder is dropped without sending a response, so that the client
78837/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78838impl std::ops::Drop for SynchronousDatagramSocketSetTimestampResponder {
78839    fn drop(&mut self) {
78840        self.control_handle.shutdown();
78841        // Safety: drops once, never accessed again
78842        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78843    }
78844}
78845
78846impl fidl::endpoints::Responder for SynchronousDatagramSocketSetTimestampResponder {
78847    type ControlHandle = SynchronousDatagramSocketControlHandle;
78848
78849    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78850        &self.control_handle
78851    }
78852
78853    fn drop_without_shutdown(mut self) {
78854        // Safety: drops once, never accessed again due to mem::forget
78855        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78856        // Prevent Drop from running (which would shut down the channel)
78857        std::mem::forget(self);
78858    }
78859}
78860
78861impl SynchronousDatagramSocketSetTimestampResponder {
78862    /// Sends a response to the FIDL transaction.
78863    ///
78864    /// Sets the channel to shutdown if an error occurs.
78865    pub fn send(
78866        self,
78867        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78868    ) -> Result<(), fidl::Error> {
78869        let _result = self.send_raw(result);
78870        if _result.is_err() {
78871            self.control_handle.shutdown();
78872        }
78873        self.drop_without_shutdown();
78874        _result
78875    }
78876
78877    /// Similar to "send" but does not shutdown the channel if an error occurs.
78878    pub fn send_no_shutdown_on_err(
78879        self,
78880        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78881    ) -> Result<(), fidl::Error> {
78882        let _result = self.send_raw(result);
78883        self.drop_without_shutdown();
78884        _result
78885    }
78886
78887    fn send_raw(
78888        &self,
78889        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78890    ) -> Result<(), fidl::Error> {
78891        self.control_handle.inner.send::<fidl::encoding::ResultType<
78892            fidl::encoding::EmptyStruct,
78893            fidl_fuchsia_posix::Errno,
78894        >>(
78895            result,
78896            self.tx_id,
78897            0x285d6516c263d839,
78898            fidl::encoding::DynamicFlags::empty(),
78899        )
78900    }
78901}
78902
78903#[must_use = "FIDL methods require a response to be sent"]
78904#[derive(Debug)]
78905pub struct SynchronousDatagramSocketGetTimestampResponder {
78906    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78907    tx_id: u32,
78908}
78909
78910/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78911/// if the responder is dropped without sending a response, so that the client
78912/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78913impl std::ops::Drop for SynchronousDatagramSocketGetTimestampResponder {
78914    fn drop(&mut self) {
78915        self.control_handle.shutdown();
78916        // Safety: drops once, never accessed again
78917        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78918    }
78919}
78920
78921impl fidl::endpoints::Responder for SynchronousDatagramSocketGetTimestampResponder {
78922    type ControlHandle = SynchronousDatagramSocketControlHandle;
78923
78924    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78925        &self.control_handle
78926    }
78927
78928    fn drop_without_shutdown(mut self) {
78929        // Safety: drops once, never accessed again due to mem::forget
78930        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78931        // Prevent Drop from running (which would shut down the channel)
78932        std::mem::forget(self);
78933    }
78934}
78935
78936impl SynchronousDatagramSocketGetTimestampResponder {
78937    /// Sends a response to the FIDL transaction.
78938    ///
78939    /// Sets the channel to shutdown if an error occurs.
78940    pub fn send(
78941        self,
78942        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
78943    ) -> Result<(), fidl::Error> {
78944        let _result = self.send_raw(result);
78945        if _result.is_err() {
78946            self.control_handle.shutdown();
78947        }
78948        self.drop_without_shutdown();
78949        _result
78950    }
78951
78952    /// Similar to "send" but does not shutdown the channel if an error occurs.
78953    pub fn send_no_shutdown_on_err(
78954        self,
78955        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
78956    ) -> Result<(), fidl::Error> {
78957        let _result = self.send_raw(result);
78958        self.drop_without_shutdown();
78959        _result
78960    }
78961
78962    fn send_raw(
78963        &self,
78964        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
78965    ) -> Result<(), fidl::Error> {
78966        self.control_handle.inner.send::<fidl::encoding::ResultType<
78967            BaseSocketGetTimestampResponse,
78968            fidl_fuchsia_posix::Errno,
78969        >>(
78970            result.map(|value| (value,)),
78971            self.tx_id,
78972            0x49f2fffbbcc2bd27,
78973            fidl::encoding::DynamicFlags::empty(),
78974        )
78975    }
78976}
78977
78978#[must_use = "FIDL methods require a response to be sent"]
78979#[derive(Debug)]
78980pub struct SynchronousDatagramSocketSetMarkResponder {
78981    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78982    tx_id: u32,
78983}
78984
78985/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78986/// if the responder is dropped without sending a response, so that the client
78987/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78988impl std::ops::Drop for SynchronousDatagramSocketSetMarkResponder {
78989    fn drop(&mut self) {
78990        self.control_handle.shutdown();
78991        // Safety: drops once, never accessed again
78992        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78993    }
78994}
78995
78996impl fidl::endpoints::Responder for SynchronousDatagramSocketSetMarkResponder {
78997    type ControlHandle = SynchronousDatagramSocketControlHandle;
78998
78999    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79000        &self.control_handle
79001    }
79002
79003    fn drop_without_shutdown(mut self) {
79004        // Safety: drops once, never accessed again due to mem::forget
79005        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79006        // Prevent Drop from running (which would shut down the channel)
79007        std::mem::forget(self);
79008    }
79009}
79010
79011impl SynchronousDatagramSocketSetMarkResponder {
79012    /// Sends a response to the FIDL transaction.
79013    ///
79014    /// Sets the channel to shutdown if an error occurs.
79015    pub fn send(
79016        self,
79017        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79018    ) -> Result<(), fidl::Error> {
79019        let _result = self.send_raw(result);
79020        if _result.is_err() {
79021            self.control_handle.shutdown();
79022        }
79023        self.drop_without_shutdown();
79024        _result
79025    }
79026
79027    /// Similar to "send" but does not shutdown the channel if an error occurs.
79028    pub fn send_no_shutdown_on_err(
79029        self,
79030        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79031    ) -> Result<(), fidl::Error> {
79032        let _result = self.send_raw(result);
79033        self.drop_without_shutdown();
79034        _result
79035    }
79036
79037    fn send_raw(
79038        &self,
79039        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79040    ) -> Result<(), fidl::Error> {
79041        self.control_handle.inner.send::<fidl::encoding::ResultType<
79042            fidl::encoding::EmptyStruct,
79043            fidl_fuchsia_posix::Errno,
79044        >>(
79045            result,
79046            self.tx_id,
79047            0x6ead6de09f653236,
79048            fidl::encoding::DynamicFlags::empty(),
79049        )
79050    }
79051}
79052
79053#[must_use = "FIDL methods require a response to be sent"]
79054#[derive(Debug)]
79055pub struct SynchronousDatagramSocketGetMarkResponder {
79056    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79057    tx_id: u32,
79058}
79059
79060/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79061/// if the responder is dropped without sending a response, so that the client
79062/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79063impl std::ops::Drop for SynchronousDatagramSocketGetMarkResponder {
79064    fn drop(&mut self) {
79065        self.control_handle.shutdown();
79066        // Safety: drops once, never accessed again
79067        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79068    }
79069}
79070
79071impl fidl::endpoints::Responder for SynchronousDatagramSocketGetMarkResponder {
79072    type ControlHandle = SynchronousDatagramSocketControlHandle;
79073
79074    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79075        &self.control_handle
79076    }
79077
79078    fn drop_without_shutdown(mut self) {
79079        // Safety: drops once, never accessed again due to mem::forget
79080        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79081        // Prevent Drop from running (which would shut down the channel)
79082        std::mem::forget(self);
79083    }
79084}
79085
79086impl SynchronousDatagramSocketGetMarkResponder {
79087    /// Sends a response to the FIDL transaction.
79088    ///
79089    /// Sets the channel to shutdown if an error occurs.
79090    pub fn send(
79091        self,
79092        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
79093    ) -> Result<(), fidl::Error> {
79094        let _result = self.send_raw(result);
79095        if _result.is_err() {
79096            self.control_handle.shutdown();
79097        }
79098        self.drop_without_shutdown();
79099        _result
79100    }
79101
79102    /// Similar to "send" but does not shutdown the channel if an error occurs.
79103    pub fn send_no_shutdown_on_err(
79104        self,
79105        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
79106    ) -> Result<(), fidl::Error> {
79107        let _result = self.send_raw(result);
79108        self.drop_without_shutdown();
79109        _result
79110    }
79111
79112    fn send_raw(
79113        &self,
79114        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
79115    ) -> Result<(), fidl::Error> {
79116        self.control_handle.inner.send::<fidl::encoding::ResultType<
79117            BaseSocketGetMarkResponse,
79118            fidl_fuchsia_posix::Errno,
79119        >>(
79120            result.map(|mark| (mark,)),
79121            self.tx_id,
79122            0x57a2752c61d93d47,
79123            fidl::encoding::DynamicFlags::empty(),
79124        )
79125    }
79126}
79127
79128#[must_use = "FIDL methods require a response to be sent"]
79129#[derive(Debug)]
79130pub struct SynchronousDatagramSocketGetCookieResponder {
79131    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79132    tx_id: u32,
79133}
79134
79135/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79136/// if the responder is dropped without sending a response, so that the client
79137/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79138impl std::ops::Drop for SynchronousDatagramSocketGetCookieResponder {
79139    fn drop(&mut self) {
79140        self.control_handle.shutdown();
79141        // Safety: drops once, never accessed again
79142        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79143    }
79144}
79145
79146impl fidl::endpoints::Responder for SynchronousDatagramSocketGetCookieResponder {
79147    type ControlHandle = SynchronousDatagramSocketControlHandle;
79148
79149    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79150        &self.control_handle
79151    }
79152
79153    fn drop_without_shutdown(mut self) {
79154        // Safety: drops once, never accessed again due to mem::forget
79155        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79156        // Prevent Drop from running (which would shut down the channel)
79157        std::mem::forget(self);
79158    }
79159}
79160
79161impl SynchronousDatagramSocketGetCookieResponder {
79162    /// Sends a response to the FIDL transaction.
79163    ///
79164    /// Sets the channel to shutdown if an error occurs.
79165    pub fn send(
79166        self,
79167        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
79168    ) -> Result<(), fidl::Error> {
79169        let _result = self.send_raw(result);
79170        if _result.is_err() {
79171            self.control_handle.shutdown();
79172        }
79173        self.drop_without_shutdown();
79174        _result
79175    }
79176
79177    /// Similar to "send" but does not shutdown the channel if an error occurs.
79178    pub fn send_no_shutdown_on_err(
79179        self,
79180        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
79181    ) -> Result<(), fidl::Error> {
79182        let _result = self.send_raw(result);
79183        self.drop_without_shutdown();
79184        _result
79185    }
79186
79187    fn send_raw(
79188        &self,
79189        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
79190    ) -> Result<(), fidl::Error> {
79191        self.control_handle.inner.send::<fidl::encoding::ResultType<
79192            BaseSocketGetCookieResponse,
79193            fidl_fuchsia_posix::Errno,
79194        >>(
79195            result.map(|value| (value,)),
79196            self.tx_id,
79197            0x2c2f47fd8f924e52,
79198            fidl::encoding::DynamicFlags::empty(),
79199        )
79200    }
79201}
79202
79203#[must_use = "FIDL methods require a response to be sent"]
79204#[derive(Debug)]
79205pub struct SynchronousDatagramSocketBindResponder {
79206    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79207    tx_id: u32,
79208}
79209
79210/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79211/// if the responder is dropped without sending a response, so that the client
79212/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79213impl std::ops::Drop for SynchronousDatagramSocketBindResponder {
79214    fn drop(&mut self) {
79215        self.control_handle.shutdown();
79216        // Safety: drops once, never accessed again
79217        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79218    }
79219}
79220
79221impl fidl::endpoints::Responder for SynchronousDatagramSocketBindResponder {
79222    type ControlHandle = SynchronousDatagramSocketControlHandle;
79223
79224    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79225        &self.control_handle
79226    }
79227
79228    fn drop_without_shutdown(mut self) {
79229        // Safety: drops once, never accessed again due to mem::forget
79230        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79231        // Prevent Drop from running (which would shut down the channel)
79232        std::mem::forget(self);
79233    }
79234}
79235
79236impl SynchronousDatagramSocketBindResponder {
79237    /// Sends a response to the FIDL transaction.
79238    ///
79239    /// Sets the channel to shutdown if an error occurs.
79240    pub fn send(
79241        self,
79242        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79243    ) -> Result<(), fidl::Error> {
79244        let _result = self.send_raw(result);
79245        if _result.is_err() {
79246            self.control_handle.shutdown();
79247        }
79248        self.drop_without_shutdown();
79249        _result
79250    }
79251
79252    /// Similar to "send" but does not shutdown the channel if an error occurs.
79253    pub fn send_no_shutdown_on_err(
79254        self,
79255        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79256    ) -> Result<(), fidl::Error> {
79257        let _result = self.send_raw(result);
79258        self.drop_without_shutdown();
79259        _result
79260    }
79261
79262    fn send_raw(
79263        &self,
79264        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79265    ) -> Result<(), fidl::Error> {
79266        self.control_handle.inner.send::<fidl::encoding::ResultType<
79267            fidl::encoding::EmptyStruct,
79268            fidl_fuchsia_posix::Errno,
79269        >>(
79270            result,
79271            self.tx_id,
79272            0x4bc6400ae92125d,
79273            fidl::encoding::DynamicFlags::empty(),
79274        )
79275    }
79276}
79277
79278#[must_use = "FIDL methods require a response to be sent"]
79279#[derive(Debug)]
79280pub struct SynchronousDatagramSocketConnectResponder {
79281    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79282    tx_id: u32,
79283}
79284
79285/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79286/// if the responder is dropped without sending a response, so that the client
79287/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79288impl std::ops::Drop for SynchronousDatagramSocketConnectResponder {
79289    fn drop(&mut self) {
79290        self.control_handle.shutdown();
79291        // Safety: drops once, never accessed again
79292        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79293    }
79294}
79295
79296impl fidl::endpoints::Responder for SynchronousDatagramSocketConnectResponder {
79297    type ControlHandle = SynchronousDatagramSocketControlHandle;
79298
79299    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79300        &self.control_handle
79301    }
79302
79303    fn drop_without_shutdown(mut self) {
79304        // Safety: drops once, never accessed again due to mem::forget
79305        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79306        // Prevent Drop from running (which would shut down the channel)
79307        std::mem::forget(self);
79308    }
79309}
79310
79311impl SynchronousDatagramSocketConnectResponder {
79312    /// Sends a response to the FIDL transaction.
79313    ///
79314    /// Sets the channel to shutdown if an error occurs.
79315    pub fn send(
79316        self,
79317        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79318    ) -> Result<(), fidl::Error> {
79319        let _result = self.send_raw(result);
79320        if _result.is_err() {
79321            self.control_handle.shutdown();
79322        }
79323        self.drop_without_shutdown();
79324        _result
79325    }
79326
79327    /// Similar to "send" but does not shutdown the channel if an error occurs.
79328    pub fn send_no_shutdown_on_err(
79329        self,
79330        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79331    ) -> Result<(), fidl::Error> {
79332        let _result = self.send_raw(result);
79333        self.drop_without_shutdown();
79334        _result
79335    }
79336
79337    fn send_raw(
79338        &self,
79339        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79340    ) -> Result<(), fidl::Error> {
79341        self.control_handle.inner.send::<fidl::encoding::ResultType<
79342            fidl::encoding::EmptyStruct,
79343            fidl_fuchsia_posix::Errno,
79344        >>(
79345            result,
79346            self.tx_id,
79347            0x5f05f19bfdd38871,
79348            fidl::encoding::DynamicFlags::empty(),
79349        )
79350    }
79351}
79352
79353#[must_use = "FIDL methods require a response to be sent"]
79354#[derive(Debug)]
79355pub struct SynchronousDatagramSocketDisconnectResponder {
79356    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79357    tx_id: u32,
79358}
79359
79360/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79361/// if the responder is dropped without sending a response, so that the client
79362/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79363impl std::ops::Drop for SynchronousDatagramSocketDisconnectResponder {
79364    fn drop(&mut self) {
79365        self.control_handle.shutdown();
79366        // Safety: drops once, never accessed again
79367        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79368    }
79369}
79370
79371impl fidl::endpoints::Responder for SynchronousDatagramSocketDisconnectResponder {
79372    type ControlHandle = SynchronousDatagramSocketControlHandle;
79373
79374    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79375        &self.control_handle
79376    }
79377
79378    fn drop_without_shutdown(mut self) {
79379        // Safety: drops once, never accessed again due to mem::forget
79380        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79381        // Prevent Drop from running (which would shut down the channel)
79382        std::mem::forget(self);
79383    }
79384}
79385
79386impl SynchronousDatagramSocketDisconnectResponder {
79387    /// Sends a response to the FIDL transaction.
79388    ///
79389    /// Sets the channel to shutdown if an error occurs.
79390    pub fn send(
79391        self,
79392        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79393    ) -> Result<(), fidl::Error> {
79394        let _result = self.send_raw(result);
79395        if _result.is_err() {
79396            self.control_handle.shutdown();
79397        }
79398        self.drop_without_shutdown();
79399        _result
79400    }
79401
79402    /// Similar to "send" but does not shutdown the channel if an error occurs.
79403    pub fn send_no_shutdown_on_err(
79404        self,
79405        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79406    ) -> Result<(), fidl::Error> {
79407        let _result = self.send_raw(result);
79408        self.drop_without_shutdown();
79409        _result
79410    }
79411
79412    fn send_raw(
79413        &self,
79414        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79415    ) -> Result<(), fidl::Error> {
79416        self.control_handle.inner.send::<fidl::encoding::ResultType<
79417            fidl::encoding::EmptyStruct,
79418            fidl_fuchsia_posix::Errno,
79419        >>(
79420            result,
79421            self.tx_id,
79422            0x74e63b91f7b29b2,
79423            fidl::encoding::DynamicFlags::empty(),
79424        )
79425    }
79426}
79427
79428#[must_use = "FIDL methods require a response to be sent"]
79429#[derive(Debug)]
79430pub struct SynchronousDatagramSocketGetSockNameResponder {
79431    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79432    tx_id: u32,
79433}
79434
79435/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79436/// if the responder is dropped without sending a response, so that the client
79437/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79438impl std::ops::Drop for SynchronousDatagramSocketGetSockNameResponder {
79439    fn drop(&mut self) {
79440        self.control_handle.shutdown();
79441        // Safety: drops once, never accessed again
79442        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79443    }
79444}
79445
79446impl fidl::endpoints::Responder for SynchronousDatagramSocketGetSockNameResponder {
79447    type ControlHandle = SynchronousDatagramSocketControlHandle;
79448
79449    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79450        &self.control_handle
79451    }
79452
79453    fn drop_without_shutdown(mut self) {
79454        // Safety: drops once, never accessed again due to mem::forget
79455        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79456        // Prevent Drop from running (which would shut down the channel)
79457        std::mem::forget(self);
79458    }
79459}
79460
79461impl SynchronousDatagramSocketGetSockNameResponder {
79462    /// Sends a response to the FIDL transaction.
79463    ///
79464    /// Sets the channel to shutdown if an error occurs.
79465    pub fn send(
79466        self,
79467        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
79468    ) -> Result<(), fidl::Error> {
79469        let _result = self.send_raw(result);
79470        if _result.is_err() {
79471            self.control_handle.shutdown();
79472        }
79473        self.drop_without_shutdown();
79474        _result
79475    }
79476
79477    /// Similar to "send" but does not shutdown the channel if an error occurs.
79478    pub fn send_no_shutdown_on_err(
79479        self,
79480        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
79481    ) -> Result<(), fidl::Error> {
79482        let _result = self.send_raw(result);
79483        self.drop_without_shutdown();
79484        _result
79485    }
79486
79487    fn send_raw(
79488        &self,
79489        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
79490    ) -> Result<(), fidl::Error> {
79491        self.control_handle.inner.send::<fidl::encoding::ResultType<
79492            BaseNetworkSocketGetSockNameResponse,
79493            fidl_fuchsia_posix::Errno,
79494        >>(
79495            result.map(|addr| (addr,)),
79496            self.tx_id,
79497            0x475f23f84a1a4f85,
79498            fidl::encoding::DynamicFlags::empty(),
79499        )
79500    }
79501}
79502
79503#[must_use = "FIDL methods require a response to be sent"]
79504#[derive(Debug)]
79505pub struct SynchronousDatagramSocketGetPeerNameResponder {
79506    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79507    tx_id: u32,
79508}
79509
79510/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79511/// if the responder is dropped without sending a response, so that the client
79512/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79513impl std::ops::Drop for SynchronousDatagramSocketGetPeerNameResponder {
79514    fn drop(&mut self) {
79515        self.control_handle.shutdown();
79516        // Safety: drops once, never accessed again
79517        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79518    }
79519}
79520
79521impl fidl::endpoints::Responder for SynchronousDatagramSocketGetPeerNameResponder {
79522    type ControlHandle = SynchronousDatagramSocketControlHandle;
79523
79524    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79525        &self.control_handle
79526    }
79527
79528    fn drop_without_shutdown(mut self) {
79529        // Safety: drops once, never accessed again due to mem::forget
79530        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79531        // Prevent Drop from running (which would shut down the channel)
79532        std::mem::forget(self);
79533    }
79534}
79535
79536impl SynchronousDatagramSocketGetPeerNameResponder {
79537    /// Sends a response to the FIDL transaction.
79538    ///
79539    /// Sets the channel to shutdown if an error occurs.
79540    pub fn send(
79541        self,
79542        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
79543    ) -> Result<(), fidl::Error> {
79544        let _result = self.send_raw(result);
79545        if _result.is_err() {
79546            self.control_handle.shutdown();
79547        }
79548        self.drop_without_shutdown();
79549        _result
79550    }
79551
79552    /// Similar to "send" but does not shutdown the channel if an error occurs.
79553    pub fn send_no_shutdown_on_err(
79554        self,
79555        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
79556    ) -> Result<(), fidl::Error> {
79557        let _result = self.send_raw(result);
79558        self.drop_without_shutdown();
79559        _result
79560    }
79561
79562    fn send_raw(
79563        &self,
79564        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
79565    ) -> Result<(), fidl::Error> {
79566        self.control_handle.inner.send::<fidl::encoding::ResultType<
79567            BaseNetworkSocketGetPeerNameResponse,
79568            fidl_fuchsia_posix::Errno,
79569        >>(
79570            result.map(|addr| (addr,)),
79571            self.tx_id,
79572            0x1ffecf4bd5b6432e,
79573            fidl::encoding::DynamicFlags::empty(),
79574        )
79575    }
79576}
79577
79578#[must_use = "FIDL methods require a response to be sent"]
79579#[derive(Debug)]
79580pub struct SynchronousDatagramSocketShutdownResponder {
79581    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79582    tx_id: u32,
79583}
79584
79585/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79586/// if the responder is dropped without sending a response, so that the client
79587/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79588impl std::ops::Drop for SynchronousDatagramSocketShutdownResponder {
79589    fn drop(&mut self) {
79590        self.control_handle.shutdown();
79591        // Safety: drops once, never accessed again
79592        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79593    }
79594}
79595
79596impl fidl::endpoints::Responder for SynchronousDatagramSocketShutdownResponder {
79597    type ControlHandle = SynchronousDatagramSocketControlHandle;
79598
79599    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79600        &self.control_handle
79601    }
79602
79603    fn drop_without_shutdown(mut self) {
79604        // Safety: drops once, never accessed again due to mem::forget
79605        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79606        // Prevent Drop from running (which would shut down the channel)
79607        std::mem::forget(self);
79608    }
79609}
79610
79611impl SynchronousDatagramSocketShutdownResponder {
79612    /// Sends a response to the FIDL transaction.
79613    ///
79614    /// Sets the channel to shutdown if an error occurs.
79615    pub fn send(
79616        self,
79617        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79618    ) -> Result<(), fidl::Error> {
79619        let _result = self.send_raw(result);
79620        if _result.is_err() {
79621            self.control_handle.shutdown();
79622        }
79623        self.drop_without_shutdown();
79624        _result
79625    }
79626
79627    /// Similar to "send" but does not shutdown the channel if an error occurs.
79628    pub fn send_no_shutdown_on_err(
79629        self,
79630        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79631    ) -> Result<(), fidl::Error> {
79632        let _result = self.send_raw(result);
79633        self.drop_without_shutdown();
79634        _result
79635    }
79636
79637    fn send_raw(
79638        &self,
79639        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79640    ) -> Result<(), fidl::Error> {
79641        self.control_handle.inner.send::<fidl::encoding::ResultType<
79642            fidl::encoding::EmptyStruct,
79643            fidl_fuchsia_posix::Errno,
79644        >>(
79645            result,
79646            self.tx_id,
79647            0x247f38b6db68c336,
79648            fidl::encoding::DynamicFlags::empty(),
79649        )
79650    }
79651}
79652
79653#[must_use = "FIDL methods require a response to be sent"]
79654#[derive(Debug)]
79655pub struct SynchronousDatagramSocketSetIpTypeOfServiceResponder {
79656    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79657    tx_id: u32,
79658}
79659
79660/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79661/// if the responder is dropped without sending a response, so that the client
79662/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79663impl std::ops::Drop for SynchronousDatagramSocketSetIpTypeOfServiceResponder {
79664    fn drop(&mut self) {
79665        self.control_handle.shutdown();
79666        // Safety: drops once, never accessed again
79667        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79668    }
79669}
79670
79671impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpTypeOfServiceResponder {
79672    type ControlHandle = SynchronousDatagramSocketControlHandle;
79673
79674    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79675        &self.control_handle
79676    }
79677
79678    fn drop_without_shutdown(mut self) {
79679        // Safety: drops once, never accessed again due to mem::forget
79680        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79681        // Prevent Drop from running (which would shut down the channel)
79682        std::mem::forget(self);
79683    }
79684}
79685
79686impl SynchronousDatagramSocketSetIpTypeOfServiceResponder {
79687    /// Sends a response to the FIDL transaction.
79688    ///
79689    /// Sets the channel to shutdown if an error occurs.
79690    pub fn send(
79691        self,
79692        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79693    ) -> Result<(), fidl::Error> {
79694        let _result = self.send_raw(result);
79695        if _result.is_err() {
79696            self.control_handle.shutdown();
79697        }
79698        self.drop_without_shutdown();
79699        _result
79700    }
79701
79702    /// Similar to "send" but does not shutdown the channel if an error occurs.
79703    pub fn send_no_shutdown_on_err(
79704        self,
79705        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79706    ) -> Result<(), fidl::Error> {
79707        let _result = self.send_raw(result);
79708        self.drop_without_shutdown();
79709        _result
79710    }
79711
79712    fn send_raw(
79713        &self,
79714        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79715    ) -> Result<(), fidl::Error> {
79716        self.control_handle.inner.send::<fidl::encoding::ResultType<
79717            fidl::encoding::EmptyStruct,
79718            fidl_fuchsia_posix::Errno,
79719        >>(
79720            result,
79721            self.tx_id,
79722            0x995c600475b6d46,
79723            fidl::encoding::DynamicFlags::empty(),
79724        )
79725    }
79726}
79727
79728#[must_use = "FIDL methods require a response to be sent"]
79729#[derive(Debug)]
79730pub struct SynchronousDatagramSocketGetIpTypeOfServiceResponder {
79731    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79732    tx_id: u32,
79733}
79734
79735/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79736/// if the responder is dropped without sending a response, so that the client
79737/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79738impl std::ops::Drop for SynchronousDatagramSocketGetIpTypeOfServiceResponder {
79739    fn drop(&mut self) {
79740        self.control_handle.shutdown();
79741        // Safety: drops once, never accessed again
79742        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79743    }
79744}
79745
79746impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpTypeOfServiceResponder {
79747    type ControlHandle = SynchronousDatagramSocketControlHandle;
79748
79749    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79750        &self.control_handle
79751    }
79752
79753    fn drop_without_shutdown(mut self) {
79754        // Safety: drops once, never accessed again due to mem::forget
79755        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79756        // Prevent Drop from running (which would shut down the channel)
79757        std::mem::forget(self);
79758    }
79759}
79760
79761impl SynchronousDatagramSocketGetIpTypeOfServiceResponder {
79762    /// Sends a response to the FIDL transaction.
79763    ///
79764    /// Sets the channel to shutdown if an error occurs.
79765    pub fn send(
79766        self,
79767        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
79768    ) -> Result<(), fidl::Error> {
79769        let _result = self.send_raw(result);
79770        if _result.is_err() {
79771            self.control_handle.shutdown();
79772        }
79773        self.drop_without_shutdown();
79774        _result
79775    }
79776
79777    /// Similar to "send" but does not shutdown the channel if an error occurs.
79778    pub fn send_no_shutdown_on_err(
79779        self,
79780        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
79781    ) -> Result<(), fidl::Error> {
79782        let _result = self.send_raw(result);
79783        self.drop_without_shutdown();
79784        _result
79785    }
79786
79787    fn send_raw(
79788        &self,
79789        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
79790    ) -> Result<(), fidl::Error> {
79791        self.control_handle.inner.send::<fidl::encoding::ResultType<
79792            BaseNetworkSocketGetIpTypeOfServiceResponse,
79793            fidl_fuchsia_posix::Errno,
79794        >>(
79795            result.map(|value| (value,)),
79796            self.tx_id,
79797            0x3814a04259f75fcb,
79798            fidl::encoding::DynamicFlags::empty(),
79799        )
79800    }
79801}
79802
79803#[must_use = "FIDL methods require a response to be sent"]
79804#[derive(Debug)]
79805pub struct SynchronousDatagramSocketSetIpTtlResponder {
79806    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79807    tx_id: u32,
79808}
79809
79810/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79811/// if the responder is dropped without sending a response, so that the client
79812/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79813impl std::ops::Drop for SynchronousDatagramSocketSetIpTtlResponder {
79814    fn drop(&mut self) {
79815        self.control_handle.shutdown();
79816        // Safety: drops once, never accessed again
79817        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79818    }
79819}
79820
79821impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpTtlResponder {
79822    type ControlHandle = SynchronousDatagramSocketControlHandle;
79823
79824    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79825        &self.control_handle
79826    }
79827
79828    fn drop_without_shutdown(mut self) {
79829        // Safety: drops once, never accessed again due to mem::forget
79830        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79831        // Prevent Drop from running (which would shut down the channel)
79832        std::mem::forget(self);
79833    }
79834}
79835
79836impl SynchronousDatagramSocketSetIpTtlResponder {
79837    /// Sends a response to the FIDL transaction.
79838    ///
79839    /// Sets the channel to shutdown if an error occurs.
79840    pub fn send(
79841        self,
79842        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79843    ) -> Result<(), fidl::Error> {
79844        let _result = self.send_raw(result);
79845        if _result.is_err() {
79846            self.control_handle.shutdown();
79847        }
79848        self.drop_without_shutdown();
79849        _result
79850    }
79851
79852    /// Similar to "send" but does not shutdown the channel if an error occurs.
79853    pub fn send_no_shutdown_on_err(
79854        self,
79855        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79856    ) -> Result<(), fidl::Error> {
79857        let _result = self.send_raw(result);
79858        self.drop_without_shutdown();
79859        _result
79860    }
79861
79862    fn send_raw(
79863        &self,
79864        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79865    ) -> Result<(), fidl::Error> {
79866        self.control_handle.inner.send::<fidl::encoding::ResultType<
79867            fidl::encoding::EmptyStruct,
79868            fidl_fuchsia_posix::Errno,
79869        >>(
79870            result,
79871            self.tx_id,
79872            0x29e2424b433ae1ef,
79873            fidl::encoding::DynamicFlags::empty(),
79874        )
79875    }
79876}
79877
79878#[must_use = "FIDL methods require a response to be sent"]
79879#[derive(Debug)]
79880pub struct SynchronousDatagramSocketGetIpTtlResponder {
79881    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79882    tx_id: u32,
79883}
79884
79885/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79886/// if the responder is dropped without sending a response, so that the client
79887/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79888impl std::ops::Drop for SynchronousDatagramSocketGetIpTtlResponder {
79889    fn drop(&mut self) {
79890        self.control_handle.shutdown();
79891        // Safety: drops once, never accessed again
79892        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79893    }
79894}
79895
79896impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpTtlResponder {
79897    type ControlHandle = SynchronousDatagramSocketControlHandle;
79898
79899    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79900        &self.control_handle
79901    }
79902
79903    fn drop_without_shutdown(mut self) {
79904        // Safety: drops once, never accessed again due to mem::forget
79905        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79906        // Prevent Drop from running (which would shut down the channel)
79907        std::mem::forget(self);
79908    }
79909}
79910
79911impl SynchronousDatagramSocketGetIpTtlResponder {
79912    /// Sends a response to the FIDL transaction.
79913    ///
79914    /// Sets the channel to shutdown if an error occurs.
79915    pub fn send(
79916        self,
79917        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
79918    ) -> Result<(), fidl::Error> {
79919        let _result = self.send_raw(result);
79920        if _result.is_err() {
79921            self.control_handle.shutdown();
79922        }
79923        self.drop_without_shutdown();
79924        _result
79925    }
79926
79927    /// Similar to "send" but does not shutdown the channel if an error occurs.
79928    pub fn send_no_shutdown_on_err(
79929        self,
79930        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
79931    ) -> Result<(), fidl::Error> {
79932        let _result = self.send_raw(result);
79933        self.drop_without_shutdown();
79934        _result
79935    }
79936
79937    fn send_raw(
79938        &self,
79939        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
79940    ) -> Result<(), fidl::Error> {
79941        self.control_handle.inner.send::<fidl::encoding::ResultType<
79942            BaseNetworkSocketGetIpTtlResponse,
79943            fidl_fuchsia_posix::Errno,
79944        >>(
79945            result.map(|value| (value,)),
79946            self.tx_id,
79947            0x47e47fa1f24da471,
79948            fidl::encoding::DynamicFlags::empty(),
79949        )
79950    }
79951}
79952
79953#[must_use = "FIDL methods require a response to be sent"]
79954#[derive(Debug)]
79955pub struct SynchronousDatagramSocketSetIpPacketInfoResponder {
79956    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79957    tx_id: u32,
79958}
79959
79960/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79961/// if the responder is dropped without sending a response, so that the client
79962/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79963impl std::ops::Drop for SynchronousDatagramSocketSetIpPacketInfoResponder {
79964    fn drop(&mut self) {
79965        self.control_handle.shutdown();
79966        // Safety: drops once, never accessed again
79967        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79968    }
79969}
79970
79971impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpPacketInfoResponder {
79972    type ControlHandle = SynchronousDatagramSocketControlHandle;
79973
79974    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79975        &self.control_handle
79976    }
79977
79978    fn drop_without_shutdown(mut self) {
79979        // Safety: drops once, never accessed again due to mem::forget
79980        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79981        // Prevent Drop from running (which would shut down the channel)
79982        std::mem::forget(self);
79983    }
79984}
79985
79986impl SynchronousDatagramSocketSetIpPacketInfoResponder {
79987    /// Sends a response to the FIDL transaction.
79988    ///
79989    /// Sets the channel to shutdown if an error occurs.
79990    pub fn send(
79991        self,
79992        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79993    ) -> Result<(), fidl::Error> {
79994        let _result = self.send_raw(result);
79995        if _result.is_err() {
79996            self.control_handle.shutdown();
79997        }
79998        self.drop_without_shutdown();
79999        _result
80000    }
80001
80002    /// Similar to "send" but does not shutdown the channel if an error occurs.
80003    pub fn send_no_shutdown_on_err(
80004        self,
80005        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80006    ) -> Result<(), fidl::Error> {
80007        let _result = self.send_raw(result);
80008        self.drop_without_shutdown();
80009        _result
80010    }
80011
80012    fn send_raw(
80013        &self,
80014        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80015    ) -> Result<(), fidl::Error> {
80016        self.control_handle.inner.send::<fidl::encoding::ResultType<
80017            fidl::encoding::EmptyStruct,
80018            fidl_fuchsia_posix::Errno,
80019        >>(
80020            result,
80021            self.tx_id,
80022            0x392d16bee20c0e16,
80023            fidl::encoding::DynamicFlags::empty(),
80024        )
80025    }
80026}
80027
80028#[must_use = "FIDL methods require a response to be sent"]
80029#[derive(Debug)]
80030pub struct SynchronousDatagramSocketGetIpPacketInfoResponder {
80031    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80032    tx_id: u32,
80033}
80034
80035/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80036/// if the responder is dropped without sending a response, so that the client
80037/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80038impl std::ops::Drop for SynchronousDatagramSocketGetIpPacketInfoResponder {
80039    fn drop(&mut self) {
80040        self.control_handle.shutdown();
80041        // Safety: drops once, never accessed again
80042        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80043    }
80044}
80045
80046impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpPacketInfoResponder {
80047    type ControlHandle = SynchronousDatagramSocketControlHandle;
80048
80049    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80050        &self.control_handle
80051    }
80052
80053    fn drop_without_shutdown(mut self) {
80054        // Safety: drops once, never accessed again due to mem::forget
80055        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80056        // Prevent Drop from running (which would shut down the channel)
80057        std::mem::forget(self);
80058    }
80059}
80060
80061impl SynchronousDatagramSocketGetIpPacketInfoResponder {
80062    /// Sends a response to the FIDL transaction.
80063    ///
80064    /// Sets the channel to shutdown if an error occurs.
80065    pub fn send(
80066        self,
80067        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
80068    ) -> Result<(), fidl::Error> {
80069        let _result = self.send_raw(result);
80070        if _result.is_err() {
80071            self.control_handle.shutdown();
80072        }
80073        self.drop_without_shutdown();
80074        _result
80075    }
80076
80077    /// Similar to "send" but does not shutdown the channel if an error occurs.
80078    pub fn send_no_shutdown_on_err(
80079        self,
80080        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
80081    ) -> Result<(), fidl::Error> {
80082        let _result = self.send_raw(result);
80083        self.drop_without_shutdown();
80084        _result
80085    }
80086
80087    fn send_raw(
80088        &self,
80089        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
80090    ) -> Result<(), fidl::Error> {
80091        self.control_handle.inner.send::<fidl::encoding::ResultType<
80092            BaseNetworkSocketGetIpPacketInfoResponse,
80093            fidl_fuchsia_posix::Errno,
80094        >>(
80095            result.map(|value| (value,)),
80096            self.tx_id,
80097            0x54b505f242280740,
80098            fidl::encoding::DynamicFlags::empty(),
80099        )
80100    }
80101}
80102
80103#[must_use = "FIDL methods require a response to be sent"]
80104#[derive(Debug)]
80105pub struct SynchronousDatagramSocketSetIpReceiveTypeOfServiceResponder {
80106    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80107    tx_id: u32,
80108}
80109
80110/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80111/// if the responder is dropped without sending a response, so that the client
80112/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80113impl std::ops::Drop for SynchronousDatagramSocketSetIpReceiveTypeOfServiceResponder {
80114    fn drop(&mut self) {
80115        self.control_handle.shutdown();
80116        // Safety: drops once, never accessed again
80117        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80118    }
80119}
80120
80121impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpReceiveTypeOfServiceResponder {
80122    type ControlHandle = SynchronousDatagramSocketControlHandle;
80123
80124    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80125        &self.control_handle
80126    }
80127
80128    fn drop_without_shutdown(mut self) {
80129        // Safety: drops once, never accessed again due to mem::forget
80130        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80131        // Prevent Drop from running (which would shut down the channel)
80132        std::mem::forget(self);
80133    }
80134}
80135
80136impl SynchronousDatagramSocketSetIpReceiveTypeOfServiceResponder {
80137    /// Sends a response to the FIDL transaction.
80138    ///
80139    /// Sets the channel to shutdown if an error occurs.
80140    pub fn send(
80141        self,
80142        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80143    ) -> Result<(), fidl::Error> {
80144        let _result = self.send_raw(result);
80145        if _result.is_err() {
80146            self.control_handle.shutdown();
80147        }
80148        self.drop_without_shutdown();
80149        _result
80150    }
80151
80152    /// Similar to "send" but does not shutdown the channel if an error occurs.
80153    pub fn send_no_shutdown_on_err(
80154        self,
80155        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80156    ) -> Result<(), fidl::Error> {
80157        let _result = self.send_raw(result);
80158        self.drop_without_shutdown();
80159        _result
80160    }
80161
80162    fn send_raw(
80163        &self,
80164        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80165    ) -> Result<(), fidl::Error> {
80166        self.control_handle.inner.send::<fidl::encoding::ResultType<
80167            fidl::encoding::EmptyStruct,
80168            fidl_fuchsia_posix::Errno,
80169        >>(
80170            result,
80171            self.tx_id,
80172            0x6c4f6714995f84ef,
80173            fidl::encoding::DynamicFlags::empty(),
80174        )
80175    }
80176}
80177
80178#[must_use = "FIDL methods require a response to be sent"]
80179#[derive(Debug)]
80180pub struct SynchronousDatagramSocketGetIpReceiveTypeOfServiceResponder {
80181    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80182    tx_id: u32,
80183}
80184
80185/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80186/// if the responder is dropped without sending a response, so that the client
80187/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80188impl std::ops::Drop for SynchronousDatagramSocketGetIpReceiveTypeOfServiceResponder {
80189    fn drop(&mut self) {
80190        self.control_handle.shutdown();
80191        // Safety: drops once, never accessed again
80192        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80193    }
80194}
80195
80196impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpReceiveTypeOfServiceResponder {
80197    type ControlHandle = SynchronousDatagramSocketControlHandle;
80198
80199    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80200        &self.control_handle
80201    }
80202
80203    fn drop_without_shutdown(mut self) {
80204        // Safety: drops once, never accessed again due to mem::forget
80205        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80206        // Prevent Drop from running (which would shut down the channel)
80207        std::mem::forget(self);
80208    }
80209}
80210
80211impl SynchronousDatagramSocketGetIpReceiveTypeOfServiceResponder {
80212    /// Sends a response to the FIDL transaction.
80213    ///
80214    /// Sets the channel to shutdown if an error occurs.
80215    pub fn send(
80216        self,
80217        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
80218    ) -> Result<(), fidl::Error> {
80219        let _result = self.send_raw(result);
80220        if _result.is_err() {
80221            self.control_handle.shutdown();
80222        }
80223        self.drop_without_shutdown();
80224        _result
80225    }
80226
80227    /// Similar to "send" but does not shutdown the channel if an error occurs.
80228    pub fn send_no_shutdown_on_err(
80229        self,
80230        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
80231    ) -> Result<(), fidl::Error> {
80232        let _result = self.send_raw(result);
80233        self.drop_without_shutdown();
80234        _result
80235    }
80236
80237    fn send_raw(
80238        &self,
80239        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
80240    ) -> Result<(), fidl::Error> {
80241        self.control_handle.inner.send::<fidl::encoding::ResultType<
80242            BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
80243            fidl_fuchsia_posix::Errno,
80244        >>(
80245            result.map(|value| (value,)),
80246            self.tx_id,
80247            0x4158ba7dc2795960,
80248            fidl::encoding::DynamicFlags::empty(),
80249        )
80250    }
80251}
80252
80253#[must_use = "FIDL methods require a response to be sent"]
80254#[derive(Debug)]
80255pub struct SynchronousDatagramSocketSetIpReceiveTtlResponder {
80256    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80257    tx_id: u32,
80258}
80259
80260/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80261/// if the responder is dropped without sending a response, so that the client
80262/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80263impl std::ops::Drop for SynchronousDatagramSocketSetIpReceiveTtlResponder {
80264    fn drop(&mut self) {
80265        self.control_handle.shutdown();
80266        // Safety: drops once, never accessed again
80267        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80268    }
80269}
80270
80271impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpReceiveTtlResponder {
80272    type ControlHandle = SynchronousDatagramSocketControlHandle;
80273
80274    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80275        &self.control_handle
80276    }
80277
80278    fn drop_without_shutdown(mut self) {
80279        // Safety: drops once, never accessed again due to mem::forget
80280        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80281        // Prevent Drop from running (which would shut down the channel)
80282        std::mem::forget(self);
80283    }
80284}
80285
80286impl SynchronousDatagramSocketSetIpReceiveTtlResponder {
80287    /// Sends a response to the FIDL transaction.
80288    ///
80289    /// Sets the channel to shutdown if an error occurs.
80290    pub fn send(
80291        self,
80292        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80293    ) -> Result<(), fidl::Error> {
80294        let _result = self.send_raw(result);
80295        if _result.is_err() {
80296            self.control_handle.shutdown();
80297        }
80298        self.drop_without_shutdown();
80299        _result
80300    }
80301
80302    /// Similar to "send" but does not shutdown the channel if an error occurs.
80303    pub fn send_no_shutdown_on_err(
80304        self,
80305        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80306    ) -> Result<(), fidl::Error> {
80307        let _result = self.send_raw(result);
80308        self.drop_without_shutdown();
80309        _result
80310    }
80311
80312    fn send_raw(
80313        &self,
80314        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80315    ) -> Result<(), fidl::Error> {
80316        self.control_handle.inner.send::<fidl::encoding::ResultType<
80317            fidl::encoding::EmptyStruct,
80318            fidl_fuchsia_posix::Errno,
80319        >>(
80320            result,
80321            self.tx_id,
80322            0x46f15be0ce0ab82b,
80323            fidl::encoding::DynamicFlags::empty(),
80324        )
80325    }
80326}
80327
80328#[must_use = "FIDL methods require a response to be sent"]
80329#[derive(Debug)]
80330pub struct SynchronousDatagramSocketGetIpReceiveTtlResponder {
80331    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80332    tx_id: u32,
80333}
80334
80335/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80336/// if the responder is dropped without sending a response, so that the client
80337/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80338impl std::ops::Drop for SynchronousDatagramSocketGetIpReceiveTtlResponder {
80339    fn drop(&mut self) {
80340        self.control_handle.shutdown();
80341        // Safety: drops once, never accessed again
80342        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80343    }
80344}
80345
80346impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpReceiveTtlResponder {
80347    type ControlHandle = SynchronousDatagramSocketControlHandle;
80348
80349    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80350        &self.control_handle
80351    }
80352
80353    fn drop_without_shutdown(mut self) {
80354        // Safety: drops once, never accessed again due to mem::forget
80355        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80356        // Prevent Drop from running (which would shut down the channel)
80357        std::mem::forget(self);
80358    }
80359}
80360
80361impl SynchronousDatagramSocketGetIpReceiveTtlResponder {
80362    /// Sends a response to the FIDL transaction.
80363    ///
80364    /// Sets the channel to shutdown if an error occurs.
80365    pub fn send(
80366        self,
80367        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
80368    ) -> Result<(), fidl::Error> {
80369        let _result = self.send_raw(result);
80370        if _result.is_err() {
80371            self.control_handle.shutdown();
80372        }
80373        self.drop_without_shutdown();
80374        _result
80375    }
80376
80377    /// Similar to "send" but does not shutdown the channel if an error occurs.
80378    pub fn send_no_shutdown_on_err(
80379        self,
80380        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
80381    ) -> Result<(), fidl::Error> {
80382        let _result = self.send_raw(result);
80383        self.drop_without_shutdown();
80384        _result
80385    }
80386
80387    fn send_raw(
80388        &self,
80389        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
80390    ) -> Result<(), fidl::Error> {
80391        self.control_handle.inner.send::<fidl::encoding::ResultType<
80392            BaseNetworkSocketGetIpReceiveTtlResponse,
80393            fidl_fuchsia_posix::Errno,
80394        >>(
80395            result.map(|value| (value,)),
80396            self.tx_id,
80397            0x678ddd5a5dfa2eb5,
80398            fidl::encoding::DynamicFlags::empty(),
80399        )
80400    }
80401}
80402
80403#[must_use = "FIDL methods require a response to be sent"]
80404#[derive(Debug)]
80405pub struct SynchronousDatagramSocketSetIpMulticastInterfaceResponder {
80406    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80407    tx_id: u32,
80408}
80409
80410/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80411/// if the responder is dropped without sending a response, so that the client
80412/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80413impl std::ops::Drop for SynchronousDatagramSocketSetIpMulticastInterfaceResponder {
80414    fn drop(&mut self) {
80415        self.control_handle.shutdown();
80416        // Safety: drops once, never accessed again
80417        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80418    }
80419}
80420
80421impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpMulticastInterfaceResponder {
80422    type ControlHandle = SynchronousDatagramSocketControlHandle;
80423
80424    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80425        &self.control_handle
80426    }
80427
80428    fn drop_without_shutdown(mut self) {
80429        // Safety: drops once, never accessed again due to mem::forget
80430        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80431        // Prevent Drop from running (which would shut down the channel)
80432        std::mem::forget(self);
80433    }
80434}
80435
80436impl SynchronousDatagramSocketSetIpMulticastInterfaceResponder {
80437    /// Sends a response to the FIDL transaction.
80438    ///
80439    /// Sets the channel to shutdown if an error occurs.
80440    pub fn send(
80441        self,
80442        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80443    ) -> Result<(), fidl::Error> {
80444        let _result = self.send_raw(result);
80445        if _result.is_err() {
80446            self.control_handle.shutdown();
80447        }
80448        self.drop_without_shutdown();
80449        _result
80450    }
80451
80452    /// Similar to "send" but does not shutdown the channel if an error occurs.
80453    pub fn send_no_shutdown_on_err(
80454        self,
80455        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80456    ) -> Result<(), fidl::Error> {
80457        let _result = self.send_raw(result);
80458        self.drop_without_shutdown();
80459        _result
80460    }
80461
80462    fn send_raw(
80463        &self,
80464        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80465    ) -> Result<(), fidl::Error> {
80466        self.control_handle.inner.send::<fidl::encoding::ResultType<
80467            fidl::encoding::EmptyStruct,
80468            fidl_fuchsia_posix::Errno,
80469        >>(
80470            result,
80471            self.tx_id,
80472            0x752fbfa9b12befe,
80473            fidl::encoding::DynamicFlags::empty(),
80474        )
80475    }
80476}
80477
80478#[must_use = "FIDL methods require a response to be sent"]
80479#[derive(Debug)]
80480pub struct SynchronousDatagramSocketGetIpMulticastInterfaceResponder {
80481    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80482    tx_id: u32,
80483}
80484
80485/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80486/// if the responder is dropped without sending a response, so that the client
80487/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80488impl std::ops::Drop for SynchronousDatagramSocketGetIpMulticastInterfaceResponder {
80489    fn drop(&mut self) {
80490        self.control_handle.shutdown();
80491        // Safety: drops once, never accessed again
80492        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80493    }
80494}
80495
80496impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpMulticastInterfaceResponder {
80497    type ControlHandle = SynchronousDatagramSocketControlHandle;
80498
80499    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80500        &self.control_handle
80501    }
80502
80503    fn drop_without_shutdown(mut self) {
80504        // Safety: drops once, never accessed again due to mem::forget
80505        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80506        // Prevent Drop from running (which would shut down the channel)
80507        std::mem::forget(self);
80508    }
80509}
80510
80511impl SynchronousDatagramSocketGetIpMulticastInterfaceResponder {
80512    /// Sends a response to the FIDL transaction.
80513    ///
80514    /// Sets the channel to shutdown if an error occurs.
80515    pub fn send(
80516        self,
80517        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
80518    ) -> Result<(), fidl::Error> {
80519        let _result = self.send_raw(result);
80520        if _result.is_err() {
80521            self.control_handle.shutdown();
80522        }
80523        self.drop_without_shutdown();
80524        _result
80525    }
80526
80527    /// Similar to "send" but does not shutdown the channel if an error occurs.
80528    pub fn send_no_shutdown_on_err(
80529        self,
80530        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
80531    ) -> Result<(), fidl::Error> {
80532        let _result = self.send_raw(result);
80533        self.drop_without_shutdown();
80534        _result
80535    }
80536
80537    fn send_raw(
80538        &self,
80539        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
80540    ) -> Result<(), fidl::Error> {
80541        self.control_handle.inner.send::<fidl::encoding::ResultType<
80542            BaseNetworkSocketGetIpMulticastInterfaceResponse,
80543            fidl_fuchsia_posix::Errno,
80544        >>(
80545            result.map(|value| (value,)),
80546            self.tx_id,
80547            0x320bd14c4df046c4,
80548            fidl::encoding::DynamicFlags::empty(),
80549        )
80550    }
80551}
80552
80553#[must_use = "FIDL methods require a response to be sent"]
80554#[derive(Debug)]
80555pub struct SynchronousDatagramSocketSetIpMulticastTtlResponder {
80556    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80557    tx_id: u32,
80558}
80559
80560/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80561/// if the responder is dropped without sending a response, so that the client
80562/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80563impl std::ops::Drop for SynchronousDatagramSocketSetIpMulticastTtlResponder {
80564    fn drop(&mut self) {
80565        self.control_handle.shutdown();
80566        // Safety: drops once, never accessed again
80567        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80568    }
80569}
80570
80571impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpMulticastTtlResponder {
80572    type ControlHandle = SynchronousDatagramSocketControlHandle;
80573
80574    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80575        &self.control_handle
80576    }
80577
80578    fn drop_without_shutdown(mut self) {
80579        // Safety: drops once, never accessed again due to mem::forget
80580        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80581        // Prevent Drop from running (which would shut down the channel)
80582        std::mem::forget(self);
80583    }
80584}
80585
80586impl SynchronousDatagramSocketSetIpMulticastTtlResponder {
80587    /// Sends a response to the FIDL transaction.
80588    ///
80589    /// Sets the channel to shutdown if an error occurs.
80590    pub fn send(
80591        self,
80592        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80593    ) -> Result<(), fidl::Error> {
80594        let _result = self.send_raw(result);
80595        if _result.is_err() {
80596            self.control_handle.shutdown();
80597        }
80598        self.drop_without_shutdown();
80599        _result
80600    }
80601
80602    /// Similar to "send" but does not shutdown the channel if an error occurs.
80603    pub fn send_no_shutdown_on_err(
80604        self,
80605        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80606    ) -> Result<(), fidl::Error> {
80607        let _result = self.send_raw(result);
80608        self.drop_without_shutdown();
80609        _result
80610    }
80611
80612    fn send_raw(
80613        &self,
80614        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80615    ) -> Result<(), fidl::Error> {
80616        self.control_handle.inner.send::<fidl::encoding::ResultType<
80617            fidl::encoding::EmptyStruct,
80618            fidl_fuchsia_posix::Errno,
80619        >>(
80620            result,
80621            self.tx_id,
80622            0x63134d53772916a1,
80623            fidl::encoding::DynamicFlags::empty(),
80624        )
80625    }
80626}
80627
80628#[must_use = "FIDL methods require a response to be sent"]
80629#[derive(Debug)]
80630pub struct SynchronousDatagramSocketGetIpMulticastTtlResponder {
80631    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80632    tx_id: u32,
80633}
80634
80635/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80636/// if the responder is dropped without sending a response, so that the client
80637/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80638impl std::ops::Drop for SynchronousDatagramSocketGetIpMulticastTtlResponder {
80639    fn drop(&mut self) {
80640        self.control_handle.shutdown();
80641        // Safety: drops once, never accessed again
80642        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80643    }
80644}
80645
80646impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpMulticastTtlResponder {
80647    type ControlHandle = SynchronousDatagramSocketControlHandle;
80648
80649    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80650        &self.control_handle
80651    }
80652
80653    fn drop_without_shutdown(mut self) {
80654        // Safety: drops once, never accessed again due to mem::forget
80655        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80656        // Prevent Drop from running (which would shut down the channel)
80657        std::mem::forget(self);
80658    }
80659}
80660
80661impl SynchronousDatagramSocketGetIpMulticastTtlResponder {
80662    /// Sends a response to the FIDL transaction.
80663    ///
80664    /// Sets the channel to shutdown if an error occurs.
80665    pub fn send(
80666        self,
80667        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
80668    ) -> Result<(), fidl::Error> {
80669        let _result = self.send_raw(result);
80670        if _result.is_err() {
80671            self.control_handle.shutdown();
80672        }
80673        self.drop_without_shutdown();
80674        _result
80675    }
80676
80677    /// Similar to "send" but does not shutdown the channel if an error occurs.
80678    pub fn send_no_shutdown_on_err(
80679        self,
80680        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
80681    ) -> Result<(), fidl::Error> {
80682        let _result = self.send_raw(result);
80683        self.drop_without_shutdown();
80684        _result
80685    }
80686
80687    fn send_raw(
80688        &self,
80689        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
80690    ) -> Result<(), fidl::Error> {
80691        self.control_handle.inner.send::<fidl::encoding::ResultType<
80692            BaseNetworkSocketGetIpMulticastTtlResponse,
80693            fidl_fuchsia_posix::Errno,
80694        >>(
80695            result.map(|value| (value,)),
80696            self.tx_id,
80697            0x4665cd378f39e1a,
80698            fidl::encoding::DynamicFlags::empty(),
80699        )
80700    }
80701}
80702
80703#[must_use = "FIDL methods require a response to be sent"]
80704#[derive(Debug)]
80705pub struct SynchronousDatagramSocketSetIpMulticastLoopbackResponder {
80706    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80707    tx_id: u32,
80708}
80709
80710/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80711/// if the responder is dropped without sending a response, so that the client
80712/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80713impl std::ops::Drop for SynchronousDatagramSocketSetIpMulticastLoopbackResponder {
80714    fn drop(&mut self) {
80715        self.control_handle.shutdown();
80716        // Safety: drops once, never accessed again
80717        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80718    }
80719}
80720
80721impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpMulticastLoopbackResponder {
80722    type ControlHandle = SynchronousDatagramSocketControlHandle;
80723
80724    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80725        &self.control_handle
80726    }
80727
80728    fn drop_without_shutdown(mut self) {
80729        // Safety: drops once, never accessed again due to mem::forget
80730        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80731        // Prevent Drop from running (which would shut down the channel)
80732        std::mem::forget(self);
80733    }
80734}
80735
80736impl SynchronousDatagramSocketSetIpMulticastLoopbackResponder {
80737    /// Sends a response to the FIDL transaction.
80738    ///
80739    /// Sets the channel to shutdown if an error occurs.
80740    pub fn send(
80741        self,
80742        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80743    ) -> Result<(), fidl::Error> {
80744        let _result = self.send_raw(result);
80745        if _result.is_err() {
80746            self.control_handle.shutdown();
80747        }
80748        self.drop_without_shutdown();
80749        _result
80750    }
80751
80752    /// Similar to "send" but does not shutdown the channel if an error occurs.
80753    pub fn send_no_shutdown_on_err(
80754        self,
80755        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80756    ) -> Result<(), fidl::Error> {
80757        let _result = self.send_raw(result);
80758        self.drop_without_shutdown();
80759        _result
80760    }
80761
80762    fn send_raw(
80763        &self,
80764        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80765    ) -> Result<(), fidl::Error> {
80766        self.control_handle.inner.send::<fidl::encoding::ResultType<
80767            fidl::encoding::EmptyStruct,
80768            fidl_fuchsia_posix::Errno,
80769        >>(
80770            result,
80771            self.tx_id,
80772            0x20c55c11f00943ea,
80773            fidl::encoding::DynamicFlags::empty(),
80774        )
80775    }
80776}
80777
80778#[must_use = "FIDL methods require a response to be sent"]
80779#[derive(Debug)]
80780pub struct SynchronousDatagramSocketGetIpMulticastLoopbackResponder {
80781    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80782    tx_id: u32,
80783}
80784
80785/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80786/// if the responder is dropped without sending a response, so that the client
80787/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80788impl std::ops::Drop for SynchronousDatagramSocketGetIpMulticastLoopbackResponder {
80789    fn drop(&mut self) {
80790        self.control_handle.shutdown();
80791        // Safety: drops once, never accessed again
80792        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80793    }
80794}
80795
80796impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpMulticastLoopbackResponder {
80797    type ControlHandle = SynchronousDatagramSocketControlHandle;
80798
80799    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80800        &self.control_handle
80801    }
80802
80803    fn drop_without_shutdown(mut self) {
80804        // Safety: drops once, never accessed again due to mem::forget
80805        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80806        // Prevent Drop from running (which would shut down the channel)
80807        std::mem::forget(self);
80808    }
80809}
80810
80811impl SynchronousDatagramSocketGetIpMulticastLoopbackResponder {
80812    /// Sends a response to the FIDL transaction.
80813    ///
80814    /// Sets the channel to shutdown if an error occurs.
80815    pub fn send(
80816        self,
80817        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
80818    ) -> Result<(), fidl::Error> {
80819        let _result = self.send_raw(result);
80820        if _result.is_err() {
80821            self.control_handle.shutdown();
80822        }
80823        self.drop_without_shutdown();
80824        _result
80825    }
80826
80827    /// Similar to "send" but does not shutdown the channel if an error occurs.
80828    pub fn send_no_shutdown_on_err(
80829        self,
80830        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
80831    ) -> Result<(), fidl::Error> {
80832        let _result = self.send_raw(result);
80833        self.drop_without_shutdown();
80834        _result
80835    }
80836
80837    fn send_raw(
80838        &self,
80839        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
80840    ) -> Result<(), fidl::Error> {
80841        self.control_handle.inner.send::<fidl::encoding::ResultType<
80842            BaseNetworkSocketGetIpMulticastLoopbackResponse,
80843            fidl_fuchsia_posix::Errno,
80844        >>(
80845            result.map(|value| (value,)),
80846            self.tx_id,
80847            0x3b6b26ff558298f2,
80848            fidl::encoding::DynamicFlags::empty(),
80849        )
80850    }
80851}
80852
80853#[must_use = "FIDL methods require a response to be sent"]
80854#[derive(Debug)]
80855pub struct SynchronousDatagramSocketAddIpMembershipResponder {
80856    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80857    tx_id: u32,
80858}
80859
80860/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80861/// if the responder is dropped without sending a response, so that the client
80862/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80863impl std::ops::Drop for SynchronousDatagramSocketAddIpMembershipResponder {
80864    fn drop(&mut self) {
80865        self.control_handle.shutdown();
80866        // Safety: drops once, never accessed again
80867        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80868    }
80869}
80870
80871impl fidl::endpoints::Responder for SynchronousDatagramSocketAddIpMembershipResponder {
80872    type ControlHandle = SynchronousDatagramSocketControlHandle;
80873
80874    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80875        &self.control_handle
80876    }
80877
80878    fn drop_without_shutdown(mut self) {
80879        // Safety: drops once, never accessed again due to mem::forget
80880        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80881        // Prevent Drop from running (which would shut down the channel)
80882        std::mem::forget(self);
80883    }
80884}
80885
80886impl SynchronousDatagramSocketAddIpMembershipResponder {
80887    /// Sends a response to the FIDL transaction.
80888    ///
80889    /// Sets the channel to shutdown if an error occurs.
80890    pub fn send(
80891        self,
80892        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80893    ) -> Result<(), fidl::Error> {
80894        let _result = self.send_raw(result);
80895        if _result.is_err() {
80896            self.control_handle.shutdown();
80897        }
80898        self.drop_without_shutdown();
80899        _result
80900    }
80901
80902    /// Similar to "send" but does not shutdown the channel if an error occurs.
80903    pub fn send_no_shutdown_on_err(
80904        self,
80905        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80906    ) -> Result<(), fidl::Error> {
80907        let _result = self.send_raw(result);
80908        self.drop_without_shutdown();
80909        _result
80910    }
80911
80912    fn send_raw(
80913        &self,
80914        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80915    ) -> Result<(), fidl::Error> {
80916        self.control_handle.inner.send::<fidl::encoding::ResultType<
80917            fidl::encoding::EmptyStruct,
80918            fidl_fuchsia_posix::Errno,
80919        >>(
80920            result,
80921            self.tx_id,
80922            0x76bc7df115a3b4d0,
80923            fidl::encoding::DynamicFlags::empty(),
80924        )
80925    }
80926}
80927
80928#[must_use = "FIDL methods require a response to be sent"]
80929#[derive(Debug)]
80930pub struct SynchronousDatagramSocketDropIpMembershipResponder {
80931    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80932    tx_id: u32,
80933}
80934
80935/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80936/// if the responder is dropped without sending a response, so that the client
80937/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80938impl std::ops::Drop for SynchronousDatagramSocketDropIpMembershipResponder {
80939    fn drop(&mut self) {
80940        self.control_handle.shutdown();
80941        // Safety: drops once, never accessed again
80942        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80943    }
80944}
80945
80946impl fidl::endpoints::Responder for SynchronousDatagramSocketDropIpMembershipResponder {
80947    type ControlHandle = SynchronousDatagramSocketControlHandle;
80948
80949    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80950        &self.control_handle
80951    }
80952
80953    fn drop_without_shutdown(mut self) {
80954        // Safety: drops once, never accessed again due to mem::forget
80955        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80956        // Prevent Drop from running (which would shut down the channel)
80957        std::mem::forget(self);
80958    }
80959}
80960
80961impl SynchronousDatagramSocketDropIpMembershipResponder {
80962    /// Sends a response to the FIDL transaction.
80963    ///
80964    /// Sets the channel to shutdown if an error occurs.
80965    pub fn send(
80966        self,
80967        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80968    ) -> Result<(), fidl::Error> {
80969        let _result = self.send_raw(result);
80970        if _result.is_err() {
80971            self.control_handle.shutdown();
80972        }
80973        self.drop_without_shutdown();
80974        _result
80975    }
80976
80977    /// Similar to "send" but does not shutdown the channel if an error occurs.
80978    pub fn send_no_shutdown_on_err(
80979        self,
80980        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80981    ) -> Result<(), fidl::Error> {
80982        let _result = self.send_raw(result);
80983        self.drop_without_shutdown();
80984        _result
80985    }
80986
80987    fn send_raw(
80988        &self,
80989        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80990    ) -> Result<(), fidl::Error> {
80991        self.control_handle.inner.send::<fidl::encoding::ResultType<
80992            fidl::encoding::EmptyStruct,
80993            fidl_fuchsia_posix::Errno,
80994        >>(
80995            result,
80996            self.tx_id,
80997            0x2888f3099188d03,
80998            fidl::encoding::DynamicFlags::empty(),
80999        )
81000    }
81001}
81002
81003#[must_use = "FIDL methods require a response to be sent"]
81004#[derive(Debug)]
81005pub struct SynchronousDatagramSocketSetIpTransparentResponder {
81006    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81007    tx_id: u32,
81008}
81009
81010/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81011/// if the responder is dropped without sending a response, so that the client
81012/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81013impl std::ops::Drop for SynchronousDatagramSocketSetIpTransparentResponder {
81014    fn drop(&mut self) {
81015        self.control_handle.shutdown();
81016        // Safety: drops once, never accessed again
81017        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81018    }
81019}
81020
81021impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpTransparentResponder {
81022    type ControlHandle = SynchronousDatagramSocketControlHandle;
81023
81024    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81025        &self.control_handle
81026    }
81027
81028    fn drop_without_shutdown(mut self) {
81029        // Safety: drops once, never accessed again due to mem::forget
81030        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81031        // Prevent Drop from running (which would shut down the channel)
81032        std::mem::forget(self);
81033    }
81034}
81035
81036impl SynchronousDatagramSocketSetIpTransparentResponder {
81037    /// Sends a response to the FIDL transaction.
81038    ///
81039    /// Sets the channel to shutdown if an error occurs.
81040    pub fn send(
81041        self,
81042        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81043    ) -> Result<(), fidl::Error> {
81044        let _result = self.send_raw(result);
81045        if _result.is_err() {
81046            self.control_handle.shutdown();
81047        }
81048        self.drop_without_shutdown();
81049        _result
81050    }
81051
81052    /// Similar to "send" but does not shutdown the channel if an error occurs.
81053    pub fn send_no_shutdown_on_err(
81054        self,
81055        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81056    ) -> Result<(), fidl::Error> {
81057        let _result = self.send_raw(result);
81058        self.drop_without_shutdown();
81059        _result
81060    }
81061
81062    fn send_raw(
81063        &self,
81064        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81065    ) -> Result<(), fidl::Error> {
81066        self.control_handle.inner.send::<fidl::encoding::ResultType<
81067            fidl::encoding::EmptyStruct,
81068            fidl_fuchsia_posix::Errno,
81069        >>(
81070            result,
81071            self.tx_id,
81072            0x1ae532b0c066e3a0,
81073            fidl::encoding::DynamicFlags::empty(),
81074        )
81075    }
81076}
81077
81078#[must_use = "FIDL methods require a response to be sent"]
81079#[derive(Debug)]
81080pub struct SynchronousDatagramSocketGetIpTransparentResponder {
81081    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81082    tx_id: u32,
81083}
81084
81085/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81086/// if the responder is dropped without sending a response, so that the client
81087/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81088impl std::ops::Drop for SynchronousDatagramSocketGetIpTransparentResponder {
81089    fn drop(&mut self) {
81090        self.control_handle.shutdown();
81091        // Safety: drops once, never accessed again
81092        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81093    }
81094}
81095
81096impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpTransparentResponder {
81097    type ControlHandle = SynchronousDatagramSocketControlHandle;
81098
81099    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81100        &self.control_handle
81101    }
81102
81103    fn drop_without_shutdown(mut self) {
81104        // Safety: drops once, never accessed again due to mem::forget
81105        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81106        // Prevent Drop from running (which would shut down the channel)
81107        std::mem::forget(self);
81108    }
81109}
81110
81111impl SynchronousDatagramSocketGetIpTransparentResponder {
81112    /// Sends a response to the FIDL transaction.
81113    ///
81114    /// Sets the channel to shutdown if an error occurs.
81115    pub fn send(
81116        self,
81117        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
81118    ) -> Result<(), fidl::Error> {
81119        let _result = self.send_raw(result);
81120        if _result.is_err() {
81121            self.control_handle.shutdown();
81122        }
81123        self.drop_without_shutdown();
81124        _result
81125    }
81126
81127    /// Similar to "send" but does not shutdown the channel if an error occurs.
81128    pub fn send_no_shutdown_on_err(
81129        self,
81130        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
81131    ) -> Result<(), fidl::Error> {
81132        let _result = self.send_raw(result);
81133        self.drop_without_shutdown();
81134        _result
81135    }
81136
81137    fn send_raw(
81138        &self,
81139        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
81140    ) -> Result<(), fidl::Error> {
81141        self.control_handle.inner.send::<fidl::encoding::ResultType<
81142            BaseNetworkSocketGetIpTransparentResponse,
81143            fidl_fuchsia_posix::Errno,
81144        >>(
81145            result.map(|value| (value,)),
81146            self.tx_id,
81147            0x51d43695962ebfb5,
81148            fidl::encoding::DynamicFlags::empty(),
81149        )
81150    }
81151}
81152
81153#[must_use = "FIDL methods require a response to be sent"]
81154#[derive(Debug)]
81155pub struct SynchronousDatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
81156    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81157    tx_id: u32,
81158}
81159
81160/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81161/// if the responder is dropped without sending a response, so that the client
81162/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81163impl std::ops::Drop for SynchronousDatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
81164    fn drop(&mut self) {
81165        self.control_handle.shutdown();
81166        // Safety: drops once, never accessed again
81167        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81168    }
81169}
81170
81171impl fidl::endpoints::Responder
81172    for SynchronousDatagramSocketSetIpReceiveOriginalDestinationAddressResponder
81173{
81174    type ControlHandle = SynchronousDatagramSocketControlHandle;
81175
81176    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81177        &self.control_handle
81178    }
81179
81180    fn drop_without_shutdown(mut self) {
81181        // Safety: drops once, never accessed again due to mem::forget
81182        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81183        // Prevent Drop from running (which would shut down the channel)
81184        std::mem::forget(self);
81185    }
81186}
81187
81188impl SynchronousDatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
81189    /// Sends a response to the FIDL transaction.
81190    ///
81191    /// Sets the channel to shutdown if an error occurs.
81192    pub fn send(
81193        self,
81194        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81195    ) -> Result<(), fidl::Error> {
81196        let _result = self.send_raw(result);
81197        if _result.is_err() {
81198            self.control_handle.shutdown();
81199        }
81200        self.drop_without_shutdown();
81201        _result
81202    }
81203
81204    /// Similar to "send" but does not shutdown the channel if an error occurs.
81205    pub fn send_no_shutdown_on_err(
81206        self,
81207        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81208    ) -> Result<(), fidl::Error> {
81209        let _result = self.send_raw(result);
81210        self.drop_without_shutdown();
81211        _result
81212    }
81213
81214    fn send_raw(
81215        &self,
81216        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81217    ) -> Result<(), fidl::Error> {
81218        self.control_handle.inner.send::<fidl::encoding::ResultType<
81219            fidl::encoding::EmptyStruct,
81220            fidl_fuchsia_posix::Errno,
81221        >>(
81222            result,
81223            self.tx_id,
81224            0x4722b4ce52f7840,
81225            fidl::encoding::DynamicFlags::empty(),
81226        )
81227    }
81228}
81229
81230#[must_use = "FIDL methods require a response to be sent"]
81231#[derive(Debug)]
81232pub struct SynchronousDatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
81233    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81234    tx_id: u32,
81235}
81236
81237/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81238/// if the responder is dropped without sending a response, so that the client
81239/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81240impl std::ops::Drop for SynchronousDatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
81241    fn drop(&mut self) {
81242        self.control_handle.shutdown();
81243        // Safety: drops once, never accessed again
81244        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81245    }
81246}
81247
81248impl fidl::endpoints::Responder
81249    for SynchronousDatagramSocketGetIpReceiveOriginalDestinationAddressResponder
81250{
81251    type ControlHandle = SynchronousDatagramSocketControlHandle;
81252
81253    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81254        &self.control_handle
81255    }
81256
81257    fn drop_without_shutdown(mut self) {
81258        // Safety: drops once, never accessed again due to mem::forget
81259        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81260        // Prevent Drop from running (which would shut down the channel)
81261        std::mem::forget(self);
81262    }
81263}
81264
81265impl SynchronousDatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
81266    /// Sends a response to the FIDL transaction.
81267    ///
81268    /// Sets the channel to shutdown if an error occurs.
81269    pub fn send(
81270        self,
81271        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
81272    ) -> Result<(), fidl::Error> {
81273        let _result = self.send_raw(result);
81274        if _result.is_err() {
81275            self.control_handle.shutdown();
81276        }
81277        self.drop_without_shutdown();
81278        _result
81279    }
81280
81281    /// Similar to "send" but does not shutdown the channel if an error occurs.
81282    pub fn send_no_shutdown_on_err(
81283        self,
81284        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
81285    ) -> Result<(), fidl::Error> {
81286        let _result = self.send_raw(result);
81287        self.drop_without_shutdown();
81288        _result
81289    }
81290
81291    fn send_raw(
81292        &self,
81293        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
81294    ) -> Result<(), fidl::Error> {
81295        self.control_handle.inner.send::<fidl::encoding::ResultType<
81296            BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
81297            fidl_fuchsia_posix::Errno,
81298        >>(
81299            result.map(|value| (value,)),
81300            self.tx_id,
81301            0x2a0e7dc5d6bfdfe9,
81302            fidl::encoding::DynamicFlags::empty(),
81303        )
81304    }
81305}
81306
81307#[must_use = "FIDL methods require a response to be sent"]
81308#[derive(Debug)]
81309pub struct SynchronousDatagramSocketAddIpv6MembershipResponder {
81310    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81311    tx_id: u32,
81312}
81313
81314/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81315/// if the responder is dropped without sending a response, so that the client
81316/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81317impl std::ops::Drop for SynchronousDatagramSocketAddIpv6MembershipResponder {
81318    fn drop(&mut self) {
81319        self.control_handle.shutdown();
81320        // Safety: drops once, never accessed again
81321        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81322    }
81323}
81324
81325impl fidl::endpoints::Responder for SynchronousDatagramSocketAddIpv6MembershipResponder {
81326    type ControlHandle = SynchronousDatagramSocketControlHandle;
81327
81328    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81329        &self.control_handle
81330    }
81331
81332    fn drop_without_shutdown(mut self) {
81333        // Safety: drops once, never accessed again due to mem::forget
81334        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81335        // Prevent Drop from running (which would shut down the channel)
81336        std::mem::forget(self);
81337    }
81338}
81339
81340impl SynchronousDatagramSocketAddIpv6MembershipResponder {
81341    /// Sends a response to the FIDL transaction.
81342    ///
81343    /// Sets the channel to shutdown if an error occurs.
81344    pub fn send(
81345        self,
81346        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81347    ) -> Result<(), fidl::Error> {
81348        let _result = self.send_raw(result);
81349        if _result.is_err() {
81350            self.control_handle.shutdown();
81351        }
81352        self.drop_without_shutdown();
81353        _result
81354    }
81355
81356    /// Similar to "send" but does not shutdown the channel if an error occurs.
81357    pub fn send_no_shutdown_on_err(
81358        self,
81359        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81360    ) -> Result<(), fidl::Error> {
81361        let _result = self.send_raw(result);
81362        self.drop_without_shutdown();
81363        _result
81364    }
81365
81366    fn send_raw(
81367        &self,
81368        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81369    ) -> Result<(), fidl::Error> {
81370        self.control_handle.inner.send::<fidl::encoding::ResultType<
81371            fidl::encoding::EmptyStruct,
81372            fidl_fuchsia_posix::Errno,
81373        >>(
81374            result,
81375            self.tx_id,
81376            0x7c94727acb4ea4b3,
81377            fidl::encoding::DynamicFlags::empty(),
81378        )
81379    }
81380}
81381
81382#[must_use = "FIDL methods require a response to be sent"]
81383#[derive(Debug)]
81384pub struct SynchronousDatagramSocketDropIpv6MembershipResponder {
81385    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81386    tx_id: u32,
81387}
81388
81389/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81390/// if the responder is dropped without sending a response, so that the client
81391/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81392impl std::ops::Drop for SynchronousDatagramSocketDropIpv6MembershipResponder {
81393    fn drop(&mut self) {
81394        self.control_handle.shutdown();
81395        // Safety: drops once, never accessed again
81396        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81397    }
81398}
81399
81400impl fidl::endpoints::Responder for SynchronousDatagramSocketDropIpv6MembershipResponder {
81401    type ControlHandle = SynchronousDatagramSocketControlHandle;
81402
81403    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81404        &self.control_handle
81405    }
81406
81407    fn drop_without_shutdown(mut self) {
81408        // Safety: drops once, never accessed again due to mem::forget
81409        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81410        // Prevent Drop from running (which would shut down the channel)
81411        std::mem::forget(self);
81412    }
81413}
81414
81415impl SynchronousDatagramSocketDropIpv6MembershipResponder {
81416    /// Sends a response to the FIDL transaction.
81417    ///
81418    /// Sets the channel to shutdown if an error occurs.
81419    pub fn send(
81420        self,
81421        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81422    ) -> Result<(), fidl::Error> {
81423        let _result = self.send_raw(result);
81424        if _result.is_err() {
81425            self.control_handle.shutdown();
81426        }
81427        self.drop_without_shutdown();
81428        _result
81429    }
81430
81431    /// Similar to "send" but does not shutdown the channel if an error occurs.
81432    pub fn send_no_shutdown_on_err(
81433        self,
81434        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81435    ) -> Result<(), fidl::Error> {
81436        let _result = self.send_raw(result);
81437        self.drop_without_shutdown();
81438        _result
81439    }
81440
81441    fn send_raw(
81442        &self,
81443        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81444    ) -> Result<(), fidl::Error> {
81445        self.control_handle.inner.send::<fidl::encoding::ResultType<
81446            fidl::encoding::EmptyStruct,
81447            fidl_fuchsia_posix::Errno,
81448        >>(
81449            result,
81450            self.tx_id,
81451            0x42104c70ccaba304,
81452            fidl::encoding::DynamicFlags::empty(),
81453        )
81454    }
81455}
81456
81457#[must_use = "FIDL methods require a response to be sent"]
81458#[derive(Debug)]
81459pub struct SynchronousDatagramSocketSetIpv6MulticastInterfaceResponder {
81460    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81461    tx_id: u32,
81462}
81463
81464/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81465/// if the responder is dropped without sending a response, so that the client
81466/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81467impl std::ops::Drop for SynchronousDatagramSocketSetIpv6MulticastInterfaceResponder {
81468    fn drop(&mut self) {
81469        self.control_handle.shutdown();
81470        // Safety: drops once, never accessed again
81471        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81472    }
81473}
81474
81475impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpv6MulticastInterfaceResponder {
81476    type ControlHandle = SynchronousDatagramSocketControlHandle;
81477
81478    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81479        &self.control_handle
81480    }
81481
81482    fn drop_without_shutdown(mut self) {
81483        // Safety: drops once, never accessed again due to mem::forget
81484        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81485        // Prevent Drop from running (which would shut down the channel)
81486        std::mem::forget(self);
81487    }
81488}
81489
81490impl SynchronousDatagramSocketSetIpv6MulticastInterfaceResponder {
81491    /// Sends a response to the FIDL transaction.
81492    ///
81493    /// Sets the channel to shutdown if an error occurs.
81494    pub fn send(
81495        self,
81496        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81497    ) -> Result<(), fidl::Error> {
81498        let _result = self.send_raw(result);
81499        if _result.is_err() {
81500            self.control_handle.shutdown();
81501        }
81502        self.drop_without_shutdown();
81503        _result
81504    }
81505
81506    /// Similar to "send" but does not shutdown the channel if an error occurs.
81507    pub fn send_no_shutdown_on_err(
81508        self,
81509        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81510    ) -> Result<(), fidl::Error> {
81511        let _result = self.send_raw(result);
81512        self.drop_without_shutdown();
81513        _result
81514    }
81515
81516    fn send_raw(
81517        &self,
81518        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81519    ) -> Result<(), fidl::Error> {
81520        self.control_handle.inner.send::<fidl::encoding::ResultType<
81521            fidl::encoding::EmptyStruct,
81522            fidl_fuchsia_posix::Errno,
81523        >>(
81524            result,
81525            self.tx_id,
81526            0x135f76db3774ab3b,
81527            fidl::encoding::DynamicFlags::empty(),
81528        )
81529    }
81530}
81531
81532#[must_use = "FIDL methods require a response to be sent"]
81533#[derive(Debug)]
81534pub struct SynchronousDatagramSocketGetIpv6MulticastInterfaceResponder {
81535    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81536    tx_id: u32,
81537}
81538
81539/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81540/// if the responder is dropped without sending a response, so that the client
81541/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81542impl std::ops::Drop for SynchronousDatagramSocketGetIpv6MulticastInterfaceResponder {
81543    fn drop(&mut self) {
81544        self.control_handle.shutdown();
81545        // Safety: drops once, never accessed again
81546        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81547    }
81548}
81549
81550impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpv6MulticastInterfaceResponder {
81551    type ControlHandle = SynchronousDatagramSocketControlHandle;
81552
81553    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81554        &self.control_handle
81555    }
81556
81557    fn drop_without_shutdown(mut self) {
81558        // Safety: drops once, never accessed again due to mem::forget
81559        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81560        // Prevent Drop from running (which would shut down the channel)
81561        std::mem::forget(self);
81562    }
81563}
81564
81565impl SynchronousDatagramSocketGetIpv6MulticastInterfaceResponder {
81566    /// Sends a response to the FIDL transaction.
81567    ///
81568    /// Sets the channel to shutdown if an error occurs.
81569    pub fn send(
81570        self,
81571        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
81572    ) -> Result<(), fidl::Error> {
81573        let _result = self.send_raw(result);
81574        if _result.is_err() {
81575            self.control_handle.shutdown();
81576        }
81577        self.drop_without_shutdown();
81578        _result
81579    }
81580
81581    /// Similar to "send" but does not shutdown the channel if an error occurs.
81582    pub fn send_no_shutdown_on_err(
81583        self,
81584        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
81585    ) -> Result<(), fidl::Error> {
81586        let _result = self.send_raw(result);
81587        self.drop_without_shutdown();
81588        _result
81589    }
81590
81591    fn send_raw(
81592        &self,
81593        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
81594    ) -> Result<(), fidl::Error> {
81595        self.control_handle.inner.send::<fidl::encoding::ResultType<
81596            BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
81597            fidl_fuchsia_posix::Errno,
81598        >>(
81599            result.map(|value| (value,)),
81600            self.tx_id,
81601            0x1f26fcdd348f1882,
81602            fidl::encoding::DynamicFlags::empty(),
81603        )
81604    }
81605}
81606
81607#[must_use = "FIDL methods require a response to be sent"]
81608#[derive(Debug)]
81609pub struct SynchronousDatagramSocketSetIpv6UnicastHopsResponder {
81610    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81611    tx_id: u32,
81612}
81613
81614/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81615/// if the responder is dropped without sending a response, so that the client
81616/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81617impl std::ops::Drop for SynchronousDatagramSocketSetIpv6UnicastHopsResponder {
81618    fn drop(&mut self) {
81619        self.control_handle.shutdown();
81620        // Safety: drops once, never accessed again
81621        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81622    }
81623}
81624
81625impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpv6UnicastHopsResponder {
81626    type ControlHandle = SynchronousDatagramSocketControlHandle;
81627
81628    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81629        &self.control_handle
81630    }
81631
81632    fn drop_without_shutdown(mut self) {
81633        // Safety: drops once, never accessed again due to mem::forget
81634        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81635        // Prevent Drop from running (which would shut down the channel)
81636        std::mem::forget(self);
81637    }
81638}
81639
81640impl SynchronousDatagramSocketSetIpv6UnicastHopsResponder {
81641    /// Sends a response to the FIDL transaction.
81642    ///
81643    /// Sets the channel to shutdown if an error occurs.
81644    pub fn send(
81645        self,
81646        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81647    ) -> Result<(), fidl::Error> {
81648        let _result = self.send_raw(result);
81649        if _result.is_err() {
81650            self.control_handle.shutdown();
81651        }
81652        self.drop_without_shutdown();
81653        _result
81654    }
81655
81656    /// Similar to "send" but does not shutdown the channel if an error occurs.
81657    pub fn send_no_shutdown_on_err(
81658        self,
81659        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81660    ) -> Result<(), fidl::Error> {
81661        let _result = self.send_raw(result);
81662        self.drop_without_shutdown();
81663        _result
81664    }
81665
81666    fn send_raw(
81667        &self,
81668        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81669    ) -> Result<(), fidl::Error> {
81670        self.control_handle.inner.send::<fidl::encoding::ResultType<
81671            fidl::encoding::EmptyStruct,
81672            fidl_fuchsia_posix::Errno,
81673        >>(
81674            result,
81675            self.tx_id,
81676            0x157d51e98f462859,
81677            fidl::encoding::DynamicFlags::empty(),
81678        )
81679    }
81680}
81681
81682#[must_use = "FIDL methods require a response to be sent"]
81683#[derive(Debug)]
81684pub struct SynchronousDatagramSocketGetIpv6UnicastHopsResponder {
81685    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81686    tx_id: u32,
81687}
81688
81689/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81690/// if the responder is dropped without sending a response, so that the client
81691/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81692impl std::ops::Drop for SynchronousDatagramSocketGetIpv6UnicastHopsResponder {
81693    fn drop(&mut self) {
81694        self.control_handle.shutdown();
81695        // Safety: drops once, never accessed again
81696        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81697    }
81698}
81699
81700impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpv6UnicastHopsResponder {
81701    type ControlHandle = SynchronousDatagramSocketControlHandle;
81702
81703    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81704        &self.control_handle
81705    }
81706
81707    fn drop_without_shutdown(mut self) {
81708        // Safety: drops once, never accessed again due to mem::forget
81709        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81710        // Prevent Drop from running (which would shut down the channel)
81711        std::mem::forget(self);
81712    }
81713}
81714
81715impl SynchronousDatagramSocketGetIpv6UnicastHopsResponder {
81716    /// Sends a response to the FIDL transaction.
81717    ///
81718    /// Sets the channel to shutdown if an error occurs.
81719    pub fn send(
81720        self,
81721        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
81722    ) -> Result<(), fidl::Error> {
81723        let _result = self.send_raw(result);
81724        if _result.is_err() {
81725            self.control_handle.shutdown();
81726        }
81727        self.drop_without_shutdown();
81728        _result
81729    }
81730
81731    /// Similar to "send" but does not shutdown the channel if an error occurs.
81732    pub fn send_no_shutdown_on_err(
81733        self,
81734        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
81735    ) -> Result<(), fidl::Error> {
81736        let _result = self.send_raw(result);
81737        self.drop_without_shutdown();
81738        _result
81739    }
81740
81741    fn send_raw(
81742        &self,
81743        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
81744    ) -> Result<(), fidl::Error> {
81745        self.control_handle.inner.send::<fidl::encoding::ResultType<
81746            BaseNetworkSocketGetIpv6UnicastHopsResponse,
81747            fidl_fuchsia_posix::Errno,
81748        >>(
81749            result.map(|value| (value,)),
81750            self.tx_id,
81751            0x21f4641cad8bd8d2,
81752            fidl::encoding::DynamicFlags::empty(),
81753        )
81754    }
81755}
81756
81757#[must_use = "FIDL methods require a response to be sent"]
81758#[derive(Debug)]
81759pub struct SynchronousDatagramSocketSetIpv6ReceiveHopLimitResponder {
81760    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81761    tx_id: u32,
81762}
81763
81764/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81765/// if the responder is dropped without sending a response, so that the client
81766/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81767impl std::ops::Drop for SynchronousDatagramSocketSetIpv6ReceiveHopLimitResponder {
81768    fn drop(&mut self) {
81769        self.control_handle.shutdown();
81770        // Safety: drops once, never accessed again
81771        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81772    }
81773}
81774
81775impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpv6ReceiveHopLimitResponder {
81776    type ControlHandle = SynchronousDatagramSocketControlHandle;
81777
81778    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81779        &self.control_handle
81780    }
81781
81782    fn drop_without_shutdown(mut self) {
81783        // Safety: drops once, never accessed again due to mem::forget
81784        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81785        // Prevent Drop from running (which would shut down the channel)
81786        std::mem::forget(self);
81787    }
81788}
81789
81790impl SynchronousDatagramSocketSetIpv6ReceiveHopLimitResponder {
81791    /// Sends a response to the FIDL transaction.
81792    ///
81793    /// Sets the channel to shutdown if an error occurs.
81794    pub fn send(
81795        self,
81796        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81797    ) -> Result<(), fidl::Error> {
81798        let _result = self.send_raw(result);
81799        if _result.is_err() {
81800            self.control_handle.shutdown();
81801        }
81802        self.drop_without_shutdown();
81803        _result
81804    }
81805
81806    /// Similar to "send" but does not shutdown the channel if an error occurs.
81807    pub fn send_no_shutdown_on_err(
81808        self,
81809        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81810    ) -> Result<(), fidl::Error> {
81811        let _result = self.send_raw(result);
81812        self.drop_without_shutdown();
81813        _result
81814    }
81815
81816    fn send_raw(
81817        &self,
81818        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81819    ) -> Result<(), fidl::Error> {
81820        self.control_handle.inner.send::<fidl::encoding::ResultType<
81821            fidl::encoding::EmptyStruct,
81822            fidl_fuchsia_posix::Errno,
81823        >>(
81824            result,
81825            self.tx_id,
81826            0x5c24808ed2e84a1e,
81827            fidl::encoding::DynamicFlags::empty(),
81828        )
81829    }
81830}
81831
81832#[must_use = "FIDL methods require a response to be sent"]
81833#[derive(Debug)]
81834pub struct SynchronousDatagramSocketGetIpv6ReceiveHopLimitResponder {
81835    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81836    tx_id: u32,
81837}
81838
81839/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81840/// if the responder is dropped without sending a response, so that the client
81841/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81842impl std::ops::Drop for SynchronousDatagramSocketGetIpv6ReceiveHopLimitResponder {
81843    fn drop(&mut self) {
81844        self.control_handle.shutdown();
81845        // Safety: drops once, never accessed again
81846        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81847    }
81848}
81849
81850impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpv6ReceiveHopLimitResponder {
81851    type ControlHandle = SynchronousDatagramSocketControlHandle;
81852
81853    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81854        &self.control_handle
81855    }
81856
81857    fn drop_without_shutdown(mut self) {
81858        // Safety: drops once, never accessed again due to mem::forget
81859        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81860        // Prevent Drop from running (which would shut down the channel)
81861        std::mem::forget(self);
81862    }
81863}
81864
81865impl SynchronousDatagramSocketGetIpv6ReceiveHopLimitResponder {
81866    /// Sends a response to the FIDL transaction.
81867    ///
81868    /// Sets the channel to shutdown if an error occurs.
81869    pub fn send(
81870        self,
81871        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
81872    ) -> Result<(), fidl::Error> {
81873        let _result = self.send_raw(result);
81874        if _result.is_err() {
81875            self.control_handle.shutdown();
81876        }
81877        self.drop_without_shutdown();
81878        _result
81879    }
81880
81881    /// Similar to "send" but does not shutdown the channel if an error occurs.
81882    pub fn send_no_shutdown_on_err(
81883        self,
81884        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
81885    ) -> Result<(), fidl::Error> {
81886        let _result = self.send_raw(result);
81887        self.drop_without_shutdown();
81888        _result
81889    }
81890
81891    fn send_raw(
81892        &self,
81893        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
81894    ) -> Result<(), fidl::Error> {
81895        self.control_handle.inner.send::<fidl::encoding::ResultType<
81896            BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
81897            fidl_fuchsia_posix::Errno,
81898        >>(
81899            result.map(|value| (value,)),
81900            self.tx_id,
81901            0x341e06689885b4c0,
81902            fidl::encoding::DynamicFlags::empty(),
81903        )
81904    }
81905}
81906
81907#[must_use = "FIDL methods require a response to be sent"]
81908#[derive(Debug)]
81909pub struct SynchronousDatagramSocketSetIpv6MulticastHopsResponder {
81910    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81911    tx_id: u32,
81912}
81913
81914/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81915/// if the responder is dropped without sending a response, so that the client
81916/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81917impl std::ops::Drop for SynchronousDatagramSocketSetIpv6MulticastHopsResponder {
81918    fn drop(&mut self) {
81919        self.control_handle.shutdown();
81920        // Safety: drops once, never accessed again
81921        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81922    }
81923}
81924
81925impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpv6MulticastHopsResponder {
81926    type ControlHandle = SynchronousDatagramSocketControlHandle;
81927
81928    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81929        &self.control_handle
81930    }
81931
81932    fn drop_without_shutdown(mut self) {
81933        // Safety: drops once, never accessed again due to mem::forget
81934        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81935        // Prevent Drop from running (which would shut down the channel)
81936        std::mem::forget(self);
81937    }
81938}
81939
81940impl SynchronousDatagramSocketSetIpv6MulticastHopsResponder {
81941    /// Sends a response to the FIDL transaction.
81942    ///
81943    /// Sets the channel to shutdown if an error occurs.
81944    pub fn send(
81945        self,
81946        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81947    ) -> Result<(), fidl::Error> {
81948        let _result = self.send_raw(result);
81949        if _result.is_err() {
81950            self.control_handle.shutdown();
81951        }
81952        self.drop_without_shutdown();
81953        _result
81954    }
81955
81956    /// Similar to "send" but does not shutdown the channel if an error occurs.
81957    pub fn send_no_shutdown_on_err(
81958        self,
81959        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81960    ) -> Result<(), fidl::Error> {
81961        let _result = self.send_raw(result);
81962        self.drop_without_shutdown();
81963        _result
81964    }
81965
81966    fn send_raw(
81967        &self,
81968        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81969    ) -> Result<(), fidl::Error> {
81970        self.control_handle.inner.send::<fidl::encoding::ResultType<
81971            fidl::encoding::EmptyStruct,
81972            fidl_fuchsia_posix::Errno,
81973        >>(
81974            result,
81975            self.tx_id,
81976            0x25b9cd4d181f82c1,
81977            fidl::encoding::DynamicFlags::empty(),
81978        )
81979    }
81980}
81981
81982#[must_use = "FIDL methods require a response to be sent"]
81983#[derive(Debug)]
81984pub struct SynchronousDatagramSocketGetIpv6MulticastHopsResponder {
81985    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81986    tx_id: u32,
81987}
81988
81989/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81990/// if the responder is dropped without sending a response, so that the client
81991/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81992impl std::ops::Drop for SynchronousDatagramSocketGetIpv6MulticastHopsResponder {
81993    fn drop(&mut self) {
81994        self.control_handle.shutdown();
81995        // Safety: drops once, never accessed again
81996        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81997    }
81998}
81999
82000impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpv6MulticastHopsResponder {
82001    type ControlHandle = SynchronousDatagramSocketControlHandle;
82002
82003    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82004        &self.control_handle
82005    }
82006
82007    fn drop_without_shutdown(mut self) {
82008        // Safety: drops once, never accessed again due to mem::forget
82009        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82010        // Prevent Drop from running (which would shut down the channel)
82011        std::mem::forget(self);
82012    }
82013}
82014
82015impl SynchronousDatagramSocketGetIpv6MulticastHopsResponder {
82016    /// Sends a response to the FIDL transaction.
82017    ///
82018    /// Sets the channel to shutdown if an error occurs.
82019    pub fn send(
82020        self,
82021        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
82022    ) -> Result<(), fidl::Error> {
82023        let _result = self.send_raw(result);
82024        if _result.is_err() {
82025            self.control_handle.shutdown();
82026        }
82027        self.drop_without_shutdown();
82028        _result
82029    }
82030
82031    /// Similar to "send" but does not shutdown the channel if an error occurs.
82032    pub fn send_no_shutdown_on_err(
82033        self,
82034        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
82035    ) -> Result<(), fidl::Error> {
82036        let _result = self.send_raw(result);
82037        self.drop_without_shutdown();
82038        _result
82039    }
82040
82041    fn send_raw(
82042        &self,
82043        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
82044    ) -> Result<(), fidl::Error> {
82045        self.control_handle.inner.send::<fidl::encoding::ResultType<
82046            BaseNetworkSocketGetIpv6MulticastHopsResponse,
82047            fidl_fuchsia_posix::Errno,
82048        >>(
82049            result.map(|value| (value,)),
82050            self.tx_id,
82051            0x52916948a365012a,
82052            fidl::encoding::DynamicFlags::empty(),
82053        )
82054    }
82055}
82056
82057#[must_use = "FIDL methods require a response to be sent"]
82058#[derive(Debug)]
82059pub struct SynchronousDatagramSocketSetIpv6MulticastLoopbackResponder {
82060    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82061    tx_id: u32,
82062}
82063
82064/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82065/// if the responder is dropped without sending a response, so that the client
82066/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82067impl std::ops::Drop for SynchronousDatagramSocketSetIpv6MulticastLoopbackResponder {
82068    fn drop(&mut self) {
82069        self.control_handle.shutdown();
82070        // Safety: drops once, never accessed again
82071        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82072    }
82073}
82074
82075impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpv6MulticastLoopbackResponder {
82076    type ControlHandle = SynchronousDatagramSocketControlHandle;
82077
82078    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82079        &self.control_handle
82080    }
82081
82082    fn drop_without_shutdown(mut self) {
82083        // Safety: drops once, never accessed again due to mem::forget
82084        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82085        // Prevent Drop from running (which would shut down the channel)
82086        std::mem::forget(self);
82087    }
82088}
82089
82090impl SynchronousDatagramSocketSetIpv6MulticastLoopbackResponder {
82091    /// Sends a response to the FIDL transaction.
82092    ///
82093    /// Sets the channel to shutdown if an error occurs.
82094    pub fn send(
82095        self,
82096        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82097    ) -> Result<(), fidl::Error> {
82098        let _result = self.send_raw(result);
82099        if _result.is_err() {
82100            self.control_handle.shutdown();
82101        }
82102        self.drop_without_shutdown();
82103        _result
82104    }
82105
82106    /// Similar to "send" but does not shutdown the channel if an error occurs.
82107    pub fn send_no_shutdown_on_err(
82108        self,
82109        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82110    ) -> Result<(), fidl::Error> {
82111        let _result = self.send_raw(result);
82112        self.drop_without_shutdown();
82113        _result
82114    }
82115
82116    fn send_raw(
82117        &self,
82118        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82119    ) -> Result<(), fidl::Error> {
82120        self.control_handle.inner.send::<fidl::encoding::ResultType<
82121            fidl::encoding::EmptyStruct,
82122            fidl_fuchsia_posix::Errno,
82123        >>(
82124            result,
82125            self.tx_id,
82126            0x55701c409ff41b40,
82127            fidl::encoding::DynamicFlags::empty(),
82128        )
82129    }
82130}
82131
82132#[must_use = "FIDL methods require a response to be sent"]
82133#[derive(Debug)]
82134pub struct SynchronousDatagramSocketGetIpv6MulticastLoopbackResponder {
82135    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82136    tx_id: u32,
82137}
82138
82139/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82140/// if the responder is dropped without sending a response, so that the client
82141/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82142impl std::ops::Drop for SynchronousDatagramSocketGetIpv6MulticastLoopbackResponder {
82143    fn drop(&mut self) {
82144        self.control_handle.shutdown();
82145        // Safety: drops once, never accessed again
82146        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82147    }
82148}
82149
82150impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpv6MulticastLoopbackResponder {
82151    type ControlHandle = SynchronousDatagramSocketControlHandle;
82152
82153    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82154        &self.control_handle
82155    }
82156
82157    fn drop_without_shutdown(mut self) {
82158        // Safety: drops once, never accessed again due to mem::forget
82159        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82160        // Prevent Drop from running (which would shut down the channel)
82161        std::mem::forget(self);
82162    }
82163}
82164
82165impl SynchronousDatagramSocketGetIpv6MulticastLoopbackResponder {
82166    /// Sends a response to the FIDL transaction.
82167    ///
82168    /// Sets the channel to shutdown if an error occurs.
82169    pub fn send(
82170        self,
82171        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
82172    ) -> Result<(), fidl::Error> {
82173        let _result = self.send_raw(result);
82174        if _result.is_err() {
82175            self.control_handle.shutdown();
82176        }
82177        self.drop_without_shutdown();
82178        _result
82179    }
82180
82181    /// Similar to "send" but does not shutdown the channel if an error occurs.
82182    pub fn send_no_shutdown_on_err(
82183        self,
82184        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
82185    ) -> Result<(), fidl::Error> {
82186        let _result = self.send_raw(result);
82187        self.drop_without_shutdown();
82188        _result
82189    }
82190
82191    fn send_raw(
82192        &self,
82193        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
82194    ) -> Result<(), fidl::Error> {
82195        self.control_handle.inner.send::<fidl::encoding::ResultType<
82196            BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
82197            fidl_fuchsia_posix::Errno,
82198        >>(
82199            result.map(|value| (value,)),
82200            self.tx_id,
82201            0x4415b701fde319c3,
82202            fidl::encoding::DynamicFlags::empty(),
82203        )
82204    }
82205}
82206
82207#[must_use = "FIDL methods require a response to be sent"]
82208#[derive(Debug)]
82209pub struct SynchronousDatagramSocketSetIpv6OnlyResponder {
82210    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82211    tx_id: u32,
82212}
82213
82214/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82215/// if the responder is dropped without sending a response, so that the client
82216/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82217impl std::ops::Drop for SynchronousDatagramSocketSetIpv6OnlyResponder {
82218    fn drop(&mut self) {
82219        self.control_handle.shutdown();
82220        // Safety: drops once, never accessed again
82221        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82222    }
82223}
82224
82225impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpv6OnlyResponder {
82226    type ControlHandle = SynchronousDatagramSocketControlHandle;
82227
82228    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82229        &self.control_handle
82230    }
82231
82232    fn drop_without_shutdown(mut self) {
82233        // Safety: drops once, never accessed again due to mem::forget
82234        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82235        // Prevent Drop from running (which would shut down the channel)
82236        std::mem::forget(self);
82237    }
82238}
82239
82240impl SynchronousDatagramSocketSetIpv6OnlyResponder {
82241    /// Sends a response to the FIDL transaction.
82242    ///
82243    /// Sets the channel to shutdown if an error occurs.
82244    pub fn send(
82245        self,
82246        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82247    ) -> Result<(), fidl::Error> {
82248        let _result = self.send_raw(result);
82249        if _result.is_err() {
82250            self.control_handle.shutdown();
82251        }
82252        self.drop_without_shutdown();
82253        _result
82254    }
82255
82256    /// Similar to "send" but does not shutdown the channel if an error occurs.
82257    pub fn send_no_shutdown_on_err(
82258        self,
82259        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82260    ) -> Result<(), fidl::Error> {
82261        let _result = self.send_raw(result);
82262        self.drop_without_shutdown();
82263        _result
82264    }
82265
82266    fn send_raw(
82267        &self,
82268        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82269    ) -> Result<(), fidl::Error> {
82270        self.control_handle.inner.send::<fidl::encoding::ResultType<
82271            fidl::encoding::EmptyStruct,
82272            fidl_fuchsia_posix::Errno,
82273        >>(
82274            result,
82275            self.tx_id,
82276            0x4873f1364758cbba,
82277            fidl::encoding::DynamicFlags::empty(),
82278        )
82279    }
82280}
82281
82282#[must_use = "FIDL methods require a response to be sent"]
82283#[derive(Debug)]
82284pub struct SynchronousDatagramSocketGetIpv6OnlyResponder {
82285    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82286    tx_id: u32,
82287}
82288
82289/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82290/// if the responder is dropped without sending a response, so that the client
82291/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82292impl std::ops::Drop for SynchronousDatagramSocketGetIpv6OnlyResponder {
82293    fn drop(&mut self) {
82294        self.control_handle.shutdown();
82295        // Safety: drops once, never accessed again
82296        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82297    }
82298}
82299
82300impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpv6OnlyResponder {
82301    type ControlHandle = SynchronousDatagramSocketControlHandle;
82302
82303    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82304        &self.control_handle
82305    }
82306
82307    fn drop_without_shutdown(mut self) {
82308        // Safety: drops once, never accessed again due to mem::forget
82309        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82310        // Prevent Drop from running (which would shut down the channel)
82311        std::mem::forget(self);
82312    }
82313}
82314
82315impl SynchronousDatagramSocketGetIpv6OnlyResponder {
82316    /// Sends a response to the FIDL transaction.
82317    ///
82318    /// Sets the channel to shutdown if an error occurs.
82319    pub fn send(
82320        self,
82321        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
82322    ) -> Result<(), fidl::Error> {
82323        let _result = self.send_raw(result);
82324        if _result.is_err() {
82325            self.control_handle.shutdown();
82326        }
82327        self.drop_without_shutdown();
82328        _result
82329    }
82330
82331    /// Similar to "send" but does not shutdown the channel if an error occurs.
82332    pub fn send_no_shutdown_on_err(
82333        self,
82334        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
82335    ) -> Result<(), fidl::Error> {
82336        let _result = self.send_raw(result);
82337        self.drop_without_shutdown();
82338        _result
82339    }
82340
82341    fn send_raw(
82342        &self,
82343        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
82344    ) -> Result<(), fidl::Error> {
82345        self.control_handle.inner.send::<fidl::encoding::ResultType<
82346            BaseNetworkSocketGetIpv6OnlyResponse,
82347            fidl_fuchsia_posix::Errno,
82348        >>(
82349            result.map(|value| (value,)),
82350            self.tx_id,
82351            0x4aa3340a1a26b89c,
82352            fidl::encoding::DynamicFlags::empty(),
82353        )
82354    }
82355}
82356
82357#[must_use = "FIDL methods require a response to be sent"]
82358#[derive(Debug)]
82359pub struct SynchronousDatagramSocketSetIpv6ReceiveTrafficClassResponder {
82360    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82361    tx_id: u32,
82362}
82363
82364/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82365/// if the responder is dropped without sending a response, so that the client
82366/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82367impl std::ops::Drop for SynchronousDatagramSocketSetIpv6ReceiveTrafficClassResponder {
82368    fn drop(&mut self) {
82369        self.control_handle.shutdown();
82370        // Safety: drops once, never accessed again
82371        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82372    }
82373}
82374
82375impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpv6ReceiveTrafficClassResponder {
82376    type ControlHandle = SynchronousDatagramSocketControlHandle;
82377
82378    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82379        &self.control_handle
82380    }
82381
82382    fn drop_without_shutdown(mut self) {
82383        // Safety: drops once, never accessed again due to mem::forget
82384        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82385        // Prevent Drop from running (which would shut down the channel)
82386        std::mem::forget(self);
82387    }
82388}
82389
82390impl SynchronousDatagramSocketSetIpv6ReceiveTrafficClassResponder {
82391    /// Sends a response to the FIDL transaction.
82392    ///
82393    /// Sets the channel to shutdown if an error occurs.
82394    pub fn send(
82395        self,
82396        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82397    ) -> Result<(), fidl::Error> {
82398        let _result = self.send_raw(result);
82399        if _result.is_err() {
82400            self.control_handle.shutdown();
82401        }
82402        self.drop_without_shutdown();
82403        _result
82404    }
82405
82406    /// Similar to "send" but does not shutdown the channel if an error occurs.
82407    pub fn send_no_shutdown_on_err(
82408        self,
82409        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82410    ) -> Result<(), fidl::Error> {
82411        let _result = self.send_raw(result);
82412        self.drop_without_shutdown();
82413        _result
82414    }
82415
82416    fn send_raw(
82417        &self,
82418        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82419    ) -> Result<(), fidl::Error> {
82420        self.control_handle.inner.send::<fidl::encoding::ResultType<
82421            fidl::encoding::EmptyStruct,
82422            fidl_fuchsia_posix::Errno,
82423        >>(
82424            result,
82425            self.tx_id,
82426            0x58f07c8788d099a0,
82427            fidl::encoding::DynamicFlags::empty(),
82428        )
82429    }
82430}
82431
82432#[must_use = "FIDL methods require a response to be sent"]
82433#[derive(Debug)]
82434pub struct SynchronousDatagramSocketGetIpv6ReceiveTrafficClassResponder {
82435    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82436    tx_id: u32,
82437}
82438
82439/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82440/// if the responder is dropped without sending a response, so that the client
82441/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82442impl std::ops::Drop for SynchronousDatagramSocketGetIpv6ReceiveTrafficClassResponder {
82443    fn drop(&mut self) {
82444        self.control_handle.shutdown();
82445        // Safety: drops once, never accessed again
82446        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82447    }
82448}
82449
82450impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpv6ReceiveTrafficClassResponder {
82451    type ControlHandle = SynchronousDatagramSocketControlHandle;
82452
82453    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82454        &self.control_handle
82455    }
82456
82457    fn drop_without_shutdown(mut self) {
82458        // Safety: drops once, never accessed again due to mem::forget
82459        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82460        // Prevent Drop from running (which would shut down the channel)
82461        std::mem::forget(self);
82462    }
82463}
82464
82465impl SynchronousDatagramSocketGetIpv6ReceiveTrafficClassResponder {
82466    /// Sends a response to the FIDL transaction.
82467    ///
82468    /// Sets the channel to shutdown if an error occurs.
82469    pub fn send(
82470        self,
82471        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
82472    ) -> Result<(), fidl::Error> {
82473        let _result = self.send_raw(result);
82474        if _result.is_err() {
82475            self.control_handle.shutdown();
82476        }
82477        self.drop_without_shutdown();
82478        _result
82479    }
82480
82481    /// Similar to "send" but does not shutdown the channel if an error occurs.
82482    pub fn send_no_shutdown_on_err(
82483        self,
82484        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
82485    ) -> Result<(), fidl::Error> {
82486        let _result = self.send_raw(result);
82487        self.drop_without_shutdown();
82488        _result
82489    }
82490
82491    fn send_raw(
82492        &self,
82493        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
82494    ) -> Result<(), fidl::Error> {
82495        self.control_handle.inner.send::<fidl::encoding::ResultType<
82496            BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
82497            fidl_fuchsia_posix::Errno,
82498        >>(
82499            result.map(|value| (value,)),
82500            self.tx_id,
82501            0x2e334df1da553ffa,
82502            fidl::encoding::DynamicFlags::empty(),
82503        )
82504    }
82505}
82506
82507#[must_use = "FIDL methods require a response to be sent"]
82508#[derive(Debug)]
82509pub struct SynchronousDatagramSocketSetIpv6TrafficClassResponder {
82510    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82511    tx_id: u32,
82512}
82513
82514/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82515/// if the responder is dropped without sending a response, so that the client
82516/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82517impl std::ops::Drop for SynchronousDatagramSocketSetIpv6TrafficClassResponder {
82518    fn drop(&mut self) {
82519        self.control_handle.shutdown();
82520        // Safety: drops once, never accessed again
82521        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82522    }
82523}
82524
82525impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpv6TrafficClassResponder {
82526    type ControlHandle = SynchronousDatagramSocketControlHandle;
82527
82528    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82529        &self.control_handle
82530    }
82531
82532    fn drop_without_shutdown(mut self) {
82533        // Safety: drops once, never accessed again due to mem::forget
82534        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82535        // Prevent Drop from running (which would shut down the channel)
82536        std::mem::forget(self);
82537    }
82538}
82539
82540impl SynchronousDatagramSocketSetIpv6TrafficClassResponder {
82541    /// Sends a response to the FIDL transaction.
82542    ///
82543    /// Sets the channel to shutdown if an error occurs.
82544    pub fn send(
82545        self,
82546        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82547    ) -> Result<(), fidl::Error> {
82548        let _result = self.send_raw(result);
82549        if _result.is_err() {
82550            self.control_handle.shutdown();
82551        }
82552        self.drop_without_shutdown();
82553        _result
82554    }
82555
82556    /// Similar to "send" but does not shutdown the channel if an error occurs.
82557    pub fn send_no_shutdown_on_err(
82558        self,
82559        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82560    ) -> Result<(), fidl::Error> {
82561        let _result = self.send_raw(result);
82562        self.drop_without_shutdown();
82563        _result
82564    }
82565
82566    fn send_raw(
82567        &self,
82568        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82569    ) -> Result<(), fidl::Error> {
82570        self.control_handle.inner.send::<fidl::encoding::ResultType<
82571            fidl::encoding::EmptyStruct,
82572            fidl_fuchsia_posix::Errno,
82573        >>(
82574            result,
82575            self.tx_id,
82576            0x6af077800c5a0b4f,
82577            fidl::encoding::DynamicFlags::empty(),
82578        )
82579    }
82580}
82581
82582#[must_use = "FIDL methods require a response to be sent"]
82583#[derive(Debug)]
82584pub struct SynchronousDatagramSocketGetIpv6TrafficClassResponder {
82585    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82586    tx_id: u32,
82587}
82588
82589/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82590/// if the responder is dropped without sending a response, so that the client
82591/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82592impl std::ops::Drop for SynchronousDatagramSocketGetIpv6TrafficClassResponder {
82593    fn drop(&mut self) {
82594        self.control_handle.shutdown();
82595        // Safety: drops once, never accessed again
82596        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82597    }
82598}
82599
82600impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpv6TrafficClassResponder {
82601    type ControlHandle = SynchronousDatagramSocketControlHandle;
82602
82603    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82604        &self.control_handle
82605    }
82606
82607    fn drop_without_shutdown(mut self) {
82608        // Safety: drops once, never accessed again due to mem::forget
82609        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82610        // Prevent Drop from running (which would shut down the channel)
82611        std::mem::forget(self);
82612    }
82613}
82614
82615impl SynchronousDatagramSocketGetIpv6TrafficClassResponder {
82616    /// Sends a response to the FIDL transaction.
82617    ///
82618    /// Sets the channel to shutdown if an error occurs.
82619    pub fn send(
82620        self,
82621        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
82622    ) -> Result<(), fidl::Error> {
82623        let _result = self.send_raw(result);
82624        if _result.is_err() {
82625            self.control_handle.shutdown();
82626        }
82627        self.drop_without_shutdown();
82628        _result
82629    }
82630
82631    /// Similar to "send" but does not shutdown the channel if an error occurs.
82632    pub fn send_no_shutdown_on_err(
82633        self,
82634        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
82635    ) -> Result<(), fidl::Error> {
82636        let _result = self.send_raw(result);
82637        self.drop_without_shutdown();
82638        _result
82639    }
82640
82641    fn send_raw(
82642        &self,
82643        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
82644    ) -> Result<(), fidl::Error> {
82645        self.control_handle.inner.send::<fidl::encoding::ResultType<
82646            BaseNetworkSocketGetIpv6TrafficClassResponse,
82647            fidl_fuchsia_posix::Errno,
82648        >>(
82649            result.map(|value| (value,)),
82650            self.tx_id,
82651            0x6baf6eed8fc2f04,
82652            fidl::encoding::DynamicFlags::empty(),
82653        )
82654    }
82655}
82656
82657#[must_use = "FIDL methods require a response to be sent"]
82658#[derive(Debug)]
82659pub struct SynchronousDatagramSocketSetIpv6ReceivePacketInfoResponder {
82660    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82661    tx_id: u32,
82662}
82663
82664/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82665/// if the responder is dropped without sending a response, so that the client
82666/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82667impl std::ops::Drop for SynchronousDatagramSocketSetIpv6ReceivePacketInfoResponder {
82668    fn drop(&mut self) {
82669        self.control_handle.shutdown();
82670        // Safety: drops once, never accessed again
82671        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82672    }
82673}
82674
82675impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpv6ReceivePacketInfoResponder {
82676    type ControlHandle = SynchronousDatagramSocketControlHandle;
82677
82678    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82679        &self.control_handle
82680    }
82681
82682    fn drop_without_shutdown(mut self) {
82683        // Safety: drops once, never accessed again due to mem::forget
82684        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82685        // Prevent Drop from running (which would shut down the channel)
82686        std::mem::forget(self);
82687    }
82688}
82689
82690impl SynchronousDatagramSocketSetIpv6ReceivePacketInfoResponder {
82691    /// Sends a response to the FIDL transaction.
82692    ///
82693    /// Sets the channel to shutdown if an error occurs.
82694    pub fn send(
82695        self,
82696        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82697    ) -> Result<(), fidl::Error> {
82698        let _result = self.send_raw(result);
82699        if _result.is_err() {
82700            self.control_handle.shutdown();
82701        }
82702        self.drop_without_shutdown();
82703        _result
82704    }
82705
82706    /// Similar to "send" but does not shutdown the channel if an error occurs.
82707    pub fn send_no_shutdown_on_err(
82708        self,
82709        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82710    ) -> Result<(), fidl::Error> {
82711        let _result = self.send_raw(result);
82712        self.drop_without_shutdown();
82713        _result
82714    }
82715
82716    fn send_raw(
82717        &self,
82718        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82719    ) -> Result<(), fidl::Error> {
82720        self.control_handle.inner.send::<fidl::encoding::ResultType<
82721            fidl::encoding::EmptyStruct,
82722            fidl_fuchsia_posix::Errno,
82723        >>(
82724            result,
82725            self.tx_id,
82726            0x19259775b1a92768,
82727            fidl::encoding::DynamicFlags::empty(),
82728        )
82729    }
82730}
82731
82732#[must_use = "FIDL methods require a response to be sent"]
82733#[derive(Debug)]
82734pub struct SynchronousDatagramSocketGetIpv6ReceivePacketInfoResponder {
82735    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82736    tx_id: u32,
82737}
82738
82739/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82740/// if the responder is dropped without sending a response, so that the client
82741/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82742impl std::ops::Drop for SynchronousDatagramSocketGetIpv6ReceivePacketInfoResponder {
82743    fn drop(&mut self) {
82744        self.control_handle.shutdown();
82745        // Safety: drops once, never accessed again
82746        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82747    }
82748}
82749
82750impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpv6ReceivePacketInfoResponder {
82751    type ControlHandle = SynchronousDatagramSocketControlHandle;
82752
82753    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82754        &self.control_handle
82755    }
82756
82757    fn drop_without_shutdown(mut self) {
82758        // Safety: drops once, never accessed again due to mem::forget
82759        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82760        // Prevent Drop from running (which would shut down the channel)
82761        std::mem::forget(self);
82762    }
82763}
82764
82765impl SynchronousDatagramSocketGetIpv6ReceivePacketInfoResponder {
82766    /// Sends a response to the FIDL transaction.
82767    ///
82768    /// Sets the channel to shutdown if an error occurs.
82769    pub fn send(
82770        self,
82771        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
82772    ) -> Result<(), fidl::Error> {
82773        let _result = self.send_raw(result);
82774        if _result.is_err() {
82775            self.control_handle.shutdown();
82776        }
82777        self.drop_without_shutdown();
82778        _result
82779    }
82780
82781    /// Similar to "send" but does not shutdown the channel if an error occurs.
82782    pub fn send_no_shutdown_on_err(
82783        self,
82784        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
82785    ) -> Result<(), fidl::Error> {
82786        let _result = self.send_raw(result);
82787        self.drop_without_shutdown();
82788        _result
82789    }
82790
82791    fn send_raw(
82792        &self,
82793        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
82794    ) -> Result<(), fidl::Error> {
82795        self.control_handle.inner.send::<fidl::encoding::ResultType<
82796            BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
82797            fidl_fuchsia_posix::Errno,
82798        >>(
82799            result.map(|value| (value,)),
82800            self.tx_id,
82801            0x7acd4a2775baec75,
82802            fidl::encoding::DynamicFlags::empty(),
82803        )
82804    }
82805}
82806
82807#[must_use = "FIDL methods require a response to be sent"]
82808#[derive(Debug)]
82809pub struct SynchronousDatagramSocketGetOriginalDestinationResponder {
82810    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82811    tx_id: u32,
82812}
82813
82814/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82815/// if the responder is dropped without sending a response, so that the client
82816/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82817impl std::ops::Drop for SynchronousDatagramSocketGetOriginalDestinationResponder {
82818    fn drop(&mut self) {
82819        self.control_handle.shutdown();
82820        // Safety: drops once, never accessed again
82821        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82822    }
82823}
82824
82825impl fidl::endpoints::Responder for SynchronousDatagramSocketGetOriginalDestinationResponder {
82826    type ControlHandle = SynchronousDatagramSocketControlHandle;
82827
82828    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82829        &self.control_handle
82830    }
82831
82832    fn drop_without_shutdown(mut self) {
82833        // Safety: drops once, never accessed again due to mem::forget
82834        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82835        // Prevent Drop from running (which would shut down the channel)
82836        std::mem::forget(self);
82837    }
82838}
82839
82840impl SynchronousDatagramSocketGetOriginalDestinationResponder {
82841    /// Sends a response to the FIDL transaction.
82842    ///
82843    /// Sets the channel to shutdown if an error occurs.
82844    pub fn send(
82845        self,
82846        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
82847    ) -> Result<(), fidl::Error> {
82848        let _result = self.send_raw(result);
82849        if _result.is_err() {
82850            self.control_handle.shutdown();
82851        }
82852        self.drop_without_shutdown();
82853        _result
82854    }
82855
82856    /// Similar to "send" but does not shutdown the channel if an error occurs.
82857    pub fn send_no_shutdown_on_err(
82858        self,
82859        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
82860    ) -> Result<(), fidl::Error> {
82861        let _result = self.send_raw(result);
82862        self.drop_without_shutdown();
82863        _result
82864    }
82865
82866    fn send_raw(
82867        &self,
82868        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
82869    ) -> Result<(), fidl::Error> {
82870        self.control_handle.inner.send::<fidl::encoding::ResultType<
82871            BaseNetworkSocketGetOriginalDestinationResponse,
82872            fidl_fuchsia_posix::Errno,
82873        >>(
82874            result.map(|value| (value,)),
82875            self.tx_id,
82876            0x38bf28f0dafdbac0,
82877            fidl::encoding::DynamicFlags::empty(),
82878        )
82879    }
82880}
82881
82882#[must_use = "FIDL methods require a response to be sent"]
82883#[derive(Debug)]
82884pub struct SynchronousDatagramSocketGetInfoResponder {
82885    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82886    tx_id: u32,
82887}
82888
82889/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82890/// if the responder is dropped without sending a response, so that the client
82891/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82892impl std::ops::Drop for SynchronousDatagramSocketGetInfoResponder {
82893    fn drop(&mut self) {
82894        self.control_handle.shutdown();
82895        // Safety: drops once, never accessed again
82896        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82897    }
82898}
82899
82900impl fidl::endpoints::Responder for SynchronousDatagramSocketGetInfoResponder {
82901    type ControlHandle = SynchronousDatagramSocketControlHandle;
82902
82903    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82904        &self.control_handle
82905    }
82906
82907    fn drop_without_shutdown(mut self) {
82908        // Safety: drops once, never accessed again due to mem::forget
82909        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82910        // Prevent Drop from running (which would shut down the channel)
82911        std::mem::forget(self);
82912    }
82913}
82914
82915impl SynchronousDatagramSocketGetInfoResponder {
82916    /// Sends a response to the FIDL transaction.
82917    ///
82918    /// Sets the channel to shutdown if an error occurs.
82919    pub fn send(
82920        self,
82921        mut result: Result<(Domain, DatagramSocketProtocol), fidl_fuchsia_posix::Errno>,
82922    ) -> Result<(), fidl::Error> {
82923        let _result = self.send_raw(result);
82924        if _result.is_err() {
82925            self.control_handle.shutdown();
82926        }
82927        self.drop_without_shutdown();
82928        _result
82929    }
82930
82931    /// Similar to "send" but does not shutdown the channel if an error occurs.
82932    pub fn send_no_shutdown_on_err(
82933        self,
82934        mut result: Result<(Domain, DatagramSocketProtocol), fidl_fuchsia_posix::Errno>,
82935    ) -> Result<(), fidl::Error> {
82936        let _result = self.send_raw(result);
82937        self.drop_without_shutdown();
82938        _result
82939    }
82940
82941    fn send_raw(
82942        &self,
82943        mut result: Result<(Domain, DatagramSocketProtocol), fidl_fuchsia_posix::Errno>,
82944    ) -> Result<(), fidl::Error> {
82945        self.control_handle.inner.send::<fidl::encoding::ResultType<
82946            BaseDatagramSocketGetInfoResponse,
82947            fidl_fuchsia_posix::Errno,
82948        >>(
82949            result,
82950            self.tx_id,
82951            0x48aa0a1f6a32d2ed,
82952            fidl::encoding::DynamicFlags::empty(),
82953        )
82954    }
82955}
82956
82957#[must_use = "FIDL methods require a response to be sent"]
82958#[derive(Debug)]
82959pub struct SynchronousDatagramSocketDescribeResponder {
82960    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82961    tx_id: u32,
82962}
82963
82964/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82965/// if the responder is dropped without sending a response, so that the client
82966/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82967impl std::ops::Drop for SynchronousDatagramSocketDescribeResponder {
82968    fn drop(&mut self) {
82969        self.control_handle.shutdown();
82970        // Safety: drops once, never accessed again
82971        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82972    }
82973}
82974
82975impl fidl::endpoints::Responder for SynchronousDatagramSocketDescribeResponder {
82976    type ControlHandle = SynchronousDatagramSocketControlHandle;
82977
82978    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82979        &self.control_handle
82980    }
82981
82982    fn drop_without_shutdown(mut self) {
82983        // Safety: drops once, never accessed again due to mem::forget
82984        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82985        // Prevent Drop from running (which would shut down the channel)
82986        std::mem::forget(self);
82987    }
82988}
82989
82990impl SynchronousDatagramSocketDescribeResponder {
82991    /// Sends a response to the FIDL transaction.
82992    ///
82993    /// Sets the channel to shutdown if an error occurs.
82994    pub fn send(
82995        self,
82996        mut payload: SynchronousDatagramSocketDescribeResponse,
82997    ) -> Result<(), fidl::Error> {
82998        let _result = self.send_raw(payload);
82999        if _result.is_err() {
83000            self.control_handle.shutdown();
83001        }
83002        self.drop_without_shutdown();
83003        _result
83004    }
83005
83006    /// Similar to "send" but does not shutdown the channel if an error occurs.
83007    pub fn send_no_shutdown_on_err(
83008        self,
83009        mut payload: SynchronousDatagramSocketDescribeResponse,
83010    ) -> Result<(), fidl::Error> {
83011        let _result = self.send_raw(payload);
83012        self.drop_without_shutdown();
83013        _result
83014    }
83015
83016    fn send_raw(
83017        &self,
83018        mut payload: SynchronousDatagramSocketDescribeResponse,
83019    ) -> Result<(), fidl::Error> {
83020        self.control_handle.inner.send::<SynchronousDatagramSocketDescribeResponse>(
83021            &mut payload,
83022            self.tx_id,
83023            0x585f20b73631070d,
83024            fidl::encoding::DynamicFlags::empty(),
83025        )
83026    }
83027}
83028
83029#[must_use = "FIDL methods require a response to be sent"]
83030#[derive(Debug)]
83031pub struct SynchronousDatagramSocketRecvMsgResponder {
83032    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
83033    tx_id: u32,
83034}
83035
83036/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
83037/// if the responder is dropped without sending a response, so that the client
83038/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
83039impl std::ops::Drop for SynchronousDatagramSocketRecvMsgResponder {
83040    fn drop(&mut self) {
83041        self.control_handle.shutdown();
83042        // Safety: drops once, never accessed again
83043        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
83044    }
83045}
83046
83047impl fidl::endpoints::Responder for SynchronousDatagramSocketRecvMsgResponder {
83048    type ControlHandle = SynchronousDatagramSocketControlHandle;
83049
83050    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
83051        &self.control_handle
83052    }
83053
83054    fn drop_without_shutdown(mut self) {
83055        // Safety: drops once, never accessed again due to mem::forget
83056        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
83057        // Prevent Drop from running (which would shut down the channel)
83058        std::mem::forget(self);
83059    }
83060}
83061
83062impl SynchronousDatagramSocketRecvMsgResponder {
83063    /// Sends a response to the FIDL transaction.
83064    ///
83065    /// Sets the channel to shutdown if an error occurs.
83066    pub fn send(
83067        self,
83068        mut result: Result<
83069            (Option<&fidl_fuchsia_net::SocketAddress>, &[u8], &DatagramSocketRecvControlData, u32),
83070            fidl_fuchsia_posix::Errno,
83071        >,
83072    ) -> Result<(), fidl::Error> {
83073        let _result = self.send_raw(result);
83074        if _result.is_err() {
83075            self.control_handle.shutdown();
83076        }
83077        self.drop_without_shutdown();
83078        _result
83079    }
83080
83081    /// Similar to "send" but does not shutdown the channel if an error occurs.
83082    pub fn send_no_shutdown_on_err(
83083        self,
83084        mut result: Result<
83085            (Option<&fidl_fuchsia_net::SocketAddress>, &[u8], &DatagramSocketRecvControlData, u32),
83086            fidl_fuchsia_posix::Errno,
83087        >,
83088    ) -> Result<(), fidl::Error> {
83089        let _result = self.send_raw(result);
83090        self.drop_without_shutdown();
83091        _result
83092    }
83093
83094    fn send_raw(
83095        &self,
83096        mut result: Result<
83097            (Option<&fidl_fuchsia_net::SocketAddress>, &[u8], &DatagramSocketRecvControlData, u32),
83098            fidl_fuchsia_posix::Errno,
83099        >,
83100    ) -> Result<(), fidl::Error> {
83101        self.control_handle.inner.send::<fidl::encoding::ResultType<
83102            SynchronousDatagramSocketRecvMsgResponse,
83103            fidl_fuchsia_posix::Errno,
83104        >>(
83105            result,
83106            self.tx_id,
83107            0x28e494e48fb5dbf3,
83108            fidl::encoding::DynamicFlags::empty(),
83109        )
83110    }
83111}
83112
83113#[must_use = "FIDL methods require a response to be sent"]
83114#[derive(Debug)]
83115pub struct SynchronousDatagramSocketSendMsgResponder {
83116    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
83117    tx_id: u32,
83118}
83119
83120/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
83121/// if the responder is dropped without sending a response, so that the client
83122/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
83123impl std::ops::Drop for SynchronousDatagramSocketSendMsgResponder {
83124    fn drop(&mut self) {
83125        self.control_handle.shutdown();
83126        // Safety: drops once, never accessed again
83127        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
83128    }
83129}
83130
83131impl fidl::endpoints::Responder for SynchronousDatagramSocketSendMsgResponder {
83132    type ControlHandle = SynchronousDatagramSocketControlHandle;
83133
83134    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
83135        &self.control_handle
83136    }
83137
83138    fn drop_without_shutdown(mut self) {
83139        // Safety: drops once, never accessed again due to mem::forget
83140        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
83141        // Prevent Drop from running (which would shut down the channel)
83142        std::mem::forget(self);
83143    }
83144}
83145
83146impl SynchronousDatagramSocketSendMsgResponder {
83147    /// Sends a response to the FIDL transaction.
83148    ///
83149    /// Sets the channel to shutdown if an error occurs.
83150    pub fn send(
83151        self,
83152        mut result: Result<i64, fidl_fuchsia_posix::Errno>,
83153    ) -> Result<(), fidl::Error> {
83154        let _result = self.send_raw(result);
83155        if _result.is_err() {
83156            self.control_handle.shutdown();
83157        }
83158        self.drop_without_shutdown();
83159        _result
83160    }
83161
83162    /// Similar to "send" but does not shutdown the channel if an error occurs.
83163    pub fn send_no_shutdown_on_err(
83164        self,
83165        mut result: Result<i64, fidl_fuchsia_posix::Errno>,
83166    ) -> Result<(), fidl::Error> {
83167        let _result = self.send_raw(result);
83168        self.drop_without_shutdown();
83169        _result
83170    }
83171
83172    fn send_raw(
83173        &self,
83174        mut result: Result<i64, fidl_fuchsia_posix::Errno>,
83175    ) -> Result<(), fidl::Error> {
83176        self.control_handle.inner.send::<fidl::encoding::ResultType<
83177            SynchronousDatagramSocketSendMsgResponse,
83178            fidl_fuchsia_posix::Errno,
83179        >>(
83180            result.map(|len| (len,)),
83181            self.tx_id,
83182            0x12dc2fceab6cefaa,
83183            fidl::encoding::DynamicFlags::empty(),
83184        )
83185    }
83186}
83187
83188mod internal {
83189    use super::*;
83190
83191    impl fidl::encoding::ResourceTypeMarker for ProviderDatagramSocketDeprecatedResponse {
83192        type Borrowed<'a> = &'a mut Self;
83193        fn take_or_borrow<'a>(
83194            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
83195        ) -> Self::Borrowed<'a> {
83196            value
83197        }
83198    }
83199
83200    unsafe impl fidl::encoding::TypeMarker for ProviderDatagramSocketDeprecatedResponse {
83201        type Owned = Self;
83202
83203        #[inline(always)]
83204        fn inline_align(_context: fidl::encoding::Context) -> usize {
83205            4
83206        }
83207
83208        #[inline(always)]
83209        fn inline_size(_context: fidl::encoding::Context) -> usize {
83210            4
83211        }
83212    }
83213
83214    unsafe impl
83215        fidl::encoding::Encode<
83216            ProviderDatagramSocketDeprecatedResponse,
83217            fidl::encoding::DefaultFuchsiaResourceDialect,
83218        > for &mut ProviderDatagramSocketDeprecatedResponse
83219    {
83220        #[inline]
83221        unsafe fn encode(
83222            self,
83223            encoder: &mut fidl::encoding::Encoder<
83224                '_,
83225                fidl::encoding::DefaultFuchsiaResourceDialect,
83226            >,
83227            offset: usize,
83228            _depth: fidl::encoding::Depth,
83229        ) -> fidl::Result<()> {
83230            encoder.debug_check_bounds::<ProviderDatagramSocketDeprecatedResponse>(offset);
83231            // Delegate to tuple encoding.
83232            fidl::encoding::Encode::<
83233                ProviderDatagramSocketDeprecatedResponse,
83234                fidl::encoding::DefaultFuchsiaResourceDialect,
83235            >::encode(
83236                (<fidl::encoding::Endpoint<
83237                    fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
83238                > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
83239                    &mut self.s
83240                ),),
83241                encoder,
83242                offset,
83243                _depth,
83244            )
83245        }
83246    }
83247    unsafe impl<
83248            T0: fidl::encoding::Encode<
83249                fidl::encoding::Endpoint<
83250                    fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
83251                >,
83252                fidl::encoding::DefaultFuchsiaResourceDialect,
83253            >,
83254        >
83255        fidl::encoding::Encode<
83256            ProviderDatagramSocketDeprecatedResponse,
83257            fidl::encoding::DefaultFuchsiaResourceDialect,
83258        > for (T0,)
83259    {
83260        #[inline]
83261        unsafe fn encode(
83262            self,
83263            encoder: &mut fidl::encoding::Encoder<
83264                '_,
83265                fidl::encoding::DefaultFuchsiaResourceDialect,
83266            >,
83267            offset: usize,
83268            depth: fidl::encoding::Depth,
83269        ) -> fidl::Result<()> {
83270            encoder.debug_check_bounds::<ProviderDatagramSocketDeprecatedResponse>(offset);
83271            // Zero out padding regions. There's no need to apply masks
83272            // because the unmasked parts will be overwritten by fields.
83273            // Write the fields.
83274            self.0.encode(encoder, offset + 0, depth)?;
83275            Ok(())
83276        }
83277    }
83278
83279    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
83280        for ProviderDatagramSocketDeprecatedResponse
83281    {
83282        #[inline(always)]
83283        fn new_empty() -> Self {
83284            Self {
83285                s: fidl::new_empty!(
83286                    fidl::encoding::Endpoint<
83287                        fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
83288                    >,
83289                    fidl::encoding::DefaultFuchsiaResourceDialect
83290                ),
83291            }
83292        }
83293
83294        #[inline]
83295        unsafe fn decode(
83296            &mut self,
83297            decoder: &mut fidl::encoding::Decoder<
83298                '_,
83299                fidl::encoding::DefaultFuchsiaResourceDialect,
83300            >,
83301            offset: usize,
83302            _depth: fidl::encoding::Depth,
83303        ) -> fidl::Result<()> {
83304            decoder.debug_check_bounds::<Self>(offset);
83305            // Verify that padding bytes are zero.
83306            fidl::decode!(
83307                fidl::encoding::Endpoint<
83308                    fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
83309                >,
83310                fidl::encoding::DefaultFuchsiaResourceDialect,
83311                &mut self.s,
83312                decoder,
83313                offset + 0,
83314                _depth
83315            )?;
83316            Ok(())
83317        }
83318    }
83319
83320    impl fidl::encoding::ResourceTypeMarker for ProviderStreamSocketWithOptionsResponse {
83321        type Borrowed<'a> = &'a mut Self;
83322        fn take_or_borrow<'a>(
83323            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
83324        ) -> Self::Borrowed<'a> {
83325            value
83326        }
83327    }
83328
83329    unsafe impl fidl::encoding::TypeMarker for ProviderStreamSocketWithOptionsResponse {
83330        type Owned = Self;
83331
83332        #[inline(always)]
83333        fn inline_align(_context: fidl::encoding::Context) -> usize {
83334            4
83335        }
83336
83337        #[inline(always)]
83338        fn inline_size(_context: fidl::encoding::Context) -> usize {
83339            4
83340        }
83341    }
83342
83343    unsafe impl
83344        fidl::encoding::Encode<
83345            ProviderStreamSocketWithOptionsResponse,
83346            fidl::encoding::DefaultFuchsiaResourceDialect,
83347        > for &mut ProviderStreamSocketWithOptionsResponse
83348    {
83349        #[inline]
83350        unsafe fn encode(
83351            self,
83352            encoder: &mut fidl::encoding::Encoder<
83353                '_,
83354                fidl::encoding::DefaultFuchsiaResourceDialect,
83355            >,
83356            offset: usize,
83357            _depth: fidl::encoding::Depth,
83358        ) -> fidl::Result<()> {
83359            encoder.debug_check_bounds::<ProviderStreamSocketWithOptionsResponse>(offset);
83360            // Delegate to tuple encoding.
83361            fidl::encoding::Encode::<ProviderStreamSocketWithOptionsResponse, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
83362                (
83363                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.s),
83364                ),
83365                encoder, offset, _depth
83366            )
83367        }
83368    }
83369    unsafe impl<
83370            T0: fidl::encoding::Encode<
83371                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>>,
83372                fidl::encoding::DefaultFuchsiaResourceDialect,
83373            >,
83374        >
83375        fidl::encoding::Encode<
83376            ProviderStreamSocketWithOptionsResponse,
83377            fidl::encoding::DefaultFuchsiaResourceDialect,
83378        > for (T0,)
83379    {
83380        #[inline]
83381        unsafe fn encode(
83382            self,
83383            encoder: &mut fidl::encoding::Encoder<
83384                '_,
83385                fidl::encoding::DefaultFuchsiaResourceDialect,
83386            >,
83387            offset: usize,
83388            depth: fidl::encoding::Depth,
83389        ) -> fidl::Result<()> {
83390            encoder.debug_check_bounds::<ProviderStreamSocketWithOptionsResponse>(offset);
83391            // Zero out padding regions. There's no need to apply masks
83392            // because the unmasked parts will be overwritten by fields.
83393            // Write the fields.
83394            self.0.encode(encoder, offset + 0, depth)?;
83395            Ok(())
83396        }
83397    }
83398
83399    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
83400        for ProviderStreamSocketWithOptionsResponse
83401    {
83402        #[inline(always)]
83403        fn new_empty() -> Self {
83404            Self {
83405                s: fidl::new_empty!(
83406                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>>,
83407                    fidl::encoding::DefaultFuchsiaResourceDialect
83408                ),
83409            }
83410        }
83411
83412        #[inline]
83413        unsafe fn decode(
83414            &mut self,
83415            decoder: &mut fidl::encoding::Decoder<
83416                '_,
83417                fidl::encoding::DefaultFuchsiaResourceDialect,
83418            >,
83419            offset: usize,
83420            _depth: fidl::encoding::Depth,
83421        ) -> fidl::Result<()> {
83422            decoder.debug_check_bounds::<Self>(offset);
83423            // Verify that padding bytes are zero.
83424            fidl::decode!(
83425                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>>,
83426                fidl::encoding::DefaultFuchsiaResourceDialect,
83427                &mut self.s,
83428                decoder,
83429                offset + 0,
83430                _depth
83431            )?;
83432            Ok(())
83433        }
83434    }
83435
83436    impl fidl::encoding::ResourceTypeMarker for ProviderStreamSocketResponse {
83437        type Borrowed<'a> = &'a mut Self;
83438        fn take_or_borrow<'a>(
83439            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
83440        ) -> Self::Borrowed<'a> {
83441            value
83442        }
83443    }
83444
83445    unsafe impl fidl::encoding::TypeMarker for ProviderStreamSocketResponse {
83446        type Owned = Self;
83447
83448        #[inline(always)]
83449        fn inline_align(_context: fidl::encoding::Context) -> usize {
83450            4
83451        }
83452
83453        #[inline(always)]
83454        fn inline_size(_context: fidl::encoding::Context) -> usize {
83455            4
83456        }
83457    }
83458
83459    unsafe impl
83460        fidl::encoding::Encode<
83461            ProviderStreamSocketResponse,
83462            fidl::encoding::DefaultFuchsiaResourceDialect,
83463        > for &mut ProviderStreamSocketResponse
83464    {
83465        #[inline]
83466        unsafe fn encode(
83467            self,
83468            encoder: &mut fidl::encoding::Encoder<
83469                '_,
83470                fidl::encoding::DefaultFuchsiaResourceDialect,
83471            >,
83472            offset: usize,
83473            _depth: fidl::encoding::Depth,
83474        ) -> fidl::Result<()> {
83475            encoder.debug_check_bounds::<ProviderStreamSocketResponse>(offset);
83476            // Delegate to tuple encoding.
83477            fidl::encoding::Encode::<ProviderStreamSocketResponse, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
83478                (
83479                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.s),
83480                ),
83481                encoder, offset, _depth
83482            )
83483        }
83484    }
83485    unsafe impl<
83486            T0: fidl::encoding::Encode<
83487                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>>,
83488                fidl::encoding::DefaultFuchsiaResourceDialect,
83489            >,
83490        >
83491        fidl::encoding::Encode<
83492            ProviderStreamSocketResponse,
83493            fidl::encoding::DefaultFuchsiaResourceDialect,
83494        > for (T0,)
83495    {
83496        #[inline]
83497        unsafe fn encode(
83498            self,
83499            encoder: &mut fidl::encoding::Encoder<
83500                '_,
83501                fidl::encoding::DefaultFuchsiaResourceDialect,
83502            >,
83503            offset: usize,
83504            depth: fidl::encoding::Depth,
83505        ) -> fidl::Result<()> {
83506            encoder.debug_check_bounds::<ProviderStreamSocketResponse>(offset);
83507            // Zero out padding regions. There's no need to apply masks
83508            // because the unmasked parts will be overwritten by fields.
83509            // Write the fields.
83510            self.0.encode(encoder, offset + 0, depth)?;
83511            Ok(())
83512        }
83513    }
83514
83515    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
83516        for ProviderStreamSocketResponse
83517    {
83518        #[inline(always)]
83519        fn new_empty() -> Self {
83520            Self {
83521                s: fidl::new_empty!(
83522                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>>,
83523                    fidl::encoding::DefaultFuchsiaResourceDialect
83524                ),
83525            }
83526        }
83527
83528        #[inline]
83529        unsafe fn decode(
83530            &mut self,
83531            decoder: &mut fidl::encoding::Decoder<
83532                '_,
83533                fidl::encoding::DefaultFuchsiaResourceDialect,
83534            >,
83535            offset: usize,
83536            _depth: fidl::encoding::Depth,
83537        ) -> fidl::Result<()> {
83538            decoder.debug_check_bounds::<Self>(offset);
83539            // Verify that padding bytes are zero.
83540            fidl::decode!(
83541                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>>,
83542                fidl::encoding::DefaultFuchsiaResourceDialect,
83543                &mut self.s,
83544                decoder,
83545                offset + 0,
83546                _depth
83547            )?;
83548            Ok(())
83549        }
83550    }
83551
83552    impl fidl::encoding::ResourceTypeMarker for StreamSocketAcceptResponse {
83553        type Borrowed<'a> = &'a mut Self;
83554        fn take_or_borrow<'a>(
83555            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
83556        ) -> Self::Borrowed<'a> {
83557            value
83558        }
83559    }
83560
83561    unsafe impl fidl::encoding::TypeMarker for StreamSocketAcceptResponse {
83562        type Owned = Self;
83563
83564        #[inline(always)]
83565        fn inline_align(_context: fidl::encoding::Context) -> usize {
83566            8
83567        }
83568
83569        #[inline(always)]
83570        fn inline_size(_context: fidl::encoding::Context) -> usize {
83571            24
83572        }
83573    }
83574
83575    unsafe impl
83576        fidl::encoding::Encode<
83577            StreamSocketAcceptResponse,
83578            fidl::encoding::DefaultFuchsiaResourceDialect,
83579        > for &mut StreamSocketAcceptResponse
83580    {
83581        #[inline]
83582        unsafe fn encode(
83583            self,
83584            encoder: &mut fidl::encoding::Encoder<
83585                '_,
83586                fidl::encoding::DefaultFuchsiaResourceDialect,
83587            >,
83588            offset: usize,
83589            _depth: fidl::encoding::Depth,
83590        ) -> fidl::Result<()> {
83591            encoder.debug_check_bounds::<StreamSocketAcceptResponse>(offset);
83592            // Delegate to tuple encoding.
83593            fidl::encoding::Encode::<StreamSocketAcceptResponse, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
83594                (
83595                    <fidl::encoding::OptionalUnion<fidl_fuchsia_net::SocketAddress> as fidl::encoding::ValueTypeMarker>::borrow(&self.addr),
83596                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.s),
83597                ),
83598                encoder, offset, _depth
83599            )
83600        }
83601    }
83602    unsafe impl<
83603            T0: fidl::encoding::Encode<
83604                fidl::encoding::OptionalUnion<fidl_fuchsia_net::SocketAddress>,
83605                fidl::encoding::DefaultFuchsiaResourceDialect,
83606            >,
83607            T1: fidl::encoding::Encode<
83608                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>>,
83609                fidl::encoding::DefaultFuchsiaResourceDialect,
83610            >,
83611        >
83612        fidl::encoding::Encode<
83613            StreamSocketAcceptResponse,
83614            fidl::encoding::DefaultFuchsiaResourceDialect,
83615        > for (T0, T1)
83616    {
83617        #[inline]
83618        unsafe fn encode(
83619            self,
83620            encoder: &mut fidl::encoding::Encoder<
83621                '_,
83622                fidl::encoding::DefaultFuchsiaResourceDialect,
83623            >,
83624            offset: usize,
83625            depth: fidl::encoding::Depth,
83626        ) -> fidl::Result<()> {
83627            encoder.debug_check_bounds::<StreamSocketAcceptResponse>(offset);
83628            // Zero out padding regions. There's no need to apply masks
83629            // because the unmasked parts will be overwritten by fields.
83630            unsafe {
83631                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
83632                (ptr as *mut u64).write_unaligned(0);
83633            }
83634            // Write the fields.
83635            self.0.encode(encoder, offset + 0, depth)?;
83636            self.1.encode(encoder, offset + 16, depth)?;
83637            Ok(())
83638        }
83639    }
83640
83641    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
83642        for StreamSocketAcceptResponse
83643    {
83644        #[inline(always)]
83645        fn new_empty() -> Self {
83646            Self {
83647                addr: fidl::new_empty!(
83648                    fidl::encoding::OptionalUnion<fidl_fuchsia_net::SocketAddress>,
83649                    fidl::encoding::DefaultFuchsiaResourceDialect
83650                ),
83651                s: fidl::new_empty!(
83652                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>>,
83653                    fidl::encoding::DefaultFuchsiaResourceDialect
83654                ),
83655            }
83656        }
83657
83658        #[inline]
83659        unsafe fn decode(
83660            &mut self,
83661            decoder: &mut fidl::encoding::Decoder<
83662                '_,
83663                fidl::encoding::DefaultFuchsiaResourceDialect,
83664            >,
83665            offset: usize,
83666            _depth: fidl::encoding::Depth,
83667        ) -> fidl::Result<()> {
83668            decoder.debug_check_bounds::<Self>(offset);
83669            // Verify that padding bytes are zero.
83670            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
83671            let padval = unsafe { (ptr as *const u64).read_unaligned() };
83672            let mask = 0xffffffff00000000u64;
83673            let maskedval = padval & mask;
83674            if maskedval != 0 {
83675                return Err(fidl::Error::NonZeroPadding {
83676                    padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
83677                });
83678            }
83679            fidl::decode!(
83680                fidl::encoding::OptionalUnion<fidl_fuchsia_net::SocketAddress>,
83681                fidl::encoding::DefaultFuchsiaResourceDialect,
83682                &mut self.addr,
83683                decoder,
83684                offset + 0,
83685                _depth
83686            )?;
83687            fidl::decode!(
83688                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>>,
83689                fidl::encoding::DefaultFuchsiaResourceDialect,
83690                &mut self.s,
83691                decoder,
83692                offset + 16,
83693                _depth
83694            )?;
83695            Ok(())
83696        }
83697    }
83698
83699    impl DatagramSocketDescribeResponse {
83700        #[inline(always)]
83701        fn max_ordinal_present(&self) -> u64 {
83702            if let Some(_) = self.metadata_encoding_protocol_version {
83703                return 4;
83704            }
83705            if let Some(_) = self.rx_meta_buf_size {
83706                return 3;
83707            }
83708            if let Some(_) = self.tx_meta_buf_size {
83709                return 2;
83710            }
83711            if let Some(_) = self.socket {
83712                return 1;
83713            }
83714            0
83715        }
83716    }
83717
83718    impl fidl::encoding::ResourceTypeMarker for DatagramSocketDescribeResponse {
83719        type Borrowed<'a> = &'a mut Self;
83720        fn take_or_borrow<'a>(
83721            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
83722        ) -> Self::Borrowed<'a> {
83723            value
83724        }
83725    }
83726
83727    unsafe impl fidl::encoding::TypeMarker for DatagramSocketDescribeResponse {
83728        type Owned = Self;
83729
83730        #[inline(always)]
83731        fn inline_align(_context: fidl::encoding::Context) -> usize {
83732            8
83733        }
83734
83735        #[inline(always)]
83736        fn inline_size(_context: fidl::encoding::Context) -> usize {
83737            16
83738        }
83739    }
83740
83741    unsafe impl
83742        fidl::encoding::Encode<
83743            DatagramSocketDescribeResponse,
83744            fidl::encoding::DefaultFuchsiaResourceDialect,
83745        > for &mut DatagramSocketDescribeResponse
83746    {
83747        unsafe fn encode(
83748            self,
83749            encoder: &mut fidl::encoding::Encoder<
83750                '_,
83751                fidl::encoding::DefaultFuchsiaResourceDialect,
83752            >,
83753            offset: usize,
83754            mut depth: fidl::encoding::Depth,
83755        ) -> fidl::Result<()> {
83756            encoder.debug_check_bounds::<DatagramSocketDescribeResponse>(offset);
83757            // Vector header
83758            let max_ordinal: u64 = self.max_ordinal_present();
83759            encoder.write_num(max_ordinal, offset);
83760            encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
83761            // Calling encoder.out_of_line_offset(0) is not allowed.
83762            if max_ordinal == 0 {
83763                return Ok(());
83764            }
83765            depth.increment()?;
83766            let envelope_size = 8;
83767            let bytes_len = max_ordinal as usize * envelope_size;
83768            #[allow(unused_variables)]
83769            let offset = encoder.out_of_line_offset(bytes_len);
83770            let mut _prev_end_offset: usize = 0;
83771            if 1 > max_ordinal {
83772                return Ok(());
83773            }
83774
83775            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
83776            // are envelope_size bytes.
83777            let cur_offset: usize = (1 - 1) * envelope_size;
83778
83779            // Zero reserved fields.
83780            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
83781
83782            // Safety:
83783            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
83784            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
83785            //   envelope_size bytes, there is always sufficient room.
83786            fidl::encoding::encode_in_envelope_optional::<
83787                fidl::encoding::HandleType<
83788                    fidl::Socket,
83789                    { fidl::ObjectType::SOCKET.into_raw() },
83790                    2147483648,
83791                >,
83792                fidl::encoding::DefaultFuchsiaResourceDialect,
83793            >(
83794                self.socket.as_mut().map(
83795                    <fidl::encoding::HandleType<
83796                        fidl::Socket,
83797                        { fidl::ObjectType::SOCKET.into_raw() },
83798                        2147483648,
83799                    > as fidl::encoding::ResourceTypeMarker>::take_or_borrow,
83800                ),
83801                encoder,
83802                offset + cur_offset,
83803                depth,
83804            )?;
83805
83806            _prev_end_offset = cur_offset + envelope_size;
83807            if 2 > max_ordinal {
83808                return Ok(());
83809            }
83810
83811            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
83812            // are envelope_size bytes.
83813            let cur_offset: usize = (2 - 1) * envelope_size;
83814
83815            // Zero reserved fields.
83816            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
83817
83818            // Safety:
83819            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
83820            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
83821            //   envelope_size bytes, there is always sufficient room.
83822            fidl::encoding::encode_in_envelope_optional::<
83823                u64,
83824                fidl::encoding::DefaultFuchsiaResourceDialect,
83825            >(
83826                self.tx_meta_buf_size
83827                    .as_ref()
83828                    .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
83829                encoder,
83830                offset + cur_offset,
83831                depth,
83832            )?;
83833
83834            _prev_end_offset = cur_offset + envelope_size;
83835            if 3 > max_ordinal {
83836                return Ok(());
83837            }
83838
83839            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
83840            // are envelope_size bytes.
83841            let cur_offset: usize = (3 - 1) * envelope_size;
83842
83843            // Zero reserved fields.
83844            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
83845
83846            // Safety:
83847            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
83848            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
83849            //   envelope_size bytes, there is always sufficient room.
83850            fidl::encoding::encode_in_envelope_optional::<
83851                u64,
83852                fidl::encoding::DefaultFuchsiaResourceDialect,
83853            >(
83854                self.rx_meta_buf_size
83855                    .as_ref()
83856                    .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
83857                encoder,
83858                offset + cur_offset,
83859                depth,
83860            )?;
83861
83862            _prev_end_offset = cur_offset + envelope_size;
83863            if 4 > max_ordinal {
83864                return Ok(());
83865            }
83866
83867            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
83868            // are envelope_size bytes.
83869            let cur_offset: usize = (4 - 1) * envelope_size;
83870
83871            // Zero reserved fields.
83872            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
83873
83874            // Safety:
83875            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
83876            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
83877            //   envelope_size bytes, there is always sufficient room.
83878            fidl::encoding::encode_in_envelope_optional::<
83879                UdpMetadataEncodingProtocolVersion,
83880                fidl::encoding::DefaultFuchsiaResourceDialect,
83881            >(
83882                self.metadata_encoding_protocol_version.as_ref().map(
83883                    <UdpMetadataEncodingProtocolVersion as fidl::encoding::ValueTypeMarker>::borrow,
83884                ),
83885                encoder,
83886                offset + cur_offset,
83887                depth,
83888            )?;
83889
83890            _prev_end_offset = cur_offset + envelope_size;
83891
83892            Ok(())
83893        }
83894    }
83895
83896    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
83897        for DatagramSocketDescribeResponse
83898    {
83899        #[inline(always)]
83900        fn new_empty() -> Self {
83901            Self::default()
83902        }
83903
83904        unsafe fn decode(
83905            &mut self,
83906            decoder: &mut fidl::encoding::Decoder<
83907                '_,
83908                fidl::encoding::DefaultFuchsiaResourceDialect,
83909            >,
83910            offset: usize,
83911            mut depth: fidl::encoding::Depth,
83912        ) -> fidl::Result<()> {
83913            decoder.debug_check_bounds::<Self>(offset);
83914            let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
83915                None => return Err(fidl::Error::NotNullable),
83916                Some(len) => len,
83917            };
83918            // Calling decoder.out_of_line_offset(0) is not allowed.
83919            if len == 0 {
83920                return Ok(());
83921            };
83922            depth.increment()?;
83923            let envelope_size = 8;
83924            let bytes_len = len * envelope_size;
83925            let offset = decoder.out_of_line_offset(bytes_len)?;
83926            // Decode the envelope for each type.
83927            let mut _next_ordinal_to_read = 0;
83928            let mut next_offset = offset;
83929            let end_offset = offset + bytes_len;
83930            _next_ordinal_to_read += 1;
83931            if next_offset >= end_offset {
83932                return Ok(());
83933            }
83934
83935            // Decode unknown envelopes for gaps in ordinals.
83936            while _next_ordinal_to_read < 1 {
83937                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
83938                _next_ordinal_to_read += 1;
83939                next_offset += envelope_size;
83940            }
83941
83942            let next_out_of_line = decoder.next_out_of_line();
83943            let handles_before = decoder.remaining_handles();
83944            if let Some((inlined, num_bytes, num_handles)) =
83945                fidl::encoding::decode_envelope_header(decoder, next_offset)?
83946            {
83947                let member_inline_size = <fidl::encoding::HandleType<
83948                    fidl::Socket,
83949                    { fidl::ObjectType::SOCKET.into_raw() },
83950                    2147483648,
83951                > as fidl::encoding::TypeMarker>::inline_size(
83952                    decoder.context
83953                );
83954                if inlined != (member_inline_size <= 4) {
83955                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
83956                }
83957                let inner_offset;
83958                let mut inner_depth = depth.clone();
83959                if inlined {
83960                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
83961                    inner_offset = next_offset;
83962                } else {
83963                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
83964                    inner_depth.increment()?;
83965                }
83966                let val_ref =
83967                self.socket.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::HandleType<fidl::Socket, { fidl::ObjectType::SOCKET.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect));
83968                fidl::decode!(fidl::encoding::HandleType<fidl::Socket, { fidl::ObjectType::SOCKET.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect, val_ref, decoder, inner_offset, inner_depth)?;
83969                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
83970                {
83971                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
83972                }
83973                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
83974                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
83975                }
83976            }
83977
83978            next_offset += envelope_size;
83979            _next_ordinal_to_read += 1;
83980            if next_offset >= end_offset {
83981                return Ok(());
83982            }
83983
83984            // Decode unknown envelopes for gaps in ordinals.
83985            while _next_ordinal_to_read < 2 {
83986                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
83987                _next_ordinal_to_read += 1;
83988                next_offset += envelope_size;
83989            }
83990
83991            let next_out_of_line = decoder.next_out_of_line();
83992            let handles_before = decoder.remaining_handles();
83993            if let Some((inlined, num_bytes, num_handles)) =
83994                fidl::encoding::decode_envelope_header(decoder, next_offset)?
83995            {
83996                let member_inline_size =
83997                    <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
83998                if inlined != (member_inline_size <= 4) {
83999                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
84000                }
84001                let inner_offset;
84002                let mut inner_depth = depth.clone();
84003                if inlined {
84004                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
84005                    inner_offset = next_offset;
84006                } else {
84007                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
84008                    inner_depth.increment()?;
84009                }
84010                let val_ref = self.tx_meta_buf_size.get_or_insert_with(|| {
84011                    fidl::new_empty!(u64, fidl::encoding::DefaultFuchsiaResourceDialect)
84012                });
84013                fidl::decode!(
84014                    u64,
84015                    fidl::encoding::DefaultFuchsiaResourceDialect,
84016                    val_ref,
84017                    decoder,
84018                    inner_offset,
84019                    inner_depth
84020                )?;
84021                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
84022                {
84023                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
84024                }
84025                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
84026                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
84027                }
84028            }
84029
84030            next_offset += envelope_size;
84031            _next_ordinal_to_read += 1;
84032            if next_offset >= end_offset {
84033                return Ok(());
84034            }
84035
84036            // Decode unknown envelopes for gaps in ordinals.
84037            while _next_ordinal_to_read < 3 {
84038                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
84039                _next_ordinal_to_read += 1;
84040                next_offset += envelope_size;
84041            }
84042
84043            let next_out_of_line = decoder.next_out_of_line();
84044            let handles_before = decoder.remaining_handles();
84045            if let Some((inlined, num_bytes, num_handles)) =
84046                fidl::encoding::decode_envelope_header(decoder, next_offset)?
84047            {
84048                let member_inline_size =
84049                    <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
84050                if inlined != (member_inline_size <= 4) {
84051                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
84052                }
84053                let inner_offset;
84054                let mut inner_depth = depth.clone();
84055                if inlined {
84056                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
84057                    inner_offset = next_offset;
84058                } else {
84059                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
84060                    inner_depth.increment()?;
84061                }
84062                let val_ref = self.rx_meta_buf_size.get_or_insert_with(|| {
84063                    fidl::new_empty!(u64, fidl::encoding::DefaultFuchsiaResourceDialect)
84064                });
84065                fidl::decode!(
84066                    u64,
84067                    fidl::encoding::DefaultFuchsiaResourceDialect,
84068                    val_ref,
84069                    decoder,
84070                    inner_offset,
84071                    inner_depth
84072                )?;
84073                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
84074                {
84075                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
84076                }
84077                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
84078                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
84079                }
84080            }
84081
84082            next_offset += envelope_size;
84083            _next_ordinal_to_read += 1;
84084            if next_offset >= end_offset {
84085                return Ok(());
84086            }
84087
84088            // Decode unknown envelopes for gaps in ordinals.
84089            while _next_ordinal_to_read < 4 {
84090                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
84091                _next_ordinal_to_read += 1;
84092                next_offset += envelope_size;
84093            }
84094
84095            let next_out_of_line = decoder.next_out_of_line();
84096            let handles_before = decoder.remaining_handles();
84097            if let Some((inlined, num_bytes, num_handles)) =
84098                fidl::encoding::decode_envelope_header(decoder, next_offset)?
84099            {
84100                let member_inline_size =
84101                    <UdpMetadataEncodingProtocolVersion as fidl::encoding::TypeMarker>::inline_size(
84102                        decoder.context,
84103                    );
84104                if inlined != (member_inline_size <= 4) {
84105                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
84106                }
84107                let inner_offset;
84108                let mut inner_depth = depth.clone();
84109                if inlined {
84110                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
84111                    inner_offset = next_offset;
84112                } else {
84113                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
84114                    inner_depth.increment()?;
84115                }
84116                let val_ref = self.metadata_encoding_protocol_version.get_or_insert_with(|| {
84117                    fidl::new_empty!(
84118                        UdpMetadataEncodingProtocolVersion,
84119                        fidl::encoding::DefaultFuchsiaResourceDialect
84120                    )
84121                });
84122                fidl::decode!(
84123                    UdpMetadataEncodingProtocolVersion,
84124                    fidl::encoding::DefaultFuchsiaResourceDialect,
84125                    val_ref,
84126                    decoder,
84127                    inner_offset,
84128                    inner_depth
84129                )?;
84130                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
84131                {
84132                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
84133                }
84134                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
84135                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
84136                }
84137            }
84138
84139            next_offset += envelope_size;
84140
84141            // Decode the remaining unknown envelopes.
84142            while next_offset < end_offset {
84143                _next_ordinal_to_read += 1;
84144                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
84145                next_offset += envelope_size;
84146            }
84147
84148            Ok(())
84149        }
84150    }
84151
84152    impl DatagramSocketRecvMsgPostflightResponse {
84153        #[inline(always)]
84154        fn max_ordinal_present(&self) -> u64 {
84155            if let Some(_) = self.requests {
84156                return 3;
84157            }
84158            if let Some(_) = self.timestamp {
84159                return 2;
84160            }
84161            if let Some(_) = self.validity {
84162                return 1;
84163            }
84164            0
84165        }
84166    }
84167
84168    impl fidl::encoding::ResourceTypeMarker for DatagramSocketRecvMsgPostflightResponse {
84169        type Borrowed<'a> = &'a mut Self;
84170        fn take_or_borrow<'a>(
84171            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
84172        ) -> Self::Borrowed<'a> {
84173            value
84174        }
84175    }
84176
84177    unsafe impl fidl::encoding::TypeMarker for DatagramSocketRecvMsgPostflightResponse {
84178        type Owned = Self;
84179
84180        #[inline(always)]
84181        fn inline_align(_context: fidl::encoding::Context) -> usize {
84182            8
84183        }
84184
84185        #[inline(always)]
84186        fn inline_size(_context: fidl::encoding::Context) -> usize {
84187            16
84188        }
84189    }
84190
84191    unsafe impl
84192        fidl::encoding::Encode<
84193            DatagramSocketRecvMsgPostflightResponse,
84194            fidl::encoding::DefaultFuchsiaResourceDialect,
84195        > for &mut DatagramSocketRecvMsgPostflightResponse
84196    {
84197        unsafe fn encode(
84198            self,
84199            encoder: &mut fidl::encoding::Encoder<
84200                '_,
84201                fidl::encoding::DefaultFuchsiaResourceDialect,
84202            >,
84203            offset: usize,
84204            mut depth: fidl::encoding::Depth,
84205        ) -> fidl::Result<()> {
84206            encoder.debug_check_bounds::<DatagramSocketRecvMsgPostflightResponse>(offset);
84207            // Vector header
84208            let max_ordinal: u64 = self.max_ordinal_present();
84209            encoder.write_num(max_ordinal, offset);
84210            encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
84211            // Calling encoder.out_of_line_offset(0) is not allowed.
84212            if max_ordinal == 0 {
84213                return Ok(());
84214            }
84215            depth.increment()?;
84216            let envelope_size = 8;
84217            let bytes_len = max_ordinal as usize * envelope_size;
84218            #[allow(unused_variables)]
84219            let offset = encoder.out_of_line_offset(bytes_len);
84220            let mut _prev_end_offset: usize = 0;
84221            if 1 > max_ordinal {
84222                return Ok(());
84223            }
84224
84225            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
84226            // are envelope_size bytes.
84227            let cur_offset: usize = (1 - 1) * envelope_size;
84228
84229            // Zero reserved fields.
84230            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
84231
84232            // Safety:
84233            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
84234            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
84235            //   envelope_size bytes, there is always sufficient room.
84236            fidl::encoding::encode_in_envelope_optional::<
84237                fidl::encoding::HandleType<
84238                    fidl::EventPair,
84239                    { fidl::ObjectType::EVENTPAIR.into_raw() },
84240                    49155,
84241                >,
84242                fidl::encoding::DefaultFuchsiaResourceDialect,
84243            >(
84244                self.validity.as_mut().map(
84245                    <fidl::encoding::HandleType<
84246                        fidl::EventPair,
84247                        { fidl::ObjectType::EVENTPAIR.into_raw() },
84248                        49155,
84249                    > as fidl::encoding::ResourceTypeMarker>::take_or_borrow,
84250                ),
84251                encoder,
84252                offset + cur_offset,
84253                depth,
84254            )?;
84255
84256            _prev_end_offset = cur_offset + envelope_size;
84257            if 2 > max_ordinal {
84258                return Ok(());
84259            }
84260
84261            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
84262            // are envelope_size bytes.
84263            let cur_offset: usize = (2 - 1) * envelope_size;
84264
84265            // Zero reserved fields.
84266            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
84267
84268            // Safety:
84269            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
84270            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
84271            //   envelope_size bytes, there is always sufficient room.
84272            fidl::encoding::encode_in_envelope_optional::<
84273                TimestampOption,
84274                fidl::encoding::DefaultFuchsiaResourceDialect,
84275            >(
84276                self.timestamp
84277                    .as_ref()
84278                    .map(<TimestampOption as fidl::encoding::ValueTypeMarker>::borrow),
84279                encoder,
84280                offset + cur_offset,
84281                depth,
84282            )?;
84283
84284            _prev_end_offset = cur_offset + envelope_size;
84285            if 3 > max_ordinal {
84286                return Ok(());
84287            }
84288
84289            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
84290            // are envelope_size bytes.
84291            let cur_offset: usize = (3 - 1) * envelope_size;
84292
84293            // Zero reserved fields.
84294            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
84295
84296            // Safety:
84297            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
84298            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
84299            //   envelope_size bytes, there is always sufficient room.
84300            fidl::encoding::encode_in_envelope_optional::<
84301                CmsgRequests,
84302                fidl::encoding::DefaultFuchsiaResourceDialect,
84303            >(
84304                self.requests
84305                    .as_ref()
84306                    .map(<CmsgRequests as fidl::encoding::ValueTypeMarker>::borrow),
84307                encoder,
84308                offset + cur_offset,
84309                depth,
84310            )?;
84311
84312            _prev_end_offset = cur_offset + envelope_size;
84313
84314            Ok(())
84315        }
84316    }
84317
84318    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
84319        for DatagramSocketRecvMsgPostflightResponse
84320    {
84321        #[inline(always)]
84322        fn new_empty() -> Self {
84323            Self::default()
84324        }
84325
84326        unsafe fn decode(
84327            &mut self,
84328            decoder: &mut fidl::encoding::Decoder<
84329                '_,
84330                fidl::encoding::DefaultFuchsiaResourceDialect,
84331            >,
84332            offset: usize,
84333            mut depth: fidl::encoding::Depth,
84334        ) -> fidl::Result<()> {
84335            decoder.debug_check_bounds::<Self>(offset);
84336            let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
84337                None => return Err(fidl::Error::NotNullable),
84338                Some(len) => len,
84339            };
84340            // Calling decoder.out_of_line_offset(0) is not allowed.
84341            if len == 0 {
84342                return Ok(());
84343            };
84344            depth.increment()?;
84345            let envelope_size = 8;
84346            let bytes_len = len * envelope_size;
84347            let offset = decoder.out_of_line_offset(bytes_len)?;
84348            // Decode the envelope for each type.
84349            let mut _next_ordinal_to_read = 0;
84350            let mut next_offset = offset;
84351            let end_offset = offset + bytes_len;
84352            _next_ordinal_to_read += 1;
84353            if next_offset >= end_offset {
84354                return Ok(());
84355            }
84356
84357            // Decode unknown envelopes for gaps in ordinals.
84358            while _next_ordinal_to_read < 1 {
84359                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
84360                _next_ordinal_to_read += 1;
84361                next_offset += envelope_size;
84362            }
84363
84364            let next_out_of_line = decoder.next_out_of_line();
84365            let handles_before = decoder.remaining_handles();
84366            if let Some((inlined, num_bytes, num_handles)) =
84367                fidl::encoding::decode_envelope_header(decoder, next_offset)?
84368            {
84369                let member_inline_size = <fidl::encoding::HandleType<
84370                    fidl::EventPair,
84371                    { fidl::ObjectType::EVENTPAIR.into_raw() },
84372                    49155,
84373                > as fidl::encoding::TypeMarker>::inline_size(
84374                    decoder.context
84375                );
84376                if inlined != (member_inline_size <= 4) {
84377                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
84378                }
84379                let inner_offset;
84380                let mut inner_depth = depth.clone();
84381                if inlined {
84382                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
84383                    inner_offset = next_offset;
84384                } else {
84385                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
84386                    inner_depth.increment()?;
84387                }
84388                let val_ref =
84389                self.validity.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::HandleType<fidl::EventPair, { fidl::ObjectType::EVENTPAIR.into_raw() }, 49155>, fidl::encoding::DefaultFuchsiaResourceDialect));
84390                fidl::decode!(fidl::encoding::HandleType<fidl::EventPair, { fidl::ObjectType::EVENTPAIR.into_raw() }, 49155>, fidl::encoding::DefaultFuchsiaResourceDialect, val_ref, decoder, inner_offset, inner_depth)?;
84391                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
84392                {
84393                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
84394                }
84395                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
84396                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
84397                }
84398            }
84399
84400            next_offset += envelope_size;
84401            _next_ordinal_to_read += 1;
84402            if next_offset >= end_offset {
84403                return Ok(());
84404            }
84405
84406            // Decode unknown envelopes for gaps in ordinals.
84407            while _next_ordinal_to_read < 2 {
84408                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
84409                _next_ordinal_to_read += 1;
84410                next_offset += envelope_size;
84411            }
84412
84413            let next_out_of_line = decoder.next_out_of_line();
84414            let handles_before = decoder.remaining_handles();
84415            if let Some((inlined, num_bytes, num_handles)) =
84416                fidl::encoding::decode_envelope_header(decoder, next_offset)?
84417            {
84418                let member_inline_size =
84419                    <TimestampOption as fidl::encoding::TypeMarker>::inline_size(decoder.context);
84420                if inlined != (member_inline_size <= 4) {
84421                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
84422                }
84423                let inner_offset;
84424                let mut inner_depth = depth.clone();
84425                if inlined {
84426                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
84427                    inner_offset = next_offset;
84428                } else {
84429                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
84430                    inner_depth.increment()?;
84431                }
84432                let val_ref = self.timestamp.get_or_insert_with(|| {
84433                    fidl::new_empty!(TimestampOption, fidl::encoding::DefaultFuchsiaResourceDialect)
84434                });
84435                fidl::decode!(
84436                    TimestampOption,
84437                    fidl::encoding::DefaultFuchsiaResourceDialect,
84438                    val_ref,
84439                    decoder,
84440                    inner_offset,
84441                    inner_depth
84442                )?;
84443                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
84444                {
84445                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
84446                }
84447                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
84448                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
84449                }
84450            }
84451
84452            next_offset += envelope_size;
84453            _next_ordinal_to_read += 1;
84454            if next_offset >= end_offset {
84455                return Ok(());
84456            }
84457
84458            // Decode unknown envelopes for gaps in ordinals.
84459            while _next_ordinal_to_read < 3 {
84460                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
84461                _next_ordinal_to_read += 1;
84462                next_offset += envelope_size;
84463            }
84464
84465            let next_out_of_line = decoder.next_out_of_line();
84466            let handles_before = decoder.remaining_handles();
84467            if let Some((inlined, num_bytes, num_handles)) =
84468                fidl::encoding::decode_envelope_header(decoder, next_offset)?
84469            {
84470                let member_inline_size =
84471                    <CmsgRequests as fidl::encoding::TypeMarker>::inline_size(decoder.context);
84472                if inlined != (member_inline_size <= 4) {
84473                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
84474                }
84475                let inner_offset;
84476                let mut inner_depth = depth.clone();
84477                if inlined {
84478                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
84479                    inner_offset = next_offset;
84480                } else {
84481                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
84482                    inner_depth.increment()?;
84483                }
84484                let val_ref = self.requests.get_or_insert_with(|| {
84485                    fidl::new_empty!(CmsgRequests, fidl::encoding::DefaultFuchsiaResourceDialect)
84486                });
84487                fidl::decode!(
84488                    CmsgRequests,
84489                    fidl::encoding::DefaultFuchsiaResourceDialect,
84490                    val_ref,
84491                    decoder,
84492                    inner_offset,
84493                    inner_depth
84494                )?;
84495                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
84496                {
84497                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
84498                }
84499                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
84500                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
84501                }
84502            }
84503
84504            next_offset += envelope_size;
84505
84506            // Decode the remaining unknown envelopes.
84507            while next_offset < end_offset {
84508                _next_ordinal_to_read += 1;
84509                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
84510                next_offset += envelope_size;
84511            }
84512
84513            Ok(())
84514        }
84515    }
84516
84517    impl DatagramSocketSendMsgPreflightResponse {
84518        #[inline(always)]
84519        fn max_ordinal_present(&self) -> u64 {
84520            if let Some(_) = self.maximum_size {
84521                return 3;
84522            }
84523            if let Some(_) = self.validity {
84524                return 2;
84525            }
84526            if let Some(_) = self.to {
84527                return 1;
84528            }
84529            0
84530        }
84531    }
84532
84533    impl fidl::encoding::ResourceTypeMarker for DatagramSocketSendMsgPreflightResponse {
84534        type Borrowed<'a> = &'a mut Self;
84535        fn take_or_borrow<'a>(
84536            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
84537        ) -> Self::Borrowed<'a> {
84538            value
84539        }
84540    }
84541
84542    unsafe impl fidl::encoding::TypeMarker for DatagramSocketSendMsgPreflightResponse {
84543        type Owned = Self;
84544
84545        #[inline(always)]
84546        fn inline_align(_context: fidl::encoding::Context) -> usize {
84547            8
84548        }
84549
84550        #[inline(always)]
84551        fn inline_size(_context: fidl::encoding::Context) -> usize {
84552            16
84553        }
84554    }
84555
84556    unsafe impl
84557        fidl::encoding::Encode<
84558            DatagramSocketSendMsgPreflightResponse,
84559            fidl::encoding::DefaultFuchsiaResourceDialect,
84560        > for &mut DatagramSocketSendMsgPreflightResponse
84561    {
84562        unsafe fn encode(
84563            self,
84564            encoder: &mut fidl::encoding::Encoder<
84565                '_,
84566                fidl::encoding::DefaultFuchsiaResourceDialect,
84567            >,
84568            offset: usize,
84569            mut depth: fidl::encoding::Depth,
84570        ) -> fidl::Result<()> {
84571            encoder.debug_check_bounds::<DatagramSocketSendMsgPreflightResponse>(offset);
84572            // Vector header
84573            let max_ordinal: u64 = self.max_ordinal_present();
84574            encoder.write_num(max_ordinal, offset);
84575            encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
84576            // Calling encoder.out_of_line_offset(0) is not allowed.
84577            if max_ordinal == 0 {
84578                return Ok(());
84579            }
84580            depth.increment()?;
84581            let envelope_size = 8;
84582            let bytes_len = max_ordinal as usize * envelope_size;
84583            #[allow(unused_variables)]
84584            let offset = encoder.out_of_line_offset(bytes_len);
84585            let mut _prev_end_offset: usize = 0;
84586            if 1 > max_ordinal {
84587                return Ok(());
84588            }
84589
84590            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
84591            // are envelope_size bytes.
84592            let cur_offset: usize = (1 - 1) * envelope_size;
84593
84594            // Zero reserved fields.
84595            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
84596
84597            // Safety:
84598            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
84599            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
84600            //   envelope_size bytes, there is always sufficient room.
84601            fidl::encoding::encode_in_envelope_optional::<
84602                fidl_fuchsia_net::SocketAddress,
84603                fidl::encoding::DefaultFuchsiaResourceDialect,
84604            >(
84605                self.to.as_ref().map(
84606                    <fidl_fuchsia_net::SocketAddress as fidl::encoding::ValueTypeMarker>::borrow,
84607                ),
84608                encoder,
84609                offset + cur_offset,
84610                depth,
84611            )?;
84612
84613            _prev_end_offset = cur_offset + envelope_size;
84614            if 2 > max_ordinal {
84615                return Ok(());
84616            }
84617
84618            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
84619            // are envelope_size bytes.
84620            let cur_offset: usize = (2 - 1) * envelope_size;
84621
84622            // Zero reserved fields.
84623            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
84624
84625            // Safety:
84626            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
84627            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
84628            //   envelope_size bytes, there is always sufficient room.
84629            fidl::encoding::encode_in_envelope_optional::<
84630                fidl::encoding::Vector<
84631                    fidl::encoding::HandleType<
84632                        fidl::EventPair,
84633                        { fidl::ObjectType::EVENTPAIR.into_raw() },
84634                        49155,
84635                    >,
84636                    63,
84637                >,
84638                fidl::encoding::DefaultFuchsiaResourceDialect,
84639            >(
84640                self.validity.as_mut().map(
84641                    <fidl::encoding::Vector<
84642                        fidl::encoding::HandleType<
84643                            fidl::EventPair,
84644                            { fidl::ObjectType::EVENTPAIR.into_raw() },
84645                            49155,
84646                        >,
84647                        63,
84648                    > as fidl::encoding::ResourceTypeMarker>::take_or_borrow,
84649                ),
84650                encoder,
84651                offset + cur_offset,
84652                depth,
84653            )?;
84654
84655            _prev_end_offset = cur_offset + envelope_size;
84656            if 3 > max_ordinal {
84657                return Ok(());
84658            }
84659
84660            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
84661            // are envelope_size bytes.
84662            let cur_offset: usize = (3 - 1) * envelope_size;
84663
84664            // Zero reserved fields.
84665            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
84666
84667            // Safety:
84668            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
84669            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
84670            //   envelope_size bytes, there is always sufficient room.
84671            fidl::encoding::encode_in_envelope_optional::<
84672                u32,
84673                fidl::encoding::DefaultFuchsiaResourceDialect,
84674            >(
84675                self.maximum_size.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
84676                encoder,
84677                offset + cur_offset,
84678                depth,
84679            )?;
84680
84681            _prev_end_offset = cur_offset + envelope_size;
84682
84683            Ok(())
84684        }
84685    }
84686
84687    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
84688        for DatagramSocketSendMsgPreflightResponse
84689    {
84690        #[inline(always)]
84691        fn new_empty() -> Self {
84692            Self::default()
84693        }
84694
84695        unsafe fn decode(
84696            &mut self,
84697            decoder: &mut fidl::encoding::Decoder<
84698                '_,
84699                fidl::encoding::DefaultFuchsiaResourceDialect,
84700            >,
84701            offset: usize,
84702            mut depth: fidl::encoding::Depth,
84703        ) -> fidl::Result<()> {
84704            decoder.debug_check_bounds::<Self>(offset);
84705            let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
84706                None => return Err(fidl::Error::NotNullable),
84707                Some(len) => len,
84708            };
84709            // Calling decoder.out_of_line_offset(0) is not allowed.
84710            if len == 0 {
84711                return Ok(());
84712            };
84713            depth.increment()?;
84714            let envelope_size = 8;
84715            let bytes_len = len * envelope_size;
84716            let offset = decoder.out_of_line_offset(bytes_len)?;
84717            // Decode the envelope for each type.
84718            let mut _next_ordinal_to_read = 0;
84719            let mut next_offset = offset;
84720            let end_offset = offset + bytes_len;
84721            _next_ordinal_to_read += 1;
84722            if next_offset >= end_offset {
84723                return Ok(());
84724            }
84725
84726            // Decode unknown envelopes for gaps in ordinals.
84727            while _next_ordinal_to_read < 1 {
84728                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
84729                _next_ordinal_to_read += 1;
84730                next_offset += envelope_size;
84731            }
84732
84733            let next_out_of_line = decoder.next_out_of_line();
84734            let handles_before = decoder.remaining_handles();
84735            if let Some((inlined, num_bytes, num_handles)) =
84736                fidl::encoding::decode_envelope_header(decoder, next_offset)?
84737            {
84738                let member_inline_size =
84739                    <fidl_fuchsia_net::SocketAddress as fidl::encoding::TypeMarker>::inline_size(
84740                        decoder.context,
84741                    );
84742                if inlined != (member_inline_size <= 4) {
84743                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
84744                }
84745                let inner_offset;
84746                let mut inner_depth = depth.clone();
84747                if inlined {
84748                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
84749                    inner_offset = next_offset;
84750                } else {
84751                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
84752                    inner_depth.increment()?;
84753                }
84754                let val_ref = self.to.get_or_insert_with(|| {
84755                    fidl::new_empty!(
84756                        fidl_fuchsia_net::SocketAddress,
84757                        fidl::encoding::DefaultFuchsiaResourceDialect
84758                    )
84759                });
84760                fidl::decode!(
84761                    fidl_fuchsia_net::SocketAddress,
84762                    fidl::encoding::DefaultFuchsiaResourceDialect,
84763                    val_ref,
84764                    decoder,
84765                    inner_offset,
84766                    inner_depth
84767                )?;
84768                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
84769                {
84770                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
84771                }
84772                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
84773                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
84774                }
84775            }
84776
84777            next_offset += envelope_size;
84778            _next_ordinal_to_read += 1;
84779            if next_offset >= end_offset {
84780                return Ok(());
84781            }
84782
84783            // Decode unknown envelopes for gaps in ordinals.
84784            while _next_ordinal_to_read < 2 {
84785                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
84786                _next_ordinal_to_read += 1;
84787                next_offset += envelope_size;
84788            }
84789
84790            let next_out_of_line = decoder.next_out_of_line();
84791            let handles_before = decoder.remaining_handles();
84792            if let Some((inlined, num_bytes, num_handles)) =
84793                fidl::encoding::decode_envelope_header(decoder, next_offset)?
84794            {
84795                let member_inline_size = <fidl::encoding::Vector<
84796                    fidl::encoding::HandleType<
84797                        fidl::EventPair,
84798                        { fidl::ObjectType::EVENTPAIR.into_raw() },
84799                        49155,
84800                    >,
84801                    63,
84802                > as fidl::encoding::TypeMarker>::inline_size(
84803                    decoder.context
84804                );
84805                if inlined != (member_inline_size <= 4) {
84806                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
84807                }
84808                let inner_offset;
84809                let mut inner_depth = depth.clone();
84810                if inlined {
84811                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
84812                    inner_offset = next_offset;
84813                } else {
84814                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
84815                    inner_depth.increment()?;
84816                }
84817                let val_ref = self.validity.get_or_insert_with(|| {
84818                    fidl::new_empty!(
84819                        fidl::encoding::Vector<
84820                            fidl::encoding::HandleType<
84821                                fidl::EventPair,
84822                                { fidl::ObjectType::EVENTPAIR.into_raw() },
84823                                49155,
84824                            >,
84825                            63,
84826                        >,
84827                        fidl::encoding::DefaultFuchsiaResourceDialect
84828                    )
84829                });
84830                fidl::decode!(
84831                    fidl::encoding::Vector<
84832                        fidl::encoding::HandleType<
84833                            fidl::EventPair,
84834                            { fidl::ObjectType::EVENTPAIR.into_raw() },
84835                            49155,
84836                        >,
84837                        63,
84838                    >,
84839                    fidl::encoding::DefaultFuchsiaResourceDialect,
84840                    val_ref,
84841                    decoder,
84842                    inner_offset,
84843                    inner_depth
84844                )?;
84845                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
84846                {
84847                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
84848                }
84849                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
84850                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
84851                }
84852            }
84853
84854            next_offset += envelope_size;
84855            _next_ordinal_to_read += 1;
84856            if next_offset >= end_offset {
84857                return Ok(());
84858            }
84859
84860            // Decode unknown envelopes for gaps in ordinals.
84861            while _next_ordinal_to_read < 3 {
84862                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
84863                _next_ordinal_to_read += 1;
84864                next_offset += envelope_size;
84865            }
84866
84867            let next_out_of_line = decoder.next_out_of_line();
84868            let handles_before = decoder.remaining_handles();
84869            if let Some((inlined, num_bytes, num_handles)) =
84870                fidl::encoding::decode_envelope_header(decoder, next_offset)?
84871            {
84872                let member_inline_size =
84873                    <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
84874                if inlined != (member_inline_size <= 4) {
84875                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
84876                }
84877                let inner_offset;
84878                let mut inner_depth = depth.clone();
84879                if inlined {
84880                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
84881                    inner_offset = next_offset;
84882                } else {
84883                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
84884                    inner_depth.increment()?;
84885                }
84886                let val_ref = self.maximum_size.get_or_insert_with(|| {
84887                    fidl::new_empty!(u32, fidl::encoding::DefaultFuchsiaResourceDialect)
84888                });
84889                fidl::decode!(
84890                    u32,
84891                    fidl::encoding::DefaultFuchsiaResourceDialect,
84892                    val_ref,
84893                    decoder,
84894                    inner_offset,
84895                    inner_depth
84896                )?;
84897                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
84898                {
84899                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
84900                }
84901                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
84902                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
84903                }
84904            }
84905
84906            next_offset += envelope_size;
84907
84908            // Decode the remaining unknown envelopes.
84909            while next_offset < end_offset {
84910                _next_ordinal_to_read += 1;
84911                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
84912                next_offset += envelope_size;
84913            }
84914
84915            Ok(())
84916        }
84917    }
84918
84919    impl StreamSocketDescribeResponse {
84920        #[inline(always)]
84921        fn max_ordinal_present(&self) -> u64 {
84922            if let Some(_) = self.socket {
84923                return 1;
84924            }
84925            0
84926        }
84927    }
84928
84929    impl fidl::encoding::ResourceTypeMarker for StreamSocketDescribeResponse {
84930        type Borrowed<'a> = &'a mut Self;
84931        fn take_or_borrow<'a>(
84932            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
84933        ) -> Self::Borrowed<'a> {
84934            value
84935        }
84936    }
84937
84938    unsafe impl fidl::encoding::TypeMarker for StreamSocketDescribeResponse {
84939        type Owned = Self;
84940
84941        #[inline(always)]
84942        fn inline_align(_context: fidl::encoding::Context) -> usize {
84943            8
84944        }
84945
84946        #[inline(always)]
84947        fn inline_size(_context: fidl::encoding::Context) -> usize {
84948            16
84949        }
84950    }
84951
84952    unsafe impl
84953        fidl::encoding::Encode<
84954            StreamSocketDescribeResponse,
84955            fidl::encoding::DefaultFuchsiaResourceDialect,
84956        > for &mut StreamSocketDescribeResponse
84957    {
84958        unsafe fn encode(
84959            self,
84960            encoder: &mut fidl::encoding::Encoder<
84961                '_,
84962                fidl::encoding::DefaultFuchsiaResourceDialect,
84963            >,
84964            offset: usize,
84965            mut depth: fidl::encoding::Depth,
84966        ) -> fidl::Result<()> {
84967            encoder.debug_check_bounds::<StreamSocketDescribeResponse>(offset);
84968            // Vector header
84969            let max_ordinal: u64 = self.max_ordinal_present();
84970            encoder.write_num(max_ordinal, offset);
84971            encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
84972            // Calling encoder.out_of_line_offset(0) is not allowed.
84973            if max_ordinal == 0 {
84974                return Ok(());
84975            }
84976            depth.increment()?;
84977            let envelope_size = 8;
84978            let bytes_len = max_ordinal as usize * envelope_size;
84979            #[allow(unused_variables)]
84980            let offset = encoder.out_of_line_offset(bytes_len);
84981            let mut _prev_end_offset: usize = 0;
84982            if 1 > max_ordinal {
84983                return Ok(());
84984            }
84985
84986            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
84987            // are envelope_size bytes.
84988            let cur_offset: usize = (1 - 1) * envelope_size;
84989
84990            // Zero reserved fields.
84991            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
84992
84993            // Safety:
84994            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
84995            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
84996            //   envelope_size bytes, there is always sufficient room.
84997            fidl::encoding::encode_in_envelope_optional::<
84998                fidl::encoding::HandleType<
84999                    fidl::Socket,
85000                    { fidl::ObjectType::SOCKET.into_raw() },
85001                    2147483648,
85002                >,
85003                fidl::encoding::DefaultFuchsiaResourceDialect,
85004            >(
85005                self.socket.as_mut().map(
85006                    <fidl::encoding::HandleType<
85007                        fidl::Socket,
85008                        { fidl::ObjectType::SOCKET.into_raw() },
85009                        2147483648,
85010                    > as fidl::encoding::ResourceTypeMarker>::take_or_borrow,
85011                ),
85012                encoder,
85013                offset + cur_offset,
85014                depth,
85015            )?;
85016
85017            _prev_end_offset = cur_offset + envelope_size;
85018
85019            Ok(())
85020        }
85021    }
85022
85023    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
85024        for StreamSocketDescribeResponse
85025    {
85026        #[inline(always)]
85027        fn new_empty() -> Self {
85028            Self::default()
85029        }
85030
85031        unsafe fn decode(
85032            &mut self,
85033            decoder: &mut fidl::encoding::Decoder<
85034                '_,
85035                fidl::encoding::DefaultFuchsiaResourceDialect,
85036            >,
85037            offset: usize,
85038            mut depth: fidl::encoding::Depth,
85039        ) -> fidl::Result<()> {
85040            decoder.debug_check_bounds::<Self>(offset);
85041            let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
85042                None => return Err(fidl::Error::NotNullable),
85043                Some(len) => len,
85044            };
85045            // Calling decoder.out_of_line_offset(0) is not allowed.
85046            if len == 0 {
85047                return Ok(());
85048            };
85049            depth.increment()?;
85050            let envelope_size = 8;
85051            let bytes_len = len * envelope_size;
85052            let offset = decoder.out_of_line_offset(bytes_len)?;
85053            // Decode the envelope for each type.
85054            let mut _next_ordinal_to_read = 0;
85055            let mut next_offset = offset;
85056            let end_offset = offset + bytes_len;
85057            _next_ordinal_to_read += 1;
85058            if next_offset >= end_offset {
85059                return Ok(());
85060            }
85061
85062            // Decode unknown envelopes for gaps in ordinals.
85063            while _next_ordinal_to_read < 1 {
85064                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
85065                _next_ordinal_to_read += 1;
85066                next_offset += envelope_size;
85067            }
85068
85069            let next_out_of_line = decoder.next_out_of_line();
85070            let handles_before = decoder.remaining_handles();
85071            if let Some((inlined, num_bytes, num_handles)) =
85072                fidl::encoding::decode_envelope_header(decoder, next_offset)?
85073            {
85074                let member_inline_size = <fidl::encoding::HandleType<
85075                    fidl::Socket,
85076                    { fidl::ObjectType::SOCKET.into_raw() },
85077                    2147483648,
85078                > as fidl::encoding::TypeMarker>::inline_size(
85079                    decoder.context
85080                );
85081                if inlined != (member_inline_size <= 4) {
85082                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
85083                }
85084                let inner_offset;
85085                let mut inner_depth = depth.clone();
85086                if inlined {
85087                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
85088                    inner_offset = next_offset;
85089                } else {
85090                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
85091                    inner_depth.increment()?;
85092                }
85093                let val_ref =
85094                self.socket.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::HandleType<fidl::Socket, { fidl::ObjectType::SOCKET.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect));
85095                fidl::decode!(fidl::encoding::HandleType<fidl::Socket, { fidl::ObjectType::SOCKET.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect, val_ref, decoder, inner_offset, inner_depth)?;
85096                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
85097                {
85098                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
85099                }
85100                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
85101                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
85102                }
85103            }
85104
85105            next_offset += envelope_size;
85106
85107            // Decode the remaining unknown envelopes.
85108            while next_offset < end_offset {
85109                _next_ordinal_to_read += 1;
85110                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
85111                next_offset += envelope_size;
85112            }
85113
85114            Ok(())
85115        }
85116    }
85117
85118    impl SynchronousDatagramSocketDescribeResponse {
85119        #[inline(always)]
85120        fn max_ordinal_present(&self) -> u64 {
85121            if let Some(_) = self.event {
85122                return 1;
85123            }
85124            0
85125        }
85126    }
85127
85128    impl fidl::encoding::ResourceTypeMarker for SynchronousDatagramSocketDescribeResponse {
85129        type Borrowed<'a> = &'a mut Self;
85130        fn take_or_borrow<'a>(
85131            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
85132        ) -> Self::Borrowed<'a> {
85133            value
85134        }
85135    }
85136
85137    unsafe impl fidl::encoding::TypeMarker for SynchronousDatagramSocketDescribeResponse {
85138        type Owned = Self;
85139
85140        #[inline(always)]
85141        fn inline_align(_context: fidl::encoding::Context) -> usize {
85142            8
85143        }
85144
85145        #[inline(always)]
85146        fn inline_size(_context: fidl::encoding::Context) -> usize {
85147            16
85148        }
85149    }
85150
85151    unsafe impl
85152        fidl::encoding::Encode<
85153            SynchronousDatagramSocketDescribeResponse,
85154            fidl::encoding::DefaultFuchsiaResourceDialect,
85155        > for &mut SynchronousDatagramSocketDescribeResponse
85156    {
85157        unsafe fn encode(
85158            self,
85159            encoder: &mut fidl::encoding::Encoder<
85160                '_,
85161                fidl::encoding::DefaultFuchsiaResourceDialect,
85162            >,
85163            offset: usize,
85164            mut depth: fidl::encoding::Depth,
85165        ) -> fidl::Result<()> {
85166            encoder.debug_check_bounds::<SynchronousDatagramSocketDescribeResponse>(offset);
85167            // Vector header
85168            let max_ordinal: u64 = self.max_ordinal_present();
85169            encoder.write_num(max_ordinal, offset);
85170            encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
85171            // Calling encoder.out_of_line_offset(0) is not allowed.
85172            if max_ordinal == 0 {
85173                return Ok(());
85174            }
85175            depth.increment()?;
85176            let envelope_size = 8;
85177            let bytes_len = max_ordinal as usize * envelope_size;
85178            #[allow(unused_variables)]
85179            let offset = encoder.out_of_line_offset(bytes_len);
85180            let mut _prev_end_offset: usize = 0;
85181            if 1 > max_ordinal {
85182                return Ok(());
85183            }
85184
85185            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
85186            // are envelope_size bytes.
85187            let cur_offset: usize = (1 - 1) * envelope_size;
85188
85189            // Zero reserved fields.
85190            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
85191
85192            // Safety:
85193            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
85194            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
85195            //   envelope_size bytes, there is always sufficient room.
85196            fidl::encoding::encode_in_envelope_optional::<
85197                fidl::encoding::HandleType<
85198                    fidl::EventPair,
85199                    { fidl::ObjectType::EVENTPAIR.into_raw() },
85200                    2147483648,
85201                >,
85202                fidl::encoding::DefaultFuchsiaResourceDialect,
85203            >(
85204                self.event.as_mut().map(
85205                    <fidl::encoding::HandleType<
85206                        fidl::EventPair,
85207                        { fidl::ObjectType::EVENTPAIR.into_raw() },
85208                        2147483648,
85209                    > as fidl::encoding::ResourceTypeMarker>::take_or_borrow,
85210                ),
85211                encoder,
85212                offset + cur_offset,
85213                depth,
85214            )?;
85215
85216            _prev_end_offset = cur_offset + envelope_size;
85217
85218            Ok(())
85219        }
85220    }
85221
85222    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
85223        for SynchronousDatagramSocketDescribeResponse
85224    {
85225        #[inline(always)]
85226        fn new_empty() -> Self {
85227            Self::default()
85228        }
85229
85230        unsafe fn decode(
85231            &mut self,
85232            decoder: &mut fidl::encoding::Decoder<
85233                '_,
85234                fidl::encoding::DefaultFuchsiaResourceDialect,
85235            >,
85236            offset: usize,
85237            mut depth: fidl::encoding::Depth,
85238        ) -> fidl::Result<()> {
85239            decoder.debug_check_bounds::<Self>(offset);
85240            let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
85241                None => return Err(fidl::Error::NotNullable),
85242                Some(len) => len,
85243            };
85244            // Calling decoder.out_of_line_offset(0) is not allowed.
85245            if len == 0 {
85246                return Ok(());
85247            };
85248            depth.increment()?;
85249            let envelope_size = 8;
85250            let bytes_len = len * envelope_size;
85251            let offset = decoder.out_of_line_offset(bytes_len)?;
85252            // Decode the envelope for each type.
85253            let mut _next_ordinal_to_read = 0;
85254            let mut next_offset = offset;
85255            let end_offset = offset + bytes_len;
85256            _next_ordinal_to_read += 1;
85257            if next_offset >= end_offset {
85258                return Ok(());
85259            }
85260
85261            // Decode unknown envelopes for gaps in ordinals.
85262            while _next_ordinal_to_read < 1 {
85263                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
85264                _next_ordinal_to_read += 1;
85265                next_offset += envelope_size;
85266            }
85267
85268            let next_out_of_line = decoder.next_out_of_line();
85269            let handles_before = decoder.remaining_handles();
85270            if let Some((inlined, num_bytes, num_handles)) =
85271                fidl::encoding::decode_envelope_header(decoder, next_offset)?
85272            {
85273                let member_inline_size = <fidl::encoding::HandleType<
85274                    fidl::EventPair,
85275                    { fidl::ObjectType::EVENTPAIR.into_raw() },
85276                    2147483648,
85277                > as fidl::encoding::TypeMarker>::inline_size(
85278                    decoder.context
85279                );
85280                if inlined != (member_inline_size <= 4) {
85281                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
85282                }
85283                let inner_offset;
85284                let mut inner_depth = depth.clone();
85285                if inlined {
85286                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
85287                    inner_offset = next_offset;
85288                } else {
85289                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
85290                    inner_depth.increment()?;
85291                }
85292                let val_ref =
85293                self.event.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::HandleType<fidl::EventPair, { fidl::ObjectType::EVENTPAIR.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect));
85294                fidl::decode!(fidl::encoding::HandleType<fidl::EventPair, { fidl::ObjectType::EVENTPAIR.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect, val_ref, decoder, inner_offset, inner_depth)?;
85295                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
85296                {
85297                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
85298                }
85299                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
85300                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
85301                }
85302            }
85303
85304            next_offset += envelope_size;
85305
85306            // Decode the remaining unknown envelopes.
85307            while next_offset < end_offset {
85308                _next_ordinal_to_read += 1;
85309                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
85310                next_offset += envelope_size;
85311            }
85312
85313            Ok(())
85314        }
85315    }
85316
85317    impl fidl::encoding::ResourceTypeMarker for ProviderDatagramSocketWithOptionsResponse {
85318        type Borrowed<'a> = &'a mut Self;
85319        fn take_or_borrow<'a>(
85320            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
85321        ) -> Self::Borrowed<'a> {
85322            value
85323        }
85324    }
85325
85326    unsafe impl fidl::encoding::TypeMarker for ProviderDatagramSocketWithOptionsResponse {
85327        type Owned = Self;
85328
85329        #[inline(always)]
85330        fn inline_align(_context: fidl::encoding::Context) -> usize {
85331            8
85332        }
85333
85334        #[inline(always)]
85335        fn inline_size(_context: fidl::encoding::Context) -> usize {
85336            16
85337        }
85338    }
85339
85340    unsafe impl
85341        fidl::encoding::Encode<
85342            ProviderDatagramSocketWithOptionsResponse,
85343            fidl::encoding::DefaultFuchsiaResourceDialect,
85344        > for &mut ProviderDatagramSocketWithOptionsResponse
85345    {
85346        #[inline]
85347        unsafe fn encode(
85348            self,
85349            encoder: &mut fidl::encoding::Encoder<
85350                '_,
85351                fidl::encoding::DefaultFuchsiaResourceDialect,
85352            >,
85353            offset: usize,
85354            _depth: fidl::encoding::Depth,
85355        ) -> fidl::Result<()> {
85356            encoder.debug_check_bounds::<ProviderDatagramSocketWithOptionsResponse>(offset);
85357            encoder.write_num::<u64>(self.ordinal(), offset);
85358            match self {
85359            ProviderDatagramSocketWithOptionsResponse::DatagramSocket(ref mut val) => {
85360                fidl::encoding::encode_in_envelope::<fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<DatagramSocketMarker>>, fidl::encoding::DefaultFuchsiaResourceDialect>(
85361                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<DatagramSocketMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(val),
85362                    encoder, offset + 8, _depth
85363                )
85364            }
85365            ProviderDatagramSocketWithOptionsResponse::SynchronousDatagramSocket(ref mut val) => {
85366                fidl::encoding::encode_in_envelope::<fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>>, fidl::encoding::DefaultFuchsiaResourceDialect>(
85367                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(val),
85368                    encoder, offset + 8, _depth
85369                )
85370            }
85371        }
85372        }
85373    }
85374
85375    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
85376        for ProviderDatagramSocketWithOptionsResponse
85377    {
85378        #[inline(always)]
85379        fn new_empty() -> Self {
85380            Self::DatagramSocket(fidl::new_empty!(
85381                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<DatagramSocketMarker>>,
85382                fidl::encoding::DefaultFuchsiaResourceDialect
85383            ))
85384        }
85385
85386        #[inline]
85387        unsafe fn decode(
85388            &mut self,
85389            decoder: &mut fidl::encoding::Decoder<
85390                '_,
85391                fidl::encoding::DefaultFuchsiaResourceDialect,
85392            >,
85393            offset: usize,
85394            mut depth: fidl::encoding::Depth,
85395        ) -> fidl::Result<()> {
85396            decoder.debug_check_bounds::<Self>(offset);
85397            #[allow(unused_variables)]
85398            let next_out_of_line = decoder.next_out_of_line();
85399            let handles_before = decoder.remaining_handles();
85400            let (ordinal, inlined, num_bytes, num_handles) =
85401                fidl::encoding::decode_union_inline_portion(decoder, offset)?;
85402
85403            let member_inline_size = match ordinal {
85404            1 => <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<DatagramSocketMarker>> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
85405            2 => <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
85406            _ => return Err(fidl::Error::UnknownUnionTag),
85407        };
85408
85409            if inlined != (member_inline_size <= 4) {
85410                return Err(fidl::Error::InvalidInlineBitInEnvelope);
85411            }
85412            let _inner_offset;
85413            if inlined {
85414                decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
85415                _inner_offset = offset + 8;
85416            } else {
85417                depth.increment()?;
85418                _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
85419            }
85420            match ordinal {
85421                1 => {
85422                    #[allow(irrefutable_let_patterns)]
85423                    if let ProviderDatagramSocketWithOptionsResponse::DatagramSocket(_) = self {
85424                        // Do nothing, read the value into the object
85425                    } else {
85426                        // Initialize `self` to the right variant
85427                        *self = ProviderDatagramSocketWithOptionsResponse::DatagramSocket(
85428                            fidl::new_empty!(
85429                                fidl::encoding::Endpoint<
85430                                    fidl::endpoints::ClientEnd<DatagramSocketMarker>,
85431                                >,
85432                                fidl::encoding::DefaultFuchsiaResourceDialect
85433                            ),
85434                        );
85435                    }
85436                    #[allow(irrefutable_let_patterns)]
85437                    if let ProviderDatagramSocketWithOptionsResponse::DatagramSocket(ref mut val) =
85438                        self
85439                    {
85440                        fidl::decode!(
85441                            fidl::encoding::Endpoint<
85442                                fidl::endpoints::ClientEnd<DatagramSocketMarker>,
85443                            >,
85444                            fidl::encoding::DefaultFuchsiaResourceDialect,
85445                            val,
85446                            decoder,
85447                            _inner_offset,
85448                            depth
85449                        )?;
85450                    } else {
85451                        unreachable!()
85452                    }
85453                }
85454                2 => {
85455                    #[allow(irrefutable_let_patterns)]
85456                    if let ProviderDatagramSocketWithOptionsResponse::SynchronousDatagramSocket(_) =
85457                        self
85458                    {
85459                        // Do nothing, read the value into the object
85460                    } else {
85461                        // Initialize `self` to the right variant
85462                        *self =
85463                            ProviderDatagramSocketWithOptionsResponse::SynchronousDatagramSocket(
85464                                fidl::new_empty!(
85465                                    fidl::encoding::Endpoint<
85466                                        fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
85467                                    >,
85468                                    fidl::encoding::DefaultFuchsiaResourceDialect
85469                                ),
85470                            );
85471                    }
85472                    #[allow(irrefutable_let_patterns)]
85473                    if let ProviderDatagramSocketWithOptionsResponse::SynchronousDatagramSocket(
85474                        ref mut val,
85475                    ) = self
85476                    {
85477                        fidl::decode!(
85478                            fidl::encoding::Endpoint<
85479                                fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
85480                            >,
85481                            fidl::encoding::DefaultFuchsiaResourceDialect,
85482                            val,
85483                            decoder,
85484                            _inner_offset,
85485                            depth
85486                        )?;
85487                    } else {
85488                        unreachable!()
85489                    }
85490                }
85491                ordinal => panic!("unexpected ordinal {:?}", ordinal),
85492            }
85493            if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
85494                return Err(fidl::Error::InvalidNumBytesInEnvelope);
85495            }
85496            if handles_before != decoder.remaining_handles() + (num_handles as usize) {
85497                return Err(fidl::Error::InvalidNumHandlesInEnvelope);
85498            }
85499            Ok(())
85500        }
85501    }
85502
85503    impl fidl::encoding::ResourceTypeMarker for ProviderDatagramSocketResponse {
85504        type Borrowed<'a> = &'a mut Self;
85505        fn take_or_borrow<'a>(
85506            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
85507        ) -> Self::Borrowed<'a> {
85508            value
85509        }
85510    }
85511
85512    unsafe impl fidl::encoding::TypeMarker for ProviderDatagramSocketResponse {
85513        type Owned = Self;
85514
85515        #[inline(always)]
85516        fn inline_align(_context: fidl::encoding::Context) -> usize {
85517            8
85518        }
85519
85520        #[inline(always)]
85521        fn inline_size(_context: fidl::encoding::Context) -> usize {
85522            16
85523        }
85524    }
85525
85526    unsafe impl
85527        fidl::encoding::Encode<
85528            ProviderDatagramSocketResponse,
85529            fidl::encoding::DefaultFuchsiaResourceDialect,
85530        > for &mut ProviderDatagramSocketResponse
85531    {
85532        #[inline]
85533        unsafe fn encode(
85534            self,
85535            encoder: &mut fidl::encoding::Encoder<
85536                '_,
85537                fidl::encoding::DefaultFuchsiaResourceDialect,
85538            >,
85539            offset: usize,
85540            _depth: fidl::encoding::Depth,
85541        ) -> fidl::Result<()> {
85542            encoder.debug_check_bounds::<ProviderDatagramSocketResponse>(offset);
85543            encoder.write_num::<u64>(self.ordinal(), offset);
85544            match self {
85545            ProviderDatagramSocketResponse::DatagramSocket(ref mut val) => {
85546                fidl::encoding::encode_in_envelope::<fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<DatagramSocketMarker>>, fidl::encoding::DefaultFuchsiaResourceDialect>(
85547                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<DatagramSocketMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(val),
85548                    encoder, offset + 8, _depth
85549                )
85550            }
85551            ProviderDatagramSocketResponse::SynchronousDatagramSocket(ref mut val) => {
85552                fidl::encoding::encode_in_envelope::<fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>>, fidl::encoding::DefaultFuchsiaResourceDialect>(
85553                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(val),
85554                    encoder, offset + 8, _depth
85555                )
85556            }
85557        }
85558        }
85559    }
85560
85561    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
85562        for ProviderDatagramSocketResponse
85563    {
85564        #[inline(always)]
85565        fn new_empty() -> Self {
85566            Self::DatagramSocket(fidl::new_empty!(
85567                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<DatagramSocketMarker>>,
85568                fidl::encoding::DefaultFuchsiaResourceDialect
85569            ))
85570        }
85571
85572        #[inline]
85573        unsafe fn decode(
85574            &mut self,
85575            decoder: &mut fidl::encoding::Decoder<
85576                '_,
85577                fidl::encoding::DefaultFuchsiaResourceDialect,
85578            >,
85579            offset: usize,
85580            mut depth: fidl::encoding::Depth,
85581        ) -> fidl::Result<()> {
85582            decoder.debug_check_bounds::<Self>(offset);
85583            #[allow(unused_variables)]
85584            let next_out_of_line = decoder.next_out_of_line();
85585            let handles_before = decoder.remaining_handles();
85586            let (ordinal, inlined, num_bytes, num_handles) =
85587                fidl::encoding::decode_union_inline_portion(decoder, offset)?;
85588
85589            let member_inline_size = match ordinal {
85590            1 => <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<DatagramSocketMarker>> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
85591            2 => <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
85592            _ => return Err(fidl::Error::UnknownUnionTag),
85593        };
85594
85595            if inlined != (member_inline_size <= 4) {
85596                return Err(fidl::Error::InvalidInlineBitInEnvelope);
85597            }
85598            let _inner_offset;
85599            if inlined {
85600                decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
85601                _inner_offset = offset + 8;
85602            } else {
85603                depth.increment()?;
85604                _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
85605            }
85606            match ordinal {
85607                1 => {
85608                    #[allow(irrefutable_let_patterns)]
85609                    if let ProviderDatagramSocketResponse::DatagramSocket(_) = self {
85610                        // Do nothing, read the value into the object
85611                    } else {
85612                        // Initialize `self` to the right variant
85613                        *self = ProviderDatagramSocketResponse::DatagramSocket(fidl::new_empty!(
85614                            fidl::encoding::Endpoint<
85615                                fidl::endpoints::ClientEnd<DatagramSocketMarker>,
85616                            >,
85617                            fidl::encoding::DefaultFuchsiaResourceDialect
85618                        ));
85619                    }
85620                    #[allow(irrefutable_let_patterns)]
85621                    if let ProviderDatagramSocketResponse::DatagramSocket(ref mut val) = self {
85622                        fidl::decode!(
85623                            fidl::encoding::Endpoint<
85624                                fidl::endpoints::ClientEnd<DatagramSocketMarker>,
85625                            >,
85626                            fidl::encoding::DefaultFuchsiaResourceDialect,
85627                            val,
85628                            decoder,
85629                            _inner_offset,
85630                            depth
85631                        )?;
85632                    } else {
85633                        unreachable!()
85634                    }
85635                }
85636                2 => {
85637                    #[allow(irrefutable_let_patterns)]
85638                    if let ProviderDatagramSocketResponse::SynchronousDatagramSocket(_) = self {
85639                        // Do nothing, read the value into the object
85640                    } else {
85641                        // Initialize `self` to the right variant
85642                        *self = ProviderDatagramSocketResponse::SynchronousDatagramSocket(
85643                            fidl::new_empty!(
85644                                fidl::encoding::Endpoint<
85645                                    fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
85646                                >,
85647                                fidl::encoding::DefaultFuchsiaResourceDialect
85648                            ),
85649                        );
85650                    }
85651                    #[allow(irrefutable_let_patterns)]
85652                    if let ProviderDatagramSocketResponse::SynchronousDatagramSocket(ref mut val) =
85653                        self
85654                    {
85655                        fidl::decode!(
85656                            fidl::encoding::Endpoint<
85657                                fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
85658                            >,
85659                            fidl::encoding::DefaultFuchsiaResourceDialect,
85660                            val,
85661                            decoder,
85662                            _inner_offset,
85663                            depth
85664                        )?;
85665                    } else {
85666                        unreachable!()
85667                    }
85668                }
85669                ordinal => panic!("unexpected ordinal {:?}", ordinal),
85670            }
85671            if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
85672                return Err(fidl::Error::InvalidNumBytesInEnvelope);
85673            }
85674            if handles_before != decoder.remaining_handles() + (num_handles as usize) {
85675                return Err(fidl::Error::InvalidNumHandlesInEnvelope);
85676            }
85677            Ok(())
85678        }
85679    }
85680}