Skip to main content

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/// A token used to identify a sharing domain used for SO_REUSEPORT.
15pub type SharingDomainToken = fidl::Event;
16
17#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
18pub struct BaseSocketSetReusePortRequest {
19    pub value: ReusePortOption,
20}
21
22impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
23    for BaseSocketSetReusePortRequest
24{
25}
26
27#[derive(Debug, PartialEq)]
28pub struct ProviderDatagramSocketWithOptionsRequest {
29    pub domain: Domain,
30    pub proto: DatagramSocketProtocol,
31    pub opts: SocketCreationOptions,
32}
33
34impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
35    for ProviderDatagramSocketWithOptionsRequest
36{
37}
38
39#[derive(Debug, PartialEq)]
40pub struct ProviderStreamSocketWithOptionsRequest {
41    pub domain: Domain,
42    pub proto: StreamSocketProtocol,
43    pub opts: SocketCreationOptions,
44}
45
46impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
47    for ProviderStreamSocketWithOptionsRequest
48{
49}
50
51#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
52pub struct ProviderDatagramSocketDeprecatedResponse {
53    pub s: fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
54}
55
56impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
57    for ProviderDatagramSocketDeprecatedResponse
58{
59}
60
61#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
62pub struct ProviderStreamSocketWithOptionsResponse {
63    pub s: fidl::endpoints::ClientEnd<StreamSocketMarker>,
64}
65
66impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
67    for ProviderStreamSocketWithOptionsResponse
68{
69}
70
71#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
72pub struct ProviderStreamSocketResponse {
73    pub s: fidl::endpoints::ClientEnd<StreamSocketMarker>,
74}
75
76impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
77    for ProviderStreamSocketResponse
78{
79}
80
81#[derive(Debug, PartialEq)]
82pub struct StreamSocketAcceptResponse {
83    pub addr: Option<Box<fidl_fuchsia_net::SocketAddress>>,
84    pub s: fidl::endpoints::ClientEnd<StreamSocketMarker>,
85}
86
87impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
88    for StreamSocketAcceptResponse
89{
90}
91
92#[derive(Debug, Default, PartialEq)]
93pub struct DatagramSocketDescribeResponse {
94    /// `ZX_SOCKET_DATAGRAM` on which data is sent and received.
95    pub socket: Option<fidl::Socket>,
96    /// Size of the buffer used to receive Tx metadata.
97    pub tx_meta_buf_size: Option<u64>,
98    /// Size of the buffer used to receive Rx metadata.
99    pub rx_meta_buf_size: Option<u64>,
100    /// Identifies the version of the protocol used to encode and decode
101    /// metadata sent alongside payloads over the socket.
102    pub metadata_encoding_protocol_version: Option<UdpMetadataEncodingProtocolVersion>,
103    #[doc(hidden)]
104    pub __source_breaking: fidl::marker::SourceBreaking,
105}
106
107impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
108    for DatagramSocketDescribeResponse
109{
110}
111
112#[derive(Debug, Default, PartialEq)]
113pub struct DatagramSocketRecvMsgPostflightResponse {
114    /// Represents the validity of this structure.
115    ///
116    /// The structure is invalid if the peer is closed.
117    pub validity: Option<fidl::EventPair>,
118    /// Identifies whether the `SO_TIMESTAMP` or `SO_TIMESTAMPNS` control messages are
119    /// requested.
120    pub timestamp: Option<TimestampOption>,
121    /// Identifies the status (requested or not) of up to 32 control messages.
122    /// This set size should be large enough to signal the status of all cmsgs supported
123    /// by POSIX systems as of 2022. If that changes, the set can be extended by adding
124    /// additional bits fields.
125    pub requests: Option<CmsgRequests>,
126    #[doc(hidden)]
127    pub __source_breaking: fidl::marker::SourceBreaking,
128}
129
130impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
131    for DatagramSocketRecvMsgPostflightResponse
132{
133}
134
135#[derive(Debug, Default, PartialEq)]
136pub struct DatagramSocketSendMsgPreflightResponse {
137    /// The validated destination address.
138    ///
139    /// Present only in response to an unset `to` addreess.
140    pub to: Option<fidl_fuchsia_net::SocketAddress>,
141    /// Represents the validity of this structure.
142    ///
143    /// The structure is invalid if any of the elements' peer is closed.
144    /// Datagrams sent with the associated metadata after invalidation will be
145    /// silently dropped.
146    pub validity: Option<Vec<fidl::EventPair>>,
147    /// The maximum datagram size that can be sent.
148    ///
149    /// Datagrams exceeding this will be silently dropped.
150    pub maximum_size: Option<u32>,
151    #[doc(hidden)]
152    pub __source_breaking: fidl::marker::SourceBreaking,
153}
154
155impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
156    for DatagramSocketSendMsgPreflightResponse
157{
158}
159
160/// Options that can be provided at socket creation.
161#[derive(Debug, Default, PartialEq)]
162pub struct SocketCreationOptions {
163    /// The marks for the created socket. If a mark is missing from the table,
164    /// it will remain unset for the created socket.
165    pub marks: Option<fidl_fuchsia_net::Marks>,
166    /// A wake group to add the socket to on creation.
167    ///
168    /// If absent, the socket is not added to any wake group. If the token
169    /// provided does not correspond to an existing wake group, socket creation
170    /// succeeds, but the socket is not added to any wake group. This makes it
171    /// easier for clients to avoid a race between shutting down their wake
172    /// group and creating a new socket.
173    pub group: Option<fidl_fuchsia_net_resources::WakeGroupToken>,
174    #[doc(hidden)]
175    pub __source_breaking: fidl::marker::SourceBreaking,
176}
177
178impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect> for SocketCreationOptions {}
179
180#[derive(Debug, Default, PartialEq)]
181pub struct StreamSocketDescribeResponse {
182    /// `ZX_SOCKET_STREAM` on which data is sent and received.
183    pub socket: Option<fidl::Socket>,
184    #[doc(hidden)]
185    pub __source_breaking: fidl::marker::SourceBreaking,
186}
187
188impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
189    for StreamSocketDescribeResponse
190{
191}
192
193#[derive(Debug, Default, PartialEq)]
194pub struct SynchronousDatagramSocketDescribeResponse {
195    /// Signals additional information about the state of the socket such as
196    /// readiness or shutdown-ness.
197    pub event: Option<fidl::EventPair>,
198    #[doc(hidden)]
199    pub __source_breaking: fidl::marker::SourceBreaking,
200}
201
202impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
203    for SynchronousDatagramSocketDescribeResponse
204{
205}
206
207#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
208pub enum ProviderDatagramSocketWithOptionsResponse {
209    DatagramSocket(fidl::endpoints::ClientEnd<DatagramSocketMarker>),
210    SynchronousDatagramSocket(fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>),
211}
212
213impl ProviderDatagramSocketWithOptionsResponse {
214    #[inline]
215    pub fn ordinal(&self) -> u64 {
216        match *self {
217            Self::DatagramSocket(_) => 1,
218            Self::SynchronousDatagramSocket(_) => 2,
219        }
220    }
221}
222
223impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
224    for ProviderDatagramSocketWithOptionsResponse
225{
226}
227
228#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
229pub enum ProviderDatagramSocketResponse {
230    DatagramSocket(fidl::endpoints::ClientEnd<DatagramSocketMarker>),
231    SynchronousDatagramSocket(fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>),
232}
233
234impl ProviderDatagramSocketResponse {
235    #[inline]
236    pub fn ordinal(&self) -> u64 {
237        match *self {
238            Self::DatagramSocket(_) => 1,
239            Self::SynchronousDatagramSocket(_) => 2,
240        }
241    }
242}
243
244impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
245    for ProviderDatagramSocketResponse
246{
247}
248
249/// SO_REUSEPORT option.
250#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
251pub enum ReusePortOption {
252    /// SO_REUSEPORT disabled.
253    Disabled(Empty),
254    /// SO_REUSEPORT enabled in the sharing domain identified by the token.
255    Enabled(fidl::Event),
256}
257
258impl ReusePortOption {
259    #[inline]
260    pub fn ordinal(&self) -> u64 {
261        match *self {
262            Self::Disabled(_) => 1,
263            Self::Enabled(_) => 2,
264        }
265    }
266}
267
268impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect> for ReusePortOption {}
269
270#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
271pub struct BaseDatagramSocketMarker;
272
273impl fidl::endpoints::ProtocolMarker for BaseDatagramSocketMarker {
274    type Proxy = BaseDatagramSocketProxy;
275    type RequestStream = BaseDatagramSocketRequestStream;
276    #[cfg(target_os = "fuchsia")]
277    type SynchronousProxy = BaseDatagramSocketSynchronousProxy;
278
279    const DEBUG_NAME: &'static str = "(anonymous) BaseDatagramSocket";
280}
281pub type BaseDatagramSocketGetInfoResult =
282    Result<(Domain, DatagramSocketProtocol), fidl_fuchsia_posix::Errno>;
283
284pub trait BaseDatagramSocketProxyInterface: Send + Sync {
285    fn r#clone(
286        &self,
287        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
288    ) -> Result<(), fidl::Error>;
289    type CloseResponseFut: std::future::Future<
290            Output = Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error>,
291        > + Send;
292    fn r#close(&self) -> Self::CloseResponseFut;
293    type QueryResponseFut: std::future::Future<Output = Result<Vec<u8>, fidl::Error>> + Send;
294    fn r#query(&self) -> Self::QueryResponseFut;
295    type SetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketSetReuseAddressResult, fidl::Error>>
296        + Send;
297    fn r#set_reuse_address(&self, value: bool) -> Self::SetReuseAddressResponseFut;
298    type GetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketGetReuseAddressResult, fidl::Error>>
299        + Send;
300    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut;
301    type GetErrorResponseFut: std::future::Future<Output = Result<BaseSocketGetErrorResult, fidl::Error>>
302        + Send;
303    fn r#get_error(&self) -> Self::GetErrorResponseFut;
304    type SetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketSetBroadcastResult, fidl::Error>>
305        + Send;
306    fn r#set_broadcast(&self, value: bool) -> Self::SetBroadcastResponseFut;
307    type GetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketGetBroadcastResult, fidl::Error>>
308        + Send;
309    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut;
310    type SetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetSendBufferResult, fidl::Error>>
311        + Send;
312    fn r#set_send_buffer(&self, value_bytes: u64) -> Self::SetSendBufferResponseFut;
313    type GetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetSendBufferResult, fidl::Error>>
314        + Send;
315    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut;
316    type SetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetReceiveBufferResult, fidl::Error>>
317        + Send;
318    fn r#set_receive_buffer(&self, value_bytes: u64) -> Self::SetReceiveBufferResponseFut;
319    type GetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetReceiveBufferResult, fidl::Error>>
320        + Send;
321    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut;
322    type SetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketSetKeepAliveResult, fidl::Error>>
323        + Send;
324    fn r#set_keep_alive(&self, value: bool) -> Self::SetKeepAliveResponseFut;
325    type GetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketGetKeepAliveResult, fidl::Error>>
326        + Send;
327    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut;
328    type SetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketSetOutOfBandInlineResult, fidl::Error>>
329        + Send;
330    fn r#set_out_of_band_inline(&self, value: bool) -> Self::SetOutOfBandInlineResponseFut;
331    type GetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketGetOutOfBandInlineResult, fidl::Error>>
332        + Send;
333    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut;
334    type SetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketSetNoCheckResult, fidl::Error>>
335        + Send;
336    fn r#set_no_check(&self, value: bool) -> Self::SetNoCheckResponseFut;
337    type GetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketGetNoCheckResult, fidl::Error>>
338        + Send;
339    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut;
340    type SetLingerResponseFut: std::future::Future<Output = Result<BaseSocketSetLingerResult, fidl::Error>>
341        + Send;
342    fn r#set_linger(&self, linger: bool, length_secs: u32) -> Self::SetLingerResponseFut;
343    type GetLingerResponseFut: std::future::Future<Output = Result<BaseSocketGetLingerResult, fidl::Error>>
344        + Send;
345    fn r#get_linger(&self) -> Self::GetLingerResponseFut;
346    type SetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketSetReusePortResult, fidl::Error>>
347        + Send;
348    fn r#set_reuse_port(&self, value: ReusePortOption) -> Self::SetReusePortResponseFut;
349    type SetReusePortDeprecatedResponseFut: std::future::Future<Output = Result<BaseSocketSetReusePortDeprecatedResult, fidl::Error>>
350        + Send;
351    fn r#set_reuse_port_deprecated(&self, value: bool) -> Self::SetReusePortDeprecatedResponseFut;
352    type GetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketGetReusePortResult, fidl::Error>>
353        + Send;
354    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut;
355    type GetAcceptConnResponseFut: std::future::Future<Output = Result<BaseSocketGetAcceptConnResult, fidl::Error>>
356        + Send;
357    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut;
358    type SetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToDeviceResult, fidl::Error>>
359        + Send;
360    fn r#set_bind_to_device(&self, value: &str) -> Self::SetBindToDeviceResponseFut;
361    type GetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToDeviceResult, fidl::Error>>
362        + Send;
363    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut;
364    type SetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error>>
365        + Send;
366    fn r#set_bind_to_interface_index(&self, value: u64)
367    -> Self::SetBindToInterfaceIndexResponseFut;
368    type GetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error>>
369        + Send;
370    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut;
371    type SetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketSetTimestampResult, fidl::Error>>
372        + Send;
373    fn r#set_timestamp(&self, value: TimestampOption) -> Self::SetTimestampResponseFut;
374    type GetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketGetTimestampResult, fidl::Error>>
375        + Send;
376    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut;
377    type SetMarkResponseFut: std::future::Future<Output = Result<BaseSocketSetMarkResult, fidl::Error>>
378        + Send;
379    fn r#set_mark(
380        &self,
381        domain: fidl_fuchsia_net::MarkDomain,
382        mark: &OptionalUint32,
383    ) -> Self::SetMarkResponseFut;
384    type GetMarkResponseFut: std::future::Future<Output = Result<BaseSocketGetMarkResult, fidl::Error>>
385        + Send;
386    fn r#get_mark(&self, domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut;
387    type GetCookieResponseFut: std::future::Future<Output = Result<BaseSocketGetCookieResult, fidl::Error>>
388        + Send;
389    fn r#get_cookie(&self) -> Self::GetCookieResponseFut;
390    type BindResponseFut: std::future::Future<Output = Result<BaseNetworkSocketBindResult, fidl::Error>>
391        + Send;
392    fn r#bind(&self, addr: &fidl_fuchsia_net::SocketAddress) -> Self::BindResponseFut;
393    type ConnectResponseFut: std::future::Future<Output = Result<BaseNetworkSocketConnectResult, fidl::Error>>
394        + Send;
395    fn r#connect(&self, addr: &fidl_fuchsia_net::SocketAddress) -> Self::ConnectResponseFut;
396    type DisconnectResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDisconnectResult, fidl::Error>>
397        + Send;
398    fn r#disconnect(&self) -> Self::DisconnectResponseFut;
399    type GetSockNameResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetSockNameResult, fidl::Error>>
400        + Send;
401    fn r#get_sock_name(&self) -> Self::GetSockNameResponseFut;
402    type GetPeerNameResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetPeerNameResult, fidl::Error>>
403        + Send;
404    fn r#get_peer_name(&self) -> Self::GetPeerNameResponseFut;
405    type ShutdownResponseFut: std::future::Future<Output = Result<BaseNetworkSocketShutdownResult, fidl::Error>>
406        + Send;
407    fn r#shutdown(&self, mode: ShutdownMode) -> Self::ShutdownResponseFut;
408    type SetIpTypeOfServiceResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error>>
409        + Send;
410    fn r#set_ip_type_of_service(&self, value: u8) -> Self::SetIpTypeOfServiceResponseFut;
411    type GetIpTypeOfServiceResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error>>
412        + Send;
413    fn r#get_ip_type_of_service(&self) -> Self::GetIpTypeOfServiceResponseFut;
414    type SetIpTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTtlResult, fidl::Error>>
415        + Send;
416    fn r#set_ip_ttl(&self, value: &OptionalUint8) -> Self::SetIpTtlResponseFut;
417    type GetIpTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTtlResult, fidl::Error>>
418        + Send;
419    fn r#get_ip_ttl(&self) -> Self::GetIpTtlResponseFut;
420    type SetIpPacketInfoResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error>>
421        + Send;
422    fn r#set_ip_packet_info(&self, value: bool) -> Self::SetIpPacketInfoResponseFut;
423    type GetIpPacketInfoResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error>>
424        + Send;
425    fn r#get_ip_packet_info(&self) -> Self::GetIpPacketInfoResponseFut;
426    type SetIpReceiveTypeOfServiceResponseFut: std::future::Future<
427            Output = Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error>,
428        > + Send;
429    fn r#set_ip_receive_type_of_service(
430        &self,
431        value: bool,
432    ) -> Self::SetIpReceiveTypeOfServiceResponseFut;
433    type GetIpReceiveTypeOfServiceResponseFut: std::future::Future<
434            Output = Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error>,
435        > + Send;
436    fn r#get_ip_receive_type_of_service(&self) -> Self::GetIpReceiveTypeOfServiceResponseFut;
437    type SetIpReceiveTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error>>
438        + Send;
439    fn r#set_ip_receive_ttl(&self, value: bool) -> Self::SetIpReceiveTtlResponseFut;
440    type GetIpReceiveTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error>>
441        + Send;
442    fn r#get_ip_receive_ttl(&self) -> Self::GetIpReceiveTtlResponseFut;
443    type SetIpMulticastInterfaceResponseFut: std::future::Future<
444            Output = Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error>,
445        > + Send;
446    fn r#set_ip_multicast_interface(
447        &self,
448        iface: u64,
449        address: &fidl_fuchsia_net::Ipv4Address,
450    ) -> Self::SetIpMulticastInterfaceResponseFut;
451    type GetIpMulticastInterfaceResponseFut: std::future::Future<
452            Output = Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error>,
453        > + Send;
454    fn r#get_ip_multicast_interface(&self) -> Self::GetIpMulticastInterfaceResponseFut;
455    type SetIpMulticastTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error>>
456        + Send;
457    fn r#set_ip_multicast_ttl(&self, value: &OptionalUint8) -> Self::SetIpMulticastTtlResponseFut;
458    type GetIpMulticastTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error>>
459        + Send;
460    fn r#get_ip_multicast_ttl(&self) -> Self::GetIpMulticastTtlResponseFut;
461    type SetIpMulticastLoopbackResponseFut: std::future::Future<
462            Output = Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error>,
463        > + Send;
464    fn r#set_ip_multicast_loopback(&self, value: bool) -> Self::SetIpMulticastLoopbackResponseFut;
465    type GetIpMulticastLoopbackResponseFut: std::future::Future<
466            Output = Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error>,
467        > + Send;
468    fn r#get_ip_multicast_loopback(&self) -> Self::GetIpMulticastLoopbackResponseFut;
469    type AddIpMembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error>>
470        + Send;
471    fn r#add_ip_membership(
472        &self,
473        membership: &IpMulticastMembership,
474    ) -> Self::AddIpMembershipResponseFut;
475    type DropIpMembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error>>
476        + Send;
477    fn r#drop_ip_membership(
478        &self,
479        membership: &IpMulticastMembership,
480    ) -> Self::DropIpMembershipResponseFut;
481    type SetIpTransparentResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error>>
482        + Send;
483    fn r#set_ip_transparent(&self, value: bool) -> Self::SetIpTransparentResponseFut;
484    type GetIpTransparentResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error>>
485        + Send;
486    fn r#get_ip_transparent(&self) -> Self::GetIpTransparentResponseFut;
487    type SetIpReceiveOriginalDestinationAddressResponseFut: std::future::Future<
488            Output = Result<
489                BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
490                fidl::Error,
491            >,
492        > + Send;
493    fn r#set_ip_receive_original_destination_address(
494        &self,
495        value: bool,
496    ) -> Self::SetIpReceiveOriginalDestinationAddressResponseFut;
497    type GetIpReceiveOriginalDestinationAddressResponseFut: std::future::Future<
498            Output = Result<
499                BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
500                fidl::Error,
501            >,
502        > + Send;
503    fn r#get_ip_receive_original_destination_address(
504        &self,
505    ) -> Self::GetIpReceiveOriginalDestinationAddressResponseFut;
506    type AddIpv6MembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error>>
507        + Send;
508    fn r#add_ipv6_membership(
509        &self,
510        membership: &Ipv6MulticastMembership,
511    ) -> Self::AddIpv6MembershipResponseFut;
512    type DropIpv6MembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error>>
513        + Send;
514    fn r#drop_ipv6_membership(
515        &self,
516        membership: &Ipv6MulticastMembership,
517    ) -> Self::DropIpv6MembershipResponseFut;
518    type SetIpv6MulticastInterfaceResponseFut: std::future::Future<
519            Output = Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error>,
520        > + Send;
521    fn r#set_ipv6_multicast_interface(
522        &self,
523        value: u64,
524    ) -> Self::SetIpv6MulticastInterfaceResponseFut;
525    type GetIpv6MulticastInterfaceResponseFut: std::future::Future<
526            Output = Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error>,
527        > + Send;
528    fn r#get_ipv6_multicast_interface(&self) -> Self::GetIpv6MulticastInterfaceResponseFut;
529    type SetIpv6UnicastHopsResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error>>
530        + Send;
531    fn r#set_ipv6_unicast_hops(&self, value: &OptionalUint8)
532    -> Self::SetIpv6UnicastHopsResponseFut;
533    type GetIpv6UnicastHopsResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error>>
534        + Send;
535    fn r#get_ipv6_unicast_hops(&self) -> Self::GetIpv6UnicastHopsResponseFut;
536    type SetIpv6ReceiveHopLimitResponseFut: std::future::Future<
537            Output = Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error>,
538        > + Send;
539    fn r#set_ipv6_receive_hop_limit(&self, value: bool) -> Self::SetIpv6ReceiveHopLimitResponseFut;
540    type GetIpv6ReceiveHopLimitResponseFut: std::future::Future<
541            Output = Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error>,
542        > + Send;
543    fn r#get_ipv6_receive_hop_limit(&self) -> Self::GetIpv6ReceiveHopLimitResponseFut;
544    type SetIpv6MulticastHopsResponseFut: std::future::Future<
545            Output = Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error>,
546        > + Send;
547    fn r#set_ipv6_multicast_hops(
548        &self,
549        value: &OptionalUint8,
550    ) -> Self::SetIpv6MulticastHopsResponseFut;
551    type GetIpv6MulticastHopsResponseFut: std::future::Future<
552            Output = Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error>,
553        > + Send;
554    fn r#get_ipv6_multicast_hops(&self) -> Self::GetIpv6MulticastHopsResponseFut;
555    type SetIpv6MulticastLoopbackResponseFut: std::future::Future<
556            Output = Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error>,
557        > + Send;
558    fn r#set_ipv6_multicast_loopback(
559        &self,
560        value: bool,
561    ) -> Self::SetIpv6MulticastLoopbackResponseFut;
562    type GetIpv6MulticastLoopbackResponseFut: std::future::Future<
563            Output = Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error>,
564        > + Send;
565    fn r#get_ipv6_multicast_loopback(&self) -> Self::GetIpv6MulticastLoopbackResponseFut;
566    type SetIpv6OnlyResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error>>
567        + Send;
568    fn r#set_ipv6_only(&self, value: bool) -> Self::SetIpv6OnlyResponseFut;
569    type GetIpv6OnlyResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error>>
570        + Send;
571    fn r#get_ipv6_only(&self) -> Self::GetIpv6OnlyResponseFut;
572    type SetIpv6ReceiveTrafficClassResponseFut: std::future::Future<
573            Output = Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error>,
574        > + Send;
575    fn r#set_ipv6_receive_traffic_class(
576        &self,
577        value: bool,
578    ) -> Self::SetIpv6ReceiveTrafficClassResponseFut;
579    type GetIpv6ReceiveTrafficClassResponseFut: std::future::Future<
580            Output = Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error>,
581        > + Send;
582    fn r#get_ipv6_receive_traffic_class(&self) -> Self::GetIpv6ReceiveTrafficClassResponseFut;
583    type SetIpv6TrafficClassResponseFut: std::future::Future<
584            Output = Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error>,
585        > + Send;
586    fn r#set_ipv6_traffic_class(
587        &self,
588        value: &OptionalUint8,
589    ) -> Self::SetIpv6TrafficClassResponseFut;
590    type GetIpv6TrafficClassResponseFut: std::future::Future<
591            Output = Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error>,
592        > + Send;
593    fn r#get_ipv6_traffic_class(&self) -> Self::GetIpv6TrafficClassResponseFut;
594    type SetIpv6ReceivePacketInfoResponseFut: std::future::Future<
595            Output = Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error>,
596        > + Send;
597    fn r#set_ipv6_receive_packet_info(
598        &self,
599        value: bool,
600    ) -> Self::SetIpv6ReceivePacketInfoResponseFut;
601    type GetIpv6ReceivePacketInfoResponseFut: std::future::Future<
602            Output = Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error>,
603        > + Send;
604    fn r#get_ipv6_receive_packet_info(&self) -> Self::GetIpv6ReceivePacketInfoResponseFut;
605    type GetOriginalDestinationResponseFut: std::future::Future<
606            Output = Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error>,
607        > + Send;
608    fn r#get_original_destination(&self) -> Self::GetOriginalDestinationResponseFut;
609    type GetInfoResponseFut: std::future::Future<Output = Result<BaseDatagramSocketGetInfoResult, fidl::Error>>
610        + Send;
611    fn r#get_info(&self) -> Self::GetInfoResponseFut;
612}
613#[derive(Debug)]
614#[cfg(target_os = "fuchsia")]
615pub struct BaseDatagramSocketSynchronousProxy {
616    client: fidl::client::sync::Client,
617}
618
619#[cfg(target_os = "fuchsia")]
620impl fidl::endpoints::SynchronousProxy for BaseDatagramSocketSynchronousProxy {
621    type Proxy = BaseDatagramSocketProxy;
622    type Protocol = BaseDatagramSocketMarker;
623
624    fn from_channel(inner: fidl::Channel) -> Self {
625        Self::new(inner)
626    }
627
628    fn into_channel(self) -> fidl::Channel {
629        self.client.into_channel()
630    }
631
632    fn as_channel(&self) -> &fidl::Channel {
633        self.client.as_channel()
634    }
635}
636
637#[cfg(target_os = "fuchsia")]
638impl BaseDatagramSocketSynchronousProxy {
639    pub fn new(channel: fidl::Channel) -> Self {
640        Self { client: fidl::client::sync::Client::new(channel) }
641    }
642
643    pub fn into_channel(self) -> fidl::Channel {
644        self.client.into_channel()
645    }
646
647    /// Waits until an event arrives and returns it. It is safe for other
648    /// threads to make concurrent requests while waiting for an event.
649    pub fn wait_for_event(
650        &self,
651        deadline: zx::MonotonicInstant,
652    ) -> Result<BaseDatagramSocketEvent, fidl::Error> {
653        BaseDatagramSocketEvent::decode(
654            self.client.wait_for_event::<BaseDatagramSocketMarker>(deadline)?,
655        )
656    }
657
658    pub fn r#clone(
659        &self,
660        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
661    ) -> Result<(), fidl::Error> {
662        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
663            (request,),
664            0x20d8a7aba2168a79,
665            fidl::encoding::DynamicFlags::empty(),
666        )
667    }
668
669    /// Terminates the connection.
670    ///
671    /// After calling `Close`, the client must not send any other requests.
672    ///
673    /// Servers, after sending the status response, should close the connection
674    /// regardless of status and without sending an epitaph.
675    ///
676    /// Closing the client end of the channel should be semantically equivalent
677    /// to calling `Close` without knowing when the close has completed or its
678    /// status.
679    pub fn r#close(
680        &self,
681        ___deadline: zx::MonotonicInstant,
682    ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
683        let _response = self.client.send_query::<
684            fidl::encoding::EmptyPayload,
685            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
686            BaseDatagramSocketMarker,
687        >(
688            (),
689            0x5ac5d459ad7f657e,
690            fidl::encoding::DynamicFlags::empty(),
691            ___deadline,
692        )?;
693        Ok(_response.map(|x| x))
694    }
695
696    pub fn r#query(&self, ___deadline: zx::MonotonicInstant) -> Result<Vec<u8>, fidl::Error> {
697        let _response = self.client.send_query::<
698            fidl::encoding::EmptyPayload,
699            fidl_fuchsia_unknown::QueryableQueryResponse,
700            BaseDatagramSocketMarker,
701        >(
702            (),
703            0x2658edee9decfc06,
704            fidl::encoding::DynamicFlags::empty(),
705            ___deadline,
706        )?;
707        Ok(_response.protocol)
708    }
709
710    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
711    pub fn r#set_reuse_address(
712        &self,
713        mut value: bool,
714        ___deadline: zx::MonotonicInstant,
715    ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
716        let _response =
717            self.client.send_query::<BaseSocketSetReuseAddressRequest, fidl::encoding::ResultType<
718                fidl::encoding::EmptyStruct,
719                fidl_fuchsia_posix::Errno,
720            >, BaseDatagramSocketMarker>(
721                (value,),
722                0x1fd74ee8b9a4a876,
723                fidl::encoding::DynamicFlags::empty(),
724                ___deadline,
725            )?;
726        Ok(_response.map(|x| x))
727    }
728
729    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
730    pub fn r#get_reuse_address(
731        &self,
732        ___deadline: zx::MonotonicInstant,
733    ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
734        let _response =
735            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
736                BaseSocketGetReuseAddressResponse,
737                fidl_fuchsia_posix::Errno,
738            >, BaseDatagramSocketMarker>(
739                (),
740                0x67b7206b8d1bc0a5,
741                fidl::encoding::DynamicFlags::empty(),
742                ___deadline,
743            )?;
744        Ok(_response.map(|x| x.value))
745    }
746
747    /// Get `SOL_SOCKET` -> `SO_ERROR`.
748    /// Returns the last error if there is an error set on the socket.
749    pub fn r#get_error(
750        &self,
751        ___deadline: zx::MonotonicInstant,
752    ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
753        let _response =
754            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
755                fidl::encoding::EmptyStruct,
756                fidl_fuchsia_posix::Errno,
757            >, BaseDatagramSocketMarker>(
758                (),
759                0x5aad39b33e5f6ebb,
760                fidl::encoding::DynamicFlags::empty(),
761                ___deadline,
762            )?;
763        Ok(_response.map(|x| x))
764    }
765
766    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
767    pub fn r#set_broadcast(
768        &self,
769        mut value: bool,
770        ___deadline: zx::MonotonicInstant,
771    ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
772        let _response =
773            self.client.send_query::<BaseSocketSetBroadcastRequest, fidl::encoding::ResultType<
774                fidl::encoding::EmptyStruct,
775                fidl_fuchsia_posix::Errno,
776            >, BaseDatagramSocketMarker>(
777                (value,),
778                0x6023e081ce3cd947,
779                fidl::encoding::DynamicFlags::empty(),
780                ___deadline,
781            )?;
782        Ok(_response.map(|x| x))
783    }
784
785    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
786    pub fn r#get_broadcast(
787        &self,
788        ___deadline: zx::MonotonicInstant,
789    ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
790        let _response =
791            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
792                BaseSocketGetBroadcastResponse,
793                fidl_fuchsia_posix::Errno,
794            >, BaseDatagramSocketMarker>(
795                (),
796                0x68796fc556f9780d,
797                fidl::encoding::DynamicFlags::empty(),
798                ___deadline,
799            )?;
800        Ok(_response.map(|x| x.value))
801    }
802
803    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
804    pub fn r#set_send_buffer(
805        &self,
806        mut value_bytes: u64,
807        ___deadline: zx::MonotonicInstant,
808    ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
809        let _response =
810            self.client.send_query::<BaseSocketSetSendBufferRequest, fidl::encoding::ResultType<
811                fidl::encoding::EmptyStruct,
812                fidl_fuchsia_posix::Errno,
813            >, BaseDatagramSocketMarker>(
814                (value_bytes,),
815                0x756eac32d73a7a70,
816                fidl::encoding::DynamicFlags::empty(),
817                ___deadline,
818            )?;
819        Ok(_response.map(|x| x))
820    }
821
822    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
823    pub fn r#get_send_buffer(
824        &self,
825        ___deadline: zx::MonotonicInstant,
826    ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
827        let _response =
828            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
829                BaseSocketGetSendBufferResponse,
830                fidl_fuchsia_posix::Errno,
831            >, BaseDatagramSocketMarker>(
832                (),
833                0x78a52fd9c7b2410b,
834                fidl::encoding::DynamicFlags::empty(),
835                ___deadline,
836            )?;
837        Ok(_response.map(|x| x.value_bytes))
838    }
839
840    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
841    pub fn r#set_receive_buffer(
842        &self,
843        mut value_bytes: u64,
844        ___deadline: zx::MonotonicInstant,
845    ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
846        let _response =
847            self.client
848                .send_query::<BaseSocketSetReceiveBufferRequest, fidl::encoding::ResultType<
849                    fidl::encoding::EmptyStruct,
850                    fidl_fuchsia_posix::Errno,
851                >, BaseDatagramSocketMarker>(
852                    (value_bytes,),
853                    0x6b0cf2f1919c7001,
854                    fidl::encoding::DynamicFlags::empty(),
855                    ___deadline,
856                )?;
857        Ok(_response.map(|x| x))
858    }
859
860    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
861    pub fn r#get_receive_buffer(
862        &self,
863        ___deadline: zx::MonotonicInstant,
864    ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
865        let _response =
866            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
867                BaseSocketGetReceiveBufferResponse,
868                fidl_fuchsia_posix::Errno,
869            >, BaseDatagramSocketMarker>(
870                (),
871                0x14c1a4b64f709e5c,
872                fidl::encoding::DynamicFlags::empty(),
873                ___deadline,
874            )?;
875        Ok(_response.map(|x| x.value_bytes))
876    }
877
878    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
879    pub fn r#set_keep_alive(
880        &self,
881        mut value: bool,
882        ___deadline: zx::MonotonicInstant,
883    ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
884        let _response =
885            self.client.send_query::<BaseSocketSetKeepAliveRequest, fidl::encoding::ResultType<
886                fidl::encoding::EmptyStruct,
887                fidl_fuchsia_posix::Errno,
888            >, BaseDatagramSocketMarker>(
889                (value,),
890                0x572df8f0b920d2c7,
891                fidl::encoding::DynamicFlags::empty(),
892                ___deadline,
893            )?;
894        Ok(_response.map(|x| x))
895    }
896
897    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
898    pub fn r#get_keep_alive(
899        &self,
900        ___deadline: zx::MonotonicInstant,
901    ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
902        let _response =
903            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
904                BaseSocketGetKeepAliveResponse,
905                fidl_fuchsia_posix::Errno,
906            >, BaseDatagramSocketMarker>(
907                (),
908                0x2dd29d3215f2c9d2,
909                fidl::encoding::DynamicFlags::empty(),
910                ___deadline,
911            )?;
912        Ok(_response.map(|x| x.value))
913    }
914
915    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
916    pub fn r#set_out_of_band_inline(
917        &self,
918        mut value: bool,
919        ___deadline: zx::MonotonicInstant,
920    ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
921        let _response =
922            self.client
923                .send_query::<BaseSocketSetOutOfBandInlineRequest, fidl::encoding::ResultType<
924                    fidl::encoding::EmptyStruct,
925                    fidl_fuchsia_posix::Errno,
926                >, BaseDatagramSocketMarker>(
927                    (value,),
928                    0x3ecb49968bee439,
929                    fidl::encoding::DynamicFlags::empty(),
930                    ___deadline,
931                )?;
932        Ok(_response.map(|x| x))
933    }
934
935    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
936    pub fn r#get_out_of_band_inline(
937        &self,
938        ___deadline: zx::MonotonicInstant,
939    ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
940        let _response =
941            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
942                BaseSocketGetOutOfBandInlineResponse,
943                fidl_fuchsia_posix::Errno,
944            >, BaseDatagramSocketMarker>(
945                (),
946                0x348c1ab3aeca1745,
947                fidl::encoding::DynamicFlags::empty(),
948                ___deadline,
949            )?;
950        Ok(_response.map(|x| x.value))
951    }
952
953    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
954    pub fn r#set_no_check(
955        &self,
956        mut value: bool,
957        ___deadline: zx::MonotonicInstant,
958    ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
959        let _response =
960            self.client.send_query::<BaseSocketSetNoCheckRequest, fidl::encoding::ResultType<
961                fidl::encoding::EmptyStruct,
962                fidl_fuchsia_posix::Errno,
963            >, BaseDatagramSocketMarker>(
964                (value,),
965                0x6bbf00c53a4c78c2,
966                fidl::encoding::DynamicFlags::empty(),
967                ___deadline,
968            )?;
969        Ok(_response.map(|x| x))
970    }
971
972    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
973    pub fn r#get_no_check(
974        &self,
975        ___deadline: zx::MonotonicInstant,
976    ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
977        let _response =
978            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
979                BaseSocketGetNoCheckResponse,
980                fidl_fuchsia_posix::Errno,
981            >, BaseDatagramSocketMarker>(
982                (),
983                0x2cd4249286417694,
984                fidl::encoding::DynamicFlags::empty(),
985                ___deadline,
986            )?;
987        Ok(_response.map(|x| x.value))
988    }
989
990    /// Set `SOL_SOCKET` -> `SO_LINGER`.
991    pub fn r#set_linger(
992        &self,
993        mut linger: bool,
994        mut length_secs: u32,
995        ___deadline: zx::MonotonicInstant,
996    ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
997        let _response =
998            self.client.send_query::<BaseSocketSetLingerRequest, fidl::encoding::ResultType<
999                fidl::encoding::EmptyStruct,
1000                fidl_fuchsia_posix::Errno,
1001            >, BaseDatagramSocketMarker>(
1002                (linger, length_secs),
1003                0x45386351246e998e,
1004                fidl::encoding::DynamicFlags::empty(),
1005                ___deadline,
1006            )?;
1007        Ok(_response.map(|x| x))
1008    }
1009
1010    /// Get `SOL_SOCKET` -> `SO_LINGER`.
1011    pub fn r#get_linger(
1012        &self,
1013        ___deadline: zx::MonotonicInstant,
1014    ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
1015        let _response =
1016            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1017                BaseSocketGetLingerResponse,
1018                fidl_fuchsia_posix::Errno,
1019            >, BaseDatagramSocketMarker>(
1020                (),
1021                0x48eb20fc5ccb0e45,
1022                fidl::encoding::DynamicFlags::empty(),
1023                ___deadline,
1024            )?;
1025        Ok(_response.map(|x| (x.linger, x.length_secs)))
1026    }
1027
1028    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
1029    pub fn r#set_reuse_port(
1030        &self,
1031        mut value: ReusePortOption,
1032        ___deadline: zx::MonotonicInstant,
1033    ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
1034        let _response =
1035            self.client.send_query::<BaseSocketSetReusePortRequest, fidl::encoding::ResultType<
1036                fidl::encoding::EmptyStruct,
1037                fidl_fuchsia_posix::Errno,
1038            >, BaseDatagramSocketMarker>(
1039                (&mut value,),
1040                0x547dc9cc0455189e,
1041                fidl::encoding::DynamicFlags::empty(),
1042                ___deadline,
1043            )?;
1044        Ok(_response.map(|x| x))
1045    }
1046
1047    pub fn r#set_reuse_port_deprecated(
1048        &self,
1049        mut value: bool,
1050        ___deadline: zx::MonotonicInstant,
1051    ) -> Result<BaseSocketSetReusePortDeprecatedResult, fidl::Error> {
1052        let _response =
1053            self.client
1054                .send_query::<BaseSocketSetReusePortDeprecatedRequest, fidl::encoding::ResultType<
1055                    fidl::encoding::EmptyStruct,
1056                    fidl_fuchsia_posix::Errno,
1057                >, BaseDatagramSocketMarker>(
1058                    (value,),
1059                    0x24dd3e5cb36d9ccb,
1060                    fidl::encoding::DynamicFlags::empty(),
1061                    ___deadline,
1062                )?;
1063        Ok(_response.map(|x| x))
1064    }
1065
1066    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
1067    pub fn r#get_reuse_port(
1068        &self,
1069        ___deadline: zx::MonotonicInstant,
1070    ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
1071        let _response =
1072            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1073                BaseSocketGetReusePortResponse,
1074                fidl_fuchsia_posix::Errno,
1075            >, BaseDatagramSocketMarker>(
1076                (),
1077                0x7a112c1ab54ff828,
1078                fidl::encoding::DynamicFlags::empty(),
1079                ___deadline,
1080            )?;
1081        Ok(_response.map(|x| x.value))
1082    }
1083
1084    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
1085    pub fn r#get_accept_conn(
1086        &self,
1087        ___deadline: zx::MonotonicInstant,
1088    ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
1089        let _response =
1090            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1091                BaseSocketGetAcceptConnResponse,
1092                fidl_fuchsia_posix::Errno,
1093            >, BaseDatagramSocketMarker>(
1094                (),
1095                0x67ce6db6c2ec8966,
1096                fidl::encoding::DynamicFlags::empty(),
1097                ___deadline,
1098            )?;
1099        Ok(_response.map(|x| x.value))
1100    }
1101
1102    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
1103    pub fn r#set_bind_to_device(
1104        &self,
1105        mut value: &str,
1106        ___deadline: zx::MonotonicInstant,
1107    ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
1108        let _response =
1109            self.client.send_query::<BaseSocketSetBindToDeviceRequest, fidl::encoding::ResultType<
1110                fidl::encoding::EmptyStruct,
1111                fidl_fuchsia_posix::Errno,
1112            >, BaseDatagramSocketMarker>(
1113                (value,),
1114                0x2118b483f28aafc4,
1115                fidl::encoding::DynamicFlags::empty(),
1116                ___deadline,
1117            )?;
1118        Ok(_response.map(|x| x))
1119    }
1120
1121    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
1122    pub fn r#get_bind_to_device(
1123        &self,
1124        ___deadline: zx::MonotonicInstant,
1125    ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
1126        let _response =
1127            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1128                BaseSocketGetBindToDeviceResponse,
1129                fidl_fuchsia_posix::Errno,
1130            >, BaseDatagramSocketMarker>(
1131                (),
1132                0x1ab1fbf0ef7906c8,
1133                fidl::encoding::DynamicFlags::empty(),
1134                ___deadline,
1135            )?;
1136        Ok(_response.map(|x| x.value))
1137    }
1138
1139    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
1140    /// If `value` is 0, this clears the bound interface.
1141    pub fn r#set_bind_to_interface_index(
1142        &self,
1143        mut value: u64,
1144        ___deadline: zx::MonotonicInstant,
1145    ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
1146        let _response =
1147            self.client
1148                .send_query::<BaseSocketSetBindToInterfaceIndexRequest, fidl::encoding::ResultType<
1149                    fidl::encoding::EmptyStruct,
1150                    fidl_fuchsia_posix::Errno,
1151                >, BaseDatagramSocketMarker>(
1152                    (value,),
1153                    0x6e387a0def00821,
1154                    fidl::encoding::DynamicFlags::empty(),
1155                    ___deadline,
1156                )?;
1157        Ok(_response.map(|x| x))
1158    }
1159
1160    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
1161    pub fn r#get_bind_to_interface_index(
1162        &self,
1163        ___deadline: zx::MonotonicInstant,
1164    ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
1165        let _response =
1166            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1167                BaseSocketGetBindToInterfaceIndexResponse,
1168                fidl_fuchsia_posix::Errno,
1169            >, BaseDatagramSocketMarker>(
1170                (),
1171                0x59c31dd3e3078295,
1172                fidl::encoding::DynamicFlags::empty(),
1173                ___deadline,
1174            )?;
1175        Ok(_response.map(|x| x.value))
1176    }
1177
1178    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
1179    pub fn r#set_timestamp(
1180        &self,
1181        mut value: TimestampOption,
1182        ___deadline: zx::MonotonicInstant,
1183    ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
1184        let _response =
1185            self.client.send_query::<BaseSocketSetTimestampRequest, fidl::encoding::ResultType<
1186                fidl::encoding::EmptyStruct,
1187                fidl_fuchsia_posix::Errno,
1188            >, BaseDatagramSocketMarker>(
1189                (value,),
1190                0x285d6516c263d839,
1191                fidl::encoding::DynamicFlags::empty(),
1192                ___deadline,
1193            )?;
1194        Ok(_response.map(|x| x))
1195    }
1196
1197    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
1198    pub fn r#get_timestamp(
1199        &self,
1200        ___deadline: zx::MonotonicInstant,
1201    ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
1202        let _response =
1203            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1204                BaseSocketGetTimestampResponse,
1205                fidl_fuchsia_posix::Errno,
1206            >, BaseDatagramSocketMarker>(
1207                (),
1208                0x49f2fffbbcc2bd27,
1209                fidl::encoding::DynamicFlags::empty(),
1210                ___deadline,
1211            )?;
1212        Ok(_response.map(|x| x.value))
1213    }
1214
1215    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
1216    /// unlike the standard SO_MARK, this API has multiple mark domains and each
1217    /// mark can be set independently in each domain.
1218    pub fn r#set_mark(
1219        &self,
1220        mut domain: fidl_fuchsia_net::MarkDomain,
1221        mut mark: &OptionalUint32,
1222        ___deadline: zx::MonotonicInstant,
1223    ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
1224        let _response =
1225            self.client.send_query::<BaseSocketSetMarkRequest, fidl::encoding::ResultType<
1226                fidl::encoding::EmptyStruct,
1227                fidl_fuchsia_posix::Errno,
1228            >, BaseDatagramSocketMarker>(
1229                (domain, mark),
1230                0x6ead6de09f653236,
1231                fidl::encoding::DynamicFlags::empty(),
1232                ___deadline,
1233            )?;
1234        Ok(_response.map(|x| x))
1235    }
1236
1237    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
1238    /// unlike the standard SO_MARK, this API has multiple mark domains and each
1239    /// mark can be retrieved independently in each domain.
1240    pub fn r#get_mark(
1241        &self,
1242        mut domain: fidl_fuchsia_net::MarkDomain,
1243        ___deadline: zx::MonotonicInstant,
1244    ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
1245        let _response =
1246            self.client.send_query::<BaseSocketGetMarkRequest, fidl::encoding::ResultType<
1247                BaseSocketGetMarkResponse,
1248                fidl_fuchsia_posix::Errno,
1249            >, BaseDatagramSocketMarker>(
1250                (domain,),
1251                0x57a2752c61d93d47,
1252                fidl::encoding::DynamicFlags::empty(),
1253                ___deadline,
1254            )?;
1255        Ok(_response.map(|x| x.mark))
1256    }
1257
1258    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
1259    pub fn r#get_cookie(
1260        &self,
1261        ___deadline: zx::MonotonicInstant,
1262    ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
1263        let _response =
1264            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1265                BaseSocketGetCookieResponse,
1266                fidl_fuchsia_posix::Errno,
1267            >, BaseDatagramSocketMarker>(
1268                (),
1269                0x2c2f47fd8f924e52,
1270                fidl::encoding::DynamicFlags::empty(),
1271                ___deadline,
1272            )?;
1273        Ok(_response.map(|x| x.value))
1274    }
1275
1276    /// Sets the local address used for the socket.
1277    pub fn r#bind(
1278        &self,
1279        mut addr: &fidl_fuchsia_net::SocketAddress,
1280        ___deadline: zx::MonotonicInstant,
1281    ) -> Result<BaseNetworkSocketBindResult, fidl::Error> {
1282        let _response =
1283            self.client.send_query::<BaseNetworkSocketBindRequest, fidl::encoding::ResultType<
1284                fidl::encoding::EmptyStruct,
1285                fidl_fuchsia_posix::Errno,
1286            >, BaseDatagramSocketMarker>(
1287                (addr,),
1288                0x4bc6400ae92125d,
1289                fidl::encoding::DynamicFlags::empty(),
1290                ___deadline,
1291            )?;
1292        Ok(_response.map(|x| x))
1293    }
1294
1295    /// Initiates a connection to a remote address.
1296    pub fn r#connect(
1297        &self,
1298        mut addr: &fidl_fuchsia_net::SocketAddress,
1299        ___deadline: zx::MonotonicInstant,
1300    ) -> Result<BaseNetworkSocketConnectResult, fidl::Error> {
1301        let _response =
1302            self.client.send_query::<BaseNetworkSocketConnectRequest, fidl::encoding::ResultType<
1303                fidl::encoding::EmptyStruct,
1304                fidl_fuchsia_posix::Errno,
1305            >, BaseDatagramSocketMarker>(
1306                (addr,),
1307                0x5f05f19bfdd38871,
1308                fidl::encoding::DynamicFlags::empty(),
1309                ___deadline,
1310            )?;
1311        Ok(_response.map(|x| x))
1312    }
1313
1314    /// Clears connection information from this socket.
1315    pub fn r#disconnect(
1316        &self,
1317        ___deadline: zx::MonotonicInstant,
1318    ) -> Result<BaseNetworkSocketDisconnectResult, fidl::Error> {
1319        let _response =
1320            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1321                fidl::encoding::EmptyStruct,
1322                fidl_fuchsia_posix::Errno,
1323            >, BaseDatagramSocketMarker>(
1324                (),
1325                0x74e63b91f7b29b2,
1326                fidl::encoding::DynamicFlags::empty(),
1327                ___deadline,
1328            )?;
1329        Ok(_response.map(|x| x))
1330    }
1331
1332    /// Retrieves the local socket address.
1333    pub fn r#get_sock_name(
1334        &self,
1335        ___deadline: zx::MonotonicInstant,
1336    ) -> Result<BaseNetworkSocketGetSockNameResult, fidl::Error> {
1337        let _response =
1338            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1339                BaseNetworkSocketGetSockNameResponse,
1340                fidl_fuchsia_posix::Errno,
1341            >, BaseDatagramSocketMarker>(
1342                (),
1343                0x475f23f84a1a4f85,
1344                fidl::encoding::DynamicFlags::empty(),
1345                ___deadline,
1346            )?;
1347        Ok(_response.map(|x| x.addr))
1348    }
1349
1350    /// Retrieves the remote socket address.
1351    pub fn r#get_peer_name(
1352        &self,
1353        ___deadline: zx::MonotonicInstant,
1354    ) -> Result<BaseNetworkSocketGetPeerNameResult, fidl::Error> {
1355        let _response =
1356            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1357                BaseNetworkSocketGetPeerNameResponse,
1358                fidl_fuchsia_posix::Errno,
1359            >, BaseDatagramSocketMarker>(
1360                (),
1361                0x1ffecf4bd5b6432e,
1362                fidl::encoding::DynamicFlags::empty(),
1363                ___deadline,
1364            )?;
1365        Ok(_response.map(|x| x.addr))
1366    }
1367
1368    /// Shuts down part of the socket.
1369    pub fn r#shutdown(
1370        &self,
1371        mut mode: ShutdownMode,
1372        ___deadline: zx::MonotonicInstant,
1373    ) -> Result<BaseNetworkSocketShutdownResult, fidl::Error> {
1374        let _response =
1375            self.client.send_query::<BaseNetworkSocketShutdownRequest, fidl::encoding::ResultType<
1376                fidl::encoding::EmptyStruct,
1377                fidl_fuchsia_posix::Errno,
1378            >, BaseDatagramSocketMarker>(
1379                (mode,),
1380                0x247f38b6db68c336,
1381                fidl::encoding::DynamicFlags::empty(),
1382                ___deadline,
1383            )?;
1384        Ok(_response.map(|x| x))
1385    }
1386
1387    /// Set `SOL_IP` -> `IP_TOS`.
1388    pub fn r#set_ip_type_of_service(
1389        &self,
1390        mut value: u8,
1391        ___deadline: zx::MonotonicInstant,
1392    ) -> Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error> {
1393        let _response = self.client.send_query::<
1394            BaseNetworkSocketSetIpTypeOfServiceRequest,
1395            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1396            BaseDatagramSocketMarker,
1397        >(
1398            (value,),
1399            0x995c600475b6d46,
1400            fidl::encoding::DynamicFlags::empty(),
1401            ___deadline,
1402        )?;
1403        Ok(_response.map(|x| x))
1404    }
1405
1406    /// Get `SOL_IP` -> `IP_TOS`.
1407    pub fn r#get_ip_type_of_service(
1408        &self,
1409        ___deadline: zx::MonotonicInstant,
1410    ) -> Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error> {
1411        let _response =
1412            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1413                BaseNetworkSocketGetIpTypeOfServiceResponse,
1414                fidl_fuchsia_posix::Errno,
1415            >, BaseDatagramSocketMarker>(
1416                (),
1417                0x3814a04259f75fcb,
1418                fidl::encoding::DynamicFlags::empty(),
1419                ___deadline,
1420            )?;
1421        Ok(_response.map(|x| x.value))
1422    }
1423
1424    /// Set `SOL_IP` -> `IP_TTL`.
1425    pub fn r#set_ip_ttl(
1426        &self,
1427        mut value: &OptionalUint8,
1428        ___deadline: zx::MonotonicInstant,
1429    ) -> Result<BaseNetworkSocketSetIpTtlResult, fidl::Error> {
1430        let _response =
1431            self.client.send_query::<BaseNetworkSocketSetIpTtlRequest, fidl::encoding::ResultType<
1432                fidl::encoding::EmptyStruct,
1433                fidl_fuchsia_posix::Errno,
1434            >, BaseDatagramSocketMarker>(
1435                (value,),
1436                0x29e2424b433ae1ef,
1437                fidl::encoding::DynamicFlags::empty(),
1438                ___deadline,
1439            )?;
1440        Ok(_response.map(|x| x))
1441    }
1442
1443    /// Get `SOL_IP` -> `IP_TTL`.
1444    pub fn r#get_ip_ttl(
1445        &self,
1446        ___deadline: zx::MonotonicInstant,
1447    ) -> Result<BaseNetworkSocketGetIpTtlResult, fidl::Error> {
1448        let _response =
1449            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1450                BaseNetworkSocketGetIpTtlResponse,
1451                fidl_fuchsia_posix::Errno,
1452            >, BaseDatagramSocketMarker>(
1453                (),
1454                0x47e47fa1f24da471,
1455                fidl::encoding::DynamicFlags::empty(),
1456                ___deadline,
1457            )?;
1458        Ok(_response.map(|x| x.value))
1459    }
1460
1461    /// Set `SOL_IP` -> `IP_PKTINFO`.
1462    pub fn r#set_ip_packet_info(
1463        &self,
1464        mut value: bool,
1465        ___deadline: zx::MonotonicInstant,
1466    ) -> Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error> {
1467        let _response =
1468            self.client
1469                .send_query::<BaseNetworkSocketSetIpPacketInfoRequest, fidl::encoding::ResultType<
1470                    fidl::encoding::EmptyStruct,
1471                    fidl_fuchsia_posix::Errno,
1472                >, BaseDatagramSocketMarker>(
1473                    (value,),
1474                    0x392d16bee20c0e16,
1475                    fidl::encoding::DynamicFlags::empty(),
1476                    ___deadline,
1477                )?;
1478        Ok(_response.map(|x| x))
1479    }
1480
1481    /// Get `SOL_IP` -> `IP_PKTINFO`.
1482    pub fn r#get_ip_packet_info(
1483        &self,
1484        ___deadline: zx::MonotonicInstant,
1485    ) -> Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error> {
1486        let _response =
1487            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1488                BaseNetworkSocketGetIpPacketInfoResponse,
1489                fidl_fuchsia_posix::Errno,
1490            >, BaseDatagramSocketMarker>(
1491                (),
1492                0x54b505f242280740,
1493                fidl::encoding::DynamicFlags::empty(),
1494                ___deadline,
1495            )?;
1496        Ok(_response.map(|x| x.value))
1497    }
1498
1499    /// Set `SOL_IP` -> `IP_RECVTOS`.
1500    pub fn r#set_ip_receive_type_of_service(
1501        &self,
1502        mut value: bool,
1503        ___deadline: zx::MonotonicInstant,
1504    ) -> Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error> {
1505        let _response = self.client.send_query::<
1506            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
1507            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1508            BaseDatagramSocketMarker,
1509        >(
1510            (value,),
1511            0x6c4f6714995f84ef,
1512            fidl::encoding::DynamicFlags::empty(),
1513            ___deadline,
1514        )?;
1515        Ok(_response.map(|x| x))
1516    }
1517
1518    /// Get `SOL_IP` -> `IP_RECVTOS`.
1519    pub fn r#get_ip_receive_type_of_service(
1520        &self,
1521        ___deadline: zx::MonotonicInstant,
1522    ) -> Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error> {
1523        let _response =
1524            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1525                BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
1526                fidl_fuchsia_posix::Errno,
1527            >, BaseDatagramSocketMarker>(
1528                (),
1529                0x4158ba7dc2795960,
1530                fidl::encoding::DynamicFlags::empty(),
1531                ___deadline,
1532            )?;
1533        Ok(_response.map(|x| x.value))
1534    }
1535
1536    /// Set `SOL_IP` -> `IP_RECVTTL`.
1537    pub fn r#set_ip_receive_ttl(
1538        &self,
1539        mut value: bool,
1540        ___deadline: zx::MonotonicInstant,
1541    ) -> Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error> {
1542        let _response =
1543            self.client
1544                .send_query::<BaseNetworkSocketSetIpReceiveTtlRequest, fidl::encoding::ResultType<
1545                    fidl::encoding::EmptyStruct,
1546                    fidl_fuchsia_posix::Errno,
1547                >, BaseDatagramSocketMarker>(
1548                    (value,),
1549                    0x46f15be0ce0ab82b,
1550                    fidl::encoding::DynamicFlags::empty(),
1551                    ___deadline,
1552                )?;
1553        Ok(_response.map(|x| x))
1554    }
1555
1556    /// Get `SOL_IP` -> `IP_RECVTTL`.
1557    pub fn r#get_ip_receive_ttl(
1558        &self,
1559        ___deadline: zx::MonotonicInstant,
1560    ) -> Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error> {
1561        let _response =
1562            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1563                BaseNetworkSocketGetIpReceiveTtlResponse,
1564                fidl_fuchsia_posix::Errno,
1565            >, BaseDatagramSocketMarker>(
1566                (),
1567                0x678ddd5a5dfa2eb5,
1568                fidl::encoding::DynamicFlags::empty(),
1569                ___deadline,
1570            )?;
1571        Ok(_response.map(|x| x.value))
1572    }
1573
1574    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
1575    pub fn r#set_ip_multicast_interface(
1576        &self,
1577        mut iface: u64,
1578        mut address: &fidl_fuchsia_net::Ipv4Address,
1579        ___deadline: zx::MonotonicInstant,
1580    ) -> Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error> {
1581        let _response = self.client.send_query::<
1582            BaseNetworkSocketSetIpMulticastInterfaceRequest,
1583            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1584            BaseDatagramSocketMarker,
1585        >(
1586            (iface, address,),
1587            0x752fbfa9b12befe,
1588            fidl::encoding::DynamicFlags::empty(),
1589            ___deadline,
1590        )?;
1591        Ok(_response.map(|x| x))
1592    }
1593
1594    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
1595    pub fn r#get_ip_multicast_interface(
1596        &self,
1597        ___deadline: zx::MonotonicInstant,
1598    ) -> Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error> {
1599        let _response =
1600            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1601                BaseNetworkSocketGetIpMulticastInterfaceResponse,
1602                fidl_fuchsia_posix::Errno,
1603            >, BaseDatagramSocketMarker>(
1604                (),
1605                0x320bd14c4df046c4,
1606                fidl::encoding::DynamicFlags::empty(),
1607                ___deadline,
1608            )?;
1609        Ok(_response.map(|x| x.value))
1610    }
1611
1612    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
1613    pub fn r#set_ip_multicast_ttl(
1614        &self,
1615        mut value: &OptionalUint8,
1616        ___deadline: zx::MonotonicInstant,
1617    ) -> Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error> {
1618        let _response =
1619            self.client
1620                .send_query::<BaseNetworkSocketSetIpMulticastTtlRequest, fidl::encoding::ResultType<
1621                    fidl::encoding::EmptyStruct,
1622                    fidl_fuchsia_posix::Errno,
1623                >, BaseDatagramSocketMarker>(
1624                    (value,),
1625                    0x63134d53772916a1,
1626                    fidl::encoding::DynamicFlags::empty(),
1627                    ___deadline,
1628                )?;
1629        Ok(_response.map(|x| x))
1630    }
1631
1632    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
1633    pub fn r#get_ip_multicast_ttl(
1634        &self,
1635        ___deadline: zx::MonotonicInstant,
1636    ) -> Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error> {
1637        let _response =
1638            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1639                BaseNetworkSocketGetIpMulticastTtlResponse,
1640                fidl_fuchsia_posix::Errno,
1641            >, BaseDatagramSocketMarker>(
1642                (),
1643                0x4665cd378f39e1a,
1644                fidl::encoding::DynamicFlags::empty(),
1645                ___deadline,
1646            )?;
1647        Ok(_response.map(|x| x.value))
1648    }
1649
1650    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
1651    pub fn r#set_ip_multicast_loopback(
1652        &self,
1653        mut value: bool,
1654        ___deadline: zx::MonotonicInstant,
1655    ) -> Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error> {
1656        let _response = self.client.send_query::<
1657            BaseNetworkSocketSetIpMulticastLoopbackRequest,
1658            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1659            BaseDatagramSocketMarker,
1660        >(
1661            (value,),
1662            0x20c55c11f00943ea,
1663            fidl::encoding::DynamicFlags::empty(),
1664            ___deadline,
1665        )?;
1666        Ok(_response.map(|x| x))
1667    }
1668
1669    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
1670    pub fn r#get_ip_multicast_loopback(
1671        &self,
1672        ___deadline: zx::MonotonicInstant,
1673    ) -> Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error> {
1674        let _response =
1675            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1676                BaseNetworkSocketGetIpMulticastLoopbackResponse,
1677                fidl_fuchsia_posix::Errno,
1678            >, BaseDatagramSocketMarker>(
1679                (),
1680                0x3b6b26ff558298f2,
1681                fidl::encoding::DynamicFlags::empty(),
1682                ___deadline,
1683            )?;
1684        Ok(_response.map(|x| x.value))
1685    }
1686
1687    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
1688    pub fn r#add_ip_membership(
1689        &self,
1690        mut membership: &IpMulticastMembership,
1691        ___deadline: zx::MonotonicInstant,
1692    ) -> Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error> {
1693        let _response =
1694            self.client
1695                .send_query::<BaseNetworkSocketAddIpMembershipRequest, fidl::encoding::ResultType<
1696                    fidl::encoding::EmptyStruct,
1697                    fidl_fuchsia_posix::Errno,
1698                >, BaseDatagramSocketMarker>(
1699                    (membership,),
1700                    0x76bc7df115a3b4d0,
1701                    fidl::encoding::DynamicFlags::empty(),
1702                    ___deadline,
1703                )?;
1704        Ok(_response.map(|x| x))
1705    }
1706
1707    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
1708    pub fn r#drop_ip_membership(
1709        &self,
1710        mut membership: &IpMulticastMembership,
1711        ___deadline: zx::MonotonicInstant,
1712    ) -> Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error> {
1713        let _response =
1714            self.client
1715                .send_query::<BaseNetworkSocketDropIpMembershipRequest, fidl::encoding::ResultType<
1716                    fidl::encoding::EmptyStruct,
1717                    fidl_fuchsia_posix::Errno,
1718                >, BaseDatagramSocketMarker>(
1719                    (membership,),
1720                    0x2888f3099188d03,
1721                    fidl::encoding::DynamicFlags::empty(),
1722                    ___deadline,
1723                )?;
1724        Ok(_response.map(|x| x))
1725    }
1726
1727    /// Set `SOL_IP` -> `IP_TRANSPARENT`
1728    pub fn r#set_ip_transparent(
1729        &self,
1730        mut value: bool,
1731        ___deadline: zx::MonotonicInstant,
1732    ) -> Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error> {
1733        let _response =
1734            self.client
1735                .send_query::<BaseNetworkSocketSetIpTransparentRequest, fidl::encoding::ResultType<
1736                    fidl::encoding::EmptyStruct,
1737                    fidl_fuchsia_posix::Errno,
1738                >, BaseDatagramSocketMarker>(
1739                    (value,),
1740                    0x1ae532b0c066e3a0,
1741                    fidl::encoding::DynamicFlags::empty(),
1742                    ___deadline,
1743                )?;
1744        Ok(_response.map(|x| x))
1745    }
1746
1747    /// Get `SOL_IP` -> `IP_TRANSPARENT`
1748    pub fn r#get_ip_transparent(
1749        &self,
1750        ___deadline: zx::MonotonicInstant,
1751    ) -> Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error> {
1752        let _response =
1753            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1754                BaseNetworkSocketGetIpTransparentResponse,
1755                fidl_fuchsia_posix::Errno,
1756            >, BaseDatagramSocketMarker>(
1757                (),
1758                0x51d43695962ebfb5,
1759                fidl::encoding::DynamicFlags::empty(),
1760                ___deadline,
1761            )?;
1762        Ok(_response.map(|x| x.value))
1763    }
1764
1765    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
1766    pub fn r#set_ip_receive_original_destination_address(
1767        &self,
1768        mut value: bool,
1769        ___deadline: zx::MonotonicInstant,
1770    ) -> Result<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult, fidl::Error> {
1771        let _response = self.client.send_query::<
1772            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
1773            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1774            BaseDatagramSocketMarker,
1775        >(
1776            (value,),
1777            0x4722b4ce52f7840,
1778            fidl::encoding::DynamicFlags::empty(),
1779            ___deadline,
1780        )?;
1781        Ok(_response.map(|x| x))
1782    }
1783
1784    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
1785    pub fn r#get_ip_receive_original_destination_address(
1786        &self,
1787        ___deadline: zx::MonotonicInstant,
1788    ) -> Result<BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult, fidl::Error> {
1789        let _response =
1790            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1791                BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
1792                fidl_fuchsia_posix::Errno,
1793            >, BaseDatagramSocketMarker>(
1794                (),
1795                0x2a0e7dc5d6bfdfe9,
1796                fidl::encoding::DynamicFlags::empty(),
1797                ___deadline,
1798            )?;
1799        Ok(_response.map(|x| x.value))
1800    }
1801
1802    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
1803    pub fn r#add_ipv6_membership(
1804        &self,
1805        mut membership: &Ipv6MulticastMembership,
1806        ___deadline: zx::MonotonicInstant,
1807    ) -> Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error> {
1808        let _response =
1809            self.client
1810                .send_query::<BaseNetworkSocketAddIpv6MembershipRequest, fidl::encoding::ResultType<
1811                    fidl::encoding::EmptyStruct,
1812                    fidl_fuchsia_posix::Errno,
1813                >, BaseDatagramSocketMarker>(
1814                    (membership,),
1815                    0x7c94727acb4ea4b3,
1816                    fidl::encoding::DynamicFlags::empty(),
1817                    ___deadline,
1818                )?;
1819        Ok(_response.map(|x| x))
1820    }
1821
1822    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
1823    pub fn r#drop_ipv6_membership(
1824        &self,
1825        mut membership: &Ipv6MulticastMembership,
1826        ___deadline: zx::MonotonicInstant,
1827    ) -> Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error> {
1828        let _response = self.client.send_query::<
1829            BaseNetworkSocketDropIpv6MembershipRequest,
1830            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1831            BaseDatagramSocketMarker,
1832        >(
1833            (membership,),
1834            0x42104c70ccaba304,
1835            fidl::encoding::DynamicFlags::empty(),
1836            ___deadline,
1837        )?;
1838        Ok(_response.map(|x| x))
1839    }
1840
1841    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
1842    pub fn r#set_ipv6_multicast_interface(
1843        &self,
1844        mut value: u64,
1845        ___deadline: zx::MonotonicInstant,
1846    ) -> Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error> {
1847        let _response = self.client.send_query::<
1848            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
1849            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1850            BaseDatagramSocketMarker,
1851        >(
1852            (value,),
1853            0x135f76db3774ab3b,
1854            fidl::encoding::DynamicFlags::empty(),
1855            ___deadline,
1856        )?;
1857        Ok(_response.map(|x| x))
1858    }
1859
1860    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
1861    pub fn r#get_ipv6_multicast_interface(
1862        &self,
1863        ___deadline: zx::MonotonicInstant,
1864    ) -> Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error> {
1865        let _response =
1866            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1867                BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
1868                fidl_fuchsia_posix::Errno,
1869            >, BaseDatagramSocketMarker>(
1870                (),
1871                0x1f26fcdd348f1882,
1872                fidl::encoding::DynamicFlags::empty(),
1873                ___deadline,
1874            )?;
1875        Ok(_response.map(|x| x.value))
1876    }
1877
1878    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
1879    pub fn r#set_ipv6_unicast_hops(
1880        &self,
1881        mut value: &OptionalUint8,
1882        ___deadline: zx::MonotonicInstant,
1883    ) -> Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error> {
1884        let _response = self.client.send_query::<
1885            BaseNetworkSocketSetIpv6UnicastHopsRequest,
1886            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1887            BaseDatagramSocketMarker,
1888        >(
1889            (value,),
1890            0x157d51e98f462859,
1891            fidl::encoding::DynamicFlags::empty(),
1892            ___deadline,
1893        )?;
1894        Ok(_response.map(|x| x))
1895    }
1896
1897    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
1898    pub fn r#get_ipv6_unicast_hops(
1899        &self,
1900        ___deadline: zx::MonotonicInstant,
1901    ) -> Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error> {
1902        let _response =
1903            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1904                BaseNetworkSocketGetIpv6UnicastHopsResponse,
1905                fidl_fuchsia_posix::Errno,
1906            >, BaseDatagramSocketMarker>(
1907                (),
1908                0x21f4641cad8bd8d2,
1909                fidl::encoding::DynamicFlags::empty(),
1910                ___deadline,
1911            )?;
1912        Ok(_response.map(|x| x.value))
1913    }
1914
1915    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
1916    pub fn r#set_ipv6_receive_hop_limit(
1917        &self,
1918        mut value: bool,
1919        ___deadline: zx::MonotonicInstant,
1920    ) -> Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error> {
1921        let _response = self.client.send_query::<
1922            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
1923            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1924            BaseDatagramSocketMarker,
1925        >(
1926            (value,),
1927            0x5c24808ed2e84a1e,
1928            fidl::encoding::DynamicFlags::empty(),
1929            ___deadline,
1930        )?;
1931        Ok(_response.map(|x| x))
1932    }
1933
1934    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
1935    pub fn r#get_ipv6_receive_hop_limit(
1936        &self,
1937        ___deadline: zx::MonotonicInstant,
1938    ) -> Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error> {
1939        let _response =
1940            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1941                BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
1942                fidl_fuchsia_posix::Errno,
1943            >, BaseDatagramSocketMarker>(
1944                (),
1945                0x341e06689885b4c0,
1946                fidl::encoding::DynamicFlags::empty(),
1947                ___deadline,
1948            )?;
1949        Ok(_response.map(|x| x.value))
1950    }
1951
1952    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
1953    pub fn r#set_ipv6_multicast_hops(
1954        &self,
1955        mut value: &OptionalUint8,
1956        ___deadline: zx::MonotonicInstant,
1957    ) -> Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error> {
1958        let _response = self.client.send_query::<
1959            BaseNetworkSocketSetIpv6MulticastHopsRequest,
1960            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1961            BaseDatagramSocketMarker,
1962        >(
1963            (value,),
1964            0x25b9cd4d181f82c1,
1965            fidl::encoding::DynamicFlags::empty(),
1966            ___deadline,
1967        )?;
1968        Ok(_response.map(|x| x))
1969    }
1970
1971    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
1972    pub fn r#get_ipv6_multicast_hops(
1973        &self,
1974        ___deadline: zx::MonotonicInstant,
1975    ) -> Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error> {
1976        let _response =
1977            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1978                BaseNetworkSocketGetIpv6MulticastHopsResponse,
1979                fidl_fuchsia_posix::Errno,
1980            >, BaseDatagramSocketMarker>(
1981                (),
1982                0x52916948a365012a,
1983                fidl::encoding::DynamicFlags::empty(),
1984                ___deadline,
1985            )?;
1986        Ok(_response.map(|x| x.value))
1987    }
1988
1989    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
1990    pub fn r#set_ipv6_multicast_loopback(
1991        &self,
1992        mut value: bool,
1993        ___deadline: zx::MonotonicInstant,
1994    ) -> Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error> {
1995        let _response = self.client.send_query::<
1996            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
1997            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1998            BaseDatagramSocketMarker,
1999        >(
2000            (value,),
2001            0x55701c409ff41b40,
2002            fidl::encoding::DynamicFlags::empty(),
2003            ___deadline,
2004        )?;
2005        Ok(_response.map(|x| x))
2006    }
2007
2008    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
2009    pub fn r#get_ipv6_multicast_loopback(
2010        &self,
2011        ___deadline: zx::MonotonicInstant,
2012    ) -> Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error> {
2013        let _response =
2014            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
2015                BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
2016                fidl_fuchsia_posix::Errno,
2017            >, BaseDatagramSocketMarker>(
2018                (),
2019                0x4415b701fde319c3,
2020                fidl::encoding::DynamicFlags::empty(),
2021                ___deadline,
2022            )?;
2023        Ok(_response.map(|x| x.value))
2024    }
2025
2026    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
2027    pub fn r#set_ipv6_only(
2028        &self,
2029        mut value: bool,
2030        ___deadline: zx::MonotonicInstant,
2031    ) -> Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error> {
2032        let _response =
2033            self.client
2034                .send_query::<BaseNetworkSocketSetIpv6OnlyRequest, fidl::encoding::ResultType<
2035                    fidl::encoding::EmptyStruct,
2036                    fidl_fuchsia_posix::Errno,
2037                >, BaseDatagramSocketMarker>(
2038                    (value,),
2039                    0x4873f1364758cbba,
2040                    fidl::encoding::DynamicFlags::empty(),
2041                    ___deadline,
2042                )?;
2043        Ok(_response.map(|x| x))
2044    }
2045
2046    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
2047    pub fn r#get_ipv6_only(
2048        &self,
2049        ___deadline: zx::MonotonicInstant,
2050    ) -> Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error> {
2051        let _response =
2052            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
2053                BaseNetworkSocketGetIpv6OnlyResponse,
2054                fidl_fuchsia_posix::Errno,
2055            >, BaseDatagramSocketMarker>(
2056                (),
2057                0x4aa3340a1a26b89c,
2058                fidl::encoding::DynamicFlags::empty(),
2059                ___deadline,
2060            )?;
2061        Ok(_response.map(|x| x.value))
2062    }
2063
2064    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
2065    pub fn r#set_ipv6_receive_traffic_class(
2066        &self,
2067        mut value: bool,
2068        ___deadline: zx::MonotonicInstant,
2069    ) -> Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error> {
2070        let _response = self.client.send_query::<
2071            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
2072            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
2073            BaseDatagramSocketMarker,
2074        >(
2075            (value,),
2076            0x58f07c8788d099a0,
2077            fidl::encoding::DynamicFlags::empty(),
2078            ___deadline,
2079        )?;
2080        Ok(_response.map(|x| x))
2081    }
2082
2083    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
2084    pub fn r#get_ipv6_receive_traffic_class(
2085        &self,
2086        ___deadline: zx::MonotonicInstant,
2087    ) -> Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error> {
2088        let _response =
2089            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
2090                BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
2091                fidl_fuchsia_posix::Errno,
2092            >, BaseDatagramSocketMarker>(
2093                (),
2094                0x2e334df1da553ffa,
2095                fidl::encoding::DynamicFlags::empty(),
2096                ___deadline,
2097            )?;
2098        Ok(_response.map(|x| x.value))
2099    }
2100
2101    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
2102    pub fn r#set_ipv6_traffic_class(
2103        &self,
2104        mut value: &OptionalUint8,
2105        ___deadline: zx::MonotonicInstant,
2106    ) -> Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error> {
2107        let _response = self.client.send_query::<
2108            BaseNetworkSocketSetIpv6TrafficClassRequest,
2109            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
2110            BaseDatagramSocketMarker,
2111        >(
2112            (value,),
2113            0x6af077800c5a0b4f,
2114            fidl::encoding::DynamicFlags::empty(),
2115            ___deadline,
2116        )?;
2117        Ok(_response.map(|x| x))
2118    }
2119
2120    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
2121    pub fn r#get_ipv6_traffic_class(
2122        &self,
2123        ___deadline: zx::MonotonicInstant,
2124    ) -> Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error> {
2125        let _response =
2126            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
2127                BaseNetworkSocketGetIpv6TrafficClassResponse,
2128                fidl_fuchsia_posix::Errno,
2129            >, BaseDatagramSocketMarker>(
2130                (),
2131                0x6baf6eed8fc2f04,
2132                fidl::encoding::DynamicFlags::empty(),
2133                ___deadline,
2134            )?;
2135        Ok(_response.map(|x| x.value))
2136    }
2137
2138    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
2139    pub fn r#set_ipv6_receive_packet_info(
2140        &self,
2141        mut value: bool,
2142        ___deadline: zx::MonotonicInstant,
2143    ) -> Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error> {
2144        let _response = self.client.send_query::<
2145            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
2146            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
2147            BaseDatagramSocketMarker,
2148        >(
2149            (value,),
2150            0x19259775b1a92768,
2151            fidl::encoding::DynamicFlags::empty(),
2152            ___deadline,
2153        )?;
2154        Ok(_response.map(|x| x))
2155    }
2156
2157    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
2158    pub fn r#get_ipv6_receive_packet_info(
2159        &self,
2160        ___deadline: zx::MonotonicInstant,
2161    ) -> Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error> {
2162        let _response =
2163            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
2164                BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
2165                fidl_fuchsia_posix::Errno,
2166            >, BaseDatagramSocketMarker>(
2167                (),
2168                0x7acd4a2775baec75,
2169                fidl::encoding::DynamicFlags::empty(),
2170                ___deadline,
2171            )?;
2172        Ok(_response.map(|x| x.value))
2173    }
2174
2175    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
2176    pub fn r#get_original_destination(
2177        &self,
2178        ___deadline: zx::MonotonicInstant,
2179    ) -> Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error> {
2180        let _response =
2181            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
2182                BaseNetworkSocketGetOriginalDestinationResponse,
2183                fidl_fuchsia_posix::Errno,
2184            >, BaseDatagramSocketMarker>(
2185                (),
2186                0x38bf28f0dafdbac0,
2187                fidl::encoding::DynamicFlags::empty(),
2188                ___deadline,
2189            )?;
2190        Ok(_response.map(|x| x.value))
2191    }
2192
2193    /// Retrieves creation information from the socket.
2194    ///
2195    /// - response `domain` the socket's associated domain.
2196    /// - response `proto` the socket's associated protocol.
2197    pub fn r#get_info(
2198        &self,
2199        ___deadline: zx::MonotonicInstant,
2200    ) -> Result<BaseDatagramSocketGetInfoResult, fidl::Error> {
2201        let _response =
2202            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
2203                BaseDatagramSocketGetInfoResponse,
2204                fidl_fuchsia_posix::Errno,
2205            >, BaseDatagramSocketMarker>(
2206                (),
2207                0x48aa0a1f6a32d2ed,
2208                fidl::encoding::DynamicFlags::empty(),
2209                ___deadline,
2210            )?;
2211        Ok(_response.map(|x| (x.domain, x.proto)))
2212    }
2213}
2214
2215#[cfg(target_os = "fuchsia")]
2216impl From<BaseDatagramSocketSynchronousProxy> for zx::NullableHandle {
2217    fn from(value: BaseDatagramSocketSynchronousProxy) -> Self {
2218        value.into_channel().into()
2219    }
2220}
2221
2222#[cfg(target_os = "fuchsia")]
2223impl From<fidl::Channel> for BaseDatagramSocketSynchronousProxy {
2224    fn from(value: fidl::Channel) -> Self {
2225        Self::new(value)
2226    }
2227}
2228
2229#[cfg(target_os = "fuchsia")]
2230impl fidl::endpoints::FromClient for BaseDatagramSocketSynchronousProxy {
2231    type Protocol = BaseDatagramSocketMarker;
2232
2233    fn from_client(value: fidl::endpoints::ClientEnd<BaseDatagramSocketMarker>) -> Self {
2234        Self::new(value.into_channel())
2235    }
2236}
2237
2238#[derive(Debug, Clone)]
2239pub struct BaseDatagramSocketProxy {
2240    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
2241}
2242
2243impl fidl::endpoints::Proxy for BaseDatagramSocketProxy {
2244    type Protocol = BaseDatagramSocketMarker;
2245
2246    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
2247        Self::new(inner)
2248    }
2249
2250    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
2251        self.client.into_channel().map_err(|client| Self { client })
2252    }
2253
2254    fn as_channel(&self) -> &::fidl::AsyncChannel {
2255        self.client.as_channel()
2256    }
2257}
2258
2259impl BaseDatagramSocketProxy {
2260    /// Create a new Proxy for fuchsia.posix.socket/BaseDatagramSocket.
2261    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
2262        let protocol_name =
2263            <BaseDatagramSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
2264        Self { client: fidl::client::Client::new(channel, protocol_name) }
2265    }
2266
2267    /// Get a Stream of events from the remote end of the protocol.
2268    ///
2269    /// # Panics
2270    ///
2271    /// Panics if the event stream was already taken.
2272    pub fn take_event_stream(&self) -> BaseDatagramSocketEventStream {
2273        BaseDatagramSocketEventStream { event_receiver: self.client.take_event_receiver() }
2274    }
2275
2276    pub fn r#clone(
2277        &self,
2278        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
2279    ) -> Result<(), fidl::Error> {
2280        BaseDatagramSocketProxyInterface::r#clone(self, request)
2281    }
2282
2283    /// Terminates the connection.
2284    ///
2285    /// After calling `Close`, the client must not send any other requests.
2286    ///
2287    /// Servers, after sending the status response, should close the connection
2288    /// regardless of status and without sending an epitaph.
2289    ///
2290    /// Closing the client end of the channel should be semantically equivalent
2291    /// to calling `Close` without knowing when the close has completed or its
2292    /// status.
2293    pub fn r#close(
2294        &self,
2295    ) -> fidl::client::QueryResponseFut<
2296        fidl_fuchsia_unknown::CloseableCloseResult,
2297        fidl::encoding::DefaultFuchsiaResourceDialect,
2298    > {
2299        BaseDatagramSocketProxyInterface::r#close(self)
2300    }
2301
2302    pub fn r#query(
2303        &self,
2304    ) -> fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>
2305    {
2306        BaseDatagramSocketProxyInterface::r#query(self)
2307    }
2308
2309    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
2310    pub fn r#set_reuse_address(
2311        &self,
2312        mut value: bool,
2313    ) -> fidl::client::QueryResponseFut<
2314        BaseSocketSetReuseAddressResult,
2315        fidl::encoding::DefaultFuchsiaResourceDialect,
2316    > {
2317        BaseDatagramSocketProxyInterface::r#set_reuse_address(self, value)
2318    }
2319
2320    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
2321    pub fn r#get_reuse_address(
2322        &self,
2323    ) -> fidl::client::QueryResponseFut<
2324        BaseSocketGetReuseAddressResult,
2325        fidl::encoding::DefaultFuchsiaResourceDialect,
2326    > {
2327        BaseDatagramSocketProxyInterface::r#get_reuse_address(self)
2328    }
2329
2330    /// Get `SOL_SOCKET` -> `SO_ERROR`.
2331    /// Returns the last error if there is an error set on the socket.
2332    pub fn r#get_error(
2333        &self,
2334    ) -> fidl::client::QueryResponseFut<
2335        BaseSocketGetErrorResult,
2336        fidl::encoding::DefaultFuchsiaResourceDialect,
2337    > {
2338        BaseDatagramSocketProxyInterface::r#get_error(self)
2339    }
2340
2341    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
2342    pub fn r#set_broadcast(
2343        &self,
2344        mut value: bool,
2345    ) -> fidl::client::QueryResponseFut<
2346        BaseSocketSetBroadcastResult,
2347        fidl::encoding::DefaultFuchsiaResourceDialect,
2348    > {
2349        BaseDatagramSocketProxyInterface::r#set_broadcast(self, value)
2350    }
2351
2352    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
2353    pub fn r#get_broadcast(
2354        &self,
2355    ) -> fidl::client::QueryResponseFut<
2356        BaseSocketGetBroadcastResult,
2357        fidl::encoding::DefaultFuchsiaResourceDialect,
2358    > {
2359        BaseDatagramSocketProxyInterface::r#get_broadcast(self)
2360    }
2361
2362    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
2363    pub fn r#set_send_buffer(
2364        &self,
2365        mut value_bytes: u64,
2366    ) -> fidl::client::QueryResponseFut<
2367        BaseSocketSetSendBufferResult,
2368        fidl::encoding::DefaultFuchsiaResourceDialect,
2369    > {
2370        BaseDatagramSocketProxyInterface::r#set_send_buffer(self, value_bytes)
2371    }
2372
2373    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
2374    pub fn r#get_send_buffer(
2375        &self,
2376    ) -> fidl::client::QueryResponseFut<
2377        BaseSocketGetSendBufferResult,
2378        fidl::encoding::DefaultFuchsiaResourceDialect,
2379    > {
2380        BaseDatagramSocketProxyInterface::r#get_send_buffer(self)
2381    }
2382
2383    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
2384    pub fn r#set_receive_buffer(
2385        &self,
2386        mut value_bytes: u64,
2387    ) -> fidl::client::QueryResponseFut<
2388        BaseSocketSetReceiveBufferResult,
2389        fidl::encoding::DefaultFuchsiaResourceDialect,
2390    > {
2391        BaseDatagramSocketProxyInterface::r#set_receive_buffer(self, value_bytes)
2392    }
2393
2394    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
2395    pub fn r#get_receive_buffer(
2396        &self,
2397    ) -> fidl::client::QueryResponseFut<
2398        BaseSocketGetReceiveBufferResult,
2399        fidl::encoding::DefaultFuchsiaResourceDialect,
2400    > {
2401        BaseDatagramSocketProxyInterface::r#get_receive_buffer(self)
2402    }
2403
2404    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
2405    pub fn r#set_keep_alive(
2406        &self,
2407        mut value: bool,
2408    ) -> fidl::client::QueryResponseFut<
2409        BaseSocketSetKeepAliveResult,
2410        fidl::encoding::DefaultFuchsiaResourceDialect,
2411    > {
2412        BaseDatagramSocketProxyInterface::r#set_keep_alive(self, value)
2413    }
2414
2415    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
2416    pub fn r#get_keep_alive(
2417        &self,
2418    ) -> fidl::client::QueryResponseFut<
2419        BaseSocketGetKeepAliveResult,
2420        fidl::encoding::DefaultFuchsiaResourceDialect,
2421    > {
2422        BaseDatagramSocketProxyInterface::r#get_keep_alive(self)
2423    }
2424
2425    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
2426    pub fn r#set_out_of_band_inline(
2427        &self,
2428        mut value: bool,
2429    ) -> fidl::client::QueryResponseFut<
2430        BaseSocketSetOutOfBandInlineResult,
2431        fidl::encoding::DefaultFuchsiaResourceDialect,
2432    > {
2433        BaseDatagramSocketProxyInterface::r#set_out_of_band_inline(self, value)
2434    }
2435
2436    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
2437    pub fn r#get_out_of_band_inline(
2438        &self,
2439    ) -> fidl::client::QueryResponseFut<
2440        BaseSocketGetOutOfBandInlineResult,
2441        fidl::encoding::DefaultFuchsiaResourceDialect,
2442    > {
2443        BaseDatagramSocketProxyInterface::r#get_out_of_band_inline(self)
2444    }
2445
2446    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
2447    pub fn r#set_no_check(
2448        &self,
2449        mut value: bool,
2450    ) -> fidl::client::QueryResponseFut<
2451        BaseSocketSetNoCheckResult,
2452        fidl::encoding::DefaultFuchsiaResourceDialect,
2453    > {
2454        BaseDatagramSocketProxyInterface::r#set_no_check(self, value)
2455    }
2456
2457    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
2458    pub fn r#get_no_check(
2459        &self,
2460    ) -> fidl::client::QueryResponseFut<
2461        BaseSocketGetNoCheckResult,
2462        fidl::encoding::DefaultFuchsiaResourceDialect,
2463    > {
2464        BaseDatagramSocketProxyInterface::r#get_no_check(self)
2465    }
2466
2467    /// Set `SOL_SOCKET` -> `SO_LINGER`.
2468    pub fn r#set_linger(
2469        &self,
2470        mut linger: bool,
2471        mut length_secs: u32,
2472    ) -> fidl::client::QueryResponseFut<
2473        BaseSocketSetLingerResult,
2474        fidl::encoding::DefaultFuchsiaResourceDialect,
2475    > {
2476        BaseDatagramSocketProxyInterface::r#set_linger(self, linger, length_secs)
2477    }
2478
2479    /// Get `SOL_SOCKET` -> `SO_LINGER`.
2480    pub fn r#get_linger(
2481        &self,
2482    ) -> fidl::client::QueryResponseFut<
2483        BaseSocketGetLingerResult,
2484        fidl::encoding::DefaultFuchsiaResourceDialect,
2485    > {
2486        BaseDatagramSocketProxyInterface::r#get_linger(self)
2487    }
2488
2489    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
2490    pub fn r#set_reuse_port(
2491        &self,
2492        mut value: ReusePortOption,
2493    ) -> fidl::client::QueryResponseFut<
2494        BaseSocketSetReusePortResult,
2495        fidl::encoding::DefaultFuchsiaResourceDialect,
2496    > {
2497        BaseDatagramSocketProxyInterface::r#set_reuse_port(self, value)
2498    }
2499
2500    pub fn r#set_reuse_port_deprecated(
2501        &self,
2502        mut value: bool,
2503    ) -> fidl::client::QueryResponseFut<
2504        BaseSocketSetReusePortDeprecatedResult,
2505        fidl::encoding::DefaultFuchsiaResourceDialect,
2506    > {
2507        BaseDatagramSocketProxyInterface::r#set_reuse_port_deprecated(self, value)
2508    }
2509
2510    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
2511    pub fn r#get_reuse_port(
2512        &self,
2513    ) -> fidl::client::QueryResponseFut<
2514        BaseSocketGetReusePortResult,
2515        fidl::encoding::DefaultFuchsiaResourceDialect,
2516    > {
2517        BaseDatagramSocketProxyInterface::r#get_reuse_port(self)
2518    }
2519
2520    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
2521    pub fn r#get_accept_conn(
2522        &self,
2523    ) -> fidl::client::QueryResponseFut<
2524        BaseSocketGetAcceptConnResult,
2525        fidl::encoding::DefaultFuchsiaResourceDialect,
2526    > {
2527        BaseDatagramSocketProxyInterface::r#get_accept_conn(self)
2528    }
2529
2530    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
2531    pub fn r#set_bind_to_device(
2532        &self,
2533        mut value: &str,
2534    ) -> fidl::client::QueryResponseFut<
2535        BaseSocketSetBindToDeviceResult,
2536        fidl::encoding::DefaultFuchsiaResourceDialect,
2537    > {
2538        BaseDatagramSocketProxyInterface::r#set_bind_to_device(self, value)
2539    }
2540
2541    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
2542    pub fn r#get_bind_to_device(
2543        &self,
2544    ) -> fidl::client::QueryResponseFut<
2545        BaseSocketGetBindToDeviceResult,
2546        fidl::encoding::DefaultFuchsiaResourceDialect,
2547    > {
2548        BaseDatagramSocketProxyInterface::r#get_bind_to_device(self)
2549    }
2550
2551    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
2552    /// If `value` is 0, this clears the bound interface.
2553    pub fn r#set_bind_to_interface_index(
2554        &self,
2555        mut value: u64,
2556    ) -> fidl::client::QueryResponseFut<
2557        BaseSocketSetBindToInterfaceIndexResult,
2558        fidl::encoding::DefaultFuchsiaResourceDialect,
2559    > {
2560        BaseDatagramSocketProxyInterface::r#set_bind_to_interface_index(self, value)
2561    }
2562
2563    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
2564    pub fn r#get_bind_to_interface_index(
2565        &self,
2566    ) -> fidl::client::QueryResponseFut<
2567        BaseSocketGetBindToInterfaceIndexResult,
2568        fidl::encoding::DefaultFuchsiaResourceDialect,
2569    > {
2570        BaseDatagramSocketProxyInterface::r#get_bind_to_interface_index(self)
2571    }
2572
2573    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
2574    pub fn r#set_timestamp(
2575        &self,
2576        mut value: TimestampOption,
2577    ) -> fidl::client::QueryResponseFut<
2578        BaseSocketSetTimestampResult,
2579        fidl::encoding::DefaultFuchsiaResourceDialect,
2580    > {
2581        BaseDatagramSocketProxyInterface::r#set_timestamp(self, value)
2582    }
2583
2584    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
2585    pub fn r#get_timestamp(
2586        &self,
2587    ) -> fidl::client::QueryResponseFut<
2588        BaseSocketGetTimestampResult,
2589        fidl::encoding::DefaultFuchsiaResourceDialect,
2590    > {
2591        BaseDatagramSocketProxyInterface::r#get_timestamp(self)
2592    }
2593
2594    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
2595    /// unlike the standard SO_MARK, this API has multiple mark domains and each
2596    /// mark can be set independently in each domain.
2597    pub fn r#set_mark(
2598        &self,
2599        mut domain: fidl_fuchsia_net::MarkDomain,
2600        mut mark: &OptionalUint32,
2601    ) -> fidl::client::QueryResponseFut<
2602        BaseSocketSetMarkResult,
2603        fidl::encoding::DefaultFuchsiaResourceDialect,
2604    > {
2605        BaseDatagramSocketProxyInterface::r#set_mark(self, domain, mark)
2606    }
2607
2608    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
2609    /// unlike the standard SO_MARK, this API has multiple mark domains and each
2610    /// mark can be retrieved independently in each domain.
2611    pub fn r#get_mark(
2612        &self,
2613        mut domain: fidl_fuchsia_net::MarkDomain,
2614    ) -> fidl::client::QueryResponseFut<
2615        BaseSocketGetMarkResult,
2616        fidl::encoding::DefaultFuchsiaResourceDialect,
2617    > {
2618        BaseDatagramSocketProxyInterface::r#get_mark(self, domain)
2619    }
2620
2621    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
2622    pub fn r#get_cookie(
2623        &self,
2624    ) -> fidl::client::QueryResponseFut<
2625        BaseSocketGetCookieResult,
2626        fidl::encoding::DefaultFuchsiaResourceDialect,
2627    > {
2628        BaseDatagramSocketProxyInterface::r#get_cookie(self)
2629    }
2630
2631    /// Sets the local address used for the socket.
2632    pub fn r#bind(
2633        &self,
2634        mut addr: &fidl_fuchsia_net::SocketAddress,
2635    ) -> fidl::client::QueryResponseFut<
2636        BaseNetworkSocketBindResult,
2637        fidl::encoding::DefaultFuchsiaResourceDialect,
2638    > {
2639        BaseDatagramSocketProxyInterface::r#bind(self, addr)
2640    }
2641
2642    /// Initiates a connection to a remote address.
2643    pub fn r#connect(
2644        &self,
2645        mut addr: &fidl_fuchsia_net::SocketAddress,
2646    ) -> fidl::client::QueryResponseFut<
2647        BaseNetworkSocketConnectResult,
2648        fidl::encoding::DefaultFuchsiaResourceDialect,
2649    > {
2650        BaseDatagramSocketProxyInterface::r#connect(self, addr)
2651    }
2652
2653    /// Clears connection information from this socket.
2654    pub fn r#disconnect(
2655        &self,
2656    ) -> fidl::client::QueryResponseFut<
2657        BaseNetworkSocketDisconnectResult,
2658        fidl::encoding::DefaultFuchsiaResourceDialect,
2659    > {
2660        BaseDatagramSocketProxyInterface::r#disconnect(self)
2661    }
2662
2663    /// Retrieves the local socket address.
2664    pub fn r#get_sock_name(
2665        &self,
2666    ) -> fidl::client::QueryResponseFut<
2667        BaseNetworkSocketGetSockNameResult,
2668        fidl::encoding::DefaultFuchsiaResourceDialect,
2669    > {
2670        BaseDatagramSocketProxyInterface::r#get_sock_name(self)
2671    }
2672
2673    /// Retrieves the remote socket address.
2674    pub fn r#get_peer_name(
2675        &self,
2676    ) -> fidl::client::QueryResponseFut<
2677        BaseNetworkSocketGetPeerNameResult,
2678        fidl::encoding::DefaultFuchsiaResourceDialect,
2679    > {
2680        BaseDatagramSocketProxyInterface::r#get_peer_name(self)
2681    }
2682
2683    /// Shuts down part of the socket.
2684    pub fn r#shutdown(
2685        &self,
2686        mut mode: ShutdownMode,
2687    ) -> fidl::client::QueryResponseFut<
2688        BaseNetworkSocketShutdownResult,
2689        fidl::encoding::DefaultFuchsiaResourceDialect,
2690    > {
2691        BaseDatagramSocketProxyInterface::r#shutdown(self, mode)
2692    }
2693
2694    /// Set `SOL_IP` -> `IP_TOS`.
2695    pub fn r#set_ip_type_of_service(
2696        &self,
2697        mut value: u8,
2698    ) -> fidl::client::QueryResponseFut<
2699        BaseNetworkSocketSetIpTypeOfServiceResult,
2700        fidl::encoding::DefaultFuchsiaResourceDialect,
2701    > {
2702        BaseDatagramSocketProxyInterface::r#set_ip_type_of_service(self, value)
2703    }
2704
2705    /// Get `SOL_IP` -> `IP_TOS`.
2706    pub fn r#get_ip_type_of_service(
2707        &self,
2708    ) -> fidl::client::QueryResponseFut<
2709        BaseNetworkSocketGetIpTypeOfServiceResult,
2710        fidl::encoding::DefaultFuchsiaResourceDialect,
2711    > {
2712        BaseDatagramSocketProxyInterface::r#get_ip_type_of_service(self)
2713    }
2714
2715    /// Set `SOL_IP` -> `IP_TTL`.
2716    pub fn r#set_ip_ttl(
2717        &self,
2718        mut value: &OptionalUint8,
2719    ) -> fidl::client::QueryResponseFut<
2720        BaseNetworkSocketSetIpTtlResult,
2721        fidl::encoding::DefaultFuchsiaResourceDialect,
2722    > {
2723        BaseDatagramSocketProxyInterface::r#set_ip_ttl(self, value)
2724    }
2725
2726    /// Get `SOL_IP` -> `IP_TTL`.
2727    pub fn r#get_ip_ttl(
2728        &self,
2729    ) -> fidl::client::QueryResponseFut<
2730        BaseNetworkSocketGetIpTtlResult,
2731        fidl::encoding::DefaultFuchsiaResourceDialect,
2732    > {
2733        BaseDatagramSocketProxyInterface::r#get_ip_ttl(self)
2734    }
2735
2736    /// Set `SOL_IP` -> `IP_PKTINFO`.
2737    pub fn r#set_ip_packet_info(
2738        &self,
2739        mut value: bool,
2740    ) -> fidl::client::QueryResponseFut<
2741        BaseNetworkSocketSetIpPacketInfoResult,
2742        fidl::encoding::DefaultFuchsiaResourceDialect,
2743    > {
2744        BaseDatagramSocketProxyInterface::r#set_ip_packet_info(self, value)
2745    }
2746
2747    /// Get `SOL_IP` -> `IP_PKTINFO`.
2748    pub fn r#get_ip_packet_info(
2749        &self,
2750    ) -> fidl::client::QueryResponseFut<
2751        BaseNetworkSocketGetIpPacketInfoResult,
2752        fidl::encoding::DefaultFuchsiaResourceDialect,
2753    > {
2754        BaseDatagramSocketProxyInterface::r#get_ip_packet_info(self)
2755    }
2756
2757    /// Set `SOL_IP` -> `IP_RECVTOS`.
2758    pub fn r#set_ip_receive_type_of_service(
2759        &self,
2760        mut value: bool,
2761    ) -> fidl::client::QueryResponseFut<
2762        BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
2763        fidl::encoding::DefaultFuchsiaResourceDialect,
2764    > {
2765        BaseDatagramSocketProxyInterface::r#set_ip_receive_type_of_service(self, value)
2766    }
2767
2768    /// Get `SOL_IP` -> `IP_RECVTOS`.
2769    pub fn r#get_ip_receive_type_of_service(
2770        &self,
2771    ) -> fidl::client::QueryResponseFut<
2772        BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
2773        fidl::encoding::DefaultFuchsiaResourceDialect,
2774    > {
2775        BaseDatagramSocketProxyInterface::r#get_ip_receive_type_of_service(self)
2776    }
2777
2778    /// Set `SOL_IP` -> `IP_RECVTTL`.
2779    pub fn r#set_ip_receive_ttl(
2780        &self,
2781        mut value: bool,
2782    ) -> fidl::client::QueryResponseFut<
2783        BaseNetworkSocketSetIpReceiveTtlResult,
2784        fidl::encoding::DefaultFuchsiaResourceDialect,
2785    > {
2786        BaseDatagramSocketProxyInterface::r#set_ip_receive_ttl(self, value)
2787    }
2788
2789    /// Get `SOL_IP` -> `IP_RECVTTL`.
2790    pub fn r#get_ip_receive_ttl(
2791        &self,
2792    ) -> fidl::client::QueryResponseFut<
2793        BaseNetworkSocketGetIpReceiveTtlResult,
2794        fidl::encoding::DefaultFuchsiaResourceDialect,
2795    > {
2796        BaseDatagramSocketProxyInterface::r#get_ip_receive_ttl(self)
2797    }
2798
2799    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
2800    pub fn r#set_ip_multicast_interface(
2801        &self,
2802        mut iface: u64,
2803        mut address: &fidl_fuchsia_net::Ipv4Address,
2804    ) -> fidl::client::QueryResponseFut<
2805        BaseNetworkSocketSetIpMulticastInterfaceResult,
2806        fidl::encoding::DefaultFuchsiaResourceDialect,
2807    > {
2808        BaseDatagramSocketProxyInterface::r#set_ip_multicast_interface(self, iface, address)
2809    }
2810
2811    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
2812    pub fn r#get_ip_multicast_interface(
2813        &self,
2814    ) -> fidl::client::QueryResponseFut<
2815        BaseNetworkSocketGetIpMulticastInterfaceResult,
2816        fidl::encoding::DefaultFuchsiaResourceDialect,
2817    > {
2818        BaseDatagramSocketProxyInterface::r#get_ip_multicast_interface(self)
2819    }
2820
2821    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
2822    pub fn r#set_ip_multicast_ttl(
2823        &self,
2824        mut value: &OptionalUint8,
2825    ) -> fidl::client::QueryResponseFut<
2826        BaseNetworkSocketSetIpMulticastTtlResult,
2827        fidl::encoding::DefaultFuchsiaResourceDialect,
2828    > {
2829        BaseDatagramSocketProxyInterface::r#set_ip_multicast_ttl(self, value)
2830    }
2831
2832    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
2833    pub fn r#get_ip_multicast_ttl(
2834        &self,
2835    ) -> fidl::client::QueryResponseFut<
2836        BaseNetworkSocketGetIpMulticastTtlResult,
2837        fidl::encoding::DefaultFuchsiaResourceDialect,
2838    > {
2839        BaseDatagramSocketProxyInterface::r#get_ip_multicast_ttl(self)
2840    }
2841
2842    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
2843    pub fn r#set_ip_multicast_loopback(
2844        &self,
2845        mut value: bool,
2846    ) -> fidl::client::QueryResponseFut<
2847        BaseNetworkSocketSetIpMulticastLoopbackResult,
2848        fidl::encoding::DefaultFuchsiaResourceDialect,
2849    > {
2850        BaseDatagramSocketProxyInterface::r#set_ip_multicast_loopback(self, value)
2851    }
2852
2853    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
2854    pub fn r#get_ip_multicast_loopback(
2855        &self,
2856    ) -> fidl::client::QueryResponseFut<
2857        BaseNetworkSocketGetIpMulticastLoopbackResult,
2858        fidl::encoding::DefaultFuchsiaResourceDialect,
2859    > {
2860        BaseDatagramSocketProxyInterface::r#get_ip_multicast_loopback(self)
2861    }
2862
2863    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
2864    pub fn r#add_ip_membership(
2865        &self,
2866        mut membership: &IpMulticastMembership,
2867    ) -> fidl::client::QueryResponseFut<
2868        BaseNetworkSocketAddIpMembershipResult,
2869        fidl::encoding::DefaultFuchsiaResourceDialect,
2870    > {
2871        BaseDatagramSocketProxyInterface::r#add_ip_membership(self, membership)
2872    }
2873
2874    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
2875    pub fn r#drop_ip_membership(
2876        &self,
2877        mut membership: &IpMulticastMembership,
2878    ) -> fidl::client::QueryResponseFut<
2879        BaseNetworkSocketDropIpMembershipResult,
2880        fidl::encoding::DefaultFuchsiaResourceDialect,
2881    > {
2882        BaseDatagramSocketProxyInterface::r#drop_ip_membership(self, membership)
2883    }
2884
2885    /// Set `SOL_IP` -> `IP_TRANSPARENT`
2886    pub fn r#set_ip_transparent(
2887        &self,
2888        mut value: bool,
2889    ) -> fidl::client::QueryResponseFut<
2890        BaseNetworkSocketSetIpTransparentResult,
2891        fidl::encoding::DefaultFuchsiaResourceDialect,
2892    > {
2893        BaseDatagramSocketProxyInterface::r#set_ip_transparent(self, value)
2894    }
2895
2896    /// Get `SOL_IP` -> `IP_TRANSPARENT`
2897    pub fn r#get_ip_transparent(
2898        &self,
2899    ) -> fidl::client::QueryResponseFut<
2900        BaseNetworkSocketGetIpTransparentResult,
2901        fidl::encoding::DefaultFuchsiaResourceDialect,
2902    > {
2903        BaseDatagramSocketProxyInterface::r#get_ip_transparent(self)
2904    }
2905
2906    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
2907    pub fn r#set_ip_receive_original_destination_address(
2908        &self,
2909        mut value: bool,
2910    ) -> fidl::client::QueryResponseFut<
2911        BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
2912        fidl::encoding::DefaultFuchsiaResourceDialect,
2913    > {
2914        BaseDatagramSocketProxyInterface::r#set_ip_receive_original_destination_address(self, value)
2915    }
2916
2917    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
2918    pub fn r#get_ip_receive_original_destination_address(
2919        &self,
2920    ) -> fidl::client::QueryResponseFut<
2921        BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
2922        fidl::encoding::DefaultFuchsiaResourceDialect,
2923    > {
2924        BaseDatagramSocketProxyInterface::r#get_ip_receive_original_destination_address(self)
2925    }
2926
2927    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
2928    pub fn r#add_ipv6_membership(
2929        &self,
2930        mut membership: &Ipv6MulticastMembership,
2931    ) -> fidl::client::QueryResponseFut<
2932        BaseNetworkSocketAddIpv6MembershipResult,
2933        fidl::encoding::DefaultFuchsiaResourceDialect,
2934    > {
2935        BaseDatagramSocketProxyInterface::r#add_ipv6_membership(self, membership)
2936    }
2937
2938    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
2939    pub fn r#drop_ipv6_membership(
2940        &self,
2941        mut membership: &Ipv6MulticastMembership,
2942    ) -> fidl::client::QueryResponseFut<
2943        BaseNetworkSocketDropIpv6MembershipResult,
2944        fidl::encoding::DefaultFuchsiaResourceDialect,
2945    > {
2946        BaseDatagramSocketProxyInterface::r#drop_ipv6_membership(self, membership)
2947    }
2948
2949    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
2950    pub fn r#set_ipv6_multicast_interface(
2951        &self,
2952        mut value: u64,
2953    ) -> fidl::client::QueryResponseFut<
2954        BaseNetworkSocketSetIpv6MulticastInterfaceResult,
2955        fidl::encoding::DefaultFuchsiaResourceDialect,
2956    > {
2957        BaseDatagramSocketProxyInterface::r#set_ipv6_multicast_interface(self, value)
2958    }
2959
2960    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
2961    pub fn r#get_ipv6_multicast_interface(
2962        &self,
2963    ) -> fidl::client::QueryResponseFut<
2964        BaseNetworkSocketGetIpv6MulticastInterfaceResult,
2965        fidl::encoding::DefaultFuchsiaResourceDialect,
2966    > {
2967        BaseDatagramSocketProxyInterface::r#get_ipv6_multicast_interface(self)
2968    }
2969
2970    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
2971    pub fn r#set_ipv6_unicast_hops(
2972        &self,
2973        mut value: &OptionalUint8,
2974    ) -> fidl::client::QueryResponseFut<
2975        BaseNetworkSocketSetIpv6UnicastHopsResult,
2976        fidl::encoding::DefaultFuchsiaResourceDialect,
2977    > {
2978        BaseDatagramSocketProxyInterface::r#set_ipv6_unicast_hops(self, value)
2979    }
2980
2981    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
2982    pub fn r#get_ipv6_unicast_hops(
2983        &self,
2984    ) -> fidl::client::QueryResponseFut<
2985        BaseNetworkSocketGetIpv6UnicastHopsResult,
2986        fidl::encoding::DefaultFuchsiaResourceDialect,
2987    > {
2988        BaseDatagramSocketProxyInterface::r#get_ipv6_unicast_hops(self)
2989    }
2990
2991    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
2992    pub fn r#set_ipv6_receive_hop_limit(
2993        &self,
2994        mut value: bool,
2995    ) -> fidl::client::QueryResponseFut<
2996        BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
2997        fidl::encoding::DefaultFuchsiaResourceDialect,
2998    > {
2999        BaseDatagramSocketProxyInterface::r#set_ipv6_receive_hop_limit(self, value)
3000    }
3001
3002    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
3003    pub fn r#get_ipv6_receive_hop_limit(
3004        &self,
3005    ) -> fidl::client::QueryResponseFut<
3006        BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
3007        fidl::encoding::DefaultFuchsiaResourceDialect,
3008    > {
3009        BaseDatagramSocketProxyInterface::r#get_ipv6_receive_hop_limit(self)
3010    }
3011
3012    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
3013    pub fn r#set_ipv6_multicast_hops(
3014        &self,
3015        mut value: &OptionalUint8,
3016    ) -> fidl::client::QueryResponseFut<
3017        BaseNetworkSocketSetIpv6MulticastHopsResult,
3018        fidl::encoding::DefaultFuchsiaResourceDialect,
3019    > {
3020        BaseDatagramSocketProxyInterface::r#set_ipv6_multicast_hops(self, value)
3021    }
3022
3023    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
3024    pub fn r#get_ipv6_multicast_hops(
3025        &self,
3026    ) -> fidl::client::QueryResponseFut<
3027        BaseNetworkSocketGetIpv6MulticastHopsResult,
3028        fidl::encoding::DefaultFuchsiaResourceDialect,
3029    > {
3030        BaseDatagramSocketProxyInterface::r#get_ipv6_multicast_hops(self)
3031    }
3032
3033    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
3034    pub fn r#set_ipv6_multicast_loopback(
3035        &self,
3036        mut value: bool,
3037    ) -> fidl::client::QueryResponseFut<
3038        BaseNetworkSocketSetIpv6MulticastLoopbackResult,
3039        fidl::encoding::DefaultFuchsiaResourceDialect,
3040    > {
3041        BaseDatagramSocketProxyInterface::r#set_ipv6_multicast_loopback(self, value)
3042    }
3043
3044    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
3045    pub fn r#get_ipv6_multicast_loopback(
3046        &self,
3047    ) -> fidl::client::QueryResponseFut<
3048        BaseNetworkSocketGetIpv6MulticastLoopbackResult,
3049        fidl::encoding::DefaultFuchsiaResourceDialect,
3050    > {
3051        BaseDatagramSocketProxyInterface::r#get_ipv6_multicast_loopback(self)
3052    }
3053
3054    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
3055    pub fn r#set_ipv6_only(
3056        &self,
3057        mut value: bool,
3058    ) -> fidl::client::QueryResponseFut<
3059        BaseNetworkSocketSetIpv6OnlyResult,
3060        fidl::encoding::DefaultFuchsiaResourceDialect,
3061    > {
3062        BaseDatagramSocketProxyInterface::r#set_ipv6_only(self, value)
3063    }
3064
3065    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
3066    pub fn r#get_ipv6_only(
3067        &self,
3068    ) -> fidl::client::QueryResponseFut<
3069        BaseNetworkSocketGetIpv6OnlyResult,
3070        fidl::encoding::DefaultFuchsiaResourceDialect,
3071    > {
3072        BaseDatagramSocketProxyInterface::r#get_ipv6_only(self)
3073    }
3074
3075    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
3076    pub fn r#set_ipv6_receive_traffic_class(
3077        &self,
3078        mut value: bool,
3079    ) -> fidl::client::QueryResponseFut<
3080        BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
3081        fidl::encoding::DefaultFuchsiaResourceDialect,
3082    > {
3083        BaseDatagramSocketProxyInterface::r#set_ipv6_receive_traffic_class(self, value)
3084    }
3085
3086    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
3087    pub fn r#get_ipv6_receive_traffic_class(
3088        &self,
3089    ) -> fidl::client::QueryResponseFut<
3090        BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
3091        fidl::encoding::DefaultFuchsiaResourceDialect,
3092    > {
3093        BaseDatagramSocketProxyInterface::r#get_ipv6_receive_traffic_class(self)
3094    }
3095
3096    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
3097    pub fn r#set_ipv6_traffic_class(
3098        &self,
3099        mut value: &OptionalUint8,
3100    ) -> fidl::client::QueryResponseFut<
3101        BaseNetworkSocketSetIpv6TrafficClassResult,
3102        fidl::encoding::DefaultFuchsiaResourceDialect,
3103    > {
3104        BaseDatagramSocketProxyInterface::r#set_ipv6_traffic_class(self, value)
3105    }
3106
3107    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
3108    pub fn r#get_ipv6_traffic_class(
3109        &self,
3110    ) -> fidl::client::QueryResponseFut<
3111        BaseNetworkSocketGetIpv6TrafficClassResult,
3112        fidl::encoding::DefaultFuchsiaResourceDialect,
3113    > {
3114        BaseDatagramSocketProxyInterface::r#get_ipv6_traffic_class(self)
3115    }
3116
3117    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
3118    pub fn r#set_ipv6_receive_packet_info(
3119        &self,
3120        mut value: bool,
3121    ) -> fidl::client::QueryResponseFut<
3122        BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
3123        fidl::encoding::DefaultFuchsiaResourceDialect,
3124    > {
3125        BaseDatagramSocketProxyInterface::r#set_ipv6_receive_packet_info(self, value)
3126    }
3127
3128    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
3129    pub fn r#get_ipv6_receive_packet_info(
3130        &self,
3131    ) -> fidl::client::QueryResponseFut<
3132        BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
3133        fidl::encoding::DefaultFuchsiaResourceDialect,
3134    > {
3135        BaseDatagramSocketProxyInterface::r#get_ipv6_receive_packet_info(self)
3136    }
3137
3138    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
3139    pub fn r#get_original_destination(
3140        &self,
3141    ) -> fidl::client::QueryResponseFut<
3142        BaseNetworkSocketGetOriginalDestinationResult,
3143        fidl::encoding::DefaultFuchsiaResourceDialect,
3144    > {
3145        BaseDatagramSocketProxyInterface::r#get_original_destination(self)
3146    }
3147
3148    /// Retrieves creation information from the socket.
3149    ///
3150    /// - response `domain` the socket's associated domain.
3151    /// - response `proto` the socket's associated protocol.
3152    pub fn r#get_info(
3153        &self,
3154    ) -> fidl::client::QueryResponseFut<
3155        BaseDatagramSocketGetInfoResult,
3156        fidl::encoding::DefaultFuchsiaResourceDialect,
3157    > {
3158        BaseDatagramSocketProxyInterface::r#get_info(self)
3159    }
3160}
3161
3162impl BaseDatagramSocketProxyInterface for BaseDatagramSocketProxy {
3163    fn r#clone(
3164        &self,
3165        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
3166    ) -> Result<(), fidl::Error> {
3167        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
3168            (request,),
3169            0x20d8a7aba2168a79,
3170            fidl::encoding::DynamicFlags::empty(),
3171        )
3172    }
3173
3174    type CloseResponseFut = fidl::client::QueryResponseFut<
3175        fidl_fuchsia_unknown::CloseableCloseResult,
3176        fidl::encoding::DefaultFuchsiaResourceDialect,
3177    >;
3178    fn r#close(&self) -> Self::CloseResponseFut {
3179        fn _decode(
3180            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3181        ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
3182            let _response = fidl::client::decode_transaction_body::<
3183                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
3184                fidl::encoding::DefaultFuchsiaResourceDialect,
3185                0x5ac5d459ad7f657e,
3186            >(_buf?)?;
3187            Ok(_response.map(|x| x))
3188        }
3189        self.client.send_query_and_decode::<
3190            fidl::encoding::EmptyPayload,
3191            fidl_fuchsia_unknown::CloseableCloseResult,
3192        >(
3193            (),
3194            0x5ac5d459ad7f657e,
3195            fidl::encoding::DynamicFlags::empty(),
3196            _decode,
3197        )
3198    }
3199
3200    type QueryResponseFut =
3201        fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>;
3202    fn r#query(&self) -> Self::QueryResponseFut {
3203        fn _decode(
3204            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3205        ) -> Result<Vec<u8>, fidl::Error> {
3206            let _response = fidl::client::decode_transaction_body::<
3207                fidl_fuchsia_unknown::QueryableQueryResponse,
3208                fidl::encoding::DefaultFuchsiaResourceDialect,
3209                0x2658edee9decfc06,
3210            >(_buf?)?;
3211            Ok(_response.protocol)
3212        }
3213        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, Vec<u8>>(
3214            (),
3215            0x2658edee9decfc06,
3216            fidl::encoding::DynamicFlags::empty(),
3217            _decode,
3218        )
3219    }
3220
3221    type SetReuseAddressResponseFut = fidl::client::QueryResponseFut<
3222        BaseSocketSetReuseAddressResult,
3223        fidl::encoding::DefaultFuchsiaResourceDialect,
3224    >;
3225    fn r#set_reuse_address(&self, mut value: bool) -> Self::SetReuseAddressResponseFut {
3226        fn _decode(
3227            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3228        ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
3229            let _response = fidl::client::decode_transaction_body::<
3230                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3231                fidl::encoding::DefaultFuchsiaResourceDialect,
3232                0x1fd74ee8b9a4a876,
3233            >(_buf?)?;
3234            Ok(_response.map(|x| x))
3235        }
3236        self.client.send_query_and_decode::<
3237            BaseSocketSetReuseAddressRequest,
3238            BaseSocketSetReuseAddressResult,
3239        >(
3240            (value,),
3241            0x1fd74ee8b9a4a876,
3242            fidl::encoding::DynamicFlags::empty(),
3243            _decode,
3244        )
3245    }
3246
3247    type GetReuseAddressResponseFut = fidl::client::QueryResponseFut<
3248        BaseSocketGetReuseAddressResult,
3249        fidl::encoding::DefaultFuchsiaResourceDialect,
3250    >;
3251    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut {
3252        fn _decode(
3253            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3254        ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
3255            let _response = fidl::client::decode_transaction_body::<
3256                fidl::encoding::ResultType<
3257                    BaseSocketGetReuseAddressResponse,
3258                    fidl_fuchsia_posix::Errno,
3259                >,
3260                fidl::encoding::DefaultFuchsiaResourceDialect,
3261                0x67b7206b8d1bc0a5,
3262            >(_buf?)?;
3263            Ok(_response.map(|x| x.value))
3264        }
3265        self.client
3266            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReuseAddressResult>(
3267                (),
3268                0x67b7206b8d1bc0a5,
3269                fidl::encoding::DynamicFlags::empty(),
3270                _decode,
3271            )
3272    }
3273
3274    type GetErrorResponseFut = fidl::client::QueryResponseFut<
3275        BaseSocketGetErrorResult,
3276        fidl::encoding::DefaultFuchsiaResourceDialect,
3277    >;
3278    fn r#get_error(&self) -> Self::GetErrorResponseFut {
3279        fn _decode(
3280            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3281        ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
3282            let _response = fidl::client::decode_transaction_body::<
3283                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3284                fidl::encoding::DefaultFuchsiaResourceDialect,
3285                0x5aad39b33e5f6ebb,
3286            >(_buf?)?;
3287            Ok(_response.map(|x| x))
3288        }
3289        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetErrorResult>(
3290            (),
3291            0x5aad39b33e5f6ebb,
3292            fidl::encoding::DynamicFlags::empty(),
3293            _decode,
3294        )
3295    }
3296
3297    type SetBroadcastResponseFut = fidl::client::QueryResponseFut<
3298        BaseSocketSetBroadcastResult,
3299        fidl::encoding::DefaultFuchsiaResourceDialect,
3300    >;
3301    fn r#set_broadcast(&self, mut value: bool) -> Self::SetBroadcastResponseFut {
3302        fn _decode(
3303            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3304        ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
3305            let _response = fidl::client::decode_transaction_body::<
3306                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3307                fidl::encoding::DefaultFuchsiaResourceDialect,
3308                0x6023e081ce3cd947,
3309            >(_buf?)?;
3310            Ok(_response.map(|x| x))
3311        }
3312        self.client
3313            .send_query_and_decode::<BaseSocketSetBroadcastRequest, BaseSocketSetBroadcastResult>(
3314                (value,),
3315                0x6023e081ce3cd947,
3316                fidl::encoding::DynamicFlags::empty(),
3317                _decode,
3318            )
3319    }
3320
3321    type GetBroadcastResponseFut = fidl::client::QueryResponseFut<
3322        BaseSocketGetBroadcastResult,
3323        fidl::encoding::DefaultFuchsiaResourceDialect,
3324    >;
3325    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut {
3326        fn _decode(
3327            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3328        ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
3329            let _response = fidl::client::decode_transaction_body::<
3330                fidl::encoding::ResultType<
3331                    BaseSocketGetBroadcastResponse,
3332                    fidl_fuchsia_posix::Errno,
3333                >,
3334                fidl::encoding::DefaultFuchsiaResourceDialect,
3335                0x68796fc556f9780d,
3336            >(_buf?)?;
3337            Ok(_response.map(|x| x.value))
3338        }
3339        self.client
3340            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBroadcastResult>(
3341                (),
3342                0x68796fc556f9780d,
3343                fidl::encoding::DynamicFlags::empty(),
3344                _decode,
3345            )
3346    }
3347
3348    type SetSendBufferResponseFut = fidl::client::QueryResponseFut<
3349        BaseSocketSetSendBufferResult,
3350        fidl::encoding::DefaultFuchsiaResourceDialect,
3351    >;
3352    fn r#set_send_buffer(&self, mut value_bytes: u64) -> Self::SetSendBufferResponseFut {
3353        fn _decode(
3354            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3355        ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
3356            let _response = fidl::client::decode_transaction_body::<
3357                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3358                fidl::encoding::DefaultFuchsiaResourceDialect,
3359                0x756eac32d73a7a70,
3360            >(_buf?)?;
3361            Ok(_response.map(|x| x))
3362        }
3363        self.client
3364            .send_query_and_decode::<BaseSocketSetSendBufferRequest, BaseSocketSetSendBufferResult>(
3365                (value_bytes,),
3366                0x756eac32d73a7a70,
3367                fidl::encoding::DynamicFlags::empty(),
3368                _decode,
3369            )
3370    }
3371
3372    type GetSendBufferResponseFut = fidl::client::QueryResponseFut<
3373        BaseSocketGetSendBufferResult,
3374        fidl::encoding::DefaultFuchsiaResourceDialect,
3375    >;
3376    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut {
3377        fn _decode(
3378            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3379        ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
3380            let _response = fidl::client::decode_transaction_body::<
3381                fidl::encoding::ResultType<
3382                    BaseSocketGetSendBufferResponse,
3383                    fidl_fuchsia_posix::Errno,
3384                >,
3385                fidl::encoding::DefaultFuchsiaResourceDialect,
3386                0x78a52fd9c7b2410b,
3387            >(_buf?)?;
3388            Ok(_response.map(|x| x.value_bytes))
3389        }
3390        self.client
3391            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetSendBufferResult>(
3392                (),
3393                0x78a52fd9c7b2410b,
3394                fidl::encoding::DynamicFlags::empty(),
3395                _decode,
3396            )
3397    }
3398
3399    type SetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
3400        BaseSocketSetReceiveBufferResult,
3401        fidl::encoding::DefaultFuchsiaResourceDialect,
3402    >;
3403    fn r#set_receive_buffer(&self, mut value_bytes: u64) -> Self::SetReceiveBufferResponseFut {
3404        fn _decode(
3405            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3406        ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
3407            let _response = fidl::client::decode_transaction_body::<
3408                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3409                fidl::encoding::DefaultFuchsiaResourceDialect,
3410                0x6b0cf2f1919c7001,
3411            >(_buf?)?;
3412            Ok(_response.map(|x| x))
3413        }
3414        self.client.send_query_and_decode::<
3415            BaseSocketSetReceiveBufferRequest,
3416            BaseSocketSetReceiveBufferResult,
3417        >(
3418            (value_bytes,),
3419            0x6b0cf2f1919c7001,
3420            fidl::encoding::DynamicFlags::empty(),
3421            _decode,
3422        )
3423    }
3424
3425    type GetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
3426        BaseSocketGetReceiveBufferResult,
3427        fidl::encoding::DefaultFuchsiaResourceDialect,
3428    >;
3429    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut {
3430        fn _decode(
3431            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3432        ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
3433            let _response = fidl::client::decode_transaction_body::<
3434                fidl::encoding::ResultType<
3435                    BaseSocketGetReceiveBufferResponse,
3436                    fidl_fuchsia_posix::Errno,
3437                >,
3438                fidl::encoding::DefaultFuchsiaResourceDialect,
3439                0x14c1a4b64f709e5c,
3440            >(_buf?)?;
3441            Ok(_response.map(|x| x.value_bytes))
3442        }
3443        self.client.send_query_and_decode::<
3444            fidl::encoding::EmptyPayload,
3445            BaseSocketGetReceiveBufferResult,
3446        >(
3447            (),
3448            0x14c1a4b64f709e5c,
3449            fidl::encoding::DynamicFlags::empty(),
3450            _decode,
3451        )
3452    }
3453
3454    type SetKeepAliveResponseFut = fidl::client::QueryResponseFut<
3455        BaseSocketSetKeepAliveResult,
3456        fidl::encoding::DefaultFuchsiaResourceDialect,
3457    >;
3458    fn r#set_keep_alive(&self, mut value: bool) -> Self::SetKeepAliveResponseFut {
3459        fn _decode(
3460            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3461        ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
3462            let _response = fidl::client::decode_transaction_body::<
3463                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3464                fidl::encoding::DefaultFuchsiaResourceDialect,
3465                0x572df8f0b920d2c7,
3466            >(_buf?)?;
3467            Ok(_response.map(|x| x))
3468        }
3469        self.client
3470            .send_query_and_decode::<BaseSocketSetKeepAliveRequest, BaseSocketSetKeepAliveResult>(
3471                (value,),
3472                0x572df8f0b920d2c7,
3473                fidl::encoding::DynamicFlags::empty(),
3474                _decode,
3475            )
3476    }
3477
3478    type GetKeepAliveResponseFut = fidl::client::QueryResponseFut<
3479        BaseSocketGetKeepAliveResult,
3480        fidl::encoding::DefaultFuchsiaResourceDialect,
3481    >;
3482    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut {
3483        fn _decode(
3484            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3485        ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
3486            let _response = fidl::client::decode_transaction_body::<
3487                fidl::encoding::ResultType<
3488                    BaseSocketGetKeepAliveResponse,
3489                    fidl_fuchsia_posix::Errno,
3490                >,
3491                fidl::encoding::DefaultFuchsiaResourceDialect,
3492                0x2dd29d3215f2c9d2,
3493            >(_buf?)?;
3494            Ok(_response.map(|x| x.value))
3495        }
3496        self.client
3497            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetKeepAliveResult>(
3498                (),
3499                0x2dd29d3215f2c9d2,
3500                fidl::encoding::DynamicFlags::empty(),
3501                _decode,
3502            )
3503    }
3504
3505    type SetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
3506        BaseSocketSetOutOfBandInlineResult,
3507        fidl::encoding::DefaultFuchsiaResourceDialect,
3508    >;
3509    fn r#set_out_of_band_inline(&self, mut value: bool) -> Self::SetOutOfBandInlineResponseFut {
3510        fn _decode(
3511            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3512        ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
3513            let _response = fidl::client::decode_transaction_body::<
3514                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3515                fidl::encoding::DefaultFuchsiaResourceDialect,
3516                0x3ecb49968bee439,
3517            >(_buf?)?;
3518            Ok(_response.map(|x| x))
3519        }
3520        self.client.send_query_and_decode::<
3521            BaseSocketSetOutOfBandInlineRequest,
3522            BaseSocketSetOutOfBandInlineResult,
3523        >(
3524            (value,),
3525            0x3ecb49968bee439,
3526            fidl::encoding::DynamicFlags::empty(),
3527            _decode,
3528        )
3529    }
3530
3531    type GetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
3532        BaseSocketGetOutOfBandInlineResult,
3533        fidl::encoding::DefaultFuchsiaResourceDialect,
3534    >;
3535    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut {
3536        fn _decode(
3537            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3538        ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
3539            let _response = fidl::client::decode_transaction_body::<
3540                fidl::encoding::ResultType<
3541                    BaseSocketGetOutOfBandInlineResponse,
3542                    fidl_fuchsia_posix::Errno,
3543                >,
3544                fidl::encoding::DefaultFuchsiaResourceDialect,
3545                0x348c1ab3aeca1745,
3546            >(_buf?)?;
3547            Ok(_response.map(|x| x.value))
3548        }
3549        self.client.send_query_and_decode::<
3550            fidl::encoding::EmptyPayload,
3551            BaseSocketGetOutOfBandInlineResult,
3552        >(
3553            (),
3554            0x348c1ab3aeca1745,
3555            fidl::encoding::DynamicFlags::empty(),
3556            _decode,
3557        )
3558    }
3559
3560    type SetNoCheckResponseFut = fidl::client::QueryResponseFut<
3561        BaseSocketSetNoCheckResult,
3562        fidl::encoding::DefaultFuchsiaResourceDialect,
3563    >;
3564    fn r#set_no_check(&self, mut value: bool) -> Self::SetNoCheckResponseFut {
3565        fn _decode(
3566            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3567        ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
3568            let _response = fidl::client::decode_transaction_body::<
3569                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3570                fidl::encoding::DefaultFuchsiaResourceDialect,
3571                0x6bbf00c53a4c78c2,
3572            >(_buf?)?;
3573            Ok(_response.map(|x| x))
3574        }
3575        self.client
3576            .send_query_and_decode::<BaseSocketSetNoCheckRequest, BaseSocketSetNoCheckResult>(
3577                (value,),
3578                0x6bbf00c53a4c78c2,
3579                fidl::encoding::DynamicFlags::empty(),
3580                _decode,
3581            )
3582    }
3583
3584    type GetNoCheckResponseFut = fidl::client::QueryResponseFut<
3585        BaseSocketGetNoCheckResult,
3586        fidl::encoding::DefaultFuchsiaResourceDialect,
3587    >;
3588    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut {
3589        fn _decode(
3590            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3591        ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
3592            let _response = fidl::client::decode_transaction_body::<
3593                fidl::encoding::ResultType<BaseSocketGetNoCheckResponse, fidl_fuchsia_posix::Errno>,
3594                fidl::encoding::DefaultFuchsiaResourceDialect,
3595                0x2cd4249286417694,
3596            >(_buf?)?;
3597            Ok(_response.map(|x| x.value))
3598        }
3599        self.client
3600            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetNoCheckResult>(
3601                (),
3602                0x2cd4249286417694,
3603                fidl::encoding::DynamicFlags::empty(),
3604                _decode,
3605            )
3606    }
3607
3608    type SetLingerResponseFut = fidl::client::QueryResponseFut<
3609        BaseSocketSetLingerResult,
3610        fidl::encoding::DefaultFuchsiaResourceDialect,
3611    >;
3612    fn r#set_linger(&self, mut linger: bool, mut length_secs: u32) -> Self::SetLingerResponseFut {
3613        fn _decode(
3614            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3615        ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
3616            let _response = fidl::client::decode_transaction_body::<
3617                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3618                fidl::encoding::DefaultFuchsiaResourceDialect,
3619                0x45386351246e998e,
3620            >(_buf?)?;
3621            Ok(_response.map(|x| x))
3622        }
3623        self.client.send_query_and_decode::<BaseSocketSetLingerRequest, BaseSocketSetLingerResult>(
3624            (linger, length_secs),
3625            0x45386351246e998e,
3626            fidl::encoding::DynamicFlags::empty(),
3627            _decode,
3628        )
3629    }
3630
3631    type GetLingerResponseFut = fidl::client::QueryResponseFut<
3632        BaseSocketGetLingerResult,
3633        fidl::encoding::DefaultFuchsiaResourceDialect,
3634    >;
3635    fn r#get_linger(&self) -> Self::GetLingerResponseFut {
3636        fn _decode(
3637            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3638        ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
3639            let _response = fidl::client::decode_transaction_body::<
3640                fidl::encoding::ResultType<BaseSocketGetLingerResponse, fidl_fuchsia_posix::Errno>,
3641                fidl::encoding::DefaultFuchsiaResourceDialect,
3642                0x48eb20fc5ccb0e45,
3643            >(_buf?)?;
3644            Ok(_response.map(|x| (x.linger, x.length_secs)))
3645        }
3646        self.client
3647            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetLingerResult>(
3648                (),
3649                0x48eb20fc5ccb0e45,
3650                fidl::encoding::DynamicFlags::empty(),
3651                _decode,
3652            )
3653    }
3654
3655    type SetReusePortResponseFut = fidl::client::QueryResponseFut<
3656        BaseSocketSetReusePortResult,
3657        fidl::encoding::DefaultFuchsiaResourceDialect,
3658    >;
3659    fn r#set_reuse_port(&self, mut value: ReusePortOption) -> Self::SetReusePortResponseFut {
3660        fn _decode(
3661            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3662        ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
3663            let _response = fidl::client::decode_transaction_body::<
3664                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3665                fidl::encoding::DefaultFuchsiaResourceDialect,
3666                0x547dc9cc0455189e,
3667            >(_buf?)?;
3668            Ok(_response.map(|x| x))
3669        }
3670        self.client
3671            .send_query_and_decode::<BaseSocketSetReusePortRequest, BaseSocketSetReusePortResult>(
3672                (&mut value,),
3673                0x547dc9cc0455189e,
3674                fidl::encoding::DynamicFlags::empty(),
3675                _decode,
3676            )
3677    }
3678
3679    type SetReusePortDeprecatedResponseFut = fidl::client::QueryResponseFut<
3680        BaseSocketSetReusePortDeprecatedResult,
3681        fidl::encoding::DefaultFuchsiaResourceDialect,
3682    >;
3683    fn r#set_reuse_port_deprecated(
3684        &self,
3685        mut value: bool,
3686    ) -> Self::SetReusePortDeprecatedResponseFut {
3687        fn _decode(
3688            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3689        ) -> Result<BaseSocketSetReusePortDeprecatedResult, fidl::Error> {
3690            let _response = fidl::client::decode_transaction_body::<
3691                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3692                fidl::encoding::DefaultFuchsiaResourceDialect,
3693                0x24dd3e5cb36d9ccb,
3694            >(_buf?)?;
3695            Ok(_response.map(|x| x))
3696        }
3697        self.client.send_query_and_decode::<
3698            BaseSocketSetReusePortDeprecatedRequest,
3699            BaseSocketSetReusePortDeprecatedResult,
3700        >(
3701            (value,),
3702            0x24dd3e5cb36d9ccb,
3703            fidl::encoding::DynamicFlags::empty(),
3704            _decode,
3705        )
3706    }
3707
3708    type GetReusePortResponseFut = fidl::client::QueryResponseFut<
3709        BaseSocketGetReusePortResult,
3710        fidl::encoding::DefaultFuchsiaResourceDialect,
3711    >;
3712    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut {
3713        fn _decode(
3714            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3715        ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
3716            let _response = fidl::client::decode_transaction_body::<
3717                fidl::encoding::ResultType<
3718                    BaseSocketGetReusePortResponse,
3719                    fidl_fuchsia_posix::Errno,
3720                >,
3721                fidl::encoding::DefaultFuchsiaResourceDialect,
3722                0x7a112c1ab54ff828,
3723            >(_buf?)?;
3724            Ok(_response.map(|x| x.value))
3725        }
3726        self.client
3727            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReusePortResult>(
3728                (),
3729                0x7a112c1ab54ff828,
3730                fidl::encoding::DynamicFlags::empty(),
3731                _decode,
3732            )
3733    }
3734
3735    type GetAcceptConnResponseFut = fidl::client::QueryResponseFut<
3736        BaseSocketGetAcceptConnResult,
3737        fidl::encoding::DefaultFuchsiaResourceDialect,
3738    >;
3739    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut {
3740        fn _decode(
3741            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3742        ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
3743            let _response = fidl::client::decode_transaction_body::<
3744                fidl::encoding::ResultType<
3745                    BaseSocketGetAcceptConnResponse,
3746                    fidl_fuchsia_posix::Errno,
3747                >,
3748                fidl::encoding::DefaultFuchsiaResourceDialect,
3749                0x67ce6db6c2ec8966,
3750            >(_buf?)?;
3751            Ok(_response.map(|x| x.value))
3752        }
3753        self.client
3754            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetAcceptConnResult>(
3755                (),
3756                0x67ce6db6c2ec8966,
3757                fidl::encoding::DynamicFlags::empty(),
3758                _decode,
3759            )
3760    }
3761
3762    type SetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
3763        BaseSocketSetBindToDeviceResult,
3764        fidl::encoding::DefaultFuchsiaResourceDialect,
3765    >;
3766    fn r#set_bind_to_device(&self, mut value: &str) -> Self::SetBindToDeviceResponseFut {
3767        fn _decode(
3768            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3769        ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
3770            let _response = fidl::client::decode_transaction_body::<
3771                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3772                fidl::encoding::DefaultFuchsiaResourceDialect,
3773                0x2118b483f28aafc4,
3774            >(_buf?)?;
3775            Ok(_response.map(|x| x))
3776        }
3777        self.client.send_query_and_decode::<
3778            BaseSocketSetBindToDeviceRequest,
3779            BaseSocketSetBindToDeviceResult,
3780        >(
3781            (value,),
3782            0x2118b483f28aafc4,
3783            fidl::encoding::DynamicFlags::empty(),
3784            _decode,
3785        )
3786    }
3787
3788    type GetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
3789        BaseSocketGetBindToDeviceResult,
3790        fidl::encoding::DefaultFuchsiaResourceDialect,
3791    >;
3792    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut {
3793        fn _decode(
3794            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3795        ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
3796            let _response = fidl::client::decode_transaction_body::<
3797                fidl::encoding::ResultType<
3798                    BaseSocketGetBindToDeviceResponse,
3799                    fidl_fuchsia_posix::Errno,
3800                >,
3801                fidl::encoding::DefaultFuchsiaResourceDialect,
3802                0x1ab1fbf0ef7906c8,
3803            >(_buf?)?;
3804            Ok(_response.map(|x| x.value))
3805        }
3806        self.client
3807            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBindToDeviceResult>(
3808                (),
3809                0x1ab1fbf0ef7906c8,
3810                fidl::encoding::DynamicFlags::empty(),
3811                _decode,
3812            )
3813    }
3814
3815    type SetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
3816        BaseSocketSetBindToInterfaceIndexResult,
3817        fidl::encoding::DefaultFuchsiaResourceDialect,
3818    >;
3819    fn r#set_bind_to_interface_index(
3820        &self,
3821        mut value: u64,
3822    ) -> Self::SetBindToInterfaceIndexResponseFut {
3823        fn _decode(
3824            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3825        ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
3826            let _response = fidl::client::decode_transaction_body::<
3827                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3828                fidl::encoding::DefaultFuchsiaResourceDialect,
3829                0x6e387a0def00821,
3830            >(_buf?)?;
3831            Ok(_response.map(|x| x))
3832        }
3833        self.client.send_query_and_decode::<
3834            BaseSocketSetBindToInterfaceIndexRequest,
3835            BaseSocketSetBindToInterfaceIndexResult,
3836        >(
3837            (value,),
3838            0x6e387a0def00821,
3839            fidl::encoding::DynamicFlags::empty(),
3840            _decode,
3841        )
3842    }
3843
3844    type GetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
3845        BaseSocketGetBindToInterfaceIndexResult,
3846        fidl::encoding::DefaultFuchsiaResourceDialect,
3847    >;
3848    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut {
3849        fn _decode(
3850            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3851        ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
3852            let _response = fidl::client::decode_transaction_body::<
3853                fidl::encoding::ResultType<
3854                    BaseSocketGetBindToInterfaceIndexResponse,
3855                    fidl_fuchsia_posix::Errno,
3856                >,
3857                fidl::encoding::DefaultFuchsiaResourceDialect,
3858                0x59c31dd3e3078295,
3859            >(_buf?)?;
3860            Ok(_response.map(|x| x.value))
3861        }
3862        self.client.send_query_and_decode::<
3863            fidl::encoding::EmptyPayload,
3864            BaseSocketGetBindToInterfaceIndexResult,
3865        >(
3866            (),
3867            0x59c31dd3e3078295,
3868            fidl::encoding::DynamicFlags::empty(),
3869            _decode,
3870        )
3871    }
3872
3873    type SetTimestampResponseFut = fidl::client::QueryResponseFut<
3874        BaseSocketSetTimestampResult,
3875        fidl::encoding::DefaultFuchsiaResourceDialect,
3876    >;
3877    fn r#set_timestamp(&self, mut value: TimestampOption) -> Self::SetTimestampResponseFut {
3878        fn _decode(
3879            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3880        ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
3881            let _response = fidl::client::decode_transaction_body::<
3882                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3883                fidl::encoding::DefaultFuchsiaResourceDialect,
3884                0x285d6516c263d839,
3885            >(_buf?)?;
3886            Ok(_response.map(|x| x))
3887        }
3888        self.client
3889            .send_query_and_decode::<BaseSocketSetTimestampRequest, BaseSocketSetTimestampResult>(
3890                (value,),
3891                0x285d6516c263d839,
3892                fidl::encoding::DynamicFlags::empty(),
3893                _decode,
3894            )
3895    }
3896
3897    type GetTimestampResponseFut = fidl::client::QueryResponseFut<
3898        BaseSocketGetTimestampResult,
3899        fidl::encoding::DefaultFuchsiaResourceDialect,
3900    >;
3901    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut {
3902        fn _decode(
3903            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3904        ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
3905            let _response = fidl::client::decode_transaction_body::<
3906                fidl::encoding::ResultType<
3907                    BaseSocketGetTimestampResponse,
3908                    fidl_fuchsia_posix::Errno,
3909                >,
3910                fidl::encoding::DefaultFuchsiaResourceDialect,
3911                0x49f2fffbbcc2bd27,
3912            >(_buf?)?;
3913            Ok(_response.map(|x| x.value))
3914        }
3915        self.client
3916            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetTimestampResult>(
3917                (),
3918                0x49f2fffbbcc2bd27,
3919                fidl::encoding::DynamicFlags::empty(),
3920                _decode,
3921            )
3922    }
3923
3924    type SetMarkResponseFut = fidl::client::QueryResponseFut<
3925        BaseSocketSetMarkResult,
3926        fidl::encoding::DefaultFuchsiaResourceDialect,
3927    >;
3928    fn r#set_mark(
3929        &self,
3930        mut domain: fidl_fuchsia_net::MarkDomain,
3931        mut mark: &OptionalUint32,
3932    ) -> Self::SetMarkResponseFut {
3933        fn _decode(
3934            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3935        ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
3936            let _response = fidl::client::decode_transaction_body::<
3937                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3938                fidl::encoding::DefaultFuchsiaResourceDialect,
3939                0x6ead6de09f653236,
3940            >(_buf?)?;
3941            Ok(_response.map(|x| x))
3942        }
3943        self.client.send_query_and_decode::<BaseSocketSetMarkRequest, BaseSocketSetMarkResult>(
3944            (domain, mark),
3945            0x6ead6de09f653236,
3946            fidl::encoding::DynamicFlags::empty(),
3947            _decode,
3948        )
3949    }
3950
3951    type GetMarkResponseFut = fidl::client::QueryResponseFut<
3952        BaseSocketGetMarkResult,
3953        fidl::encoding::DefaultFuchsiaResourceDialect,
3954    >;
3955    fn r#get_mark(&self, mut domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut {
3956        fn _decode(
3957            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3958        ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
3959            let _response = fidl::client::decode_transaction_body::<
3960                fidl::encoding::ResultType<BaseSocketGetMarkResponse, fidl_fuchsia_posix::Errno>,
3961                fidl::encoding::DefaultFuchsiaResourceDialect,
3962                0x57a2752c61d93d47,
3963            >(_buf?)?;
3964            Ok(_response.map(|x| x.mark))
3965        }
3966        self.client.send_query_and_decode::<BaseSocketGetMarkRequest, BaseSocketGetMarkResult>(
3967            (domain,),
3968            0x57a2752c61d93d47,
3969            fidl::encoding::DynamicFlags::empty(),
3970            _decode,
3971        )
3972    }
3973
3974    type GetCookieResponseFut = fidl::client::QueryResponseFut<
3975        BaseSocketGetCookieResult,
3976        fidl::encoding::DefaultFuchsiaResourceDialect,
3977    >;
3978    fn r#get_cookie(&self) -> Self::GetCookieResponseFut {
3979        fn _decode(
3980            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3981        ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
3982            let _response = fidl::client::decode_transaction_body::<
3983                fidl::encoding::ResultType<BaseSocketGetCookieResponse, fidl_fuchsia_posix::Errno>,
3984                fidl::encoding::DefaultFuchsiaResourceDialect,
3985                0x2c2f47fd8f924e52,
3986            >(_buf?)?;
3987            Ok(_response.map(|x| x.value))
3988        }
3989        self.client
3990            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetCookieResult>(
3991                (),
3992                0x2c2f47fd8f924e52,
3993                fidl::encoding::DynamicFlags::empty(),
3994                _decode,
3995            )
3996    }
3997
3998    type BindResponseFut = fidl::client::QueryResponseFut<
3999        BaseNetworkSocketBindResult,
4000        fidl::encoding::DefaultFuchsiaResourceDialect,
4001    >;
4002    fn r#bind(&self, mut addr: &fidl_fuchsia_net::SocketAddress) -> Self::BindResponseFut {
4003        fn _decode(
4004            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4005        ) -> Result<BaseNetworkSocketBindResult, 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                0x4bc6400ae92125d,
4010            >(_buf?)?;
4011            Ok(_response.map(|x| x))
4012        }
4013        self.client
4014            .send_query_and_decode::<BaseNetworkSocketBindRequest, BaseNetworkSocketBindResult>(
4015                (addr,),
4016                0x4bc6400ae92125d,
4017                fidl::encoding::DynamicFlags::empty(),
4018                _decode,
4019            )
4020    }
4021
4022    type ConnectResponseFut = fidl::client::QueryResponseFut<
4023        BaseNetworkSocketConnectResult,
4024        fidl::encoding::DefaultFuchsiaResourceDialect,
4025    >;
4026    fn r#connect(&self, mut addr: &fidl_fuchsia_net::SocketAddress) -> Self::ConnectResponseFut {
4027        fn _decode(
4028            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4029        ) -> Result<BaseNetworkSocketConnectResult, fidl::Error> {
4030            let _response = fidl::client::decode_transaction_body::<
4031                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4032                fidl::encoding::DefaultFuchsiaResourceDialect,
4033                0x5f05f19bfdd38871,
4034            >(_buf?)?;
4035            Ok(_response.map(|x| x))
4036        }
4037        self.client.send_query_and_decode::<
4038            BaseNetworkSocketConnectRequest,
4039            BaseNetworkSocketConnectResult,
4040        >(
4041            (addr,),
4042            0x5f05f19bfdd38871,
4043            fidl::encoding::DynamicFlags::empty(),
4044            _decode,
4045        )
4046    }
4047
4048    type DisconnectResponseFut = fidl::client::QueryResponseFut<
4049        BaseNetworkSocketDisconnectResult,
4050        fidl::encoding::DefaultFuchsiaResourceDialect,
4051    >;
4052    fn r#disconnect(&self) -> Self::DisconnectResponseFut {
4053        fn _decode(
4054            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4055        ) -> Result<BaseNetworkSocketDisconnectResult, fidl::Error> {
4056            let _response = fidl::client::decode_transaction_body::<
4057                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4058                fidl::encoding::DefaultFuchsiaResourceDialect,
4059                0x74e63b91f7b29b2,
4060            >(_buf?)?;
4061            Ok(_response.map(|x| x))
4062        }
4063        self.client.send_query_and_decode::<
4064            fidl::encoding::EmptyPayload,
4065            BaseNetworkSocketDisconnectResult,
4066        >(
4067            (),
4068            0x74e63b91f7b29b2,
4069            fidl::encoding::DynamicFlags::empty(),
4070            _decode,
4071        )
4072    }
4073
4074    type GetSockNameResponseFut = fidl::client::QueryResponseFut<
4075        BaseNetworkSocketGetSockNameResult,
4076        fidl::encoding::DefaultFuchsiaResourceDialect,
4077    >;
4078    fn r#get_sock_name(&self) -> Self::GetSockNameResponseFut {
4079        fn _decode(
4080            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4081        ) -> Result<BaseNetworkSocketGetSockNameResult, fidl::Error> {
4082            let _response = fidl::client::decode_transaction_body::<
4083                fidl::encoding::ResultType<
4084                    BaseNetworkSocketGetSockNameResponse,
4085                    fidl_fuchsia_posix::Errno,
4086                >,
4087                fidl::encoding::DefaultFuchsiaResourceDialect,
4088                0x475f23f84a1a4f85,
4089            >(_buf?)?;
4090            Ok(_response.map(|x| x.addr))
4091        }
4092        self.client.send_query_and_decode::<
4093            fidl::encoding::EmptyPayload,
4094            BaseNetworkSocketGetSockNameResult,
4095        >(
4096            (),
4097            0x475f23f84a1a4f85,
4098            fidl::encoding::DynamicFlags::empty(),
4099            _decode,
4100        )
4101    }
4102
4103    type GetPeerNameResponseFut = fidl::client::QueryResponseFut<
4104        BaseNetworkSocketGetPeerNameResult,
4105        fidl::encoding::DefaultFuchsiaResourceDialect,
4106    >;
4107    fn r#get_peer_name(&self) -> Self::GetPeerNameResponseFut {
4108        fn _decode(
4109            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4110        ) -> Result<BaseNetworkSocketGetPeerNameResult, fidl::Error> {
4111            let _response = fidl::client::decode_transaction_body::<
4112                fidl::encoding::ResultType<
4113                    BaseNetworkSocketGetPeerNameResponse,
4114                    fidl_fuchsia_posix::Errno,
4115                >,
4116                fidl::encoding::DefaultFuchsiaResourceDialect,
4117                0x1ffecf4bd5b6432e,
4118            >(_buf?)?;
4119            Ok(_response.map(|x| x.addr))
4120        }
4121        self.client.send_query_and_decode::<
4122            fidl::encoding::EmptyPayload,
4123            BaseNetworkSocketGetPeerNameResult,
4124        >(
4125            (),
4126            0x1ffecf4bd5b6432e,
4127            fidl::encoding::DynamicFlags::empty(),
4128            _decode,
4129        )
4130    }
4131
4132    type ShutdownResponseFut = fidl::client::QueryResponseFut<
4133        BaseNetworkSocketShutdownResult,
4134        fidl::encoding::DefaultFuchsiaResourceDialect,
4135    >;
4136    fn r#shutdown(&self, mut mode: ShutdownMode) -> Self::ShutdownResponseFut {
4137        fn _decode(
4138            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4139        ) -> Result<BaseNetworkSocketShutdownResult, fidl::Error> {
4140            let _response = fidl::client::decode_transaction_body::<
4141                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4142                fidl::encoding::DefaultFuchsiaResourceDialect,
4143                0x247f38b6db68c336,
4144            >(_buf?)?;
4145            Ok(_response.map(|x| x))
4146        }
4147        self.client.send_query_and_decode::<
4148            BaseNetworkSocketShutdownRequest,
4149            BaseNetworkSocketShutdownResult,
4150        >(
4151            (mode,),
4152            0x247f38b6db68c336,
4153            fidl::encoding::DynamicFlags::empty(),
4154            _decode,
4155        )
4156    }
4157
4158    type SetIpTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
4159        BaseNetworkSocketSetIpTypeOfServiceResult,
4160        fidl::encoding::DefaultFuchsiaResourceDialect,
4161    >;
4162    fn r#set_ip_type_of_service(&self, mut value: u8) -> Self::SetIpTypeOfServiceResponseFut {
4163        fn _decode(
4164            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4165        ) -> Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error> {
4166            let _response = fidl::client::decode_transaction_body::<
4167                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4168                fidl::encoding::DefaultFuchsiaResourceDialect,
4169                0x995c600475b6d46,
4170            >(_buf?)?;
4171            Ok(_response.map(|x| x))
4172        }
4173        self.client.send_query_and_decode::<
4174            BaseNetworkSocketSetIpTypeOfServiceRequest,
4175            BaseNetworkSocketSetIpTypeOfServiceResult,
4176        >(
4177            (value,),
4178            0x995c600475b6d46,
4179            fidl::encoding::DynamicFlags::empty(),
4180            _decode,
4181        )
4182    }
4183
4184    type GetIpTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
4185        BaseNetworkSocketGetIpTypeOfServiceResult,
4186        fidl::encoding::DefaultFuchsiaResourceDialect,
4187    >;
4188    fn r#get_ip_type_of_service(&self) -> Self::GetIpTypeOfServiceResponseFut {
4189        fn _decode(
4190            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4191        ) -> Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error> {
4192            let _response = fidl::client::decode_transaction_body::<
4193                fidl::encoding::ResultType<
4194                    BaseNetworkSocketGetIpTypeOfServiceResponse,
4195                    fidl_fuchsia_posix::Errno,
4196                >,
4197                fidl::encoding::DefaultFuchsiaResourceDialect,
4198                0x3814a04259f75fcb,
4199            >(_buf?)?;
4200            Ok(_response.map(|x| x.value))
4201        }
4202        self.client.send_query_and_decode::<
4203            fidl::encoding::EmptyPayload,
4204            BaseNetworkSocketGetIpTypeOfServiceResult,
4205        >(
4206            (),
4207            0x3814a04259f75fcb,
4208            fidl::encoding::DynamicFlags::empty(),
4209            _decode,
4210        )
4211    }
4212
4213    type SetIpTtlResponseFut = fidl::client::QueryResponseFut<
4214        BaseNetworkSocketSetIpTtlResult,
4215        fidl::encoding::DefaultFuchsiaResourceDialect,
4216    >;
4217    fn r#set_ip_ttl(&self, mut value: &OptionalUint8) -> Self::SetIpTtlResponseFut {
4218        fn _decode(
4219            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4220        ) -> Result<BaseNetworkSocketSetIpTtlResult, fidl::Error> {
4221            let _response = fidl::client::decode_transaction_body::<
4222                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4223                fidl::encoding::DefaultFuchsiaResourceDialect,
4224                0x29e2424b433ae1ef,
4225            >(_buf?)?;
4226            Ok(_response.map(|x| x))
4227        }
4228        self.client.send_query_and_decode::<
4229            BaseNetworkSocketSetIpTtlRequest,
4230            BaseNetworkSocketSetIpTtlResult,
4231        >(
4232            (value,),
4233            0x29e2424b433ae1ef,
4234            fidl::encoding::DynamicFlags::empty(),
4235            _decode,
4236        )
4237    }
4238
4239    type GetIpTtlResponseFut = fidl::client::QueryResponseFut<
4240        BaseNetworkSocketGetIpTtlResult,
4241        fidl::encoding::DefaultFuchsiaResourceDialect,
4242    >;
4243    fn r#get_ip_ttl(&self) -> Self::GetIpTtlResponseFut {
4244        fn _decode(
4245            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4246        ) -> Result<BaseNetworkSocketGetIpTtlResult, fidl::Error> {
4247            let _response = fidl::client::decode_transaction_body::<
4248                fidl::encoding::ResultType<
4249                    BaseNetworkSocketGetIpTtlResponse,
4250                    fidl_fuchsia_posix::Errno,
4251                >,
4252                fidl::encoding::DefaultFuchsiaResourceDialect,
4253                0x47e47fa1f24da471,
4254            >(_buf?)?;
4255            Ok(_response.map(|x| x.value))
4256        }
4257        self.client
4258            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseNetworkSocketGetIpTtlResult>(
4259                (),
4260                0x47e47fa1f24da471,
4261                fidl::encoding::DynamicFlags::empty(),
4262                _decode,
4263            )
4264    }
4265
4266    type SetIpPacketInfoResponseFut = fidl::client::QueryResponseFut<
4267        BaseNetworkSocketSetIpPacketInfoResult,
4268        fidl::encoding::DefaultFuchsiaResourceDialect,
4269    >;
4270    fn r#set_ip_packet_info(&self, mut value: bool) -> Self::SetIpPacketInfoResponseFut {
4271        fn _decode(
4272            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4273        ) -> Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error> {
4274            let _response = fidl::client::decode_transaction_body::<
4275                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4276                fidl::encoding::DefaultFuchsiaResourceDialect,
4277                0x392d16bee20c0e16,
4278            >(_buf?)?;
4279            Ok(_response.map(|x| x))
4280        }
4281        self.client.send_query_and_decode::<
4282            BaseNetworkSocketSetIpPacketInfoRequest,
4283            BaseNetworkSocketSetIpPacketInfoResult,
4284        >(
4285            (value,),
4286            0x392d16bee20c0e16,
4287            fidl::encoding::DynamicFlags::empty(),
4288            _decode,
4289        )
4290    }
4291
4292    type GetIpPacketInfoResponseFut = fidl::client::QueryResponseFut<
4293        BaseNetworkSocketGetIpPacketInfoResult,
4294        fidl::encoding::DefaultFuchsiaResourceDialect,
4295    >;
4296    fn r#get_ip_packet_info(&self) -> Self::GetIpPacketInfoResponseFut {
4297        fn _decode(
4298            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4299        ) -> Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error> {
4300            let _response = fidl::client::decode_transaction_body::<
4301                fidl::encoding::ResultType<
4302                    BaseNetworkSocketGetIpPacketInfoResponse,
4303                    fidl_fuchsia_posix::Errno,
4304                >,
4305                fidl::encoding::DefaultFuchsiaResourceDialect,
4306                0x54b505f242280740,
4307            >(_buf?)?;
4308            Ok(_response.map(|x| x.value))
4309        }
4310        self.client.send_query_and_decode::<
4311            fidl::encoding::EmptyPayload,
4312            BaseNetworkSocketGetIpPacketInfoResult,
4313        >(
4314            (),
4315            0x54b505f242280740,
4316            fidl::encoding::DynamicFlags::empty(),
4317            _decode,
4318        )
4319    }
4320
4321    type SetIpReceiveTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
4322        BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
4323        fidl::encoding::DefaultFuchsiaResourceDialect,
4324    >;
4325    fn r#set_ip_receive_type_of_service(
4326        &self,
4327        mut value: bool,
4328    ) -> Self::SetIpReceiveTypeOfServiceResponseFut {
4329        fn _decode(
4330            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4331        ) -> Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error> {
4332            let _response = fidl::client::decode_transaction_body::<
4333                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4334                fidl::encoding::DefaultFuchsiaResourceDialect,
4335                0x6c4f6714995f84ef,
4336            >(_buf?)?;
4337            Ok(_response.map(|x| x))
4338        }
4339        self.client.send_query_and_decode::<
4340            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
4341            BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
4342        >(
4343            (value,),
4344            0x6c4f6714995f84ef,
4345            fidl::encoding::DynamicFlags::empty(),
4346            _decode,
4347        )
4348    }
4349
4350    type GetIpReceiveTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
4351        BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
4352        fidl::encoding::DefaultFuchsiaResourceDialect,
4353    >;
4354    fn r#get_ip_receive_type_of_service(&self) -> Self::GetIpReceiveTypeOfServiceResponseFut {
4355        fn _decode(
4356            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4357        ) -> Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error> {
4358            let _response = fidl::client::decode_transaction_body::<
4359                fidl::encoding::ResultType<
4360                    BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
4361                    fidl_fuchsia_posix::Errno,
4362                >,
4363                fidl::encoding::DefaultFuchsiaResourceDialect,
4364                0x4158ba7dc2795960,
4365            >(_buf?)?;
4366            Ok(_response.map(|x| x.value))
4367        }
4368        self.client.send_query_and_decode::<
4369            fidl::encoding::EmptyPayload,
4370            BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
4371        >(
4372            (),
4373            0x4158ba7dc2795960,
4374            fidl::encoding::DynamicFlags::empty(),
4375            _decode,
4376        )
4377    }
4378
4379    type SetIpReceiveTtlResponseFut = fidl::client::QueryResponseFut<
4380        BaseNetworkSocketSetIpReceiveTtlResult,
4381        fidl::encoding::DefaultFuchsiaResourceDialect,
4382    >;
4383    fn r#set_ip_receive_ttl(&self, mut value: bool) -> Self::SetIpReceiveTtlResponseFut {
4384        fn _decode(
4385            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4386        ) -> Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error> {
4387            let _response = fidl::client::decode_transaction_body::<
4388                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4389                fidl::encoding::DefaultFuchsiaResourceDialect,
4390                0x46f15be0ce0ab82b,
4391            >(_buf?)?;
4392            Ok(_response.map(|x| x))
4393        }
4394        self.client.send_query_and_decode::<
4395            BaseNetworkSocketSetIpReceiveTtlRequest,
4396            BaseNetworkSocketSetIpReceiveTtlResult,
4397        >(
4398            (value,),
4399            0x46f15be0ce0ab82b,
4400            fidl::encoding::DynamicFlags::empty(),
4401            _decode,
4402        )
4403    }
4404
4405    type GetIpReceiveTtlResponseFut = fidl::client::QueryResponseFut<
4406        BaseNetworkSocketGetIpReceiveTtlResult,
4407        fidl::encoding::DefaultFuchsiaResourceDialect,
4408    >;
4409    fn r#get_ip_receive_ttl(&self) -> Self::GetIpReceiveTtlResponseFut {
4410        fn _decode(
4411            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4412        ) -> Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error> {
4413            let _response = fidl::client::decode_transaction_body::<
4414                fidl::encoding::ResultType<
4415                    BaseNetworkSocketGetIpReceiveTtlResponse,
4416                    fidl_fuchsia_posix::Errno,
4417                >,
4418                fidl::encoding::DefaultFuchsiaResourceDialect,
4419                0x678ddd5a5dfa2eb5,
4420            >(_buf?)?;
4421            Ok(_response.map(|x| x.value))
4422        }
4423        self.client.send_query_and_decode::<
4424            fidl::encoding::EmptyPayload,
4425            BaseNetworkSocketGetIpReceiveTtlResult,
4426        >(
4427            (),
4428            0x678ddd5a5dfa2eb5,
4429            fidl::encoding::DynamicFlags::empty(),
4430            _decode,
4431        )
4432    }
4433
4434    type SetIpMulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
4435        BaseNetworkSocketSetIpMulticastInterfaceResult,
4436        fidl::encoding::DefaultFuchsiaResourceDialect,
4437    >;
4438    fn r#set_ip_multicast_interface(
4439        &self,
4440        mut iface: u64,
4441        mut address: &fidl_fuchsia_net::Ipv4Address,
4442    ) -> Self::SetIpMulticastInterfaceResponseFut {
4443        fn _decode(
4444            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4445        ) -> Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error> {
4446            let _response = fidl::client::decode_transaction_body::<
4447                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4448                fidl::encoding::DefaultFuchsiaResourceDialect,
4449                0x752fbfa9b12befe,
4450            >(_buf?)?;
4451            Ok(_response.map(|x| x))
4452        }
4453        self.client.send_query_and_decode::<
4454            BaseNetworkSocketSetIpMulticastInterfaceRequest,
4455            BaseNetworkSocketSetIpMulticastInterfaceResult,
4456        >(
4457            (iface, address,),
4458            0x752fbfa9b12befe,
4459            fidl::encoding::DynamicFlags::empty(),
4460            _decode,
4461        )
4462    }
4463
4464    type GetIpMulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
4465        BaseNetworkSocketGetIpMulticastInterfaceResult,
4466        fidl::encoding::DefaultFuchsiaResourceDialect,
4467    >;
4468    fn r#get_ip_multicast_interface(&self) -> Self::GetIpMulticastInterfaceResponseFut {
4469        fn _decode(
4470            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4471        ) -> Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error> {
4472            let _response = fidl::client::decode_transaction_body::<
4473                fidl::encoding::ResultType<
4474                    BaseNetworkSocketGetIpMulticastInterfaceResponse,
4475                    fidl_fuchsia_posix::Errno,
4476                >,
4477                fidl::encoding::DefaultFuchsiaResourceDialect,
4478                0x320bd14c4df046c4,
4479            >(_buf?)?;
4480            Ok(_response.map(|x| x.value))
4481        }
4482        self.client.send_query_and_decode::<
4483            fidl::encoding::EmptyPayload,
4484            BaseNetworkSocketGetIpMulticastInterfaceResult,
4485        >(
4486            (),
4487            0x320bd14c4df046c4,
4488            fidl::encoding::DynamicFlags::empty(),
4489            _decode,
4490        )
4491    }
4492
4493    type SetIpMulticastTtlResponseFut = fidl::client::QueryResponseFut<
4494        BaseNetworkSocketSetIpMulticastTtlResult,
4495        fidl::encoding::DefaultFuchsiaResourceDialect,
4496    >;
4497    fn r#set_ip_multicast_ttl(
4498        &self,
4499        mut value: &OptionalUint8,
4500    ) -> Self::SetIpMulticastTtlResponseFut {
4501        fn _decode(
4502            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4503        ) -> Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error> {
4504            let _response = fidl::client::decode_transaction_body::<
4505                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4506                fidl::encoding::DefaultFuchsiaResourceDialect,
4507                0x63134d53772916a1,
4508            >(_buf?)?;
4509            Ok(_response.map(|x| x))
4510        }
4511        self.client.send_query_and_decode::<
4512            BaseNetworkSocketSetIpMulticastTtlRequest,
4513            BaseNetworkSocketSetIpMulticastTtlResult,
4514        >(
4515            (value,),
4516            0x63134d53772916a1,
4517            fidl::encoding::DynamicFlags::empty(),
4518            _decode,
4519        )
4520    }
4521
4522    type GetIpMulticastTtlResponseFut = fidl::client::QueryResponseFut<
4523        BaseNetworkSocketGetIpMulticastTtlResult,
4524        fidl::encoding::DefaultFuchsiaResourceDialect,
4525    >;
4526    fn r#get_ip_multicast_ttl(&self) -> Self::GetIpMulticastTtlResponseFut {
4527        fn _decode(
4528            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4529        ) -> Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error> {
4530            let _response = fidl::client::decode_transaction_body::<
4531                fidl::encoding::ResultType<
4532                    BaseNetworkSocketGetIpMulticastTtlResponse,
4533                    fidl_fuchsia_posix::Errno,
4534                >,
4535                fidl::encoding::DefaultFuchsiaResourceDialect,
4536                0x4665cd378f39e1a,
4537            >(_buf?)?;
4538            Ok(_response.map(|x| x.value))
4539        }
4540        self.client.send_query_and_decode::<
4541            fidl::encoding::EmptyPayload,
4542            BaseNetworkSocketGetIpMulticastTtlResult,
4543        >(
4544            (),
4545            0x4665cd378f39e1a,
4546            fidl::encoding::DynamicFlags::empty(),
4547            _decode,
4548        )
4549    }
4550
4551    type SetIpMulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
4552        BaseNetworkSocketSetIpMulticastLoopbackResult,
4553        fidl::encoding::DefaultFuchsiaResourceDialect,
4554    >;
4555    fn r#set_ip_multicast_loopback(
4556        &self,
4557        mut value: bool,
4558    ) -> Self::SetIpMulticastLoopbackResponseFut {
4559        fn _decode(
4560            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4561        ) -> Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error> {
4562            let _response = fidl::client::decode_transaction_body::<
4563                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4564                fidl::encoding::DefaultFuchsiaResourceDialect,
4565                0x20c55c11f00943ea,
4566            >(_buf?)?;
4567            Ok(_response.map(|x| x))
4568        }
4569        self.client.send_query_and_decode::<
4570            BaseNetworkSocketSetIpMulticastLoopbackRequest,
4571            BaseNetworkSocketSetIpMulticastLoopbackResult,
4572        >(
4573            (value,),
4574            0x20c55c11f00943ea,
4575            fidl::encoding::DynamicFlags::empty(),
4576            _decode,
4577        )
4578    }
4579
4580    type GetIpMulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
4581        BaseNetworkSocketGetIpMulticastLoopbackResult,
4582        fidl::encoding::DefaultFuchsiaResourceDialect,
4583    >;
4584    fn r#get_ip_multicast_loopback(&self) -> Self::GetIpMulticastLoopbackResponseFut {
4585        fn _decode(
4586            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4587        ) -> Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error> {
4588            let _response = fidl::client::decode_transaction_body::<
4589                fidl::encoding::ResultType<
4590                    BaseNetworkSocketGetIpMulticastLoopbackResponse,
4591                    fidl_fuchsia_posix::Errno,
4592                >,
4593                fidl::encoding::DefaultFuchsiaResourceDialect,
4594                0x3b6b26ff558298f2,
4595            >(_buf?)?;
4596            Ok(_response.map(|x| x.value))
4597        }
4598        self.client.send_query_and_decode::<
4599            fidl::encoding::EmptyPayload,
4600            BaseNetworkSocketGetIpMulticastLoopbackResult,
4601        >(
4602            (),
4603            0x3b6b26ff558298f2,
4604            fidl::encoding::DynamicFlags::empty(),
4605            _decode,
4606        )
4607    }
4608
4609    type AddIpMembershipResponseFut = fidl::client::QueryResponseFut<
4610        BaseNetworkSocketAddIpMembershipResult,
4611        fidl::encoding::DefaultFuchsiaResourceDialect,
4612    >;
4613    fn r#add_ip_membership(
4614        &self,
4615        mut membership: &IpMulticastMembership,
4616    ) -> Self::AddIpMembershipResponseFut {
4617        fn _decode(
4618            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4619        ) -> Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error> {
4620            let _response = fidl::client::decode_transaction_body::<
4621                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4622                fidl::encoding::DefaultFuchsiaResourceDialect,
4623                0x76bc7df115a3b4d0,
4624            >(_buf?)?;
4625            Ok(_response.map(|x| x))
4626        }
4627        self.client.send_query_and_decode::<
4628            BaseNetworkSocketAddIpMembershipRequest,
4629            BaseNetworkSocketAddIpMembershipResult,
4630        >(
4631            (membership,),
4632            0x76bc7df115a3b4d0,
4633            fidl::encoding::DynamicFlags::empty(),
4634            _decode,
4635        )
4636    }
4637
4638    type DropIpMembershipResponseFut = fidl::client::QueryResponseFut<
4639        BaseNetworkSocketDropIpMembershipResult,
4640        fidl::encoding::DefaultFuchsiaResourceDialect,
4641    >;
4642    fn r#drop_ip_membership(
4643        &self,
4644        mut membership: &IpMulticastMembership,
4645    ) -> Self::DropIpMembershipResponseFut {
4646        fn _decode(
4647            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4648        ) -> Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error> {
4649            let _response = fidl::client::decode_transaction_body::<
4650                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4651                fidl::encoding::DefaultFuchsiaResourceDialect,
4652                0x2888f3099188d03,
4653            >(_buf?)?;
4654            Ok(_response.map(|x| x))
4655        }
4656        self.client.send_query_and_decode::<
4657            BaseNetworkSocketDropIpMembershipRequest,
4658            BaseNetworkSocketDropIpMembershipResult,
4659        >(
4660            (membership,),
4661            0x2888f3099188d03,
4662            fidl::encoding::DynamicFlags::empty(),
4663            _decode,
4664        )
4665    }
4666
4667    type SetIpTransparentResponseFut = fidl::client::QueryResponseFut<
4668        BaseNetworkSocketSetIpTransparentResult,
4669        fidl::encoding::DefaultFuchsiaResourceDialect,
4670    >;
4671    fn r#set_ip_transparent(&self, mut value: bool) -> Self::SetIpTransparentResponseFut {
4672        fn _decode(
4673            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4674        ) -> Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error> {
4675            let _response = fidl::client::decode_transaction_body::<
4676                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4677                fidl::encoding::DefaultFuchsiaResourceDialect,
4678                0x1ae532b0c066e3a0,
4679            >(_buf?)?;
4680            Ok(_response.map(|x| x))
4681        }
4682        self.client.send_query_and_decode::<
4683            BaseNetworkSocketSetIpTransparentRequest,
4684            BaseNetworkSocketSetIpTransparentResult,
4685        >(
4686            (value,),
4687            0x1ae532b0c066e3a0,
4688            fidl::encoding::DynamicFlags::empty(),
4689            _decode,
4690        )
4691    }
4692
4693    type GetIpTransparentResponseFut = fidl::client::QueryResponseFut<
4694        BaseNetworkSocketGetIpTransparentResult,
4695        fidl::encoding::DefaultFuchsiaResourceDialect,
4696    >;
4697    fn r#get_ip_transparent(&self) -> Self::GetIpTransparentResponseFut {
4698        fn _decode(
4699            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4700        ) -> Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error> {
4701            let _response = fidl::client::decode_transaction_body::<
4702                fidl::encoding::ResultType<
4703                    BaseNetworkSocketGetIpTransparentResponse,
4704                    fidl_fuchsia_posix::Errno,
4705                >,
4706                fidl::encoding::DefaultFuchsiaResourceDialect,
4707                0x51d43695962ebfb5,
4708            >(_buf?)?;
4709            Ok(_response.map(|x| x.value))
4710        }
4711        self.client.send_query_and_decode::<
4712            fidl::encoding::EmptyPayload,
4713            BaseNetworkSocketGetIpTransparentResult,
4714        >(
4715            (),
4716            0x51d43695962ebfb5,
4717            fidl::encoding::DynamicFlags::empty(),
4718            _decode,
4719        )
4720    }
4721
4722    type SetIpReceiveOriginalDestinationAddressResponseFut = fidl::client::QueryResponseFut<
4723        BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
4724        fidl::encoding::DefaultFuchsiaResourceDialect,
4725    >;
4726    fn r#set_ip_receive_original_destination_address(
4727        &self,
4728        mut value: bool,
4729    ) -> Self::SetIpReceiveOriginalDestinationAddressResponseFut {
4730        fn _decode(
4731            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4732        ) -> Result<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult, fidl::Error>
4733        {
4734            let _response = fidl::client::decode_transaction_body::<
4735                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4736                fidl::encoding::DefaultFuchsiaResourceDialect,
4737                0x4722b4ce52f7840,
4738            >(_buf?)?;
4739            Ok(_response.map(|x| x))
4740        }
4741        self.client.send_query_and_decode::<
4742            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
4743            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
4744        >(
4745            (value,),
4746            0x4722b4ce52f7840,
4747            fidl::encoding::DynamicFlags::empty(),
4748            _decode,
4749        )
4750    }
4751
4752    type GetIpReceiveOriginalDestinationAddressResponseFut = fidl::client::QueryResponseFut<
4753        BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
4754        fidl::encoding::DefaultFuchsiaResourceDialect,
4755    >;
4756    fn r#get_ip_receive_original_destination_address(
4757        &self,
4758    ) -> Self::GetIpReceiveOriginalDestinationAddressResponseFut {
4759        fn _decode(
4760            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4761        ) -> Result<BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult, fidl::Error>
4762        {
4763            let _response = fidl::client::decode_transaction_body::<
4764                fidl::encoding::ResultType<
4765                    BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
4766                    fidl_fuchsia_posix::Errno,
4767                >,
4768                fidl::encoding::DefaultFuchsiaResourceDialect,
4769                0x2a0e7dc5d6bfdfe9,
4770            >(_buf?)?;
4771            Ok(_response.map(|x| x.value))
4772        }
4773        self.client.send_query_and_decode::<
4774            fidl::encoding::EmptyPayload,
4775            BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
4776        >(
4777            (),
4778            0x2a0e7dc5d6bfdfe9,
4779            fidl::encoding::DynamicFlags::empty(),
4780            _decode,
4781        )
4782    }
4783
4784    type AddIpv6MembershipResponseFut = fidl::client::QueryResponseFut<
4785        BaseNetworkSocketAddIpv6MembershipResult,
4786        fidl::encoding::DefaultFuchsiaResourceDialect,
4787    >;
4788    fn r#add_ipv6_membership(
4789        &self,
4790        mut membership: &Ipv6MulticastMembership,
4791    ) -> Self::AddIpv6MembershipResponseFut {
4792        fn _decode(
4793            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4794        ) -> Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error> {
4795            let _response = fidl::client::decode_transaction_body::<
4796                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4797                fidl::encoding::DefaultFuchsiaResourceDialect,
4798                0x7c94727acb4ea4b3,
4799            >(_buf?)?;
4800            Ok(_response.map(|x| x))
4801        }
4802        self.client.send_query_and_decode::<
4803            BaseNetworkSocketAddIpv6MembershipRequest,
4804            BaseNetworkSocketAddIpv6MembershipResult,
4805        >(
4806            (membership,),
4807            0x7c94727acb4ea4b3,
4808            fidl::encoding::DynamicFlags::empty(),
4809            _decode,
4810        )
4811    }
4812
4813    type DropIpv6MembershipResponseFut = fidl::client::QueryResponseFut<
4814        BaseNetworkSocketDropIpv6MembershipResult,
4815        fidl::encoding::DefaultFuchsiaResourceDialect,
4816    >;
4817    fn r#drop_ipv6_membership(
4818        &self,
4819        mut membership: &Ipv6MulticastMembership,
4820    ) -> Self::DropIpv6MembershipResponseFut {
4821        fn _decode(
4822            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4823        ) -> Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error> {
4824            let _response = fidl::client::decode_transaction_body::<
4825                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4826                fidl::encoding::DefaultFuchsiaResourceDialect,
4827                0x42104c70ccaba304,
4828            >(_buf?)?;
4829            Ok(_response.map(|x| x))
4830        }
4831        self.client.send_query_and_decode::<
4832            BaseNetworkSocketDropIpv6MembershipRequest,
4833            BaseNetworkSocketDropIpv6MembershipResult,
4834        >(
4835            (membership,),
4836            0x42104c70ccaba304,
4837            fidl::encoding::DynamicFlags::empty(),
4838            _decode,
4839        )
4840    }
4841
4842    type SetIpv6MulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
4843        BaseNetworkSocketSetIpv6MulticastInterfaceResult,
4844        fidl::encoding::DefaultFuchsiaResourceDialect,
4845    >;
4846    fn r#set_ipv6_multicast_interface(
4847        &self,
4848        mut value: u64,
4849    ) -> Self::SetIpv6MulticastInterfaceResponseFut {
4850        fn _decode(
4851            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4852        ) -> Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error> {
4853            let _response = fidl::client::decode_transaction_body::<
4854                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4855                fidl::encoding::DefaultFuchsiaResourceDialect,
4856                0x135f76db3774ab3b,
4857            >(_buf?)?;
4858            Ok(_response.map(|x| x))
4859        }
4860        self.client.send_query_and_decode::<
4861            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
4862            BaseNetworkSocketSetIpv6MulticastInterfaceResult,
4863        >(
4864            (value,),
4865            0x135f76db3774ab3b,
4866            fidl::encoding::DynamicFlags::empty(),
4867            _decode,
4868        )
4869    }
4870
4871    type GetIpv6MulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
4872        BaseNetworkSocketGetIpv6MulticastInterfaceResult,
4873        fidl::encoding::DefaultFuchsiaResourceDialect,
4874    >;
4875    fn r#get_ipv6_multicast_interface(&self) -> Self::GetIpv6MulticastInterfaceResponseFut {
4876        fn _decode(
4877            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4878        ) -> Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error> {
4879            let _response = fidl::client::decode_transaction_body::<
4880                fidl::encoding::ResultType<
4881                    BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
4882                    fidl_fuchsia_posix::Errno,
4883                >,
4884                fidl::encoding::DefaultFuchsiaResourceDialect,
4885                0x1f26fcdd348f1882,
4886            >(_buf?)?;
4887            Ok(_response.map(|x| x.value))
4888        }
4889        self.client.send_query_and_decode::<
4890            fidl::encoding::EmptyPayload,
4891            BaseNetworkSocketGetIpv6MulticastInterfaceResult,
4892        >(
4893            (),
4894            0x1f26fcdd348f1882,
4895            fidl::encoding::DynamicFlags::empty(),
4896            _decode,
4897        )
4898    }
4899
4900    type SetIpv6UnicastHopsResponseFut = fidl::client::QueryResponseFut<
4901        BaseNetworkSocketSetIpv6UnicastHopsResult,
4902        fidl::encoding::DefaultFuchsiaResourceDialect,
4903    >;
4904    fn r#set_ipv6_unicast_hops(
4905        &self,
4906        mut value: &OptionalUint8,
4907    ) -> Self::SetIpv6UnicastHopsResponseFut {
4908        fn _decode(
4909            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4910        ) -> Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error> {
4911            let _response = fidl::client::decode_transaction_body::<
4912                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4913                fidl::encoding::DefaultFuchsiaResourceDialect,
4914                0x157d51e98f462859,
4915            >(_buf?)?;
4916            Ok(_response.map(|x| x))
4917        }
4918        self.client.send_query_and_decode::<
4919            BaseNetworkSocketSetIpv6UnicastHopsRequest,
4920            BaseNetworkSocketSetIpv6UnicastHopsResult,
4921        >(
4922            (value,),
4923            0x157d51e98f462859,
4924            fidl::encoding::DynamicFlags::empty(),
4925            _decode,
4926        )
4927    }
4928
4929    type GetIpv6UnicastHopsResponseFut = fidl::client::QueryResponseFut<
4930        BaseNetworkSocketGetIpv6UnicastHopsResult,
4931        fidl::encoding::DefaultFuchsiaResourceDialect,
4932    >;
4933    fn r#get_ipv6_unicast_hops(&self) -> Self::GetIpv6UnicastHopsResponseFut {
4934        fn _decode(
4935            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4936        ) -> Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error> {
4937            let _response = fidl::client::decode_transaction_body::<
4938                fidl::encoding::ResultType<
4939                    BaseNetworkSocketGetIpv6UnicastHopsResponse,
4940                    fidl_fuchsia_posix::Errno,
4941                >,
4942                fidl::encoding::DefaultFuchsiaResourceDialect,
4943                0x21f4641cad8bd8d2,
4944            >(_buf?)?;
4945            Ok(_response.map(|x| x.value))
4946        }
4947        self.client.send_query_and_decode::<
4948            fidl::encoding::EmptyPayload,
4949            BaseNetworkSocketGetIpv6UnicastHopsResult,
4950        >(
4951            (),
4952            0x21f4641cad8bd8d2,
4953            fidl::encoding::DynamicFlags::empty(),
4954            _decode,
4955        )
4956    }
4957
4958    type SetIpv6ReceiveHopLimitResponseFut = fidl::client::QueryResponseFut<
4959        BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
4960        fidl::encoding::DefaultFuchsiaResourceDialect,
4961    >;
4962    fn r#set_ipv6_receive_hop_limit(
4963        &self,
4964        mut value: bool,
4965    ) -> Self::SetIpv6ReceiveHopLimitResponseFut {
4966        fn _decode(
4967            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4968        ) -> Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error> {
4969            let _response = fidl::client::decode_transaction_body::<
4970                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4971                fidl::encoding::DefaultFuchsiaResourceDialect,
4972                0x5c24808ed2e84a1e,
4973            >(_buf?)?;
4974            Ok(_response.map(|x| x))
4975        }
4976        self.client.send_query_and_decode::<
4977            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
4978            BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
4979        >(
4980            (value,),
4981            0x5c24808ed2e84a1e,
4982            fidl::encoding::DynamicFlags::empty(),
4983            _decode,
4984        )
4985    }
4986
4987    type GetIpv6ReceiveHopLimitResponseFut = fidl::client::QueryResponseFut<
4988        BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
4989        fidl::encoding::DefaultFuchsiaResourceDialect,
4990    >;
4991    fn r#get_ipv6_receive_hop_limit(&self) -> Self::GetIpv6ReceiveHopLimitResponseFut {
4992        fn _decode(
4993            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4994        ) -> Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error> {
4995            let _response = fidl::client::decode_transaction_body::<
4996                fidl::encoding::ResultType<
4997                    BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
4998                    fidl_fuchsia_posix::Errno,
4999                >,
5000                fidl::encoding::DefaultFuchsiaResourceDialect,
5001                0x341e06689885b4c0,
5002            >(_buf?)?;
5003            Ok(_response.map(|x| x.value))
5004        }
5005        self.client.send_query_and_decode::<
5006            fidl::encoding::EmptyPayload,
5007            BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
5008        >(
5009            (),
5010            0x341e06689885b4c0,
5011            fidl::encoding::DynamicFlags::empty(),
5012            _decode,
5013        )
5014    }
5015
5016    type SetIpv6MulticastHopsResponseFut = fidl::client::QueryResponseFut<
5017        BaseNetworkSocketSetIpv6MulticastHopsResult,
5018        fidl::encoding::DefaultFuchsiaResourceDialect,
5019    >;
5020    fn r#set_ipv6_multicast_hops(
5021        &self,
5022        mut value: &OptionalUint8,
5023    ) -> Self::SetIpv6MulticastHopsResponseFut {
5024        fn _decode(
5025            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5026        ) -> Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error> {
5027            let _response = fidl::client::decode_transaction_body::<
5028                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
5029                fidl::encoding::DefaultFuchsiaResourceDialect,
5030                0x25b9cd4d181f82c1,
5031            >(_buf?)?;
5032            Ok(_response.map(|x| x))
5033        }
5034        self.client.send_query_and_decode::<
5035            BaseNetworkSocketSetIpv6MulticastHopsRequest,
5036            BaseNetworkSocketSetIpv6MulticastHopsResult,
5037        >(
5038            (value,),
5039            0x25b9cd4d181f82c1,
5040            fidl::encoding::DynamicFlags::empty(),
5041            _decode,
5042        )
5043    }
5044
5045    type GetIpv6MulticastHopsResponseFut = fidl::client::QueryResponseFut<
5046        BaseNetworkSocketGetIpv6MulticastHopsResult,
5047        fidl::encoding::DefaultFuchsiaResourceDialect,
5048    >;
5049    fn r#get_ipv6_multicast_hops(&self) -> Self::GetIpv6MulticastHopsResponseFut {
5050        fn _decode(
5051            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5052        ) -> Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error> {
5053            let _response = fidl::client::decode_transaction_body::<
5054                fidl::encoding::ResultType<
5055                    BaseNetworkSocketGetIpv6MulticastHopsResponse,
5056                    fidl_fuchsia_posix::Errno,
5057                >,
5058                fidl::encoding::DefaultFuchsiaResourceDialect,
5059                0x52916948a365012a,
5060            >(_buf?)?;
5061            Ok(_response.map(|x| x.value))
5062        }
5063        self.client.send_query_and_decode::<
5064            fidl::encoding::EmptyPayload,
5065            BaseNetworkSocketGetIpv6MulticastHopsResult,
5066        >(
5067            (),
5068            0x52916948a365012a,
5069            fidl::encoding::DynamicFlags::empty(),
5070            _decode,
5071        )
5072    }
5073
5074    type SetIpv6MulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
5075        BaseNetworkSocketSetIpv6MulticastLoopbackResult,
5076        fidl::encoding::DefaultFuchsiaResourceDialect,
5077    >;
5078    fn r#set_ipv6_multicast_loopback(
5079        &self,
5080        mut value: bool,
5081    ) -> Self::SetIpv6MulticastLoopbackResponseFut {
5082        fn _decode(
5083            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5084        ) -> Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error> {
5085            let _response = fidl::client::decode_transaction_body::<
5086                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
5087                fidl::encoding::DefaultFuchsiaResourceDialect,
5088                0x55701c409ff41b40,
5089            >(_buf?)?;
5090            Ok(_response.map(|x| x))
5091        }
5092        self.client.send_query_and_decode::<
5093            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
5094            BaseNetworkSocketSetIpv6MulticastLoopbackResult,
5095        >(
5096            (value,),
5097            0x55701c409ff41b40,
5098            fidl::encoding::DynamicFlags::empty(),
5099            _decode,
5100        )
5101    }
5102
5103    type GetIpv6MulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
5104        BaseNetworkSocketGetIpv6MulticastLoopbackResult,
5105        fidl::encoding::DefaultFuchsiaResourceDialect,
5106    >;
5107    fn r#get_ipv6_multicast_loopback(&self) -> Self::GetIpv6MulticastLoopbackResponseFut {
5108        fn _decode(
5109            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5110        ) -> Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error> {
5111            let _response = fidl::client::decode_transaction_body::<
5112                fidl::encoding::ResultType<
5113                    BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
5114                    fidl_fuchsia_posix::Errno,
5115                >,
5116                fidl::encoding::DefaultFuchsiaResourceDialect,
5117                0x4415b701fde319c3,
5118            >(_buf?)?;
5119            Ok(_response.map(|x| x.value))
5120        }
5121        self.client.send_query_and_decode::<
5122            fidl::encoding::EmptyPayload,
5123            BaseNetworkSocketGetIpv6MulticastLoopbackResult,
5124        >(
5125            (),
5126            0x4415b701fde319c3,
5127            fidl::encoding::DynamicFlags::empty(),
5128            _decode,
5129        )
5130    }
5131
5132    type SetIpv6OnlyResponseFut = fidl::client::QueryResponseFut<
5133        BaseNetworkSocketSetIpv6OnlyResult,
5134        fidl::encoding::DefaultFuchsiaResourceDialect,
5135    >;
5136    fn r#set_ipv6_only(&self, mut value: bool) -> Self::SetIpv6OnlyResponseFut {
5137        fn _decode(
5138            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5139        ) -> Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error> {
5140            let _response = fidl::client::decode_transaction_body::<
5141                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
5142                fidl::encoding::DefaultFuchsiaResourceDialect,
5143                0x4873f1364758cbba,
5144            >(_buf?)?;
5145            Ok(_response.map(|x| x))
5146        }
5147        self.client.send_query_and_decode::<
5148            BaseNetworkSocketSetIpv6OnlyRequest,
5149            BaseNetworkSocketSetIpv6OnlyResult,
5150        >(
5151            (value,),
5152            0x4873f1364758cbba,
5153            fidl::encoding::DynamicFlags::empty(),
5154            _decode,
5155        )
5156    }
5157
5158    type GetIpv6OnlyResponseFut = fidl::client::QueryResponseFut<
5159        BaseNetworkSocketGetIpv6OnlyResult,
5160        fidl::encoding::DefaultFuchsiaResourceDialect,
5161    >;
5162    fn r#get_ipv6_only(&self) -> Self::GetIpv6OnlyResponseFut {
5163        fn _decode(
5164            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5165        ) -> Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error> {
5166            let _response = fidl::client::decode_transaction_body::<
5167                fidl::encoding::ResultType<
5168                    BaseNetworkSocketGetIpv6OnlyResponse,
5169                    fidl_fuchsia_posix::Errno,
5170                >,
5171                fidl::encoding::DefaultFuchsiaResourceDialect,
5172                0x4aa3340a1a26b89c,
5173            >(_buf?)?;
5174            Ok(_response.map(|x| x.value))
5175        }
5176        self.client.send_query_and_decode::<
5177            fidl::encoding::EmptyPayload,
5178            BaseNetworkSocketGetIpv6OnlyResult,
5179        >(
5180            (),
5181            0x4aa3340a1a26b89c,
5182            fidl::encoding::DynamicFlags::empty(),
5183            _decode,
5184        )
5185    }
5186
5187    type SetIpv6ReceiveTrafficClassResponseFut = fidl::client::QueryResponseFut<
5188        BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
5189        fidl::encoding::DefaultFuchsiaResourceDialect,
5190    >;
5191    fn r#set_ipv6_receive_traffic_class(
5192        &self,
5193        mut value: bool,
5194    ) -> Self::SetIpv6ReceiveTrafficClassResponseFut {
5195        fn _decode(
5196            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5197        ) -> Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error> {
5198            let _response = fidl::client::decode_transaction_body::<
5199                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
5200                fidl::encoding::DefaultFuchsiaResourceDialect,
5201                0x58f07c8788d099a0,
5202            >(_buf?)?;
5203            Ok(_response.map(|x| x))
5204        }
5205        self.client.send_query_and_decode::<
5206            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
5207            BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
5208        >(
5209            (value,),
5210            0x58f07c8788d099a0,
5211            fidl::encoding::DynamicFlags::empty(),
5212            _decode,
5213        )
5214    }
5215
5216    type GetIpv6ReceiveTrafficClassResponseFut = fidl::client::QueryResponseFut<
5217        BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
5218        fidl::encoding::DefaultFuchsiaResourceDialect,
5219    >;
5220    fn r#get_ipv6_receive_traffic_class(&self) -> Self::GetIpv6ReceiveTrafficClassResponseFut {
5221        fn _decode(
5222            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5223        ) -> Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error> {
5224            let _response = fidl::client::decode_transaction_body::<
5225                fidl::encoding::ResultType<
5226                    BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
5227                    fidl_fuchsia_posix::Errno,
5228                >,
5229                fidl::encoding::DefaultFuchsiaResourceDialect,
5230                0x2e334df1da553ffa,
5231            >(_buf?)?;
5232            Ok(_response.map(|x| x.value))
5233        }
5234        self.client.send_query_and_decode::<
5235            fidl::encoding::EmptyPayload,
5236            BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
5237        >(
5238            (),
5239            0x2e334df1da553ffa,
5240            fidl::encoding::DynamicFlags::empty(),
5241            _decode,
5242        )
5243    }
5244
5245    type SetIpv6TrafficClassResponseFut = fidl::client::QueryResponseFut<
5246        BaseNetworkSocketSetIpv6TrafficClassResult,
5247        fidl::encoding::DefaultFuchsiaResourceDialect,
5248    >;
5249    fn r#set_ipv6_traffic_class(
5250        &self,
5251        mut value: &OptionalUint8,
5252    ) -> Self::SetIpv6TrafficClassResponseFut {
5253        fn _decode(
5254            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5255        ) -> Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error> {
5256            let _response = fidl::client::decode_transaction_body::<
5257                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
5258                fidl::encoding::DefaultFuchsiaResourceDialect,
5259                0x6af077800c5a0b4f,
5260            >(_buf?)?;
5261            Ok(_response.map(|x| x))
5262        }
5263        self.client.send_query_and_decode::<
5264            BaseNetworkSocketSetIpv6TrafficClassRequest,
5265            BaseNetworkSocketSetIpv6TrafficClassResult,
5266        >(
5267            (value,),
5268            0x6af077800c5a0b4f,
5269            fidl::encoding::DynamicFlags::empty(),
5270            _decode,
5271        )
5272    }
5273
5274    type GetIpv6TrafficClassResponseFut = fidl::client::QueryResponseFut<
5275        BaseNetworkSocketGetIpv6TrafficClassResult,
5276        fidl::encoding::DefaultFuchsiaResourceDialect,
5277    >;
5278    fn r#get_ipv6_traffic_class(&self) -> Self::GetIpv6TrafficClassResponseFut {
5279        fn _decode(
5280            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5281        ) -> Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error> {
5282            let _response = fidl::client::decode_transaction_body::<
5283                fidl::encoding::ResultType<
5284                    BaseNetworkSocketGetIpv6TrafficClassResponse,
5285                    fidl_fuchsia_posix::Errno,
5286                >,
5287                fidl::encoding::DefaultFuchsiaResourceDialect,
5288                0x6baf6eed8fc2f04,
5289            >(_buf?)?;
5290            Ok(_response.map(|x| x.value))
5291        }
5292        self.client.send_query_and_decode::<
5293            fidl::encoding::EmptyPayload,
5294            BaseNetworkSocketGetIpv6TrafficClassResult,
5295        >(
5296            (),
5297            0x6baf6eed8fc2f04,
5298            fidl::encoding::DynamicFlags::empty(),
5299            _decode,
5300        )
5301    }
5302
5303    type SetIpv6ReceivePacketInfoResponseFut = fidl::client::QueryResponseFut<
5304        BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
5305        fidl::encoding::DefaultFuchsiaResourceDialect,
5306    >;
5307    fn r#set_ipv6_receive_packet_info(
5308        &self,
5309        mut value: bool,
5310    ) -> Self::SetIpv6ReceivePacketInfoResponseFut {
5311        fn _decode(
5312            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5313        ) -> Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error> {
5314            let _response = fidl::client::decode_transaction_body::<
5315                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
5316                fidl::encoding::DefaultFuchsiaResourceDialect,
5317                0x19259775b1a92768,
5318            >(_buf?)?;
5319            Ok(_response.map(|x| x))
5320        }
5321        self.client.send_query_and_decode::<
5322            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
5323            BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
5324        >(
5325            (value,),
5326            0x19259775b1a92768,
5327            fidl::encoding::DynamicFlags::empty(),
5328            _decode,
5329        )
5330    }
5331
5332    type GetIpv6ReceivePacketInfoResponseFut = fidl::client::QueryResponseFut<
5333        BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
5334        fidl::encoding::DefaultFuchsiaResourceDialect,
5335    >;
5336    fn r#get_ipv6_receive_packet_info(&self) -> Self::GetIpv6ReceivePacketInfoResponseFut {
5337        fn _decode(
5338            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5339        ) -> Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error> {
5340            let _response = fidl::client::decode_transaction_body::<
5341                fidl::encoding::ResultType<
5342                    BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
5343                    fidl_fuchsia_posix::Errno,
5344                >,
5345                fidl::encoding::DefaultFuchsiaResourceDialect,
5346                0x7acd4a2775baec75,
5347            >(_buf?)?;
5348            Ok(_response.map(|x| x.value))
5349        }
5350        self.client.send_query_and_decode::<
5351            fidl::encoding::EmptyPayload,
5352            BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
5353        >(
5354            (),
5355            0x7acd4a2775baec75,
5356            fidl::encoding::DynamicFlags::empty(),
5357            _decode,
5358        )
5359    }
5360
5361    type GetOriginalDestinationResponseFut = fidl::client::QueryResponseFut<
5362        BaseNetworkSocketGetOriginalDestinationResult,
5363        fidl::encoding::DefaultFuchsiaResourceDialect,
5364    >;
5365    fn r#get_original_destination(&self) -> Self::GetOriginalDestinationResponseFut {
5366        fn _decode(
5367            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5368        ) -> Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error> {
5369            let _response = fidl::client::decode_transaction_body::<
5370                fidl::encoding::ResultType<
5371                    BaseNetworkSocketGetOriginalDestinationResponse,
5372                    fidl_fuchsia_posix::Errno,
5373                >,
5374                fidl::encoding::DefaultFuchsiaResourceDialect,
5375                0x38bf28f0dafdbac0,
5376            >(_buf?)?;
5377            Ok(_response.map(|x| x.value))
5378        }
5379        self.client.send_query_and_decode::<
5380            fidl::encoding::EmptyPayload,
5381            BaseNetworkSocketGetOriginalDestinationResult,
5382        >(
5383            (),
5384            0x38bf28f0dafdbac0,
5385            fidl::encoding::DynamicFlags::empty(),
5386            _decode,
5387        )
5388    }
5389
5390    type GetInfoResponseFut = fidl::client::QueryResponseFut<
5391        BaseDatagramSocketGetInfoResult,
5392        fidl::encoding::DefaultFuchsiaResourceDialect,
5393    >;
5394    fn r#get_info(&self) -> Self::GetInfoResponseFut {
5395        fn _decode(
5396            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5397        ) -> Result<BaseDatagramSocketGetInfoResult, fidl::Error> {
5398            let _response = fidl::client::decode_transaction_body::<
5399                fidl::encoding::ResultType<
5400                    BaseDatagramSocketGetInfoResponse,
5401                    fidl_fuchsia_posix::Errno,
5402                >,
5403                fidl::encoding::DefaultFuchsiaResourceDialect,
5404                0x48aa0a1f6a32d2ed,
5405            >(_buf?)?;
5406            Ok(_response.map(|x| (x.domain, x.proto)))
5407        }
5408        self.client
5409            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseDatagramSocketGetInfoResult>(
5410                (),
5411                0x48aa0a1f6a32d2ed,
5412                fidl::encoding::DynamicFlags::empty(),
5413                _decode,
5414            )
5415    }
5416}
5417
5418pub struct BaseDatagramSocketEventStream {
5419    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
5420}
5421
5422impl std::marker::Unpin for BaseDatagramSocketEventStream {}
5423
5424impl futures::stream::FusedStream for BaseDatagramSocketEventStream {
5425    fn is_terminated(&self) -> bool {
5426        self.event_receiver.is_terminated()
5427    }
5428}
5429
5430impl futures::Stream for BaseDatagramSocketEventStream {
5431    type Item = Result<BaseDatagramSocketEvent, fidl::Error>;
5432
5433    fn poll_next(
5434        mut self: std::pin::Pin<&mut Self>,
5435        cx: &mut std::task::Context<'_>,
5436    ) -> std::task::Poll<Option<Self::Item>> {
5437        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
5438            &mut self.event_receiver,
5439            cx
5440        )?) {
5441            Some(buf) => std::task::Poll::Ready(Some(BaseDatagramSocketEvent::decode(buf))),
5442            None => std::task::Poll::Ready(None),
5443        }
5444    }
5445}
5446
5447#[derive(Debug)]
5448pub enum BaseDatagramSocketEvent {}
5449
5450impl BaseDatagramSocketEvent {
5451    /// Decodes a message buffer as a [`BaseDatagramSocketEvent`].
5452    fn decode(
5453        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
5454    ) -> Result<BaseDatagramSocketEvent, fidl::Error> {
5455        let (bytes, _handles) = buf.split_mut();
5456        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
5457        debug_assert_eq!(tx_header.tx_id, 0);
5458        match tx_header.ordinal {
5459            _ => Err(fidl::Error::UnknownOrdinal {
5460                ordinal: tx_header.ordinal,
5461                protocol_name:
5462                    <BaseDatagramSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
5463            }),
5464        }
5465    }
5466}
5467
5468/// A Stream of incoming requests for fuchsia.posix.socket/BaseDatagramSocket.
5469pub struct BaseDatagramSocketRequestStream {
5470    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
5471    is_terminated: bool,
5472}
5473
5474impl std::marker::Unpin for BaseDatagramSocketRequestStream {}
5475
5476impl futures::stream::FusedStream for BaseDatagramSocketRequestStream {
5477    fn is_terminated(&self) -> bool {
5478        self.is_terminated
5479    }
5480}
5481
5482impl fidl::endpoints::RequestStream for BaseDatagramSocketRequestStream {
5483    type Protocol = BaseDatagramSocketMarker;
5484    type ControlHandle = BaseDatagramSocketControlHandle;
5485
5486    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
5487        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
5488    }
5489
5490    fn control_handle(&self) -> Self::ControlHandle {
5491        BaseDatagramSocketControlHandle { inner: self.inner.clone() }
5492    }
5493
5494    fn into_inner(
5495        self,
5496    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
5497    {
5498        (self.inner, self.is_terminated)
5499    }
5500
5501    fn from_inner(
5502        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
5503        is_terminated: bool,
5504    ) -> Self {
5505        Self { inner, is_terminated }
5506    }
5507}
5508
5509impl futures::Stream for BaseDatagramSocketRequestStream {
5510    type Item = Result<BaseDatagramSocketRequest, fidl::Error>;
5511
5512    fn poll_next(
5513        mut self: std::pin::Pin<&mut Self>,
5514        cx: &mut std::task::Context<'_>,
5515    ) -> std::task::Poll<Option<Self::Item>> {
5516        let this = &mut *self;
5517        if this.inner.check_shutdown(cx) {
5518            this.is_terminated = true;
5519            return std::task::Poll::Ready(None);
5520        }
5521        if this.is_terminated {
5522            panic!("polled BaseDatagramSocketRequestStream after completion");
5523        }
5524        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
5525            |bytes, handles| {
5526                match this.inner.channel().read_etc(cx, bytes, handles) {
5527                    std::task::Poll::Ready(Ok(())) => {}
5528                    std::task::Poll::Pending => return std::task::Poll::Pending,
5529                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
5530                        this.is_terminated = true;
5531                        return std::task::Poll::Ready(None);
5532                    }
5533                    std::task::Poll::Ready(Err(e)) => {
5534                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
5535                            e.into(),
5536                        ))));
5537                    }
5538                }
5539
5540                // A message has been received from the channel
5541                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
5542
5543                std::task::Poll::Ready(Some(match header.ordinal {
5544                0x20d8a7aba2168a79 => {
5545                    header.validate_request_tx_id(fidl::MethodType::OneWay)?;
5546                    let mut req = fidl::new_empty!(fidl_fuchsia_unknown::CloneableCloneRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5547                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl_fuchsia_unknown::CloneableCloneRequest>(&header, _body_bytes, handles, &mut req)?;
5548                    let control_handle = BaseDatagramSocketControlHandle {
5549                        inner: this.inner.clone(),
5550                    };
5551                    Ok(BaseDatagramSocketRequest::Clone {request: req.request,
5552
5553                        control_handle,
5554                    })
5555                }
5556                0x5ac5d459ad7f657e => {
5557                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5558                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5559                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5560                    let control_handle = BaseDatagramSocketControlHandle {
5561                        inner: this.inner.clone(),
5562                    };
5563                    Ok(BaseDatagramSocketRequest::Close {
5564                        responder: BaseDatagramSocketCloseResponder {
5565                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5566                            tx_id: header.tx_id,
5567                        },
5568                    })
5569                }
5570                0x2658edee9decfc06 => {
5571                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5572                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5573                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5574                    let control_handle = BaseDatagramSocketControlHandle {
5575                        inner: this.inner.clone(),
5576                    };
5577                    Ok(BaseDatagramSocketRequest::Query {
5578                        responder: BaseDatagramSocketQueryResponder {
5579                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5580                            tx_id: header.tx_id,
5581                        },
5582                    })
5583                }
5584                0x1fd74ee8b9a4a876 => {
5585                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5586                    let mut req = fidl::new_empty!(BaseSocketSetReuseAddressRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5587                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReuseAddressRequest>(&header, _body_bytes, handles, &mut req)?;
5588                    let control_handle = BaseDatagramSocketControlHandle {
5589                        inner: this.inner.clone(),
5590                    };
5591                    Ok(BaseDatagramSocketRequest::SetReuseAddress {value: req.value,
5592
5593                        responder: BaseDatagramSocketSetReuseAddressResponder {
5594                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5595                            tx_id: header.tx_id,
5596                        },
5597                    })
5598                }
5599                0x67b7206b8d1bc0a5 => {
5600                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5601                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5602                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5603                    let control_handle = BaseDatagramSocketControlHandle {
5604                        inner: this.inner.clone(),
5605                    };
5606                    Ok(BaseDatagramSocketRequest::GetReuseAddress {
5607                        responder: BaseDatagramSocketGetReuseAddressResponder {
5608                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5609                            tx_id: header.tx_id,
5610                        },
5611                    })
5612                }
5613                0x5aad39b33e5f6ebb => {
5614                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5615                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5616                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5617                    let control_handle = BaseDatagramSocketControlHandle {
5618                        inner: this.inner.clone(),
5619                    };
5620                    Ok(BaseDatagramSocketRequest::GetError {
5621                        responder: BaseDatagramSocketGetErrorResponder {
5622                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5623                            tx_id: header.tx_id,
5624                        },
5625                    })
5626                }
5627                0x6023e081ce3cd947 => {
5628                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5629                    let mut req = fidl::new_empty!(BaseSocketSetBroadcastRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5630                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBroadcastRequest>(&header, _body_bytes, handles, &mut req)?;
5631                    let control_handle = BaseDatagramSocketControlHandle {
5632                        inner: this.inner.clone(),
5633                    };
5634                    Ok(BaseDatagramSocketRequest::SetBroadcast {value: req.value,
5635
5636                        responder: BaseDatagramSocketSetBroadcastResponder {
5637                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5638                            tx_id: header.tx_id,
5639                        },
5640                    })
5641                }
5642                0x68796fc556f9780d => {
5643                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5644                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5645                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5646                    let control_handle = BaseDatagramSocketControlHandle {
5647                        inner: this.inner.clone(),
5648                    };
5649                    Ok(BaseDatagramSocketRequest::GetBroadcast {
5650                        responder: BaseDatagramSocketGetBroadcastResponder {
5651                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5652                            tx_id: header.tx_id,
5653                        },
5654                    })
5655                }
5656                0x756eac32d73a7a70 => {
5657                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5658                    let mut req = fidl::new_empty!(BaseSocketSetSendBufferRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5659                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetSendBufferRequest>(&header, _body_bytes, handles, &mut req)?;
5660                    let control_handle = BaseDatagramSocketControlHandle {
5661                        inner: this.inner.clone(),
5662                    };
5663                    Ok(BaseDatagramSocketRequest::SetSendBuffer {value_bytes: req.value_bytes,
5664
5665                        responder: BaseDatagramSocketSetSendBufferResponder {
5666                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5667                            tx_id: header.tx_id,
5668                        },
5669                    })
5670                }
5671                0x78a52fd9c7b2410b => {
5672                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5673                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5674                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5675                    let control_handle = BaseDatagramSocketControlHandle {
5676                        inner: this.inner.clone(),
5677                    };
5678                    Ok(BaseDatagramSocketRequest::GetSendBuffer {
5679                        responder: BaseDatagramSocketGetSendBufferResponder {
5680                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5681                            tx_id: header.tx_id,
5682                        },
5683                    })
5684                }
5685                0x6b0cf2f1919c7001 => {
5686                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5687                    let mut req = fidl::new_empty!(BaseSocketSetReceiveBufferRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5688                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReceiveBufferRequest>(&header, _body_bytes, handles, &mut req)?;
5689                    let control_handle = BaseDatagramSocketControlHandle {
5690                        inner: this.inner.clone(),
5691                    };
5692                    Ok(BaseDatagramSocketRequest::SetReceiveBuffer {value_bytes: req.value_bytes,
5693
5694                        responder: BaseDatagramSocketSetReceiveBufferResponder {
5695                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5696                            tx_id: header.tx_id,
5697                        },
5698                    })
5699                }
5700                0x14c1a4b64f709e5c => {
5701                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5702                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5703                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5704                    let control_handle = BaseDatagramSocketControlHandle {
5705                        inner: this.inner.clone(),
5706                    };
5707                    Ok(BaseDatagramSocketRequest::GetReceiveBuffer {
5708                        responder: BaseDatagramSocketGetReceiveBufferResponder {
5709                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5710                            tx_id: header.tx_id,
5711                        },
5712                    })
5713                }
5714                0x572df8f0b920d2c7 => {
5715                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5716                    let mut req = fidl::new_empty!(BaseSocketSetKeepAliveRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5717                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetKeepAliveRequest>(&header, _body_bytes, handles, &mut req)?;
5718                    let control_handle = BaseDatagramSocketControlHandle {
5719                        inner: this.inner.clone(),
5720                    };
5721                    Ok(BaseDatagramSocketRequest::SetKeepAlive {value: req.value,
5722
5723                        responder: BaseDatagramSocketSetKeepAliveResponder {
5724                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5725                            tx_id: header.tx_id,
5726                        },
5727                    })
5728                }
5729                0x2dd29d3215f2c9d2 => {
5730                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5731                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5732                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5733                    let control_handle = BaseDatagramSocketControlHandle {
5734                        inner: this.inner.clone(),
5735                    };
5736                    Ok(BaseDatagramSocketRequest::GetKeepAlive {
5737                        responder: BaseDatagramSocketGetKeepAliveResponder {
5738                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5739                            tx_id: header.tx_id,
5740                        },
5741                    })
5742                }
5743                0x3ecb49968bee439 => {
5744                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5745                    let mut req = fidl::new_empty!(BaseSocketSetOutOfBandInlineRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5746                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetOutOfBandInlineRequest>(&header, _body_bytes, handles, &mut req)?;
5747                    let control_handle = BaseDatagramSocketControlHandle {
5748                        inner: this.inner.clone(),
5749                    };
5750                    Ok(BaseDatagramSocketRequest::SetOutOfBandInline {value: req.value,
5751
5752                        responder: BaseDatagramSocketSetOutOfBandInlineResponder {
5753                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5754                            tx_id: header.tx_id,
5755                        },
5756                    })
5757                }
5758                0x348c1ab3aeca1745 => {
5759                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5760                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5761                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5762                    let control_handle = BaseDatagramSocketControlHandle {
5763                        inner: this.inner.clone(),
5764                    };
5765                    Ok(BaseDatagramSocketRequest::GetOutOfBandInline {
5766                        responder: BaseDatagramSocketGetOutOfBandInlineResponder {
5767                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5768                            tx_id: header.tx_id,
5769                        },
5770                    })
5771                }
5772                0x6bbf00c53a4c78c2 => {
5773                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5774                    let mut req = fidl::new_empty!(BaseSocketSetNoCheckRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5775                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetNoCheckRequest>(&header, _body_bytes, handles, &mut req)?;
5776                    let control_handle = BaseDatagramSocketControlHandle {
5777                        inner: this.inner.clone(),
5778                    };
5779                    Ok(BaseDatagramSocketRequest::SetNoCheck {value: req.value,
5780
5781                        responder: BaseDatagramSocketSetNoCheckResponder {
5782                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5783                            tx_id: header.tx_id,
5784                        },
5785                    })
5786                }
5787                0x2cd4249286417694 => {
5788                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5789                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5790                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5791                    let control_handle = BaseDatagramSocketControlHandle {
5792                        inner: this.inner.clone(),
5793                    };
5794                    Ok(BaseDatagramSocketRequest::GetNoCheck {
5795                        responder: BaseDatagramSocketGetNoCheckResponder {
5796                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5797                            tx_id: header.tx_id,
5798                        },
5799                    })
5800                }
5801                0x45386351246e998e => {
5802                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5803                    let mut req = fidl::new_empty!(BaseSocketSetLingerRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5804                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetLingerRequest>(&header, _body_bytes, handles, &mut req)?;
5805                    let control_handle = BaseDatagramSocketControlHandle {
5806                        inner: this.inner.clone(),
5807                    };
5808                    Ok(BaseDatagramSocketRequest::SetLinger {linger: req.linger,
5809length_secs: req.length_secs,
5810
5811                        responder: BaseDatagramSocketSetLingerResponder {
5812                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5813                            tx_id: header.tx_id,
5814                        },
5815                    })
5816                }
5817                0x48eb20fc5ccb0e45 => {
5818                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5819                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5820                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5821                    let control_handle = BaseDatagramSocketControlHandle {
5822                        inner: this.inner.clone(),
5823                    };
5824                    Ok(BaseDatagramSocketRequest::GetLinger {
5825                        responder: BaseDatagramSocketGetLingerResponder {
5826                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5827                            tx_id: header.tx_id,
5828                        },
5829                    })
5830                }
5831                0x547dc9cc0455189e => {
5832                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5833                    let mut req = fidl::new_empty!(BaseSocketSetReusePortRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5834                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReusePortRequest>(&header, _body_bytes, handles, &mut req)?;
5835                    let control_handle = BaseDatagramSocketControlHandle {
5836                        inner: this.inner.clone(),
5837                    };
5838                    Ok(BaseDatagramSocketRequest::SetReusePort {value: req.value,
5839
5840                        responder: BaseDatagramSocketSetReusePortResponder {
5841                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5842                            tx_id: header.tx_id,
5843                        },
5844                    })
5845                }
5846                0x24dd3e5cb36d9ccb => {
5847                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5848                    let mut req = fidl::new_empty!(BaseSocketSetReusePortDeprecatedRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5849                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReusePortDeprecatedRequest>(&header, _body_bytes, handles, &mut req)?;
5850                    let control_handle = BaseDatagramSocketControlHandle {
5851                        inner: this.inner.clone(),
5852                    };
5853                    Ok(BaseDatagramSocketRequest::SetReusePortDeprecated {value: req.value,
5854
5855                        responder: BaseDatagramSocketSetReusePortDeprecatedResponder {
5856                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5857                            tx_id: header.tx_id,
5858                        },
5859                    })
5860                }
5861                0x7a112c1ab54ff828 => {
5862                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5863                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5864                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5865                    let control_handle = BaseDatagramSocketControlHandle {
5866                        inner: this.inner.clone(),
5867                    };
5868                    Ok(BaseDatagramSocketRequest::GetReusePort {
5869                        responder: BaseDatagramSocketGetReusePortResponder {
5870                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5871                            tx_id: header.tx_id,
5872                        },
5873                    })
5874                }
5875                0x67ce6db6c2ec8966 => {
5876                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5877                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5878                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5879                    let control_handle = BaseDatagramSocketControlHandle {
5880                        inner: this.inner.clone(),
5881                    };
5882                    Ok(BaseDatagramSocketRequest::GetAcceptConn {
5883                        responder: BaseDatagramSocketGetAcceptConnResponder {
5884                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5885                            tx_id: header.tx_id,
5886                        },
5887                    })
5888                }
5889                0x2118b483f28aafc4 => {
5890                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5891                    let mut req = fidl::new_empty!(BaseSocketSetBindToDeviceRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5892                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToDeviceRequest>(&header, _body_bytes, handles, &mut req)?;
5893                    let control_handle = BaseDatagramSocketControlHandle {
5894                        inner: this.inner.clone(),
5895                    };
5896                    Ok(BaseDatagramSocketRequest::SetBindToDevice {value: req.value,
5897
5898                        responder: BaseDatagramSocketSetBindToDeviceResponder {
5899                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5900                            tx_id: header.tx_id,
5901                        },
5902                    })
5903                }
5904                0x1ab1fbf0ef7906c8 => {
5905                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5906                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5907                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5908                    let control_handle = BaseDatagramSocketControlHandle {
5909                        inner: this.inner.clone(),
5910                    };
5911                    Ok(BaseDatagramSocketRequest::GetBindToDevice {
5912                        responder: BaseDatagramSocketGetBindToDeviceResponder {
5913                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5914                            tx_id: header.tx_id,
5915                        },
5916                    })
5917                }
5918                0x6e387a0def00821 => {
5919                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5920                    let mut req = fidl::new_empty!(BaseSocketSetBindToInterfaceIndexRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5921                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToInterfaceIndexRequest>(&header, _body_bytes, handles, &mut req)?;
5922                    let control_handle = BaseDatagramSocketControlHandle {
5923                        inner: this.inner.clone(),
5924                    };
5925                    Ok(BaseDatagramSocketRequest::SetBindToInterfaceIndex {value: req.value,
5926
5927                        responder: BaseDatagramSocketSetBindToInterfaceIndexResponder {
5928                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5929                            tx_id: header.tx_id,
5930                        },
5931                    })
5932                }
5933                0x59c31dd3e3078295 => {
5934                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5935                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5936                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5937                    let control_handle = BaseDatagramSocketControlHandle {
5938                        inner: this.inner.clone(),
5939                    };
5940                    Ok(BaseDatagramSocketRequest::GetBindToInterfaceIndex {
5941                        responder: BaseDatagramSocketGetBindToInterfaceIndexResponder {
5942                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5943                            tx_id: header.tx_id,
5944                        },
5945                    })
5946                }
5947                0x285d6516c263d839 => {
5948                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5949                    let mut req = fidl::new_empty!(BaseSocketSetTimestampRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5950                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetTimestampRequest>(&header, _body_bytes, handles, &mut req)?;
5951                    let control_handle = BaseDatagramSocketControlHandle {
5952                        inner: this.inner.clone(),
5953                    };
5954                    Ok(BaseDatagramSocketRequest::SetTimestamp {value: req.value,
5955
5956                        responder: BaseDatagramSocketSetTimestampResponder {
5957                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5958                            tx_id: header.tx_id,
5959                        },
5960                    })
5961                }
5962                0x49f2fffbbcc2bd27 => {
5963                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5964                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5965                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5966                    let control_handle = BaseDatagramSocketControlHandle {
5967                        inner: this.inner.clone(),
5968                    };
5969                    Ok(BaseDatagramSocketRequest::GetTimestamp {
5970                        responder: BaseDatagramSocketGetTimestampResponder {
5971                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5972                            tx_id: header.tx_id,
5973                        },
5974                    })
5975                }
5976                0x6ead6de09f653236 => {
5977                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5978                    let mut req = fidl::new_empty!(BaseSocketSetMarkRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5979                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
5980                    let control_handle = BaseDatagramSocketControlHandle {
5981                        inner: this.inner.clone(),
5982                    };
5983                    Ok(BaseDatagramSocketRequest::SetMark {domain: req.domain,
5984mark: req.mark,
5985
5986                        responder: BaseDatagramSocketSetMarkResponder {
5987                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5988                            tx_id: header.tx_id,
5989                        },
5990                    })
5991                }
5992                0x57a2752c61d93d47 => {
5993                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5994                    let mut req = fidl::new_empty!(BaseSocketGetMarkRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5995                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketGetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
5996                    let control_handle = BaseDatagramSocketControlHandle {
5997                        inner: this.inner.clone(),
5998                    };
5999                    Ok(BaseDatagramSocketRequest::GetMark {domain: req.domain,
6000
6001                        responder: BaseDatagramSocketGetMarkResponder {
6002                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6003                            tx_id: header.tx_id,
6004                        },
6005                    })
6006                }
6007                0x2c2f47fd8f924e52 => {
6008                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6009                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6010                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6011                    let control_handle = BaseDatagramSocketControlHandle {
6012                        inner: this.inner.clone(),
6013                    };
6014                    Ok(BaseDatagramSocketRequest::GetCookie {
6015                        responder: BaseDatagramSocketGetCookieResponder {
6016                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6017                            tx_id: header.tx_id,
6018                        },
6019                    })
6020                }
6021                0x4bc6400ae92125d => {
6022                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6023                    let mut req = fidl::new_empty!(BaseNetworkSocketBindRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6024                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketBindRequest>(&header, _body_bytes, handles, &mut req)?;
6025                    let control_handle = BaseDatagramSocketControlHandle {
6026                        inner: this.inner.clone(),
6027                    };
6028                    Ok(BaseDatagramSocketRequest::Bind {addr: req.addr,
6029
6030                        responder: BaseDatagramSocketBindResponder {
6031                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6032                            tx_id: header.tx_id,
6033                        },
6034                    })
6035                }
6036                0x5f05f19bfdd38871 => {
6037                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6038                    let mut req = fidl::new_empty!(BaseNetworkSocketConnectRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6039                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketConnectRequest>(&header, _body_bytes, handles, &mut req)?;
6040                    let control_handle = BaseDatagramSocketControlHandle {
6041                        inner: this.inner.clone(),
6042                    };
6043                    Ok(BaseDatagramSocketRequest::Connect {addr: req.addr,
6044
6045                        responder: BaseDatagramSocketConnectResponder {
6046                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6047                            tx_id: header.tx_id,
6048                        },
6049                    })
6050                }
6051                0x74e63b91f7b29b2 => {
6052                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6053                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6054                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6055                    let control_handle = BaseDatagramSocketControlHandle {
6056                        inner: this.inner.clone(),
6057                    };
6058                    Ok(BaseDatagramSocketRequest::Disconnect {
6059                        responder: BaseDatagramSocketDisconnectResponder {
6060                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6061                            tx_id: header.tx_id,
6062                        },
6063                    })
6064                }
6065                0x475f23f84a1a4f85 => {
6066                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6067                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6068                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6069                    let control_handle = BaseDatagramSocketControlHandle {
6070                        inner: this.inner.clone(),
6071                    };
6072                    Ok(BaseDatagramSocketRequest::GetSockName {
6073                        responder: BaseDatagramSocketGetSockNameResponder {
6074                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6075                            tx_id: header.tx_id,
6076                        },
6077                    })
6078                }
6079                0x1ffecf4bd5b6432e => {
6080                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6081                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6082                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6083                    let control_handle = BaseDatagramSocketControlHandle {
6084                        inner: this.inner.clone(),
6085                    };
6086                    Ok(BaseDatagramSocketRequest::GetPeerName {
6087                        responder: BaseDatagramSocketGetPeerNameResponder {
6088                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6089                            tx_id: header.tx_id,
6090                        },
6091                    })
6092                }
6093                0x247f38b6db68c336 => {
6094                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6095                    let mut req = fidl::new_empty!(BaseNetworkSocketShutdownRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6096                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketShutdownRequest>(&header, _body_bytes, handles, &mut req)?;
6097                    let control_handle = BaseDatagramSocketControlHandle {
6098                        inner: this.inner.clone(),
6099                    };
6100                    Ok(BaseDatagramSocketRequest::Shutdown {mode: req.mode,
6101
6102                        responder: BaseDatagramSocketShutdownResponder {
6103                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6104                            tx_id: header.tx_id,
6105                        },
6106                    })
6107                }
6108                0x995c600475b6d46 => {
6109                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6110                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpTypeOfServiceRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6111                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTypeOfServiceRequest>(&header, _body_bytes, handles, &mut req)?;
6112                    let control_handle = BaseDatagramSocketControlHandle {
6113                        inner: this.inner.clone(),
6114                    };
6115                    Ok(BaseDatagramSocketRequest::SetIpTypeOfService {value: req.value,
6116
6117                        responder: BaseDatagramSocketSetIpTypeOfServiceResponder {
6118                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6119                            tx_id: header.tx_id,
6120                        },
6121                    })
6122                }
6123                0x3814a04259f75fcb => {
6124                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6125                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6126                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6127                    let control_handle = BaseDatagramSocketControlHandle {
6128                        inner: this.inner.clone(),
6129                    };
6130                    Ok(BaseDatagramSocketRequest::GetIpTypeOfService {
6131                        responder: BaseDatagramSocketGetIpTypeOfServiceResponder {
6132                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6133                            tx_id: header.tx_id,
6134                        },
6135                    })
6136                }
6137                0x29e2424b433ae1ef => {
6138                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6139                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpTtlRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6140                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTtlRequest>(&header, _body_bytes, handles, &mut req)?;
6141                    let control_handle = BaseDatagramSocketControlHandle {
6142                        inner: this.inner.clone(),
6143                    };
6144                    Ok(BaseDatagramSocketRequest::SetIpTtl {value: req.value,
6145
6146                        responder: BaseDatagramSocketSetIpTtlResponder {
6147                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6148                            tx_id: header.tx_id,
6149                        },
6150                    })
6151                }
6152                0x47e47fa1f24da471 => {
6153                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6154                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6155                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6156                    let control_handle = BaseDatagramSocketControlHandle {
6157                        inner: this.inner.clone(),
6158                    };
6159                    Ok(BaseDatagramSocketRequest::GetIpTtl {
6160                        responder: BaseDatagramSocketGetIpTtlResponder {
6161                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6162                            tx_id: header.tx_id,
6163                        },
6164                    })
6165                }
6166                0x392d16bee20c0e16 => {
6167                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6168                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpPacketInfoRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6169                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpPacketInfoRequest>(&header, _body_bytes, handles, &mut req)?;
6170                    let control_handle = BaseDatagramSocketControlHandle {
6171                        inner: this.inner.clone(),
6172                    };
6173                    Ok(BaseDatagramSocketRequest::SetIpPacketInfo {value: req.value,
6174
6175                        responder: BaseDatagramSocketSetIpPacketInfoResponder {
6176                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6177                            tx_id: header.tx_id,
6178                        },
6179                    })
6180                }
6181                0x54b505f242280740 => {
6182                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6183                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6184                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6185                    let control_handle = BaseDatagramSocketControlHandle {
6186                        inner: this.inner.clone(),
6187                    };
6188                    Ok(BaseDatagramSocketRequest::GetIpPacketInfo {
6189                        responder: BaseDatagramSocketGetIpPacketInfoResponder {
6190                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6191                            tx_id: header.tx_id,
6192                        },
6193                    })
6194                }
6195                0x6c4f6714995f84ef => {
6196                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6197                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpReceiveTypeOfServiceRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6198                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveTypeOfServiceRequest>(&header, _body_bytes, handles, &mut req)?;
6199                    let control_handle = BaseDatagramSocketControlHandle {
6200                        inner: this.inner.clone(),
6201                    };
6202                    Ok(BaseDatagramSocketRequest::SetIpReceiveTypeOfService {value: req.value,
6203
6204                        responder: BaseDatagramSocketSetIpReceiveTypeOfServiceResponder {
6205                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6206                            tx_id: header.tx_id,
6207                        },
6208                    })
6209                }
6210                0x4158ba7dc2795960 => {
6211                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6212                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6213                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6214                    let control_handle = BaseDatagramSocketControlHandle {
6215                        inner: this.inner.clone(),
6216                    };
6217                    Ok(BaseDatagramSocketRequest::GetIpReceiveTypeOfService {
6218                        responder: BaseDatagramSocketGetIpReceiveTypeOfServiceResponder {
6219                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6220                            tx_id: header.tx_id,
6221                        },
6222                    })
6223                }
6224                0x46f15be0ce0ab82b => {
6225                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6226                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpReceiveTtlRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6227                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveTtlRequest>(&header, _body_bytes, handles, &mut req)?;
6228                    let control_handle = BaseDatagramSocketControlHandle {
6229                        inner: this.inner.clone(),
6230                    };
6231                    Ok(BaseDatagramSocketRequest::SetIpReceiveTtl {value: req.value,
6232
6233                        responder: BaseDatagramSocketSetIpReceiveTtlResponder {
6234                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6235                            tx_id: header.tx_id,
6236                        },
6237                    })
6238                }
6239                0x678ddd5a5dfa2eb5 => {
6240                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6241                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6242                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6243                    let control_handle = BaseDatagramSocketControlHandle {
6244                        inner: this.inner.clone(),
6245                    };
6246                    Ok(BaseDatagramSocketRequest::GetIpReceiveTtl {
6247                        responder: BaseDatagramSocketGetIpReceiveTtlResponder {
6248                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6249                            tx_id: header.tx_id,
6250                        },
6251                    })
6252                }
6253                0x752fbfa9b12befe => {
6254                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6255                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpMulticastInterfaceRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6256                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastInterfaceRequest>(&header, _body_bytes, handles, &mut req)?;
6257                    let control_handle = BaseDatagramSocketControlHandle {
6258                        inner: this.inner.clone(),
6259                    };
6260                    Ok(BaseDatagramSocketRequest::SetIpMulticastInterface {iface: req.iface,
6261address: req.address,
6262
6263                        responder: BaseDatagramSocketSetIpMulticastInterfaceResponder {
6264                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6265                            tx_id: header.tx_id,
6266                        },
6267                    })
6268                }
6269                0x320bd14c4df046c4 => {
6270                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6271                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6272                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6273                    let control_handle = BaseDatagramSocketControlHandle {
6274                        inner: this.inner.clone(),
6275                    };
6276                    Ok(BaseDatagramSocketRequest::GetIpMulticastInterface {
6277                        responder: BaseDatagramSocketGetIpMulticastInterfaceResponder {
6278                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6279                            tx_id: header.tx_id,
6280                        },
6281                    })
6282                }
6283                0x63134d53772916a1 => {
6284                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6285                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpMulticastTtlRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6286                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastTtlRequest>(&header, _body_bytes, handles, &mut req)?;
6287                    let control_handle = BaseDatagramSocketControlHandle {
6288                        inner: this.inner.clone(),
6289                    };
6290                    Ok(BaseDatagramSocketRequest::SetIpMulticastTtl {value: req.value,
6291
6292                        responder: BaseDatagramSocketSetIpMulticastTtlResponder {
6293                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6294                            tx_id: header.tx_id,
6295                        },
6296                    })
6297                }
6298                0x4665cd378f39e1a => {
6299                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6300                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6301                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6302                    let control_handle = BaseDatagramSocketControlHandle {
6303                        inner: this.inner.clone(),
6304                    };
6305                    Ok(BaseDatagramSocketRequest::GetIpMulticastTtl {
6306                        responder: BaseDatagramSocketGetIpMulticastTtlResponder {
6307                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6308                            tx_id: header.tx_id,
6309                        },
6310                    })
6311                }
6312                0x20c55c11f00943ea => {
6313                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6314                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpMulticastLoopbackRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6315                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastLoopbackRequest>(&header, _body_bytes, handles, &mut req)?;
6316                    let control_handle = BaseDatagramSocketControlHandle {
6317                        inner: this.inner.clone(),
6318                    };
6319                    Ok(BaseDatagramSocketRequest::SetIpMulticastLoopback {value: req.value,
6320
6321                        responder: BaseDatagramSocketSetIpMulticastLoopbackResponder {
6322                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6323                            tx_id: header.tx_id,
6324                        },
6325                    })
6326                }
6327                0x3b6b26ff558298f2 => {
6328                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6329                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6330                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6331                    let control_handle = BaseDatagramSocketControlHandle {
6332                        inner: this.inner.clone(),
6333                    };
6334                    Ok(BaseDatagramSocketRequest::GetIpMulticastLoopback {
6335                        responder: BaseDatagramSocketGetIpMulticastLoopbackResponder {
6336                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6337                            tx_id: header.tx_id,
6338                        },
6339                    })
6340                }
6341                0x76bc7df115a3b4d0 => {
6342                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6343                    let mut req = fidl::new_empty!(BaseNetworkSocketAddIpMembershipRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6344                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketAddIpMembershipRequest>(&header, _body_bytes, handles, &mut req)?;
6345                    let control_handle = BaseDatagramSocketControlHandle {
6346                        inner: this.inner.clone(),
6347                    };
6348                    Ok(BaseDatagramSocketRequest::AddIpMembership {membership: req.membership,
6349
6350                        responder: BaseDatagramSocketAddIpMembershipResponder {
6351                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6352                            tx_id: header.tx_id,
6353                        },
6354                    })
6355                }
6356                0x2888f3099188d03 => {
6357                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6358                    let mut req = fidl::new_empty!(BaseNetworkSocketDropIpMembershipRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6359                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketDropIpMembershipRequest>(&header, _body_bytes, handles, &mut req)?;
6360                    let control_handle = BaseDatagramSocketControlHandle {
6361                        inner: this.inner.clone(),
6362                    };
6363                    Ok(BaseDatagramSocketRequest::DropIpMembership {membership: req.membership,
6364
6365                        responder: BaseDatagramSocketDropIpMembershipResponder {
6366                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6367                            tx_id: header.tx_id,
6368                        },
6369                    })
6370                }
6371                0x1ae532b0c066e3a0 => {
6372                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6373                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpTransparentRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6374                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTransparentRequest>(&header, _body_bytes, handles, &mut req)?;
6375                    let control_handle = BaseDatagramSocketControlHandle {
6376                        inner: this.inner.clone(),
6377                    };
6378                    Ok(BaseDatagramSocketRequest::SetIpTransparent {value: req.value,
6379
6380                        responder: BaseDatagramSocketSetIpTransparentResponder {
6381                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6382                            tx_id: header.tx_id,
6383                        },
6384                    })
6385                }
6386                0x51d43695962ebfb5 => {
6387                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6388                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6389                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6390                    let control_handle = BaseDatagramSocketControlHandle {
6391                        inner: this.inner.clone(),
6392                    };
6393                    Ok(BaseDatagramSocketRequest::GetIpTransparent {
6394                        responder: BaseDatagramSocketGetIpTransparentResponder {
6395                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6396                            tx_id: header.tx_id,
6397                        },
6398                    })
6399                }
6400                0x4722b4ce52f7840 => {
6401                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6402                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6403                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest>(&header, _body_bytes, handles, &mut req)?;
6404                    let control_handle = BaseDatagramSocketControlHandle {
6405                        inner: this.inner.clone(),
6406                    };
6407                    Ok(BaseDatagramSocketRequest::SetIpReceiveOriginalDestinationAddress {value: req.value,
6408
6409                        responder: BaseDatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
6410                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6411                            tx_id: header.tx_id,
6412                        },
6413                    })
6414                }
6415                0x2a0e7dc5d6bfdfe9 => {
6416                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6417                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6418                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6419                    let control_handle = BaseDatagramSocketControlHandle {
6420                        inner: this.inner.clone(),
6421                    };
6422                    Ok(BaseDatagramSocketRequest::GetIpReceiveOriginalDestinationAddress {
6423                        responder: BaseDatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
6424                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6425                            tx_id: header.tx_id,
6426                        },
6427                    })
6428                }
6429                0x7c94727acb4ea4b3 => {
6430                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6431                    let mut req = fidl::new_empty!(BaseNetworkSocketAddIpv6MembershipRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6432                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketAddIpv6MembershipRequest>(&header, _body_bytes, handles, &mut req)?;
6433                    let control_handle = BaseDatagramSocketControlHandle {
6434                        inner: this.inner.clone(),
6435                    };
6436                    Ok(BaseDatagramSocketRequest::AddIpv6Membership {membership: req.membership,
6437
6438                        responder: BaseDatagramSocketAddIpv6MembershipResponder {
6439                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6440                            tx_id: header.tx_id,
6441                        },
6442                    })
6443                }
6444                0x42104c70ccaba304 => {
6445                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6446                    let mut req = fidl::new_empty!(BaseNetworkSocketDropIpv6MembershipRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6447                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketDropIpv6MembershipRequest>(&header, _body_bytes, handles, &mut req)?;
6448                    let control_handle = BaseDatagramSocketControlHandle {
6449                        inner: this.inner.clone(),
6450                    };
6451                    Ok(BaseDatagramSocketRequest::DropIpv6Membership {membership: req.membership,
6452
6453                        responder: BaseDatagramSocketDropIpv6MembershipResponder {
6454                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6455                            tx_id: header.tx_id,
6456                        },
6457                    })
6458                }
6459                0x135f76db3774ab3b => {
6460                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6461                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6MulticastInterfaceRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6462                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastInterfaceRequest>(&header, _body_bytes, handles, &mut req)?;
6463                    let control_handle = BaseDatagramSocketControlHandle {
6464                        inner: this.inner.clone(),
6465                    };
6466                    Ok(BaseDatagramSocketRequest::SetIpv6MulticastInterface {value: req.value,
6467
6468                        responder: BaseDatagramSocketSetIpv6MulticastInterfaceResponder {
6469                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6470                            tx_id: header.tx_id,
6471                        },
6472                    })
6473                }
6474                0x1f26fcdd348f1882 => {
6475                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6476                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6477                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6478                    let control_handle = BaseDatagramSocketControlHandle {
6479                        inner: this.inner.clone(),
6480                    };
6481                    Ok(BaseDatagramSocketRequest::GetIpv6MulticastInterface {
6482                        responder: BaseDatagramSocketGetIpv6MulticastInterfaceResponder {
6483                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6484                            tx_id: header.tx_id,
6485                        },
6486                    })
6487                }
6488                0x157d51e98f462859 => {
6489                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6490                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6UnicastHopsRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6491                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6UnicastHopsRequest>(&header, _body_bytes, handles, &mut req)?;
6492                    let control_handle = BaseDatagramSocketControlHandle {
6493                        inner: this.inner.clone(),
6494                    };
6495                    Ok(BaseDatagramSocketRequest::SetIpv6UnicastHops {value: req.value,
6496
6497                        responder: BaseDatagramSocketSetIpv6UnicastHopsResponder {
6498                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6499                            tx_id: header.tx_id,
6500                        },
6501                    })
6502                }
6503                0x21f4641cad8bd8d2 => {
6504                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6505                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6506                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6507                    let control_handle = BaseDatagramSocketControlHandle {
6508                        inner: this.inner.clone(),
6509                    };
6510                    Ok(BaseDatagramSocketRequest::GetIpv6UnicastHops {
6511                        responder: BaseDatagramSocketGetIpv6UnicastHopsResponder {
6512                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6513                            tx_id: header.tx_id,
6514                        },
6515                    })
6516                }
6517                0x5c24808ed2e84a1e => {
6518                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6519                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6ReceiveHopLimitRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6520                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceiveHopLimitRequest>(&header, _body_bytes, handles, &mut req)?;
6521                    let control_handle = BaseDatagramSocketControlHandle {
6522                        inner: this.inner.clone(),
6523                    };
6524                    Ok(BaseDatagramSocketRequest::SetIpv6ReceiveHopLimit {value: req.value,
6525
6526                        responder: BaseDatagramSocketSetIpv6ReceiveHopLimitResponder {
6527                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6528                            tx_id: header.tx_id,
6529                        },
6530                    })
6531                }
6532                0x341e06689885b4c0 => {
6533                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6534                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6535                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6536                    let control_handle = BaseDatagramSocketControlHandle {
6537                        inner: this.inner.clone(),
6538                    };
6539                    Ok(BaseDatagramSocketRequest::GetIpv6ReceiveHopLimit {
6540                        responder: BaseDatagramSocketGetIpv6ReceiveHopLimitResponder {
6541                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6542                            tx_id: header.tx_id,
6543                        },
6544                    })
6545                }
6546                0x25b9cd4d181f82c1 => {
6547                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6548                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6MulticastHopsRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6549                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastHopsRequest>(&header, _body_bytes, handles, &mut req)?;
6550                    let control_handle = BaseDatagramSocketControlHandle {
6551                        inner: this.inner.clone(),
6552                    };
6553                    Ok(BaseDatagramSocketRequest::SetIpv6MulticastHops {value: req.value,
6554
6555                        responder: BaseDatagramSocketSetIpv6MulticastHopsResponder {
6556                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6557                            tx_id: header.tx_id,
6558                        },
6559                    })
6560                }
6561                0x52916948a365012a => {
6562                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6563                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6564                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6565                    let control_handle = BaseDatagramSocketControlHandle {
6566                        inner: this.inner.clone(),
6567                    };
6568                    Ok(BaseDatagramSocketRequest::GetIpv6MulticastHops {
6569                        responder: BaseDatagramSocketGetIpv6MulticastHopsResponder {
6570                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6571                            tx_id: header.tx_id,
6572                        },
6573                    })
6574                }
6575                0x55701c409ff41b40 => {
6576                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6577                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6MulticastLoopbackRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6578                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastLoopbackRequest>(&header, _body_bytes, handles, &mut req)?;
6579                    let control_handle = BaseDatagramSocketControlHandle {
6580                        inner: this.inner.clone(),
6581                    };
6582                    Ok(BaseDatagramSocketRequest::SetIpv6MulticastLoopback {value: req.value,
6583
6584                        responder: BaseDatagramSocketSetIpv6MulticastLoopbackResponder {
6585                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6586                            tx_id: header.tx_id,
6587                        },
6588                    })
6589                }
6590                0x4415b701fde319c3 => {
6591                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6592                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6593                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6594                    let control_handle = BaseDatagramSocketControlHandle {
6595                        inner: this.inner.clone(),
6596                    };
6597                    Ok(BaseDatagramSocketRequest::GetIpv6MulticastLoopback {
6598                        responder: BaseDatagramSocketGetIpv6MulticastLoopbackResponder {
6599                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6600                            tx_id: header.tx_id,
6601                        },
6602                    })
6603                }
6604                0x4873f1364758cbba => {
6605                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6606                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6OnlyRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6607                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6OnlyRequest>(&header, _body_bytes, handles, &mut req)?;
6608                    let control_handle = BaseDatagramSocketControlHandle {
6609                        inner: this.inner.clone(),
6610                    };
6611                    Ok(BaseDatagramSocketRequest::SetIpv6Only {value: req.value,
6612
6613                        responder: BaseDatagramSocketSetIpv6OnlyResponder {
6614                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6615                            tx_id: header.tx_id,
6616                        },
6617                    })
6618                }
6619                0x4aa3340a1a26b89c => {
6620                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6621                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6622                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6623                    let control_handle = BaseDatagramSocketControlHandle {
6624                        inner: this.inner.clone(),
6625                    };
6626                    Ok(BaseDatagramSocketRequest::GetIpv6Only {
6627                        responder: BaseDatagramSocketGetIpv6OnlyResponder {
6628                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6629                            tx_id: header.tx_id,
6630                        },
6631                    })
6632                }
6633                0x58f07c8788d099a0 => {
6634                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6635                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6636                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest>(&header, _body_bytes, handles, &mut req)?;
6637                    let control_handle = BaseDatagramSocketControlHandle {
6638                        inner: this.inner.clone(),
6639                    };
6640                    Ok(BaseDatagramSocketRequest::SetIpv6ReceiveTrafficClass {value: req.value,
6641
6642                        responder: BaseDatagramSocketSetIpv6ReceiveTrafficClassResponder {
6643                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6644                            tx_id: header.tx_id,
6645                        },
6646                    })
6647                }
6648                0x2e334df1da553ffa => {
6649                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6650                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6651                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6652                    let control_handle = BaseDatagramSocketControlHandle {
6653                        inner: this.inner.clone(),
6654                    };
6655                    Ok(BaseDatagramSocketRequest::GetIpv6ReceiveTrafficClass {
6656                        responder: BaseDatagramSocketGetIpv6ReceiveTrafficClassResponder {
6657                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6658                            tx_id: header.tx_id,
6659                        },
6660                    })
6661                }
6662                0x6af077800c5a0b4f => {
6663                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6664                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6TrafficClassRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6665                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6TrafficClassRequest>(&header, _body_bytes, handles, &mut req)?;
6666                    let control_handle = BaseDatagramSocketControlHandle {
6667                        inner: this.inner.clone(),
6668                    };
6669                    Ok(BaseDatagramSocketRequest::SetIpv6TrafficClass {value: req.value,
6670
6671                        responder: BaseDatagramSocketSetIpv6TrafficClassResponder {
6672                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6673                            tx_id: header.tx_id,
6674                        },
6675                    })
6676                }
6677                0x6baf6eed8fc2f04 => {
6678                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6679                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6680                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6681                    let control_handle = BaseDatagramSocketControlHandle {
6682                        inner: this.inner.clone(),
6683                    };
6684                    Ok(BaseDatagramSocketRequest::GetIpv6TrafficClass {
6685                        responder: BaseDatagramSocketGetIpv6TrafficClassResponder {
6686                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6687                            tx_id: header.tx_id,
6688                        },
6689                    })
6690                }
6691                0x19259775b1a92768 => {
6692                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6693                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6ReceivePacketInfoRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6694                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceivePacketInfoRequest>(&header, _body_bytes, handles, &mut req)?;
6695                    let control_handle = BaseDatagramSocketControlHandle {
6696                        inner: this.inner.clone(),
6697                    };
6698                    Ok(BaseDatagramSocketRequest::SetIpv6ReceivePacketInfo {value: req.value,
6699
6700                        responder: BaseDatagramSocketSetIpv6ReceivePacketInfoResponder {
6701                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6702                            tx_id: header.tx_id,
6703                        },
6704                    })
6705                }
6706                0x7acd4a2775baec75 => {
6707                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6708                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6709                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6710                    let control_handle = BaseDatagramSocketControlHandle {
6711                        inner: this.inner.clone(),
6712                    };
6713                    Ok(BaseDatagramSocketRequest::GetIpv6ReceivePacketInfo {
6714                        responder: BaseDatagramSocketGetIpv6ReceivePacketInfoResponder {
6715                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6716                            tx_id: header.tx_id,
6717                        },
6718                    })
6719                }
6720                0x38bf28f0dafdbac0 => {
6721                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6722                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6723                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6724                    let control_handle = BaseDatagramSocketControlHandle {
6725                        inner: this.inner.clone(),
6726                    };
6727                    Ok(BaseDatagramSocketRequest::GetOriginalDestination {
6728                        responder: BaseDatagramSocketGetOriginalDestinationResponder {
6729                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6730                            tx_id: header.tx_id,
6731                        },
6732                    })
6733                }
6734                0x48aa0a1f6a32d2ed => {
6735                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6736                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6737                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6738                    let control_handle = BaseDatagramSocketControlHandle {
6739                        inner: this.inner.clone(),
6740                    };
6741                    Ok(BaseDatagramSocketRequest::GetInfo {
6742                        responder: BaseDatagramSocketGetInfoResponder {
6743                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6744                            tx_id: header.tx_id,
6745                        },
6746                    })
6747                }
6748                _ => Err(fidl::Error::UnknownOrdinal {
6749                    ordinal: header.ordinal,
6750                    protocol_name: <BaseDatagramSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
6751                }),
6752            }))
6753            },
6754        )
6755    }
6756}
6757
6758/// Base protocol shared by all datagram sockets.
6759///
6760/// Complete implementations of a datagram socket should compose this protocol.
6761#[derive(Debug)]
6762pub enum BaseDatagramSocketRequest {
6763    Clone {
6764        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
6765        control_handle: BaseDatagramSocketControlHandle,
6766    },
6767    /// Terminates the connection.
6768    ///
6769    /// After calling `Close`, the client must not send any other requests.
6770    ///
6771    /// Servers, after sending the status response, should close the connection
6772    /// regardless of status and without sending an epitaph.
6773    ///
6774    /// Closing the client end of the channel should be semantically equivalent
6775    /// to calling `Close` without knowing when the close has completed or its
6776    /// status.
6777    Close {
6778        responder: BaseDatagramSocketCloseResponder,
6779    },
6780    Query {
6781        responder: BaseDatagramSocketQueryResponder,
6782    },
6783    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
6784    SetReuseAddress {
6785        value: bool,
6786        responder: BaseDatagramSocketSetReuseAddressResponder,
6787    },
6788    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
6789    GetReuseAddress {
6790        responder: BaseDatagramSocketGetReuseAddressResponder,
6791    },
6792    /// Get `SOL_SOCKET` -> `SO_ERROR`.
6793    /// Returns the last error if there is an error set on the socket.
6794    GetError {
6795        responder: BaseDatagramSocketGetErrorResponder,
6796    },
6797    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
6798    SetBroadcast {
6799        value: bool,
6800        responder: BaseDatagramSocketSetBroadcastResponder,
6801    },
6802    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
6803    GetBroadcast {
6804        responder: BaseDatagramSocketGetBroadcastResponder,
6805    },
6806    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
6807    SetSendBuffer {
6808        value_bytes: u64,
6809        responder: BaseDatagramSocketSetSendBufferResponder,
6810    },
6811    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
6812    GetSendBuffer {
6813        responder: BaseDatagramSocketGetSendBufferResponder,
6814    },
6815    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
6816    SetReceiveBuffer {
6817        value_bytes: u64,
6818        responder: BaseDatagramSocketSetReceiveBufferResponder,
6819    },
6820    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
6821    GetReceiveBuffer {
6822        responder: BaseDatagramSocketGetReceiveBufferResponder,
6823    },
6824    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
6825    SetKeepAlive {
6826        value: bool,
6827        responder: BaseDatagramSocketSetKeepAliveResponder,
6828    },
6829    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
6830    GetKeepAlive {
6831        responder: BaseDatagramSocketGetKeepAliveResponder,
6832    },
6833    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
6834    SetOutOfBandInline {
6835        value: bool,
6836        responder: BaseDatagramSocketSetOutOfBandInlineResponder,
6837    },
6838    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
6839    GetOutOfBandInline {
6840        responder: BaseDatagramSocketGetOutOfBandInlineResponder,
6841    },
6842    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
6843    SetNoCheck {
6844        value: bool,
6845        responder: BaseDatagramSocketSetNoCheckResponder,
6846    },
6847    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
6848    GetNoCheck {
6849        responder: BaseDatagramSocketGetNoCheckResponder,
6850    },
6851    /// Set `SOL_SOCKET` -> `SO_LINGER`.
6852    SetLinger {
6853        linger: bool,
6854        length_secs: u32,
6855        responder: BaseDatagramSocketSetLingerResponder,
6856    },
6857    /// Get `SOL_SOCKET` -> `SO_LINGER`.
6858    GetLinger {
6859        responder: BaseDatagramSocketGetLingerResponder,
6860    },
6861    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
6862    SetReusePort {
6863        value: ReusePortOption,
6864        responder: BaseDatagramSocketSetReusePortResponder,
6865    },
6866    SetReusePortDeprecated {
6867        value: bool,
6868        responder: BaseDatagramSocketSetReusePortDeprecatedResponder,
6869    },
6870    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
6871    GetReusePort {
6872        responder: BaseDatagramSocketGetReusePortResponder,
6873    },
6874    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
6875    GetAcceptConn {
6876        responder: BaseDatagramSocketGetAcceptConnResponder,
6877    },
6878    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
6879    SetBindToDevice {
6880        value: String,
6881        responder: BaseDatagramSocketSetBindToDeviceResponder,
6882    },
6883    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
6884    GetBindToDevice {
6885        responder: BaseDatagramSocketGetBindToDeviceResponder,
6886    },
6887    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
6888    /// If `value` is 0, this clears the bound interface.
6889    SetBindToInterfaceIndex {
6890        value: u64,
6891        responder: BaseDatagramSocketSetBindToInterfaceIndexResponder,
6892    },
6893    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
6894    GetBindToInterfaceIndex {
6895        responder: BaseDatagramSocketGetBindToInterfaceIndexResponder,
6896    },
6897    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
6898    SetTimestamp {
6899        value: TimestampOption,
6900        responder: BaseDatagramSocketSetTimestampResponder,
6901    },
6902    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
6903    GetTimestamp {
6904        responder: BaseDatagramSocketGetTimestampResponder,
6905    },
6906    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
6907    /// unlike the standard SO_MARK, this API has multiple mark domains and each
6908    /// mark can be set independently in each domain.
6909    SetMark {
6910        domain: fidl_fuchsia_net::MarkDomain,
6911        mark: OptionalUint32,
6912        responder: BaseDatagramSocketSetMarkResponder,
6913    },
6914    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
6915    /// unlike the standard SO_MARK, this API has multiple mark domains and each
6916    /// mark can be retrieved independently in each domain.
6917    GetMark {
6918        domain: fidl_fuchsia_net::MarkDomain,
6919        responder: BaseDatagramSocketGetMarkResponder,
6920    },
6921    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
6922    GetCookie {
6923        responder: BaseDatagramSocketGetCookieResponder,
6924    },
6925    /// Sets the local address used for the socket.
6926    Bind {
6927        addr: fidl_fuchsia_net::SocketAddress,
6928        responder: BaseDatagramSocketBindResponder,
6929    },
6930    /// Initiates a connection to a remote address.
6931    Connect {
6932        addr: fidl_fuchsia_net::SocketAddress,
6933        responder: BaseDatagramSocketConnectResponder,
6934    },
6935    /// Clears connection information from this socket.
6936    Disconnect {
6937        responder: BaseDatagramSocketDisconnectResponder,
6938    },
6939    /// Retrieves the local socket address.
6940    GetSockName {
6941        responder: BaseDatagramSocketGetSockNameResponder,
6942    },
6943    /// Retrieves the remote socket address.
6944    GetPeerName {
6945        responder: BaseDatagramSocketGetPeerNameResponder,
6946    },
6947    /// Shuts down part of the socket.
6948    Shutdown {
6949        mode: ShutdownMode,
6950        responder: BaseDatagramSocketShutdownResponder,
6951    },
6952    /// Set `SOL_IP` -> `IP_TOS`.
6953    SetIpTypeOfService {
6954        value: u8,
6955        responder: BaseDatagramSocketSetIpTypeOfServiceResponder,
6956    },
6957    /// Get `SOL_IP` -> `IP_TOS`.
6958    GetIpTypeOfService {
6959        responder: BaseDatagramSocketGetIpTypeOfServiceResponder,
6960    },
6961    /// Set `SOL_IP` -> `IP_TTL`.
6962    SetIpTtl {
6963        value: OptionalUint8,
6964        responder: BaseDatagramSocketSetIpTtlResponder,
6965    },
6966    /// Get `SOL_IP` -> `IP_TTL`.
6967    GetIpTtl {
6968        responder: BaseDatagramSocketGetIpTtlResponder,
6969    },
6970    /// Set `SOL_IP` -> `IP_PKTINFO`.
6971    SetIpPacketInfo {
6972        value: bool,
6973        responder: BaseDatagramSocketSetIpPacketInfoResponder,
6974    },
6975    /// Get `SOL_IP` -> `IP_PKTINFO`.
6976    GetIpPacketInfo {
6977        responder: BaseDatagramSocketGetIpPacketInfoResponder,
6978    },
6979    /// Set `SOL_IP` -> `IP_RECVTOS`.
6980    SetIpReceiveTypeOfService {
6981        value: bool,
6982        responder: BaseDatagramSocketSetIpReceiveTypeOfServiceResponder,
6983    },
6984    /// Get `SOL_IP` -> `IP_RECVTOS`.
6985    GetIpReceiveTypeOfService {
6986        responder: BaseDatagramSocketGetIpReceiveTypeOfServiceResponder,
6987    },
6988    /// Set `SOL_IP` -> `IP_RECVTTL`.
6989    SetIpReceiveTtl {
6990        value: bool,
6991        responder: BaseDatagramSocketSetIpReceiveTtlResponder,
6992    },
6993    /// Get `SOL_IP` -> `IP_RECVTTL`.
6994    GetIpReceiveTtl {
6995        responder: BaseDatagramSocketGetIpReceiveTtlResponder,
6996    },
6997    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
6998    SetIpMulticastInterface {
6999        iface: u64,
7000        address: fidl_fuchsia_net::Ipv4Address,
7001        responder: BaseDatagramSocketSetIpMulticastInterfaceResponder,
7002    },
7003    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
7004    GetIpMulticastInterface {
7005        responder: BaseDatagramSocketGetIpMulticastInterfaceResponder,
7006    },
7007    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
7008    SetIpMulticastTtl {
7009        value: OptionalUint8,
7010        responder: BaseDatagramSocketSetIpMulticastTtlResponder,
7011    },
7012    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
7013    GetIpMulticastTtl {
7014        responder: BaseDatagramSocketGetIpMulticastTtlResponder,
7015    },
7016    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
7017    SetIpMulticastLoopback {
7018        value: bool,
7019        responder: BaseDatagramSocketSetIpMulticastLoopbackResponder,
7020    },
7021    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
7022    GetIpMulticastLoopback {
7023        responder: BaseDatagramSocketGetIpMulticastLoopbackResponder,
7024    },
7025    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
7026    AddIpMembership {
7027        membership: IpMulticastMembership,
7028        responder: BaseDatagramSocketAddIpMembershipResponder,
7029    },
7030    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
7031    DropIpMembership {
7032        membership: IpMulticastMembership,
7033        responder: BaseDatagramSocketDropIpMembershipResponder,
7034    },
7035    /// Set `SOL_IP` -> `IP_TRANSPARENT`
7036    SetIpTransparent {
7037        value: bool,
7038        responder: BaseDatagramSocketSetIpTransparentResponder,
7039    },
7040    /// Get `SOL_IP` -> `IP_TRANSPARENT`
7041    GetIpTransparent {
7042        responder: BaseDatagramSocketGetIpTransparentResponder,
7043    },
7044    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
7045    SetIpReceiveOriginalDestinationAddress {
7046        value: bool,
7047        responder: BaseDatagramSocketSetIpReceiveOriginalDestinationAddressResponder,
7048    },
7049    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
7050    GetIpReceiveOriginalDestinationAddress {
7051        responder: BaseDatagramSocketGetIpReceiveOriginalDestinationAddressResponder,
7052    },
7053    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
7054    AddIpv6Membership {
7055        membership: Ipv6MulticastMembership,
7056        responder: BaseDatagramSocketAddIpv6MembershipResponder,
7057    },
7058    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
7059    DropIpv6Membership {
7060        membership: Ipv6MulticastMembership,
7061        responder: BaseDatagramSocketDropIpv6MembershipResponder,
7062    },
7063    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
7064    SetIpv6MulticastInterface {
7065        value: u64,
7066        responder: BaseDatagramSocketSetIpv6MulticastInterfaceResponder,
7067    },
7068    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
7069    GetIpv6MulticastInterface {
7070        responder: BaseDatagramSocketGetIpv6MulticastInterfaceResponder,
7071    },
7072    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
7073    SetIpv6UnicastHops {
7074        value: OptionalUint8,
7075        responder: BaseDatagramSocketSetIpv6UnicastHopsResponder,
7076    },
7077    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
7078    GetIpv6UnicastHops {
7079        responder: BaseDatagramSocketGetIpv6UnicastHopsResponder,
7080    },
7081    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
7082    SetIpv6ReceiveHopLimit {
7083        value: bool,
7084        responder: BaseDatagramSocketSetIpv6ReceiveHopLimitResponder,
7085    },
7086    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
7087    GetIpv6ReceiveHopLimit {
7088        responder: BaseDatagramSocketGetIpv6ReceiveHopLimitResponder,
7089    },
7090    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
7091    SetIpv6MulticastHops {
7092        value: OptionalUint8,
7093        responder: BaseDatagramSocketSetIpv6MulticastHopsResponder,
7094    },
7095    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
7096    GetIpv6MulticastHops {
7097        responder: BaseDatagramSocketGetIpv6MulticastHopsResponder,
7098    },
7099    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
7100    SetIpv6MulticastLoopback {
7101        value: bool,
7102        responder: BaseDatagramSocketSetIpv6MulticastLoopbackResponder,
7103    },
7104    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
7105    GetIpv6MulticastLoopback {
7106        responder: BaseDatagramSocketGetIpv6MulticastLoopbackResponder,
7107    },
7108    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
7109    SetIpv6Only {
7110        value: bool,
7111        responder: BaseDatagramSocketSetIpv6OnlyResponder,
7112    },
7113    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
7114    GetIpv6Only {
7115        responder: BaseDatagramSocketGetIpv6OnlyResponder,
7116    },
7117    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
7118    SetIpv6ReceiveTrafficClass {
7119        value: bool,
7120        responder: BaseDatagramSocketSetIpv6ReceiveTrafficClassResponder,
7121    },
7122    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
7123    GetIpv6ReceiveTrafficClass {
7124        responder: BaseDatagramSocketGetIpv6ReceiveTrafficClassResponder,
7125    },
7126    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
7127    SetIpv6TrafficClass {
7128        value: OptionalUint8,
7129        responder: BaseDatagramSocketSetIpv6TrafficClassResponder,
7130    },
7131    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
7132    GetIpv6TrafficClass {
7133        responder: BaseDatagramSocketGetIpv6TrafficClassResponder,
7134    },
7135    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
7136    SetIpv6ReceivePacketInfo {
7137        value: bool,
7138        responder: BaseDatagramSocketSetIpv6ReceivePacketInfoResponder,
7139    },
7140    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
7141    GetIpv6ReceivePacketInfo {
7142        responder: BaseDatagramSocketGetIpv6ReceivePacketInfoResponder,
7143    },
7144    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
7145    GetOriginalDestination {
7146        responder: BaseDatagramSocketGetOriginalDestinationResponder,
7147    },
7148    /// Retrieves creation information from the socket.
7149    ///
7150    /// - response `domain` the socket's associated domain.
7151    /// - response `proto` the socket's associated protocol.
7152    GetInfo {
7153        responder: BaseDatagramSocketGetInfoResponder,
7154    },
7155}
7156
7157impl BaseDatagramSocketRequest {
7158    #[allow(irrefutable_let_patterns)]
7159    pub fn into_clone(
7160        self,
7161    ) -> Option<(
7162        fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
7163        BaseDatagramSocketControlHandle,
7164    )> {
7165        if let BaseDatagramSocketRequest::Clone { request, control_handle } = self {
7166            Some((request, control_handle))
7167        } else {
7168            None
7169        }
7170    }
7171
7172    #[allow(irrefutable_let_patterns)]
7173    pub fn into_close(self) -> Option<(BaseDatagramSocketCloseResponder)> {
7174        if let BaseDatagramSocketRequest::Close { responder } = self {
7175            Some((responder))
7176        } else {
7177            None
7178        }
7179    }
7180
7181    #[allow(irrefutable_let_patterns)]
7182    pub fn into_query(self) -> Option<(BaseDatagramSocketQueryResponder)> {
7183        if let BaseDatagramSocketRequest::Query { responder } = self {
7184            Some((responder))
7185        } else {
7186            None
7187        }
7188    }
7189
7190    #[allow(irrefutable_let_patterns)]
7191    pub fn into_set_reuse_address(
7192        self,
7193    ) -> Option<(bool, BaseDatagramSocketSetReuseAddressResponder)> {
7194        if let BaseDatagramSocketRequest::SetReuseAddress { value, responder } = self {
7195            Some((value, responder))
7196        } else {
7197            None
7198        }
7199    }
7200
7201    #[allow(irrefutable_let_patterns)]
7202    pub fn into_get_reuse_address(self) -> Option<(BaseDatagramSocketGetReuseAddressResponder)> {
7203        if let BaseDatagramSocketRequest::GetReuseAddress { responder } = self {
7204            Some((responder))
7205        } else {
7206            None
7207        }
7208    }
7209
7210    #[allow(irrefutable_let_patterns)]
7211    pub fn into_get_error(self) -> Option<(BaseDatagramSocketGetErrorResponder)> {
7212        if let BaseDatagramSocketRequest::GetError { responder } = self {
7213            Some((responder))
7214        } else {
7215            None
7216        }
7217    }
7218
7219    #[allow(irrefutable_let_patterns)]
7220    pub fn into_set_broadcast(self) -> Option<(bool, BaseDatagramSocketSetBroadcastResponder)> {
7221        if let BaseDatagramSocketRequest::SetBroadcast { value, responder } = self {
7222            Some((value, responder))
7223        } else {
7224            None
7225        }
7226    }
7227
7228    #[allow(irrefutable_let_patterns)]
7229    pub fn into_get_broadcast(self) -> Option<(BaseDatagramSocketGetBroadcastResponder)> {
7230        if let BaseDatagramSocketRequest::GetBroadcast { responder } = self {
7231            Some((responder))
7232        } else {
7233            None
7234        }
7235    }
7236
7237    #[allow(irrefutable_let_patterns)]
7238    pub fn into_set_send_buffer(self) -> Option<(u64, BaseDatagramSocketSetSendBufferResponder)> {
7239        if let BaseDatagramSocketRequest::SetSendBuffer { value_bytes, responder } = self {
7240            Some((value_bytes, responder))
7241        } else {
7242            None
7243        }
7244    }
7245
7246    #[allow(irrefutable_let_patterns)]
7247    pub fn into_get_send_buffer(self) -> Option<(BaseDatagramSocketGetSendBufferResponder)> {
7248        if let BaseDatagramSocketRequest::GetSendBuffer { responder } = self {
7249            Some((responder))
7250        } else {
7251            None
7252        }
7253    }
7254
7255    #[allow(irrefutable_let_patterns)]
7256    pub fn into_set_receive_buffer(
7257        self,
7258    ) -> Option<(u64, BaseDatagramSocketSetReceiveBufferResponder)> {
7259        if let BaseDatagramSocketRequest::SetReceiveBuffer { value_bytes, responder } = self {
7260            Some((value_bytes, responder))
7261        } else {
7262            None
7263        }
7264    }
7265
7266    #[allow(irrefutable_let_patterns)]
7267    pub fn into_get_receive_buffer(self) -> Option<(BaseDatagramSocketGetReceiveBufferResponder)> {
7268        if let BaseDatagramSocketRequest::GetReceiveBuffer { responder } = self {
7269            Some((responder))
7270        } else {
7271            None
7272        }
7273    }
7274
7275    #[allow(irrefutable_let_patterns)]
7276    pub fn into_set_keep_alive(self) -> Option<(bool, BaseDatagramSocketSetKeepAliveResponder)> {
7277        if let BaseDatagramSocketRequest::SetKeepAlive { value, responder } = self {
7278            Some((value, responder))
7279        } else {
7280            None
7281        }
7282    }
7283
7284    #[allow(irrefutable_let_patterns)]
7285    pub fn into_get_keep_alive(self) -> Option<(BaseDatagramSocketGetKeepAliveResponder)> {
7286        if let BaseDatagramSocketRequest::GetKeepAlive { responder } = self {
7287            Some((responder))
7288        } else {
7289            None
7290        }
7291    }
7292
7293    #[allow(irrefutable_let_patterns)]
7294    pub fn into_set_out_of_band_inline(
7295        self,
7296    ) -> Option<(bool, BaseDatagramSocketSetOutOfBandInlineResponder)> {
7297        if let BaseDatagramSocketRequest::SetOutOfBandInline { value, responder } = self {
7298            Some((value, responder))
7299        } else {
7300            None
7301        }
7302    }
7303
7304    #[allow(irrefutable_let_patterns)]
7305    pub fn into_get_out_of_band_inline(
7306        self,
7307    ) -> Option<(BaseDatagramSocketGetOutOfBandInlineResponder)> {
7308        if let BaseDatagramSocketRequest::GetOutOfBandInline { responder } = self {
7309            Some((responder))
7310        } else {
7311            None
7312        }
7313    }
7314
7315    #[allow(irrefutable_let_patterns)]
7316    pub fn into_set_no_check(self) -> Option<(bool, BaseDatagramSocketSetNoCheckResponder)> {
7317        if let BaseDatagramSocketRequest::SetNoCheck { value, responder } = self {
7318            Some((value, responder))
7319        } else {
7320            None
7321        }
7322    }
7323
7324    #[allow(irrefutable_let_patterns)]
7325    pub fn into_get_no_check(self) -> Option<(BaseDatagramSocketGetNoCheckResponder)> {
7326        if let BaseDatagramSocketRequest::GetNoCheck { responder } = self {
7327            Some((responder))
7328        } else {
7329            None
7330        }
7331    }
7332
7333    #[allow(irrefutable_let_patterns)]
7334    pub fn into_set_linger(self) -> Option<(bool, u32, BaseDatagramSocketSetLingerResponder)> {
7335        if let BaseDatagramSocketRequest::SetLinger { linger, length_secs, responder } = self {
7336            Some((linger, length_secs, responder))
7337        } else {
7338            None
7339        }
7340    }
7341
7342    #[allow(irrefutable_let_patterns)]
7343    pub fn into_get_linger(self) -> Option<(BaseDatagramSocketGetLingerResponder)> {
7344        if let BaseDatagramSocketRequest::GetLinger { responder } = self {
7345            Some((responder))
7346        } else {
7347            None
7348        }
7349    }
7350
7351    #[allow(irrefutable_let_patterns)]
7352    pub fn into_set_reuse_port(
7353        self,
7354    ) -> Option<(ReusePortOption, BaseDatagramSocketSetReusePortResponder)> {
7355        if let BaseDatagramSocketRequest::SetReusePort { value, responder } = self {
7356            Some((value, responder))
7357        } else {
7358            None
7359        }
7360    }
7361
7362    #[allow(irrefutable_let_patterns)]
7363    pub fn into_set_reuse_port_deprecated(
7364        self,
7365    ) -> Option<(bool, BaseDatagramSocketSetReusePortDeprecatedResponder)> {
7366        if let BaseDatagramSocketRequest::SetReusePortDeprecated { value, responder } = self {
7367            Some((value, responder))
7368        } else {
7369            None
7370        }
7371    }
7372
7373    #[allow(irrefutable_let_patterns)]
7374    pub fn into_get_reuse_port(self) -> Option<(BaseDatagramSocketGetReusePortResponder)> {
7375        if let BaseDatagramSocketRequest::GetReusePort { responder } = self {
7376            Some((responder))
7377        } else {
7378            None
7379        }
7380    }
7381
7382    #[allow(irrefutable_let_patterns)]
7383    pub fn into_get_accept_conn(self) -> Option<(BaseDatagramSocketGetAcceptConnResponder)> {
7384        if let BaseDatagramSocketRequest::GetAcceptConn { responder } = self {
7385            Some((responder))
7386        } else {
7387            None
7388        }
7389    }
7390
7391    #[allow(irrefutable_let_patterns)]
7392    pub fn into_set_bind_to_device(
7393        self,
7394    ) -> Option<(String, BaseDatagramSocketSetBindToDeviceResponder)> {
7395        if let BaseDatagramSocketRequest::SetBindToDevice { value, responder } = self {
7396            Some((value, responder))
7397        } else {
7398            None
7399        }
7400    }
7401
7402    #[allow(irrefutable_let_patterns)]
7403    pub fn into_get_bind_to_device(self) -> Option<(BaseDatagramSocketGetBindToDeviceResponder)> {
7404        if let BaseDatagramSocketRequest::GetBindToDevice { responder } = self {
7405            Some((responder))
7406        } else {
7407            None
7408        }
7409    }
7410
7411    #[allow(irrefutable_let_patterns)]
7412    pub fn into_set_bind_to_interface_index(
7413        self,
7414    ) -> Option<(u64, BaseDatagramSocketSetBindToInterfaceIndexResponder)> {
7415        if let BaseDatagramSocketRequest::SetBindToInterfaceIndex { value, responder } = self {
7416            Some((value, responder))
7417        } else {
7418            None
7419        }
7420    }
7421
7422    #[allow(irrefutable_let_patterns)]
7423    pub fn into_get_bind_to_interface_index(
7424        self,
7425    ) -> Option<(BaseDatagramSocketGetBindToInterfaceIndexResponder)> {
7426        if let BaseDatagramSocketRequest::GetBindToInterfaceIndex { responder } = self {
7427            Some((responder))
7428        } else {
7429            None
7430        }
7431    }
7432
7433    #[allow(irrefutable_let_patterns)]
7434    pub fn into_set_timestamp(
7435        self,
7436    ) -> Option<(TimestampOption, BaseDatagramSocketSetTimestampResponder)> {
7437        if let BaseDatagramSocketRequest::SetTimestamp { value, responder } = self {
7438            Some((value, responder))
7439        } else {
7440            None
7441        }
7442    }
7443
7444    #[allow(irrefutable_let_patterns)]
7445    pub fn into_get_timestamp(self) -> Option<(BaseDatagramSocketGetTimestampResponder)> {
7446        if let BaseDatagramSocketRequest::GetTimestamp { responder } = self {
7447            Some((responder))
7448        } else {
7449            None
7450        }
7451    }
7452
7453    #[allow(irrefutable_let_patterns)]
7454    pub fn into_set_mark(
7455        self,
7456    ) -> Option<(fidl_fuchsia_net::MarkDomain, OptionalUint32, BaseDatagramSocketSetMarkResponder)>
7457    {
7458        if let BaseDatagramSocketRequest::SetMark { domain, mark, responder } = self {
7459            Some((domain, mark, responder))
7460        } else {
7461            None
7462        }
7463    }
7464
7465    #[allow(irrefutable_let_patterns)]
7466    pub fn into_get_mark(
7467        self,
7468    ) -> Option<(fidl_fuchsia_net::MarkDomain, BaseDatagramSocketGetMarkResponder)> {
7469        if let BaseDatagramSocketRequest::GetMark { domain, responder } = self {
7470            Some((domain, responder))
7471        } else {
7472            None
7473        }
7474    }
7475
7476    #[allow(irrefutable_let_patterns)]
7477    pub fn into_get_cookie(self) -> Option<(BaseDatagramSocketGetCookieResponder)> {
7478        if let BaseDatagramSocketRequest::GetCookie { responder } = self {
7479            Some((responder))
7480        } else {
7481            None
7482        }
7483    }
7484
7485    #[allow(irrefutable_let_patterns)]
7486    pub fn into_bind(
7487        self,
7488    ) -> Option<(fidl_fuchsia_net::SocketAddress, BaseDatagramSocketBindResponder)> {
7489        if let BaseDatagramSocketRequest::Bind { addr, responder } = self {
7490            Some((addr, responder))
7491        } else {
7492            None
7493        }
7494    }
7495
7496    #[allow(irrefutable_let_patterns)]
7497    pub fn into_connect(
7498        self,
7499    ) -> Option<(fidl_fuchsia_net::SocketAddress, BaseDatagramSocketConnectResponder)> {
7500        if let BaseDatagramSocketRequest::Connect { addr, responder } = self {
7501            Some((addr, responder))
7502        } else {
7503            None
7504        }
7505    }
7506
7507    #[allow(irrefutable_let_patterns)]
7508    pub fn into_disconnect(self) -> Option<(BaseDatagramSocketDisconnectResponder)> {
7509        if let BaseDatagramSocketRequest::Disconnect { responder } = self {
7510            Some((responder))
7511        } else {
7512            None
7513        }
7514    }
7515
7516    #[allow(irrefutable_let_patterns)]
7517    pub fn into_get_sock_name(self) -> Option<(BaseDatagramSocketGetSockNameResponder)> {
7518        if let BaseDatagramSocketRequest::GetSockName { responder } = self {
7519            Some((responder))
7520        } else {
7521            None
7522        }
7523    }
7524
7525    #[allow(irrefutable_let_patterns)]
7526    pub fn into_get_peer_name(self) -> Option<(BaseDatagramSocketGetPeerNameResponder)> {
7527        if let BaseDatagramSocketRequest::GetPeerName { responder } = self {
7528            Some((responder))
7529        } else {
7530            None
7531        }
7532    }
7533
7534    #[allow(irrefutable_let_patterns)]
7535    pub fn into_shutdown(self) -> Option<(ShutdownMode, BaseDatagramSocketShutdownResponder)> {
7536        if let BaseDatagramSocketRequest::Shutdown { mode, responder } = self {
7537            Some((mode, responder))
7538        } else {
7539            None
7540        }
7541    }
7542
7543    #[allow(irrefutable_let_patterns)]
7544    pub fn into_set_ip_type_of_service(
7545        self,
7546    ) -> Option<(u8, BaseDatagramSocketSetIpTypeOfServiceResponder)> {
7547        if let BaseDatagramSocketRequest::SetIpTypeOfService { value, responder } = self {
7548            Some((value, responder))
7549        } else {
7550            None
7551        }
7552    }
7553
7554    #[allow(irrefutable_let_patterns)]
7555    pub fn into_get_ip_type_of_service(
7556        self,
7557    ) -> Option<(BaseDatagramSocketGetIpTypeOfServiceResponder)> {
7558        if let BaseDatagramSocketRequest::GetIpTypeOfService { responder } = self {
7559            Some((responder))
7560        } else {
7561            None
7562        }
7563    }
7564
7565    #[allow(irrefutable_let_patterns)]
7566    pub fn into_set_ip_ttl(self) -> Option<(OptionalUint8, BaseDatagramSocketSetIpTtlResponder)> {
7567        if let BaseDatagramSocketRequest::SetIpTtl { value, responder } = self {
7568            Some((value, responder))
7569        } else {
7570            None
7571        }
7572    }
7573
7574    #[allow(irrefutable_let_patterns)]
7575    pub fn into_get_ip_ttl(self) -> Option<(BaseDatagramSocketGetIpTtlResponder)> {
7576        if let BaseDatagramSocketRequest::GetIpTtl { responder } = self {
7577            Some((responder))
7578        } else {
7579            None
7580        }
7581    }
7582
7583    #[allow(irrefutable_let_patterns)]
7584    pub fn into_set_ip_packet_info(
7585        self,
7586    ) -> Option<(bool, BaseDatagramSocketSetIpPacketInfoResponder)> {
7587        if let BaseDatagramSocketRequest::SetIpPacketInfo { value, responder } = self {
7588            Some((value, responder))
7589        } else {
7590            None
7591        }
7592    }
7593
7594    #[allow(irrefutable_let_patterns)]
7595    pub fn into_get_ip_packet_info(self) -> Option<(BaseDatagramSocketGetIpPacketInfoResponder)> {
7596        if let BaseDatagramSocketRequest::GetIpPacketInfo { responder } = self {
7597            Some((responder))
7598        } else {
7599            None
7600        }
7601    }
7602
7603    #[allow(irrefutable_let_patterns)]
7604    pub fn into_set_ip_receive_type_of_service(
7605        self,
7606    ) -> Option<(bool, BaseDatagramSocketSetIpReceiveTypeOfServiceResponder)> {
7607        if let BaseDatagramSocketRequest::SetIpReceiveTypeOfService { value, responder } = self {
7608            Some((value, responder))
7609        } else {
7610            None
7611        }
7612    }
7613
7614    #[allow(irrefutable_let_patterns)]
7615    pub fn into_get_ip_receive_type_of_service(
7616        self,
7617    ) -> Option<(BaseDatagramSocketGetIpReceiveTypeOfServiceResponder)> {
7618        if let BaseDatagramSocketRequest::GetIpReceiveTypeOfService { responder } = self {
7619            Some((responder))
7620        } else {
7621            None
7622        }
7623    }
7624
7625    #[allow(irrefutable_let_patterns)]
7626    pub fn into_set_ip_receive_ttl(
7627        self,
7628    ) -> Option<(bool, BaseDatagramSocketSetIpReceiveTtlResponder)> {
7629        if let BaseDatagramSocketRequest::SetIpReceiveTtl { value, responder } = self {
7630            Some((value, responder))
7631        } else {
7632            None
7633        }
7634    }
7635
7636    #[allow(irrefutable_let_patterns)]
7637    pub fn into_get_ip_receive_ttl(self) -> Option<(BaseDatagramSocketGetIpReceiveTtlResponder)> {
7638        if let BaseDatagramSocketRequest::GetIpReceiveTtl { responder } = self {
7639            Some((responder))
7640        } else {
7641            None
7642        }
7643    }
7644
7645    #[allow(irrefutable_let_patterns)]
7646    pub fn into_set_ip_multicast_interface(
7647        self,
7648    ) -> Option<(
7649        u64,
7650        fidl_fuchsia_net::Ipv4Address,
7651        BaseDatagramSocketSetIpMulticastInterfaceResponder,
7652    )> {
7653        if let BaseDatagramSocketRequest::SetIpMulticastInterface { iface, address, responder } =
7654            self
7655        {
7656            Some((iface, address, responder))
7657        } else {
7658            None
7659        }
7660    }
7661
7662    #[allow(irrefutable_let_patterns)]
7663    pub fn into_get_ip_multicast_interface(
7664        self,
7665    ) -> Option<(BaseDatagramSocketGetIpMulticastInterfaceResponder)> {
7666        if let BaseDatagramSocketRequest::GetIpMulticastInterface { responder } = self {
7667            Some((responder))
7668        } else {
7669            None
7670        }
7671    }
7672
7673    #[allow(irrefutable_let_patterns)]
7674    pub fn into_set_ip_multicast_ttl(
7675        self,
7676    ) -> Option<(OptionalUint8, BaseDatagramSocketSetIpMulticastTtlResponder)> {
7677        if let BaseDatagramSocketRequest::SetIpMulticastTtl { value, responder } = self {
7678            Some((value, responder))
7679        } else {
7680            None
7681        }
7682    }
7683
7684    #[allow(irrefutable_let_patterns)]
7685    pub fn into_get_ip_multicast_ttl(
7686        self,
7687    ) -> Option<(BaseDatagramSocketGetIpMulticastTtlResponder)> {
7688        if let BaseDatagramSocketRequest::GetIpMulticastTtl { responder } = self {
7689            Some((responder))
7690        } else {
7691            None
7692        }
7693    }
7694
7695    #[allow(irrefutable_let_patterns)]
7696    pub fn into_set_ip_multicast_loopback(
7697        self,
7698    ) -> Option<(bool, BaseDatagramSocketSetIpMulticastLoopbackResponder)> {
7699        if let BaseDatagramSocketRequest::SetIpMulticastLoopback { value, responder } = self {
7700            Some((value, responder))
7701        } else {
7702            None
7703        }
7704    }
7705
7706    #[allow(irrefutable_let_patterns)]
7707    pub fn into_get_ip_multicast_loopback(
7708        self,
7709    ) -> Option<(BaseDatagramSocketGetIpMulticastLoopbackResponder)> {
7710        if let BaseDatagramSocketRequest::GetIpMulticastLoopback { responder } = self {
7711            Some((responder))
7712        } else {
7713            None
7714        }
7715    }
7716
7717    #[allow(irrefutable_let_patterns)]
7718    pub fn into_add_ip_membership(
7719        self,
7720    ) -> Option<(IpMulticastMembership, BaseDatagramSocketAddIpMembershipResponder)> {
7721        if let BaseDatagramSocketRequest::AddIpMembership { membership, responder } = self {
7722            Some((membership, responder))
7723        } else {
7724            None
7725        }
7726    }
7727
7728    #[allow(irrefutable_let_patterns)]
7729    pub fn into_drop_ip_membership(
7730        self,
7731    ) -> Option<(IpMulticastMembership, BaseDatagramSocketDropIpMembershipResponder)> {
7732        if let BaseDatagramSocketRequest::DropIpMembership { membership, responder } = self {
7733            Some((membership, responder))
7734        } else {
7735            None
7736        }
7737    }
7738
7739    #[allow(irrefutable_let_patterns)]
7740    pub fn into_set_ip_transparent(
7741        self,
7742    ) -> Option<(bool, BaseDatagramSocketSetIpTransparentResponder)> {
7743        if let BaseDatagramSocketRequest::SetIpTransparent { value, responder } = self {
7744            Some((value, responder))
7745        } else {
7746            None
7747        }
7748    }
7749
7750    #[allow(irrefutable_let_patterns)]
7751    pub fn into_get_ip_transparent(self) -> Option<(BaseDatagramSocketGetIpTransparentResponder)> {
7752        if let BaseDatagramSocketRequest::GetIpTransparent { responder } = self {
7753            Some((responder))
7754        } else {
7755            None
7756        }
7757    }
7758
7759    #[allow(irrefutable_let_patterns)]
7760    pub fn into_set_ip_receive_original_destination_address(
7761        self,
7762    ) -> Option<(bool, BaseDatagramSocketSetIpReceiveOriginalDestinationAddressResponder)> {
7763        if let BaseDatagramSocketRequest::SetIpReceiveOriginalDestinationAddress {
7764            value,
7765            responder,
7766        } = self
7767        {
7768            Some((value, responder))
7769        } else {
7770            None
7771        }
7772    }
7773
7774    #[allow(irrefutable_let_patterns)]
7775    pub fn into_get_ip_receive_original_destination_address(
7776        self,
7777    ) -> Option<(BaseDatagramSocketGetIpReceiveOriginalDestinationAddressResponder)> {
7778        if let BaseDatagramSocketRequest::GetIpReceiveOriginalDestinationAddress { responder } =
7779            self
7780        {
7781            Some((responder))
7782        } else {
7783            None
7784        }
7785    }
7786
7787    #[allow(irrefutable_let_patterns)]
7788    pub fn into_add_ipv6_membership(
7789        self,
7790    ) -> Option<(Ipv6MulticastMembership, BaseDatagramSocketAddIpv6MembershipResponder)> {
7791        if let BaseDatagramSocketRequest::AddIpv6Membership { membership, responder } = self {
7792            Some((membership, responder))
7793        } else {
7794            None
7795        }
7796    }
7797
7798    #[allow(irrefutable_let_patterns)]
7799    pub fn into_drop_ipv6_membership(
7800        self,
7801    ) -> Option<(Ipv6MulticastMembership, BaseDatagramSocketDropIpv6MembershipResponder)> {
7802        if let BaseDatagramSocketRequest::DropIpv6Membership { membership, responder } = self {
7803            Some((membership, responder))
7804        } else {
7805            None
7806        }
7807    }
7808
7809    #[allow(irrefutable_let_patterns)]
7810    pub fn into_set_ipv6_multicast_interface(
7811        self,
7812    ) -> Option<(u64, BaseDatagramSocketSetIpv6MulticastInterfaceResponder)> {
7813        if let BaseDatagramSocketRequest::SetIpv6MulticastInterface { value, responder } = self {
7814            Some((value, responder))
7815        } else {
7816            None
7817        }
7818    }
7819
7820    #[allow(irrefutable_let_patterns)]
7821    pub fn into_get_ipv6_multicast_interface(
7822        self,
7823    ) -> Option<(BaseDatagramSocketGetIpv6MulticastInterfaceResponder)> {
7824        if let BaseDatagramSocketRequest::GetIpv6MulticastInterface { responder } = self {
7825            Some((responder))
7826        } else {
7827            None
7828        }
7829    }
7830
7831    #[allow(irrefutable_let_patterns)]
7832    pub fn into_set_ipv6_unicast_hops(
7833        self,
7834    ) -> Option<(OptionalUint8, BaseDatagramSocketSetIpv6UnicastHopsResponder)> {
7835        if let BaseDatagramSocketRequest::SetIpv6UnicastHops { value, responder } = self {
7836            Some((value, responder))
7837        } else {
7838            None
7839        }
7840    }
7841
7842    #[allow(irrefutable_let_patterns)]
7843    pub fn into_get_ipv6_unicast_hops(
7844        self,
7845    ) -> Option<(BaseDatagramSocketGetIpv6UnicastHopsResponder)> {
7846        if let BaseDatagramSocketRequest::GetIpv6UnicastHops { responder } = self {
7847            Some((responder))
7848        } else {
7849            None
7850        }
7851    }
7852
7853    #[allow(irrefutable_let_patterns)]
7854    pub fn into_set_ipv6_receive_hop_limit(
7855        self,
7856    ) -> Option<(bool, BaseDatagramSocketSetIpv6ReceiveHopLimitResponder)> {
7857        if let BaseDatagramSocketRequest::SetIpv6ReceiveHopLimit { value, responder } = self {
7858            Some((value, responder))
7859        } else {
7860            None
7861        }
7862    }
7863
7864    #[allow(irrefutable_let_patterns)]
7865    pub fn into_get_ipv6_receive_hop_limit(
7866        self,
7867    ) -> Option<(BaseDatagramSocketGetIpv6ReceiveHopLimitResponder)> {
7868        if let BaseDatagramSocketRequest::GetIpv6ReceiveHopLimit { responder } = self {
7869            Some((responder))
7870        } else {
7871            None
7872        }
7873    }
7874
7875    #[allow(irrefutable_let_patterns)]
7876    pub fn into_set_ipv6_multicast_hops(
7877        self,
7878    ) -> Option<(OptionalUint8, BaseDatagramSocketSetIpv6MulticastHopsResponder)> {
7879        if let BaseDatagramSocketRequest::SetIpv6MulticastHops { value, responder } = self {
7880            Some((value, responder))
7881        } else {
7882            None
7883        }
7884    }
7885
7886    #[allow(irrefutable_let_patterns)]
7887    pub fn into_get_ipv6_multicast_hops(
7888        self,
7889    ) -> Option<(BaseDatagramSocketGetIpv6MulticastHopsResponder)> {
7890        if let BaseDatagramSocketRequest::GetIpv6MulticastHops { responder } = self {
7891            Some((responder))
7892        } else {
7893            None
7894        }
7895    }
7896
7897    #[allow(irrefutable_let_patterns)]
7898    pub fn into_set_ipv6_multicast_loopback(
7899        self,
7900    ) -> Option<(bool, BaseDatagramSocketSetIpv6MulticastLoopbackResponder)> {
7901        if let BaseDatagramSocketRequest::SetIpv6MulticastLoopback { value, responder } = self {
7902            Some((value, responder))
7903        } else {
7904            None
7905        }
7906    }
7907
7908    #[allow(irrefutable_let_patterns)]
7909    pub fn into_get_ipv6_multicast_loopback(
7910        self,
7911    ) -> Option<(BaseDatagramSocketGetIpv6MulticastLoopbackResponder)> {
7912        if let BaseDatagramSocketRequest::GetIpv6MulticastLoopback { responder } = self {
7913            Some((responder))
7914        } else {
7915            None
7916        }
7917    }
7918
7919    #[allow(irrefutable_let_patterns)]
7920    pub fn into_set_ipv6_only(self) -> Option<(bool, BaseDatagramSocketSetIpv6OnlyResponder)> {
7921        if let BaseDatagramSocketRequest::SetIpv6Only { value, responder } = self {
7922            Some((value, responder))
7923        } else {
7924            None
7925        }
7926    }
7927
7928    #[allow(irrefutable_let_patterns)]
7929    pub fn into_get_ipv6_only(self) -> Option<(BaseDatagramSocketGetIpv6OnlyResponder)> {
7930        if let BaseDatagramSocketRequest::GetIpv6Only { responder } = self {
7931            Some((responder))
7932        } else {
7933            None
7934        }
7935    }
7936
7937    #[allow(irrefutable_let_patterns)]
7938    pub fn into_set_ipv6_receive_traffic_class(
7939        self,
7940    ) -> Option<(bool, BaseDatagramSocketSetIpv6ReceiveTrafficClassResponder)> {
7941        if let BaseDatagramSocketRequest::SetIpv6ReceiveTrafficClass { value, responder } = self {
7942            Some((value, responder))
7943        } else {
7944            None
7945        }
7946    }
7947
7948    #[allow(irrefutable_let_patterns)]
7949    pub fn into_get_ipv6_receive_traffic_class(
7950        self,
7951    ) -> Option<(BaseDatagramSocketGetIpv6ReceiveTrafficClassResponder)> {
7952        if let BaseDatagramSocketRequest::GetIpv6ReceiveTrafficClass { responder } = self {
7953            Some((responder))
7954        } else {
7955            None
7956        }
7957    }
7958
7959    #[allow(irrefutable_let_patterns)]
7960    pub fn into_set_ipv6_traffic_class(
7961        self,
7962    ) -> Option<(OptionalUint8, BaseDatagramSocketSetIpv6TrafficClassResponder)> {
7963        if let BaseDatagramSocketRequest::SetIpv6TrafficClass { value, responder } = self {
7964            Some((value, responder))
7965        } else {
7966            None
7967        }
7968    }
7969
7970    #[allow(irrefutable_let_patterns)]
7971    pub fn into_get_ipv6_traffic_class(
7972        self,
7973    ) -> Option<(BaseDatagramSocketGetIpv6TrafficClassResponder)> {
7974        if let BaseDatagramSocketRequest::GetIpv6TrafficClass { responder } = self {
7975            Some((responder))
7976        } else {
7977            None
7978        }
7979    }
7980
7981    #[allow(irrefutable_let_patterns)]
7982    pub fn into_set_ipv6_receive_packet_info(
7983        self,
7984    ) -> Option<(bool, BaseDatagramSocketSetIpv6ReceivePacketInfoResponder)> {
7985        if let BaseDatagramSocketRequest::SetIpv6ReceivePacketInfo { value, responder } = self {
7986            Some((value, responder))
7987        } else {
7988            None
7989        }
7990    }
7991
7992    #[allow(irrefutable_let_patterns)]
7993    pub fn into_get_ipv6_receive_packet_info(
7994        self,
7995    ) -> Option<(BaseDatagramSocketGetIpv6ReceivePacketInfoResponder)> {
7996        if let BaseDatagramSocketRequest::GetIpv6ReceivePacketInfo { responder } = self {
7997            Some((responder))
7998        } else {
7999            None
8000        }
8001    }
8002
8003    #[allow(irrefutable_let_patterns)]
8004    pub fn into_get_original_destination(
8005        self,
8006    ) -> Option<(BaseDatagramSocketGetOriginalDestinationResponder)> {
8007        if let BaseDatagramSocketRequest::GetOriginalDestination { responder } = self {
8008            Some((responder))
8009        } else {
8010            None
8011        }
8012    }
8013
8014    #[allow(irrefutable_let_patterns)]
8015    pub fn into_get_info(self) -> Option<(BaseDatagramSocketGetInfoResponder)> {
8016        if let BaseDatagramSocketRequest::GetInfo { responder } = self {
8017            Some((responder))
8018        } else {
8019            None
8020        }
8021    }
8022
8023    /// Name of the method defined in FIDL
8024    pub fn method_name(&self) -> &'static str {
8025        match *self {
8026            BaseDatagramSocketRequest::Clone { .. } => "clone",
8027            BaseDatagramSocketRequest::Close { .. } => "close",
8028            BaseDatagramSocketRequest::Query { .. } => "query",
8029            BaseDatagramSocketRequest::SetReuseAddress { .. } => "set_reuse_address",
8030            BaseDatagramSocketRequest::GetReuseAddress { .. } => "get_reuse_address",
8031            BaseDatagramSocketRequest::GetError { .. } => "get_error",
8032            BaseDatagramSocketRequest::SetBroadcast { .. } => "set_broadcast",
8033            BaseDatagramSocketRequest::GetBroadcast { .. } => "get_broadcast",
8034            BaseDatagramSocketRequest::SetSendBuffer { .. } => "set_send_buffer",
8035            BaseDatagramSocketRequest::GetSendBuffer { .. } => "get_send_buffer",
8036            BaseDatagramSocketRequest::SetReceiveBuffer { .. } => "set_receive_buffer",
8037            BaseDatagramSocketRequest::GetReceiveBuffer { .. } => "get_receive_buffer",
8038            BaseDatagramSocketRequest::SetKeepAlive { .. } => "set_keep_alive",
8039            BaseDatagramSocketRequest::GetKeepAlive { .. } => "get_keep_alive",
8040            BaseDatagramSocketRequest::SetOutOfBandInline { .. } => "set_out_of_band_inline",
8041            BaseDatagramSocketRequest::GetOutOfBandInline { .. } => "get_out_of_band_inline",
8042            BaseDatagramSocketRequest::SetNoCheck { .. } => "set_no_check",
8043            BaseDatagramSocketRequest::GetNoCheck { .. } => "get_no_check",
8044            BaseDatagramSocketRequest::SetLinger { .. } => "set_linger",
8045            BaseDatagramSocketRequest::GetLinger { .. } => "get_linger",
8046            BaseDatagramSocketRequest::SetReusePort { .. } => "set_reuse_port",
8047            BaseDatagramSocketRequest::SetReusePortDeprecated { .. } => "set_reuse_port_deprecated",
8048            BaseDatagramSocketRequest::GetReusePort { .. } => "get_reuse_port",
8049            BaseDatagramSocketRequest::GetAcceptConn { .. } => "get_accept_conn",
8050            BaseDatagramSocketRequest::SetBindToDevice { .. } => "set_bind_to_device",
8051            BaseDatagramSocketRequest::GetBindToDevice { .. } => "get_bind_to_device",
8052            BaseDatagramSocketRequest::SetBindToInterfaceIndex { .. } => {
8053                "set_bind_to_interface_index"
8054            }
8055            BaseDatagramSocketRequest::GetBindToInterfaceIndex { .. } => {
8056                "get_bind_to_interface_index"
8057            }
8058            BaseDatagramSocketRequest::SetTimestamp { .. } => "set_timestamp",
8059            BaseDatagramSocketRequest::GetTimestamp { .. } => "get_timestamp",
8060            BaseDatagramSocketRequest::SetMark { .. } => "set_mark",
8061            BaseDatagramSocketRequest::GetMark { .. } => "get_mark",
8062            BaseDatagramSocketRequest::GetCookie { .. } => "get_cookie",
8063            BaseDatagramSocketRequest::Bind { .. } => "bind",
8064            BaseDatagramSocketRequest::Connect { .. } => "connect",
8065            BaseDatagramSocketRequest::Disconnect { .. } => "disconnect",
8066            BaseDatagramSocketRequest::GetSockName { .. } => "get_sock_name",
8067            BaseDatagramSocketRequest::GetPeerName { .. } => "get_peer_name",
8068            BaseDatagramSocketRequest::Shutdown { .. } => "shutdown",
8069            BaseDatagramSocketRequest::SetIpTypeOfService { .. } => "set_ip_type_of_service",
8070            BaseDatagramSocketRequest::GetIpTypeOfService { .. } => "get_ip_type_of_service",
8071            BaseDatagramSocketRequest::SetIpTtl { .. } => "set_ip_ttl",
8072            BaseDatagramSocketRequest::GetIpTtl { .. } => "get_ip_ttl",
8073            BaseDatagramSocketRequest::SetIpPacketInfo { .. } => "set_ip_packet_info",
8074            BaseDatagramSocketRequest::GetIpPacketInfo { .. } => "get_ip_packet_info",
8075            BaseDatagramSocketRequest::SetIpReceiveTypeOfService { .. } => {
8076                "set_ip_receive_type_of_service"
8077            }
8078            BaseDatagramSocketRequest::GetIpReceiveTypeOfService { .. } => {
8079                "get_ip_receive_type_of_service"
8080            }
8081            BaseDatagramSocketRequest::SetIpReceiveTtl { .. } => "set_ip_receive_ttl",
8082            BaseDatagramSocketRequest::GetIpReceiveTtl { .. } => "get_ip_receive_ttl",
8083            BaseDatagramSocketRequest::SetIpMulticastInterface { .. } => {
8084                "set_ip_multicast_interface"
8085            }
8086            BaseDatagramSocketRequest::GetIpMulticastInterface { .. } => {
8087                "get_ip_multicast_interface"
8088            }
8089            BaseDatagramSocketRequest::SetIpMulticastTtl { .. } => "set_ip_multicast_ttl",
8090            BaseDatagramSocketRequest::GetIpMulticastTtl { .. } => "get_ip_multicast_ttl",
8091            BaseDatagramSocketRequest::SetIpMulticastLoopback { .. } => "set_ip_multicast_loopback",
8092            BaseDatagramSocketRequest::GetIpMulticastLoopback { .. } => "get_ip_multicast_loopback",
8093            BaseDatagramSocketRequest::AddIpMembership { .. } => "add_ip_membership",
8094            BaseDatagramSocketRequest::DropIpMembership { .. } => "drop_ip_membership",
8095            BaseDatagramSocketRequest::SetIpTransparent { .. } => "set_ip_transparent",
8096            BaseDatagramSocketRequest::GetIpTransparent { .. } => "get_ip_transparent",
8097            BaseDatagramSocketRequest::SetIpReceiveOriginalDestinationAddress { .. } => {
8098                "set_ip_receive_original_destination_address"
8099            }
8100            BaseDatagramSocketRequest::GetIpReceiveOriginalDestinationAddress { .. } => {
8101                "get_ip_receive_original_destination_address"
8102            }
8103            BaseDatagramSocketRequest::AddIpv6Membership { .. } => "add_ipv6_membership",
8104            BaseDatagramSocketRequest::DropIpv6Membership { .. } => "drop_ipv6_membership",
8105            BaseDatagramSocketRequest::SetIpv6MulticastInterface { .. } => {
8106                "set_ipv6_multicast_interface"
8107            }
8108            BaseDatagramSocketRequest::GetIpv6MulticastInterface { .. } => {
8109                "get_ipv6_multicast_interface"
8110            }
8111            BaseDatagramSocketRequest::SetIpv6UnicastHops { .. } => "set_ipv6_unicast_hops",
8112            BaseDatagramSocketRequest::GetIpv6UnicastHops { .. } => "get_ipv6_unicast_hops",
8113            BaseDatagramSocketRequest::SetIpv6ReceiveHopLimit { .. } => {
8114                "set_ipv6_receive_hop_limit"
8115            }
8116            BaseDatagramSocketRequest::GetIpv6ReceiveHopLimit { .. } => {
8117                "get_ipv6_receive_hop_limit"
8118            }
8119            BaseDatagramSocketRequest::SetIpv6MulticastHops { .. } => "set_ipv6_multicast_hops",
8120            BaseDatagramSocketRequest::GetIpv6MulticastHops { .. } => "get_ipv6_multicast_hops",
8121            BaseDatagramSocketRequest::SetIpv6MulticastLoopback { .. } => {
8122                "set_ipv6_multicast_loopback"
8123            }
8124            BaseDatagramSocketRequest::GetIpv6MulticastLoopback { .. } => {
8125                "get_ipv6_multicast_loopback"
8126            }
8127            BaseDatagramSocketRequest::SetIpv6Only { .. } => "set_ipv6_only",
8128            BaseDatagramSocketRequest::GetIpv6Only { .. } => "get_ipv6_only",
8129            BaseDatagramSocketRequest::SetIpv6ReceiveTrafficClass { .. } => {
8130                "set_ipv6_receive_traffic_class"
8131            }
8132            BaseDatagramSocketRequest::GetIpv6ReceiveTrafficClass { .. } => {
8133                "get_ipv6_receive_traffic_class"
8134            }
8135            BaseDatagramSocketRequest::SetIpv6TrafficClass { .. } => "set_ipv6_traffic_class",
8136            BaseDatagramSocketRequest::GetIpv6TrafficClass { .. } => "get_ipv6_traffic_class",
8137            BaseDatagramSocketRequest::SetIpv6ReceivePacketInfo { .. } => {
8138                "set_ipv6_receive_packet_info"
8139            }
8140            BaseDatagramSocketRequest::GetIpv6ReceivePacketInfo { .. } => {
8141                "get_ipv6_receive_packet_info"
8142            }
8143            BaseDatagramSocketRequest::GetOriginalDestination { .. } => "get_original_destination",
8144            BaseDatagramSocketRequest::GetInfo { .. } => "get_info",
8145        }
8146    }
8147}
8148
8149#[derive(Debug, Clone)]
8150pub struct BaseDatagramSocketControlHandle {
8151    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
8152}
8153
8154impl fidl::endpoints::ControlHandle for BaseDatagramSocketControlHandle {
8155    fn shutdown(&self) {
8156        self.inner.shutdown()
8157    }
8158
8159    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
8160        self.inner.shutdown_with_epitaph(status)
8161    }
8162
8163    fn is_closed(&self) -> bool {
8164        self.inner.channel().is_closed()
8165    }
8166    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
8167        self.inner.channel().on_closed()
8168    }
8169
8170    #[cfg(target_os = "fuchsia")]
8171    fn signal_peer(
8172        &self,
8173        clear_mask: zx::Signals,
8174        set_mask: zx::Signals,
8175    ) -> Result<(), zx_status::Status> {
8176        use fidl::Peered;
8177        self.inner.channel().signal_peer(clear_mask, set_mask)
8178    }
8179}
8180
8181impl BaseDatagramSocketControlHandle {}
8182
8183#[must_use = "FIDL methods require a response to be sent"]
8184#[derive(Debug)]
8185pub struct BaseDatagramSocketCloseResponder {
8186    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8187    tx_id: u32,
8188}
8189
8190/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8191/// if the responder is dropped without sending a response, so that the client
8192/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8193impl std::ops::Drop for BaseDatagramSocketCloseResponder {
8194    fn drop(&mut self) {
8195        self.control_handle.shutdown();
8196        // Safety: drops once, never accessed again
8197        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8198    }
8199}
8200
8201impl fidl::endpoints::Responder for BaseDatagramSocketCloseResponder {
8202    type ControlHandle = BaseDatagramSocketControlHandle;
8203
8204    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8205        &self.control_handle
8206    }
8207
8208    fn drop_without_shutdown(mut self) {
8209        // Safety: drops once, never accessed again due to mem::forget
8210        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8211        // Prevent Drop from running (which would shut down the channel)
8212        std::mem::forget(self);
8213    }
8214}
8215
8216impl BaseDatagramSocketCloseResponder {
8217    /// Sends a response to the FIDL transaction.
8218    ///
8219    /// Sets the channel to shutdown if an error occurs.
8220    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
8221        let _result = self.send_raw(result);
8222        if _result.is_err() {
8223            self.control_handle.shutdown();
8224        }
8225        self.drop_without_shutdown();
8226        _result
8227    }
8228
8229    /// Similar to "send" but does not shutdown the channel if an error occurs.
8230    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
8231        let _result = self.send_raw(result);
8232        self.drop_without_shutdown();
8233        _result
8234    }
8235
8236    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
8237        self.control_handle
8238            .inner
8239            .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>>(
8240                result,
8241                self.tx_id,
8242                0x5ac5d459ad7f657e,
8243                fidl::encoding::DynamicFlags::empty(),
8244            )
8245    }
8246}
8247
8248#[must_use = "FIDL methods require a response to be sent"]
8249#[derive(Debug)]
8250pub struct BaseDatagramSocketQueryResponder {
8251    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8252    tx_id: u32,
8253}
8254
8255/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8256/// if the responder is dropped without sending a response, so that the client
8257/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8258impl std::ops::Drop for BaseDatagramSocketQueryResponder {
8259    fn drop(&mut self) {
8260        self.control_handle.shutdown();
8261        // Safety: drops once, never accessed again
8262        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8263    }
8264}
8265
8266impl fidl::endpoints::Responder for BaseDatagramSocketQueryResponder {
8267    type ControlHandle = BaseDatagramSocketControlHandle;
8268
8269    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8270        &self.control_handle
8271    }
8272
8273    fn drop_without_shutdown(mut self) {
8274        // Safety: drops once, never accessed again due to mem::forget
8275        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8276        // Prevent Drop from running (which would shut down the channel)
8277        std::mem::forget(self);
8278    }
8279}
8280
8281impl BaseDatagramSocketQueryResponder {
8282    /// Sends a response to the FIDL transaction.
8283    ///
8284    /// Sets the channel to shutdown if an error occurs.
8285    pub fn send(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
8286        let _result = self.send_raw(protocol);
8287        if _result.is_err() {
8288            self.control_handle.shutdown();
8289        }
8290        self.drop_without_shutdown();
8291        _result
8292    }
8293
8294    /// Similar to "send" but does not shutdown the channel if an error occurs.
8295    pub fn send_no_shutdown_on_err(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
8296        let _result = self.send_raw(protocol);
8297        self.drop_without_shutdown();
8298        _result
8299    }
8300
8301    fn send_raw(&self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
8302        self.control_handle.inner.send::<fidl_fuchsia_unknown::QueryableQueryResponse>(
8303            (protocol,),
8304            self.tx_id,
8305            0x2658edee9decfc06,
8306            fidl::encoding::DynamicFlags::empty(),
8307        )
8308    }
8309}
8310
8311#[must_use = "FIDL methods require a response to be sent"]
8312#[derive(Debug)]
8313pub struct BaseDatagramSocketSetReuseAddressResponder {
8314    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8315    tx_id: u32,
8316}
8317
8318/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8319/// if the responder is dropped without sending a response, so that the client
8320/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8321impl std::ops::Drop for BaseDatagramSocketSetReuseAddressResponder {
8322    fn drop(&mut self) {
8323        self.control_handle.shutdown();
8324        // Safety: drops once, never accessed again
8325        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8326    }
8327}
8328
8329impl fidl::endpoints::Responder for BaseDatagramSocketSetReuseAddressResponder {
8330    type ControlHandle = BaseDatagramSocketControlHandle;
8331
8332    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8333        &self.control_handle
8334    }
8335
8336    fn drop_without_shutdown(mut self) {
8337        // Safety: drops once, never accessed again due to mem::forget
8338        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8339        // Prevent Drop from running (which would shut down the channel)
8340        std::mem::forget(self);
8341    }
8342}
8343
8344impl BaseDatagramSocketSetReuseAddressResponder {
8345    /// Sends a response to the FIDL transaction.
8346    ///
8347    /// Sets the channel to shutdown if an error occurs.
8348    pub fn send(
8349        self,
8350        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8351    ) -> Result<(), fidl::Error> {
8352        let _result = self.send_raw(result);
8353        if _result.is_err() {
8354            self.control_handle.shutdown();
8355        }
8356        self.drop_without_shutdown();
8357        _result
8358    }
8359
8360    /// Similar to "send" but does not shutdown the channel if an error occurs.
8361    pub fn send_no_shutdown_on_err(
8362        self,
8363        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8364    ) -> Result<(), fidl::Error> {
8365        let _result = self.send_raw(result);
8366        self.drop_without_shutdown();
8367        _result
8368    }
8369
8370    fn send_raw(
8371        &self,
8372        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8373    ) -> Result<(), fidl::Error> {
8374        self.control_handle.inner.send::<fidl::encoding::ResultType<
8375            fidl::encoding::EmptyStruct,
8376            fidl_fuchsia_posix::Errno,
8377        >>(
8378            result,
8379            self.tx_id,
8380            0x1fd74ee8b9a4a876,
8381            fidl::encoding::DynamicFlags::empty(),
8382        )
8383    }
8384}
8385
8386#[must_use = "FIDL methods require a response to be sent"]
8387#[derive(Debug)]
8388pub struct BaseDatagramSocketGetReuseAddressResponder {
8389    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8390    tx_id: u32,
8391}
8392
8393/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8394/// if the responder is dropped without sending a response, so that the client
8395/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8396impl std::ops::Drop for BaseDatagramSocketGetReuseAddressResponder {
8397    fn drop(&mut self) {
8398        self.control_handle.shutdown();
8399        // Safety: drops once, never accessed again
8400        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8401    }
8402}
8403
8404impl fidl::endpoints::Responder for BaseDatagramSocketGetReuseAddressResponder {
8405    type ControlHandle = BaseDatagramSocketControlHandle;
8406
8407    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8408        &self.control_handle
8409    }
8410
8411    fn drop_without_shutdown(mut self) {
8412        // Safety: drops once, never accessed again due to mem::forget
8413        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8414        // Prevent Drop from running (which would shut down the channel)
8415        std::mem::forget(self);
8416    }
8417}
8418
8419impl BaseDatagramSocketGetReuseAddressResponder {
8420    /// Sends a response to the FIDL transaction.
8421    ///
8422    /// Sets the channel to shutdown if an error occurs.
8423    pub fn send(
8424        self,
8425        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
8426    ) -> Result<(), fidl::Error> {
8427        let _result = self.send_raw(result);
8428        if _result.is_err() {
8429            self.control_handle.shutdown();
8430        }
8431        self.drop_without_shutdown();
8432        _result
8433    }
8434
8435    /// Similar to "send" but does not shutdown the channel if an error occurs.
8436    pub fn send_no_shutdown_on_err(
8437        self,
8438        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
8439    ) -> Result<(), fidl::Error> {
8440        let _result = self.send_raw(result);
8441        self.drop_without_shutdown();
8442        _result
8443    }
8444
8445    fn send_raw(
8446        &self,
8447        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
8448    ) -> Result<(), fidl::Error> {
8449        self.control_handle.inner.send::<fidl::encoding::ResultType<
8450            BaseSocketGetReuseAddressResponse,
8451            fidl_fuchsia_posix::Errno,
8452        >>(
8453            result.map(|value| (value,)),
8454            self.tx_id,
8455            0x67b7206b8d1bc0a5,
8456            fidl::encoding::DynamicFlags::empty(),
8457        )
8458    }
8459}
8460
8461#[must_use = "FIDL methods require a response to be sent"]
8462#[derive(Debug)]
8463pub struct BaseDatagramSocketGetErrorResponder {
8464    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8465    tx_id: u32,
8466}
8467
8468/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8469/// if the responder is dropped without sending a response, so that the client
8470/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8471impl std::ops::Drop for BaseDatagramSocketGetErrorResponder {
8472    fn drop(&mut self) {
8473        self.control_handle.shutdown();
8474        // Safety: drops once, never accessed again
8475        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8476    }
8477}
8478
8479impl fidl::endpoints::Responder for BaseDatagramSocketGetErrorResponder {
8480    type ControlHandle = BaseDatagramSocketControlHandle;
8481
8482    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8483        &self.control_handle
8484    }
8485
8486    fn drop_without_shutdown(mut self) {
8487        // Safety: drops once, never accessed again due to mem::forget
8488        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8489        // Prevent Drop from running (which would shut down the channel)
8490        std::mem::forget(self);
8491    }
8492}
8493
8494impl BaseDatagramSocketGetErrorResponder {
8495    /// Sends a response to the FIDL transaction.
8496    ///
8497    /// Sets the channel to shutdown if an error occurs.
8498    pub fn send(
8499        self,
8500        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8501    ) -> Result<(), fidl::Error> {
8502        let _result = self.send_raw(result);
8503        if _result.is_err() {
8504            self.control_handle.shutdown();
8505        }
8506        self.drop_without_shutdown();
8507        _result
8508    }
8509
8510    /// Similar to "send" but does not shutdown the channel if an error occurs.
8511    pub fn send_no_shutdown_on_err(
8512        self,
8513        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8514    ) -> Result<(), fidl::Error> {
8515        let _result = self.send_raw(result);
8516        self.drop_without_shutdown();
8517        _result
8518    }
8519
8520    fn send_raw(
8521        &self,
8522        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8523    ) -> Result<(), fidl::Error> {
8524        self.control_handle.inner.send::<fidl::encoding::ResultType<
8525            fidl::encoding::EmptyStruct,
8526            fidl_fuchsia_posix::Errno,
8527        >>(
8528            result,
8529            self.tx_id,
8530            0x5aad39b33e5f6ebb,
8531            fidl::encoding::DynamicFlags::empty(),
8532        )
8533    }
8534}
8535
8536#[must_use = "FIDL methods require a response to be sent"]
8537#[derive(Debug)]
8538pub struct BaseDatagramSocketSetBroadcastResponder {
8539    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8540    tx_id: u32,
8541}
8542
8543/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8544/// if the responder is dropped without sending a response, so that the client
8545/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8546impl std::ops::Drop for BaseDatagramSocketSetBroadcastResponder {
8547    fn drop(&mut self) {
8548        self.control_handle.shutdown();
8549        // Safety: drops once, never accessed again
8550        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8551    }
8552}
8553
8554impl fidl::endpoints::Responder for BaseDatagramSocketSetBroadcastResponder {
8555    type ControlHandle = BaseDatagramSocketControlHandle;
8556
8557    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8558        &self.control_handle
8559    }
8560
8561    fn drop_without_shutdown(mut self) {
8562        // Safety: drops once, never accessed again due to mem::forget
8563        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8564        // Prevent Drop from running (which would shut down the channel)
8565        std::mem::forget(self);
8566    }
8567}
8568
8569impl BaseDatagramSocketSetBroadcastResponder {
8570    /// Sends a response to the FIDL transaction.
8571    ///
8572    /// Sets the channel to shutdown if an error occurs.
8573    pub fn send(
8574        self,
8575        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8576    ) -> Result<(), fidl::Error> {
8577        let _result = self.send_raw(result);
8578        if _result.is_err() {
8579            self.control_handle.shutdown();
8580        }
8581        self.drop_without_shutdown();
8582        _result
8583    }
8584
8585    /// Similar to "send" but does not shutdown the channel if an error occurs.
8586    pub fn send_no_shutdown_on_err(
8587        self,
8588        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8589    ) -> Result<(), fidl::Error> {
8590        let _result = self.send_raw(result);
8591        self.drop_without_shutdown();
8592        _result
8593    }
8594
8595    fn send_raw(
8596        &self,
8597        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8598    ) -> Result<(), fidl::Error> {
8599        self.control_handle.inner.send::<fidl::encoding::ResultType<
8600            fidl::encoding::EmptyStruct,
8601            fidl_fuchsia_posix::Errno,
8602        >>(
8603            result,
8604            self.tx_id,
8605            0x6023e081ce3cd947,
8606            fidl::encoding::DynamicFlags::empty(),
8607        )
8608    }
8609}
8610
8611#[must_use = "FIDL methods require a response to be sent"]
8612#[derive(Debug)]
8613pub struct BaseDatagramSocketGetBroadcastResponder {
8614    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8615    tx_id: u32,
8616}
8617
8618/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8619/// if the responder is dropped without sending a response, so that the client
8620/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8621impl std::ops::Drop for BaseDatagramSocketGetBroadcastResponder {
8622    fn drop(&mut self) {
8623        self.control_handle.shutdown();
8624        // Safety: drops once, never accessed again
8625        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8626    }
8627}
8628
8629impl fidl::endpoints::Responder for BaseDatagramSocketGetBroadcastResponder {
8630    type ControlHandle = BaseDatagramSocketControlHandle;
8631
8632    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8633        &self.control_handle
8634    }
8635
8636    fn drop_without_shutdown(mut self) {
8637        // Safety: drops once, never accessed again due to mem::forget
8638        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8639        // Prevent Drop from running (which would shut down the channel)
8640        std::mem::forget(self);
8641    }
8642}
8643
8644impl BaseDatagramSocketGetBroadcastResponder {
8645    /// Sends a response to the FIDL transaction.
8646    ///
8647    /// Sets the channel to shutdown if an error occurs.
8648    pub fn send(
8649        self,
8650        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
8651    ) -> Result<(), fidl::Error> {
8652        let _result = self.send_raw(result);
8653        if _result.is_err() {
8654            self.control_handle.shutdown();
8655        }
8656        self.drop_without_shutdown();
8657        _result
8658    }
8659
8660    /// Similar to "send" but does not shutdown the channel if an error occurs.
8661    pub fn send_no_shutdown_on_err(
8662        self,
8663        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
8664    ) -> Result<(), fidl::Error> {
8665        let _result = self.send_raw(result);
8666        self.drop_without_shutdown();
8667        _result
8668    }
8669
8670    fn send_raw(
8671        &self,
8672        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
8673    ) -> Result<(), fidl::Error> {
8674        self.control_handle.inner.send::<fidl::encoding::ResultType<
8675            BaseSocketGetBroadcastResponse,
8676            fidl_fuchsia_posix::Errno,
8677        >>(
8678            result.map(|value| (value,)),
8679            self.tx_id,
8680            0x68796fc556f9780d,
8681            fidl::encoding::DynamicFlags::empty(),
8682        )
8683    }
8684}
8685
8686#[must_use = "FIDL methods require a response to be sent"]
8687#[derive(Debug)]
8688pub struct BaseDatagramSocketSetSendBufferResponder {
8689    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8690    tx_id: u32,
8691}
8692
8693/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8694/// if the responder is dropped without sending a response, so that the client
8695/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8696impl std::ops::Drop for BaseDatagramSocketSetSendBufferResponder {
8697    fn drop(&mut self) {
8698        self.control_handle.shutdown();
8699        // Safety: drops once, never accessed again
8700        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8701    }
8702}
8703
8704impl fidl::endpoints::Responder for BaseDatagramSocketSetSendBufferResponder {
8705    type ControlHandle = BaseDatagramSocketControlHandle;
8706
8707    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8708        &self.control_handle
8709    }
8710
8711    fn drop_without_shutdown(mut self) {
8712        // Safety: drops once, never accessed again due to mem::forget
8713        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8714        // Prevent Drop from running (which would shut down the channel)
8715        std::mem::forget(self);
8716    }
8717}
8718
8719impl BaseDatagramSocketSetSendBufferResponder {
8720    /// Sends a response to the FIDL transaction.
8721    ///
8722    /// Sets the channel to shutdown if an error occurs.
8723    pub fn send(
8724        self,
8725        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8726    ) -> Result<(), fidl::Error> {
8727        let _result = self.send_raw(result);
8728        if _result.is_err() {
8729            self.control_handle.shutdown();
8730        }
8731        self.drop_without_shutdown();
8732        _result
8733    }
8734
8735    /// Similar to "send" but does not shutdown the channel if an error occurs.
8736    pub fn send_no_shutdown_on_err(
8737        self,
8738        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8739    ) -> Result<(), fidl::Error> {
8740        let _result = self.send_raw(result);
8741        self.drop_without_shutdown();
8742        _result
8743    }
8744
8745    fn send_raw(
8746        &self,
8747        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8748    ) -> Result<(), fidl::Error> {
8749        self.control_handle.inner.send::<fidl::encoding::ResultType<
8750            fidl::encoding::EmptyStruct,
8751            fidl_fuchsia_posix::Errno,
8752        >>(
8753            result,
8754            self.tx_id,
8755            0x756eac32d73a7a70,
8756            fidl::encoding::DynamicFlags::empty(),
8757        )
8758    }
8759}
8760
8761#[must_use = "FIDL methods require a response to be sent"]
8762#[derive(Debug)]
8763pub struct BaseDatagramSocketGetSendBufferResponder {
8764    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8765    tx_id: u32,
8766}
8767
8768/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8769/// if the responder is dropped without sending a response, so that the client
8770/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8771impl std::ops::Drop for BaseDatagramSocketGetSendBufferResponder {
8772    fn drop(&mut self) {
8773        self.control_handle.shutdown();
8774        // Safety: drops once, never accessed again
8775        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8776    }
8777}
8778
8779impl fidl::endpoints::Responder for BaseDatagramSocketGetSendBufferResponder {
8780    type ControlHandle = BaseDatagramSocketControlHandle;
8781
8782    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8783        &self.control_handle
8784    }
8785
8786    fn drop_without_shutdown(mut self) {
8787        // Safety: drops once, never accessed again due to mem::forget
8788        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8789        // Prevent Drop from running (which would shut down the channel)
8790        std::mem::forget(self);
8791    }
8792}
8793
8794impl BaseDatagramSocketGetSendBufferResponder {
8795    /// Sends a response to the FIDL transaction.
8796    ///
8797    /// Sets the channel to shutdown if an error occurs.
8798    pub fn send(
8799        self,
8800        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
8801    ) -> Result<(), fidl::Error> {
8802        let _result = self.send_raw(result);
8803        if _result.is_err() {
8804            self.control_handle.shutdown();
8805        }
8806        self.drop_without_shutdown();
8807        _result
8808    }
8809
8810    /// Similar to "send" but does not shutdown the channel if an error occurs.
8811    pub fn send_no_shutdown_on_err(
8812        self,
8813        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
8814    ) -> Result<(), fidl::Error> {
8815        let _result = self.send_raw(result);
8816        self.drop_without_shutdown();
8817        _result
8818    }
8819
8820    fn send_raw(
8821        &self,
8822        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
8823    ) -> Result<(), fidl::Error> {
8824        self.control_handle.inner.send::<fidl::encoding::ResultType<
8825            BaseSocketGetSendBufferResponse,
8826            fidl_fuchsia_posix::Errno,
8827        >>(
8828            result.map(|value_bytes| (value_bytes,)),
8829            self.tx_id,
8830            0x78a52fd9c7b2410b,
8831            fidl::encoding::DynamicFlags::empty(),
8832        )
8833    }
8834}
8835
8836#[must_use = "FIDL methods require a response to be sent"]
8837#[derive(Debug)]
8838pub struct BaseDatagramSocketSetReceiveBufferResponder {
8839    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8840    tx_id: u32,
8841}
8842
8843/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8844/// if the responder is dropped without sending a response, so that the client
8845/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8846impl std::ops::Drop for BaseDatagramSocketSetReceiveBufferResponder {
8847    fn drop(&mut self) {
8848        self.control_handle.shutdown();
8849        // Safety: drops once, never accessed again
8850        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8851    }
8852}
8853
8854impl fidl::endpoints::Responder for BaseDatagramSocketSetReceiveBufferResponder {
8855    type ControlHandle = BaseDatagramSocketControlHandle;
8856
8857    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8858        &self.control_handle
8859    }
8860
8861    fn drop_without_shutdown(mut self) {
8862        // Safety: drops once, never accessed again due to mem::forget
8863        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8864        // Prevent Drop from running (which would shut down the channel)
8865        std::mem::forget(self);
8866    }
8867}
8868
8869impl BaseDatagramSocketSetReceiveBufferResponder {
8870    /// Sends a response to the FIDL transaction.
8871    ///
8872    /// Sets the channel to shutdown if an error occurs.
8873    pub fn send(
8874        self,
8875        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8876    ) -> Result<(), fidl::Error> {
8877        let _result = self.send_raw(result);
8878        if _result.is_err() {
8879            self.control_handle.shutdown();
8880        }
8881        self.drop_without_shutdown();
8882        _result
8883    }
8884
8885    /// Similar to "send" but does not shutdown the channel if an error occurs.
8886    pub fn send_no_shutdown_on_err(
8887        self,
8888        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8889    ) -> Result<(), fidl::Error> {
8890        let _result = self.send_raw(result);
8891        self.drop_without_shutdown();
8892        _result
8893    }
8894
8895    fn send_raw(
8896        &self,
8897        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8898    ) -> Result<(), fidl::Error> {
8899        self.control_handle.inner.send::<fidl::encoding::ResultType<
8900            fidl::encoding::EmptyStruct,
8901            fidl_fuchsia_posix::Errno,
8902        >>(
8903            result,
8904            self.tx_id,
8905            0x6b0cf2f1919c7001,
8906            fidl::encoding::DynamicFlags::empty(),
8907        )
8908    }
8909}
8910
8911#[must_use = "FIDL methods require a response to be sent"]
8912#[derive(Debug)]
8913pub struct BaseDatagramSocketGetReceiveBufferResponder {
8914    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8915    tx_id: u32,
8916}
8917
8918/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8919/// if the responder is dropped without sending a response, so that the client
8920/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8921impl std::ops::Drop for BaseDatagramSocketGetReceiveBufferResponder {
8922    fn drop(&mut self) {
8923        self.control_handle.shutdown();
8924        // Safety: drops once, never accessed again
8925        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8926    }
8927}
8928
8929impl fidl::endpoints::Responder for BaseDatagramSocketGetReceiveBufferResponder {
8930    type ControlHandle = BaseDatagramSocketControlHandle;
8931
8932    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8933        &self.control_handle
8934    }
8935
8936    fn drop_without_shutdown(mut self) {
8937        // Safety: drops once, never accessed again due to mem::forget
8938        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8939        // Prevent Drop from running (which would shut down the channel)
8940        std::mem::forget(self);
8941    }
8942}
8943
8944impl BaseDatagramSocketGetReceiveBufferResponder {
8945    /// Sends a response to the FIDL transaction.
8946    ///
8947    /// Sets the channel to shutdown if an error occurs.
8948    pub fn send(
8949        self,
8950        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
8951    ) -> Result<(), fidl::Error> {
8952        let _result = self.send_raw(result);
8953        if _result.is_err() {
8954            self.control_handle.shutdown();
8955        }
8956        self.drop_without_shutdown();
8957        _result
8958    }
8959
8960    /// Similar to "send" but does not shutdown the channel if an error occurs.
8961    pub fn send_no_shutdown_on_err(
8962        self,
8963        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
8964    ) -> Result<(), fidl::Error> {
8965        let _result = self.send_raw(result);
8966        self.drop_without_shutdown();
8967        _result
8968    }
8969
8970    fn send_raw(
8971        &self,
8972        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
8973    ) -> Result<(), fidl::Error> {
8974        self.control_handle.inner.send::<fidl::encoding::ResultType<
8975            BaseSocketGetReceiveBufferResponse,
8976            fidl_fuchsia_posix::Errno,
8977        >>(
8978            result.map(|value_bytes| (value_bytes,)),
8979            self.tx_id,
8980            0x14c1a4b64f709e5c,
8981            fidl::encoding::DynamicFlags::empty(),
8982        )
8983    }
8984}
8985
8986#[must_use = "FIDL methods require a response to be sent"]
8987#[derive(Debug)]
8988pub struct BaseDatagramSocketSetKeepAliveResponder {
8989    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8990    tx_id: u32,
8991}
8992
8993/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8994/// if the responder is dropped without sending a response, so that the client
8995/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8996impl std::ops::Drop for BaseDatagramSocketSetKeepAliveResponder {
8997    fn drop(&mut self) {
8998        self.control_handle.shutdown();
8999        // Safety: drops once, never accessed again
9000        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9001    }
9002}
9003
9004impl fidl::endpoints::Responder for BaseDatagramSocketSetKeepAliveResponder {
9005    type ControlHandle = BaseDatagramSocketControlHandle;
9006
9007    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9008        &self.control_handle
9009    }
9010
9011    fn drop_without_shutdown(mut self) {
9012        // Safety: drops once, never accessed again due to mem::forget
9013        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9014        // Prevent Drop from running (which would shut down the channel)
9015        std::mem::forget(self);
9016    }
9017}
9018
9019impl BaseDatagramSocketSetKeepAliveResponder {
9020    /// Sends a response to the FIDL transaction.
9021    ///
9022    /// Sets the channel to shutdown if an error occurs.
9023    pub fn send(
9024        self,
9025        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9026    ) -> Result<(), fidl::Error> {
9027        let _result = self.send_raw(result);
9028        if _result.is_err() {
9029            self.control_handle.shutdown();
9030        }
9031        self.drop_without_shutdown();
9032        _result
9033    }
9034
9035    /// Similar to "send" but does not shutdown the channel if an error occurs.
9036    pub fn send_no_shutdown_on_err(
9037        self,
9038        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9039    ) -> Result<(), fidl::Error> {
9040        let _result = self.send_raw(result);
9041        self.drop_without_shutdown();
9042        _result
9043    }
9044
9045    fn send_raw(
9046        &self,
9047        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9048    ) -> Result<(), fidl::Error> {
9049        self.control_handle.inner.send::<fidl::encoding::ResultType<
9050            fidl::encoding::EmptyStruct,
9051            fidl_fuchsia_posix::Errno,
9052        >>(
9053            result,
9054            self.tx_id,
9055            0x572df8f0b920d2c7,
9056            fidl::encoding::DynamicFlags::empty(),
9057        )
9058    }
9059}
9060
9061#[must_use = "FIDL methods require a response to be sent"]
9062#[derive(Debug)]
9063pub struct BaseDatagramSocketGetKeepAliveResponder {
9064    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9065    tx_id: u32,
9066}
9067
9068/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9069/// if the responder is dropped without sending a response, so that the client
9070/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9071impl std::ops::Drop for BaseDatagramSocketGetKeepAliveResponder {
9072    fn drop(&mut self) {
9073        self.control_handle.shutdown();
9074        // Safety: drops once, never accessed again
9075        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9076    }
9077}
9078
9079impl fidl::endpoints::Responder for BaseDatagramSocketGetKeepAliveResponder {
9080    type ControlHandle = BaseDatagramSocketControlHandle;
9081
9082    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9083        &self.control_handle
9084    }
9085
9086    fn drop_without_shutdown(mut self) {
9087        // Safety: drops once, never accessed again due to mem::forget
9088        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9089        // Prevent Drop from running (which would shut down the channel)
9090        std::mem::forget(self);
9091    }
9092}
9093
9094impl BaseDatagramSocketGetKeepAliveResponder {
9095    /// Sends a response to the FIDL transaction.
9096    ///
9097    /// Sets the channel to shutdown if an error occurs.
9098    pub fn send(
9099        self,
9100        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9101    ) -> Result<(), fidl::Error> {
9102        let _result = self.send_raw(result);
9103        if _result.is_err() {
9104            self.control_handle.shutdown();
9105        }
9106        self.drop_without_shutdown();
9107        _result
9108    }
9109
9110    /// Similar to "send" but does not shutdown the channel if an error occurs.
9111    pub fn send_no_shutdown_on_err(
9112        self,
9113        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9114    ) -> Result<(), fidl::Error> {
9115        let _result = self.send_raw(result);
9116        self.drop_without_shutdown();
9117        _result
9118    }
9119
9120    fn send_raw(
9121        &self,
9122        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9123    ) -> Result<(), fidl::Error> {
9124        self.control_handle.inner.send::<fidl::encoding::ResultType<
9125            BaseSocketGetKeepAliveResponse,
9126            fidl_fuchsia_posix::Errno,
9127        >>(
9128            result.map(|value| (value,)),
9129            self.tx_id,
9130            0x2dd29d3215f2c9d2,
9131            fidl::encoding::DynamicFlags::empty(),
9132        )
9133    }
9134}
9135
9136#[must_use = "FIDL methods require a response to be sent"]
9137#[derive(Debug)]
9138pub struct BaseDatagramSocketSetOutOfBandInlineResponder {
9139    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9140    tx_id: u32,
9141}
9142
9143/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9144/// if the responder is dropped without sending a response, so that the client
9145/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9146impl std::ops::Drop for BaseDatagramSocketSetOutOfBandInlineResponder {
9147    fn drop(&mut self) {
9148        self.control_handle.shutdown();
9149        // Safety: drops once, never accessed again
9150        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9151    }
9152}
9153
9154impl fidl::endpoints::Responder for BaseDatagramSocketSetOutOfBandInlineResponder {
9155    type ControlHandle = BaseDatagramSocketControlHandle;
9156
9157    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9158        &self.control_handle
9159    }
9160
9161    fn drop_without_shutdown(mut self) {
9162        // Safety: drops once, never accessed again due to mem::forget
9163        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9164        // Prevent Drop from running (which would shut down the channel)
9165        std::mem::forget(self);
9166    }
9167}
9168
9169impl BaseDatagramSocketSetOutOfBandInlineResponder {
9170    /// Sends a response to the FIDL transaction.
9171    ///
9172    /// Sets the channel to shutdown if an error occurs.
9173    pub fn send(
9174        self,
9175        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9176    ) -> Result<(), fidl::Error> {
9177        let _result = self.send_raw(result);
9178        if _result.is_err() {
9179            self.control_handle.shutdown();
9180        }
9181        self.drop_without_shutdown();
9182        _result
9183    }
9184
9185    /// Similar to "send" but does not shutdown the channel if an error occurs.
9186    pub fn send_no_shutdown_on_err(
9187        self,
9188        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9189    ) -> Result<(), fidl::Error> {
9190        let _result = self.send_raw(result);
9191        self.drop_without_shutdown();
9192        _result
9193    }
9194
9195    fn send_raw(
9196        &self,
9197        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9198    ) -> Result<(), fidl::Error> {
9199        self.control_handle.inner.send::<fidl::encoding::ResultType<
9200            fidl::encoding::EmptyStruct,
9201            fidl_fuchsia_posix::Errno,
9202        >>(
9203            result,
9204            self.tx_id,
9205            0x3ecb49968bee439,
9206            fidl::encoding::DynamicFlags::empty(),
9207        )
9208    }
9209}
9210
9211#[must_use = "FIDL methods require a response to be sent"]
9212#[derive(Debug)]
9213pub struct BaseDatagramSocketGetOutOfBandInlineResponder {
9214    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9215    tx_id: u32,
9216}
9217
9218/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9219/// if the responder is dropped without sending a response, so that the client
9220/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9221impl std::ops::Drop for BaseDatagramSocketGetOutOfBandInlineResponder {
9222    fn drop(&mut self) {
9223        self.control_handle.shutdown();
9224        // Safety: drops once, never accessed again
9225        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9226    }
9227}
9228
9229impl fidl::endpoints::Responder for BaseDatagramSocketGetOutOfBandInlineResponder {
9230    type ControlHandle = BaseDatagramSocketControlHandle;
9231
9232    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9233        &self.control_handle
9234    }
9235
9236    fn drop_without_shutdown(mut self) {
9237        // Safety: drops once, never accessed again due to mem::forget
9238        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9239        // Prevent Drop from running (which would shut down the channel)
9240        std::mem::forget(self);
9241    }
9242}
9243
9244impl BaseDatagramSocketGetOutOfBandInlineResponder {
9245    /// Sends a response to the FIDL transaction.
9246    ///
9247    /// Sets the channel to shutdown if an error occurs.
9248    pub fn send(
9249        self,
9250        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9251    ) -> Result<(), fidl::Error> {
9252        let _result = self.send_raw(result);
9253        if _result.is_err() {
9254            self.control_handle.shutdown();
9255        }
9256        self.drop_without_shutdown();
9257        _result
9258    }
9259
9260    /// Similar to "send" but does not shutdown the channel if an error occurs.
9261    pub fn send_no_shutdown_on_err(
9262        self,
9263        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9264    ) -> Result<(), fidl::Error> {
9265        let _result = self.send_raw(result);
9266        self.drop_without_shutdown();
9267        _result
9268    }
9269
9270    fn send_raw(
9271        &self,
9272        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9273    ) -> Result<(), fidl::Error> {
9274        self.control_handle.inner.send::<fidl::encoding::ResultType<
9275            BaseSocketGetOutOfBandInlineResponse,
9276            fidl_fuchsia_posix::Errno,
9277        >>(
9278            result.map(|value| (value,)),
9279            self.tx_id,
9280            0x348c1ab3aeca1745,
9281            fidl::encoding::DynamicFlags::empty(),
9282        )
9283    }
9284}
9285
9286#[must_use = "FIDL methods require a response to be sent"]
9287#[derive(Debug)]
9288pub struct BaseDatagramSocketSetNoCheckResponder {
9289    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9290    tx_id: u32,
9291}
9292
9293/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9294/// if the responder is dropped without sending a response, so that the client
9295/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9296impl std::ops::Drop for BaseDatagramSocketSetNoCheckResponder {
9297    fn drop(&mut self) {
9298        self.control_handle.shutdown();
9299        // Safety: drops once, never accessed again
9300        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9301    }
9302}
9303
9304impl fidl::endpoints::Responder for BaseDatagramSocketSetNoCheckResponder {
9305    type ControlHandle = BaseDatagramSocketControlHandle;
9306
9307    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9308        &self.control_handle
9309    }
9310
9311    fn drop_without_shutdown(mut self) {
9312        // Safety: drops once, never accessed again due to mem::forget
9313        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9314        // Prevent Drop from running (which would shut down the channel)
9315        std::mem::forget(self);
9316    }
9317}
9318
9319impl BaseDatagramSocketSetNoCheckResponder {
9320    /// Sends a response to the FIDL transaction.
9321    ///
9322    /// Sets the channel to shutdown if an error occurs.
9323    pub fn send(
9324        self,
9325        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9326    ) -> Result<(), fidl::Error> {
9327        let _result = self.send_raw(result);
9328        if _result.is_err() {
9329            self.control_handle.shutdown();
9330        }
9331        self.drop_without_shutdown();
9332        _result
9333    }
9334
9335    /// Similar to "send" but does not shutdown the channel if an error occurs.
9336    pub fn send_no_shutdown_on_err(
9337        self,
9338        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9339    ) -> Result<(), fidl::Error> {
9340        let _result = self.send_raw(result);
9341        self.drop_without_shutdown();
9342        _result
9343    }
9344
9345    fn send_raw(
9346        &self,
9347        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9348    ) -> Result<(), fidl::Error> {
9349        self.control_handle.inner.send::<fidl::encoding::ResultType<
9350            fidl::encoding::EmptyStruct,
9351            fidl_fuchsia_posix::Errno,
9352        >>(
9353            result,
9354            self.tx_id,
9355            0x6bbf00c53a4c78c2,
9356            fidl::encoding::DynamicFlags::empty(),
9357        )
9358    }
9359}
9360
9361#[must_use = "FIDL methods require a response to be sent"]
9362#[derive(Debug)]
9363pub struct BaseDatagramSocketGetNoCheckResponder {
9364    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9365    tx_id: u32,
9366}
9367
9368/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9369/// if the responder is dropped without sending a response, so that the client
9370/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9371impl std::ops::Drop for BaseDatagramSocketGetNoCheckResponder {
9372    fn drop(&mut self) {
9373        self.control_handle.shutdown();
9374        // Safety: drops once, never accessed again
9375        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9376    }
9377}
9378
9379impl fidl::endpoints::Responder for BaseDatagramSocketGetNoCheckResponder {
9380    type ControlHandle = BaseDatagramSocketControlHandle;
9381
9382    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9383        &self.control_handle
9384    }
9385
9386    fn drop_without_shutdown(mut self) {
9387        // Safety: drops once, never accessed again due to mem::forget
9388        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9389        // Prevent Drop from running (which would shut down the channel)
9390        std::mem::forget(self);
9391    }
9392}
9393
9394impl BaseDatagramSocketGetNoCheckResponder {
9395    /// Sends a response to the FIDL transaction.
9396    ///
9397    /// Sets the channel to shutdown if an error occurs.
9398    pub fn send(
9399        self,
9400        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9401    ) -> Result<(), fidl::Error> {
9402        let _result = self.send_raw(result);
9403        if _result.is_err() {
9404            self.control_handle.shutdown();
9405        }
9406        self.drop_without_shutdown();
9407        _result
9408    }
9409
9410    /// Similar to "send" but does not shutdown the channel if an error occurs.
9411    pub fn send_no_shutdown_on_err(
9412        self,
9413        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9414    ) -> Result<(), fidl::Error> {
9415        let _result = self.send_raw(result);
9416        self.drop_without_shutdown();
9417        _result
9418    }
9419
9420    fn send_raw(
9421        &self,
9422        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9423    ) -> Result<(), fidl::Error> {
9424        self.control_handle.inner.send::<fidl::encoding::ResultType<
9425            BaseSocketGetNoCheckResponse,
9426            fidl_fuchsia_posix::Errno,
9427        >>(
9428            result.map(|value| (value,)),
9429            self.tx_id,
9430            0x2cd4249286417694,
9431            fidl::encoding::DynamicFlags::empty(),
9432        )
9433    }
9434}
9435
9436#[must_use = "FIDL methods require a response to be sent"]
9437#[derive(Debug)]
9438pub struct BaseDatagramSocketSetLingerResponder {
9439    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9440    tx_id: u32,
9441}
9442
9443/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9444/// if the responder is dropped without sending a response, so that the client
9445/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9446impl std::ops::Drop for BaseDatagramSocketSetLingerResponder {
9447    fn drop(&mut self) {
9448        self.control_handle.shutdown();
9449        // Safety: drops once, never accessed again
9450        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9451    }
9452}
9453
9454impl fidl::endpoints::Responder for BaseDatagramSocketSetLingerResponder {
9455    type ControlHandle = BaseDatagramSocketControlHandle;
9456
9457    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9458        &self.control_handle
9459    }
9460
9461    fn drop_without_shutdown(mut self) {
9462        // Safety: drops once, never accessed again due to mem::forget
9463        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9464        // Prevent Drop from running (which would shut down the channel)
9465        std::mem::forget(self);
9466    }
9467}
9468
9469impl BaseDatagramSocketSetLingerResponder {
9470    /// Sends a response to the FIDL transaction.
9471    ///
9472    /// Sets the channel to shutdown if an error occurs.
9473    pub fn send(
9474        self,
9475        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9476    ) -> Result<(), fidl::Error> {
9477        let _result = self.send_raw(result);
9478        if _result.is_err() {
9479            self.control_handle.shutdown();
9480        }
9481        self.drop_without_shutdown();
9482        _result
9483    }
9484
9485    /// Similar to "send" but does not shutdown the channel if an error occurs.
9486    pub fn send_no_shutdown_on_err(
9487        self,
9488        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9489    ) -> Result<(), fidl::Error> {
9490        let _result = self.send_raw(result);
9491        self.drop_without_shutdown();
9492        _result
9493    }
9494
9495    fn send_raw(
9496        &self,
9497        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9498    ) -> Result<(), fidl::Error> {
9499        self.control_handle.inner.send::<fidl::encoding::ResultType<
9500            fidl::encoding::EmptyStruct,
9501            fidl_fuchsia_posix::Errno,
9502        >>(
9503            result,
9504            self.tx_id,
9505            0x45386351246e998e,
9506            fidl::encoding::DynamicFlags::empty(),
9507        )
9508    }
9509}
9510
9511#[must_use = "FIDL methods require a response to be sent"]
9512#[derive(Debug)]
9513pub struct BaseDatagramSocketGetLingerResponder {
9514    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9515    tx_id: u32,
9516}
9517
9518/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9519/// if the responder is dropped without sending a response, so that the client
9520/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9521impl std::ops::Drop for BaseDatagramSocketGetLingerResponder {
9522    fn drop(&mut self) {
9523        self.control_handle.shutdown();
9524        // Safety: drops once, never accessed again
9525        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9526    }
9527}
9528
9529impl fidl::endpoints::Responder for BaseDatagramSocketGetLingerResponder {
9530    type ControlHandle = BaseDatagramSocketControlHandle;
9531
9532    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9533        &self.control_handle
9534    }
9535
9536    fn drop_without_shutdown(mut self) {
9537        // Safety: drops once, never accessed again due to mem::forget
9538        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9539        // Prevent Drop from running (which would shut down the channel)
9540        std::mem::forget(self);
9541    }
9542}
9543
9544impl BaseDatagramSocketGetLingerResponder {
9545    /// Sends a response to the FIDL transaction.
9546    ///
9547    /// Sets the channel to shutdown if an error occurs.
9548    pub fn send(
9549        self,
9550        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
9551    ) -> Result<(), fidl::Error> {
9552        let _result = self.send_raw(result);
9553        if _result.is_err() {
9554            self.control_handle.shutdown();
9555        }
9556        self.drop_without_shutdown();
9557        _result
9558    }
9559
9560    /// Similar to "send" but does not shutdown the channel if an error occurs.
9561    pub fn send_no_shutdown_on_err(
9562        self,
9563        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
9564    ) -> Result<(), fidl::Error> {
9565        let _result = self.send_raw(result);
9566        self.drop_without_shutdown();
9567        _result
9568    }
9569
9570    fn send_raw(
9571        &self,
9572        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
9573    ) -> Result<(), fidl::Error> {
9574        self.control_handle.inner.send::<fidl::encoding::ResultType<
9575            BaseSocketGetLingerResponse,
9576            fidl_fuchsia_posix::Errno,
9577        >>(
9578            result,
9579            self.tx_id,
9580            0x48eb20fc5ccb0e45,
9581            fidl::encoding::DynamicFlags::empty(),
9582        )
9583    }
9584}
9585
9586#[must_use = "FIDL methods require a response to be sent"]
9587#[derive(Debug)]
9588pub struct BaseDatagramSocketSetReusePortResponder {
9589    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9590    tx_id: u32,
9591}
9592
9593/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9594/// if the responder is dropped without sending a response, so that the client
9595/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9596impl std::ops::Drop for BaseDatagramSocketSetReusePortResponder {
9597    fn drop(&mut self) {
9598        self.control_handle.shutdown();
9599        // Safety: drops once, never accessed again
9600        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9601    }
9602}
9603
9604impl fidl::endpoints::Responder for BaseDatagramSocketSetReusePortResponder {
9605    type ControlHandle = BaseDatagramSocketControlHandle;
9606
9607    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9608        &self.control_handle
9609    }
9610
9611    fn drop_without_shutdown(mut self) {
9612        // Safety: drops once, never accessed again due to mem::forget
9613        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9614        // Prevent Drop from running (which would shut down the channel)
9615        std::mem::forget(self);
9616    }
9617}
9618
9619impl BaseDatagramSocketSetReusePortResponder {
9620    /// Sends a response to the FIDL transaction.
9621    ///
9622    /// Sets the channel to shutdown if an error occurs.
9623    pub fn send(
9624        self,
9625        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9626    ) -> Result<(), fidl::Error> {
9627        let _result = self.send_raw(result);
9628        if _result.is_err() {
9629            self.control_handle.shutdown();
9630        }
9631        self.drop_without_shutdown();
9632        _result
9633    }
9634
9635    /// Similar to "send" but does not shutdown the channel if an error occurs.
9636    pub fn send_no_shutdown_on_err(
9637        self,
9638        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9639    ) -> Result<(), fidl::Error> {
9640        let _result = self.send_raw(result);
9641        self.drop_without_shutdown();
9642        _result
9643    }
9644
9645    fn send_raw(
9646        &self,
9647        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9648    ) -> Result<(), fidl::Error> {
9649        self.control_handle.inner.send::<fidl::encoding::ResultType<
9650            fidl::encoding::EmptyStruct,
9651            fidl_fuchsia_posix::Errno,
9652        >>(
9653            result,
9654            self.tx_id,
9655            0x547dc9cc0455189e,
9656            fidl::encoding::DynamicFlags::empty(),
9657        )
9658    }
9659}
9660
9661#[must_use = "FIDL methods require a response to be sent"]
9662#[derive(Debug)]
9663pub struct BaseDatagramSocketSetReusePortDeprecatedResponder {
9664    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9665    tx_id: u32,
9666}
9667
9668/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9669/// if the responder is dropped without sending a response, so that the client
9670/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9671impl std::ops::Drop for BaseDatagramSocketSetReusePortDeprecatedResponder {
9672    fn drop(&mut self) {
9673        self.control_handle.shutdown();
9674        // Safety: drops once, never accessed again
9675        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9676    }
9677}
9678
9679impl fidl::endpoints::Responder for BaseDatagramSocketSetReusePortDeprecatedResponder {
9680    type ControlHandle = BaseDatagramSocketControlHandle;
9681
9682    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9683        &self.control_handle
9684    }
9685
9686    fn drop_without_shutdown(mut self) {
9687        // Safety: drops once, never accessed again due to mem::forget
9688        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9689        // Prevent Drop from running (which would shut down the channel)
9690        std::mem::forget(self);
9691    }
9692}
9693
9694impl BaseDatagramSocketSetReusePortDeprecatedResponder {
9695    /// Sends a response to the FIDL transaction.
9696    ///
9697    /// Sets the channel to shutdown if an error occurs.
9698    pub fn send(
9699        self,
9700        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9701    ) -> Result<(), fidl::Error> {
9702        let _result = self.send_raw(result);
9703        if _result.is_err() {
9704            self.control_handle.shutdown();
9705        }
9706        self.drop_without_shutdown();
9707        _result
9708    }
9709
9710    /// Similar to "send" but does not shutdown the channel if an error occurs.
9711    pub fn send_no_shutdown_on_err(
9712        self,
9713        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9714    ) -> Result<(), fidl::Error> {
9715        let _result = self.send_raw(result);
9716        self.drop_without_shutdown();
9717        _result
9718    }
9719
9720    fn send_raw(
9721        &self,
9722        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9723    ) -> Result<(), fidl::Error> {
9724        self.control_handle.inner.send::<fidl::encoding::ResultType<
9725            fidl::encoding::EmptyStruct,
9726            fidl_fuchsia_posix::Errno,
9727        >>(
9728            result,
9729            self.tx_id,
9730            0x24dd3e5cb36d9ccb,
9731            fidl::encoding::DynamicFlags::empty(),
9732        )
9733    }
9734}
9735
9736#[must_use = "FIDL methods require a response to be sent"]
9737#[derive(Debug)]
9738pub struct BaseDatagramSocketGetReusePortResponder {
9739    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9740    tx_id: u32,
9741}
9742
9743/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9744/// if the responder is dropped without sending a response, so that the client
9745/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9746impl std::ops::Drop for BaseDatagramSocketGetReusePortResponder {
9747    fn drop(&mut self) {
9748        self.control_handle.shutdown();
9749        // Safety: drops once, never accessed again
9750        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9751    }
9752}
9753
9754impl fidl::endpoints::Responder for BaseDatagramSocketGetReusePortResponder {
9755    type ControlHandle = BaseDatagramSocketControlHandle;
9756
9757    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9758        &self.control_handle
9759    }
9760
9761    fn drop_without_shutdown(mut self) {
9762        // Safety: drops once, never accessed again due to mem::forget
9763        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9764        // Prevent Drop from running (which would shut down the channel)
9765        std::mem::forget(self);
9766    }
9767}
9768
9769impl BaseDatagramSocketGetReusePortResponder {
9770    /// Sends a response to the FIDL transaction.
9771    ///
9772    /// Sets the channel to shutdown if an error occurs.
9773    pub fn send(
9774        self,
9775        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9776    ) -> Result<(), fidl::Error> {
9777        let _result = self.send_raw(result);
9778        if _result.is_err() {
9779            self.control_handle.shutdown();
9780        }
9781        self.drop_without_shutdown();
9782        _result
9783    }
9784
9785    /// Similar to "send" but does not shutdown the channel if an error occurs.
9786    pub fn send_no_shutdown_on_err(
9787        self,
9788        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9789    ) -> Result<(), fidl::Error> {
9790        let _result = self.send_raw(result);
9791        self.drop_without_shutdown();
9792        _result
9793    }
9794
9795    fn send_raw(
9796        &self,
9797        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9798    ) -> Result<(), fidl::Error> {
9799        self.control_handle.inner.send::<fidl::encoding::ResultType<
9800            BaseSocketGetReusePortResponse,
9801            fidl_fuchsia_posix::Errno,
9802        >>(
9803            result.map(|value| (value,)),
9804            self.tx_id,
9805            0x7a112c1ab54ff828,
9806            fidl::encoding::DynamicFlags::empty(),
9807        )
9808    }
9809}
9810
9811#[must_use = "FIDL methods require a response to be sent"]
9812#[derive(Debug)]
9813pub struct BaseDatagramSocketGetAcceptConnResponder {
9814    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9815    tx_id: u32,
9816}
9817
9818/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9819/// if the responder is dropped without sending a response, so that the client
9820/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9821impl std::ops::Drop for BaseDatagramSocketGetAcceptConnResponder {
9822    fn drop(&mut self) {
9823        self.control_handle.shutdown();
9824        // Safety: drops once, never accessed again
9825        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9826    }
9827}
9828
9829impl fidl::endpoints::Responder for BaseDatagramSocketGetAcceptConnResponder {
9830    type ControlHandle = BaseDatagramSocketControlHandle;
9831
9832    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9833        &self.control_handle
9834    }
9835
9836    fn drop_without_shutdown(mut self) {
9837        // Safety: drops once, never accessed again due to mem::forget
9838        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9839        // Prevent Drop from running (which would shut down the channel)
9840        std::mem::forget(self);
9841    }
9842}
9843
9844impl BaseDatagramSocketGetAcceptConnResponder {
9845    /// Sends a response to the FIDL transaction.
9846    ///
9847    /// Sets the channel to shutdown if an error occurs.
9848    pub fn send(
9849        self,
9850        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9851    ) -> Result<(), fidl::Error> {
9852        let _result = self.send_raw(result);
9853        if _result.is_err() {
9854            self.control_handle.shutdown();
9855        }
9856        self.drop_without_shutdown();
9857        _result
9858    }
9859
9860    /// Similar to "send" but does not shutdown the channel if an error occurs.
9861    pub fn send_no_shutdown_on_err(
9862        self,
9863        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9864    ) -> Result<(), fidl::Error> {
9865        let _result = self.send_raw(result);
9866        self.drop_without_shutdown();
9867        _result
9868    }
9869
9870    fn send_raw(
9871        &self,
9872        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9873    ) -> Result<(), fidl::Error> {
9874        self.control_handle.inner.send::<fidl::encoding::ResultType<
9875            BaseSocketGetAcceptConnResponse,
9876            fidl_fuchsia_posix::Errno,
9877        >>(
9878            result.map(|value| (value,)),
9879            self.tx_id,
9880            0x67ce6db6c2ec8966,
9881            fidl::encoding::DynamicFlags::empty(),
9882        )
9883    }
9884}
9885
9886#[must_use = "FIDL methods require a response to be sent"]
9887#[derive(Debug)]
9888pub struct BaseDatagramSocketSetBindToDeviceResponder {
9889    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9890    tx_id: u32,
9891}
9892
9893/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9894/// if the responder is dropped without sending a response, so that the client
9895/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9896impl std::ops::Drop for BaseDatagramSocketSetBindToDeviceResponder {
9897    fn drop(&mut self) {
9898        self.control_handle.shutdown();
9899        // Safety: drops once, never accessed again
9900        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9901    }
9902}
9903
9904impl fidl::endpoints::Responder for BaseDatagramSocketSetBindToDeviceResponder {
9905    type ControlHandle = BaseDatagramSocketControlHandle;
9906
9907    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9908        &self.control_handle
9909    }
9910
9911    fn drop_without_shutdown(mut self) {
9912        // Safety: drops once, never accessed again due to mem::forget
9913        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9914        // Prevent Drop from running (which would shut down the channel)
9915        std::mem::forget(self);
9916    }
9917}
9918
9919impl BaseDatagramSocketSetBindToDeviceResponder {
9920    /// Sends a response to the FIDL transaction.
9921    ///
9922    /// Sets the channel to shutdown if an error occurs.
9923    pub fn send(
9924        self,
9925        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9926    ) -> Result<(), fidl::Error> {
9927        let _result = self.send_raw(result);
9928        if _result.is_err() {
9929            self.control_handle.shutdown();
9930        }
9931        self.drop_without_shutdown();
9932        _result
9933    }
9934
9935    /// Similar to "send" but does not shutdown the channel if an error occurs.
9936    pub fn send_no_shutdown_on_err(
9937        self,
9938        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9939    ) -> Result<(), fidl::Error> {
9940        let _result = self.send_raw(result);
9941        self.drop_without_shutdown();
9942        _result
9943    }
9944
9945    fn send_raw(
9946        &self,
9947        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9948    ) -> Result<(), fidl::Error> {
9949        self.control_handle.inner.send::<fidl::encoding::ResultType<
9950            fidl::encoding::EmptyStruct,
9951            fidl_fuchsia_posix::Errno,
9952        >>(
9953            result,
9954            self.tx_id,
9955            0x2118b483f28aafc4,
9956            fidl::encoding::DynamicFlags::empty(),
9957        )
9958    }
9959}
9960
9961#[must_use = "FIDL methods require a response to be sent"]
9962#[derive(Debug)]
9963pub struct BaseDatagramSocketGetBindToDeviceResponder {
9964    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9965    tx_id: u32,
9966}
9967
9968/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9969/// if the responder is dropped without sending a response, so that the client
9970/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9971impl std::ops::Drop for BaseDatagramSocketGetBindToDeviceResponder {
9972    fn drop(&mut self) {
9973        self.control_handle.shutdown();
9974        // Safety: drops once, never accessed again
9975        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9976    }
9977}
9978
9979impl fidl::endpoints::Responder for BaseDatagramSocketGetBindToDeviceResponder {
9980    type ControlHandle = BaseDatagramSocketControlHandle;
9981
9982    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9983        &self.control_handle
9984    }
9985
9986    fn drop_without_shutdown(mut self) {
9987        // Safety: drops once, never accessed again due to mem::forget
9988        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9989        // Prevent Drop from running (which would shut down the channel)
9990        std::mem::forget(self);
9991    }
9992}
9993
9994impl BaseDatagramSocketGetBindToDeviceResponder {
9995    /// Sends a response to the FIDL transaction.
9996    ///
9997    /// Sets the channel to shutdown if an error occurs.
9998    pub fn send(
9999        self,
10000        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
10001    ) -> Result<(), fidl::Error> {
10002        let _result = self.send_raw(result);
10003        if _result.is_err() {
10004            self.control_handle.shutdown();
10005        }
10006        self.drop_without_shutdown();
10007        _result
10008    }
10009
10010    /// Similar to "send" but does not shutdown the channel if an error occurs.
10011    pub fn send_no_shutdown_on_err(
10012        self,
10013        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
10014    ) -> Result<(), fidl::Error> {
10015        let _result = self.send_raw(result);
10016        self.drop_without_shutdown();
10017        _result
10018    }
10019
10020    fn send_raw(
10021        &self,
10022        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
10023    ) -> Result<(), fidl::Error> {
10024        self.control_handle.inner.send::<fidl::encoding::ResultType<
10025            BaseSocketGetBindToDeviceResponse,
10026            fidl_fuchsia_posix::Errno,
10027        >>(
10028            result.map(|value| (value,)),
10029            self.tx_id,
10030            0x1ab1fbf0ef7906c8,
10031            fidl::encoding::DynamicFlags::empty(),
10032        )
10033    }
10034}
10035
10036#[must_use = "FIDL methods require a response to be sent"]
10037#[derive(Debug)]
10038pub struct BaseDatagramSocketSetBindToInterfaceIndexResponder {
10039    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10040    tx_id: u32,
10041}
10042
10043/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10044/// if the responder is dropped without sending a response, so that the client
10045/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10046impl std::ops::Drop for BaseDatagramSocketSetBindToInterfaceIndexResponder {
10047    fn drop(&mut self) {
10048        self.control_handle.shutdown();
10049        // Safety: drops once, never accessed again
10050        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10051    }
10052}
10053
10054impl fidl::endpoints::Responder for BaseDatagramSocketSetBindToInterfaceIndexResponder {
10055    type ControlHandle = BaseDatagramSocketControlHandle;
10056
10057    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10058        &self.control_handle
10059    }
10060
10061    fn drop_without_shutdown(mut self) {
10062        // Safety: drops once, never accessed again due to mem::forget
10063        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10064        // Prevent Drop from running (which would shut down the channel)
10065        std::mem::forget(self);
10066    }
10067}
10068
10069impl BaseDatagramSocketSetBindToInterfaceIndexResponder {
10070    /// Sends a response to the FIDL transaction.
10071    ///
10072    /// Sets the channel to shutdown if an error occurs.
10073    pub fn send(
10074        self,
10075        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10076    ) -> Result<(), fidl::Error> {
10077        let _result = self.send_raw(result);
10078        if _result.is_err() {
10079            self.control_handle.shutdown();
10080        }
10081        self.drop_without_shutdown();
10082        _result
10083    }
10084
10085    /// Similar to "send" but does not shutdown the channel if an error occurs.
10086    pub fn send_no_shutdown_on_err(
10087        self,
10088        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10089    ) -> Result<(), fidl::Error> {
10090        let _result = self.send_raw(result);
10091        self.drop_without_shutdown();
10092        _result
10093    }
10094
10095    fn send_raw(
10096        &self,
10097        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10098    ) -> Result<(), fidl::Error> {
10099        self.control_handle.inner.send::<fidl::encoding::ResultType<
10100            fidl::encoding::EmptyStruct,
10101            fidl_fuchsia_posix::Errno,
10102        >>(
10103            result,
10104            self.tx_id,
10105            0x6e387a0def00821,
10106            fidl::encoding::DynamicFlags::empty(),
10107        )
10108    }
10109}
10110
10111#[must_use = "FIDL methods require a response to be sent"]
10112#[derive(Debug)]
10113pub struct BaseDatagramSocketGetBindToInterfaceIndexResponder {
10114    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10115    tx_id: u32,
10116}
10117
10118/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10119/// if the responder is dropped without sending a response, so that the client
10120/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10121impl std::ops::Drop for BaseDatagramSocketGetBindToInterfaceIndexResponder {
10122    fn drop(&mut self) {
10123        self.control_handle.shutdown();
10124        // Safety: drops once, never accessed again
10125        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10126    }
10127}
10128
10129impl fidl::endpoints::Responder for BaseDatagramSocketGetBindToInterfaceIndexResponder {
10130    type ControlHandle = BaseDatagramSocketControlHandle;
10131
10132    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10133        &self.control_handle
10134    }
10135
10136    fn drop_without_shutdown(mut self) {
10137        // Safety: drops once, never accessed again due to mem::forget
10138        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10139        // Prevent Drop from running (which would shut down the channel)
10140        std::mem::forget(self);
10141    }
10142}
10143
10144impl BaseDatagramSocketGetBindToInterfaceIndexResponder {
10145    /// Sends a response to the FIDL transaction.
10146    ///
10147    /// Sets the channel to shutdown if an error occurs.
10148    pub fn send(
10149        self,
10150        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
10151    ) -> Result<(), fidl::Error> {
10152        let _result = self.send_raw(result);
10153        if _result.is_err() {
10154            self.control_handle.shutdown();
10155        }
10156        self.drop_without_shutdown();
10157        _result
10158    }
10159
10160    /// Similar to "send" but does not shutdown the channel if an error occurs.
10161    pub fn send_no_shutdown_on_err(
10162        self,
10163        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
10164    ) -> Result<(), fidl::Error> {
10165        let _result = self.send_raw(result);
10166        self.drop_without_shutdown();
10167        _result
10168    }
10169
10170    fn send_raw(
10171        &self,
10172        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
10173    ) -> Result<(), fidl::Error> {
10174        self.control_handle.inner.send::<fidl::encoding::ResultType<
10175            BaseSocketGetBindToInterfaceIndexResponse,
10176            fidl_fuchsia_posix::Errno,
10177        >>(
10178            result.map(|value| (value,)),
10179            self.tx_id,
10180            0x59c31dd3e3078295,
10181            fidl::encoding::DynamicFlags::empty(),
10182        )
10183    }
10184}
10185
10186#[must_use = "FIDL methods require a response to be sent"]
10187#[derive(Debug)]
10188pub struct BaseDatagramSocketSetTimestampResponder {
10189    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10190    tx_id: u32,
10191}
10192
10193/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10194/// if the responder is dropped without sending a response, so that the client
10195/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10196impl std::ops::Drop for BaseDatagramSocketSetTimestampResponder {
10197    fn drop(&mut self) {
10198        self.control_handle.shutdown();
10199        // Safety: drops once, never accessed again
10200        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10201    }
10202}
10203
10204impl fidl::endpoints::Responder for BaseDatagramSocketSetTimestampResponder {
10205    type ControlHandle = BaseDatagramSocketControlHandle;
10206
10207    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10208        &self.control_handle
10209    }
10210
10211    fn drop_without_shutdown(mut self) {
10212        // Safety: drops once, never accessed again due to mem::forget
10213        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10214        // Prevent Drop from running (which would shut down the channel)
10215        std::mem::forget(self);
10216    }
10217}
10218
10219impl BaseDatagramSocketSetTimestampResponder {
10220    /// Sends a response to the FIDL transaction.
10221    ///
10222    /// Sets the channel to shutdown if an error occurs.
10223    pub fn send(
10224        self,
10225        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10226    ) -> Result<(), fidl::Error> {
10227        let _result = self.send_raw(result);
10228        if _result.is_err() {
10229            self.control_handle.shutdown();
10230        }
10231        self.drop_without_shutdown();
10232        _result
10233    }
10234
10235    /// Similar to "send" but does not shutdown the channel if an error occurs.
10236    pub fn send_no_shutdown_on_err(
10237        self,
10238        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10239    ) -> Result<(), fidl::Error> {
10240        let _result = self.send_raw(result);
10241        self.drop_without_shutdown();
10242        _result
10243    }
10244
10245    fn send_raw(
10246        &self,
10247        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10248    ) -> Result<(), fidl::Error> {
10249        self.control_handle.inner.send::<fidl::encoding::ResultType<
10250            fidl::encoding::EmptyStruct,
10251            fidl_fuchsia_posix::Errno,
10252        >>(
10253            result,
10254            self.tx_id,
10255            0x285d6516c263d839,
10256            fidl::encoding::DynamicFlags::empty(),
10257        )
10258    }
10259}
10260
10261#[must_use = "FIDL methods require a response to be sent"]
10262#[derive(Debug)]
10263pub struct BaseDatagramSocketGetTimestampResponder {
10264    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10265    tx_id: u32,
10266}
10267
10268/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10269/// if the responder is dropped without sending a response, so that the client
10270/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10271impl std::ops::Drop for BaseDatagramSocketGetTimestampResponder {
10272    fn drop(&mut self) {
10273        self.control_handle.shutdown();
10274        // Safety: drops once, never accessed again
10275        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10276    }
10277}
10278
10279impl fidl::endpoints::Responder for BaseDatagramSocketGetTimestampResponder {
10280    type ControlHandle = BaseDatagramSocketControlHandle;
10281
10282    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10283        &self.control_handle
10284    }
10285
10286    fn drop_without_shutdown(mut self) {
10287        // Safety: drops once, never accessed again due to mem::forget
10288        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10289        // Prevent Drop from running (which would shut down the channel)
10290        std::mem::forget(self);
10291    }
10292}
10293
10294impl BaseDatagramSocketGetTimestampResponder {
10295    /// Sends a response to the FIDL transaction.
10296    ///
10297    /// Sets the channel to shutdown if an error occurs.
10298    pub fn send(
10299        self,
10300        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
10301    ) -> Result<(), fidl::Error> {
10302        let _result = self.send_raw(result);
10303        if _result.is_err() {
10304            self.control_handle.shutdown();
10305        }
10306        self.drop_without_shutdown();
10307        _result
10308    }
10309
10310    /// Similar to "send" but does not shutdown the channel if an error occurs.
10311    pub fn send_no_shutdown_on_err(
10312        self,
10313        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
10314    ) -> Result<(), fidl::Error> {
10315        let _result = self.send_raw(result);
10316        self.drop_without_shutdown();
10317        _result
10318    }
10319
10320    fn send_raw(
10321        &self,
10322        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
10323    ) -> Result<(), fidl::Error> {
10324        self.control_handle.inner.send::<fidl::encoding::ResultType<
10325            BaseSocketGetTimestampResponse,
10326            fidl_fuchsia_posix::Errno,
10327        >>(
10328            result.map(|value| (value,)),
10329            self.tx_id,
10330            0x49f2fffbbcc2bd27,
10331            fidl::encoding::DynamicFlags::empty(),
10332        )
10333    }
10334}
10335
10336#[must_use = "FIDL methods require a response to be sent"]
10337#[derive(Debug)]
10338pub struct BaseDatagramSocketSetMarkResponder {
10339    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10340    tx_id: u32,
10341}
10342
10343/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10344/// if the responder is dropped without sending a response, so that the client
10345/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10346impl std::ops::Drop for BaseDatagramSocketSetMarkResponder {
10347    fn drop(&mut self) {
10348        self.control_handle.shutdown();
10349        // Safety: drops once, never accessed again
10350        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10351    }
10352}
10353
10354impl fidl::endpoints::Responder for BaseDatagramSocketSetMarkResponder {
10355    type ControlHandle = BaseDatagramSocketControlHandle;
10356
10357    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10358        &self.control_handle
10359    }
10360
10361    fn drop_without_shutdown(mut self) {
10362        // Safety: drops once, never accessed again due to mem::forget
10363        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10364        // Prevent Drop from running (which would shut down the channel)
10365        std::mem::forget(self);
10366    }
10367}
10368
10369impl BaseDatagramSocketSetMarkResponder {
10370    /// Sends a response to the FIDL transaction.
10371    ///
10372    /// Sets the channel to shutdown if an error occurs.
10373    pub fn send(
10374        self,
10375        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10376    ) -> Result<(), fidl::Error> {
10377        let _result = self.send_raw(result);
10378        if _result.is_err() {
10379            self.control_handle.shutdown();
10380        }
10381        self.drop_without_shutdown();
10382        _result
10383    }
10384
10385    /// Similar to "send" but does not shutdown the channel if an error occurs.
10386    pub fn send_no_shutdown_on_err(
10387        self,
10388        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10389    ) -> Result<(), fidl::Error> {
10390        let _result = self.send_raw(result);
10391        self.drop_without_shutdown();
10392        _result
10393    }
10394
10395    fn send_raw(
10396        &self,
10397        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10398    ) -> Result<(), fidl::Error> {
10399        self.control_handle.inner.send::<fidl::encoding::ResultType<
10400            fidl::encoding::EmptyStruct,
10401            fidl_fuchsia_posix::Errno,
10402        >>(
10403            result,
10404            self.tx_id,
10405            0x6ead6de09f653236,
10406            fidl::encoding::DynamicFlags::empty(),
10407        )
10408    }
10409}
10410
10411#[must_use = "FIDL methods require a response to be sent"]
10412#[derive(Debug)]
10413pub struct BaseDatagramSocketGetMarkResponder {
10414    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10415    tx_id: u32,
10416}
10417
10418/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10419/// if the responder is dropped without sending a response, so that the client
10420/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10421impl std::ops::Drop for BaseDatagramSocketGetMarkResponder {
10422    fn drop(&mut self) {
10423        self.control_handle.shutdown();
10424        // Safety: drops once, never accessed again
10425        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10426    }
10427}
10428
10429impl fidl::endpoints::Responder for BaseDatagramSocketGetMarkResponder {
10430    type ControlHandle = BaseDatagramSocketControlHandle;
10431
10432    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10433        &self.control_handle
10434    }
10435
10436    fn drop_without_shutdown(mut self) {
10437        // Safety: drops once, never accessed again due to mem::forget
10438        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10439        // Prevent Drop from running (which would shut down the channel)
10440        std::mem::forget(self);
10441    }
10442}
10443
10444impl BaseDatagramSocketGetMarkResponder {
10445    /// Sends a response to the FIDL transaction.
10446    ///
10447    /// Sets the channel to shutdown if an error occurs.
10448    pub fn send(
10449        self,
10450        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
10451    ) -> Result<(), fidl::Error> {
10452        let _result = self.send_raw(result);
10453        if _result.is_err() {
10454            self.control_handle.shutdown();
10455        }
10456        self.drop_without_shutdown();
10457        _result
10458    }
10459
10460    /// Similar to "send" but does not shutdown the channel if an error occurs.
10461    pub fn send_no_shutdown_on_err(
10462        self,
10463        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
10464    ) -> Result<(), fidl::Error> {
10465        let _result = self.send_raw(result);
10466        self.drop_without_shutdown();
10467        _result
10468    }
10469
10470    fn send_raw(
10471        &self,
10472        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
10473    ) -> Result<(), fidl::Error> {
10474        self.control_handle.inner.send::<fidl::encoding::ResultType<
10475            BaseSocketGetMarkResponse,
10476            fidl_fuchsia_posix::Errno,
10477        >>(
10478            result.map(|mark| (mark,)),
10479            self.tx_id,
10480            0x57a2752c61d93d47,
10481            fidl::encoding::DynamicFlags::empty(),
10482        )
10483    }
10484}
10485
10486#[must_use = "FIDL methods require a response to be sent"]
10487#[derive(Debug)]
10488pub struct BaseDatagramSocketGetCookieResponder {
10489    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10490    tx_id: u32,
10491}
10492
10493/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10494/// if the responder is dropped without sending a response, so that the client
10495/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10496impl std::ops::Drop for BaseDatagramSocketGetCookieResponder {
10497    fn drop(&mut self) {
10498        self.control_handle.shutdown();
10499        // Safety: drops once, never accessed again
10500        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10501    }
10502}
10503
10504impl fidl::endpoints::Responder for BaseDatagramSocketGetCookieResponder {
10505    type ControlHandle = BaseDatagramSocketControlHandle;
10506
10507    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10508        &self.control_handle
10509    }
10510
10511    fn drop_without_shutdown(mut self) {
10512        // Safety: drops once, never accessed again due to mem::forget
10513        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10514        // Prevent Drop from running (which would shut down the channel)
10515        std::mem::forget(self);
10516    }
10517}
10518
10519impl BaseDatagramSocketGetCookieResponder {
10520    /// Sends a response to the FIDL transaction.
10521    ///
10522    /// Sets the channel to shutdown if an error occurs.
10523    pub fn send(
10524        self,
10525        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
10526    ) -> Result<(), fidl::Error> {
10527        let _result = self.send_raw(result);
10528        if _result.is_err() {
10529            self.control_handle.shutdown();
10530        }
10531        self.drop_without_shutdown();
10532        _result
10533    }
10534
10535    /// Similar to "send" but does not shutdown the channel if an error occurs.
10536    pub fn send_no_shutdown_on_err(
10537        self,
10538        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
10539    ) -> Result<(), fidl::Error> {
10540        let _result = self.send_raw(result);
10541        self.drop_without_shutdown();
10542        _result
10543    }
10544
10545    fn send_raw(
10546        &self,
10547        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
10548    ) -> Result<(), fidl::Error> {
10549        self.control_handle.inner.send::<fidl::encoding::ResultType<
10550            BaseSocketGetCookieResponse,
10551            fidl_fuchsia_posix::Errno,
10552        >>(
10553            result.map(|value| (value,)),
10554            self.tx_id,
10555            0x2c2f47fd8f924e52,
10556            fidl::encoding::DynamicFlags::empty(),
10557        )
10558    }
10559}
10560
10561#[must_use = "FIDL methods require a response to be sent"]
10562#[derive(Debug)]
10563pub struct BaseDatagramSocketBindResponder {
10564    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10565    tx_id: u32,
10566}
10567
10568/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10569/// if the responder is dropped without sending a response, so that the client
10570/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10571impl std::ops::Drop for BaseDatagramSocketBindResponder {
10572    fn drop(&mut self) {
10573        self.control_handle.shutdown();
10574        // Safety: drops once, never accessed again
10575        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10576    }
10577}
10578
10579impl fidl::endpoints::Responder for BaseDatagramSocketBindResponder {
10580    type ControlHandle = BaseDatagramSocketControlHandle;
10581
10582    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10583        &self.control_handle
10584    }
10585
10586    fn drop_without_shutdown(mut self) {
10587        // Safety: drops once, never accessed again due to mem::forget
10588        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10589        // Prevent Drop from running (which would shut down the channel)
10590        std::mem::forget(self);
10591    }
10592}
10593
10594impl BaseDatagramSocketBindResponder {
10595    /// Sends a response to the FIDL transaction.
10596    ///
10597    /// Sets the channel to shutdown if an error occurs.
10598    pub fn send(
10599        self,
10600        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10601    ) -> Result<(), fidl::Error> {
10602        let _result = self.send_raw(result);
10603        if _result.is_err() {
10604            self.control_handle.shutdown();
10605        }
10606        self.drop_without_shutdown();
10607        _result
10608    }
10609
10610    /// Similar to "send" but does not shutdown the channel if an error occurs.
10611    pub fn send_no_shutdown_on_err(
10612        self,
10613        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10614    ) -> Result<(), fidl::Error> {
10615        let _result = self.send_raw(result);
10616        self.drop_without_shutdown();
10617        _result
10618    }
10619
10620    fn send_raw(
10621        &self,
10622        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10623    ) -> Result<(), fidl::Error> {
10624        self.control_handle.inner.send::<fidl::encoding::ResultType<
10625            fidl::encoding::EmptyStruct,
10626            fidl_fuchsia_posix::Errno,
10627        >>(
10628            result,
10629            self.tx_id,
10630            0x4bc6400ae92125d,
10631            fidl::encoding::DynamicFlags::empty(),
10632        )
10633    }
10634}
10635
10636#[must_use = "FIDL methods require a response to be sent"]
10637#[derive(Debug)]
10638pub struct BaseDatagramSocketConnectResponder {
10639    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10640    tx_id: u32,
10641}
10642
10643/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10644/// if the responder is dropped without sending a response, so that the client
10645/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10646impl std::ops::Drop for BaseDatagramSocketConnectResponder {
10647    fn drop(&mut self) {
10648        self.control_handle.shutdown();
10649        // Safety: drops once, never accessed again
10650        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10651    }
10652}
10653
10654impl fidl::endpoints::Responder for BaseDatagramSocketConnectResponder {
10655    type ControlHandle = BaseDatagramSocketControlHandle;
10656
10657    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10658        &self.control_handle
10659    }
10660
10661    fn drop_without_shutdown(mut self) {
10662        // Safety: drops once, never accessed again due to mem::forget
10663        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10664        // Prevent Drop from running (which would shut down the channel)
10665        std::mem::forget(self);
10666    }
10667}
10668
10669impl BaseDatagramSocketConnectResponder {
10670    /// Sends a response to the FIDL transaction.
10671    ///
10672    /// Sets the channel to shutdown if an error occurs.
10673    pub fn send(
10674        self,
10675        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10676    ) -> Result<(), fidl::Error> {
10677        let _result = self.send_raw(result);
10678        if _result.is_err() {
10679            self.control_handle.shutdown();
10680        }
10681        self.drop_without_shutdown();
10682        _result
10683    }
10684
10685    /// Similar to "send" but does not shutdown the channel if an error occurs.
10686    pub fn send_no_shutdown_on_err(
10687        self,
10688        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10689    ) -> Result<(), fidl::Error> {
10690        let _result = self.send_raw(result);
10691        self.drop_without_shutdown();
10692        _result
10693    }
10694
10695    fn send_raw(
10696        &self,
10697        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10698    ) -> Result<(), fidl::Error> {
10699        self.control_handle.inner.send::<fidl::encoding::ResultType<
10700            fidl::encoding::EmptyStruct,
10701            fidl_fuchsia_posix::Errno,
10702        >>(
10703            result,
10704            self.tx_id,
10705            0x5f05f19bfdd38871,
10706            fidl::encoding::DynamicFlags::empty(),
10707        )
10708    }
10709}
10710
10711#[must_use = "FIDL methods require a response to be sent"]
10712#[derive(Debug)]
10713pub struct BaseDatagramSocketDisconnectResponder {
10714    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10715    tx_id: u32,
10716}
10717
10718/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10719/// if the responder is dropped without sending a response, so that the client
10720/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10721impl std::ops::Drop for BaseDatagramSocketDisconnectResponder {
10722    fn drop(&mut self) {
10723        self.control_handle.shutdown();
10724        // Safety: drops once, never accessed again
10725        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10726    }
10727}
10728
10729impl fidl::endpoints::Responder for BaseDatagramSocketDisconnectResponder {
10730    type ControlHandle = BaseDatagramSocketControlHandle;
10731
10732    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10733        &self.control_handle
10734    }
10735
10736    fn drop_without_shutdown(mut self) {
10737        // Safety: drops once, never accessed again due to mem::forget
10738        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10739        // Prevent Drop from running (which would shut down the channel)
10740        std::mem::forget(self);
10741    }
10742}
10743
10744impl BaseDatagramSocketDisconnectResponder {
10745    /// Sends a response to the FIDL transaction.
10746    ///
10747    /// Sets the channel to shutdown if an error occurs.
10748    pub fn send(
10749        self,
10750        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10751    ) -> Result<(), fidl::Error> {
10752        let _result = self.send_raw(result);
10753        if _result.is_err() {
10754            self.control_handle.shutdown();
10755        }
10756        self.drop_without_shutdown();
10757        _result
10758    }
10759
10760    /// Similar to "send" but does not shutdown the channel if an error occurs.
10761    pub fn send_no_shutdown_on_err(
10762        self,
10763        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10764    ) -> Result<(), fidl::Error> {
10765        let _result = self.send_raw(result);
10766        self.drop_without_shutdown();
10767        _result
10768    }
10769
10770    fn send_raw(
10771        &self,
10772        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10773    ) -> Result<(), fidl::Error> {
10774        self.control_handle.inner.send::<fidl::encoding::ResultType<
10775            fidl::encoding::EmptyStruct,
10776            fidl_fuchsia_posix::Errno,
10777        >>(
10778            result,
10779            self.tx_id,
10780            0x74e63b91f7b29b2,
10781            fidl::encoding::DynamicFlags::empty(),
10782        )
10783    }
10784}
10785
10786#[must_use = "FIDL methods require a response to be sent"]
10787#[derive(Debug)]
10788pub struct BaseDatagramSocketGetSockNameResponder {
10789    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10790    tx_id: u32,
10791}
10792
10793/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10794/// if the responder is dropped without sending a response, so that the client
10795/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10796impl std::ops::Drop for BaseDatagramSocketGetSockNameResponder {
10797    fn drop(&mut self) {
10798        self.control_handle.shutdown();
10799        // Safety: drops once, never accessed again
10800        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10801    }
10802}
10803
10804impl fidl::endpoints::Responder for BaseDatagramSocketGetSockNameResponder {
10805    type ControlHandle = BaseDatagramSocketControlHandle;
10806
10807    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10808        &self.control_handle
10809    }
10810
10811    fn drop_without_shutdown(mut self) {
10812        // Safety: drops once, never accessed again due to mem::forget
10813        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10814        // Prevent Drop from running (which would shut down the channel)
10815        std::mem::forget(self);
10816    }
10817}
10818
10819impl BaseDatagramSocketGetSockNameResponder {
10820    /// Sends a response to the FIDL transaction.
10821    ///
10822    /// Sets the channel to shutdown if an error occurs.
10823    pub fn send(
10824        self,
10825        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
10826    ) -> Result<(), fidl::Error> {
10827        let _result = self.send_raw(result);
10828        if _result.is_err() {
10829            self.control_handle.shutdown();
10830        }
10831        self.drop_without_shutdown();
10832        _result
10833    }
10834
10835    /// Similar to "send" but does not shutdown the channel if an error occurs.
10836    pub fn send_no_shutdown_on_err(
10837        self,
10838        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
10839    ) -> Result<(), fidl::Error> {
10840        let _result = self.send_raw(result);
10841        self.drop_without_shutdown();
10842        _result
10843    }
10844
10845    fn send_raw(
10846        &self,
10847        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
10848    ) -> Result<(), fidl::Error> {
10849        self.control_handle.inner.send::<fidl::encoding::ResultType<
10850            BaseNetworkSocketGetSockNameResponse,
10851            fidl_fuchsia_posix::Errno,
10852        >>(
10853            result.map(|addr| (addr,)),
10854            self.tx_id,
10855            0x475f23f84a1a4f85,
10856            fidl::encoding::DynamicFlags::empty(),
10857        )
10858    }
10859}
10860
10861#[must_use = "FIDL methods require a response to be sent"]
10862#[derive(Debug)]
10863pub struct BaseDatagramSocketGetPeerNameResponder {
10864    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10865    tx_id: u32,
10866}
10867
10868/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10869/// if the responder is dropped without sending a response, so that the client
10870/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10871impl std::ops::Drop for BaseDatagramSocketGetPeerNameResponder {
10872    fn drop(&mut self) {
10873        self.control_handle.shutdown();
10874        // Safety: drops once, never accessed again
10875        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10876    }
10877}
10878
10879impl fidl::endpoints::Responder for BaseDatagramSocketGetPeerNameResponder {
10880    type ControlHandle = BaseDatagramSocketControlHandle;
10881
10882    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10883        &self.control_handle
10884    }
10885
10886    fn drop_without_shutdown(mut self) {
10887        // Safety: drops once, never accessed again due to mem::forget
10888        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10889        // Prevent Drop from running (which would shut down the channel)
10890        std::mem::forget(self);
10891    }
10892}
10893
10894impl BaseDatagramSocketGetPeerNameResponder {
10895    /// Sends a response to the FIDL transaction.
10896    ///
10897    /// Sets the channel to shutdown if an error occurs.
10898    pub fn send(
10899        self,
10900        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
10901    ) -> Result<(), fidl::Error> {
10902        let _result = self.send_raw(result);
10903        if _result.is_err() {
10904            self.control_handle.shutdown();
10905        }
10906        self.drop_without_shutdown();
10907        _result
10908    }
10909
10910    /// Similar to "send" but does not shutdown the channel if an error occurs.
10911    pub fn send_no_shutdown_on_err(
10912        self,
10913        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
10914    ) -> Result<(), fidl::Error> {
10915        let _result = self.send_raw(result);
10916        self.drop_without_shutdown();
10917        _result
10918    }
10919
10920    fn send_raw(
10921        &self,
10922        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
10923    ) -> Result<(), fidl::Error> {
10924        self.control_handle.inner.send::<fidl::encoding::ResultType<
10925            BaseNetworkSocketGetPeerNameResponse,
10926            fidl_fuchsia_posix::Errno,
10927        >>(
10928            result.map(|addr| (addr,)),
10929            self.tx_id,
10930            0x1ffecf4bd5b6432e,
10931            fidl::encoding::DynamicFlags::empty(),
10932        )
10933    }
10934}
10935
10936#[must_use = "FIDL methods require a response to be sent"]
10937#[derive(Debug)]
10938pub struct BaseDatagramSocketShutdownResponder {
10939    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10940    tx_id: u32,
10941}
10942
10943/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10944/// if the responder is dropped without sending a response, so that the client
10945/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10946impl std::ops::Drop for BaseDatagramSocketShutdownResponder {
10947    fn drop(&mut self) {
10948        self.control_handle.shutdown();
10949        // Safety: drops once, never accessed again
10950        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10951    }
10952}
10953
10954impl fidl::endpoints::Responder for BaseDatagramSocketShutdownResponder {
10955    type ControlHandle = BaseDatagramSocketControlHandle;
10956
10957    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10958        &self.control_handle
10959    }
10960
10961    fn drop_without_shutdown(mut self) {
10962        // Safety: drops once, never accessed again due to mem::forget
10963        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10964        // Prevent Drop from running (which would shut down the channel)
10965        std::mem::forget(self);
10966    }
10967}
10968
10969impl BaseDatagramSocketShutdownResponder {
10970    /// Sends a response to the FIDL transaction.
10971    ///
10972    /// Sets the channel to shutdown if an error occurs.
10973    pub fn send(
10974        self,
10975        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10976    ) -> Result<(), fidl::Error> {
10977        let _result = self.send_raw(result);
10978        if _result.is_err() {
10979            self.control_handle.shutdown();
10980        }
10981        self.drop_without_shutdown();
10982        _result
10983    }
10984
10985    /// Similar to "send" but does not shutdown the channel if an error occurs.
10986    pub fn send_no_shutdown_on_err(
10987        self,
10988        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10989    ) -> Result<(), fidl::Error> {
10990        let _result = self.send_raw(result);
10991        self.drop_without_shutdown();
10992        _result
10993    }
10994
10995    fn send_raw(
10996        &self,
10997        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10998    ) -> Result<(), fidl::Error> {
10999        self.control_handle.inner.send::<fidl::encoding::ResultType<
11000            fidl::encoding::EmptyStruct,
11001            fidl_fuchsia_posix::Errno,
11002        >>(
11003            result,
11004            self.tx_id,
11005            0x247f38b6db68c336,
11006            fidl::encoding::DynamicFlags::empty(),
11007        )
11008    }
11009}
11010
11011#[must_use = "FIDL methods require a response to be sent"]
11012#[derive(Debug)]
11013pub struct BaseDatagramSocketSetIpTypeOfServiceResponder {
11014    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11015    tx_id: u32,
11016}
11017
11018/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11019/// if the responder is dropped without sending a response, so that the client
11020/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11021impl std::ops::Drop for BaseDatagramSocketSetIpTypeOfServiceResponder {
11022    fn drop(&mut self) {
11023        self.control_handle.shutdown();
11024        // Safety: drops once, never accessed again
11025        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11026    }
11027}
11028
11029impl fidl::endpoints::Responder for BaseDatagramSocketSetIpTypeOfServiceResponder {
11030    type ControlHandle = BaseDatagramSocketControlHandle;
11031
11032    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11033        &self.control_handle
11034    }
11035
11036    fn drop_without_shutdown(mut self) {
11037        // Safety: drops once, never accessed again due to mem::forget
11038        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11039        // Prevent Drop from running (which would shut down the channel)
11040        std::mem::forget(self);
11041    }
11042}
11043
11044impl BaseDatagramSocketSetIpTypeOfServiceResponder {
11045    /// Sends a response to the FIDL transaction.
11046    ///
11047    /// Sets the channel to shutdown if an error occurs.
11048    pub fn send(
11049        self,
11050        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11051    ) -> Result<(), fidl::Error> {
11052        let _result = self.send_raw(result);
11053        if _result.is_err() {
11054            self.control_handle.shutdown();
11055        }
11056        self.drop_without_shutdown();
11057        _result
11058    }
11059
11060    /// Similar to "send" but does not shutdown the channel if an error occurs.
11061    pub fn send_no_shutdown_on_err(
11062        self,
11063        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11064    ) -> Result<(), fidl::Error> {
11065        let _result = self.send_raw(result);
11066        self.drop_without_shutdown();
11067        _result
11068    }
11069
11070    fn send_raw(
11071        &self,
11072        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11073    ) -> Result<(), fidl::Error> {
11074        self.control_handle.inner.send::<fidl::encoding::ResultType<
11075            fidl::encoding::EmptyStruct,
11076            fidl_fuchsia_posix::Errno,
11077        >>(
11078            result,
11079            self.tx_id,
11080            0x995c600475b6d46,
11081            fidl::encoding::DynamicFlags::empty(),
11082        )
11083    }
11084}
11085
11086#[must_use = "FIDL methods require a response to be sent"]
11087#[derive(Debug)]
11088pub struct BaseDatagramSocketGetIpTypeOfServiceResponder {
11089    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11090    tx_id: u32,
11091}
11092
11093/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11094/// if the responder is dropped without sending a response, so that the client
11095/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11096impl std::ops::Drop for BaseDatagramSocketGetIpTypeOfServiceResponder {
11097    fn drop(&mut self) {
11098        self.control_handle.shutdown();
11099        // Safety: drops once, never accessed again
11100        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11101    }
11102}
11103
11104impl fidl::endpoints::Responder for BaseDatagramSocketGetIpTypeOfServiceResponder {
11105    type ControlHandle = BaseDatagramSocketControlHandle;
11106
11107    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11108        &self.control_handle
11109    }
11110
11111    fn drop_without_shutdown(mut self) {
11112        // Safety: drops once, never accessed again due to mem::forget
11113        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11114        // Prevent Drop from running (which would shut down the channel)
11115        std::mem::forget(self);
11116    }
11117}
11118
11119impl BaseDatagramSocketGetIpTypeOfServiceResponder {
11120    /// Sends a response to the FIDL transaction.
11121    ///
11122    /// Sets the channel to shutdown if an error occurs.
11123    pub fn send(
11124        self,
11125        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
11126    ) -> Result<(), fidl::Error> {
11127        let _result = self.send_raw(result);
11128        if _result.is_err() {
11129            self.control_handle.shutdown();
11130        }
11131        self.drop_without_shutdown();
11132        _result
11133    }
11134
11135    /// Similar to "send" but does not shutdown the channel if an error occurs.
11136    pub fn send_no_shutdown_on_err(
11137        self,
11138        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
11139    ) -> Result<(), fidl::Error> {
11140        let _result = self.send_raw(result);
11141        self.drop_without_shutdown();
11142        _result
11143    }
11144
11145    fn send_raw(
11146        &self,
11147        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
11148    ) -> Result<(), fidl::Error> {
11149        self.control_handle.inner.send::<fidl::encoding::ResultType<
11150            BaseNetworkSocketGetIpTypeOfServiceResponse,
11151            fidl_fuchsia_posix::Errno,
11152        >>(
11153            result.map(|value| (value,)),
11154            self.tx_id,
11155            0x3814a04259f75fcb,
11156            fidl::encoding::DynamicFlags::empty(),
11157        )
11158    }
11159}
11160
11161#[must_use = "FIDL methods require a response to be sent"]
11162#[derive(Debug)]
11163pub struct BaseDatagramSocketSetIpTtlResponder {
11164    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11165    tx_id: u32,
11166}
11167
11168/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11169/// if the responder is dropped without sending a response, so that the client
11170/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11171impl std::ops::Drop for BaseDatagramSocketSetIpTtlResponder {
11172    fn drop(&mut self) {
11173        self.control_handle.shutdown();
11174        // Safety: drops once, never accessed again
11175        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11176    }
11177}
11178
11179impl fidl::endpoints::Responder for BaseDatagramSocketSetIpTtlResponder {
11180    type ControlHandle = BaseDatagramSocketControlHandle;
11181
11182    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11183        &self.control_handle
11184    }
11185
11186    fn drop_without_shutdown(mut self) {
11187        // Safety: drops once, never accessed again due to mem::forget
11188        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11189        // Prevent Drop from running (which would shut down the channel)
11190        std::mem::forget(self);
11191    }
11192}
11193
11194impl BaseDatagramSocketSetIpTtlResponder {
11195    /// Sends a response to the FIDL transaction.
11196    ///
11197    /// Sets the channel to shutdown if an error occurs.
11198    pub fn send(
11199        self,
11200        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11201    ) -> Result<(), fidl::Error> {
11202        let _result = self.send_raw(result);
11203        if _result.is_err() {
11204            self.control_handle.shutdown();
11205        }
11206        self.drop_without_shutdown();
11207        _result
11208    }
11209
11210    /// Similar to "send" but does not shutdown the channel if an error occurs.
11211    pub fn send_no_shutdown_on_err(
11212        self,
11213        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11214    ) -> Result<(), fidl::Error> {
11215        let _result = self.send_raw(result);
11216        self.drop_without_shutdown();
11217        _result
11218    }
11219
11220    fn send_raw(
11221        &self,
11222        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11223    ) -> Result<(), fidl::Error> {
11224        self.control_handle.inner.send::<fidl::encoding::ResultType<
11225            fidl::encoding::EmptyStruct,
11226            fidl_fuchsia_posix::Errno,
11227        >>(
11228            result,
11229            self.tx_id,
11230            0x29e2424b433ae1ef,
11231            fidl::encoding::DynamicFlags::empty(),
11232        )
11233    }
11234}
11235
11236#[must_use = "FIDL methods require a response to be sent"]
11237#[derive(Debug)]
11238pub struct BaseDatagramSocketGetIpTtlResponder {
11239    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11240    tx_id: u32,
11241}
11242
11243/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11244/// if the responder is dropped without sending a response, so that the client
11245/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11246impl std::ops::Drop for BaseDatagramSocketGetIpTtlResponder {
11247    fn drop(&mut self) {
11248        self.control_handle.shutdown();
11249        // Safety: drops once, never accessed again
11250        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11251    }
11252}
11253
11254impl fidl::endpoints::Responder for BaseDatagramSocketGetIpTtlResponder {
11255    type ControlHandle = BaseDatagramSocketControlHandle;
11256
11257    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11258        &self.control_handle
11259    }
11260
11261    fn drop_without_shutdown(mut self) {
11262        // Safety: drops once, never accessed again due to mem::forget
11263        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11264        // Prevent Drop from running (which would shut down the channel)
11265        std::mem::forget(self);
11266    }
11267}
11268
11269impl BaseDatagramSocketGetIpTtlResponder {
11270    /// Sends a response to the FIDL transaction.
11271    ///
11272    /// Sets the channel to shutdown if an error occurs.
11273    pub fn send(
11274        self,
11275        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
11276    ) -> Result<(), fidl::Error> {
11277        let _result = self.send_raw(result);
11278        if _result.is_err() {
11279            self.control_handle.shutdown();
11280        }
11281        self.drop_without_shutdown();
11282        _result
11283    }
11284
11285    /// Similar to "send" but does not shutdown the channel if an error occurs.
11286    pub fn send_no_shutdown_on_err(
11287        self,
11288        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
11289    ) -> Result<(), fidl::Error> {
11290        let _result = self.send_raw(result);
11291        self.drop_without_shutdown();
11292        _result
11293    }
11294
11295    fn send_raw(
11296        &self,
11297        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
11298    ) -> Result<(), fidl::Error> {
11299        self.control_handle.inner.send::<fidl::encoding::ResultType<
11300            BaseNetworkSocketGetIpTtlResponse,
11301            fidl_fuchsia_posix::Errno,
11302        >>(
11303            result.map(|value| (value,)),
11304            self.tx_id,
11305            0x47e47fa1f24da471,
11306            fidl::encoding::DynamicFlags::empty(),
11307        )
11308    }
11309}
11310
11311#[must_use = "FIDL methods require a response to be sent"]
11312#[derive(Debug)]
11313pub struct BaseDatagramSocketSetIpPacketInfoResponder {
11314    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11315    tx_id: u32,
11316}
11317
11318/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11319/// if the responder is dropped without sending a response, so that the client
11320/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11321impl std::ops::Drop for BaseDatagramSocketSetIpPacketInfoResponder {
11322    fn drop(&mut self) {
11323        self.control_handle.shutdown();
11324        // Safety: drops once, never accessed again
11325        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11326    }
11327}
11328
11329impl fidl::endpoints::Responder for BaseDatagramSocketSetIpPacketInfoResponder {
11330    type ControlHandle = BaseDatagramSocketControlHandle;
11331
11332    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11333        &self.control_handle
11334    }
11335
11336    fn drop_without_shutdown(mut self) {
11337        // Safety: drops once, never accessed again due to mem::forget
11338        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11339        // Prevent Drop from running (which would shut down the channel)
11340        std::mem::forget(self);
11341    }
11342}
11343
11344impl BaseDatagramSocketSetIpPacketInfoResponder {
11345    /// Sends a response to the FIDL transaction.
11346    ///
11347    /// Sets the channel to shutdown if an error occurs.
11348    pub fn send(
11349        self,
11350        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11351    ) -> Result<(), fidl::Error> {
11352        let _result = self.send_raw(result);
11353        if _result.is_err() {
11354            self.control_handle.shutdown();
11355        }
11356        self.drop_without_shutdown();
11357        _result
11358    }
11359
11360    /// Similar to "send" but does not shutdown the channel if an error occurs.
11361    pub fn send_no_shutdown_on_err(
11362        self,
11363        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11364    ) -> Result<(), fidl::Error> {
11365        let _result = self.send_raw(result);
11366        self.drop_without_shutdown();
11367        _result
11368    }
11369
11370    fn send_raw(
11371        &self,
11372        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11373    ) -> Result<(), fidl::Error> {
11374        self.control_handle.inner.send::<fidl::encoding::ResultType<
11375            fidl::encoding::EmptyStruct,
11376            fidl_fuchsia_posix::Errno,
11377        >>(
11378            result,
11379            self.tx_id,
11380            0x392d16bee20c0e16,
11381            fidl::encoding::DynamicFlags::empty(),
11382        )
11383    }
11384}
11385
11386#[must_use = "FIDL methods require a response to be sent"]
11387#[derive(Debug)]
11388pub struct BaseDatagramSocketGetIpPacketInfoResponder {
11389    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11390    tx_id: u32,
11391}
11392
11393/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11394/// if the responder is dropped without sending a response, so that the client
11395/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11396impl std::ops::Drop for BaseDatagramSocketGetIpPacketInfoResponder {
11397    fn drop(&mut self) {
11398        self.control_handle.shutdown();
11399        // Safety: drops once, never accessed again
11400        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11401    }
11402}
11403
11404impl fidl::endpoints::Responder for BaseDatagramSocketGetIpPacketInfoResponder {
11405    type ControlHandle = BaseDatagramSocketControlHandle;
11406
11407    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11408        &self.control_handle
11409    }
11410
11411    fn drop_without_shutdown(mut self) {
11412        // Safety: drops once, never accessed again due to mem::forget
11413        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11414        // Prevent Drop from running (which would shut down the channel)
11415        std::mem::forget(self);
11416    }
11417}
11418
11419impl BaseDatagramSocketGetIpPacketInfoResponder {
11420    /// Sends a response to the FIDL transaction.
11421    ///
11422    /// Sets the channel to shutdown if an error occurs.
11423    pub fn send(
11424        self,
11425        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
11426    ) -> Result<(), fidl::Error> {
11427        let _result = self.send_raw(result);
11428        if _result.is_err() {
11429            self.control_handle.shutdown();
11430        }
11431        self.drop_without_shutdown();
11432        _result
11433    }
11434
11435    /// Similar to "send" but does not shutdown the channel if an error occurs.
11436    pub fn send_no_shutdown_on_err(
11437        self,
11438        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
11439    ) -> Result<(), fidl::Error> {
11440        let _result = self.send_raw(result);
11441        self.drop_without_shutdown();
11442        _result
11443    }
11444
11445    fn send_raw(
11446        &self,
11447        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
11448    ) -> Result<(), fidl::Error> {
11449        self.control_handle.inner.send::<fidl::encoding::ResultType<
11450            BaseNetworkSocketGetIpPacketInfoResponse,
11451            fidl_fuchsia_posix::Errno,
11452        >>(
11453            result.map(|value| (value,)),
11454            self.tx_id,
11455            0x54b505f242280740,
11456            fidl::encoding::DynamicFlags::empty(),
11457        )
11458    }
11459}
11460
11461#[must_use = "FIDL methods require a response to be sent"]
11462#[derive(Debug)]
11463pub struct BaseDatagramSocketSetIpReceiveTypeOfServiceResponder {
11464    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11465    tx_id: u32,
11466}
11467
11468/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11469/// if the responder is dropped without sending a response, so that the client
11470/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11471impl std::ops::Drop for BaseDatagramSocketSetIpReceiveTypeOfServiceResponder {
11472    fn drop(&mut self) {
11473        self.control_handle.shutdown();
11474        // Safety: drops once, never accessed again
11475        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11476    }
11477}
11478
11479impl fidl::endpoints::Responder for BaseDatagramSocketSetIpReceiveTypeOfServiceResponder {
11480    type ControlHandle = BaseDatagramSocketControlHandle;
11481
11482    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11483        &self.control_handle
11484    }
11485
11486    fn drop_without_shutdown(mut self) {
11487        // Safety: drops once, never accessed again due to mem::forget
11488        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11489        // Prevent Drop from running (which would shut down the channel)
11490        std::mem::forget(self);
11491    }
11492}
11493
11494impl BaseDatagramSocketSetIpReceiveTypeOfServiceResponder {
11495    /// Sends a response to the FIDL transaction.
11496    ///
11497    /// Sets the channel to shutdown if an error occurs.
11498    pub fn send(
11499        self,
11500        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11501    ) -> Result<(), fidl::Error> {
11502        let _result = self.send_raw(result);
11503        if _result.is_err() {
11504            self.control_handle.shutdown();
11505        }
11506        self.drop_without_shutdown();
11507        _result
11508    }
11509
11510    /// Similar to "send" but does not shutdown the channel if an error occurs.
11511    pub fn send_no_shutdown_on_err(
11512        self,
11513        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11514    ) -> Result<(), fidl::Error> {
11515        let _result = self.send_raw(result);
11516        self.drop_without_shutdown();
11517        _result
11518    }
11519
11520    fn send_raw(
11521        &self,
11522        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11523    ) -> Result<(), fidl::Error> {
11524        self.control_handle.inner.send::<fidl::encoding::ResultType<
11525            fidl::encoding::EmptyStruct,
11526            fidl_fuchsia_posix::Errno,
11527        >>(
11528            result,
11529            self.tx_id,
11530            0x6c4f6714995f84ef,
11531            fidl::encoding::DynamicFlags::empty(),
11532        )
11533    }
11534}
11535
11536#[must_use = "FIDL methods require a response to be sent"]
11537#[derive(Debug)]
11538pub struct BaseDatagramSocketGetIpReceiveTypeOfServiceResponder {
11539    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11540    tx_id: u32,
11541}
11542
11543/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11544/// if the responder is dropped without sending a response, so that the client
11545/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11546impl std::ops::Drop for BaseDatagramSocketGetIpReceiveTypeOfServiceResponder {
11547    fn drop(&mut self) {
11548        self.control_handle.shutdown();
11549        // Safety: drops once, never accessed again
11550        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11551    }
11552}
11553
11554impl fidl::endpoints::Responder for BaseDatagramSocketGetIpReceiveTypeOfServiceResponder {
11555    type ControlHandle = BaseDatagramSocketControlHandle;
11556
11557    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11558        &self.control_handle
11559    }
11560
11561    fn drop_without_shutdown(mut self) {
11562        // Safety: drops once, never accessed again due to mem::forget
11563        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11564        // Prevent Drop from running (which would shut down the channel)
11565        std::mem::forget(self);
11566    }
11567}
11568
11569impl BaseDatagramSocketGetIpReceiveTypeOfServiceResponder {
11570    /// Sends a response to the FIDL transaction.
11571    ///
11572    /// Sets the channel to shutdown if an error occurs.
11573    pub fn send(
11574        self,
11575        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
11576    ) -> Result<(), fidl::Error> {
11577        let _result = self.send_raw(result);
11578        if _result.is_err() {
11579            self.control_handle.shutdown();
11580        }
11581        self.drop_without_shutdown();
11582        _result
11583    }
11584
11585    /// Similar to "send" but does not shutdown the channel if an error occurs.
11586    pub fn send_no_shutdown_on_err(
11587        self,
11588        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
11589    ) -> Result<(), fidl::Error> {
11590        let _result = self.send_raw(result);
11591        self.drop_without_shutdown();
11592        _result
11593    }
11594
11595    fn send_raw(
11596        &self,
11597        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
11598    ) -> Result<(), fidl::Error> {
11599        self.control_handle.inner.send::<fidl::encoding::ResultType<
11600            BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
11601            fidl_fuchsia_posix::Errno,
11602        >>(
11603            result.map(|value| (value,)),
11604            self.tx_id,
11605            0x4158ba7dc2795960,
11606            fidl::encoding::DynamicFlags::empty(),
11607        )
11608    }
11609}
11610
11611#[must_use = "FIDL methods require a response to be sent"]
11612#[derive(Debug)]
11613pub struct BaseDatagramSocketSetIpReceiveTtlResponder {
11614    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11615    tx_id: u32,
11616}
11617
11618/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11619/// if the responder is dropped without sending a response, so that the client
11620/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11621impl std::ops::Drop for BaseDatagramSocketSetIpReceiveTtlResponder {
11622    fn drop(&mut self) {
11623        self.control_handle.shutdown();
11624        // Safety: drops once, never accessed again
11625        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11626    }
11627}
11628
11629impl fidl::endpoints::Responder for BaseDatagramSocketSetIpReceiveTtlResponder {
11630    type ControlHandle = BaseDatagramSocketControlHandle;
11631
11632    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11633        &self.control_handle
11634    }
11635
11636    fn drop_without_shutdown(mut self) {
11637        // Safety: drops once, never accessed again due to mem::forget
11638        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11639        // Prevent Drop from running (which would shut down the channel)
11640        std::mem::forget(self);
11641    }
11642}
11643
11644impl BaseDatagramSocketSetIpReceiveTtlResponder {
11645    /// Sends a response to the FIDL transaction.
11646    ///
11647    /// Sets the channel to shutdown if an error occurs.
11648    pub fn send(
11649        self,
11650        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11651    ) -> Result<(), fidl::Error> {
11652        let _result = self.send_raw(result);
11653        if _result.is_err() {
11654            self.control_handle.shutdown();
11655        }
11656        self.drop_without_shutdown();
11657        _result
11658    }
11659
11660    /// Similar to "send" but does not shutdown the channel if an error occurs.
11661    pub fn send_no_shutdown_on_err(
11662        self,
11663        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11664    ) -> Result<(), fidl::Error> {
11665        let _result = self.send_raw(result);
11666        self.drop_without_shutdown();
11667        _result
11668    }
11669
11670    fn send_raw(
11671        &self,
11672        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11673    ) -> Result<(), fidl::Error> {
11674        self.control_handle.inner.send::<fidl::encoding::ResultType<
11675            fidl::encoding::EmptyStruct,
11676            fidl_fuchsia_posix::Errno,
11677        >>(
11678            result,
11679            self.tx_id,
11680            0x46f15be0ce0ab82b,
11681            fidl::encoding::DynamicFlags::empty(),
11682        )
11683    }
11684}
11685
11686#[must_use = "FIDL methods require a response to be sent"]
11687#[derive(Debug)]
11688pub struct BaseDatagramSocketGetIpReceiveTtlResponder {
11689    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11690    tx_id: u32,
11691}
11692
11693/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11694/// if the responder is dropped without sending a response, so that the client
11695/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11696impl std::ops::Drop for BaseDatagramSocketGetIpReceiveTtlResponder {
11697    fn drop(&mut self) {
11698        self.control_handle.shutdown();
11699        // Safety: drops once, never accessed again
11700        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11701    }
11702}
11703
11704impl fidl::endpoints::Responder for BaseDatagramSocketGetIpReceiveTtlResponder {
11705    type ControlHandle = BaseDatagramSocketControlHandle;
11706
11707    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11708        &self.control_handle
11709    }
11710
11711    fn drop_without_shutdown(mut self) {
11712        // Safety: drops once, never accessed again due to mem::forget
11713        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11714        // Prevent Drop from running (which would shut down the channel)
11715        std::mem::forget(self);
11716    }
11717}
11718
11719impl BaseDatagramSocketGetIpReceiveTtlResponder {
11720    /// Sends a response to the FIDL transaction.
11721    ///
11722    /// Sets the channel to shutdown if an error occurs.
11723    pub fn send(
11724        self,
11725        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
11726    ) -> Result<(), fidl::Error> {
11727        let _result = self.send_raw(result);
11728        if _result.is_err() {
11729            self.control_handle.shutdown();
11730        }
11731        self.drop_without_shutdown();
11732        _result
11733    }
11734
11735    /// Similar to "send" but does not shutdown the channel if an error occurs.
11736    pub fn send_no_shutdown_on_err(
11737        self,
11738        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
11739    ) -> Result<(), fidl::Error> {
11740        let _result = self.send_raw(result);
11741        self.drop_without_shutdown();
11742        _result
11743    }
11744
11745    fn send_raw(
11746        &self,
11747        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
11748    ) -> Result<(), fidl::Error> {
11749        self.control_handle.inner.send::<fidl::encoding::ResultType<
11750            BaseNetworkSocketGetIpReceiveTtlResponse,
11751            fidl_fuchsia_posix::Errno,
11752        >>(
11753            result.map(|value| (value,)),
11754            self.tx_id,
11755            0x678ddd5a5dfa2eb5,
11756            fidl::encoding::DynamicFlags::empty(),
11757        )
11758    }
11759}
11760
11761#[must_use = "FIDL methods require a response to be sent"]
11762#[derive(Debug)]
11763pub struct BaseDatagramSocketSetIpMulticastInterfaceResponder {
11764    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11765    tx_id: u32,
11766}
11767
11768/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11769/// if the responder is dropped without sending a response, so that the client
11770/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11771impl std::ops::Drop for BaseDatagramSocketSetIpMulticastInterfaceResponder {
11772    fn drop(&mut self) {
11773        self.control_handle.shutdown();
11774        // Safety: drops once, never accessed again
11775        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11776    }
11777}
11778
11779impl fidl::endpoints::Responder for BaseDatagramSocketSetIpMulticastInterfaceResponder {
11780    type ControlHandle = BaseDatagramSocketControlHandle;
11781
11782    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11783        &self.control_handle
11784    }
11785
11786    fn drop_without_shutdown(mut self) {
11787        // Safety: drops once, never accessed again due to mem::forget
11788        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11789        // Prevent Drop from running (which would shut down the channel)
11790        std::mem::forget(self);
11791    }
11792}
11793
11794impl BaseDatagramSocketSetIpMulticastInterfaceResponder {
11795    /// Sends a response to the FIDL transaction.
11796    ///
11797    /// Sets the channel to shutdown if an error occurs.
11798    pub fn send(
11799        self,
11800        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11801    ) -> Result<(), fidl::Error> {
11802        let _result = self.send_raw(result);
11803        if _result.is_err() {
11804            self.control_handle.shutdown();
11805        }
11806        self.drop_without_shutdown();
11807        _result
11808    }
11809
11810    /// Similar to "send" but does not shutdown the channel if an error occurs.
11811    pub fn send_no_shutdown_on_err(
11812        self,
11813        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11814    ) -> Result<(), fidl::Error> {
11815        let _result = self.send_raw(result);
11816        self.drop_without_shutdown();
11817        _result
11818    }
11819
11820    fn send_raw(
11821        &self,
11822        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11823    ) -> Result<(), fidl::Error> {
11824        self.control_handle.inner.send::<fidl::encoding::ResultType<
11825            fidl::encoding::EmptyStruct,
11826            fidl_fuchsia_posix::Errno,
11827        >>(
11828            result,
11829            self.tx_id,
11830            0x752fbfa9b12befe,
11831            fidl::encoding::DynamicFlags::empty(),
11832        )
11833    }
11834}
11835
11836#[must_use = "FIDL methods require a response to be sent"]
11837#[derive(Debug)]
11838pub struct BaseDatagramSocketGetIpMulticastInterfaceResponder {
11839    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11840    tx_id: u32,
11841}
11842
11843/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11844/// if the responder is dropped without sending a response, so that the client
11845/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11846impl std::ops::Drop for BaseDatagramSocketGetIpMulticastInterfaceResponder {
11847    fn drop(&mut self) {
11848        self.control_handle.shutdown();
11849        // Safety: drops once, never accessed again
11850        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11851    }
11852}
11853
11854impl fidl::endpoints::Responder for BaseDatagramSocketGetIpMulticastInterfaceResponder {
11855    type ControlHandle = BaseDatagramSocketControlHandle;
11856
11857    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11858        &self.control_handle
11859    }
11860
11861    fn drop_without_shutdown(mut self) {
11862        // Safety: drops once, never accessed again due to mem::forget
11863        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11864        // Prevent Drop from running (which would shut down the channel)
11865        std::mem::forget(self);
11866    }
11867}
11868
11869impl BaseDatagramSocketGetIpMulticastInterfaceResponder {
11870    /// Sends a response to the FIDL transaction.
11871    ///
11872    /// Sets the channel to shutdown if an error occurs.
11873    pub fn send(
11874        self,
11875        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
11876    ) -> Result<(), fidl::Error> {
11877        let _result = self.send_raw(result);
11878        if _result.is_err() {
11879            self.control_handle.shutdown();
11880        }
11881        self.drop_without_shutdown();
11882        _result
11883    }
11884
11885    /// Similar to "send" but does not shutdown the channel if an error occurs.
11886    pub fn send_no_shutdown_on_err(
11887        self,
11888        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
11889    ) -> Result<(), fidl::Error> {
11890        let _result = self.send_raw(result);
11891        self.drop_without_shutdown();
11892        _result
11893    }
11894
11895    fn send_raw(
11896        &self,
11897        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
11898    ) -> Result<(), fidl::Error> {
11899        self.control_handle.inner.send::<fidl::encoding::ResultType<
11900            BaseNetworkSocketGetIpMulticastInterfaceResponse,
11901            fidl_fuchsia_posix::Errno,
11902        >>(
11903            result.map(|value| (value,)),
11904            self.tx_id,
11905            0x320bd14c4df046c4,
11906            fidl::encoding::DynamicFlags::empty(),
11907        )
11908    }
11909}
11910
11911#[must_use = "FIDL methods require a response to be sent"]
11912#[derive(Debug)]
11913pub struct BaseDatagramSocketSetIpMulticastTtlResponder {
11914    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11915    tx_id: u32,
11916}
11917
11918/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11919/// if the responder is dropped without sending a response, so that the client
11920/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11921impl std::ops::Drop for BaseDatagramSocketSetIpMulticastTtlResponder {
11922    fn drop(&mut self) {
11923        self.control_handle.shutdown();
11924        // Safety: drops once, never accessed again
11925        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11926    }
11927}
11928
11929impl fidl::endpoints::Responder for BaseDatagramSocketSetIpMulticastTtlResponder {
11930    type ControlHandle = BaseDatagramSocketControlHandle;
11931
11932    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11933        &self.control_handle
11934    }
11935
11936    fn drop_without_shutdown(mut self) {
11937        // Safety: drops once, never accessed again due to mem::forget
11938        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11939        // Prevent Drop from running (which would shut down the channel)
11940        std::mem::forget(self);
11941    }
11942}
11943
11944impl BaseDatagramSocketSetIpMulticastTtlResponder {
11945    /// Sends a response to the FIDL transaction.
11946    ///
11947    /// Sets the channel to shutdown if an error occurs.
11948    pub fn send(
11949        self,
11950        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11951    ) -> Result<(), fidl::Error> {
11952        let _result = self.send_raw(result);
11953        if _result.is_err() {
11954            self.control_handle.shutdown();
11955        }
11956        self.drop_without_shutdown();
11957        _result
11958    }
11959
11960    /// Similar to "send" but does not shutdown the channel if an error occurs.
11961    pub fn send_no_shutdown_on_err(
11962        self,
11963        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11964    ) -> Result<(), fidl::Error> {
11965        let _result = self.send_raw(result);
11966        self.drop_without_shutdown();
11967        _result
11968    }
11969
11970    fn send_raw(
11971        &self,
11972        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11973    ) -> Result<(), fidl::Error> {
11974        self.control_handle.inner.send::<fidl::encoding::ResultType<
11975            fidl::encoding::EmptyStruct,
11976            fidl_fuchsia_posix::Errno,
11977        >>(
11978            result,
11979            self.tx_id,
11980            0x63134d53772916a1,
11981            fidl::encoding::DynamicFlags::empty(),
11982        )
11983    }
11984}
11985
11986#[must_use = "FIDL methods require a response to be sent"]
11987#[derive(Debug)]
11988pub struct BaseDatagramSocketGetIpMulticastTtlResponder {
11989    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11990    tx_id: u32,
11991}
11992
11993/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11994/// if the responder is dropped without sending a response, so that the client
11995/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11996impl std::ops::Drop for BaseDatagramSocketGetIpMulticastTtlResponder {
11997    fn drop(&mut self) {
11998        self.control_handle.shutdown();
11999        // Safety: drops once, never accessed again
12000        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12001    }
12002}
12003
12004impl fidl::endpoints::Responder for BaseDatagramSocketGetIpMulticastTtlResponder {
12005    type ControlHandle = BaseDatagramSocketControlHandle;
12006
12007    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12008        &self.control_handle
12009    }
12010
12011    fn drop_without_shutdown(mut self) {
12012        // Safety: drops once, never accessed again due to mem::forget
12013        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12014        // Prevent Drop from running (which would shut down the channel)
12015        std::mem::forget(self);
12016    }
12017}
12018
12019impl BaseDatagramSocketGetIpMulticastTtlResponder {
12020    /// Sends a response to the FIDL transaction.
12021    ///
12022    /// Sets the channel to shutdown if an error occurs.
12023    pub fn send(
12024        self,
12025        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
12026    ) -> Result<(), fidl::Error> {
12027        let _result = self.send_raw(result);
12028        if _result.is_err() {
12029            self.control_handle.shutdown();
12030        }
12031        self.drop_without_shutdown();
12032        _result
12033    }
12034
12035    /// Similar to "send" but does not shutdown the channel if an error occurs.
12036    pub fn send_no_shutdown_on_err(
12037        self,
12038        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
12039    ) -> Result<(), fidl::Error> {
12040        let _result = self.send_raw(result);
12041        self.drop_without_shutdown();
12042        _result
12043    }
12044
12045    fn send_raw(
12046        &self,
12047        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
12048    ) -> Result<(), fidl::Error> {
12049        self.control_handle.inner.send::<fidl::encoding::ResultType<
12050            BaseNetworkSocketGetIpMulticastTtlResponse,
12051            fidl_fuchsia_posix::Errno,
12052        >>(
12053            result.map(|value| (value,)),
12054            self.tx_id,
12055            0x4665cd378f39e1a,
12056            fidl::encoding::DynamicFlags::empty(),
12057        )
12058    }
12059}
12060
12061#[must_use = "FIDL methods require a response to be sent"]
12062#[derive(Debug)]
12063pub struct BaseDatagramSocketSetIpMulticastLoopbackResponder {
12064    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12065    tx_id: u32,
12066}
12067
12068/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12069/// if the responder is dropped without sending a response, so that the client
12070/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12071impl std::ops::Drop for BaseDatagramSocketSetIpMulticastLoopbackResponder {
12072    fn drop(&mut self) {
12073        self.control_handle.shutdown();
12074        // Safety: drops once, never accessed again
12075        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12076    }
12077}
12078
12079impl fidl::endpoints::Responder for BaseDatagramSocketSetIpMulticastLoopbackResponder {
12080    type ControlHandle = BaseDatagramSocketControlHandle;
12081
12082    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12083        &self.control_handle
12084    }
12085
12086    fn drop_without_shutdown(mut self) {
12087        // Safety: drops once, never accessed again due to mem::forget
12088        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12089        // Prevent Drop from running (which would shut down the channel)
12090        std::mem::forget(self);
12091    }
12092}
12093
12094impl BaseDatagramSocketSetIpMulticastLoopbackResponder {
12095    /// Sends a response to the FIDL transaction.
12096    ///
12097    /// Sets the channel to shutdown if an error occurs.
12098    pub fn send(
12099        self,
12100        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12101    ) -> Result<(), fidl::Error> {
12102        let _result = self.send_raw(result);
12103        if _result.is_err() {
12104            self.control_handle.shutdown();
12105        }
12106        self.drop_without_shutdown();
12107        _result
12108    }
12109
12110    /// Similar to "send" but does not shutdown the channel if an error occurs.
12111    pub fn send_no_shutdown_on_err(
12112        self,
12113        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12114    ) -> Result<(), fidl::Error> {
12115        let _result = self.send_raw(result);
12116        self.drop_without_shutdown();
12117        _result
12118    }
12119
12120    fn send_raw(
12121        &self,
12122        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12123    ) -> Result<(), fidl::Error> {
12124        self.control_handle.inner.send::<fidl::encoding::ResultType<
12125            fidl::encoding::EmptyStruct,
12126            fidl_fuchsia_posix::Errno,
12127        >>(
12128            result,
12129            self.tx_id,
12130            0x20c55c11f00943ea,
12131            fidl::encoding::DynamicFlags::empty(),
12132        )
12133    }
12134}
12135
12136#[must_use = "FIDL methods require a response to be sent"]
12137#[derive(Debug)]
12138pub struct BaseDatagramSocketGetIpMulticastLoopbackResponder {
12139    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12140    tx_id: u32,
12141}
12142
12143/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12144/// if the responder is dropped without sending a response, so that the client
12145/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12146impl std::ops::Drop for BaseDatagramSocketGetIpMulticastLoopbackResponder {
12147    fn drop(&mut self) {
12148        self.control_handle.shutdown();
12149        // Safety: drops once, never accessed again
12150        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12151    }
12152}
12153
12154impl fidl::endpoints::Responder for BaseDatagramSocketGetIpMulticastLoopbackResponder {
12155    type ControlHandle = BaseDatagramSocketControlHandle;
12156
12157    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12158        &self.control_handle
12159    }
12160
12161    fn drop_without_shutdown(mut self) {
12162        // Safety: drops once, never accessed again due to mem::forget
12163        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12164        // Prevent Drop from running (which would shut down the channel)
12165        std::mem::forget(self);
12166    }
12167}
12168
12169impl BaseDatagramSocketGetIpMulticastLoopbackResponder {
12170    /// Sends a response to the FIDL transaction.
12171    ///
12172    /// Sets the channel to shutdown if an error occurs.
12173    pub fn send(
12174        self,
12175        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
12176    ) -> Result<(), fidl::Error> {
12177        let _result = self.send_raw(result);
12178        if _result.is_err() {
12179            self.control_handle.shutdown();
12180        }
12181        self.drop_without_shutdown();
12182        _result
12183    }
12184
12185    /// Similar to "send" but does not shutdown the channel if an error occurs.
12186    pub fn send_no_shutdown_on_err(
12187        self,
12188        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
12189    ) -> Result<(), fidl::Error> {
12190        let _result = self.send_raw(result);
12191        self.drop_without_shutdown();
12192        _result
12193    }
12194
12195    fn send_raw(
12196        &self,
12197        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
12198    ) -> Result<(), fidl::Error> {
12199        self.control_handle.inner.send::<fidl::encoding::ResultType<
12200            BaseNetworkSocketGetIpMulticastLoopbackResponse,
12201            fidl_fuchsia_posix::Errno,
12202        >>(
12203            result.map(|value| (value,)),
12204            self.tx_id,
12205            0x3b6b26ff558298f2,
12206            fidl::encoding::DynamicFlags::empty(),
12207        )
12208    }
12209}
12210
12211#[must_use = "FIDL methods require a response to be sent"]
12212#[derive(Debug)]
12213pub struct BaseDatagramSocketAddIpMembershipResponder {
12214    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12215    tx_id: u32,
12216}
12217
12218/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12219/// if the responder is dropped without sending a response, so that the client
12220/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12221impl std::ops::Drop for BaseDatagramSocketAddIpMembershipResponder {
12222    fn drop(&mut self) {
12223        self.control_handle.shutdown();
12224        // Safety: drops once, never accessed again
12225        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12226    }
12227}
12228
12229impl fidl::endpoints::Responder for BaseDatagramSocketAddIpMembershipResponder {
12230    type ControlHandle = BaseDatagramSocketControlHandle;
12231
12232    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12233        &self.control_handle
12234    }
12235
12236    fn drop_without_shutdown(mut self) {
12237        // Safety: drops once, never accessed again due to mem::forget
12238        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12239        // Prevent Drop from running (which would shut down the channel)
12240        std::mem::forget(self);
12241    }
12242}
12243
12244impl BaseDatagramSocketAddIpMembershipResponder {
12245    /// Sends a response to the FIDL transaction.
12246    ///
12247    /// Sets the channel to shutdown if an error occurs.
12248    pub fn send(
12249        self,
12250        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12251    ) -> Result<(), fidl::Error> {
12252        let _result = self.send_raw(result);
12253        if _result.is_err() {
12254            self.control_handle.shutdown();
12255        }
12256        self.drop_without_shutdown();
12257        _result
12258    }
12259
12260    /// Similar to "send" but does not shutdown the channel if an error occurs.
12261    pub fn send_no_shutdown_on_err(
12262        self,
12263        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12264    ) -> Result<(), fidl::Error> {
12265        let _result = self.send_raw(result);
12266        self.drop_without_shutdown();
12267        _result
12268    }
12269
12270    fn send_raw(
12271        &self,
12272        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12273    ) -> Result<(), fidl::Error> {
12274        self.control_handle.inner.send::<fidl::encoding::ResultType<
12275            fidl::encoding::EmptyStruct,
12276            fidl_fuchsia_posix::Errno,
12277        >>(
12278            result,
12279            self.tx_id,
12280            0x76bc7df115a3b4d0,
12281            fidl::encoding::DynamicFlags::empty(),
12282        )
12283    }
12284}
12285
12286#[must_use = "FIDL methods require a response to be sent"]
12287#[derive(Debug)]
12288pub struct BaseDatagramSocketDropIpMembershipResponder {
12289    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12290    tx_id: u32,
12291}
12292
12293/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12294/// if the responder is dropped without sending a response, so that the client
12295/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12296impl std::ops::Drop for BaseDatagramSocketDropIpMembershipResponder {
12297    fn drop(&mut self) {
12298        self.control_handle.shutdown();
12299        // Safety: drops once, never accessed again
12300        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12301    }
12302}
12303
12304impl fidl::endpoints::Responder for BaseDatagramSocketDropIpMembershipResponder {
12305    type ControlHandle = BaseDatagramSocketControlHandle;
12306
12307    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12308        &self.control_handle
12309    }
12310
12311    fn drop_without_shutdown(mut self) {
12312        // Safety: drops once, never accessed again due to mem::forget
12313        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12314        // Prevent Drop from running (which would shut down the channel)
12315        std::mem::forget(self);
12316    }
12317}
12318
12319impl BaseDatagramSocketDropIpMembershipResponder {
12320    /// Sends a response to the FIDL transaction.
12321    ///
12322    /// Sets the channel to shutdown if an error occurs.
12323    pub fn send(
12324        self,
12325        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12326    ) -> Result<(), fidl::Error> {
12327        let _result = self.send_raw(result);
12328        if _result.is_err() {
12329            self.control_handle.shutdown();
12330        }
12331        self.drop_without_shutdown();
12332        _result
12333    }
12334
12335    /// Similar to "send" but does not shutdown the channel if an error occurs.
12336    pub fn send_no_shutdown_on_err(
12337        self,
12338        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12339    ) -> Result<(), fidl::Error> {
12340        let _result = self.send_raw(result);
12341        self.drop_without_shutdown();
12342        _result
12343    }
12344
12345    fn send_raw(
12346        &self,
12347        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12348    ) -> Result<(), fidl::Error> {
12349        self.control_handle.inner.send::<fidl::encoding::ResultType<
12350            fidl::encoding::EmptyStruct,
12351            fidl_fuchsia_posix::Errno,
12352        >>(
12353            result,
12354            self.tx_id,
12355            0x2888f3099188d03,
12356            fidl::encoding::DynamicFlags::empty(),
12357        )
12358    }
12359}
12360
12361#[must_use = "FIDL methods require a response to be sent"]
12362#[derive(Debug)]
12363pub struct BaseDatagramSocketSetIpTransparentResponder {
12364    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12365    tx_id: u32,
12366}
12367
12368/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12369/// if the responder is dropped without sending a response, so that the client
12370/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12371impl std::ops::Drop for BaseDatagramSocketSetIpTransparentResponder {
12372    fn drop(&mut self) {
12373        self.control_handle.shutdown();
12374        // Safety: drops once, never accessed again
12375        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12376    }
12377}
12378
12379impl fidl::endpoints::Responder for BaseDatagramSocketSetIpTransparentResponder {
12380    type ControlHandle = BaseDatagramSocketControlHandle;
12381
12382    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12383        &self.control_handle
12384    }
12385
12386    fn drop_without_shutdown(mut self) {
12387        // Safety: drops once, never accessed again due to mem::forget
12388        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12389        // Prevent Drop from running (which would shut down the channel)
12390        std::mem::forget(self);
12391    }
12392}
12393
12394impl BaseDatagramSocketSetIpTransparentResponder {
12395    /// Sends a response to the FIDL transaction.
12396    ///
12397    /// Sets the channel to shutdown if an error occurs.
12398    pub fn send(
12399        self,
12400        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12401    ) -> Result<(), fidl::Error> {
12402        let _result = self.send_raw(result);
12403        if _result.is_err() {
12404            self.control_handle.shutdown();
12405        }
12406        self.drop_without_shutdown();
12407        _result
12408    }
12409
12410    /// Similar to "send" but does not shutdown the channel if an error occurs.
12411    pub fn send_no_shutdown_on_err(
12412        self,
12413        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12414    ) -> Result<(), fidl::Error> {
12415        let _result = self.send_raw(result);
12416        self.drop_without_shutdown();
12417        _result
12418    }
12419
12420    fn send_raw(
12421        &self,
12422        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12423    ) -> Result<(), fidl::Error> {
12424        self.control_handle.inner.send::<fidl::encoding::ResultType<
12425            fidl::encoding::EmptyStruct,
12426            fidl_fuchsia_posix::Errno,
12427        >>(
12428            result,
12429            self.tx_id,
12430            0x1ae532b0c066e3a0,
12431            fidl::encoding::DynamicFlags::empty(),
12432        )
12433    }
12434}
12435
12436#[must_use = "FIDL methods require a response to be sent"]
12437#[derive(Debug)]
12438pub struct BaseDatagramSocketGetIpTransparentResponder {
12439    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12440    tx_id: u32,
12441}
12442
12443/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12444/// if the responder is dropped without sending a response, so that the client
12445/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12446impl std::ops::Drop for BaseDatagramSocketGetIpTransparentResponder {
12447    fn drop(&mut self) {
12448        self.control_handle.shutdown();
12449        // Safety: drops once, never accessed again
12450        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12451    }
12452}
12453
12454impl fidl::endpoints::Responder for BaseDatagramSocketGetIpTransparentResponder {
12455    type ControlHandle = BaseDatagramSocketControlHandle;
12456
12457    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12458        &self.control_handle
12459    }
12460
12461    fn drop_without_shutdown(mut self) {
12462        // Safety: drops once, never accessed again due to mem::forget
12463        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12464        // Prevent Drop from running (which would shut down the channel)
12465        std::mem::forget(self);
12466    }
12467}
12468
12469impl BaseDatagramSocketGetIpTransparentResponder {
12470    /// Sends a response to the FIDL transaction.
12471    ///
12472    /// Sets the channel to shutdown if an error occurs.
12473    pub fn send(
12474        self,
12475        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
12476    ) -> Result<(), fidl::Error> {
12477        let _result = self.send_raw(result);
12478        if _result.is_err() {
12479            self.control_handle.shutdown();
12480        }
12481        self.drop_without_shutdown();
12482        _result
12483    }
12484
12485    /// Similar to "send" but does not shutdown the channel if an error occurs.
12486    pub fn send_no_shutdown_on_err(
12487        self,
12488        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
12489    ) -> Result<(), fidl::Error> {
12490        let _result = self.send_raw(result);
12491        self.drop_without_shutdown();
12492        _result
12493    }
12494
12495    fn send_raw(
12496        &self,
12497        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
12498    ) -> Result<(), fidl::Error> {
12499        self.control_handle.inner.send::<fidl::encoding::ResultType<
12500            BaseNetworkSocketGetIpTransparentResponse,
12501            fidl_fuchsia_posix::Errno,
12502        >>(
12503            result.map(|value| (value,)),
12504            self.tx_id,
12505            0x51d43695962ebfb5,
12506            fidl::encoding::DynamicFlags::empty(),
12507        )
12508    }
12509}
12510
12511#[must_use = "FIDL methods require a response to be sent"]
12512#[derive(Debug)]
12513pub struct BaseDatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
12514    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12515    tx_id: u32,
12516}
12517
12518/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12519/// if the responder is dropped without sending a response, so that the client
12520/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12521impl std::ops::Drop for BaseDatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
12522    fn drop(&mut self) {
12523        self.control_handle.shutdown();
12524        // Safety: drops once, never accessed again
12525        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12526    }
12527}
12528
12529impl fidl::endpoints::Responder
12530    for BaseDatagramSocketSetIpReceiveOriginalDestinationAddressResponder
12531{
12532    type ControlHandle = BaseDatagramSocketControlHandle;
12533
12534    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12535        &self.control_handle
12536    }
12537
12538    fn drop_without_shutdown(mut self) {
12539        // Safety: drops once, never accessed again due to mem::forget
12540        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12541        // Prevent Drop from running (which would shut down the channel)
12542        std::mem::forget(self);
12543    }
12544}
12545
12546impl BaseDatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
12547    /// Sends a response to the FIDL transaction.
12548    ///
12549    /// Sets the channel to shutdown if an error occurs.
12550    pub fn send(
12551        self,
12552        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12553    ) -> Result<(), fidl::Error> {
12554        let _result = self.send_raw(result);
12555        if _result.is_err() {
12556            self.control_handle.shutdown();
12557        }
12558        self.drop_without_shutdown();
12559        _result
12560    }
12561
12562    /// Similar to "send" but does not shutdown the channel if an error occurs.
12563    pub fn send_no_shutdown_on_err(
12564        self,
12565        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12566    ) -> Result<(), fidl::Error> {
12567        let _result = self.send_raw(result);
12568        self.drop_without_shutdown();
12569        _result
12570    }
12571
12572    fn send_raw(
12573        &self,
12574        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12575    ) -> Result<(), fidl::Error> {
12576        self.control_handle.inner.send::<fidl::encoding::ResultType<
12577            fidl::encoding::EmptyStruct,
12578            fidl_fuchsia_posix::Errno,
12579        >>(
12580            result,
12581            self.tx_id,
12582            0x4722b4ce52f7840,
12583            fidl::encoding::DynamicFlags::empty(),
12584        )
12585    }
12586}
12587
12588#[must_use = "FIDL methods require a response to be sent"]
12589#[derive(Debug)]
12590pub struct BaseDatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
12591    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12592    tx_id: u32,
12593}
12594
12595/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12596/// if the responder is dropped without sending a response, so that the client
12597/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12598impl std::ops::Drop for BaseDatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
12599    fn drop(&mut self) {
12600        self.control_handle.shutdown();
12601        // Safety: drops once, never accessed again
12602        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12603    }
12604}
12605
12606impl fidl::endpoints::Responder
12607    for BaseDatagramSocketGetIpReceiveOriginalDestinationAddressResponder
12608{
12609    type ControlHandle = BaseDatagramSocketControlHandle;
12610
12611    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12612        &self.control_handle
12613    }
12614
12615    fn drop_without_shutdown(mut self) {
12616        // Safety: drops once, never accessed again due to mem::forget
12617        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12618        // Prevent Drop from running (which would shut down the channel)
12619        std::mem::forget(self);
12620    }
12621}
12622
12623impl BaseDatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
12624    /// Sends a response to the FIDL transaction.
12625    ///
12626    /// Sets the channel to shutdown if an error occurs.
12627    pub fn send(
12628        self,
12629        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
12630    ) -> Result<(), fidl::Error> {
12631        let _result = self.send_raw(result);
12632        if _result.is_err() {
12633            self.control_handle.shutdown();
12634        }
12635        self.drop_without_shutdown();
12636        _result
12637    }
12638
12639    /// Similar to "send" but does not shutdown the channel if an error occurs.
12640    pub fn send_no_shutdown_on_err(
12641        self,
12642        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
12643    ) -> Result<(), fidl::Error> {
12644        let _result = self.send_raw(result);
12645        self.drop_without_shutdown();
12646        _result
12647    }
12648
12649    fn send_raw(
12650        &self,
12651        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
12652    ) -> Result<(), fidl::Error> {
12653        self.control_handle.inner.send::<fidl::encoding::ResultType<
12654            BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
12655            fidl_fuchsia_posix::Errno,
12656        >>(
12657            result.map(|value| (value,)),
12658            self.tx_id,
12659            0x2a0e7dc5d6bfdfe9,
12660            fidl::encoding::DynamicFlags::empty(),
12661        )
12662    }
12663}
12664
12665#[must_use = "FIDL methods require a response to be sent"]
12666#[derive(Debug)]
12667pub struct BaseDatagramSocketAddIpv6MembershipResponder {
12668    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12669    tx_id: u32,
12670}
12671
12672/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12673/// if the responder is dropped without sending a response, so that the client
12674/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12675impl std::ops::Drop for BaseDatagramSocketAddIpv6MembershipResponder {
12676    fn drop(&mut self) {
12677        self.control_handle.shutdown();
12678        // Safety: drops once, never accessed again
12679        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12680    }
12681}
12682
12683impl fidl::endpoints::Responder for BaseDatagramSocketAddIpv6MembershipResponder {
12684    type ControlHandle = BaseDatagramSocketControlHandle;
12685
12686    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12687        &self.control_handle
12688    }
12689
12690    fn drop_without_shutdown(mut self) {
12691        // Safety: drops once, never accessed again due to mem::forget
12692        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12693        // Prevent Drop from running (which would shut down the channel)
12694        std::mem::forget(self);
12695    }
12696}
12697
12698impl BaseDatagramSocketAddIpv6MembershipResponder {
12699    /// Sends a response to the FIDL transaction.
12700    ///
12701    /// Sets the channel to shutdown if an error occurs.
12702    pub fn send(
12703        self,
12704        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12705    ) -> Result<(), fidl::Error> {
12706        let _result = self.send_raw(result);
12707        if _result.is_err() {
12708            self.control_handle.shutdown();
12709        }
12710        self.drop_without_shutdown();
12711        _result
12712    }
12713
12714    /// Similar to "send" but does not shutdown the channel if an error occurs.
12715    pub fn send_no_shutdown_on_err(
12716        self,
12717        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12718    ) -> Result<(), fidl::Error> {
12719        let _result = self.send_raw(result);
12720        self.drop_without_shutdown();
12721        _result
12722    }
12723
12724    fn send_raw(
12725        &self,
12726        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12727    ) -> Result<(), fidl::Error> {
12728        self.control_handle.inner.send::<fidl::encoding::ResultType<
12729            fidl::encoding::EmptyStruct,
12730            fidl_fuchsia_posix::Errno,
12731        >>(
12732            result,
12733            self.tx_id,
12734            0x7c94727acb4ea4b3,
12735            fidl::encoding::DynamicFlags::empty(),
12736        )
12737    }
12738}
12739
12740#[must_use = "FIDL methods require a response to be sent"]
12741#[derive(Debug)]
12742pub struct BaseDatagramSocketDropIpv6MembershipResponder {
12743    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12744    tx_id: u32,
12745}
12746
12747/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12748/// if the responder is dropped without sending a response, so that the client
12749/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12750impl std::ops::Drop for BaseDatagramSocketDropIpv6MembershipResponder {
12751    fn drop(&mut self) {
12752        self.control_handle.shutdown();
12753        // Safety: drops once, never accessed again
12754        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12755    }
12756}
12757
12758impl fidl::endpoints::Responder for BaseDatagramSocketDropIpv6MembershipResponder {
12759    type ControlHandle = BaseDatagramSocketControlHandle;
12760
12761    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12762        &self.control_handle
12763    }
12764
12765    fn drop_without_shutdown(mut self) {
12766        // Safety: drops once, never accessed again due to mem::forget
12767        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12768        // Prevent Drop from running (which would shut down the channel)
12769        std::mem::forget(self);
12770    }
12771}
12772
12773impl BaseDatagramSocketDropIpv6MembershipResponder {
12774    /// Sends a response to the FIDL transaction.
12775    ///
12776    /// Sets the channel to shutdown if an error occurs.
12777    pub fn send(
12778        self,
12779        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12780    ) -> Result<(), fidl::Error> {
12781        let _result = self.send_raw(result);
12782        if _result.is_err() {
12783            self.control_handle.shutdown();
12784        }
12785        self.drop_without_shutdown();
12786        _result
12787    }
12788
12789    /// Similar to "send" but does not shutdown the channel if an error occurs.
12790    pub fn send_no_shutdown_on_err(
12791        self,
12792        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12793    ) -> Result<(), fidl::Error> {
12794        let _result = self.send_raw(result);
12795        self.drop_without_shutdown();
12796        _result
12797    }
12798
12799    fn send_raw(
12800        &self,
12801        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12802    ) -> Result<(), fidl::Error> {
12803        self.control_handle.inner.send::<fidl::encoding::ResultType<
12804            fidl::encoding::EmptyStruct,
12805            fidl_fuchsia_posix::Errno,
12806        >>(
12807            result,
12808            self.tx_id,
12809            0x42104c70ccaba304,
12810            fidl::encoding::DynamicFlags::empty(),
12811        )
12812    }
12813}
12814
12815#[must_use = "FIDL methods require a response to be sent"]
12816#[derive(Debug)]
12817pub struct BaseDatagramSocketSetIpv6MulticastInterfaceResponder {
12818    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12819    tx_id: u32,
12820}
12821
12822/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12823/// if the responder is dropped without sending a response, so that the client
12824/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12825impl std::ops::Drop for BaseDatagramSocketSetIpv6MulticastInterfaceResponder {
12826    fn drop(&mut self) {
12827        self.control_handle.shutdown();
12828        // Safety: drops once, never accessed again
12829        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12830    }
12831}
12832
12833impl fidl::endpoints::Responder for BaseDatagramSocketSetIpv6MulticastInterfaceResponder {
12834    type ControlHandle = BaseDatagramSocketControlHandle;
12835
12836    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12837        &self.control_handle
12838    }
12839
12840    fn drop_without_shutdown(mut self) {
12841        // Safety: drops once, never accessed again due to mem::forget
12842        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12843        // Prevent Drop from running (which would shut down the channel)
12844        std::mem::forget(self);
12845    }
12846}
12847
12848impl BaseDatagramSocketSetIpv6MulticastInterfaceResponder {
12849    /// Sends a response to the FIDL transaction.
12850    ///
12851    /// Sets the channel to shutdown if an error occurs.
12852    pub fn send(
12853        self,
12854        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12855    ) -> Result<(), fidl::Error> {
12856        let _result = self.send_raw(result);
12857        if _result.is_err() {
12858            self.control_handle.shutdown();
12859        }
12860        self.drop_without_shutdown();
12861        _result
12862    }
12863
12864    /// Similar to "send" but does not shutdown the channel if an error occurs.
12865    pub fn send_no_shutdown_on_err(
12866        self,
12867        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12868    ) -> Result<(), fidl::Error> {
12869        let _result = self.send_raw(result);
12870        self.drop_without_shutdown();
12871        _result
12872    }
12873
12874    fn send_raw(
12875        &self,
12876        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12877    ) -> Result<(), fidl::Error> {
12878        self.control_handle.inner.send::<fidl::encoding::ResultType<
12879            fidl::encoding::EmptyStruct,
12880            fidl_fuchsia_posix::Errno,
12881        >>(
12882            result,
12883            self.tx_id,
12884            0x135f76db3774ab3b,
12885            fidl::encoding::DynamicFlags::empty(),
12886        )
12887    }
12888}
12889
12890#[must_use = "FIDL methods require a response to be sent"]
12891#[derive(Debug)]
12892pub struct BaseDatagramSocketGetIpv6MulticastInterfaceResponder {
12893    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12894    tx_id: u32,
12895}
12896
12897/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12898/// if the responder is dropped without sending a response, so that the client
12899/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12900impl std::ops::Drop for BaseDatagramSocketGetIpv6MulticastInterfaceResponder {
12901    fn drop(&mut self) {
12902        self.control_handle.shutdown();
12903        // Safety: drops once, never accessed again
12904        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12905    }
12906}
12907
12908impl fidl::endpoints::Responder for BaseDatagramSocketGetIpv6MulticastInterfaceResponder {
12909    type ControlHandle = BaseDatagramSocketControlHandle;
12910
12911    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12912        &self.control_handle
12913    }
12914
12915    fn drop_without_shutdown(mut self) {
12916        // Safety: drops once, never accessed again due to mem::forget
12917        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12918        // Prevent Drop from running (which would shut down the channel)
12919        std::mem::forget(self);
12920    }
12921}
12922
12923impl BaseDatagramSocketGetIpv6MulticastInterfaceResponder {
12924    /// Sends a response to the FIDL transaction.
12925    ///
12926    /// Sets the channel to shutdown if an error occurs.
12927    pub fn send(
12928        self,
12929        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
12930    ) -> Result<(), fidl::Error> {
12931        let _result = self.send_raw(result);
12932        if _result.is_err() {
12933            self.control_handle.shutdown();
12934        }
12935        self.drop_without_shutdown();
12936        _result
12937    }
12938
12939    /// Similar to "send" but does not shutdown the channel if an error occurs.
12940    pub fn send_no_shutdown_on_err(
12941        self,
12942        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
12943    ) -> Result<(), fidl::Error> {
12944        let _result = self.send_raw(result);
12945        self.drop_without_shutdown();
12946        _result
12947    }
12948
12949    fn send_raw(
12950        &self,
12951        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
12952    ) -> Result<(), fidl::Error> {
12953        self.control_handle.inner.send::<fidl::encoding::ResultType<
12954            BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
12955            fidl_fuchsia_posix::Errno,
12956        >>(
12957            result.map(|value| (value,)),
12958            self.tx_id,
12959            0x1f26fcdd348f1882,
12960            fidl::encoding::DynamicFlags::empty(),
12961        )
12962    }
12963}
12964
12965#[must_use = "FIDL methods require a response to be sent"]
12966#[derive(Debug)]
12967pub struct BaseDatagramSocketSetIpv6UnicastHopsResponder {
12968    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12969    tx_id: u32,
12970}
12971
12972/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12973/// if the responder is dropped without sending a response, so that the client
12974/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12975impl std::ops::Drop for BaseDatagramSocketSetIpv6UnicastHopsResponder {
12976    fn drop(&mut self) {
12977        self.control_handle.shutdown();
12978        // Safety: drops once, never accessed again
12979        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12980    }
12981}
12982
12983impl fidl::endpoints::Responder for BaseDatagramSocketSetIpv6UnicastHopsResponder {
12984    type ControlHandle = BaseDatagramSocketControlHandle;
12985
12986    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12987        &self.control_handle
12988    }
12989
12990    fn drop_without_shutdown(mut self) {
12991        // Safety: drops once, never accessed again due to mem::forget
12992        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12993        // Prevent Drop from running (which would shut down the channel)
12994        std::mem::forget(self);
12995    }
12996}
12997
12998impl BaseDatagramSocketSetIpv6UnicastHopsResponder {
12999    /// Sends a response to the FIDL transaction.
13000    ///
13001    /// Sets the channel to shutdown if an error occurs.
13002    pub fn send(
13003        self,
13004        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13005    ) -> Result<(), fidl::Error> {
13006        let _result = self.send_raw(result);
13007        if _result.is_err() {
13008            self.control_handle.shutdown();
13009        }
13010        self.drop_without_shutdown();
13011        _result
13012    }
13013
13014    /// Similar to "send" but does not shutdown the channel if an error occurs.
13015    pub fn send_no_shutdown_on_err(
13016        self,
13017        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13018    ) -> Result<(), fidl::Error> {
13019        let _result = self.send_raw(result);
13020        self.drop_without_shutdown();
13021        _result
13022    }
13023
13024    fn send_raw(
13025        &self,
13026        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13027    ) -> Result<(), fidl::Error> {
13028        self.control_handle.inner.send::<fidl::encoding::ResultType<
13029            fidl::encoding::EmptyStruct,
13030            fidl_fuchsia_posix::Errno,
13031        >>(
13032            result,
13033            self.tx_id,
13034            0x157d51e98f462859,
13035            fidl::encoding::DynamicFlags::empty(),
13036        )
13037    }
13038}
13039
13040#[must_use = "FIDL methods require a response to be sent"]
13041#[derive(Debug)]
13042pub struct BaseDatagramSocketGetIpv6UnicastHopsResponder {
13043    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13044    tx_id: u32,
13045}
13046
13047/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13048/// if the responder is dropped without sending a response, so that the client
13049/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13050impl std::ops::Drop for BaseDatagramSocketGetIpv6UnicastHopsResponder {
13051    fn drop(&mut self) {
13052        self.control_handle.shutdown();
13053        // Safety: drops once, never accessed again
13054        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13055    }
13056}
13057
13058impl fidl::endpoints::Responder for BaseDatagramSocketGetIpv6UnicastHopsResponder {
13059    type ControlHandle = BaseDatagramSocketControlHandle;
13060
13061    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13062        &self.control_handle
13063    }
13064
13065    fn drop_without_shutdown(mut self) {
13066        // Safety: drops once, never accessed again due to mem::forget
13067        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13068        // Prevent Drop from running (which would shut down the channel)
13069        std::mem::forget(self);
13070    }
13071}
13072
13073impl BaseDatagramSocketGetIpv6UnicastHopsResponder {
13074    /// Sends a response to the FIDL transaction.
13075    ///
13076    /// Sets the channel to shutdown if an error occurs.
13077    pub fn send(
13078        self,
13079        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
13080    ) -> Result<(), fidl::Error> {
13081        let _result = self.send_raw(result);
13082        if _result.is_err() {
13083            self.control_handle.shutdown();
13084        }
13085        self.drop_without_shutdown();
13086        _result
13087    }
13088
13089    /// Similar to "send" but does not shutdown the channel if an error occurs.
13090    pub fn send_no_shutdown_on_err(
13091        self,
13092        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
13093    ) -> Result<(), fidl::Error> {
13094        let _result = self.send_raw(result);
13095        self.drop_without_shutdown();
13096        _result
13097    }
13098
13099    fn send_raw(
13100        &self,
13101        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
13102    ) -> Result<(), fidl::Error> {
13103        self.control_handle.inner.send::<fidl::encoding::ResultType<
13104            BaseNetworkSocketGetIpv6UnicastHopsResponse,
13105            fidl_fuchsia_posix::Errno,
13106        >>(
13107            result.map(|value| (value,)),
13108            self.tx_id,
13109            0x21f4641cad8bd8d2,
13110            fidl::encoding::DynamicFlags::empty(),
13111        )
13112    }
13113}
13114
13115#[must_use = "FIDL methods require a response to be sent"]
13116#[derive(Debug)]
13117pub struct BaseDatagramSocketSetIpv6ReceiveHopLimitResponder {
13118    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13119    tx_id: u32,
13120}
13121
13122/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13123/// if the responder is dropped without sending a response, so that the client
13124/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13125impl std::ops::Drop for BaseDatagramSocketSetIpv6ReceiveHopLimitResponder {
13126    fn drop(&mut self) {
13127        self.control_handle.shutdown();
13128        // Safety: drops once, never accessed again
13129        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13130    }
13131}
13132
13133impl fidl::endpoints::Responder for BaseDatagramSocketSetIpv6ReceiveHopLimitResponder {
13134    type ControlHandle = BaseDatagramSocketControlHandle;
13135
13136    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13137        &self.control_handle
13138    }
13139
13140    fn drop_without_shutdown(mut self) {
13141        // Safety: drops once, never accessed again due to mem::forget
13142        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13143        // Prevent Drop from running (which would shut down the channel)
13144        std::mem::forget(self);
13145    }
13146}
13147
13148impl BaseDatagramSocketSetIpv6ReceiveHopLimitResponder {
13149    /// Sends a response to the FIDL transaction.
13150    ///
13151    /// Sets the channel to shutdown if an error occurs.
13152    pub fn send(
13153        self,
13154        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13155    ) -> Result<(), fidl::Error> {
13156        let _result = self.send_raw(result);
13157        if _result.is_err() {
13158            self.control_handle.shutdown();
13159        }
13160        self.drop_without_shutdown();
13161        _result
13162    }
13163
13164    /// Similar to "send" but does not shutdown the channel if an error occurs.
13165    pub fn send_no_shutdown_on_err(
13166        self,
13167        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13168    ) -> Result<(), fidl::Error> {
13169        let _result = self.send_raw(result);
13170        self.drop_without_shutdown();
13171        _result
13172    }
13173
13174    fn send_raw(
13175        &self,
13176        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13177    ) -> Result<(), fidl::Error> {
13178        self.control_handle.inner.send::<fidl::encoding::ResultType<
13179            fidl::encoding::EmptyStruct,
13180            fidl_fuchsia_posix::Errno,
13181        >>(
13182            result,
13183            self.tx_id,
13184            0x5c24808ed2e84a1e,
13185            fidl::encoding::DynamicFlags::empty(),
13186        )
13187    }
13188}
13189
13190#[must_use = "FIDL methods require a response to be sent"]
13191#[derive(Debug)]
13192pub struct BaseDatagramSocketGetIpv6ReceiveHopLimitResponder {
13193    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13194    tx_id: u32,
13195}
13196
13197/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13198/// if the responder is dropped without sending a response, so that the client
13199/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13200impl std::ops::Drop for BaseDatagramSocketGetIpv6ReceiveHopLimitResponder {
13201    fn drop(&mut self) {
13202        self.control_handle.shutdown();
13203        // Safety: drops once, never accessed again
13204        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13205    }
13206}
13207
13208impl fidl::endpoints::Responder for BaseDatagramSocketGetIpv6ReceiveHopLimitResponder {
13209    type ControlHandle = BaseDatagramSocketControlHandle;
13210
13211    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13212        &self.control_handle
13213    }
13214
13215    fn drop_without_shutdown(mut self) {
13216        // Safety: drops once, never accessed again due to mem::forget
13217        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13218        // Prevent Drop from running (which would shut down the channel)
13219        std::mem::forget(self);
13220    }
13221}
13222
13223impl BaseDatagramSocketGetIpv6ReceiveHopLimitResponder {
13224    /// Sends a response to the FIDL transaction.
13225    ///
13226    /// Sets the channel to shutdown if an error occurs.
13227    pub fn send(
13228        self,
13229        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13230    ) -> Result<(), fidl::Error> {
13231        let _result = self.send_raw(result);
13232        if _result.is_err() {
13233            self.control_handle.shutdown();
13234        }
13235        self.drop_without_shutdown();
13236        _result
13237    }
13238
13239    /// Similar to "send" but does not shutdown the channel if an error occurs.
13240    pub fn send_no_shutdown_on_err(
13241        self,
13242        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13243    ) -> Result<(), fidl::Error> {
13244        let _result = self.send_raw(result);
13245        self.drop_without_shutdown();
13246        _result
13247    }
13248
13249    fn send_raw(
13250        &self,
13251        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13252    ) -> Result<(), fidl::Error> {
13253        self.control_handle.inner.send::<fidl::encoding::ResultType<
13254            BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
13255            fidl_fuchsia_posix::Errno,
13256        >>(
13257            result.map(|value| (value,)),
13258            self.tx_id,
13259            0x341e06689885b4c0,
13260            fidl::encoding::DynamicFlags::empty(),
13261        )
13262    }
13263}
13264
13265#[must_use = "FIDL methods require a response to be sent"]
13266#[derive(Debug)]
13267pub struct BaseDatagramSocketSetIpv6MulticastHopsResponder {
13268    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13269    tx_id: u32,
13270}
13271
13272/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13273/// if the responder is dropped without sending a response, so that the client
13274/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13275impl std::ops::Drop for BaseDatagramSocketSetIpv6MulticastHopsResponder {
13276    fn drop(&mut self) {
13277        self.control_handle.shutdown();
13278        // Safety: drops once, never accessed again
13279        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13280    }
13281}
13282
13283impl fidl::endpoints::Responder for BaseDatagramSocketSetIpv6MulticastHopsResponder {
13284    type ControlHandle = BaseDatagramSocketControlHandle;
13285
13286    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13287        &self.control_handle
13288    }
13289
13290    fn drop_without_shutdown(mut self) {
13291        // Safety: drops once, never accessed again due to mem::forget
13292        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13293        // Prevent Drop from running (which would shut down the channel)
13294        std::mem::forget(self);
13295    }
13296}
13297
13298impl BaseDatagramSocketSetIpv6MulticastHopsResponder {
13299    /// Sends a response to the FIDL transaction.
13300    ///
13301    /// Sets the channel to shutdown if an error occurs.
13302    pub fn send(
13303        self,
13304        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13305    ) -> Result<(), fidl::Error> {
13306        let _result = self.send_raw(result);
13307        if _result.is_err() {
13308            self.control_handle.shutdown();
13309        }
13310        self.drop_without_shutdown();
13311        _result
13312    }
13313
13314    /// Similar to "send" but does not shutdown the channel if an error occurs.
13315    pub fn send_no_shutdown_on_err(
13316        self,
13317        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13318    ) -> Result<(), fidl::Error> {
13319        let _result = self.send_raw(result);
13320        self.drop_without_shutdown();
13321        _result
13322    }
13323
13324    fn send_raw(
13325        &self,
13326        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13327    ) -> Result<(), fidl::Error> {
13328        self.control_handle.inner.send::<fidl::encoding::ResultType<
13329            fidl::encoding::EmptyStruct,
13330            fidl_fuchsia_posix::Errno,
13331        >>(
13332            result,
13333            self.tx_id,
13334            0x25b9cd4d181f82c1,
13335            fidl::encoding::DynamicFlags::empty(),
13336        )
13337    }
13338}
13339
13340#[must_use = "FIDL methods require a response to be sent"]
13341#[derive(Debug)]
13342pub struct BaseDatagramSocketGetIpv6MulticastHopsResponder {
13343    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13344    tx_id: u32,
13345}
13346
13347/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13348/// if the responder is dropped without sending a response, so that the client
13349/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13350impl std::ops::Drop for BaseDatagramSocketGetIpv6MulticastHopsResponder {
13351    fn drop(&mut self) {
13352        self.control_handle.shutdown();
13353        // Safety: drops once, never accessed again
13354        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13355    }
13356}
13357
13358impl fidl::endpoints::Responder for BaseDatagramSocketGetIpv6MulticastHopsResponder {
13359    type ControlHandle = BaseDatagramSocketControlHandle;
13360
13361    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13362        &self.control_handle
13363    }
13364
13365    fn drop_without_shutdown(mut self) {
13366        // Safety: drops once, never accessed again due to mem::forget
13367        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13368        // Prevent Drop from running (which would shut down the channel)
13369        std::mem::forget(self);
13370    }
13371}
13372
13373impl BaseDatagramSocketGetIpv6MulticastHopsResponder {
13374    /// Sends a response to the FIDL transaction.
13375    ///
13376    /// Sets the channel to shutdown if an error occurs.
13377    pub fn send(
13378        self,
13379        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
13380    ) -> Result<(), fidl::Error> {
13381        let _result = self.send_raw(result);
13382        if _result.is_err() {
13383            self.control_handle.shutdown();
13384        }
13385        self.drop_without_shutdown();
13386        _result
13387    }
13388
13389    /// Similar to "send" but does not shutdown the channel if an error occurs.
13390    pub fn send_no_shutdown_on_err(
13391        self,
13392        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
13393    ) -> Result<(), fidl::Error> {
13394        let _result = self.send_raw(result);
13395        self.drop_without_shutdown();
13396        _result
13397    }
13398
13399    fn send_raw(
13400        &self,
13401        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
13402    ) -> Result<(), fidl::Error> {
13403        self.control_handle.inner.send::<fidl::encoding::ResultType<
13404            BaseNetworkSocketGetIpv6MulticastHopsResponse,
13405            fidl_fuchsia_posix::Errno,
13406        >>(
13407            result.map(|value| (value,)),
13408            self.tx_id,
13409            0x52916948a365012a,
13410            fidl::encoding::DynamicFlags::empty(),
13411        )
13412    }
13413}
13414
13415#[must_use = "FIDL methods require a response to be sent"]
13416#[derive(Debug)]
13417pub struct BaseDatagramSocketSetIpv6MulticastLoopbackResponder {
13418    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13419    tx_id: u32,
13420}
13421
13422/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13423/// if the responder is dropped without sending a response, so that the client
13424/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13425impl std::ops::Drop for BaseDatagramSocketSetIpv6MulticastLoopbackResponder {
13426    fn drop(&mut self) {
13427        self.control_handle.shutdown();
13428        // Safety: drops once, never accessed again
13429        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13430    }
13431}
13432
13433impl fidl::endpoints::Responder for BaseDatagramSocketSetIpv6MulticastLoopbackResponder {
13434    type ControlHandle = BaseDatagramSocketControlHandle;
13435
13436    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13437        &self.control_handle
13438    }
13439
13440    fn drop_without_shutdown(mut self) {
13441        // Safety: drops once, never accessed again due to mem::forget
13442        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13443        // Prevent Drop from running (which would shut down the channel)
13444        std::mem::forget(self);
13445    }
13446}
13447
13448impl BaseDatagramSocketSetIpv6MulticastLoopbackResponder {
13449    /// Sends a response to the FIDL transaction.
13450    ///
13451    /// Sets the channel to shutdown if an error occurs.
13452    pub fn send(
13453        self,
13454        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13455    ) -> Result<(), fidl::Error> {
13456        let _result = self.send_raw(result);
13457        if _result.is_err() {
13458            self.control_handle.shutdown();
13459        }
13460        self.drop_without_shutdown();
13461        _result
13462    }
13463
13464    /// Similar to "send" but does not shutdown the channel if an error occurs.
13465    pub fn send_no_shutdown_on_err(
13466        self,
13467        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13468    ) -> Result<(), fidl::Error> {
13469        let _result = self.send_raw(result);
13470        self.drop_without_shutdown();
13471        _result
13472    }
13473
13474    fn send_raw(
13475        &self,
13476        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13477    ) -> Result<(), fidl::Error> {
13478        self.control_handle.inner.send::<fidl::encoding::ResultType<
13479            fidl::encoding::EmptyStruct,
13480            fidl_fuchsia_posix::Errno,
13481        >>(
13482            result,
13483            self.tx_id,
13484            0x55701c409ff41b40,
13485            fidl::encoding::DynamicFlags::empty(),
13486        )
13487    }
13488}
13489
13490#[must_use = "FIDL methods require a response to be sent"]
13491#[derive(Debug)]
13492pub struct BaseDatagramSocketGetIpv6MulticastLoopbackResponder {
13493    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13494    tx_id: u32,
13495}
13496
13497/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13498/// if the responder is dropped without sending a response, so that the client
13499/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13500impl std::ops::Drop for BaseDatagramSocketGetIpv6MulticastLoopbackResponder {
13501    fn drop(&mut self) {
13502        self.control_handle.shutdown();
13503        // Safety: drops once, never accessed again
13504        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13505    }
13506}
13507
13508impl fidl::endpoints::Responder for BaseDatagramSocketGetIpv6MulticastLoopbackResponder {
13509    type ControlHandle = BaseDatagramSocketControlHandle;
13510
13511    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13512        &self.control_handle
13513    }
13514
13515    fn drop_without_shutdown(mut self) {
13516        // Safety: drops once, never accessed again due to mem::forget
13517        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13518        // Prevent Drop from running (which would shut down the channel)
13519        std::mem::forget(self);
13520    }
13521}
13522
13523impl BaseDatagramSocketGetIpv6MulticastLoopbackResponder {
13524    /// Sends a response to the FIDL transaction.
13525    ///
13526    /// Sets the channel to shutdown if an error occurs.
13527    pub fn send(
13528        self,
13529        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13530    ) -> Result<(), fidl::Error> {
13531        let _result = self.send_raw(result);
13532        if _result.is_err() {
13533            self.control_handle.shutdown();
13534        }
13535        self.drop_without_shutdown();
13536        _result
13537    }
13538
13539    /// Similar to "send" but does not shutdown the channel if an error occurs.
13540    pub fn send_no_shutdown_on_err(
13541        self,
13542        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13543    ) -> Result<(), fidl::Error> {
13544        let _result = self.send_raw(result);
13545        self.drop_without_shutdown();
13546        _result
13547    }
13548
13549    fn send_raw(
13550        &self,
13551        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13552    ) -> Result<(), fidl::Error> {
13553        self.control_handle.inner.send::<fidl::encoding::ResultType<
13554            BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
13555            fidl_fuchsia_posix::Errno,
13556        >>(
13557            result.map(|value| (value,)),
13558            self.tx_id,
13559            0x4415b701fde319c3,
13560            fidl::encoding::DynamicFlags::empty(),
13561        )
13562    }
13563}
13564
13565#[must_use = "FIDL methods require a response to be sent"]
13566#[derive(Debug)]
13567pub struct BaseDatagramSocketSetIpv6OnlyResponder {
13568    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13569    tx_id: u32,
13570}
13571
13572/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13573/// if the responder is dropped without sending a response, so that the client
13574/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13575impl std::ops::Drop for BaseDatagramSocketSetIpv6OnlyResponder {
13576    fn drop(&mut self) {
13577        self.control_handle.shutdown();
13578        // Safety: drops once, never accessed again
13579        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13580    }
13581}
13582
13583impl fidl::endpoints::Responder for BaseDatagramSocketSetIpv6OnlyResponder {
13584    type ControlHandle = BaseDatagramSocketControlHandle;
13585
13586    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13587        &self.control_handle
13588    }
13589
13590    fn drop_without_shutdown(mut self) {
13591        // Safety: drops once, never accessed again due to mem::forget
13592        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13593        // Prevent Drop from running (which would shut down the channel)
13594        std::mem::forget(self);
13595    }
13596}
13597
13598impl BaseDatagramSocketSetIpv6OnlyResponder {
13599    /// Sends a response to the FIDL transaction.
13600    ///
13601    /// Sets the channel to shutdown if an error occurs.
13602    pub fn send(
13603        self,
13604        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13605    ) -> Result<(), fidl::Error> {
13606        let _result = self.send_raw(result);
13607        if _result.is_err() {
13608            self.control_handle.shutdown();
13609        }
13610        self.drop_without_shutdown();
13611        _result
13612    }
13613
13614    /// Similar to "send" but does not shutdown the channel if an error occurs.
13615    pub fn send_no_shutdown_on_err(
13616        self,
13617        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13618    ) -> Result<(), fidl::Error> {
13619        let _result = self.send_raw(result);
13620        self.drop_without_shutdown();
13621        _result
13622    }
13623
13624    fn send_raw(
13625        &self,
13626        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13627    ) -> Result<(), fidl::Error> {
13628        self.control_handle.inner.send::<fidl::encoding::ResultType<
13629            fidl::encoding::EmptyStruct,
13630            fidl_fuchsia_posix::Errno,
13631        >>(
13632            result,
13633            self.tx_id,
13634            0x4873f1364758cbba,
13635            fidl::encoding::DynamicFlags::empty(),
13636        )
13637    }
13638}
13639
13640#[must_use = "FIDL methods require a response to be sent"]
13641#[derive(Debug)]
13642pub struct BaseDatagramSocketGetIpv6OnlyResponder {
13643    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13644    tx_id: u32,
13645}
13646
13647/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13648/// if the responder is dropped without sending a response, so that the client
13649/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13650impl std::ops::Drop for BaseDatagramSocketGetIpv6OnlyResponder {
13651    fn drop(&mut self) {
13652        self.control_handle.shutdown();
13653        // Safety: drops once, never accessed again
13654        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13655    }
13656}
13657
13658impl fidl::endpoints::Responder for BaseDatagramSocketGetIpv6OnlyResponder {
13659    type ControlHandle = BaseDatagramSocketControlHandle;
13660
13661    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13662        &self.control_handle
13663    }
13664
13665    fn drop_without_shutdown(mut self) {
13666        // Safety: drops once, never accessed again due to mem::forget
13667        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13668        // Prevent Drop from running (which would shut down the channel)
13669        std::mem::forget(self);
13670    }
13671}
13672
13673impl BaseDatagramSocketGetIpv6OnlyResponder {
13674    /// Sends a response to the FIDL transaction.
13675    ///
13676    /// Sets the channel to shutdown if an error occurs.
13677    pub fn send(
13678        self,
13679        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13680    ) -> Result<(), fidl::Error> {
13681        let _result = self.send_raw(result);
13682        if _result.is_err() {
13683            self.control_handle.shutdown();
13684        }
13685        self.drop_without_shutdown();
13686        _result
13687    }
13688
13689    /// Similar to "send" but does not shutdown the channel if an error occurs.
13690    pub fn send_no_shutdown_on_err(
13691        self,
13692        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13693    ) -> Result<(), fidl::Error> {
13694        let _result = self.send_raw(result);
13695        self.drop_without_shutdown();
13696        _result
13697    }
13698
13699    fn send_raw(
13700        &self,
13701        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13702    ) -> Result<(), fidl::Error> {
13703        self.control_handle.inner.send::<fidl::encoding::ResultType<
13704            BaseNetworkSocketGetIpv6OnlyResponse,
13705            fidl_fuchsia_posix::Errno,
13706        >>(
13707            result.map(|value| (value,)),
13708            self.tx_id,
13709            0x4aa3340a1a26b89c,
13710            fidl::encoding::DynamicFlags::empty(),
13711        )
13712    }
13713}
13714
13715#[must_use = "FIDL methods require a response to be sent"]
13716#[derive(Debug)]
13717pub struct BaseDatagramSocketSetIpv6ReceiveTrafficClassResponder {
13718    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13719    tx_id: u32,
13720}
13721
13722/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13723/// if the responder is dropped without sending a response, so that the client
13724/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13725impl std::ops::Drop for BaseDatagramSocketSetIpv6ReceiveTrafficClassResponder {
13726    fn drop(&mut self) {
13727        self.control_handle.shutdown();
13728        // Safety: drops once, never accessed again
13729        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13730    }
13731}
13732
13733impl fidl::endpoints::Responder for BaseDatagramSocketSetIpv6ReceiveTrafficClassResponder {
13734    type ControlHandle = BaseDatagramSocketControlHandle;
13735
13736    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13737        &self.control_handle
13738    }
13739
13740    fn drop_without_shutdown(mut self) {
13741        // Safety: drops once, never accessed again due to mem::forget
13742        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13743        // Prevent Drop from running (which would shut down the channel)
13744        std::mem::forget(self);
13745    }
13746}
13747
13748impl BaseDatagramSocketSetIpv6ReceiveTrafficClassResponder {
13749    /// Sends a response to the FIDL transaction.
13750    ///
13751    /// Sets the channel to shutdown if an error occurs.
13752    pub fn send(
13753        self,
13754        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13755    ) -> Result<(), fidl::Error> {
13756        let _result = self.send_raw(result);
13757        if _result.is_err() {
13758            self.control_handle.shutdown();
13759        }
13760        self.drop_without_shutdown();
13761        _result
13762    }
13763
13764    /// Similar to "send" but does not shutdown the channel if an error occurs.
13765    pub fn send_no_shutdown_on_err(
13766        self,
13767        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13768    ) -> Result<(), fidl::Error> {
13769        let _result = self.send_raw(result);
13770        self.drop_without_shutdown();
13771        _result
13772    }
13773
13774    fn send_raw(
13775        &self,
13776        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13777    ) -> Result<(), fidl::Error> {
13778        self.control_handle.inner.send::<fidl::encoding::ResultType<
13779            fidl::encoding::EmptyStruct,
13780            fidl_fuchsia_posix::Errno,
13781        >>(
13782            result,
13783            self.tx_id,
13784            0x58f07c8788d099a0,
13785            fidl::encoding::DynamicFlags::empty(),
13786        )
13787    }
13788}
13789
13790#[must_use = "FIDL methods require a response to be sent"]
13791#[derive(Debug)]
13792pub struct BaseDatagramSocketGetIpv6ReceiveTrafficClassResponder {
13793    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13794    tx_id: u32,
13795}
13796
13797/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13798/// if the responder is dropped without sending a response, so that the client
13799/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13800impl std::ops::Drop for BaseDatagramSocketGetIpv6ReceiveTrafficClassResponder {
13801    fn drop(&mut self) {
13802        self.control_handle.shutdown();
13803        // Safety: drops once, never accessed again
13804        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13805    }
13806}
13807
13808impl fidl::endpoints::Responder for BaseDatagramSocketGetIpv6ReceiveTrafficClassResponder {
13809    type ControlHandle = BaseDatagramSocketControlHandle;
13810
13811    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13812        &self.control_handle
13813    }
13814
13815    fn drop_without_shutdown(mut self) {
13816        // Safety: drops once, never accessed again due to mem::forget
13817        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13818        // Prevent Drop from running (which would shut down the channel)
13819        std::mem::forget(self);
13820    }
13821}
13822
13823impl BaseDatagramSocketGetIpv6ReceiveTrafficClassResponder {
13824    /// Sends a response to the FIDL transaction.
13825    ///
13826    /// Sets the channel to shutdown if an error occurs.
13827    pub fn send(
13828        self,
13829        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13830    ) -> Result<(), fidl::Error> {
13831        let _result = self.send_raw(result);
13832        if _result.is_err() {
13833            self.control_handle.shutdown();
13834        }
13835        self.drop_without_shutdown();
13836        _result
13837    }
13838
13839    /// Similar to "send" but does not shutdown the channel if an error occurs.
13840    pub fn send_no_shutdown_on_err(
13841        self,
13842        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13843    ) -> Result<(), fidl::Error> {
13844        let _result = self.send_raw(result);
13845        self.drop_without_shutdown();
13846        _result
13847    }
13848
13849    fn send_raw(
13850        &self,
13851        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13852    ) -> Result<(), fidl::Error> {
13853        self.control_handle.inner.send::<fidl::encoding::ResultType<
13854            BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
13855            fidl_fuchsia_posix::Errno,
13856        >>(
13857            result.map(|value| (value,)),
13858            self.tx_id,
13859            0x2e334df1da553ffa,
13860            fidl::encoding::DynamicFlags::empty(),
13861        )
13862    }
13863}
13864
13865#[must_use = "FIDL methods require a response to be sent"]
13866#[derive(Debug)]
13867pub struct BaseDatagramSocketSetIpv6TrafficClassResponder {
13868    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13869    tx_id: u32,
13870}
13871
13872/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13873/// if the responder is dropped without sending a response, so that the client
13874/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13875impl std::ops::Drop for BaseDatagramSocketSetIpv6TrafficClassResponder {
13876    fn drop(&mut self) {
13877        self.control_handle.shutdown();
13878        // Safety: drops once, never accessed again
13879        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13880    }
13881}
13882
13883impl fidl::endpoints::Responder for BaseDatagramSocketSetIpv6TrafficClassResponder {
13884    type ControlHandle = BaseDatagramSocketControlHandle;
13885
13886    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13887        &self.control_handle
13888    }
13889
13890    fn drop_without_shutdown(mut self) {
13891        // Safety: drops once, never accessed again due to mem::forget
13892        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13893        // Prevent Drop from running (which would shut down the channel)
13894        std::mem::forget(self);
13895    }
13896}
13897
13898impl BaseDatagramSocketSetIpv6TrafficClassResponder {
13899    /// Sends a response to the FIDL transaction.
13900    ///
13901    /// Sets the channel to shutdown if an error occurs.
13902    pub fn send(
13903        self,
13904        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13905    ) -> Result<(), fidl::Error> {
13906        let _result = self.send_raw(result);
13907        if _result.is_err() {
13908            self.control_handle.shutdown();
13909        }
13910        self.drop_without_shutdown();
13911        _result
13912    }
13913
13914    /// Similar to "send" but does not shutdown the channel if an error occurs.
13915    pub fn send_no_shutdown_on_err(
13916        self,
13917        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13918    ) -> Result<(), fidl::Error> {
13919        let _result = self.send_raw(result);
13920        self.drop_without_shutdown();
13921        _result
13922    }
13923
13924    fn send_raw(
13925        &self,
13926        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13927    ) -> Result<(), fidl::Error> {
13928        self.control_handle.inner.send::<fidl::encoding::ResultType<
13929            fidl::encoding::EmptyStruct,
13930            fidl_fuchsia_posix::Errno,
13931        >>(
13932            result,
13933            self.tx_id,
13934            0x6af077800c5a0b4f,
13935            fidl::encoding::DynamicFlags::empty(),
13936        )
13937    }
13938}
13939
13940#[must_use = "FIDL methods require a response to be sent"]
13941#[derive(Debug)]
13942pub struct BaseDatagramSocketGetIpv6TrafficClassResponder {
13943    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13944    tx_id: u32,
13945}
13946
13947/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13948/// if the responder is dropped without sending a response, so that the client
13949/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13950impl std::ops::Drop for BaseDatagramSocketGetIpv6TrafficClassResponder {
13951    fn drop(&mut self) {
13952        self.control_handle.shutdown();
13953        // Safety: drops once, never accessed again
13954        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13955    }
13956}
13957
13958impl fidl::endpoints::Responder for BaseDatagramSocketGetIpv6TrafficClassResponder {
13959    type ControlHandle = BaseDatagramSocketControlHandle;
13960
13961    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13962        &self.control_handle
13963    }
13964
13965    fn drop_without_shutdown(mut self) {
13966        // Safety: drops once, never accessed again due to mem::forget
13967        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13968        // Prevent Drop from running (which would shut down the channel)
13969        std::mem::forget(self);
13970    }
13971}
13972
13973impl BaseDatagramSocketGetIpv6TrafficClassResponder {
13974    /// Sends a response to the FIDL transaction.
13975    ///
13976    /// Sets the channel to shutdown if an error occurs.
13977    pub fn send(
13978        self,
13979        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
13980    ) -> Result<(), fidl::Error> {
13981        let _result = self.send_raw(result);
13982        if _result.is_err() {
13983            self.control_handle.shutdown();
13984        }
13985        self.drop_without_shutdown();
13986        _result
13987    }
13988
13989    /// Similar to "send" but does not shutdown the channel if an error occurs.
13990    pub fn send_no_shutdown_on_err(
13991        self,
13992        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
13993    ) -> Result<(), fidl::Error> {
13994        let _result = self.send_raw(result);
13995        self.drop_without_shutdown();
13996        _result
13997    }
13998
13999    fn send_raw(
14000        &self,
14001        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
14002    ) -> Result<(), fidl::Error> {
14003        self.control_handle.inner.send::<fidl::encoding::ResultType<
14004            BaseNetworkSocketGetIpv6TrafficClassResponse,
14005            fidl_fuchsia_posix::Errno,
14006        >>(
14007            result.map(|value| (value,)),
14008            self.tx_id,
14009            0x6baf6eed8fc2f04,
14010            fidl::encoding::DynamicFlags::empty(),
14011        )
14012    }
14013}
14014
14015#[must_use = "FIDL methods require a response to be sent"]
14016#[derive(Debug)]
14017pub struct BaseDatagramSocketSetIpv6ReceivePacketInfoResponder {
14018    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
14019    tx_id: u32,
14020}
14021
14022/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
14023/// if the responder is dropped without sending a response, so that the client
14024/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
14025impl std::ops::Drop for BaseDatagramSocketSetIpv6ReceivePacketInfoResponder {
14026    fn drop(&mut self) {
14027        self.control_handle.shutdown();
14028        // Safety: drops once, never accessed again
14029        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
14030    }
14031}
14032
14033impl fidl::endpoints::Responder for BaseDatagramSocketSetIpv6ReceivePacketInfoResponder {
14034    type ControlHandle = BaseDatagramSocketControlHandle;
14035
14036    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
14037        &self.control_handle
14038    }
14039
14040    fn drop_without_shutdown(mut self) {
14041        // Safety: drops once, never accessed again due to mem::forget
14042        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
14043        // Prevent Drop from running (which would shut down the channel)
14044        std::mem::forget(self);
14045    }
14046}
14047
14048impl BaseDatagramSocketSetIpv6ReceivePacketInfoResponder {
14049    /// Sends a response to the FIDL transaction.
14050    ///
14051    /// Sets the channel to shutdown if an error occurs.
14052    pub fn send(
14053        self,
14054        mut result: Result<(), fidl_fuchsia_posix::Errno>,
14055    ) -> Result<(), fidl::Error> {
14056        let _result = self.send_raw(result);
14057        if _result.is_err() {
14058            self.control_handle.shutdown();
14059        }
14060        self.drop_without_shutdown();
14061        _result
14062    }
14063
14064    /// Similar to "send" but does not shutdown the channel if an error occurs.
14065    pub fn send_no_shutdown_on_err(
14066        self,
14067        mut result: Result<(), fidl_fuchsia_posix::Errno>,
14068    ) -> Result<(), fidl::Error> {
14069        let _result = self.send_raw(result);
14070        self.drop_without_shutdown();
14071        _result
14072    }
14073
14074    fn send_raw(
14075        &self,
14076        mut result: Result<(), fidl_fuchsia_posix::Errno>,
14077    ) -> Result<(), fidl::Error> {
14078        self.control_handle.inner.send::<fidl::encoding::ResultType<
14079            fidl::encoding::EmptyStruct,
14080            fidl_fuchsia_posix::Errno,
14081        >>(
14082            result,
14083            self.tx_id,
14084            0x19259775b1a92768,
14085            fidl::encoding::DynamicFlags::empty(),
14086        )
14087    }
14088}
14089
14090#[must_use = "FIDL methods require a response to be sent"]
14091#[derive(Debug)]
14092pub struct BaseDatagramSocketGetIpv6ReceivePacketInfoResponder {
14093    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
14094    tx_id: u32,
14095}
14096
14097/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
14098/// if the responder is dropped without sending a response, so that the client
14099/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
14100impl std::ops::Drop for BaseDatagramSocketGetIpv6ReceivePacketInfoResponder {
14101    fn drop(&mut self) {
14102        self.control_handle.shutdown();
14103        // Safety: drops once, never accessed again
14104        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
14105    }
14106}
14107
14108impl fidl::endpoints::Responder for BaseDatagramSocketGetIpv6ReceivePacketInfoResponder {
14109    type ControlHandle = BaseDatagramSocketControlHandle;
14110
14111    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
14112        &self.control_handle
14113    }
14114
14115    fn drop_without_shutdown(mut self) {
14116        // Safety: drops once, never accessed again due to mem::forget
14117        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
14118        // Prevent Drop from running (which would shut down the channel)
14119        std::mem::forget(self);
14120    }
14121}
14122
14123impl BaseDatagramSocketGetIpv6ReceivePacketInfoResponder {
14124    /// Sends a response to the FIDL transaction.
14125    ///
14126    /// Sets the channel to shutdown if an error occurs.
14127    pub fn send(
14128        self,
14129        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
14130    ) -> Result<(), fidl::Error> {
14131        let _result = self.send_raw(result);
14132        if _result.is_err() {
14133            self.control_handle.shutdown();
14134        }
14135        self.drop_without_shutdown();
14136        _result
14137    }
14138
14139    /// Similar to "send" but does not shutdown the channel if an error occurs.
14140    pub fn send_no_shutdown_on_err(
14141        self,
14142        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
14143    ) -> Result<(), fidl::Error> {
14144        let _result = self.send_raw(result);
14145        self.drop_without_shutdown();
14146        _result
14147    }
14148
14149    fn send_raw(
14150        &self,
14151        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
14152    ) -> Result<(), fidl::Error> {
14153        self.control_handle.inner.send::<fidl::encoding::ResultType<
14154            BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
14155            fidl_fuchsia_posix::Errno,
14156        >>(
14157            result.map(|value| (value,)),
14158            self.tx_id,
14159            0x7acd4a2775baec75,
14160            fidl::encoding::DynamicFlags::empty(),
14161        )
14162    }
14163}
14164
14165#[must_use = "FIDL methods require a response to be sent"]
14166#[derive(Debug)]
14167pub struct BaseDatagramSocketGetOriginalDestinationResponder {
14168    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
14169    tx_id: u32,
14170}
14171
14172/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
14173/// if the responder is dropped without sending a response, so that the client
14174/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
14175impl std::ops::Drop for BaseDatagramSocketGetOriginalDestinationResponder {
14176    fn drop(&mut self) {
14177        self.control_handle.shutdown();
14178        // Safety: drops once, never accessed again
14179        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
14180    }
14181}
14182
14183impl fidl::endpoints::Responder for BaseDatagramSocketGetOriginalDestinationResponder {
14184    type ControlHandle = BaseDatagramSocketControlHandle;
14185
14186    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
14187        &self.control_handle
14188    }
14189
14190    fn drop_without_shutdown(mut self) {
14191        // Safety: drops once, never accessed again due to mem::forget
14192        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
14193        // Prevent Drop from running (which would shut down the channel)
14194        std::mem::forget(self);
14195    }
14196}
14197
14198impl BaseDatagramSocketGetOriginalDestinationResponder {
14199    /// Sends a response to the FIDL transaction.
14200    ///
14201    /// Sets the channel to shutdown if an error occurs.
14202    pub fn send(
14203        self,
14204        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
14205    ) -> Result<(), fidl::Error> {
14206        let _result = self.send_raw(result);
14207        if _result.is_err() {
14208            self.control_handle.shutdown();
14209        }
14210        self.drop_without_shutdown();
14211        _result
14212    }
14213
14214    /// Similar to "send" but does not shutdown the channel if an error occurs.
14215    pub fn send_no_shutdown_on_err(
14216        self,
14217        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
14218    ) -> Result<(), fidl::Error> {
14219        let _result = self.send_raw(result);
14220        self.drop_without_shutdown();
14221        _result
14222    }
14223
14224    fn send_raw(
14225        &self,
14226        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
14227    ) -> Result<(), fidl::Error> {
14228        self.control_handle.inner.send::<fidl::encoding::ResultType<
14229            BaseNetworkSocketGetOriginalDestinationResponse,
14230            fidl_fuchsia_posix::Errno,
14231        >>(
14232            result.map(|value| (value,)),
14233            self.tx_id,
14234            0x38bf28f0dafdbac0,
14235            fidl::encoding::DynamicFlags::empty(),
14236        )
14237    }
14238}
14239
14240#[must_use = "FIDL methods require a response to be sent"]
14241#[derive(Debug)]
14242pub struct BaseDatagramSocketGetInfoResponder {
14243    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
14244    tx_id: u32,
14245}
14246
14247/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
14248/// if the responder is dropped without sending a response, so that the client
14249/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
14250impl std::ops::Drop for BaseDatagramSocketGetInfoResponder {
14251    fn drop(&mut self) {
14252        self.control_handle.shutdown();
14253        // Safety: drops once, never accessed again
14254        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
14255    }
14256}
14257
14258impl fidl::endpoints::Responder for BaseDatagramSocketGetInfoResponder {
14259    type ControlHandle = BaseDatagramSocketControlHandle;
14260
14261    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
14262        &self.control_handle
14263    }
14264
14265    fn drop_without_shutdown(mut self) {
14266        // Safety: drops once, never accessed again due to mem::forget
14267        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
14268        // Prevent Drop from running (which would shut down the channel)
14269        std::mem::forget(self);
14270    }
14271}
14272
14273impl BaseDatagramSocketGetInfoResponder {
14274    /// Sends a response to the FIDL transaction.
14275    ///
14276    /// Sets the channel to shutdown if an error occurs.
14277    pub fn send(
14278        self,
14279        mut result: Result<(Domain, DatagramSocketProtocol), fidl_fuchsia_posix::Errno>,
14280    ) -> Result<(), fidl::Error> {
14281        let _result = self.send_raw(result);
14282        if _result.is_err() {
14283            self.control_handle.shutdown();
14284        }
14285        self.drop_without_shutdown();
14286        _result
14287    }
14288
14289    /// Similar to "send" but does not shutdown the channel if an error occurs.
14290    pub fn send_no_shutdown_on_err(
14291        self,
14292        mut result: Result<(Domain, DatagramSocketProtocol), fidl_fuchsia_posix::Errno>,
14293    ) -> Result<(), fidl::Error> {
14294        let _result = self.send_raw(result);
14295        self.drop_without_shutdown();
14296        _result
14297    }
14298
14299    fn send_raw(
14300        &self,
14301        mut result: Result<(Domain, DatagramSocketProtocol), fidl_fuchsia_posix::Errno>,
14302    ) -> Result<(), fidl::Error> {
14303        self.control_handle.inner.send::<fidl::encoding::ResultType<
14304            BaseDatagramSocketGetInfoResponse,
14305            fidl_fuchsia_posix::Errno,
14306        >>(
14307            result,
14308            self.tx_id,
14309            0x48aa0a1f6a32d2ed,
14310            fidl::encoding::DynamicFlags::empty(),
14311        )
14312    }
14313}
14314
14315#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
14316pub struct BaseNetworkSocketMarker;
14317
14318impl fidl::endpoints::ProtocolMarker for BaseNetworkSocketMarker {
14319    type Proxy = BaseNetworkSocketProxy;
14320    type RequestStream = BaseNetworkSocketRequestStream;
14321    #[cfg(target_os = "fuchsia")]
14322    type SynchronousProxy = BaseNetworkSocketSynchronousProxy;
14323
14324    const DEBUG_NAME: &'static str = "(anonymous) BaseNetworkSocket";
14325}
14326pub type BaseNetworkSocketBindResult = Result<(), fidl_fuchsia_posix::Errno>;
14327pub type BaseNetworkSocketConnectResult = Result<(), fidl_fuchsia_posix::Errno>;
14328pub type BaseNetworkSocketDisconnectResult = Result<(), fidl_fuchsia_posix::Errno>;
14329pub type BaseNetworkSocketGetSockNameResult =
14330    Result<fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>;
14331pub type BaseNetworkSocketGetPeerNameResult =
14332    Result<fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>;
14333pub type BaseNetworkSocketShutdownResult = Result<(), fidl_fuchsia_posix::Errno>;
14334pub type BaseNetworkSocketSetIpTypeOfServiceResult = Result<(), fidl_fuchsia_posix::Errno>;
14335pub type BaseNetworkSocketGetIpTypeOfServiceResult = Result<u8, fidl_fuchsia_posix::Errno>;
14336pub type BaseNetworkSocketSetIpTtlResult = Result<(), fidl_fuchsia_posix::Errno>;
14337pub type BaseNetworkSocketGetIpTtlResult = Result<u8, fidl_fuchsia_posix::Errno>;
14338pub type BaseNetworkSocketSetIpPacketInfoResult = Result<(), fidl_fuchsia_posix::Errno>;
14339pub type BaseNetworkSocketGetIpPacketInfoResult = Result<bool, fidl_fuchsia_posix::Errno>;
14340pub type BaseNetworkSocketSetIpReceiveTypeOfServiceResult = Result<(), fidl_fuchsia_posix::Errno>;
14341pub type BaseNetworkSocketGetIpReceiveTypeOfServiceResult = Result<bool, fidl_fuchsia_posix::Errno>;
14342pub type BaseNetworkSocketSetIpReceiveTtlResult = Result<(), fidl_fuchsia_posix::Errno>;
14343pub type BaseNetworkSocketGetIpReceiveTtlResult = Result<bool, fidl_fuchsia_posix::Errno>;
14344pub type BaseNetworkSocketSetIpMulticastInterfaceResult = Result<(), fidl_fuchsia_posix::Errno>;
14345pub type BaseNetworkSocketGetIpMulticastInterfaceResult =
14346    Result<fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>;
14347pub type BaseNetworkSocketSetIpMulticastTtlResult = Result<(), fidl_fuchsia_posix::Errno>;
14348pub type BaseNetworkSocketGetIpMulticastTtlResult = Result<u8, fidl_fuchsia_posix::Errno>;
14349pub type BaseNetworkSocketSetIpMulticastLoopbackResult = Result<(), fidl_fuchsia_posix::Errno>;
14350pub type BaseNetworkSocketGetIpMulticastLoopbackResult = Result<bool, fidl_fuchsia_posix::Errno>;
14351pub type BaseNetworkSocketAddIpMembershipResult = Result<(), fidl_fuchsia_posix::Errno>;
14352pub type BaseNetworkSocketDropIpMembershipResult = Result<(), fidl_fuchsia_posix::Errno>;
14353pub type BaseNetworkSocketSetIpTransparentResult = Result<(), fidl_fuchsia_posix::Errno>;
14354pub type BaseNetworkSocketGetIpTransparentResult = Result<bool, fidl_fuchsia_posix::Errno>;
14355pub type BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult =
14356    Result<(), fidl_fuchsia_posix::Errno>;
14357pub type BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult =
14358    Result<bool, fidl_fuchsia_posix::Errno>;
14359pub type BaseNetworkSocketAddIpv6MembershipResult = Result<(), fidl_fuchsia_posix::Errno>;
14360pub type BaseNetworkSocketDropIpv6MembershipResult = Result<(), fidl_fuchsia_posix::Errno>;
14361pub type BaseNetworkSocketSetIpv6MulticastInterfaceResult = Result<(), fidl_fuchsia_posix::Errno>;
14362pub type BaseNetworkSocketGetIpv6MulticastInterfaceResult = Result<u64, fidl_fuchsia_posix::Errno>;
14363pub type BaseNetworkSocketSetIpv6UnicastHopsResult = Result<(), fidl_fuchsia_posix::Errno>;
14364pub type BaseNetworkSocketGetIpv6UnicastHopsResult = Result<u8, fidl_fuchsia_posix::Errno>;
14365pub type BaseNetworkSocketSetIpv6ReceiveHopLimitResult = Result<(), fidl_fuchsia_posix::Errno>;
14366pub type BaseNetworkSocketGetIpv6ReceiveHopLimitResult = Result<bool, fidl_fuchsia_posix::Errno>;
14367pub type BaseNetworkSocketSetIpv6MulticastHopsResult = Result<(), fidl_fuchsia_posix::Errno>;
14368pub type BaseNetworkSocketGetIpv6MulticastHopsResult = Result<u8, fidl_fuchsia_posix::Errno>;
14369pub type BaseNetworkSocketSetIpv6MulticastLoopbackResult = Result<(), fidl_fuchsia_posix::Errno>;
14370pub type BaseNetworkSocketGetIpv6MulticastLoopbackResult = Result<bool, fidl_fuchsia_posix::Errno>;
14371pub type BaseNetworkSocketSetIpv6OnlyResult = Result<(), fidl_fuchsia_posix::Errno>;
14372pub type BaseNetworkSocketGetIpv6OnlyResult = Result<bool, fidl_fuchsia_posix::Errno>;
14373pub type BaseNetworkSocketSetIpv6ReceiveTrafficClassResult = Result<(), fidl_fuchsia_posix::Errno>;
14374pub type BaseNetworkSocketGetIpv6ReceiveTrafficClassResult =
14375    Result<bool, fidl_fuchsia_posix::Errno>;
14376pub type BaseNetworkSocketSetIpv6TrafficClassResult = Result<(), fidl_fuchsia_posix::Errno>;
14377pub type BaseNetworkSocketGetIpv6TrafficClassResult = Result<u8, fidl_fuchsia_posix::Errno>;
14378pub type BaseNetworkSocketSetIpv6ReceivePacketInfoResult = Result<(), fidl_fuchsia_posix::Errno>;
14379pub type BaseNetworkSocketGetIpv6ReceivePacketInfoResult = Result<bool, fidl_fuchsia_posix::Errno>;
14380pub type BaseNetworkSocketGetOriginalDestinationResult =
14381    Result<fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>;
14382
14383pub trait BaseNetworkSocketProxyInterface: Send + Sync {
14384    fn r#clone(
14385        &self,
14386        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
14387    ) -> Result<(), fidl::Error>;
14388    type CloseResponseFut: std::future::Future<
14389            Output = Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error>,
14390        > + Send;
14391    fn r#close(&self) -> Self::CloseResponseFut;
14392    type QueryResponseFut: std::future::Future<Output = Result<Vec<u8>, fidl::Error>> + Send;
14393    fn r#query(&self) -> Self::QueryResponseFut;
14394    type SetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketSetReuseAddressResult, fidl::Error>>
14395        + Send;
14396    fn r#set_reuse_address(&self, value: bool) -> Self::SetReuseAddressResponseFut;
14397    type GetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketGetReuseAddressResult, fidl::Error>>
14398        + Send;
14399    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut;
14400    type GetErrorResponseFut: std::future::Future<Output = Result<BaseSocketGetErrorResult, fidl::Error>>
14401        + Send;
14402    fn r#get_error(&self) -> Self::GetErrorResponseFut;
14403    type SetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketSetBroadcastResult, fidl::Error>>
14404        + Send;
14405    fn r#set_broadcast(&self, value: bool) -> Self::SetBroadcastResponseFut;
14406    type GetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketGetBroadcastResult, fidl::Error>>
14407        + Send;
14408    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut;
14409    type SetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetSendBufferResult, fidl::Error>>
14410        + Send;
14411    fn r#set_send_buffer(&self, value_bytes: u64) -> Self::SetSendBufferResponseFut;
14412    type GetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetSendBufferResult, fidl::Error>>
14413        + Send;
14414    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut;
14415    type SetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetReceiveBufferResult, fidl::Error>>
14416        + Send;
14417    fn r#set_receive_buffer(&self, value_bytes: u64) -> Self::SetReceiveBufferResponseFut;
14418    type GetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetReceiveBufferResult, fidl::Error>>
14419        + Send;
14420    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut;
14421    type SetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketSetKeepAliveResult, fidl::Error>>
14422        + Send;
14423    fn r#set_keep_alive(&self, value: bool) -> Self::SetKeepAliveResponseFut;
14424    type GetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketGetKeepAliveResult, fidl::Error>>
14425        + Send;
14426    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut;
14427    type SetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketSetOutOfBandInlineResult, fidl::Error>>
14428        + Send;
14429    fn r#set_out_of_band_inline(&self, value: bool) -> Self::SetOutOfBandInlineResponseFut;
14430    type GetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketGetOutOfBandInlineResult, fidl::Error>>
14431        + Send;
14432    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut;
14433    type SetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketSetNoCheckResult, fidl::Error>>
14434        + Send;
14435    fn r#set_no_check(&self, value: bool) -> Self::SetNoCheckResponseFut;
14436    type GetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketGetNoCheckResult, fidl::Error>>
14437        + Send;
14438    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut;
14439    type SetLingerResponseFut: std::future::Future<Output = Result<BaseSocketSetLingerResult, fidl::Error>>
14440        + Send;
14441    fn r#set_linger(&self, linger: bool, length_secs: u32) -> Self::SetLingerResponseFut;
14442    type GetLingerResponseFut: std::future::Future<Output = Result<BaseSocketGetLingerResult, fidl::Error>>
14443        + Send;
14444    fn r#get_linger(&self) -> Self::GetLingerResponseFut;
14445    type SetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketSetReusePortResult, fidl::Error>>
14446        + Send;
14447    fn r#set_reuse_port(&self, value: ReusePortOption) -> Self::SetReusePortResponseFut;
14448    type SetReusePortDeprecatedResponseFut: std::future::Future<Output = Result<BaseSocketSetReusePortDeprecatedResult, fidl::Error>>
14449        + Send;
14450    fn r#set_reuse_port_deprecated(&self, value: bool) -> Self::SetReusePortDeprecatedResponseFut;
14451    type GetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketGetReusePortResult, fidl::Error>>
14452        + Send;
14453    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut;
14454    type GetAcceptConnResponseFut: std::future::Future<Output = Result<BaseSocketGetAcceptConnResult, fidl::Error>>
14455        + Send;
14456    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut;
14457    type SetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToDeviceResult, fidl::Error>>
14458        + Send;
14459    fn r#set_bind_to_device(&self, value: &str) -> Self::SetBindToDeviceResponseFut;
14460    type GetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToDeviceResult, fidl::Error>>
14461        + Send;
14462    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut;
14463    type SetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error>>
14464        + Send;
14465    fn r#set_bind_to_interface_index(&self, value: u64)
14466    -> Self::SetBindToInterfaceIndexResponseFut;
14467    type GetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error>>
14468        + Send;
14469    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut;
14470    type SetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketSetTimestampResult, fidl::Error>>
14471        + Send;
14472    fn r#set_timestamp(&self, value: TimestampOption) -> Self::SetTimestampResponseFut;
14473    type GetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketGetTimestampResult, fidl::Error>>
14474        + Send;
14475    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut;
14476    type SetMarkResponseFut: std::future::Future<Output = Result<BaseSocketSetMarkResult, fidl::Error>>
14477        + Send;
14478    fn r#set_mark(
14479        &self,
14480        domain: fidl_fuchsia_net::MarkDomain,
14481        mark: &OptionalUint32,
14482    ) -> Self::SetMarkResponseFut;
14483    type GetMarkResponseFut: std::future::Future<Output = Result<BaseSocketGetMarkResult, fidl::Error>>
14484        + Send;
14485    fn r#get_mark(&self, domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut;
14486    type GetCookieResponseFut: std::future::Future<Output = Result<BaseSocketGetCookieResult, fidl::Error>>
14487        + Send;
14488    fn r#get_cookie(&self) -> Self::GetCookieResponseFut;
14489    type BindResponseFut: std::future::Future<Output = Result<BaseNetworkSocketBindResult, fidl::Error>>
14490        + Send;
14491    fn r#bind(&self, addr: &fidl_fuchsia_net::SocketAddress) -> Self::BindResponseFut;
14492    type ConnectResponseFut: std::future::Future<Output = Result<BaseNetworkSocketConnectResult, fidl::Error>>
14493        + Send;
14494    fn r#connect(&self, addr: &fidl_fuchsia_net::SocketAddress) -> Self::ConnectResponseFut;
14495    type DisconnectResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDisconnectResult, fidl::Error>>
14496        + Send;
14497    fn r#disconnect(&self) -> Self::DisconnectResponseFut;
14498    type GetSockNameResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetSockNameResult, fidl::Error>>
14499        + Send;
14500    fn r#get_sock_name(&self) -> Self::GetSockNameResponseFut;
14501    type GetPeerNameResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetPeerNameResult, fidl::Error>>
14502        + Send;
14503    fn r#get_peer_name(&self) -> Self::GetPeerNameResponseFut;
14504    type ShutdownResponseFut: std::future::Future<Output = Result<BaseNetworkSocketShutdownResult, fidl::Error>>
14505        + Send;
14506    fn r#shutdown(&self, mode: ShutdownMode) -> Self::ShutdownResponseFut;
14507    type SetIpTypeOfServiceResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error>>
14508        + Send;
14509    fn r#set_ip_type_of_service(&self, value: u8) -> Self::SetIpTypeOfServiceResponseFut;
14510    type GetIpTypeOfServiceResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error>>
14511        + Send;
14512    fn r#get_ip_type_of_service(&self) -> Self::GetIpTypeOfServiceResponseFut;
14513    type SetIpTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTtlResult, fidl::Error>>
14514        + Send;
14515    fn r#set_ip_ttl(&self, value: &OptionalUint8) -> Self::SetIpTtlResponseFut;
14516    type GetIpTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTtlResult, fidl::Error>>
14517        + Send;
14518    fn r#get_ip_ttl(&self) -> Self::GetIpTtlResponseFut;
14519    type SetIpPacketInfoResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error>>
14520        + Send;
14521    fn r#set_ip_packet_info(&self, value: bool) -> Self::SetIpPacketInfoResponseFut;
14522    type GetIpPacketInfoResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error>>
14523        + Send;
14524    fn r#get_ip_packet_info(&self) -> Self::GetIpPacketInfoResponseFut;
14525    type SetIpReceiveTypeOfServiceResponseFut: std::future::Future<
14526            Output = Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error>,
14527        > + Send;
14528    fn r#set_ip_receive_type_of_service(
14529        &self,
14530        value: bool,
14531    ) -> Self::SetIpReceiveTypeOfServiceResponseFut;
14532    type GetIpReceiveTypeOfServiceResponseFut: std::future::Future<
14533            Output = Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error>,
14534        > + Send;
14535    fn r#get_ip_receive_type_of_service(&self) -> Self::GetIpReceiveTypeOfServiceResponseFut;
14536    type SetIpReceiveTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error>>
14537        + Send;
14538    fn r#set_ip_receive_ttl(&self, value: bool) -> Self::SetIpReceiveTtlResponseFut;
14539    type GetIpReceiveTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error>>
14540        + Send;
14541    fn r#get_ip_receive_ttl(&self) -> Self::GetIpReceiveTtlResponseFut;
14542    type SetIpMulticastInterfaceResponseFut: std::future::Future<
14543            Output = Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error>,
14544        > + Send;
14545    fn r#set_ip_multicast_interface(
14546        &self,
14547        iface: u64,
14548        address: &fidl_fuchsia_net::Ipv4Address,
14549    ) -> Self::SetIpMulticastInterfaceResponseFut;
14550    type GetIpMulticastInterfaceResponseFut: std::future::Future<
14551            Output = Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error>,
14552        > + Send;
14553    fn r#get_ip_multicast_interface(&self) -> Self::GetIpMulticastInterfaceResponseFut;
14554    type SetIpMulticastTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error>>
14555        + Send;
14556    fn r#set_ip_multicast_ttl(&self, value: &OptionalUint8) -> Self::SetIpMulticastTtlResponseFut;
14557    type GetIpMulticastTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error>>
14558        + Send;
14559    fn r#get_ip_multicast_ttl(&self) -> Self::GetIpMulticastTtlResponseFut;
14560    type SetIpMulticastLoopbackResponseFut: std::future::Future<
14561            Output = Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error>,
14562        > + Send;
14563    fn r#set_ip_multicast_loopback(&self, value: bool) -> Self::SetIpMulticastLoopbackResponseFut;
14564    type GetIpMulticastLoopbackResponseFut: std::future::Future<
14565            Output = Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error>,
14566        > + Send;
14567    fn r#get_ip_multicast_loopback(&self) -> Self::GetIpMulticastLoopbackResponseFut;
14568    type AddIpMembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error>>
14569        + Send;
14570    fn r#add_ip_membership(
14571        &self,
14572        membership: &IpMulticastMembership,
14573    ) -> Self::AddIpMembershipResponseFut;
14574    type DropIpMembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error>>
14575        + Send;
14576    fn r#drop_ip_membership(
14577        &self,
14578        membership: &IpMulticastMembership,
14579    ) -> Self::DropIpMembershipResponseFut;
14580    type SetIpTransparentResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error>>
14581        + Send;
14582    fn r#set_ip_transparent(&self, value: bool) -> Self::SetIpTransparentResponseFut;
14583    type GetIpTransparentResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error>>
14584        + Send;
14585    fn r#get_ip_transparent(&self) -> Self::GetIpTransparentResponseFut;
14586    type SetIpReceiveOriginalDestinationAddressResponseFut: std::future::Future<
14587            Output = Result<
14588                BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
14589                fidl::Error,
14590            >,
14591        > + Send;
14592    fn r#set_ip_receive_original_destination_address(
14593        &self,
14594        value: bool,
14595    ) -> Self::SetIpReceiveOriginalDestinationAddressResponseFut;
14596    type GetIpReceiveOriginalDestinationAddressResponseFut: std::future::Future<
14597            Output = Result<
14598                BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
14599                fidl::Error,
14600            >,
14601        > + Send;
14602    fn r#get_ip_receive_original_destination_address(
14603        &self,
14604    ) -> Self::GetIpReceiveOriginalDestinationAddressResponseFut;
14605    type AddIpv6MembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error>>
14606        + Send;
14607    fn r#add_ipv6_membership(
14608        &self,
14609        membership: &Ipv6MulticastMembership,
14610    ) -> Self::AddIpv6MembershipResponseFut;
14611    type DropIpv6MembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error>>
14612        + Send;
14613    fn r#drop_ipv6_membership(
14614        &self,
14615        membership: &Ipv6MulticastMembership,
14616    ) -> Self::DropIpv6MembershipResponseFut;
14617    type SetIpv6MulticastInterfaceResponseFut: std::future::Future<
14618            Output = Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error>,
14619        > + Send;
14620    fn r#set_ipv6_multicast_interface(
14621        &self,
14622        value: u64,
14623    ) -> Self::SetIpv6MulticastInterfaceResponseFut;
14624    type GetIpv6MulticastInterfaceResponseFut: std::future::Future<
14625            Output = Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error>,
14626        > + Send;
14627    fn r#get_ipv6_multicast_interface(&self) -> Self::GetIpv6MulticastInterfaceResponseFut;
14628    type SetIpv6UnicastHopsResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error>>
14629        + Send;
14630    fn r#set_ipv6_unicast_hops(&self, value: &OptionalUint8)
14631    -> Self::SetIpv6UnicastHopsResponseFut;
14632    type GetIpv6UnicastHopsResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error>>
14633        + Send;
14634    fn r#get_ipv6_unicast_hops(&self) -> Self::GetIpv6UnicastHopsResponseFut;
14635    type SetIpv6ReceiveHopLimitResponseFut: std::future::Future<
14636            Output = Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error>,
14637        > + Send;
14638    fn r#set_ipv6_receive_hop_limit(&self, value: bool) -> Self::SetIpv6ReceiveHopLimitResponseFut;
14639    type GetIpv6ReceiveHopLimitResponseFut: std::future::Future<
14640            Output = Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error>,
14641        > + Send;
14642    fn r#get_ipv6_receive_hop_limit(&self) -> Self::GetIpv6ReceiveHopLimitResponseFut;
14643    type SetIpv6MulticastHopsResponseFut: std::future::Future<
14644            Output = Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error>,
14645        > + Send;
14646    fn r#set_ipv6_multicast_hops(
14647        &self,
14648        value: &OptionalUint8,
14649    ) -> Self::SetIpv6MulticastHopsResponseFut;
14650    type GetIpv6MulticastHopsResponseFut: std::future::Future<
14651            Output = Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error>,
14652        > + Send;
14653    fn r#get_ipv6_multicast_hops(&self) -> Self::GetIpv6MulticastHopsResponseFut;
14654    type SetIpv6MulticastLoopbackResponseFut: std::future::Future<
14655            Output = Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error>,
14656        > + Send;
14657    fn r#set_ipv6_multicast_loopback(
14658        &self,
14659        value: bool,
14660    ) -> Self::SetIpv6MulticastLoopbackResponseFut;
14661    type GetIpv6MulticastLoopbackResponseFut: std::future::Future<
14662            Output = Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error>,
14663        > + Send;
14664    fn r#get_ipv6_multicast_loopback(&self) -> Self::GetIpv6MulticastLoopbackResponseFut;
14665    type SetIpv6OnlyResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error>>
14666        + Send;
14667    fn r#set_ipv6_only(&self, value: bool) -> Self::SetIpv6OnlyResponseFut;
14668    type GetIpv6OnlyResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error>>
14669        + Send;
14670    fn r#get_ipv6_only(&self) -> Self::GetIpv6OnlyResponseFut;
14671    type SetIpv6ReceiveTrafficClassResponseFut: std::future::Future<
14672            Output = Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error>,
14673        > + Send;
14674    fn r#set_ipv6_receive_traffic_class(
14675        &self,
14676        value: bool,
14677    ) -> Self::SetIpv6ReceiveTrafficClassResponseFut;
14678    type GetIpv6ReceiveTrafficClassResponseFut: std::future::Future<
14679            Output = Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error>,
14680        > + Send;
14681    fn r#get_ipv6_receive_traffic_class(&self) -> Self::GetIpv6ReceiveTrafficClassResponseFut;
14682    type SetIpv6TrafficClassResponseFut: std::future::Future<
14683            Output = Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error>,
14684        > + Send;
14685    fn r#set_ipv6_traffic_class(
14686        &self,
14687        value: &OptionalUint8,
14688    ) -> Self::SetIpv6TrafficClassResponseFut;
14689    type GetIpv6TrafficClassResponseFut: std::future::Future<
14690            Output = Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error>,
14691        > + Send;
14692    fn r#get_ipv6_traffic_class(&self) -> Self::GetIpv6TrafficClassResponseFut;
14693    type SetIpv6ReceivePacketInfoResponseFut: std::future::Future<
14694            Output = Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error>,
14695        > + Send;
14696    fn r#set_ipv6_receive_packet_info(
14697        &self,
14698        value: bool,
14699    ) -> Self::SetIpv6ReceivePacketInfoResponseFut;
14700    type GetIpv6ReceivePacketInfoResponseFut: std::future::Future<
14701            Output = Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error>,
14702        > + Send;
14703    fn r#get_ipv6_receive_packet_info(&self) -> Self::GetIpv6ReceivePacketInfoResponseFut;
14704    type GetOriginalDestinationResponseFut: std::future::Future<
14705            Output = Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error>,
14706        > + Send;
14707    fn r#get_original_destination(&self) -> Self::GetOriginalDestinationResponseFut;
14708}
14709#[derive(Debug)]
14710#[cfg(target_os = "fuchsia")]
14711pub struct BaseNetworkSocketSynchronousProxy {
14712    client: fidl::client::sync::Client,
14713}
14714
14715#[cfg(target_os = "fuchsia")]
14716impl fidl::endpoints::SynchronousProxy for BaseNetworkSocketSynchronousProxy {
14717    type Proxy = BaseNetworkSocketProxy;
14718    type Protocol = BaseNetworkSocketMarker;
14719
14720    fn from_channel(inner: fidl::Channel) -> Self {
14721        Self::new(inner)
14722    }
14723
14724    fn into_channel(self) -> fidl::Channel {
14725        self.client.into_channel()
14726    }
14727
14728    fn as_channel(&self) -> &fidl::Channel {
14729        self.client.as_channel()
14730    }
14731}
14732
14733#[cfg(target_os = "fuchsia")]
14734impl BaseNetworkSocketSynchronousProxy {
14735    pub fn new(channel: fidl::Channel) -> Self {
14736        Self { client: fidl::client::sync::Client::new(channel) }
14737    }
14738
14739    pub fn into_channel(self) -> fidl::Channel {
14740        self.client.into_channel()
14741    }
14742
14743    /// Waits until an event arrives and returns it. It is safe for other
14744    /// threads to make concurrent requests while waiting for an event.
14745    pub fn wait_for_event(
14746        &self,
14747        deadline: zx::MonotonicInstant,
14748    ) -> Result<BaseNetworkSocketEvent, fidl::Error> {
14749        BaseNetworkSocketEvent::decode(
14750            self.client.wait_for_event::<BaseNetworkSocketMarker>(deadline)?,
14751        )
14752    }
14753
14754    pub fn r#clone(
14755        &self,
14756        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
14757    ) -> Result<(), fidl::Error> {
14758        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
14759            (request,),
14760            0x20d8a7aba2168a79,
14761            fidl::encoding::DynamicFlags::empty(),
14762        )
14763    }
14764
14765    /// Terminates the connection.
14766    ///
14767    /// After calling `Close`, the client must not send any other requests.
14768    ///
14769    /// Servers, after sending the status response, should close the connection
14770    /// regardless of status and without sending an epitaph.
14771    ///
14772    /// Closing the client end of the channel should be semantically equivalent
14773    /// to calling `Close` without knowing when the close has completed or its
14774    /// status.
14775    pub fn r#close(
14776        &self,
14777        ___deadline: zx::MonotonicInstant,
14778    ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
14779        let _response = self.client.send_query::<
14780            fidl::encoding::EmptyPayload,
14781            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
14782            BaseNetworkSocketMarker,
14783        >(
14784            (),
14785            0x5ac5d459ad7f657e,
14786            fidl::encoding::DynamicFlags::empty(),
14787            ___deadline,
14788        )?;
14789        Ok(_response.map(|x| x))
14790    }
14791
14792    pub fn r#query(&self, ___deadline: zx::MonotonicInstant) -> Result<Vec<u8>, fidl::Error> {
14793        let _response = self.client.send_query::<
14794            fidl::encoding::EmptyPayload,
14795            fidl_fuchsia_unknown::QueryableQueryResponse,
14796            BaseNetworkSocketMarker,
14797        >(
14798            (),
14799            0x2658edee9decfc06,
14800            fidl::encoding::DynamicFlags::empty(),
14801            ___deadline,
14802        )?;
14803        Ok(_response.protocol)
14804    }
14805
14806    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
14807    pub fn r#set_reuse_address(
14808        &self,
14809        mut value: bool,
14810        ___deadline: zx::MonotonicInstant,
14811    ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
14812        let _response =
14813            self.client.send_query::<BaseSocketSetReuseAddressRequest, fidl::encoding::ResultType<
14814                fidl::encoding::EmptyStruct,
14815                fidl_fuchsia_posix::Errno,
14816            >, BaseNetworkSocketMarker>(
14817                (value,),
14818                0x1fd74ee8b9a4a876,
14819                fidl::encoding::DynamicFlags::empty(),
14820                ___deadline,
14821            )?;
14822        Ok(_response.map(|x| x))
14823    }
14824
14825    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
14826    pub fn r#get_reuse_address(
14827        &self,
14828        ___deadline: zx::MonotonicInstant,
14829    ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
14830        let _response =
14831            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14832                BaseSocketGetReuseAddressResponse,
14833                fidl_fuchsia_posix::Errno,
14834            >, BaseNetworkSocketMarker>(
14835                (),
14836                0x67b7206b8d1bc0a5,
14837                fidl::encoding::DynamicFlags::empty(),
14838                ___deadline,
14839            )?;
14840        Ok(_response.map(|x| x.value))
14841    }
14842
14843    /// Get `SOL_SOCKET` -> `SO_ERROR`.
14844    /// Returns the last error if there is an error set on the socket.
14845    pub fn r#get_error(
14846        &self,
14847        ___deadline: zx::MonotonicInstant,
14848    ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
14849        let _response =
14850            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14851                fidl::encoding::EmptyStruct,
14852                fidl_fuchsia_posix::Errno,
14853            >, BaseNetworkSocketMarker>(
14854                (),
14855                0x5aad39b33e5f6ebb,
14856                fidl::encoding::DynamicFlags::empty(),
14857                ___deadline,
14858            )?;
14859        Ok(_response.map(|x| x))
14860    }
14861
14862    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
14863    pub fn r#set_broadcast(
14864        &self,
14865        mut value: bool,
14866        ___deadline: zx::MonotonicInstant,
14867    ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
14868        let _response =
14869            self.client.send_query::<BaseSocketSetBroadcastRequest, fidl::encoding::ResultType<
14870                fidl::encoding::EmptyStruct,
14871                fidl_fuchsia_posix::Errno,
14872            >, BaseNetworkSocketMarker>(
14873                (value,),
14874                0x6023e081ce3cd947,
14875                fidl::encoding::DynamicFlags::empty(),
14876                ___deadline,
14877            )?;
14878        Ok(_response.map(|x| x))
14879    }
14880
14881    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
14882    pub fn r#get_broadcast(
14883        &self,
14884        ___deadline: zx::MonotonicInstant,
14885    ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
14886        let _response =
14887            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14888                BaseSocketGetBroadcastResponse,
14889                fidl_fuchsia_posix::Errno,
14890            >, BaseNetworkSocketMarker>(
14891                (),
14892                0x68796fc556f9780d,
14893                fidl::encoding::DynamicFlags::empty(),
14894                ___deadline,
14895            )?;
14896        Ok(_response.map(|x| x.value))
14897    }
14898
14899    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
14900    pub fn r#set_send_buffer(
14901        &self,
14902        mut value_bytes: u64,
14903        ___deadline: zx::MonotonicInstant,
14904    ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
14905        let _response =
14906            self.client.send_query::<BaseSocketSetSendBufferRequest, fidl::encoding::ResultType<
14907                fidl::encoding::EmptyStruct,
14908                fidl_fuchsia_posix::Errno,
14909            >, BaseNetworkSocketMarker>(
14910                (value_bytes,),
14911                0x756eac32d73a7a70,
14912                fidl::encoding::DynamicFlags::empty(),
14913                ___deadline,
14914            )?;
14915        Ok(_response.map(|x| x))
14916    }
14917
14918    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
14919    pub fn r#get_send_buffer(
14920        &self,
14921        ___deadline: zx::MonotonicInstant,
14922    ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
14923        let _response =
14924            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14925                BaseSocketGetSendBufferResponse,
14926                fidl_fuchsia_posix::Errno,
14927            >, BaseNetworkSocketMarker>(
14928                (),
14929                0x78a52fd9c7b2410b,
14930                fidl::encoding::DynamicFlags::empty(),
14931                ___deadline,
14932            )?;
14933        Ok(_response.map(|x| x.value_bytes))
14934    }
14935
14936    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
14937    pub fn r#set_receive_buffer(
14938        &self,
14939        mut value_bytes: u64,
14940        ___deadline: zx::MonotonicInstant,
14941    ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
14942        let _response =
14943            self.client
14944                .send_query::<BaseSocketSetReceiveBufferRequest, fidl::encoding::ResultType<
14945                    fidl::encoding::EmptyStruct,
14946                    fidl_fuchsia_posix::Errno,
14947                >, BaseNetworkSocketMarker>(
14948                    (value_bytes,),
14949                    0x6b0cf2f1919c7001,
14950                    fidl::encoding::DynamicFlags::empty(),
14951                    ___deadline,
14952                )?;
14953        Ok(_response.map(|x| x))
14954    }
14955
14956    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
14957    pub fn r#get_receive_buffer(
14958        &self,
14959        ___deadline: zx::MonotonicInstant,
14960    ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
14961        let _response =
14962            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14963                BaseSocketGetReceiveBufferResponse,
14964                fidl_fuchsia_posix::Errno,
14965            >, BaseNetworkSocketMarker>(
14966                (),
14967                0x14c1a4b64f709e5c,
14968                fidl::encoding::DynamicFlags::empty(),
14969                ___deadline,
14970            )?;
14971        Ok(_response.map(|x| x.value_bytes))
14972    }
14973
14974    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
14975    pub fn r#set_keep_alive(
14976        &self,
14977        mut value: bool,
14978        ___deadline: zx::MonotonicInstant,
14979    ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
14980        let _response =
14981            self.client.send_query::<BaseSocketSetKeepAliveRequest, fidl::encoding::ResultType<
14982                fidl::encoding::EmptyStruct,
14983                fidl_fuchsia_posix::Errno,
14984            >, BaseNetworkSocketMarker>(
14985                (value,),
14986                0x572df8f0b920d2c7,
14987                fidl::encoding::DynamicFlags::empty(),
14988                ___deadline,
14989            )?;
14990        Ok(_response.map(|x| x))
14991    }
14992
14993    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
14994    pub fn r#get_keep_alive(
14995        &self,
14996        ___deadline: zx::MonotonicInstant,
14997    ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
14998        let _response =
14999            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15000                BaseSocketGetKeepAliveResponse,
15001                fidl_fuchsia_posix::Errno,
15002            >, BaseNetworkSocketMarker>(
15003                (),
15004                0x2dd29d3215f2c9d2,
15005                fidl::encoding::DynamicFlags::empty(),
15006                ___deadline,
15007            )?;
15008        Ok(_response.map(|x| x.value))
15009    }
15010
15011    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
15012    pub fn r#set_out_of_band_inline(
15013        &self,
15014        mut value: bool,
15015        ___deadline: zx::MonotonicInstant,
15016    ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
15017        let _response =
15018            self.client
15019                .send_query::<BaseSocketSetOutOfBandInlineRequest, fidl::encoding::ResultType<
15020                    fidl::encoding::EmptyStruct,
15021                    fidl_fuchsia_posix::Errno,
15022                >, BaseNetworkSocketMarker>(
15023                    (value,),
15024                    0x3ecb49968bee439,
15025                    fidl::encoding::DynamicFlags::empty(),
15026                    ___deadline,
15027                )?;
15028        Ok(_response.map(|x| x))
15029    }
15030
15031    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
15032    pub fn r#get_out_of_band_inline(
15033        &self,
15034        ___deadline: zx::MonotonicInstant,
15035    ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
15036        let _response =
15037            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15038                BaseSocketGetOutOfBandInlineResponse,
15039                fidl_fuchsia_posix::Errno,
15040            >, BaseNetworkSocketMarker>(
15041                (),
15042                0x348c1ab3aeca1745,
15043                fidl::encoding::DynamicFlags::empty(),
15044                ___deadline,
15045            )?;
15046        Ok(_response.map(|x| x.value))
15047    }
15048
15049    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
15050    pub fn r#set_no_check(
15051        &self,
15052        mut value: bool,
15053        ___deadline: zx::MonotonicInstant,
15054    ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
15055        let _response =
15056            self.client.send_query::<BaseSocketSetNoCheckRequest, fidl::encoding::ResultType<
15057                fidl::encoding::EmptyStruct,
15058                fidl_fuchsia_posix::Errno,
15059            >, BaseNetworkSocketMarker>(
15060                (value,),
15061                0x6bbf00c53a4c78c2,
15062                fidl::encoding::DynamicFlags::empty(),
15063                ___deadline,
15064            )?;
15065        Ok(_response.map(|x| x))
15066    }
15067
15068    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
15069    pub fn r#get_no_check(
15070        &self,
15071        ___deadline: zx::MonotonicInstant,
15072    ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
15073        let _response =
15074            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15075                BaseSocketGetNoCheckResponse,
15076                fidl_fuchsia_posix::Errno,
15077            >, BaseNetworkSocketMarker>(
15078                (),
15079                0x2cd4249286417694,
15080                fidl::encoding::DynamicFlags::empty(),
15081                ___deadline,
15082            )?;
15083        Ok(_response.map(|x| x.value))
15084    }
15085
15086    /// Set `SOL_SOCKET` -> `SO_LINGER`.
15087    pub fn r#set_linger(
15088        &self,
15089        mut linger: bool,
15090        mut length_secs: u32,
15091        ___deadline: zx::MonotonicInstant,
15092    ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
15093        let _response =
15094            self.client.send_query::<BaseSocketSetLingerRequest, fidl::encoding::ResultType<
15095                fidl::encoding::EmptyStruct,
15096                fidl_fuchsia_posix::Errno,
15097            >, BaseNetworkSocketMarker>(
15098                (linger, length_secs),
15099                0x45386351246e998e,
15100                fidl::encoding::DynamicFlags::empty(),
15101                ___deadline,
15102            )?;
15103        Ok(_response.map(|x| x))
15104    }
15105
15106    /// Get `SOL_SOCKET` -> `SO_LINGER`.
15107    pub fn r#get_linger(
15108        &self,
15109        ___deadline: zx::MonotonicInstant,
15110    ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
15111        let _response =
15112            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15113                BaseSocketGetLingerResponse,
15114                fidl_fuchsia_posix::Errno,
15115            >, BaseNetworkSocketMarker>(
15116                (),
15117                0x48eb20fc5ccb0e45,
15118                fidl::encoding::DynamicFlags::empty(),
15119                ___deadline,
15120            )?;
15121        Ok(_response.map(|x| (x.linger, x.length_secs)))
15122    }
15123
15124    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
15125    pub fn r#set_reuse_port(
15126        &self,
15127        mut value: ReusePortOption,
15128        ___deadline: zx::MonotonicInstant,
15129    ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
15130        let _response =
15131            self.client.send_query::<BaseSocketSetReusePortRequest, fidl::encoding::ResultType<
15132                fidl::encoding::EmptyStruct,
15133                fidl_fuchsia_posix::Errno,
15134            >, BaseNetworkSocketMarker>(
15135                (&mut value,),
15136                0x547dc9cc0455189e,
15137                fidl::encoding::DynamicFlags::empty(),
15138                ___deadline,
15139            )?;
15140        Ok(_response.map(|x| x))
15141    }
15142
15143    pub fn r#set_reuse_port_deprecated(
15144        &self,
15145        mut value: bool,
15146        ___deadline: zx::MonotonicInstant,
15147    ) -> Result<BaseSocketSetReusePortDeprecatedResult, fidl::Error> {
15148        let _response =
15149            self.client
15150                .send_query::<BaseSocketSetReusePortDeprecatedRequest, fidl::encoding::ResultType<
15151                    fidl::encoding::EmptyStruct,
15152                    fidl_fuchsia_posix::Errno,
15153                >, BaseNetworkSocketMarker>(
15154                    (value,),
15155                    0x24dd3e5cb36d9ccb,
15156                    fidl::encoding::DynamicFlags::empty(),
15157                    ___deadline,
15158                )?;
15159        Ok(_response.map(|x| x))
15160    }
15161
15162    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
15163    pub fn r#get_reuse_port(
15164        &self,
15165        ___deadline: zx::MonotonicInstant,
15166    ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
15167        let _response =
15168            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15169                BaseSocketGetReusePortResponse,
15170                fidl_fuchsia_posix::Errno,
15171            >, BaseNetworkSocketMarker>(
15172                (),
15173                0x7a112c1ab54ff828,
15174                fidl::encoding::DynamicFlags::empty(),
15175                ___deadline,
15176            )?;
15177        Ok(_response.map(|x| x.value))
15178    }
15179
15180    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
15181    pub fn r#get_accept_conn(
15182        &self,
15183        ___deadline: zx::MonotonicInstant,
15184    ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
15185        let _response =
15186            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15187                BaseSocketGetAcceptConnResponse,
15188                fidl_fuchsia_posix::Errno,
15189            >, BaseNetworkSocketMarker>(
15190                (),
15191                0x67ce6db6c2ec8966,
15192                fidl::encoding::DynamicFlags::empty(),
15193                ___deadline,
15194            )?;
15195        Ok(_response.map(|x| x.value))
15196    }
15197
15198    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
15199    pub fn r#set_bind_to_device(
15200        &self,
15201        mut value: &str,
15202        ___deadline: zx::MonotonicInstant,
15203    ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
15204        let _response =
15205            self.client.send_query::<BaseSocketSetBindToDeviceRequest, fidl::encoding::ResultType<
15206                fidl::encoding::EmptyStruct,
15207                fidl_fuchsia_posix::Errno,
15208            >, BaseNetworkSocketMarker>(
15209                (value,),
15210                0x2118b483f28aafc4,
15211                fidl::encoding::DynamicFlags::empty(),
15212                ___deadline,
15213            )?;
15214        Ok(_response.map(|x| x))
15215    }
15216
15217    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
15218    pub fn r#get_bind_to_device(
15219        &self,
15220        ___deadline: zx::MonotonicInstant,
15221    ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
15222        let _response =
15223            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15224                BaseSocketGetBindToDeviceResponse,
15225                fidl_fuchsia_posix::Errno,
15226            >, BaseNetworkSocketMarker>(
15227                (),
15228                0x1ab1fbf0ef7906c8,
15229                fidl::encoding::DynamicFlags::empty(),
15230                ___deadline,
15231            )?;
15232        Ok(_response.map(|x| x.value))
15233    }
15234
15235    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
15236    /// If `value` is 0, this clears the bound interface.
15237    pub fn r#set_bind_to_interface_index(
15238        &self,
15239        mut value: u64,
15240        ___deadline: zx::MonotonicInstant,
15241    ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
15242        let _response =
15243            self.client
15244                .send_query::<BaseSocketSetBindToInterfaceIndexRequest, fidl::encoding::ResultType<
15245                    fidl::encoding::EmptyStruct,
15246                    fidl_fuchsia_posix::Errno,
15247                >, BaseNetworkSocketMarker>(
15248                    (value,),
15249                    0x6e387a0def00821,
15250                    fidl::encoding::DynamicFlags::empty(),
15251                    ___deadline,
15252                )?;
15253        Ok(_response.map(|x| x))
15254    }
15255
15256    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
15257    pub fn r#get_bind_to_interface_index(
15258        &self,
15259        ___deadline: zx::MonotonicInstant,
15260    ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
15261        let _response =
15262            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15263                BaseSocketGetBindToInterfaceIndexResponse,
15264                fidl_fuchsia_posix::Errno,
15265            >, BaseNetworkSocketMarker>(
15266                (),
15267                0x59c31dd3e3078295,
15268                fidl::encoding::DynamicFlags::empty(),
15269                ___deadline,
15270            )?;
15271        Ok(_response.map(|x| x.value))
15272    }
15273
15274    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
15275    pub fn r#set_timestamp(
15276        &self,
15277        mut value: TimestampOption,
15278        ___deadline: zx::MonotonicInstant,
15279    ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
15280        let _response =
15281            self.client.send_query::<BaseSocketSetTimestampRequest, fidl::encoding::ResultType<
15282                fidl::encoding::EmptyStruct,
15283                fidl_fuchsia_posix::Errno,
15284            >, BaseNetworkSocketMarker>(
15285                (value,),
15286                0x285d6516c263d839,
15287                fidl::encoding::DynamicFlags::empty(),
15288                ___deadline,
15289            )?;
15290        Ok(_response.map(|x| x))
15291    }
15292
15293    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
15294    pub fn r#get_timestamp(
15295        &self,
15296        ___deadline: zx::MonotonicInstant,
15297    ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
15298        let _response =
15299            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15300                BaseSocketGetTimestampResponse,
15301                fidl_fuchsia_posix::Errno,
15302            >, BaseNetworkSocketMarker>(
15303                (),
15304                0x49f2fffbbcc2bd27,
15305                fidl::encoding::DynamicFlags::empty(),
15306                ___deadline,
15307            )?;
15308        Ok(_response.map(|x| x.value))
15309    }
15310
15311    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
15312    /// unlike the standard SO_MARK, this API has multiple mark domains and each
15313    /// mark can be set independently in each domain.
15314    pub fn r#set_mark(
15315        &self,
15316        mut domain: fidl_fuchsia_net::MarkDomain,
15317        mut mark: &OptionalUint32,
15318        ___deadline: zx::MonotonicInstant,
15319    ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
15320        let _response =
15321            self.client.send_query::<BaseSocketSetMarkRequest, fidl::encoding::ResultType<
15322                fidl::encoding::EmptyStruct,
15323                fidl_fuchsia_posix::Errno,
15324            >, BaseNetworkSocketMarker>(
15325                (domain, mark),
15326                0x6ead6de09f653236,
15327                fidl::encoding::DynamicFlags::empty(),
15328                ___deadline,
15329            )?;
15330        Ok(_response.map(|x| x))
15331    }
15332
15333    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
15334    /// unlike the standard SO_MARK, this API has multiple mark domains and each
15335    /// mark can be retrieved independently in each domain.
15336    pub fn r#get_mark(
15337        &self,
15338        mut domain: fidl_fuchsia_net::MarkDomain,
15339        ___deadline: zx::MonotonicInstant,
15340    ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
15341        let _response =
15342            self.client.send_query::<BaseSocketGetMarkRequest, fidl::encoding::ResultType<
15343                BaseSocketGetMarkResponse,
15344                fidl_fuchsia_posix::Errno,
15345            >, BaseNetworkSocketMarker>(
15346                (domain,),
15347                0x57a2752c61d93d47,
15348                fidl::encoding::DynamicFlags::empty(),
15349                ___deadline,
15350            )?;
15351        Ok(_response.map(|x| x.mark))
15352    }
15353
15354    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
15355    pub fn r#get_cookie(
15356        &self,
15357        ___deadline: zx::MonotonicInstant,
15358    ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
15359        let _response =
15360            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15361                BaseSocketGetCookieResponse,
15362                fidl_fuchsia_posix::Errno,
15363            >, BaseNetworkSocketMarker>(
15364                (),
15365                0x2c2f47fd8f924e52,
15366                fidl::encoding::DynamicFlags::empty(),
15367                ___deadline,
15368            )?;
15369        Ok(_response.map(|x| x.value))
15370    }
15371
15372    /// Sets the local address used for the socket.
15373    pub fn r#bind(
15374        &self,
15375        mut addr: &fidl_fuchsia_net::SocketAddress,
15376        ___deadline: zx::MonotonicInstant,
15377    ) -> Result<BaseNetworkSocketBindResult, fidl::Error> {
15378        let _response =
15379            self.client.send_query::<BaseNetworkSocketBindRequest, fidl::encoding::ResultType<
15380                fidl::encoding::EmptyStruct,
15381                fidl_fuchsia_posix::Errno,
15382            >, BaseNetworkSocketMarker>(
15383                (addr,),
15384                0x4bc6400ae92125d,
15385                fidl::encoding::DynamicFlags::empty(),
15386                ___deadline,
15387            )?;
15388        Ok(_response.map(|x| x))
15389    }
15390
15391    /// Initiates a connection to a remote address.
15392    pub fn r#connect(
15393        &self,
15394        mut addr: &fidl_fuchsia_net::SocketAddress,
15395        ___deadline: zx::MonotonicInstant,
15396    ) -> Result<BaseNetworkSocketConnectResult, fidl::Error> {
15397        let _response =
15398            self.client.send_query::<BaseNetworkSocketConnectRequest, fidl::encoding::ResultType<
15399                fidl::encoding::EmptyStruct,
15400                fidl_fuchsia_posix::Errno,
15401            >, BaseNetworkSocketMarker>(
15402                (addr,),
15403                0x5f05f19bfdd38871,
15404                fidl::encoding::DynamicFlags::empty(),
15405                ___deadline,
15406            )?;
15407        Ok(_response.map(|x| x))
15408    }
15409
15410    /// Clears connection information from this socket.
15411    pub fn r#disconnect(
15412        &self,
15413        ___deadline: zx::MonotonicInstant,
15414    ) -> Result<BaseNetworkSocketDisconnectResult, fidl::Error> {
15415        let _response =
15416            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15417                fidl::encoding::EmptyStruct,
15418                fidl_fuchsia_posix::Errno,
15419            >, BaseNetworkSocketMarker>(
15420                (),
15421                0x74e63b91f7b29b2,
15422                fidl::encoding::DynamicFlags::empty(),
15423                ___deadline,
15424            )?;
15425        Ok(_response.map(|x| x))
15426    }
15427
15428    /// Retrieves the local socket address.
15429    pub fn r#get_sock_name(
15430        &self,
15431        ___deadline: zx::MonotonicInstant,
15432    ) -> Result<BaseNetworkSocketGetSockNameResult, fidl::Error> {
15433        let _response =
15434            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15435                BaseNetworkSocketGetSockNameResponse,
15436                fidl_fuchsia_posix::Errno,
15437            >, BaseNetworkSocketMarker>(
15438                (),
15439                0x475f23f84a1a4f85,
15440                fidl::encoding::DynamicFlags::empty(),
15441                ___deadline,
15442            )?;
15443        Ok(_response.map(|x| x.addr))
15444    }
15445
15446    /// Retrieves the remote socket address.
15447    pub fn r#get_peer_name(
15448        &self,
15449        ___deadline: zx::MonotonicInstant,
15450    ) -> Result<BaseNetworkSocketGetPeerNameResult, fidl::Error> {
15451        let _response =
15452            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15453                BaseNetworkSocketGetPeerNameResponse,
15454                fidl_fuchsia_posix::Errno,
15455            >, BaseNetworkSocketMarker>(
15456                (),
15457                0x1ffecf4bd5b6432e,
15458                fidl::encoding::DynamicFlags::empty(),
15459                ___deadline,
15460            )?;
15461        Ok(_response.map(|x| x.addr))
15462    }
15463
15464    /// Shuts down part of the socket.
15465    pub fn r#shutdown(
15466        &self,
15467        mut mode: ShutdownMode,
15468        ___deadline: zx::MonotonicInstant,
15469    ) -> Result<BaseNetworkSocketShutdownResult, fidl::Error> {
15470        let _response =
15471            self.client.send_query::<BaseNetworkSocketShutdownRequest, fidl::encoding::ResultType<
15472                fidl::encoding::EmptyStruct,
15473                fidl_fuchsia_posix::Errno,
15474            >, BaseNetworkSocketMarker>(
15475                (mode,),
15476                0x247f38b6db68c336,
15477                fidl::encoding::DynamicFlags::empty(),
15478                ___deadline,
15479            )?;
15480        Ok(_response.map(|x| x))
15481    }
15482
15483    /// Set `SOL_IP` -> `IP_TOS`.
15484    pub fn r#set_ip_type_of_service(
15485        &self,
15486        mut value: u8,
15487        ___deadline: zx::MonotonicInstant,
15488    ) -> Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error> {
15489        let _response = self.client.send_query::<
15490            BaseNetworkSocketSetIpTypeOfServiceRequest,
15491            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15492            BaseNetworkSocketMarker,
15493        >(
15494            (value,),
15495            0x995c600475b6d46,
15496            fidl::encoding::DynamicFlags::empty(),
15497            ___deadline,
15498        )?;
15499        Ok(_response.map(|x| x))
15500    }
15501
15502    /// Get `SOL_IP` -> `IP_TOS`.
15503    pub fn r#get_ip_type_of_service(
15504        &self,
15505        ___deadline: zx::MonotonicInstant,
15506    ) -> Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error> {
15507        let _response =
15508            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15509                BaseNetworkSocketGetIpTypeOfServiceResponse,
15510                fidl_fuchsia_posix::Errno,
15511            >, BaseNetworkSocketMarker>(
15512                (),
15513                0x3814a04259f75fcb,
15514                fidl::encoding::DynamicFlags::empty(),
15515                ___deadline,
15516            )?;
15517        Ok(_response.map(|x| x.value))
15518    }
15519
15520    /// Set `SOL_IP` -> `IP_TTL`.
15521    pub fn r#set_ip_ttl(
15522        &self,
15523        mut value: &OptionalUint8,
15524        ___deadline: zx::MonotonicInstant,
15525    ) -> Result<BaseNetworkSocketSetIpTtlResult, fidl::Error> {
15526        let _response =
15527            self.client.send_query::<BaseNetworkSocketSetIpTtlRequest, fidl::encoding::ResultType<
15528                fidl::encoding::EmptyStruct,
15529                fidl_fuchsia_posix::Errno,
15530            >, BaseNetworkSocketMarker>(
15531                (value,),
15532                0x29e2424b433ae1ef,
15533                fidl::encoding::DynamicFlags::empty(),
15534                ___deadline,
15535            )?;
15536        Ok(_response.map(|x| x))
15537    }
15538
15539    /// Get `SOL_IP` -> `IP_TTL`.
15540    pub fn r#get_ip_ttl(
15541        &self,
15542        ___deadline: zx::MonotonicInstant,
15543    ) -> Result<BaseNetworkSocketGetIpTtlResult, fidl::Error> {
15544        let _response =
15545            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15546                BaseNetworkSocketGetIpTtlResponse,
15547                fidl_fuchsia_posix::Errno,
15548            >, BaseNetworkSocketMarker>(
15549                (),
15550                0x47e47fa1f24da471,
15551                fidl::encoding::DynamicFlags::empty(),
15552                ___deadline,
15553            )?;
15554        Ok(_response.map(|x| x.value))
15555    }
15556
15557    /// Set `SOL_IP` -> `IP_PKTINFO`.
15558    pub fn r#set_ip_packet_info(
15559        &self,
15560        mut value: bool,
15561        ___deadline: zx::MonotonicInstant,
15562    ) -> Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error> {
15563        let _response =
15564            self.client
15565                .send_query::<BaseNetworkSocketSetIpPacketInfoRequest, fidl::encoding::ResultType<
15566                    fidl::encoding::EmptyStruct,
15567                    fidl_fuchsia_posix::Errno,
15568                >, BaseNetworkSocketMarker>(
15569                    (value,),
15570                    0x392d16bee20c0e16,
15571                    fidl::encoding::DynamicFlags::empty(),
15572                    ___deadline,
15573                )?;
15574        Ok(_response.map(|x| x))
15575    }
15576
15577    /// Get `SOL_IP` -> `IP_PKTINFO`.
15578    pub fn r#get_ip_packet_info(
15579        &self,
15580        ___deadline: zx::MonotonicInstant,
15581    ) -> Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error> {
15582        let _response =
15583            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15584                BaseNetworkSocketGetIpPacketInfoResponse,
15585                fidl_fuchsia_posix::Errno,
15586            >, BaseNetworkSocketMarker>(
15587                (),
15588                0x54b505f242280740,
15589                fidl::encoding::DynamicFlags::empty(),
15590                ___deadline,
15591            )?;
15592        Ok(_response.map(|x| x.value))
15593    }
15594
15595    /// Set `SOL_IP` -> `IP_RECVTOS`.
15596    pub fn r#set_ip_receive_type_of_service(
15597        &self,
15598        mut value: bool,
15599        ___deadline: zx::MonotonicInstant,
15600    ) -> Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error> {
15601        let _response = self.client.send_query::<
15602            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
15603            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15604            BaseNetworkSocketMarker,
15605        >(
15606            (value,),
15607            0x6c4f6714995f84ef,
15608            fidl::encoding::DynamicFlags::empty(),
15609            ___deadline,
15610        )?;
15611        Ok(_response.map(|x| x))
15612    }
15613
15614    /// Get `SOL_IP` -> `IP_RECVTOS`.
15615    pub fn r#get_ip_receive_type_of_service(
15616        &self,
15617        ___deadline: zx::MonotonicInstant,
15618    ) -> Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error> {
15619        let _response =
15620            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15621                BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
15622                fidl_fuchsia_posix::Errno,
15623            >, BaseNetworkSocketMarker>(
15624                (),
15625                0x4158ba7dc2795960,
15626                fidl::encoding::DynamicFlags::empty(),
15627                ___deadline,
15628            )?;
15629        Ok(_response.map(|x| x.value))
15630    }
15631
15632    /// Set `SOL_IP` -> `IP_RECVTTL`.
15633    pub fn r#set_ip_receive_ttl(
15634        &self,
15635        mut value: bool,
15636        ___deadline: zx::MonotonicInstant,
15637    ) -> Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error> {
15638        let _response =
15639            self.client
15640                .send_query::<BaseNetworkSocketSetIpReceiveTtlRequest, fidl::encoding::ResultType<
15641                    fidl::encoding::EmptyStruct,
15642                    fidl_fuchsia_posix::Errno,
15643                >, BaseNetworkSocketMarker>(
15644                    (value,),
15645                    0x46f15be0ce0ab82b,
15646                    fidl::encoding::DynamicFlags::empty(),
15647                    ___deadline,
15648                )?;
15649        Ok(_response.map(|x| x))
15650    }
15651
15652    /// Get `SOL_IP` -> `IP_RECVTTL`.
15653    pub fn r#get_ip_receive_ttl(
15654        &self,
15655        ___deadline: zx::MonotonicInstant,
15656    ) -> Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error> {
15657        let _response =
15658            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15659                BaseNetworkSocketGetIpReceiveTtlResponse,
15660                fidl_fuchsia_posix::Errno,
15661            >, BaseNetworkSocketMarker>(
15662                (),
15663                0x678ddd5a5dfa2eb5,
15664                fidl::encoding::DynamicFlags::empty(),
15665                ___deadline,
15666            )?;
15667        Ok(_response.map(|x| x.value))
15668    }
15669
15670    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
15671    pub fn r#set_ip_multicast_interface(
15672        &self,
15673        mut iface: u64,
15674        mut address: &fidl_fuchsia_net::Ipv4Address,
15675        ___deadline: zx::MonotonicInstant,
15676    ) -> Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error> {
15677        let _response = self.client.send_query::<
15678            BaseNetworkSocketSetIpMulticastInterfaceRequest,
15679            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15680            BaseNetworkSocketMarker,
15681        >(
15682            (iface, address,),
15683            0x752fbfa9b12befe,
15684            fidl::encoding::DynamicFlags::empty(),
15685            ___deadline,
15686        )?;
15687        Ok(_response.map(|x| x))
15688    }
15689
15690    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
15691    pub fn r#get_ip_multicast_interface(
15692        &self,
15693        ___deadline: zx::MonotonicInstant,
15694    ) -> Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error> {
15695        let _response =
15696            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15697                BaseNetworkSocketGetIpMulticastInterfaceResponse,
15698                fidl_fuchsia_posix::Errno,
15699            >, BaseNetworkSocketMarker>(
15700                (),
15701                0x320bd14c4df046c4,
15702                fidl::encoding::DynamicFlags::empty(),
15703                ___deadline,
15704            )?;
15705        Ok(_response.map(|x| x.value))
15706    }
15707
15708    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
15709    pub fn r#set_ip_multicast_ttl(
15710        &self,
15711        mut value: &OptionalUint8,
15712        ___deadline: zx::MonotonicInstant,
15713    ) -> Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error> {
15714        let _response =
15715            self.client
15716                .send_query::<BaseNetworkSocketSetIpMulticastTtlRequest, fidl::encoding::ResultType<
15717                    fidl::encoding::EmptyStruct,
15718                    fidl_fuchsia_posix::Errno,
15719                >, BaseNetworkSocketMarker>(
15720                    (value,),
15721                    0x63134d53772916a1,
15722                    fidl::encoding::DynamicFlags::empty(),
15723                    ___deadline,
15724                )?;
15725        Ok(_response.map(|x| x))
15726    }
15727
15728    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
15729    pub fn r#get_ip_multicast_ttl(
15730        &self,
15731        ___deadline: zx::MonotonicInstant,
15732    ) -> Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error> {
15733        let _response =
15734            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15735                BaseNetworkSocketGetIpMulticastTtlResponse,
15736                fidl_fuchsia_posix::Errno,
15737            >, BaseNetworkSocketMarker>(
15738                (),
15739                0x4665cd378f39e1a,
15740                fidl::encoding::DynamicFlags::empty(),
15741                ___deadline,
15742            )?;
15743        Ok(_response.map(|x| x.value))
15744    }
15745
15746    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
15747    pub fn r#set_ip_multicast_loopback(
15748        &self,
15749        mut value: bool,
15750        ___deadline: zx::MonotonicInstant,
15751    ) -> Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error> {
15752        let _response = self.client.send_query::<
15753            BaseNetworkSocketSetIpMulticastLoopbackRequest,
15754            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15755            BaseNetworkSocketMarker,
15756        >(
15757            (value,),
15758            0x20c55c11f00943ea,
15759            fidl::encoding::DynamicFlags::empty(),
15760            ___deadline,
15761        )?;
15762        Ok(_response.map(|x| x))
15763    }
15764
15765    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
15766    pub fn r#get_ip_multicast_loopback(
15767        &self,
15768        ___deadline: zx::MonotonicInstant,
15769    ) -> Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error> {
15770        let _response =
15771            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15772                BaseNetworkSocketGetIpMulticastLoopbackResponse,
15773                fidl_fuchsia_posix::Errno,
15774            >, BaseNetworkSocketMarker>(
15775                (),
15776                0x3b6b26ff558298f2,
15777                fidl::encoding::DynamicFlags::empty(),
15778                ___deadline,
15779            )?;
15780        Ok(_response.map(|x| x.value))
15781    }
15782
15783    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
15784    pub fn r#add_ip_membership(
15785        &self,
15786        mut membership: &IpMulticastMembership,
15787        ___deadline: zx::MonotonicInstant,
15788    ) -> Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error> {
15789        let _response =
15790            self.client
15791                .send_query::<BaseNetworkSocketAddIpMembershipRequest, fidl::encoding::ResultType<
15792                    fidl::encoding::EmptyStruct,
15793                    fidl_fuchsia_posix::Errno,
15794                >, BaseNetworkSocketMarker>(
15795                    (membership,),
15796                    0x76bc7df115a3b4d0,
15797                    fidl::encoding::DynamicFlags::empty(),
15798                    ___deadline,
15799                )?;
15800        Ok(_response.map(|x| x))
15801    }
15802
15803    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
15804    pub fn r#drop_ip_membership(
15805        &self,
15806        mut membership: &IpMulticastMembership,
15807        ___deadline: zx::MonotonicInstant,
15808    ) -> Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error> {
15809        let _response =
15810            self.client
15811                .send_query::<BaseNetworkSocketDropIpMembershipRequest, fidl::encoding::ResultType<
15812                    fidl::encoding::EmptyStruct,
15813                    fidl_fuchsia_posix::Errno,
15814                >, BaseNetworkSocketMarker>(
15815                    (membership,),
15816                    0x2888f3099188d03,
15817                    fidl::encoding::DynamicFlags::empty(),
15818                    ___deadline,
15819                )?;
15820        Ok(_response.map(|x| x))
15821    }
15822
15823    /// Set `SOL_IP` -> `IP_TRANSPARENT`
15824    pub fn r#set_ip_transparent(
15825        &self,
15826        mut value: bool,
15827        ___deadline: zx::MonotonicInstant,
15828    ) -> Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error> {
15829        let _response =
15830            self.client
15831                .send_query::<BaseNetworkSocketSetIpTransparentRequest, fidl::encoding::ResultType<
15832                    fidl::encoding::EmptyStruct,
15833                    fidl_fuchsia_posix::Errno,
15834                >, BaseNetworkSocketMarker>(
15835                    (value,),
15836                    0x1ae532b0c066e3a0,
15837                    fidl::encoding::DynamicFlags::empty(),
15838                    ___deadline,
15839                )?;
15840        Ok(_response.map(|x| x))
15841    }
15842
15843    /// Get `SOL_IP` -> `IP_TRANSPARENT`
15844    pub fn r#get_ip_transparent(
15845        &self,
15846        ___deadline: zx::MonotonicInstant,
15847    ) -> Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error> {
15848        let _response =
15849            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15850                BaseNetworkSocketGetIpTransparentResponse,
15851                fidl_fuchsia_posix::Errno,
15852            >, BaseNetworkSocketMarker>(
15853                (),
15854                0x51d43695962ebfb5,
15855                fidl::encoding::DynamicFlags::empty(),
15856                ___deadline,
15857            )?;
15858        Ok(_response.map(|x| x.value))
15859    }
15860
15861    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
15862    pub fn r#set_ip_receive_original_destination_address(
15863        &self,
15864        mut value: bool,
15865        ___deadline: zx::MonotonicInstant,
15866    ) -> Result<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult, fidl::Error> {
15867        let _response = self.client.send_query::<
15868            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
15869            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15870            BaseNetworkSocketMarker,
15871        >(
15872            (value,),
15873            0x4722b4ce52f7840,
15874            fidl::encoding::DynamicFlags::empty(),
15875            ___deadline,
15876        )?;
15877        Ok(_response.map(|x| x))
15878    }
15879
15880    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
15881    pub fn r#get_ip_receive_original_destination_address(
15882        &self,
15883        ___deadline: zx::MonotonicInstant,
15884    ) -> Result<BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult, fidl::Error> {
15885        let _response =
15886            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15887                BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
15888                fidl_fuchsia_posix::Errno,
15889            >, BaseNetworkSocketMarker>(
15890                (),
15891                0x2a0e7dc5d6bfdfe9,
15892                fidl::encoding::DynamicFlags::empty(),
15893                ___deadline,
15894            )?;
15895        Ok(_response.map(|x| x.value))
15896    }
15897
15898    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
15899    pub fn r#add_ipv6_membership(
15900        &self,
15901        mut membership: &Ipv6MulticastMembership,
15902        ___deadline: zx::MonotonicInstant,
15903    ) -> Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error> {
15904        let _response =
15905            self.client
15906                .send_query::<BaseNetworkSocketAddIpv6MembershipRequest, fidl::encoding::ResultType<
15907                    fidl::encoding::EmptyStruct,
15908                    fidl_fuchsia_posix::Errno,
15909                >, BaseNetworkSocketMarker>(
15910                    (membership,),
15911                    0x7c94727acb4ea4b3,
15912                    fidl::encoding::DynamicFlags::empty(),
15913                    ___deadline,
15914                )?;
15915        Ok(_response.map(|x| x))
15916    }
15917
15918    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
15919    pub fn r#drop_ipv6_membership(
15920        &self,
15921        mut membership: &Ipv6MulticastMembership,
15922        ___deadline: zx::MonotonicInstant,
15923    ) -> Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error> {
15924        let _response = self.client.send_query::<
15925            BaseNetworkSocketDropIpv6MembershipRequest,
15926            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15927            BaseNetworkSocketMarker,
15928        >(
15929            (membership,),
15930            0x42104c70ccaba304,
15931            fidl::encoding::DynamicFlags::empty(),
15932            ___deadline,
15933        )?;
15934        Ok(_response.map(|x| x))
15935    }
15936
15937    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
15938    pub fn r#set_ipv6_multicast_interface(
15939        &self,
15940        mut value: u64,
15941        ___deadline: zx::MonotonicInstant,
15942    ) -> Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error> {
15943        let _response = self.client.send_query::<
15944            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
15945            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15946            BaseNetworkSocketMarker,
15947        >(
15948            (value,),
15949            0x135f76db3774ab3b,
15950            fidl::encoding::DynamicFlags::empty(),
15951            ___deadline,
15952        )?;
15953        Ok(_response.map(|x| x))
15954    }
15955
15956    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
15957    pub fn r#get_ipv6_multicast_interface(
15958        &self,
15959        ___deadline: zx::MonotonicInstant,
15960    ) -> Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error> {
15961        let _response =
15962            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15963                BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
15964                fidl_fuchsia_posix::Errno,
15965            >, BaseNetworkSocketMarker>(
15966                (),
15967                0x1f26fcdd348f1882,
15968                fidl::encoding::DynamicFlags::empty(),
15969                ___deadline,
15970            )?;
15971        Ok(_response.map(|x| x.value))
15972    }
15973
15974    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
15975    pub fn r#set_ipv6_unicast_hops(
15976        &self,
15977        mut value: &OptionalUint8,
15978        ___deadline: zx::MonotonicInstant,
15979    ) -> Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error> {
15980        let _response = self.client.send_query::<
15981            BaseNetworkSocketSetIpv6UnicastHopsRequest,
15982            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15983            BaseNetworkSocketMarker,
15984        >(
15985            (value,),
15986            0x157d51e98f462859,
15987            fidl::encoding::DynamicFlags::empty(),
15988            ___deadline,
15989        )?;
15990        Ok(_response.map(|x| x))
15991    }
15992
15993    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
15994    pub fn r#get_ipv6_unicast_hops(
15995        &self,
15996        ___deadline: zx::MonotonicInstant,
15997    ) -> Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error> {
15998        let _response =
15999            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
16000                BaseNetworkSocketGetIpv6UnicastHopsResponse,
16001                fidl_fuchsia_posix::Errno,
16002            >, BaseNetworkSocketMarker>(
16003                (),
16004                0x21f4641cad8bd8d2,
16005                fidl::encoding::DynamicFlags::empty(),
16006                ___deadline,
16007            )?;
16008        Ok(_response.map(|x| x.value))
16009    }
16010
16011    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
16012    pub fn r#set_ipv6_receive_hop_limit(
16013        &self,
16014        mut value: bool,
16015        ___deadline: zx::MonotonicInstant,
16016    ) -> Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error> {
16017        let _response = self.client.send_query::<
16018            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
16019            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
16020            BaseNetworkSocketMarker,
16021        >(
16022            (value,),
16023            0x5c24808ed2e84a1e,
16024            fidl::encoding::DynamicFlags::empty(),
16025            ___deadline,
16026        )?;
16027        Ok(_response.map(|x| x))
16028    }
16029
16030    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
16031    pub fn r#get_ipv6_receive_hop_limit(
16032        &self,
16033        ___deadline: zx::MonotonicInstant,
16034    ) -> Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error> {
16035        let _response =
16036            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
16037                BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
16038                fidl_fuchsia_posix::Errno,
16039            >, BaseNetworkSocketMarker>(
16040                (),
16041                0x341e06689885b4c0,
16042                fidl::encoding::DynamicFlags::empty(),
16043                ___deadline,
16044            )?;
16045        Ok(_response.map(|x| x.value))
16046    }
16047
16048    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
16049    pub fn r#set_ipv6_multicast_hops(
16050        &self,
16051        mut value: &OptionalUint8,
16052        ___deadline: zx::MonotonicInstant,
16053    ) -> Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error> {
16054        let _response = self.client.send_query::<
16055            BaseNetworkSocketSetIpv6MulticastHopsRequest,
16056            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
16057            BaseNetworkSocketMarker,
16058        >(
16059            (value,),
16060            0x25b9cd4d181f82c1,
16061            fidl::encoding::DynamicFlags::empty(),
16062            ___deadline,
16063        )?;
16064        Ok(_response.map(|x| x))
16065    }
16066
16067    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
16068    pub fn r#get_ipv6_multicast_hops(
16069        &self,
16070        ___deadline: zx::MonotonicInstant,
16071    ) -> Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error> {
16072        let _response =
16073            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
16074                BaseNetworkSocketGetIpv6MulticastHopsResponse,
16075                fidl_fuchsia_posix::Errno,
16076            >, BaseNetworkSocketMarker>(
16077                (),
16078                0x52916948a365012a,
16079                fidl::encoding::DynamicFlags::empty(),
16080                ___deadline,
16081            )?;
16082        Ok(_response.map(|x| x.value))
16083    }
16084
16085    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
16086    pub fn r#set_ipv6_multicast_loopback(
16087        &self,
16088        mut value: bool,
16089        ___deadline: zx::MonotonicInstant,
16090    ) -> Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error> {
16091        let _response = self.client.send_query::<
16092            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
16093            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
16094            BaseNetworkSocketMarker,
16095        >(
16096            (value,),
16097            0x55701c409ff41b40,
16098            fidl::encoding::DynamicFlags::empty(),
16099            ___deadline,
16100        )?;
16101        Ok(_response.map(|x| x))
16102    }
16103
16104    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
16105    pub fn r#get_ipv6_multicast_loopback(
16106        &self,
16107        ___deadline: zx::MonotonicInstant,
16108    ) -> Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error> {
16109        let _response =
16110            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
16111                BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
16112                fidl_fuchsia_posix::Errno,
16113            >, BaseNetworkSocketMarker>(
16114                (),
16115                0x4415b701fde319c3,
16116                fidl::encoding::DynamicFlags::empty(),
16117                ___deadline,
16118            )?;
16119        Ok(_response.map(|x| x.value))
16120    }
16121
16122    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
16123    pub fn r#set_ipv6_only(
16124        &self,
16125        mut value: bool,
16126        ___deadline: zx::MonotonicInstant,
16127    ) -> Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error> {
16128        let _response =
16129            self.client
16130                .send_query::<BaseNetworkSocketSetIpv6OnlyRequest, fidl::encoding::ResultType<
16131                    fidl::encoding::EmptyStruct,
16132                    fidl_fuchsia_posix::Errno,
16133                >, BaseNetworkSocketMarker>(
16134                    (value,),
16135                    0x4873f1364758cbba,
16136                    fidl::encoding::DynamicFlags::empty(),
16137                    ___deadline,
16138                )?;
16139        Ok(_response.map(|x| x))
16140    }
16141
16142    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
16143    pub fn r#get_ipv6_only(
16144        &self,
16145        ___deadline: zx::MonotonicInstant,
16146    ) -> Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error> {
16147        let _response =
16148            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
16149                BaseNetworkSocketGetIpv6OnlyResponse,
16150                fidl_fuchsia_posix::Errno,
16151            >, BaseNetworkSocketMarker>(
16152                (),
16153                0x4aa3340a1a26b89c,
16154                fidl::encoding::DynamicFlags::empty(),
16155                ___deadline,
16156            )?;
16157        Ok(_response.map(|x| x.value))
16158    }
16159
16160    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
16161    pub fn r#set_ipv6_receive_traffic_class(
16162        &self,
16163        mut value: bool,
16164        ___deadline: zx::MonotonicInstant,
16165    ) -> Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error> {
16166        let _response = self.client.send_query::<
16167            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
16168            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
16169            BaseNetworkSocketMarker,
16170        >(
16171            (value,),
16172            0x58f07c8788d099a0,
16173            fidl::encoding::DynamicFlags::empty(),
16174            ___deadline,
16175        )?;
16176        Ok(_response.map(|x| x))
16177    }
16178
16179    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
16180    pub fn r#get_ipv6_receive_traffic_class(
16181        &self,
16182        ___deadline: zx::MonotonicInstant,
16183    ) -> Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error> {
16184        let _response =
16185            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
16186                BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
16187                fidl_fuchsia_posix::Errno,
16188            >, BaseNetworkSocketMarker>(
16189                (),
16190                0x2e334df1da553ffa,
16191                fidl::encoding::DynamicFlags::empty(),
16192                ___deadline,
16193            )?;
16194        Ok(_response.map(|x| x.value))
16195    }
16196
16197    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
16198    pub fn r#set_ipv6_traffic_class(
16199        &self,
16200        mut value: &OptionalUint8,
16201        ___deadline: zx::MonotonicInstant,
16202    ) -> Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error> {
16203        let _response = self.client.send_query::<
16204            BaseNetworkSocketSetIpv6TrafficClassRequest,
16205            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
16206            BaseNetworkSocketMarker,
16207        >(
16208            (value,),
16209            0x6af077800c5a0b4f,
16210            fidl::encoding::DynamicFlags::empty(),
16211            ___deadline,
16212        )?;
16213        Ok(_response.map(|x| x))
16214    }
16215
16216    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
16217    pub fn r#get_ipv6_traffic_class(
16218        &self,
16219        ___deadline: zx::MonotonicInstant,
16220    ) -> Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error> {
16221        let _response =
16222            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
16223                BaseNetworkSocketGetIpv6TrafficClassResponse,
16224                fidl_fuchsia_posix::Errno,
16225            >, BaseNetworkSocketMarker>(
16226                (),
16227                0x6baf6eed8fc2f04,
16228                fidl::encoding::DynamicFlags::empty(),
16229                ___deadline,
16230            )?;
16231        Ok(_response.map(|x| x.value))
16232    }
16233
16234    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
16235    pub fn r#set_ipv6_receive_packet_info(
16236        &self,
16237        mut value: bool,
16238        ___deadline: zx::MonotonicInstant,
16239    ) -> Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error> {
16240        let _response = self.client.send_query::<
16241            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
16242            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
16243            BaseNetworkSocketMarker,
16244        >(
16245            (value,),
16246            0x19259775b1a92768,
16247            fidl::encoding::DynamicFlags::empty(),
16248            ___deadline,
16249        )?;
16250        Ok(_response.map(|x| x))
16251    }
16252
16253    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
16254    pub fn r#get_ipv6_receive_packet_info(
16255        &self,
16256        ___deadline: zx::MonotonicInstant,
16257    ) -> Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error> {
16258        let _response =
16259            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
16260                BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
16261                fidl_fuchsia_posix::Errno,
16262            >, BaseNetworkSocketMarker>(
16263                (),
16264                0x7acd4a2775baec75,
16265                fidl::encoding::DynamicFlags::empty(),
16266                ___deadline,
16267            )?;
16268        Ok(_response.map(|x| x.value))
16269    }
16270
16271    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
16272    pub fn r#get_original_destination(
16273        &self,
16274        ___deadline: zx::MonotonicInstant,
16275    ) -> Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error> {
16276        let _response =
16277            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
16278                BaseNetworkSocketGetOriginalDestinationResponse,
16279                fidl_fuchsia_posix::Errno,
16280            >, BaseNetworkSocketMarker>(
16281                (),
16282                0x38bf28f0dafdbac0,
16283                fidl::encoding::DynamicFlags::empty(),
16284                ___deadline,
16285            )?;
16286        Ok(_response.map(|x| x.value))
16287    }
16288}
16289
16290#[cfg(target_os = "fuchsia")]
16291impl From<BaseNetworkSocketSynchronousProxy> for zx::NullableHandle {
16292    fn from(value: BaseNetworkSocketSynchronousProxy) -> Self {
16293        value.into_channel().into()
16294    }
16295}
16296
16297#[cfg(target_os = "fuchsia")]
16298impl From<fidl::Channel> for BaseNetworkSocketSynchronousProxy {
16299    fn from(value: fidl::Channel) -> Self {
16300        Self::new(value)
16301    }
16302}
16303
16304#[cfg(target_os = "fuchsia")]
16305impl fidl::endpoints::FromClient for BaseNetworkSocketSynchronousProxy {
16306    type Protocol = BaseNetworkSocketMarker;
16307
16308    fn from_client(value: fidl::endpoints::ClientEnd<BaseNetworkSocketMarker>) -> Self {
16309        Self::new(value.into_channel())
16310    }
16311}
16312
16313#[derive(Debug, Clone)]
16314pub struct BaseNetworkSocketProxy {
16315    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
16316}
16317
16318impl fidl::endpoints::Proxy for BaseNetworkSocketProxy {
16319    type Protocol = BaseNetworkSocketMarker;
16320
16321    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
16322        Self::new(inner)
16323    }
16324
16325    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
16326        self.client.into_channel().map_err(|client| Self { client })
16327    }
16328
16329    fn as_channel(&self) -> &::fidl::AsyncChannel {
16330        self.client.as_channel()
16331    }
16332}
16333
16334impl BaseNetworkSocketProxy {
16335    /// Create a new Proxy for fuchsia.posix.socket/BaseNetworkSocket.
16336    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
16337        let protocol_name =
16338            <BaseNetworkSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
16339        Self { client: fidl::client::Client::new(channel, protocol_name) }
16340    }
16341
16342    /// Get a Stream of events from the remote end of the protocol.
16343    ///
16344    /// # Panics
16345    ///
16346    /// Panics if the event stream was already taken.
16347    pub fn take_event_stream(&self) -> BaseNetworkSocketEventStream {
16348        BaseNetworkSocketEventStream { event_receiver: self.client.take_event_receiver() }
16349    }
16350
16351    pub fn r#clone(
16352        &self,
16353        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
16354    ) -> Result<(), fidl::Error> {
16355        BaseNetworkSocketProxyInterface::r#clone(self, request)
16356    }
16357
16358    /// Terminates the connection.
16359    ///
16360    /// After calling `Close`, the client must not send any other requests.
16361    ///
16362    /// Servers, after sending the status response, should close the connection
16363    /// regardless of status and without sending an epitaph.
16364    ///
16365    /// Closing the client end of the channel should be semantically equivalent
16366    /// to calling `Close` without knowing when the close has completed or its
16367    /// status.
16368    pub fn r#close(
16369        &self,
16370    ) -> fidl::client::QueryResponseFut<
16371        fidl_fuchsia_unknown::CloseableCloseResult,
16372        fidl::encoding::DefaultFuchsiaResourceDialect,
16373    > {
16374        BaseNetworkSocketProxyInterface::r#close(self)
16375    }
16376
16377    pub fn r#query(
16378        &self,
16379    ) -> fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>
16380    {
16381        BaseNetworkSocketProxyInterface::r#query(self)
16382    }
16383
16384    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
16385    pub fn r#set_reuse_address(
16386        &self,
16387        mut value: bool,
16388    ) -> fidl::client::QueryResponseFut<
16389        BaseSocketSetReuseAddressResult,
16390        fidl::encoding::DefaultFuchsiaResourceDialect,
16391    > {
16392        BaseNetworkSocketProxyInterface::r#set_reuse_address(self, value)
16393    }
16394
16395    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
16396    pub fn r#get_reuse_address(
16397        &self,
16398    ) -> fidl::client::QueryResponseFut<
16399        BaseSocketGetReuseAddressResult,
16400        fidl::encoding::DefaultFuchsiaResourceDialect,
16401    > {
16402        BaseNetworkSocketProxyInterface::r#get_reuse_address(self)
16403    }
16404
16405    /// Get `SOL_SOCKET` -> `SO_ERROR`.
16406    /// Returns the last error if there is an error set on the socket.
16407    pub fn r#get_error(
16408        &self,
16409    ) -> fidl::client::QueryResponseFut<
16410        BaseSocketGetErrorResult,
16411        fidl::encoding::DefaultFuchsiaResourceDialect,
16412    > {
16413        BaseNetworkSocketProxyInterface::r#get_error(self)
16414    }
16415
16416    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
16417    pub fn r#set_broadcast(
16418        &self,
16419        mut value: bool,
16420    ) -> fidl::client::QueryResponseFut<
16421        BaseSocketSetBroadcastResult,
16422        fidl::encoding::DefaultFuchsiaResourceDialect,
16423    > {
16424        BaseNetworkSocketProxyInterface::r#set_broadcast(self, value)
16425    }
16426
16427    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
16428    pub fn r#get_broadcast(
16429        &self,
16430    ) -> fidl::client::QueryResponseFut<
16431        BaseSocketGetBroadcastResult,
16432        fidl::encoding::DefaultFuchsiaResourceDialect,
16433    > {
16434        BaseNetworkSocketProxyInterface::r#get_broadcast(self)
16435    }
16436
16437    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
16438    pub fn r#set_send_buffer(
16439        &self,
16440        mut value_bytes: u64,
16441    ) -> fidl::client::QueryResponseFut<
16442        BaseSocketSetSendBufferResult,
16443        fidl::encoding::DefaultFuchsiaResourceDialect,
16444    > {
16445        BaseNetworkSocketProxyInterface::r#set_send_buffer(self, value_bytes)
16446    }
16447
16448    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
16449    pub fn r#get_send_buffer(
16450        &self,
16451    ) -> fidl::client::QueryResponseFut<
16452        BaseSocketGetSendBufferResult,
16453        fidl::encoding::DefaultFuchsiaResourceDialect,
16454    > {
16455        BaseNetworkSocketProxyInterface::r#get_send_buffer(self)
16456    }
16457
16458    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
16459    pub fn r#set_receive_buffer(
16460        &self,
16461        mut value_bytes: u64,
16462    ) -> fidl::client::QueryResponseFut<
16463        BaseSocketSetReceiveBufferResult,
16464        fidl::encoding::DefaultFuchsiaResourceDialect,
16465    > {
16466        BaseNetworkSocketProxyInterface::r#set_receive_buffer(self, value_bytes)
16467    }
16468
16469    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
16470    pub fn r#get_receive_buffer(
16471        &self,
16472    ) -> fidl::client::QueryResponseFut<
16473        BaseSocketGetReceiveBufferResult,
16474        fidl::encoding::DefaultFuchsiaResourceDialect,
16475    > {
16476        BaseNetworkSocketProxyInterface::r#get_receive_buffer(self)
16477    }
16478
16479    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
16480    pub fn r#set_keep_alive(
16481        &self,
16482        mut value: bool,
16483    ) -> fidl::client::QueryResponseFut<
16484        BaseSocketSetKeepAliveResult,
16485        fidl::encoding::DefaultFuchsiaResourceDialect,
16486    > {
16487        BaseNetworkSocketProxyInterface::r#set_keep_alive(self, value)
16488    }
16489
16490    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
16491    pub fn r#get_keep_alive(
16492        &self,
16493    ) -> fidl::client::QueryResponseFut<
16494        BaseSocketGetKeepAliveResult,
16495        fidl::encoding::DefaultFuchsiaResourceDialect,
16496    > {
16497        BaseNetworkSocketProxyInterface::r#get_keep_alive(self)
16498    }
16499
16500    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
16501    pub fn r#set_out_of_band_inline(
16502        &self,
16503        mut value: bool,
16504    ) -> fidl::client::QueryResponseFut<
16505        BaseSocketSetOutOfBandInlineResult,
16506        fidl::encoding::DefaultFuchsiaResourceDialect,
16507    > {
16508        BaseNetworkSocketProxyInterface::r#set_out_of_band_inline(self, value)
16509    }
16510
16511    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
16512    pub fn r#get_out_of_band_inline(
16513        &self,
16514    ) -> fidl::client::QueryResponseFut<
16515        BaseSocketGetOutOfBandInlineResult,
16516        fidl::encoding::DefaultFuchsiaResourceDialect,
16517    > {
16518        BaseNetworkSocketProxyInterface::r#get_out_of_band_inline(self)
16519    }
16520
16521    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
16522    pub fn r#set_no_check(
16523        &self,
16524        mut value: bool,
16525    ) -> fidl::client::QueryResponseFut<
16526        BaseSocketSetNoCheckResult,
16527        fidl::encoding::DefaultFuchsiaResourceDialect,
16528    > {
16529        BaseNetworkSocketProxyInterface::r#set_no_check(self, value)
16530    }
16531
16532    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
16533    pub fn r#get_no_check(
16534        &self,
16535    ) -> fidl::client::QueryResponseFut<
16536        BaseSocketGetNoCheckResult,
16537        fidl::encoding::DefaultFuchsiaResourceDialect,
16538    > {
16539        BaseNetworkSocketProxyInterface::r#get_no_check(self)
16540    }
16541
16542    /// Set `SOL_SOCKET` -> `SO_LINGER`.
16543    pub fn r#set_linger(
16544        &self,
16545        mut linger: bool,
16546        mut length_secs: u32,
16547    ) -> fidl::client::QueryResponseFut<
16548        BaseSocketSetLingerResult,
16549        fidl::encoding::DefaultFuchsiaResourceDialect,
16550    > {
16551        BaseNetworkSocketProxyInterface::r#set_linger(self, linger, length_secs)
16552    }
16553
16554    /// Get `SOL_SOCKET` -> `SO_LINGER`.
16555    pub fn r#get_linger(
16556        &self,
16557    ) -> fidl::client::QueryResponseFut<
16558        BaseSocketGetLingerResult,
16559        fidl::encoding::DefaultFuchsiaResourceDialect,
16560    > {
16561        BaseNetworkSocketProxyInterface::r#get_linger(self)
16562    }
16563
16564    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
16565    pub fn r#set_reuse_port(
16566        &self,
16567        mut value: ReusePortOption,
16568    ) -> fidl::client::QueryResponseFut<
16569        BaseSocketSetReusePortResult,
16570        fidl::encoding::DefaultFuchsiaResourceDialect,
16571    > {
16572        BaseNetworkSocketProxyInterface::r#set_reuse_port(self, value)
16573    }
16574
16575    pub fn r#set_reuse_port_deprecated(
16576        &self,
16577        mut value: bool,
16578    ) -> fidl::client::QueryResponseFut<
16579        BaseSocketSetReusePortDeprecatedResult,
16580        fidl::encoding::DefaultFuchsiaResourceDialect,
16581    > {
16582        BaseNetworkSocketProxyInterface::r#set_reuse_port_deprecated(self, value)
16583    }
16584
16585    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
16586    pub fn r#get_reuse_port(
16587        &self,
16588    ) -> fidl::client::QueryResponseFut<
16589        BaseSocketGetReusePortResult,
16590        fidl::encoding::DefaultFuchsiaResourceDialect,
16591    > {
16592        BaseNetworkSocketProxyInterface::r#get_reuse_port(self)
16593    }
16594
16595    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
16596    pub fn r#get_accept_conn(
16597        &self,
16598    ) -> fidl::client::QueryResponseFut<
16599        BaseSocketGetAcceptConnResult,
16600        fidl::encoding::DefaultFuchsiaResourceDialect,
16601    > {
16602        BaseNetworkSocketProxyInterface::r#get_accept_conn(self)
16603    }
16604
16605    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
16606    pub fn r#set_bind_to_device(
16607        &self,
16608        mut value: &str,
16609    ) -> fidl::client::QueryResponseFut<
16610        BaseSocketSetBindToDeviceResult,
16611        fidl::encoding::DefaultFuchsiaResourceDialect,
16612    > {
16613        BaseNetworkSocketProxyInterface::r#set_bind_to_device(self, value)
16614    }
16615
16616    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
16617    pub fn r#get_bind_to_device(
16618        &self,
16619    ) -> fidl::client::QueryResponseFut<
16620        BaseSocketGetBindToDeviceResult,
16621        fidl::encoding::DefaultFuchsiaResourceDialect,
16622    > {
16623        BaseNetworkSocketProxyInterface::r#get_bind_to_device(self)
16624    }
16625
16626    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
16627    /// If `value` is 0, this clears the bound interface.
16628    pub fn r#set_bind_to_interface_index(
16629        &self,
16630        mut value: u64,
16631    ) -> fidl::client::QueryResponseFut<
16632        BaseSocketSetBindToInterfaceIndexResult,
16633        fidl::encoding::DefaultFuchsiaResourceDialect,
16634    > {
16635        BaseNetworkSocketProxyInterface::r#set_bind_to_interface_index(self, value)
16636    }
16637
16638    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
16639    pub fn r#get_bind_to_interface_index(
16640        &self,
16641    ) -> fidl::client::QueryResponseFut<
16642        BaseSocketGetBindToInterfaceIndexResult,
16643        fidl::encoding::DefaultFuchsiaResourceDialect,
16644    > {
16645        BaseNetworkSocketProxyInterface::r#get_bind_to_interface_index(self)
16646    }
16647
16648    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
16649    pub fn r#set_timestamp(
16650        &self,
16651        mut value: TimestampOption,
16652    ) -> fidl::client::QueryResponseFut<
16653        BaseSocketSetTimestampResult,
16654        fidl::encoding::DefaultFuchsiaResourceDialect,
16655    > {
16656        BaseNetworkSocketProxyInterface::r#set_timestamp(self, value)
16657    }
16658
16659    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
16660    pub fn r#get_timestamp(
16661        &self,
16662    ) -> fidl::client::QueryResponseFut<
16663        BaseSocketGetTimestampResult,
16664        fidl::encoding::DefaultFuchsiaResourceDialect,
16665    > {
16666        BaseNetworkSocketProxyInterface::r#get_timestamp(self)
16667    }
16668
16669    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
16670    /// unlike the standard SO_MARK, this API has multiple mark domains and each
16671    /// mark can be set independently in each domain.
16672    pub fn r#set_mark(
16673        &self,
16674        mut domain: fidl_fuchsia_net::MarkDomain,
16675        mut mark: &OptionalUint32,
16676    ) -> fidl::client::QueryResponseFut<
16677        BaseSocketSetMarkResult,
16678        fidl::encoding::DefaultFuchsiaResourceDialect,
16679    > {
16680        BaseNetworkSocketProxyInterface::r#set_mark(self, domain, mark)
16681    }
16682
16683    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
16684    /// unlike the standard SO_MARK, this API has multiple mark domains and each
16685    /// mark can be retrieved independently in each domain.
16686    pub fn r#get_mark(
16687        &self,
16688        mut domain: fidl_fuchsia_net::MarkDomain,
16689    ) -> fidl::client::QueryResponseFut<
16690        BaseSocketGetMarkResult,
16691        fidl::encoding::DefaultFuchsiaResourceDialect,
16692    > {
16693        BaseNetworkSocketProxyInterface::r#get_mark(self, domain)
16694    }
16695
16696    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
16697    pub fn r#get_cookie(
16698        &self,
16699    ) -> fidl::client::QueryResponseFut<
16700        BaseSocketGetCookieResult,
16701        fidl::encoding::DefaultFuchsiaResourceDialect,
16702    > {
16703        BaseNetworkSocketProxyInterface::r#get_cookie(self)
16704    }
16705
16706    /// Sets the local address used for the socket.
16707    pub fn r#bind(
16708        &self,
16709        mut addr: &fidl_fuchsia_net::SocketAddress,
16710    ) -> fidl::client::QueryResponseFut<
16711        BaseNetworkSocketBindResult,
16712        fidl::encoding::DefaultFuchsiaResourceDialect,
16713    > {
16714        BaseNetworkSocketProxyInterface::r#bind(self, addr)
16715    }
16716
16717    /// Initiates a connection to a remote address.
16718    pub fn r#connect(
16719        &self,
16720        mut addr: &fidl_fuchsia_net::SocketAddress,
16721    ) -> fidl::client::QueryResponseFut<
16722        BaseNetworkSocketConnectResult,
16723        fidl::encoding::DefaultFuchsiaResourceDialect,
16724    > {
16725        BaseNetworkSocketProxyInterface::r#connect(self, addr)
16726    }
16727
16728    /// Clears connection information from this socket.
16729    pub fn r#disconnect(
16730        &self,
16731    ) -> fidl::client::QueryResponseFut<
16732        BaseNetworkSocketDisconnectResult,
16733        fidl::encoding::DefaultFuchsiaResourceDialect,
16734    > {
16735        BaseNetworkSocketProxyInterface::r#disconnect(self)
16736    }
16737
16738    /// Retrieves the local socket address.
16739    pub fn r#get_sock_name(
16740        &self,
16741    ) -> fidl::client::QueryResponseFut<
16742        BaseNetworkSocketGetSockNameResult,
16743        fidl::encoding::DefaultFuchsiaResourceDialect,
16744    > {
16745        BaseNetworkSocketProxyInterface::r#get_sock_name(self)
16746    }
16747
16748    /// Retrieves the remote socket address.
16749    pub fn r#get_peer_name(
16750        &self,
16751    ) -> fidl::client::QueryResponseFut<
16752        BaseNetworkSocketGetPeerNameResult,
16753        fidl::encoding::DefaultFuchsiaResourceDialect,
16754    > {
16755        BaseNetworkSocketProxyInterface::r#get_peer_name(self)
16756    }
16757
16758    /// Shuts down part of the socket.
16759    pub fn r#shutdown(
16760        &self,
16761        mut mode: ShutdownMode,
16762    ) -> fidl::client::QueryResponseFut<
16763        BaseNetworkSocketShutdownResult,
16764        fidl::encoding::DefaultFuchsiaResourceDialect,
16765    > {
16766        BaseNetworkSocketProxyInterface::r#shutdown(self, mode)
16767    }
16768
16769    /// Set `SOL_IP` -> `IP_TOS`.
16770    pub fn r#set_ip_type_of_service(
16771        &self,
16772        mut value: u8,
16773    ) -> fidl::client::QueryResponseFut<
16774        BaseNetworkSocketSetIpTypeOfServiceResult,
16775        fidl::encoding::DefaultFuchsiaResourceDialect,
16776    > {
16777        BaseNetworkSocketProxyInterface::r#set_ip_type_of_service(self, value)
16778    }
16779
16780    /// Get `SOL_IP` -> `IP_TOS`.
16781    pub fn r#get_ip_type_of_service(
16782        &self,
16783    ) -> fidl::client::QueryResponseFut<
16784        BaseNetworkSocketGetIpTypeOfServiceResult,
16785        fidl::encoding::DefaultFuchsiaResourceDialect,
16786    > {
16787        BaseNetworkSocketProxyInterface::r#get_ip_type_of_service(self)
16788    }
16789
16790    /// Set `SOL_IP` -> `IP_TTL`.
16791    pub fn r#set_ip_ttl(
16792        &self,
16793        mut value: &OptionalUint8,
16794    ) -> fidl::client::QueryResponseFut<
16795        BaseNetworkSocketSetIpTtlResult,
16796        fidl::encoding::DefaultFuchsiaResourceDialect,
16797    > {
16798        BaseNetworkSocketProxyInterface::r#set_ip_ttl(self, value)
16799    }
16800
16801    /// Get `SOL_IP` -> `IP_TTL`.
16802    pub fn r#get_ip_ttl(
16803        &self,
16804    ) -> fidl::client::QueryResponseFut<
16805        BaseNetworkSocketGetIpTtlResult,
16806        fidl::encoding::DefaultFuchsiaResourceDialect,
16807    > {
16808        BaseNetworkSocketProxyInterface::r#get_ip_ttl(self)
16809    }
16810
16811    /// Set `SOL_IP` -> `IP_PKTINFO`.
16812    pub fn r#set_ip_packet_info(
16813        &self,
16814        mut value: bool,
16815    ) -> fidl::client::QueryResponseFut<
16816        BaseNetworkSocketSetIpPacketInfoResult,
16817        fidl::encoding::DefaultFuchsiaResourceDialect,
16818    > {
16819        BaseNetworkSocketProxyInterface::r#set_ip_packet_info(self, value)
16820    }
16821
16822    /// Get `SOL_IP` -> `IP_PKTINFO`.
16823    pub fn r#get_ip_packet_info(
16824        &self,
16825    ) -> fidl::client::QueryResponseFut<
16826        BaseNetworkSocketGetIpPacketInfoResult,
16827        fidl::encoding::DefaultFuchsiaResourceDialect,
16828    > {
16829        BaseNetworkSocketProxyInterface::r#get_ip_packet_info(self)
16830    }
16831
16832    /// Set `SOL_IP` -> `IP_RECVTOS`.
16833    pub fn r#set_ip_receive_type_of_service(
16834        &self,
16835        mut value: bool,
16836    ) -> fidl::client::QueryResponseFut<
16837        BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
16838        fidl::encoding::DefaultFuchsiaResourceDialect,
16839    > {
16840        BaseNetworkSocketProxyInterface::r#set_ip_receive_type_of_service(self, value)
16841    }
16842
16843    /// Get `SOL_IP` -> `IP_RECVTOS`.
16844    pub fn r#get_ip_receive_type_of_service(
16845        &self,
16846    ) -> fidl::client::QueryResponseFut<
16847        BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
16848        fidl::encoding::DefaultFuchsiaResourceDialect,
16849    > {
16850        BaseNetworkSocketProxyInterface::r#get_ip_receive_type_of_service(self)
16851    }
16852
16853    /// Set `SOL_IP` -> `IP_RECVTTL`.
16854    pub fn r#set_ip_receive_ttl(
16855        &self,
16856        mut value: bool,
16857    ) -> fidl::client::QueryResponseFut<
16858        BaseNetworkSocketSetIpReceiveTtlResult,
16859        fidl::encoding::DefaultFuchsiaResourceDialect,
16860    > {
16861        BaseNetworkSocketProxyInterface::r#set_ip_receive_ttl(self, value)
16862    }
16863
16864    /// Get `SOL_IP` -> `IP_RECVTTL`.
16865    pub fn r#get_ip_receive_ttl(
16866        &self,
16867    ) -> fidl::client::QueryResponseFut<
16868        BaseNetworkSocketGetIpReceiveTtlResult,
16869        fidl::encoding::DefaultFuchsiaResourceDialect,
16870    > {
16871        BaseNetworkSocketProxyInterface::r#get_ip_receive_ttl(self)
16872    }
16873
16874    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
16875    pub fn r#set_ip_multicast_interface(
16876        &self,
16877        mut iface: u64,
16878        mut address: &fidl_fuchsia_net::Ipv4Address,
16879    ) -> fidl::client::QueryResponseFut<
16880        BaseNetworkSocketSetIpMulticastInterfaceResult,
16881        fidl::encoding::DefaultFuchsiaResourceDialect,
16882    > {
16883        BaseNetworkSocketProxyInterface::r#set_ip_multicast_interface(self, iface, address)
16884    }
16885
16886    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
16887    pub fn r#get_ip_multicast_interface(
16888        &self,
16889    ) -> fidl::client::QueryResponseFut<
16890        BaseNetworkSocketGetIpMulticastInterfaceResult,
16891        fidl::encoding::DefaultFuchsiaResourceDialect,
16892    > {
16893        BaseNetworkSocketProxyInterface::r#get_ip_multicast_interface(self)
16894    }
16895
16896    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
16897    pub fn r#set_ip_multicast_ttl(
16898        &self,
16899        mut value: &OptionalUint8,
16900    ) -> fidl::client::QueryResponseFut<
16901        BaseNetworkSocketSetIpMulticastTtlResult,
16902        fidl::encoding::DefaultFuchsiaResourceDialect,
16903    > {
16904        BaseNetworkSocketProxyInterface::r#set_ip_multicast_ttl(self, value)
16905    }
16906
16907    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
16908    pub fn r#get_ip_multicast_ttl(
16909        &self,
16910    ) -> fidl::client::QueryResponseFut<
16911        BaseNetworkSocketGetIpMulticastTtlResult,
16912        fidl::encoding::DefaultFuchsiaResourceDialect,
16913    > {
16914        BaseNetworkSocketProxyInterface::r#get_ip_multicast_ttl(self)
16915    }
16916
16917    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
16918    pub fn r#set_ip_multicast_loopback(
16919        &self,
16920        mut value: bool,
16921    ) -> fidl::client::QueryResponseFut<
16922        BaseNetworkSocketSetIpMulticastLoopbackResult,
16923        fidl::encoding::DefaultFuchsiaResourceDialect,
16924    > {
16925        BaseNetworkSocketProxyInterface::r#set_ip_multicast_loopback(self, value)
16926    }
16927
16928    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
16929    pub fn r#get_ip_multicast_loopback(
16930        &self,
16931    ) -> fidl::client::QueryResponseFut<
16932        BaseNetworkSocketGetIpMulticastLoopbackResult,
16933        fidl::encoding::DefaultFuchsiaResourceDialect,
16934    > {
16935        BaseNetworkSocketProxyInterface::r#get_ip_multicast_loopback(self)
16936    }
16937
16938    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
16939    pub fn r#add_ip_membership(
16940        &self,
16941        mut membership: &IpMulticastMembership,
16942    ) -> fidl::client::QueryResponseFut<
16943        BaseNetworkSocketAddIpMembershipResult,
16944        fidl::encoding::DefaultFuchsiaResourceDialect,
16945    > {
16946        BaseNetworkSocketProxyInterface::r#add_ip_membership(self, membership)
16947    }
16948
16949    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
16950    pub fn r#drop_ip_membership(
16951        &self,
16952        mut membership: &IpMulticastMembership,
16953    ) -> fidl::client::QueryResponseFut<
16954        BaseNetworkSocketDropIpMembershipResult,
16955        fidl::encoding::DefaultFuchsiaResourceDialect,
16956    > {
16957        BaseNetworkSocketProxyInterface::r#drop_ip_membership(self, membership)
16958    }
16959
16960    /// Set `SOL_IP` -> `IP_TRANSPARENT`
16961    pub fn r#set_ip_transparent(
16962        &self,
16963        mut value: bool,
16964    ) -> fidl::client::QueryResponseFut<
16965        BaseNetworkSocketSetIpTransparentResult,
16966        fidl::encoding::DefaultFuchsiaResourceDialect,
16967    > {
16968        BaseNetworkSocketProxyInterface::r#set_ip_transparent(self, value)
16969    }
16970
16971    /// Get `SOL_IP` -> `IP_TRANSPARENT`
16972    pub fn r#get_ip_transparent(
16973        &self,
16974    ) -> fidl::client::QueryResponseFut<
16975        BaseNetworkSocketGetIpTransparentResult,
16976        fidl::encoding::DefaultFuchsiaResourceDialect,
16977    > {
16978        BaseNetworkSocketProxyInterface::r#get_ip_transparent(self)
16979    }
16980
16981    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
16982    pub fn r#set_ip_receive_original_destination_address(
16983        &self,
16984        mut value: bool,
16985    ) -> fidl::client::QueryResponseFut<
16986        BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
16987        fidl::encoding::DefaultFuchsiaResourceDialect,
16988    > {
16989        BaseNetworkSocketProxyInterface::r#set_ip_receive_original_destination_address(self, value)
16990    }
16991
16992    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
16993    pub fn r#get_ip_receive_original_destination_address(
16994        &self,
16995    ) -> fidl::client::QueryResponseFut<
16996        BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
16997        fidl::encoding::DefaultFuchsiaResourceDialect,
16998    > {
16999        BaseNetworkSocketProxyInterface::r#get_ip_receive_original_destination_address(self)
17000    }
17001
17002    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
17003    pub fn r#add_ipv6_membership(
17004        &self,
17005        mut membership: &Ipv6MulticastMembership,
17006    ) -> fidl::client::QueryResponseFut<
17007        BaseNetworkSocketAddIpv6MembershipResult,
17008        fidl::encoding::DefaultFuchsiaResourceDialect,
17009    > {
17010        BaseNetworkSocketProxyInterface::r#add_ipv6_membership(self, membership)
17011    }
17012
17013    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
17014    pub fn r#drop_ipv6_membership(
17015        &self,
17016        mut membership: &Ipv6MulticastMembership,
17017    ) -> fidl::client::QueryResponseFut<
17018        BaseNetworkSocketDropIpv6MembershipResult,
17019        fidl::encoding::DefaultFuchsiaResourceDialect,
17020    > {
17021        BaseNetworkSocketProxyInterface::r#drop_ipv6_membership(self, membership)
17022    }
17023
17024    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
17025    pub fn r#set_ipv6_multicast_interface(
17026        &self,
17027        mut value: u64,
17028    ) -> fidl::client::QueryResponseFut<
17029        BaseNetworkSocketSetIpv6MulticastInterfaceResult,
17030        fidl::encoding::DefaultFuchsiaResourceDialect,
17031    > {
17032        BaseNetworkSocketProxyInterface::r#set_ipv6_multicast_interface(self, value)
17033    }
17034
17035    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
17036    pub fn r#get_ipv6_multicast_interface(
17037        &self,
17038    ) -> fidl::client::QueryResponseFut<
17039        BaseNetworkSocketGetIpv6MulticastInterfaceResult,
17040        fidl::encoding::DefaultFuchsiaResourceDialect,
17041    > {
17042        BaseNetworkSocketProxyInterface::r#get_ipv6_multicast_interface(self)
17043    }
17044
17045    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
17046    pub fn r#set_ipv6_unicast_hops(
17047        &self,
17048        mut value: &OptionalUint8,
17049    ) -> fidl::client::QueryResponseFut<
17050        BaseNetworkSocketSetIpv6UnicastHopsResult,
17051        fidl::encoding::DefaultFuchsiaResourceDialect,
17052    > {
17053        BaseNetworkSocketProxyInterface::r#set_ipv6_unicast_hops(self, value)
17054    }
17055
17056    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
17057    pub fn r#get_ipv6_unicast_hops(
17058        &self,
17059    ) -> fidl::client::QueryResponseFut<
17060        BaseNetworkSocketGetIpv6UnicastHopsResult,
17061        fidl::encoding::DefaultFuchsiaResourceDialect,
17062    > {
17063        BaseNetworkSocketProxyInterface::r#get_ipv6_unicast_hops(self)
17064    }
17065
17066    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
17067    pub fn r#set_ipv6_receive_hop_limit(
17068        &self,
17069        mut value: bool,
17070    ) -> fidl::client::QueryResponseFut<
17071        BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
17072        fidl::encoding::DefaultFuchsiaResourceDialect,
17073    > {
17074        BaseNetworkSocketProxyInterface::r#set_ipv6_receive_hop_limit(self, value)
17075    }
17076
17077    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
17078    pub fn r#get_ipv6_receive_hop_limit(
17079        &self,
17080    ) -> fidl::client::QueryResponseFut<
17081        BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
17082        fidl::encoding::DefaultFuchsiaResourceDialect,
17083    > {
17084        BaseNetworkSocketProxyInterface::r#get_ipv6_receive_hop_limit(self)
17085    }
17086
17087    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
17088    pub fn r#set_ipv6_multicast_hops(
17089        &self,
17090        mut value: &OptionalUint8,
17091    ) -> fidl::client::QueryResponseFut<
17092        BaseNetworkSocketSetIpv6MulticastHopsResult,
17093        fidl::encoding::DefaultFuchsiaResourceDialect,
17094    > {
17095        BaseNetworkSocketProxyInterface::r#set_ipv6_multicast_hops(self, value)
17096    }
17097
17098    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
17099    pub fn r#get_ipv6_multicast_hops(
17100        &self,
17101    ) -> fidl::client::QueryResponseFut<
17102        BaseNetworkSocketGetIpv6MulticastHopsResult,
17103        fidl::encoding::DefaultFuchsiaResourceDialect,
17104    > {
17105        BaseNetworkSocketProxyInterface::r#get_ipv6_multicast_hops(self)
17106    }
17107
17108    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
17109    pub fn r#set_ipv6_multicast_loopback(
17110        &self,
17111        mut value: bool,
17112    ) -> fidl::client::QueryResponseFut<
17113        BaseNetworkSocketSetIpv6MulticastLoopbackResult,
17114        fidl::encoding::DefaultFuchsiaResourceDialect,
17115    > {
17116        BaseNetworkSocketProxyInterface::r#set_ipv6_multicast_loopback(self, value)
17117    }
17118
17119    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
17120    pub fn r#get_ipv6_multicast_loopback(
17121        &self,
17122    ) -> fidl::client::QueryResponseFut<
17123        BaseNetworkSocketGetIpv6MulticastLoopbackResult,
17124        fidl::encoding::DefaultFuchsiaResourceDialect,
17125    > {
17126        BaseNetworkSocketProxyInterface::r#get_ipv6_multicast_loopback(self)
17127    }
17128
17129    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
17130    pub fn r#set_ipv6_only(
17131        &self,
17132        mut value: bool,
17133    ) -> fidl::client::QueryResponseFut<
17134        BaseNetworkSocketSetIpv6OnlyResult,
17135        fidl::encoding::DefaultFuchsiaResourceDialect,
17136    > {
17137        BaseNetworkSocketProxyInterface::r#set_ipv6_only(self, value)
17138    }
17139
17140    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
17141    pub fn r#get_ipv6_only(
17142        &self,
17143    ) -> fidl::client::QueryResponseFut<
17144        BaseNetworkSocketGetIpv6OnlyResult,
17145        fidl::encoding::DefaultFuchsiaResourceDialect,
17146    > {
17147        BaseNetworkSocketProxyInterface::r#get_ipv6_only(self)
17148    }
17149
17150    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
17151    pub fn r#set_ipv6_receive_traffic_class(
17152        &self,
17153        mut value: bool,
17154    ) -> fidl::client::QueryResponseFut<
17155        BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
17156        fidl::encoding::DefaultFuchsiaResourceDialect,
17157    > {
17158        BaseNetworkSocketProxyInterface::r#set_ipv6_receive_traffic_class(self, value)
17159    }
17160
17161    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
17162    pub fn r#get_ipv6_receive_traffic_class(
17163        &self,
17164    ) -> fidl::client::QueryResponseFut<
17165        BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
17166        fidl::encoding::DefaultFuchsiaResourceDialect,
17167    > {
17168        BaseNetworkSocketProxyInterface::r#get_ipv6_receive_traffic_class(self)
17169    }
17170
17171    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
17172    pub fn r#set_ipv6_traffic_class(
17173        &self,
17174        mut value: &OptionalUint8,
17175    ) -> fidl::client::QueryResponseFut<
17176        BaseNetworkSocketSetIpv6TrafficClassResult,
17177        fidl::encoding::DefaultFuchsiaResourceDialect,
17178    > {
17179        BaseNetworkSocketProxyInterface::r#set_ipv6_traffic_class(self, value)
17180    }
17181
17182    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
17183    pub fn r#get_ipv6_traffic_class(
17184        &self,
17185    ) -> fidl::client::QueryResponseFut<
17186        BaseNetworkSocketGetIpv6TrafficClassResult,
17187        fidl::encoding::DefaultFuchsiaResourceDialect,
17188    > {
17189        BaseNetworkSocketProxyInterface::r#get_ipv6_traffic_class(self)
17190    }
17191
17192    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
17193    pub fn r#set_ipv6_receive_packet_info(
17194        &self,
17195        mut value: bool,
17196    ) -> fidl::client::QueryResponseFut<
17197        BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
17198        fidl::encoding::DefaultFuchsiaResourceDialect,
17199    > {
17200        BaseNetworkSocketProxyInterface::r#set_ipv6_receive_packet_info(self, value)
17201    }
17202
17203    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
17204    pub fn r#get_ipv6_receive_packet_info(
17205        &self,
17206    ) -> fidl::client::QueryResponseFut<
17207        BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
17208        fidl::encoding::DefaultFuchsiaResourceDialect,
17209    > {
17210        BaseNetworkSocketProxyInterface::r#get_ipv6_receive_packet_info(self)
17211    }
17212
17213    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
17214    pub fn r#get_original_destination(
17215        &self,
17216    ) -> fidl::client::QueryResponseFut<
17217        BaseNetworkSocketGetOriginalDestinationResult,
17218        fidl::encoding::DefaultFuchsiaResourceDialect,
17219    > {
17220        BaseNetworkSocketProxyInterface::r#get_original_destination(self)
17221    }
17222}
17223
17224impl BaseNetworkSocketProxyInterface for BaseNetworkSocketProxy {
17225    fn r#clone(
17226        &self,
17227        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
17228    ) -> Result<(), fidl::Error> {
17229        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
17230            (request,),
17231            0x20d8a7aba2168a79,
17232            fidl::encoding::DynamicFlags::empty(),
17233        )
17234    }
17235
17236    type CloseResponseFut = fidl::client::QueryResponseFut<
17237        fidl_fuchsia_unknown::CloseableCloseResult,
17238        fidl::encoding::DefaultFuchsiaResourceDialect,
17239    >;
17240    fn r#close(&self) -> Self::CloseResponseFut {
17241        fn _decode(
17242            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17243        ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
17244            let _response = fidl::client::decode_transaction_body::<
17245                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
17246                fidl::encoding::DefaultFuchsiaResourceDialect,
17247                0x5ac5d459ad7f657e,
17248            >(_buf?)?;
17249            Ok(_response.map(|x| x))
17250        }
17251        self.client.send_query_and_decode::<
17252            fidl::encoding::EmptyPayload,
17253            fidl_fuchsia_unknown::CloseableCloseResult,
17254        >(
17255            (),
17256            0x5ac5d459ad7f657e,
17257            fidl::encoding::DynamicFlags::empty(),
17258            _decode,
17259        )
17260    }
17261
17262    type QueryResponseFut =
17263        fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>;
17264    fn r#query(&self) -> Self::QueryResponseFut {
17265        fn _decode(
17266            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17267        ) -> Result<Vec<u8>, fidl::Error> {
17268            let _response = fidl::client::decode_transaction_body::<
17269                fidl_fuchsia_unknown::QueryableQueryResponse,
17270                fidl::encoding::DefaultFuchsiaResourceDialect,
17271                0x2658edee9decfc06,
17272            >(_buf?)?;
17273            Ok(_response.protocol)
17274        }
17275        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, Vec<u8>>(
17276            (),
17277            0x2658edee9decfc06,
17278            fidl::encoding::DynamicFlags::empty(),
17279            _decode,
17280        )
17281    }
17282
17283    type SetReuseAddressResponseFut = fidl::client::QueryResponseFut<
17284        BaseSocketSetReuseAddressResult,
17285        fidl::encoding::DefaultFuchsiaResourceDialect,
17286    >;
17287    fn r#set_reuse_address(&self, mut value: bool) -> Self::SetReuseAddressResponseFut {
17288        fn _decode(
17289            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17290        ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
17291            let _response = fidl::client::decode_transaction_body::<
17292                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17293                fidl::encoding::DefaultFuchsiaResourceDialect,
17294                0x1fd74ee8b9a4a876,
17295            >(_buf?)?;
17296            Ok(_response.map(|x| x))
17297        }
17298        self.client.send_query_and_decode::<
17299            BaseSocketSetReuseAddressRequest,
17300            BaseSocketSetReuseAddressResult,
17301        >(
17302            (value,),
17303            0x1fd74ee8b9a4a876,
17304            fidl::encoding::DynamicFlags::empty(),
17305            _decode,
17306        )
17307    }
17308
17309    type GetReuseAddressResponseFut = fidl::client::QueryResponseFut<
17310        BaseSocketGetReuseAddressResult,
17311        fidl::encoding::DefaultFuchsiaResourceDialect,
17312    >;
17313    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut {
17314        fn _decode(
17315            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17316        ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
17317            let _response = fidl::client::decode_transaction_body::<
17318                fidl::encoding::ResultType<
17319                    BaseSocketGetReuseAddressResponse,
17320                    fidl_fuchsia_posix::Errno,
17321                >,
17322                fidl::encoding::DefaultFuchsiaResourceDialect,
17323                0x67b7206b8d1bc0a5,
17324            >(_buf?)?;
17325            Ok(_response.map(|x| x.value))
17326        }
17327        self.client
17328            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReuseAddressResult>(
17329                (),
17330                0x67b7206b8d1bc0a5,
17331                fidl::encoding::DynamicFlags::empty(),
17332                _decode,
17333            )
17334    }
17335
17336    type GetErrorResponseFut = fidl::client::QueryResponseFut<
17337        BaseSocketGetErrorResult,
17338        fidl::encoding::DefaultFuchsiaResourceDialect,
17339    >;
17340    fn r#get_error(&self) -> Self::GetErrorResponseFut {
17341        fn _decode(
17342            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17343        ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
17344            let _response = fidl::client::decode_transaction_body::<
17345                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17346                fidl::encoding::DefaultFuchsiaResourceDialect,
17347                0x5aad39b33e5f6ebb,
17348            >(_buf?)?;
17349            Ok(_response.map(|x| x))
17350        }
17351        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetErrorResult>(
17352            (),
17353            0x5aad39b33e5f6ebb,
17354            fidl::encoding::DynamicFlags::empty(),
17355            _decode,
17356        )
17357    }
17358
17359    type SetBroadcastResponseFut = fidl::client::QueryResponseFut<
17360        BaseSocketSetBroadcastResult,
17361        fidl::encoding::DefaultFuchsiaResourceDialect,
17362    >;
17363    fn r#set_broadcast(&self, mut value: bool) -> Self::SetBroadcastResponseFut {
17364        fn _decode(
17365            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17366        ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
17367            let _response = fidl::client::decode_transaction_body::<
17368                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17369                fidl::encoding::DefaultFuchsiaResourceDialect,
17370                0x6023e081ce3cd947,
17371            >(_buf?)?;
17372            Ok(_response.map(|x| x))
17373        }
17374        self.client
17375            .send_query_and_decode::<BaseSocketSetBroadcastRequest, BaseSocketSetBroadcastResult>(
17376                (value,),
17377                0x6023e081ce3cd947,
17378                fidl::encoding::DynamicFlags::empty(),
17379                _decode,
17380            )
17381    }
17382
17383    type GetBroadcastResponseFut = fidl::client::QueryResponseFut<
17384        BaseSocketGetBroadcastResult,
17385        fidl::encoding::DefaultFuchsiaResourceDialect,
17386    >;
17387    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut {
17388        fn _decode(
17389            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17390        ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
17391            let _response = fidl::client::decode_transaction_body::<
17392                fidl::encoding::ResultType<
17393                    BaseSocketGetBroadcastResponse,
17394                    fidl_fuchsia_posix::Errno,
17395                >,
17396                fidl::encoding::DefaultFuchsiaResourceDialect,
17397                0x68796fc556f9780d,
17398            >(_buf?)?;
17399            Ok(_response.map(|x| x.value))
17400        }
17401        self.client
17402            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBroadcastResult>(
17403                (),
17404                0x68796fc556f9780d,
17405                fidl::encoding::DynamicFlags::empty(),
17406                _decode,
17407            )
17408    }
17409
17410    type SetSendBufferResponseFut = fidl::client::QueryResponseFut<
17411        BaseSocketSetSendBufferResult,
17412        fidl::encoding::DefaultFuchsiaResourceDialect,
17413    >;
17414    fn r#set_send_buffer(&self, mut value_bytes: u64) -> Self::SetSendBufferResponseFut {
17415        fn _decode(
17416            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17417        ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
17418            let _response = fidl::client::decode_transaction_body::<
17419                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17420                fidl::encoding::DefaultFuchsiaResourceDialect,
17421                0x756eac32d73a7a70,
17422            >(_buf?)?;
17423            Ok(_response.map(|x| x))
17424        }
17425        self.client
17426            .send_query_and_decode::<BaseSocketSetSendBufferRequest, BaseSocketSetSendBufferResult>(
17427                (value_bytes,),
17428                0x756eac32d73a7a70,
17429                fidl::encoding::DynamicFlags::empty(),
17430                _decode,
17431            )
17432    }
17433
17434    type GetSendBufferResponseFut = fidl::client::QueryResponseFut<
17435        BaseSocketGetSendBufferResult,
17436        fidl::encoding::DefaultFuchsiaResourceDialect,
17437    >;
17438    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut {
17439        fn _decode(
17440            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17441        ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
17442            let _response = fidl::client::decode_transaction_body::<
17443                fidl::encoding::ResultType<
17444                    BaseSocketGetSendBufferResponse,
17445                    fidl_fuchsia_posix::Errno,
17446                >,
17447                fidl::encoding::DefaultFuchsiaResourceDialect,
17448                0x78a52fd9c7b2410b,
17449            >(_buf?)?;
17450            Ok(_response.map(|x| x.value_bytes))
17451        }
17452        self.client
17453            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetSendBufferResult>(
17454                (),
17455                0x78a52fd9c7b2410b,
17456                fidl::encoding::DynamicFlags::empty(),
17457                _decode,
17458            )
17459    }
17460
17461    type SetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
17462        BaseSocketSetReceiveBufferResult,
17463        fidl::encoding::DefaultFuchsiaResourceDialect,
17464    >;
17465    fn r#set_receive_buffer(&self, mut value_bytes: u64) -> Self::SetReceiveBufferResponseFut {
17466        fn _decode(
17467            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17468        ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
17469            let _response = fidl::client::decode_transaction_body::<
17470                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17471                fidl::encoding::DefaultFuchsiaResourceDialect,
17472                0x6b0cf2f1919c7001,
17473            >(_buf?)?;
17474            Ok(_response.map(|x| x))
17475        }
17476        self.client.send_query_and_decode::<
17477            BaseSocketSetReceiveBufferRequest,
17478            BaseSocketSetReceiveBufferResult,
17479        >(
17480            (value_bytes,),
17481            0x6b0cf2f1919c7001,
17482            fidl::encoding::DynamicFlags::empty(),
17483            _decode,
17484        )
17485    }
17486
17487    type GetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
17488        BaseSocketGetReceiveBufferResult,
17489        fidl::encoding::DefaultFuchsiaResourceDialect,
17490    >;
17491    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut {
17492        fn _decode(
17493            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17494        ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
17495            let _response = fidl::client::decode_transaction_body::<
17496                fidl::encoding::ResultType<
17497                    BaseSocketGetReceiveBufferResponse,
17498                    fidl_fuchsia_posix::Errno,
17499                >,
17500                fidl::encoding::DefaultFuchsiaResourceDialect,
17501                0x14c1a4b64f709e5c,
17502            >(_buf?)?;
17503            Ok(_response.map(|x| x.value_bytes))
17504        }
17505        self.client.send_query_and_decode::<
17506            fidl::encoding::EmptyPayload,
17507            BaseSocketGetReceiveBufferResult,
17508        >(
17509            (),
17510            0x14c1a4b64f709e5c,
17511            fidl::encoding::DynamicFlags::empty(),
17512            _decode,
17513        )
17514    }
17515
17516    type SetKeepAliveResponseFut = fidl::client::QueryResponseFut<
17517        BaseSocketSetKeepAliveResult,
17518        fidl::encoding::DefaultFuchsiaResourceDialect,
17519    >;
17520    fn r#set_keep_alive(&self, mut value: bool) -> Self::SetKeepAliveResponseFut {
17521        fn _decode(
17522            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17523        ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
17524            let _response = fidl::client::decode_transaction_body::<
17525                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17526                fidl::encoding::DefaultFuchsiaResourceDialect,
17527                0x572df8f0b920d2c7,
17528            >(_buf?)?;
17529            Ok(_response.map(|x| x))
17530        }
17531        self.client
17532            .send_query_and_decode::<BaseSocketSetKeepAliveRequest, BaseSocketSetKeepAliveResult>(
17533                (value,),
17534                0x572df8f0b920d2c7,
17535                fidl::encoding::DynamicFlags::empty(),
17536                _decode,
17537            )
17538    }
17539
17540    type GetKeepAliveResponseFut = fidl::client::QueryResponseFut<
17541        BaseSocketGetKeepAliveResult,
17542        fidl::encoding::DefaultFuchsiaResourceDialect,
17543    >;
17544    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut {
17545        fn _decode(
17546            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17547        ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
17548            let _response = fidl::client::decode_transaction_body::<
17549                fidl::encoding::ResultType<
17550                    BaseSocketGetKeepAliveResponse,
17551                    fidl_fuchsia_posix::Errno,
17552                >,
17553                fidl::encoding::DefaultFuchsiaResourceDialect,
17554                0x2dd29d3215f2c9d2,
17555            >(_buf?)?;
17556            Ok(_response.map(|x| x.value))
17557        }
17558        self.client
17559            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetKeepAliveResult>(
17560                (),
17561                0x2dd29d3215f2c9d2,
17562                fidl::encoding::DynamicFlags::empty(),
17563                _decode,
17564            )
17565    }
17566
17567    type SetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
17568        BaseSocketSetOutOfBandInlineResult,
17569        fidl::encoding::DefaultFuchsiaResourceDialect,
17570    >;
17571    fn r#set_out_of_band_inline(&self, mut value: bool) -> Self::SetOutOfBandInlineResponseFut {
17572        fn _decode(
17573            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17574        ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
17575            let _response = fidl::client::decode_transaction_body::<
17576                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17577                fidl::encoding::DefaultFuchsiaResourceDialect,
17578                0x3ecb49968bee439,
17579            >(_buf?)?;
17580            Ok(_response.map(|x| x))
17581        }
17582        self.client.send_query_and_decode::<
17583            BaseSocketSetOutOfBandInlineRequest,
17584            BaseSocketSetOutOfBandInlineResult,
17585        >(
17586            (value,),
17587            0x3ecb49968bee439,
17588            fidl::encoding::DynamicFlags::empty(),
17589            _decode,
17590        )
17591    }
17592
17593    type GetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
17594        BaseSocketGetOutOfBandInlineResult,
17595        fidl::encoding::DefaultFuchsiaResourceDialect,
17596    >;
17597    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut {
17598        fn _decode(
17599            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17600        ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
17601            let _response = fidl::client::decode_transaction_body::<
17602                fidl::encoding::ResultType<
17603                    BaseSocketGetOutOfBandInlineResponse,
17604                    fidl_fuchsia_posix::Errno,
17605                >,
17606                fidl::encoding::DefaultFuchsiaResourceDialect,
17607                0x348c1ab3aeca1745,
17608            >(_buf?)?;
17609            Ok(_response.map(|x| x.value))
17610        }
17611        self.client.send_query_and_decode::<
17612            fidl::encoding::EmptyPayload,
17613            BaseSocketGetOutOfBandInlineResult,
17614        >(
17615            (),
17616            0x348c1ab3aeca1745,
17617            fidl::encoding::DynamicFlags::empty(),
17618            _decode,
17619        )
17620    }
17621
17622    type SetNoCheckResponseFut = fidl::client::QueryResponseFut<
17623        BaseSocketSetNoCheckResult,
17624        fidl::encoding::DefaultFuchsiaResourceDialect,
17625    >;
17626    fn r#set_no_check(&self, mut value: bool) -> Self::SetNoCheckResponseFut {
17627        fn _decode(
17628            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17629        ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
17630            let _response = fidl::client::decode_transaction_body::<
17631                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17632                fidl::encoding::DefaultFuchsiaResourceDialect,
17633                0x6bbf00c53a4c78c2,
17634            >(_buf?)?;
17635            Ok(_response.map(|x| x))
17636        }
17637        self.client
17638            .send_query_and_decode::<BaseSocketSetNoCheckRequest, BaseSocketSetNoCheckResult>(
17639                (value,),
17640                0x6bbf00c53a4c78c2,
17641                fidl::encoding::DynamicFlags::empty(),
17642                _decode,
17643            )
17644    }
17645
17646    type GetNoCheckResponseFut = fidl::client::QueryResponseFut<
17647        BaseSocketGetNoCheckResult,
17648        fidl::encoding::DefaultFuchsiaResourceDialect,
17649    >;
17650    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut {
17651        fn _decode(
17652            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17653        ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
17654            let _response = fidl::client::decode_transaction_body::<
17655                fidl::encoding::ResultType<BaseSocketGetNoCheckResponse, fidl_fuchsia_posix::Errno>,
17656                fidl::encoding::DefaultFuchsiaResourceDialect,
17657                0x2cd4249286417694,
17658            >(_buf?)?;
17659            Ok(_response.map(|x| x.value))
17660        }
17661        self.client
17662            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetNoCheckResult>(
17663                (),
17664                0x2cd4249286417694,
17665                fidl::encoding::DynamicFlags::empty(),
17666                _decode,
17667            )
17668    }
17669
17670    type SetLingerResponseFut = fidl::client::QueryResponseFut<
17671        BaseSocketSetLingerResult,
17672        fidl::encoding::DefaultFuchsiaResourceDialect,
17673    >;
17674    fn r#set_linger(&self, mut linger: bool, mut length_secs: u32) -> Self::SetLingerResponseFut {
17675        fn _decode(
17676            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17677        ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
17678            let _response = fidl::client::decode_transaction_body::<
17679                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17680                fidl::encoding::DefaultFuchsiaResourceDialect,
17681                0x45386351246e998e,
17682            >(_buf?)?;
17683            Ok(_response.map(|x| x))
17684        }
17685        self.client.send_query_and_decode::<BaseSocketSetLingerRequest, BaseSocketSetLingerResult>(
17686            (linger, length_secs),
17687            0x45386351246e998e,
17688            fidl::encoding::DynamicFlags::empty(),
17689            _decode,
17690        )
17691    }
17692
17693    type GetLingerResponseFut = fidl::client::QueryResponseFut<
17694        BaseSocketGetLingerResult,
17695        fidl::encoding::DefaultFuchsiaResourceDialect,
17696    >;
17697    fn r#get_linger(&self) -> Self::GetLingerResponseFut {
17698        fn _decode(
17699            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17700        ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
17701            let _response = fidl::client::decode_transaction_body::<
17702                fidl::encoding::ResultType<BaseSocketGetLingerResponse, fidl_fuchsia_posix::Errno>,
17703                fidl::encoding::DefaultFuchsiaResourceDialect,
17704                0x48eb20fc5ccb0e45,
17705            >(_buf?)?;
17706            Ok(_response.map(|x| (x.linger, x.length_secs)))
17707        }
17708        self.client
17709            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetLingerResult>(
17710                (),
17711                0x48eb20fc5ccb0e45,
17712                fidl::encoding::DynamicFlags::empty(),
17713                _decode,
17714            )
17715    }
17716
17717    type SetReusePortResponseFut = fidl::client::QueryResponseFut<
17718        BaseSocketSetReusePortResult,
17719        fidl::encoding::DefaultFuchsiaResourceDialect,
17720    >;
17721    fn r#set_reuse_port(&self, mut value: ReusePortOption) -> Self::SetReusePortResponseFut {
17722        fn _decode(
17723            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17724        ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
17725            let _response = fidl::client::decode_transaction_body::<
17726                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17727                fidl::encoding::DefaultFuchsiaResourceDialect,
17728                0x547dc9cc0455189e,
17729            >(_buf?)?;
17730            Ok(_response.map(|x| x))
17731        }
17732        self.client
17733            .send_query_and_decode::<BaseSocketSetReusePortRequest, BaseSocketSetReusePortResult>(
17734                (&mut value,),
17735                0x547dc9cc0455189e,
17736                fidl::encoding::DynamicFlags::empty(),
17737                _decode,
17738            )
17739    }
17740
17741    type SetReusePortDeprecatedResponseFut = fidl::client::QueryResponseFut<
17742        BaseSocketSetReusePortDeprecatedResult,
17743        fidl::encoding::DefaultFuchsiaResourceDialect,
17744    >;
17745    fn r#set_reuse_port_deprecated(
17746        &self,
17747        mut value: bool,
17748    ) -> Self::SetReusePortDeprecatedResponseFut {
17749        fn _decode(
17750            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17751        ) -> Result<BaseSocketSetReusePortDeprecatedResult, fidl::Error> {
17752            let _response = fidl::client::decode_transaction_body::<
17753                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17754                fidl::encoding::DefaultFuchsiaResourceDialect,
17755                0x24dd3e5cb36d9ccb,
17756            >(_buf?)?;
17757            Ok(_response.map(|x| x))
17758        }
17759        self.client.send_query_and_decode::<
17760            BaseSocketSetReusePortDeprecatedRequest,
17761            BaseSocketSetReusePortDeprecatedResult,
17762        >(
17763            (value,),
17764            0x24dd3e5cb36d9ccb,
17765            fidl::encoding::DynamicFlags::empty(),
17766            _decode,
17767        )
17768    }
17769
17770    type GetReusePortResponseFut = fidl::client::QueryResponseFut<
17771        BaseSocketGetReusePortResult,
17772        fidl::encoding::DefaultFuchsiaResourceDialect,
17773    >;
17774    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut {
17775        fn _decode(
17776            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17777        ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
17778            let _response = fidl::client::decode_transaction_body::<
17779                fidl::encoding::ResultType<
17780                    BaseSocketGetReusePortResponse,
17781                    fidl_fuchsia_posix::Errno,
17782                >,
17783                fidl::encoding::DefaultFuchsiaResourceDialect,
17784                0x7a112c1ab54ff828,
17785            >(_buf?)?;
17786            Ok(_response.map(|x| x.value))
17787        }
17788        self.client
17789            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReusePortResult>(
17790                (),
17791                0x7a112c1ab54ff828,
17792                fidl::encoding::DynamicFlags::empty(),
17793                _decode,
17794            )
17795    }
17796
17797    type GetAcceptConnResponseFut = fidl::client::QueryResponseFut<
17798        BaseSocketGetAcceptConnResult,
17799        fidl::encoding::DefaultFuchsiaResourceDialect,
17800    >;
17801    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut {
17802        fn _decode(
17803            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17804        ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
17805            let _response = fidl::client::decode_transaction_body::<
17806                fidl::encoding::ResultType<
17807                    BaseSocketGetAcceptConnResponse,
17808                    fidl_fuchsia_posix::Errno,
17809                >,
17810                fidl::encoding::DefaultFuchsiaResourceDialect,
17811                0x67ce6db6c2ec8966,
17812            >(_buf?)?;
17813            Ok(_response.map(|x| x.value))
17814        }
17815        self.client
17816            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetAcceptConnResult>(
17817                (),
17818                0x67ce6db6c2ec8966,
17819                fidl::encoding::DynamicFlags::empty(),
17820                _decode,
17821            )
17822    }
17823
17824    type SetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
17825        BaseSocketSetBindToDeviceResult,
17826        fidl::encoding::DefaultFuchsiaResourceDialect,
17827    >;
17828    fn r#set_bind_to_device(&self, mut value: &str) -> Self::SetBindToDeviceResponseFut {
17829        fn _decode(
17830            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17831        ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
17832            let _response = fidl::client::decode_transaction_body::<
17833                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17834                fidl::encoding::DefaultFuchsiaResourceDialect,
17835                0x2118b483f28aafc4,
17836            >(_buf?)?;
17837            Ok(_response.map(|x| x))
17838        }
17839        self.client.send_query_and_decode::<
17840            BaseSocketSetBindToDeviceRequest,
17841            BaseSocketSetBindToDeviceResult,
17842        >(
17843            (value,),
17844            0x2118b483f28aafc4,
17845            fidl::encoding::DynamicFlags::empty(),
17846            _decode,
17847        )
17848    }
17849
17850    type GetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
17851        BaseSocketGetBindToDeviceResult,
17852        fidl::encoding::DefaultFuchsiaResourceDialect,
17853    >;
17854    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut {
17855        fn _decode(
17856            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17857        ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
17858            let _response = fidl::client::decode_transaction_body::<
17859                fidl::encoding::ResultType<
17860                    BaseSocketGetBindToDeviceResponse,
17861                    fidl_fuchsia_posix::Errno,
17862                >,
17863                fidl::encoding::DefaultFuchsiaResourceDialect,
17864                0x1ab1fbf0ef7906c8,
17865            >(_buf?)?;
17866            Ok(_response.map(|x| x.value))
17867        }
17868        self.client
17869            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBindToDeviceResult>(
17870                (),
17871                0x1ab1fbf0ef7906c8,
17872                fidl::encoding::DynamicFlags::empty(),
17873                _decode,
17874            )
17875    }
17876
17877    type SetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
17878        BaseSocketSetBindToInterfaceIndexResult,
17879        fidl::encoding::DefaultFuchsiaResourceDialect,
17880    >;
17881    fn r#set_bind_to_interface_index(
17882        &self,
17883        mut value: u64,
17884    ) -> Self::SetBindToInterfaceIndexResponseFut {
17885        fn _decode(
17886            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17887        ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
17888            let _response = fidl::client::decode_transaction_body::<
17889                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17890                fidl::encoding::DefaultFuchsiaResourceDialect,
17891                0x6e387a0def00821,
17892            >(_buf?)?;
17893            Ok(_response.map(|x| x))
17894        }
17895        self.client.send_query_and_decode::<
17896            BaseSocketSetBindToInterfaceIndexRequest,
17897            BaseSocketSetBindToInterfaceIndexResult,
17898        >(
17899            (value,),
17900            0x6e387a0def00821,
17901            fidl::encoding::DynamicFlags::empty(),
17902            _decode,
17903        )
17904    }
17905
17906    type GetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
17907        BaseSocketGetBindToInterfaceIndexResult,
17908        fidl::encoding::DefaultFuchsiaResourceDialect,
17909    >;
17910    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut {
17911        fn _decode(
17912            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17913        ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
17914            let _response = fidl::client::decode_transaction_body::<
17915                fidl::encoding::ResultType<
17916                    BaseSocketGetBindToInterfaceIndexResponse,
17917                    fidl_fuchsia_posix::Errno,
17918                >,
17919                fidl::encoding::DefaultFuchsiaResourceDialect,
17920                0x59c31dd3e3078295,
17921            >(_buf?)?;
17922            Ok(_response.map(|x| x.value))
17923        }
17924        self.client.send_query_and_decode::<
17925            fidl::encoding::EmptyPayload,
17926            BaseSocketGetBindToInterfaceIndexResult,
17927        >(
17928            (),
17929            0x59c31dd3e3078295,
17930            fidl::encoding::DynamicFlags::empty(),
17931            _decode,
17932        )
17933    }
17934
17935    type SetTimestampResponseFut = fidl::client::QueryResponseFut<
17936        BaseSocketSetTimestampResult,
17937        fidl::encoding::DefaultFuchsiaResourceDialect,
17938    >;
17939    fn r#set_timestamp(&self, mut value: TimestampOption) -> Self::SetTimestampResponseFut {
17940        fn _decode(
17941            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17942        ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
17943            let _response = fidl::client::decode_transaction_body::<
17944                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17945                fidl::encoding::DefaultFuchsiaResourceDialect,
17946                0x285d6516c263d839,
17947            >(_buf?)?;
17948            Ok(_response.map(|x| x))
17949        }
17950        self.client
17951            .send_query_and_decode::<BaseSocketSetTimestampRequest, BaseSocketSetTimestampResult>(
17952                (value,),
17953                0x285d6516c263d839,
17954                fidl::encoding::DynamicFlags::empty(),
17955                _decode,
17956            )
17957    }
17958
17959    type GetTimestampResponseFut = fidl::client::QueryResponseFut<
17960        BaseSocketGetTimestampResult,
17961        fidl::encoding::DefaultFuchsiaResourceDialect,
17962    >;
17963    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut {
17964        fn _decode(
17965            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17966        ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
17967            let _response = fidl::client::decode_transaction_body::<
17968                fidl::encoding::ResultType<
17969                    BaseSocketGetTimestampResponse,
17970                    fidl_fuchsia_posix::Errno,
17971                >,
17972                fidl::encoding::DefaultFuchsiaResourceDialect,
17973                0x49f2fffbbcc2bd27,
17974            >(_buf?)?;
17975            Ok(_response.map(|x| x.value))
17976        }
17977        self.client
17978            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetTimestampResult>(
17979                (),
17980                0x49f2fffbbcc2bd27,
17981                fidl::encoding::DynamicFlags::empty(),
17982                _decode,
17983            )
17984    }
17985
17986    type SetMarkResponseFut = fidl::client::QueryResponseFut<
17987        BaseSocketSetMarkResult,
17988        fidl::encoding::DefaultFuchsiaResourceDialect,
17989    >;
17990    fn r#set_mark(
17991        &self,
17992        mut domain: fidl_fuchsia_net::MarkDomain,
17993        mut mark: &OptionalUint32,
17994    ) -> Self::SetMarkResponseFut {
17995        fn _decode(
17996            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17997        ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
17998            let _response = fidl::client::decode_transaction_body::<
17999                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18000                fidl::encoding::DefaultFuchsiaResourceDialect,
18001                0x6ead6de09f653236,
18002            >(_buf?)?;
18003            Ok(_response.map(|x| x))
18004        }
18005        self.client.send_query_and_decode::<BaseSocketSetMarkRequest, BaseSocketSetMarkResult>(
18006            (domain, mark),
18007            0x6ead6de09f653236,
18008            fidl::encoding::DynamicFlags::empty(),
18009            _decode,
18010        )
18011    }
18012
18013    type GetMarkResponseFut = fidl::client::QueryResponseFut<
18014        BaseSocketGetMarkResult,
18015        fidl::encoding::DefaultFuchsiaResourceDialect,
18016    >;
18017    fn r#get_mark(&self, mut domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut {
18018        fn _decode(
18019            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18020        ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
18021            let _response = fidl::client::decode_transaction_body::<
18022                fidl::encoding::ResultType<BaseSocketGetMarkResponse, fidl_fuchsia_posix::Errno>,
18023                fidl::encoding::DefaultFuchsiaResourceDialect,
18024                0x57a2752c61d93d47,
18025            >(_buf?)?;
18026            Ok(_response.map(|x| x.mark))
18027        }
18028        self.client.send_query_and_decode::<BaseSocketGetMarkRequest, BaseSocketGetMarkResult>(
18029            (domain,),
18030            0x57a2752c61d93d47,
18031            fidl::encoding::DynamicFlags::empty(),
18032            _decode,
18033        )
18034    }
18035
18036    type GetCookieResponseFut = fidl::client::QueryResponseFut<
18037        BaseSocketGetCookieResult,
18038        fidl::encoding::DefaultFuchsiaResourceDialect,
18039    >;
18040    fn r#get_cookie(&self) -> Self::GetCookieResponseFut {
18041        fn _decode(
18042            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18043        ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
18044            let _response = fidl::client::decode_transaction_body::<
18045                fidl::encoding::ResultType<BaseSocketGetCookieResponse, fidl_fuchsia_posix::Errno>,
18046                fidl::encoding::DefaultFuchsiaResourceDialect,
18047                0x2c2f47fd8f924e52,
18048            >(_buf?)?;
18049            Ok(_response.map(|x| x.value))
18050        }
18051        self.client
18052            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetCookieResult>(
18053                (),
18054                0x2c2f47fd8f924e52,
18055                fidl::encoding::DynamicFlags::empty(),
18056                _decode,
18057            )
18058    }
18059
18060    type BindResponseFut = fidl::client::QueryResponseFut<
18061        BaseNetworkSocketBindResult,
18062        fidl::encoding::DefaultFuchsiaResourceDialect,
18063    >;
18064    fn r#bind(&self, mut addr: &fidl_fuchsia_net::SocketAddress) -> Self::BindResponseFut {
18065        fn _decode(
18066            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18067        ) -> Result<BaseNetworkSocketBindResult, fidl::Error> {
18068            let _response = fidl::client::decode_transaction_body::<
18069                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18070                fidl::encoding::DefaultFuchsiaResourceDialect,
18071                0x4bc6400ae92125d,
18072            >(_buf?)?;
18073            Ok(_response.map(|x| x))
18074        }
18075        self.client
18076            .send_query_and_decode::<BaseNetworkSocketBindRequest, BaseNetworkSocketBindResult>(
18077                (addr,),
18078                0x4bc6400ae92125d,
18079                fidl::encoding::DynamicFlags::empty(),
18080                _decode,
18081            )
18082    }
18083
18084    type ConnectResponseFut = fidl::client::QueryResponseFut<
18085        BaseNetworkSocketConnectResult,
18086        fidl::encoding::DefaultFuchsiaResourceDialect,
18087    >;
18088    fn r#connect(&self, mut addr: &fidl_fuchsia_net::SocketAddress) -> Self::ConnectResponseFut {
18089        fn _decode(
18090            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18091        ) -> Result<BaseNetworkSocketConnectResult, fidl::Error> {
18092            let _response = fidl::client::decode_transaction_body::<
18093                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18094                fidl::encoding::DefaultFuchsiaResourceDialect,
18095                0x5f05f19bfdd38871,
18096            >(_buf?)?;
18097            Ok(_response.map(|x| x))
18098        }
18099        self.client.send_query_and_decode::<
18100            BaseNetworkSocketConnectRequest,
18101            BaseNetworkSocketConnectResult,
18102        >(
18103            (addr,),
18104            0x5f05f19bfdd38871,
18105            fidl::encoding::DynamicFlags::empty(),
18106            _decode,
18107        )
18108    }
18109
18110    type DisconnectResponseFut = fidl::client::QueryResponseFut<
18111        BaseNetworkSocketDisconnectResult,
18112        fidl::encoding::DefaultFuchsiaResourceDialect,
18113    >;
18114    fn r#disconnect(&self) -> Self::DisconnectResponseFut {
18115        fn _decode(
18116            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18117        ) -> Result<BaseNetworkSocketDisconnectResult, fidl::Error> {
18118            let _response = fidl::client::decode_transaction_body::<
18119                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18120                fidl::encoding::DefaultFuchsiaResourceDialect,
18121                0x74e63b91f7b29b2,
18122            >(_buf?)?;
18123            Ok(_response.map(|x| x))
18124        }
18125        self.client.send_query_and_decode::<
18126            fidl::encoding::EmptyPayload,
18127            BaseNetworkSocketDisconnectResult,
18128        >(
18129            (),
18130            0x74e63b91f7b29b2,
18131            fidl::encoding::DynamicFlags::empty(),
18132            _decode,
18133        )
18134    }
18135
18136    type GetSockNameResponseFut = fidl::client::QueryResponseFut<
18137        BaseNetworkSocketGetSockNameResult,
18138        fidl::encoding::DefaultFuchsiaResourceDialect,
18139    >;
18140    fn r#get_sock_name(&self) -> Self::GetSockNameResponseFut {
18141        fn _decode(
18142            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18143        ) -> Result<BaseNetworkSocketGetSockNameResult, fidl::Error> {
18144            let _response = fidl::client::decode_transaction_body::<
18145                fidl::encoding::ResultType<
18146                    BaseNetworkSocketGetSockNameResponse,
18147                    fidl_fuchsia_posix::Errno,
18148                >,
18149                fidl::encoding::DefaultFuchsiaResourceDialect,
18150                0x475f23f84a1a4f85,
18151            >(_buf?)?;
18152            Ok(_response.map(|x| x.addr))
18153        }
18154        self.client.send_query_and_decode::<
18155            fidl::encoding::EmptyPayload,
18156            BaseNetworkSocketGetSockNameResult,
18157        >(
18158            (),
18159            0x475f23f84a1a4f85,
18160            fidl::encoding::DynamicFlags::empty(),
18161            _decode,
18162        )
18163    }
18164
18165    type GetPeerNameResponseFut = fidl::client::QueryResponseFut<
18166        BaseNetworkSocketGetPeerNameResult,
18167        fidl::encoding::DefaultFuchsiaResourceDialect,
18168    >;
18169    fn r#get_peer_name(&self) -> Self::GetPeerNameResponseFut {
18170        fn _decode(
18171            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18172        ) -> Result<BaseNetworkSocketGetPeerNameResult, fidl::Error> {
18173            let _response = fidl::client::decode_transaction_body::<
18174                fidl::encoding::ResultType<
18175                    BaseNetworkSocketGetPeerNameResponse,
18176                    fidl_fuchsia_posix::Errno,
18177                >,
18178                fidl::encoding::DefaultFuchsiaResourceDialect,
18179                0x1ffecf4bd5b6432e,
18180            >(_buf?)?;
18181            Ok(_response.map(|x| x.addr))
18182        }
18183        self.client.send_query_and_decode::<
18184            fidl::encoding::EmptyPayload,
18185            BaseNetworkSocketGetPeerNameResult,
18186        >(
18187            (),
18188            0x1ffecf4bd5b6432e,
18189            fidl::encoding::DynamicFlags::empty(),
18190            _decode,
18191        )
18192    }
18193
18194    type ShutdownResponseFut = fidl::client::QueryResponseFut<
18195        BaseNetworkSocketShutdownResult,
18196        fidl::encoding::DefaultFuchsiaResourceDialect,
18197    >;
18198    fn r#shutdown(&self, mut mode: ShutdownMode) -> Self::ShutdownResponseFut {
18199        fn _decode(
18200            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18201        ) -> Result<BaseNetworkSocketShutdownResult, fidl::Error> {
18202            let _response = fidl::client::decode_transaction_body::<
18203                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18204                fidl::encoding::DefaultFuchsiaResourceDialect,
18205                0x247f38b6db68c336,
18206            >(_buf?)?;
18207            Ok(_response.map(|x| x))
18208        }
18209        self.client.send_query_and_decode::<
18210            BaseNetworkSocketShutdownRequest,
18211            BaseNetworkSocketShutdownResult,
18212        >(
18213            (mode,),
18214            0x247f38b6db68c336,
18215            fidl::encoding::DynamicFlags::empty(),
18216            _decode,
18217        )
18218    }
18219
18220    type SetIpTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
18221        BaseNetworkSocketSetIpTypeOfServiceResult,
18222        fidl::encoding::DefaultFuchsiaResourceDialect,
18223    >;
18224    fn r#set_ip_type_of_service(&self, mut value: u8) -> Self::SetIpTypeOfServiceResponseFut {
18225        fn _decode(
18226            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18227        ) -> Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error> {
18228            let _response = fidl::client::decode_transaction_body::<
18229                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18230                fidl::encoding::DefaultFuchsiaResourceDialect,
18231                0x995c600475b6d46,
18232            >(_buf?)?;
18233            Ok(_response.map(|x| x))
18234        }
18235        self.client.send_query_and_decode::<
18236            BaseNetworkSocketSetIpTypeOfServiceRequest,
18237            BaseNetworkSocketSetIpTypeOfServiceResult,
18238        >(
18239            (value,),
18240            0x995c600475b6d46,
18241            fidl::encoding::DynamicFlags::empty(),
18242            _decode,
18243        )
18244    }
18245
18246    type GetIpTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
18247        BaseNetworkSocketGetIpTypeOfServiceResult,
18248        fidl::encoding::DefaultFuchsiaResourceDialect,
18249    >;
18250    fn r#get_ip_type_of_service(&self) -> Self::GetIpTypeOfServiceResponseFut {
18251        fn _decode(
18252            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18253        ) -> Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error> {
18254            let _response = fidl::client::decode_transaction_body::<
18255                fidl::encoding::ResultType<
18256                    BaseNetworkSocketGetIpTypeOfServiceResponse,
18257                    fidl_fuchsia_posix::Errno,
18258                >,
18259                fidl::encoding::DefaultFuchsiaResourceDialect,
18260                0x3814a04259f75fcb,
18261            >(_buf?)?;
18262            Ok(_response.map(|x| x.value))
18263        }
18264        self.client.send_query_and_decode::<
18265            fidl::encoding::EmptyPayload,
18266            BaseNetworkSocketGetIpTypeOfServiceResult,
18267        >(
18268            (),
18269            0x3814a04259f75fcb,
18270            fidl::encoding::DynamicFlags::empty(),
18271            _decode,
18272        )
18273    }
18274
18275    type SetIpTtlResponseFut = fidl::client::QueryResponseFut<
18276        BaseNetworkSocketSetIpTtlResult,
18277        fidl::encoding::DefaultFuchsiaResourceDialect,
18278    >;
18279    fn r#set_ip_ttl(&self, mut value: &OptionalUint8) -> Self::SetIpTtlResponseFut {
18280        fn _decode(
18281            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18282        ) -> Result<BaseNetworkSocketSetIpTtlResult, fidl::Error> {
18283            let _response = fidl::client::decode_transaction_body::<
18284                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18285                fidl::encoding::DefaultFuchsiaResourceDialect,
18286                0x29e2424b433ae1ef,
18287            >(_buf?)?;
18288            Ok(_response.map(|x| x))
18289        }
18290        self.client.send_query_and_decode::<
18291            BaseNetworkSocketSetIpTtlRequest,
18292            BaseNetworkSocketSetIpTtlResult,
18293        >(
18294            (value,),
18295            0x29e2424b433ae1ef,
18296            fidl::encoding::DynamicFlags::empty(),
18297            _decode,
18298        )
18299    }
18300
18301    type GetIpTtlResponseFut = fidl::client::QueryResponseFut<
18302        BaseNetworkSocketGetIpTtlResult,
18303        fidl::encoding::DefaultFuchsiaResourceDialect,
18304    >;
18305    fn r#get_ip_ttl(&self) -> Self::GetIpTtlResponseFut {
18306        fn _decode(
18307            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18308        ) -> Result<BaseNetworkSocketGetIpTtlResult, fidl::Error> {
18309            let _response = fidl::client::decode_transaction_body::<
18310                fidl::encoding::ResultType<
18311                    BaseNetworkSocketGetIpTtlResponse,
18312                    fidl_fuchsia_posix::Errno,
18313                >,
18314                fidl::encoding::DefaultFuchsiaResourceDialect,
18315                0x47e47fa1f24da471,
18316            >(_buf?)?;
18317            Ok(_response.map(|x| x.value))
18318        }
18319        self.client
18320            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseNetworkSocketGetIpTtlResult>(
18321                (),
18322                0x47e47fa1f24da471,
18323                fidl::encoding::DynamicFlags::empty(),
18324                _decode,
18325            )
18326    }
18327
18328    type SetIpPacketInfoResponseFut = fidl::client::QueryResponseFut<
18329        BaseNetworkSocketSetIpPacketInfoResult,
18330        fidl::encoding::DefaultFuchsiaResourceDialect,
18331    >;
18332    fn r#set_ip_packet_info(&self, mut value: bool) -> Self::SetIpPacketInfoResponseFut {
18333        fn _decode(
18334            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18335        ) -> Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error> {
18336            let _response = fidl::client::decode_transaction_body::<
18337                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18338                fidl::encoding::DefaultFuchsiaResourceDialect,
18339                0x392d16bee20c0e16,
18340            >(_buf?)?;
18341            Ok(_response.map(|x| x))
18342        }
18343        self.client.send_query_and_decode::<
18344            BaseNetworkSocketSetIpPacketInfoRequest,
18345            BaseNetworkSocketSetIpPacketInfoResult,
18346        >(
18347            (value,),
18348            0x392d16bee20c0e16,
18349            fidl::encoding::DynamicFlags::empty(),
18350            _decode,
18351        )
18352    }
18353
18354    type GetIpPacketInfoResponseFut = fidl::client::QueryResponseFut<
18355        BaseNetworkSocketGetIpPacketInfoResult,
18356        fidl::encoding::DefaultFuchsiaResourceDialect,
18357    >;
18358    fn r#get_ip_packet_info(&self) -> Self::GetIpPacketInfoResponseFut {
18359        fn _decode(
18360            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18361        ) -> Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error> {
18362            let _response = fidl::client::decode_transaction_body::<
18363                fidl::encoding::ResultType<
18364                    BaseNetworkSocketGetIpPacketInfoResponse,
18365                    fidl_fuchsia_posix::Errno,
18366                >,
18367                fidl::encoding::DefaultFuchsiaResourceDialect,
18368                0x54b505f242280740,
18369            >(_buf?)?;
18370            Ok(_response.map(|x| x.value))
18371        }
18372        self.client.send_query_and_decode::<
18373            fidl::encoding::EmptyPayload,
18374            BaseNetworkSocketGetIpPacketInfoResult,
18375        >(
18376            (),
18377            0x54b505f242280740,
18378            fidl::encoding::DynamicFlags::empty(),
18379            _decode,
18380        )
18381    }
18382
18383    type SetIpReceiveTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
18384        BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
18385        fidl::encoding::DefaultFuchsiaResourceDialect,
18386    >;
18387    fn r#set_ip_receive_type_of_service(
18388        &self,
18389        mut value: bool,
18390    ) -> Self::SetIpReceiveTypeOfServiceResponseFut {
18391        fn _decode(
18392            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18393        ) -> Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error> {
18394            let _response = fidl::client::decode_transaction_body::<
18395                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18396                fidl::encoding::DefaultFuchsiaResourceDialect,
18397                0x6c4f6714995f84ef,
18398            >(_buf?)?;
18399            Ok(_response.map(|x| x))
18400        }
18401        self.client.send_query_and_decode::<
18402            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
18403            BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
18404        >(
18405            (value,),
18406            0x6c4f6714995f84ef,
18407            fidl::encoding::DynamicFlags::empty(),
18408            _decode,
18409        )
18410    }
18411
18412    type GetIpReceiveTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
18413        BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
18414        fidl::encoding::DefaultFuchsiaResourceDialect,
18415    >;
18416    fn r#get_ip_receive_type_of_service(&self) -> Self::GetIpReceiveTypeOfServiceResponseFut {
18417        fn _decode(
18418            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18419        ) -> Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error> {
18420            let _response = fidl::client::decode_transaction_body::<
18421                fidl::encoding::ResultType<
18422                    BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
18423                    fidl_fuchsia_posix::Errno,
18424                >,
18425                fidl::encoding::DefaultFuchsiaResourceDialect,
18426                0x4158ba7dc2795960,
18427            >(_buf?)?;
18428            Ok(_response.map(|x| x.value))
18429        }
18430        self.client.send_query_and_decode::<
18431            fidl::encoding::EmptyPayload,
18432            BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
18433        >(
18434            (),
18435            0x4158ba7dc2795960,
18436            fidl::encoding::DynamicFlags::empty(),
18437            _decode,
18438        )
18439    }
18440
18441    type SetIpReceiveTtlResponseFut = fidl::client::QueryResponseFut<
18442        BaseNetworkSocketSetIpReceiveTtlResult,
18443        fidl::encoding::DefaultFuchsiaResourceDialect,
18444    >;
18445    fn r#set_ip_receive_ttl(&self, mut value: bool) -> Self::SetIpReceiveTtlResponseFut {
18446        fn _decode(
18447            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18448        ) -> Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error> {
18449            let _response = fidl::client::decode_transaction_body::<
18450                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18451                fidl::encoding::DefaultFuchsiaResourceDialect,
18452                0x46f15be0ce0ab82b,
18453            >(_buf?)?;
18454            Ok(_response.map(|x| x))
18455        }
18456        self.client.send_query_and_decode::<
18457            BaseNetworkSocketSetIpReceiveTtlRequest,
18458            BaseNetworkSocketSetIpReceiveTtlResult,
18459        >(
18460            (value,),
18461            0x46f15be0ce0ab82b,
18462            fidl::encoding::DynamicFlags::empty(),
18463            _decode,
18464        )
18465    }
18466
18467    type GetIpReceiveTtlResponseFut = fidl::client::QueryResponseFut<
18468        BaseNetworkSocketGetIpReceiveTtlResult,
18469        fidl::encoding::DefaultFuchsiaResourceDialect,
18470    >;
18471    fn r#get_ip_receive_ttl(&self) -> Self::GetIpReceiveTtlResponseFut {
18472        fn _decode(
18473            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18474        ) -> Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error> {
18475            let _response = fidl::client::decode_transaction_body::<
18476                fidl::encoding::ResultType<
18477                    BaseNetworkSocketGetIpReceiveTtlResponse,
18478                    fidl_fuchsia_posix::Errno,
18479                >,
18480                fidl::encoding::DefaultFuchsiaResourceDialect,
18481                0x678ddd5a5dfa2eb5,
18482            >(_buf?)?;
18483            Ok(_response.map(|x| x.value))
18484        }
18485        self.client.send_query_and_decode::<
18486            fidl::encoding::EmptyPayload,
18487            BaseNetworkSocketGetIpReceiveTtlResult,
18488        >(
18489            (),
18490            0x678ddd5a5dfa2eb5,
18491            fidl::encoding::DynamicFlags::empty(),
18492            _decode,
18493        )
18494    }
18495
18496    type SetIpMulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
18497        BaseNetworkSocketSetIpMulticastInterfaceResult,
18498        fidl::encoding::DefaultFuchsiaResourceDialect,
18499    >;
18500    fn r#set_ip_multicast_interface(
18501        &self,
18502        mut iface: u64,
18503        mut address: &fidl_fuchsia_net::Ipv4Address,
18504    ) -> Self::SetIpMulticastInterfaceResponseFut {
18505        fn _decode(
18506            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18507        ) -> Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error> {
18508            let _response = fidl::client::decode_transaction_body::<
18509                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18510                fidl::encoding::DefaultFuchsiaResourceDialect,
18511                0x752fbfa9b12befe,
18512            >(_buf?)?;
18513            Ok(_response.map(|x| x))
18514        }
18515        self.client.send_query_and_decode::<
18516            BaseNetworkSocketSetIpMulticastInterfaceRequest,
18517            BaseNetworkSocketSetIpMulticastInterfaceResult,
18518        >(
18519            (iface, address,),
18520            0x752fbfa9b12befe,
18521            fidl::encoding::DynamicFlags::empty(),
18522            _decode,
18523        )
18524    }
18525
18526    type GetIpMulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
18527        BaseNetworkSocketGetIpMulticastInterfaceResult,
18528        fidl::encoding::DefaultFuchsiaResourceDialect,
18529    >;
18530    fn r#get_ip_multicast_interface(&self) -> Self::GetIpMulticastInterfaceResponseFut {
18531        fn _decode(
18532            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18533        ) -> Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error> {
18534            let _response = fidl::client::decode_transaction_body::<
18535                fidl::encoding::ResultType<
18536                    BaseNetworkSocketGetIpMulticastInterfaceResponse,
18537                    fidl_fuchsia_posix::Errno,
18538                >,
18539                fidl::encoding::DefaultFuchsiaResourceDialect,
18540                0x320bd14c4df046c4,
18541            >(_buf?)?;
18542            Ok(_response.map(|x| x.value))
18543        }
18544        self.client.send_query_and_decode::<
18545            fidl::encoding::EmptyPayload,
18546            BaseNetworkSocketGetIpMulticastInterfaceResult,
18547        >(
18548            (),
18549            0x320bd14c4df046c4,
18550            fidl::encoding::DynamicFlags::empty(),
18551            _decode,
18552        )
18553    }
18554
18555    type SetIpMulticastTtlResponseFut = fidl::client::QueryResponseFut<
18556        BaseNetworkSocketSetIpMulticastTtlResult,
18557        fidl::encoding::DefaultFuchsiaResourceDialect,
18558    >;
18559    fn r#set_ip_multicast_ttl(
18560        &self,
18561        mut value: &OptionalUint8,
18562    ) -> Self::SetIpMulticastTtlResponseFut {
18563        fn _decode(
18564            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18565        ) -> Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error> {
18566            let _response = fidl::client::decode_transaction_body::<
18567                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18568                fidl::encoding::DefaultFuchsiaResourceDialect,
18569                0x63134d53772916a1,
18570            >(_buf?)?;
18571            Ok(_response.map(|x| x))
18572        }
18573        self.client.send_query_and_decode::<
18574            BaseNetworkSocketSetIpMulticastTtlRequest,
18575            BaseNetworkSocketSetIpMulticastTtlResult,
18576        >(
18577            (value,),
18578            0x63134d53772916a1,
18579            fidl::encoding::DynamicFlags::empty(),
18580            _decode,
18581        )
18582    }
18583
18584    type GetIpMulticastTtlResponseFut = fidl::client::QueryResponseFut<
18585        BaseNetworkSocketGetIpMulticastTtlResult,
18586        fidl::encoding::DefaultFuchsiaResourceDialect,
18587    >;
18588    fn r#get_ip_multicast_ttl(&self) -> Self::GetIpMulticastTtlResponseFut {
18589        fn _decode(
18590            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18591        ) -> Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error> {
18592            let _response = fidl::client::decode_transaction_body::<
18593                fidl::encoding::ResultType<
18594                    BaseNetworkSocketGetIpMulticastTtlResponse,
18595                    fidl_fuchsia_posix::Errno,
18596                >,
18597                fidl::encoding::DefaultFuchsiaResourceDialect,
18598                0x4665cd378f39e1a,
18599            >(_buf?)?;
18600            Ok(_response.map(|x| x.value))
18601        }
18602        self.client.send_query_and_decode::<
18603            fidl::encoding::EmptyPayload,
18604            BaseNetworkSocketGetIpMulticastTtlResult,
18605        >(
18606            (),
18607            0x4665cd378f39e1a,
18608            fidl::encoding::DynamicFlags::empty(),
18609            _decode,
18610        )
18611    }
18612
18613    type SetIpMulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
18614        BaseNetworkSocketSetIpMulticastLoopbackResult,
18615        fidl::encoding::DefaultFuchsiaResourceDialect,
18616    >;
18617    fn r#set_ip_multicast_loopback(
18618        &self,
18619        mut value: bool,
18620    ) -> Self::SetIpMulticastLoopbackResponseFut {
18621        fn _decode(
18622            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18623        ) -> Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error> {
18624            let _response = fidl::client::decode_transaction_body::<
18625                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18626                fidl::encoding::DefaultFuchsiaResourceDialect,
18627                0x20c55c11f00943ea,
18628            >(_buf?)?;
18629            Ok(_response.map(|x| x))
18630        }
18631        self.client.send_query_and_decode::<
18632            BaseNetworkSocketSetIpMulticastLoopbackRequest,
18633            BaseNetworkSocketSetIpMulticastLoopbackResult,
18634        >(
18635            (value,),
18636            0x20c55c11f00943ea,
18637            fidl::encoding::DynamicFlags::empty(),
18638            _decode,
18639        )
18640    }
18641
18642    type GetIpMulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
18643        BaseNetworkSocketGetIpMulticastLoopbackResult,
18644        fidl::encoding::DefaultFuchsiaResourceDialect,
18645    >;
18646    fn r#get_ip_multicast_loopback(&self) -> Self::GetIpMulticastLoopbackResponseFut {
18647        fn _decode(
18648            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18649        ) -> Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error> {
18650            let _response = fidl::client::decode_transaction_body::<
18651                fidl::encoding::ResultType<
18652                    BaseNetworkSocketGetIpMulticastLoopbackResponse,
18653                    fidl_fuchsia_posix::Errno,
18654                >,
18655                fidl::encoding::DefaultFuchsiaResourceDialect,
18656                0x3b6b26ff558298f2,
18657            >(_buf?)?;
18658            Ok(_response.map(|x| x.value))
18659        }
18660        self.client.send_query_and_decode::<
18661            fidl::encoding::EmptyPayload,
18662            BaseNetworkSocketGetIpMulticastLoopbackResult,
18663        >(
18664            (),
18665            0x3b6b26ff558298f2,
18666            fidl::encoding::DynamicFlags::empty(),
18667            _decode,
18668        )
18669    }
18670
18671    type AddIpMembershipResponseFut = fidl::client::QueryResponseFut<
18672        BaseNetworkSocketAddIpMembershipResult,
18673        fidl::encoding::DefaultFuchsiaResourceDialect,
18674    >;
18675    fn r#add_ip_membership(
18676        &self,
18677        mut membership: &IpMulticastMembership,
18678    ) -> Self::AddIpMembershipResponseFut {
18679        fn _decode(
18680            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18681        ) -> Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error> {
18682            let _response = fidl::client::decode_transaction_body::<
18683                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18684                fidl::encoding::DefaultFuchsiaResourceDialect,
18685                0x76bc7df115a3b4d0,
18686            >(_buf?)?;
18687            Ok(_response.map(|x| x))
18688        }
18689        self.client.send_query_and_decode::<
18690            BaseNetworkSocketAddIpMembershipRequest,
18691            BaseNetworkSocketAddIpMembershipResult,
18692        >(
18693            (membership,),
18694            0x76bc7df115a3b4d0,
18695            fidl::encoding::DynamicFlags::empty(),
18696            _decode,
18697        )
18698    }
18699
18700    type DropIpMembershipResponseFut = fidl::client::QueryResponseFut<
18701        BaseNetworkSocketDropIpMembershipResult,
18702        fidl::encoding::DefaultFuchsiaResourceDialect,
18703    >;
18704    fn r#drop_ip_membership(
18705        &self,
18706        mut membership: &IpMulticastMembership,
18707    ) -> Self::DropIpMembershipResponseFut {
18708        fn _decode(
18709            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18710        ) -> Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error> {
18711            let _response = fidl::client::decode_transaction_body::<
18712                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18713                fidl::encoding::DefaultFuchsiaResourceDialect,
18714                0x2888f3099188d03,
18715            >(_buf?)?;
18716            Ok(_response.map(|x| x))
18717        }
18718        self.client.send_query_and_decode::<
18719            BaseNetworkSocketDropIpMembershipRequest,
18720            BaseNetworkSocketDropIpMembershipResult,
18721        >(
18722            (membership,),
18723            0x2888f3099188d03,
18724            fidl::encoding::DynamicFlags::empty(),
18725            _decode,
18726        )
18727    }
18728
18729    type SetIpTransparentResponseFut = fidl::client::QueryResponseFut<
18730        BaseNetworkSocketSetIpTransparentResult,
18731        fidl::encoding::DefaultFuchsiaResourceDialect,
18732    >;
18733    fn r#set_ip_transparent(&self, mut value: bool) -> Self::SetIpTransparentResponseFut {
18734        fn _decode(
18735            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18736        ) -> Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error> {
18737            let _response = fidl::client::decode_transaction_body::<
18738                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18739                fidl::encoding::DefaultFuchsiaResourceDialect,
18740                0x1ae532b0c066e3a0,
18741            >(_buf?)?;
18742            Ok(_response.map(|x| x))
18743        }
18744        self.client.send_query_and_decode::<
18745            BaseNetworkSocketSetIpTransparentRequest,
18746            BaseNetworkSocketSetIpTransparentResult,
18747        >(
18748            (value,),
18749            0x1ae532b0c066e3a0,
18750            fidl::encoding::DynamicFlags::empty(),
18751            _decode,
18752        )
18753    }
18754
18755    type GetIpTransparentResponseFut = fidl::client::QueryResponseFut<
18756        BaseNetworkSocketGetIpTransparentResult,
18757        fidl::encoding::DefaultFuchsiaResourceDialect,
18758    >;
18759    fn r#get_ip_transparent(&self) -> Self::GetIpTransparentResponseFut {
18760        fn _decode(
18761            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18762        ) -> Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error> {
18763            let _response = fidl::client::decode_transaction_body::<
18764                fidl::encoding::ResultType<
18765                    BaseNetworkSocketGetIpTransparentResponse,
18766                    fidl_fuchsia_posix::Errno,
18767                >,
18768                fidl::encoding::DefaultFuchsiaResourceDialect,
18769                0x51d43695962ebfb5,
18770            >(_buf?)?;
18771            Ok(_response.map(|x| x.value))
18772        }
18773        self.client.send_query_and_decode::<
18774            fidl::encoding::EmptyPayload,
18775            BaseNetworkSocketGetIpTransparentResult,
18776        >(
18777            (),
18778            0x51d43695962ebfb5,
18779            fidl::encoding::DynamicFlags::empty(),
18780            _decode,
18781        )
18782    }
18783
18784    type SetIpReceiveOriginalDestinationAddressResponseFut = fidl::client::QueryResponseFut<
18785        BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
18786        fidl::encoding::DefaultFuchsiaResourceDialect,
18787    >;
18788    fn r#set_ip_receive_original_destination_address(
18789        &self,
18790        mut value: bool,
18791    ) -> Self::SetIpReceiveOriginalDestinationAddressResponseFut {
18792        fn _decode(
18793            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18794        ) -> Result<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult, fidl::Error>
18795        {
18796            let _response = fidl::client::decode_transaction_body::<
18797                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18798                fidl::encoding::DefaultFuchsiaResourceDialect,
18799                0x4722b4ce52f7840,
18800            >(_buf?)?;
18801            Ok(_response.map(|x| x))
18802        }
18803        self.client.send_query_and_decode::<
18804            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
18805            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
18806        >(
18807            (value,),
18808            0x4722b4ce52f7840,
18809            fidl::encoding::DynamicFlags::empty(),
18810            _decode,
18811        )
18812    }
18813
18814    type GetIpReceiveOriginalDestinationAddressResponseFut = fidl::client::QueryResponseFut<
18815        BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
18816        fidl::encoding::DefaultFuchsiaResourceDialect,
18817    >;
18818    fn r#get_ip_receive_original_destination_address(
18819        &self,
18820    ) -> Self::GetIpReceiveOriginalDestinationAddressResponseFut {
18821        fn _decode(
18822            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18823        ) -> Result<BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult, fidl::Error>
18824        {
18825            let _response = fidl::client::decode_transaction_body::<
18826                fidl::encoding::ResultType<
18827                    BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
18828                    fidl_fuchsia_posix::Errno,
18829                >,
18830                fidl::encoding::DefaultFuchsiaResourceDialect,
18831                0x2a0e7dc5d6bfdfe9,
18832            >(_buf?)?;
18833            Ok(_response.map(|x| x.value))
18834        }
18835        self.client.send_query_and_decode::<
18836            fidl::encoding::EmptyPayload,
18837            BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
18838        >(
18839            (),
18840            0x2a0e7dc5d6bfdfe9,
18841            fidl::encoding::DynamicFlags::empty(),
18842            _decode,
18843        )
18844    }
18845
18846    type AddIpv6MembershipResponseFut = fidl::client::QueryResponseFut<
18847        BaseNetworkSocketAddIpv6MembershipResult,
18848        fidl::encoding::DefaultFuchsiaResourceDialect,
18849    >;
18850    fn r#add_ipv6_membership(
18851        &self,
18852        mut membership: &Ipv6MulticastMembership,
18853    ) -> Self::AddIpv6MembershipResponseFut {
18854        fn _decode(
18855            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18856        ) -> Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error> {
18857            let _response = fidl::client::decode_transaction_body::<
18858                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18859                fidl::encoding::DefaultFuchsiaResourceDialect,
18860                0x7c94727acb4ea4b3,
18861            >(_buf?)?;
18862            Ok(_response.map(|x| x))
18863        }
18864        self.client.send_query_and_decode::<
18865            BaseNetworkSocketAddIpv6MembershipRequest,
18866            BaseNetworkSocketAddIpv6MembershipResult,
18867        >(
18868            (membership,),
18869            0x7c94727acb4ea4b3,
18870            fidl::encoding::DynamicFlags::empty(),
18871            _decode,
18872        )
18873    }
18874
18875    type DropIpv6MembershipResponseFut = fidl::client::QueryResponseFut<
18876        BaseNetworkSocketDropIpv6MembershipResult,
18877        fidl::encoding::DefaultFuchsiaResourceDialect,
18878    >;
18879    fn r#drop_ipv6_membership(
18880        &self,
18881        mut membership: &Ipv6MulticastMembership,
18882    ) -> Self::DropIpv6MembershipResponseFut {
18883        fn _decode(
18884            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18885        ) -> Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error> {
18886            let _response = fidl::client::decode_transaction_body::<
18887                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18888                fidl::encoding::DefaultFuchsiaResourceDialect,
18889                0x42104c70ccaba304,
18890            >(_buf?)?;
18891            Ok(_response.map(|x| x))
18892        }
18893        self.client.send_query_and_decode::<
18894            BaseNetworkSocketDropIpv6MembershipRequest,
18895            BaseNetworkSocketDropIpv6MembershipResult,
18896        >(
18897            (membership,),
18898            0x42104c70ccaba304,
18899            fidl::encoding::DynamicFlags::empty(),
18900            _decode,
18901        )
18902    }
18903
18904    type SetIpv6MulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
18905        BaseNetworkSocketSetIpv6MulticastInterfaceResult,
18906        fidl::encoding::DefaultFuchsiaResourceDialect,
18907    >;
18908    fn r#set_ipv6_multicast_interface(
18909        &self,
18910        mut value: u64,
18911    ) -> Self::SetIpv6MulticastInterfaceResponseFut {
18912        fn _decode(
18913            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18914        ) -> Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error> {
18915            let _response = fidl::client::decode_transaction_body::<
18916                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18917                fidl::encoding::DefaultFuchsiaResourceDialect,
18918                0x135f76db3774ab3b,
18919            >(_buf?)?;
18920            Ok(_response.map(|x| x))
18921        }
18922        self.client.send_query_and_decode::<
18923            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
18924            BaseNetworkSocketSetIpv6MulticastInterfaceResult,
18925        >(
18926            (value,),
18927            0x135f76db3774ab3b,
18928            fidl::encoding::DynamicFlags::empty(),
18929            _decode,
18930        )
18931    }
18932
18933    type GetIpv6MulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
18934        BaseNetworkSocketGetIpv6MulticastInterfaceResult,
18935        fidl::encoding::DefaultFuchsiaResourceDialect,
18936    >;
18937    fn r#get_ipv6_multicast_interface(&self) -> Self::GetIpv6MulticastInterfaceResponseFut {
18938        fn _decode(
18939            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18940        ) -> Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error> {
18941            let _response = fidl::client::decode_transaction_body::<
18942                fidl::encoding::ResultType<
18943                    BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
18944                    fidl_fuchsia_posix::Errno,
18945                >,
18946                fidl::encoding::DefaultFuchsiaResourceDialect,
18947                0x1f26fcdd348f1882,
18948            >(_buf?)?;
18949            Ok(_response.map(|x| x.value))
18950        }
18951        self.client.send_query_and_decode::<
18952            fidl::encoding::EmptyPayload,
18953            BaseNetworkSocketGetIpv6MulticastInterfaceResult,
18954        >(
18955            (),
18956            0x1f26fcdd348f1882,
18957            fidl::encoding::DynamicFlags::empty(),
18958            _decode,
18959        )
18960    }
18961
18962    type SetIpv6UnicastHopsResponseFut = fidl::client::QueryResponseFut<
18963        BaseNetworkSocketSetIpv6UnicastHopsResult,
18964        fidl::encoding::DefaultFuchsiaResourceDialect,
18965    >;
18966    fn r#set_ipv6_unicast_hops(
18967        &self,
18968        mut value: &OptionalUint8,
18969    ) -> Self::SetIpv6UnicastHopsResponseFut {
18970        fn _decode(
18971            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18972        ) -> Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error> {
18973            let _response = fidl::client::decode_transaction_body::<
18974                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18975                fidl::encoding::DefaultFuchsiaResourceDialect,
18976                0x157d51e98f462859,
18977            >(_buf?)?;
18978            Ok(_response.map(|x| x))
18979        }
18980        self.client.send_query_and_decode::<
18981            BaseNetworkSocketSetIpv6UnicastHopsRequest,
18982            BaseNetworkSocketSetIpv6UnicastHopsResult,
18983        >(
18984            (value,),
18985            0x157d51e98f462859,
18986            fidl::encoding::DynamicFlags::empty(),
18987            _decode,
18988        )
18989    }
18990
18991    type GetIpv6UnicastHopsResponseFut = fidl::client::QueryResponseFut<
18992        BaseNetworkSocketGetIpv6UnicastHopsResult,
18993        fidl::encoding::DefaultFuchsiaResourceDialect,
18994    >;
18995    fn r#get_ipv6_unicast_hops(&self) -> Self::GetIpv6UnicastHopsResponseFut {
18996        fn _decode(
18997            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18998        ) -> Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error> {
18999            let _response = fidl::client::decode_transaction_body::<
19000                fidl::encoding::ResultType<
19001                    BaseNetworkSocketGetIpv6UnicastHopsResponse,
19002                    fidl_fuchsia_posix::Errno,
19003                >,
19004                fidl::encoding::DefaultFuchsiaResourceDialect,
19005                0x21f4641cad8bd8d2,
19006            >(_buf?)?;
19007            Ok(_response.map(|x| x.value))
19008        }
19009        self.client.send_query_and_decode::<
19010            fidl::encoding::EmptyPayload,
19011            BaseNetworkSocketGetIpv6UnicastHopsResult,
19012        >(
19013            (),
19014            0x21f4641cad8bd8d2,
19015            fidl::encoding::DynamicFlags::empty(),
19016            _decode,
19017        )
19018    }
19019
19020    type SetIpv6ReceiveHopLimitResponseFut = fidl::client::QueryResponseFut<
19021        BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
19022        fidl::encoding::DefaultFuchsiaResourceDialect,
19023    >;
19024    fn r#set_ipv6_receive_hop_limit(
19025        &self,
19026        mut value: bool,
19027    ) -> Self::SetIpv6ReceiveHopLimitResponseFut {
19028        fn _decode(
19029            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
19030        ) -> Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error> {
19031            let _response = fidl::client::decode_transaction_body::<
19032                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
19033                fidl::encoding::DefaultFuchsiaResourceDialect,
19034                0x5c24808ed2e84a1e,
19035            >(_buf?)?;
19036            Ok(_response.map(|x| x))
19037        }
19038        self.client.send_query_and_decode::<
19039            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
19040            BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
19041        >(
19042            (value,),
19043            0x5c24808ed2e84a1e,
19044            fidl::encoding::DynamicFlags::empty(),
19045            _decode,
19046        )
19047    }
19048
19049    type GetIpv6ReceiveHopLimitResponseFut = fidl::client::QueryResponseFut<
19050        BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
19051        fidl::encoding::DefaultFuchsiaResourceDialect,
19052    >;
19053    fn r#get_ipv6_receive_hop_limit(&self) -> Self::GetIpv6ReceiveHopLimitResponseFut {
19054        fn _decode(
19055            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
19056        ) -> Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error> {
19057            let _response = fidl::client::decode_transaction_body::<
19058                fidl::encoding::ResultType<
19059                    BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
19060                    fidl_fuchsia_posix::Errno,
19061                >,
19062                fidl::encoding::DefaultFuchsiaResourceDialect,
19063                0x341e06689885b4c0,
19064            >(_buf?)?;
19065            Ok(_response.map(|x| x.value))
19066        }
19067        self.client.send_query_and_decode::<
19068            fidl::encoding::EmptyPayload,
19069            BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
19070        >(
19071            (),
19072            0x341e06689885b4c0,
19073            fidl::encoding::DynamicFlags::empty(),
19074            _decode,
19075        )
19076    }
19077
19078    type SetIpv6MulticastHopsResponseFut = fidl::client::QueryResponseFut<
19079        BaseNetworkSocketSetIpv6MulticastHopsResult,
19080        fidl::encoding::DefaultFuchsiaResourceDialect,
19081    >;
19082    fn r#set_ipv6_multicast_hops(
19083        &self,
19084        mut value: &OptionalUint8,
19085    ) -> Self::SetIpv6MulticastHopsResponseFut {
19086        fn _decode(
19087            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
19088        ) -> Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error> {
19089            let _response = fidl::client::decode_transaction_body::<
19090                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
19091                fidl::encoding::DefaultFuchsiaResourceDialect,
19092                0x25b9cd4d181f82c1,
19093            >(_buf?)?;
19094            Ok(_response.map(|x| x))
19095        }
19096        self.client.send_query_and_decode::<
19097            BaseNetworkSocketSetIpv6MulticastHopsRequest,
19098            BaseNetworkSocketSetIpv6MulticastHopsResult,
19099        >(
19100            (value,),
19101            0x25b9cd4d181f82c1,
19102            fidl::encoding::DynamicFlags::empty(),
19103            _decode,
19104        )
19105    }
19106
19107    type GetIpv6MulticastHopsResponseFut = fidl::client::QueryResponseFut<
19108        BaseNetworkSocketGetIpv6MulticastHopsResult,
19109        fidl::encoding::DefaultFuchsiaResourceDialect,
19110    >;
19111    fn r#get_ipv6_multicast_hops(&self) -> Self::GetIpv6MulticastHopsResponseFut {
19112        fn _decode(
19113            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
19114        ) -> Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error> {
19115            let _response = fidl::client::decode_transaction_body::<
19116                fidl::encoding::ResultType<
19117                    BaseNetworkSocketGetIpv6MulticastHopsResponse,
19118                    fidl_fuchsia_posix::Errno,
19119                >,
19120                fidl::encoding::DefaultFuchsiaResourceDialect,
19121                0x52916948a365012a,
19122            >(_buf?)?;
19123            Ok(_response.map(|x| x.value))
19124        }
19125        self.client.send_query_and_decode::<
19126            fidl::encoding::EmptyPayload,
19127            BaseNetworkSocketGetIpv6MulticastHopsResult,
19128        >(
19129            (),
19130            0x52916948a365012a,
19131            fidl::encoding::DynamicFlags::empty(),
19132            _decode,
19133        )
19134    }
19135
19136    type SetIpv6MulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
19137        BaseNetworkSocketSetIpv6MulticastLoopbackResult,
19138        fidl::encoding::DefaultFuchsiaResourceDialect,
19139    >;
19140    fn r#set_ipv6_multicast_loopback(
19141        &self,
19142        mut value: bool,
19143    ) -> Self::SetIpv6MulticastLoopbackResponseFut {
19144        fn _decode(
19145            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
19146        ) -> Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error> {
19147            let _response = fidl::client::decode_transaction_body::<
19148                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
19149                fidl::encoding::DefaultFuchsiaResourceDialect,
19150                0x55701c409ff41b40,
19151            >(_buf?)?;
19152            Ok(_response.map(|x| x))
19153        }
19154        self.client.send_query_and_decode::<
19155            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
19156            BaseNetworkSocketSetIpv6MulticastLoopbackResult,
19157        >(
19158            (value,),
19159            0x55701c409ff41b40,
19160            fidl::encoding::DynamicFlags::empty(),
19161            _decode,
19162        )
19163    }
19164
19165    type GetIpv6MulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
19166        BaseNetworkSocketGetIpv6MulticastLoopbackResult,
19167        fidl::encoding::DefaultFuchsiaResourceDialect,
19168    >;
19169    fn r#get_ipv6_multicast_loopback(&self) -> Self::GetIpv6MulticastLoopbackResponseFut {
19170        fn _decode(
19171            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
19172        ) -> Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error> {
19173            let _response = fidl::client::decode_transaction_body::<
19174                fidl::encoding::ResultType<
19175                    BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
19176                    fidl_fuchsia_posix::Errno,
19177                >,
19178                fidl::encoding::DefaultFuchsiaResourceDialect,
19179                0x4415b701fde319c3,
19180            >(_buf?)?;
19181            Ok(_response.map(|x| x.value))
19182        }
19183        self.client.send_query_and_decode::<
19184            fidl::encoding::EmptyPayload,
19185            BaseNetworkSocketGetIpv6MulticastLoopbackResult,
19186        >(
19187            (),
19188            0x4415b701fde319c3,
19189            fidl::encoding::DynamicFlags::empty(),
19190            _decode,
19191        )
19192    }
19193
19194    type SetIpv6OnlyResponseFut = fidl::client::QueryResponseFut<
19195        BaseNetworkSocketSetIpv6OnlyResult,
19196        fidl::encoding::DefaultFuchsiaResourceDialect,
19197    >;
19198    fn r#set_ipv6_only(&self, mut value: bool) -> Self::SetIpv6OnlyResponseFut {
19199        fn _decode(
19200            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
19201        ) -> Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error> {
19202            let _response = fidl::client::decode_transaction_body::<
19203                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
19204                fidl::encoding::DefaultFuchsiaResourceDialect,
19205                0x4873f1364758cbba,
19206            >(_buf?)?;
19207            Ok(_response.map(|x| x))
19208        }
19209        self.client.send_query_and_decode::<
19210            BaseNetworkSocketSetIpv6OnlyRequest,
19211            BaseNetworkSocketSetIpv6OnlyResult,
19212        >(
19213            (value,),
19214            0x4873f1364758cbba,
19215            fidl::encoding::DynamicFlags::empty(),
19216            _decode,
19217        )
19218    }
19219
19220    type GetIpv6OnlyResponseFut = fidl::client::QueryResponseFut<
19221        BaseNetworkSocketGetIpv6OnlyResult,
19222        fidl::encoding::DefaultFuchsiaResourceDialect,
19223    >;
19224    fn r#get_ipv6_only(&self) -> Self::GetIpv6OnlyResponseFut {
19225        fn _decode(
19226            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
19227        ) -> Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error> {
19228            let _response = fidl::client::decode_transaction_body::<
19229                fidl::encoding::ResultType<
19230                    BaseNetworkSocketGetIpv6OnlyResponse,
19231                    fidl_fuchsia_posix::Errno,
19232                >,
19233                fidl::encoding::DefaultFuchsiaResourceDialect,
19234                0x4aa3340a1a26b89c,
19235            >(_buf?)?;
19236            Ok(_response.map(|x| x.value))
19237        }
19238        self.client.send_query_and_decode::<
19239            fidl::encoding::EmptyPayload,
19240            BaseNetworkSocketGetIpv6OnlyResult,
19241        >(
19242            (),
19243            0x4aa3340a1a26b89c,
19244            fidl::encoding::DynamicFlags::empty(),
19245            _decode,
19246        )
19247    }
19248
19249    type SetIpv6ReceiveTrafficClassResponseFut = fidl::client::QueryResponseFut<
19250        BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
19251        fidl::encoding::DefaultFuchsiaResourceDialect,
19252    >;
19253    fn r#set_ipv6_receive_traffic_class(
19254        &self,
19255        mut value: bool,
19256    ) -> Self::SetIpv6ReceiveTrafficClassResponseFut {
19257        fn _decode(
19258            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
19259        ) -> Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error> {
19260            let _response = fidl::client::decode_transaction_body::<
19261                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
19262                fidl::encoding::DefaultFuchsiaResourceDialect,
19263                0x58f07c8788d099a0,
19264            >(_buf?)?;
19265            Ok(_response.map(|x| x))
19266        }
19267        self.client.send_query_and_decode::<
19268            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
19269            BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
19270        >(
19271            (value,),
19272            0x58f07c8788d099a0,
19273            fidl::encoding::DynamicFlags::empty(),
19274            _decode,
19275        )
19276    }
19277
19278    type GetIpv6ReceiveTrafficClassResponseFut = fidl::client::QueryResponseFut<
19279        BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
19280        fidl::encoding::DefaultFuchsiaResourceDialect,
19281    >;
19282    fn r#get_ipv6_receive_traffic_class(&self) -> Self::GetIpv6ReceiveTrafficClassResponseFut {
19283        fn _decode(
19284            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
19285        ) -> Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error> {
19286            let _response = fidl::client::decode_transaction_body::<
19287                fidl::encoding::ResultType<
19288                    BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
19289                    fidl_fuchsia_posix::Errno,
19290                >,
19291                fidl::encoding::DefaultFuchsiaResourceDialect,
19292                0x2e334df1da553ffa,
19293            >(_buf?)?;
19294            Ok(_response.map(|x| x.value))
19295        }
19296        self.client.send_query_and_decode::<
19297            fidl::encoding::EmptyPayload,
19298            BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
19299        >(
19300            (),
19301            0x2e334df1da553ffa,
19302            fidl::encoding::DynamicFlags::empty(),
19303            _decode,
19304        )
19305    }
19306
19307    type SetIpv6TrafficClassResponseFut = fidl::client::QueryResponseFut<
19308        BaseNetworkSocketSetIpv6TrafficClassResult,
19309        fidl::encoding::DefaultFuchsiaResourceDialect,
19310    >;
19311    fn r#set_ipv6_traffic_class(
19312        &self,
19313        mut value: &OptionalUint8,
19314    ) -> Self::SetIpv6TrafficClassResponseFut {
19315        fn _decode(
19316            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
19317        ) -> Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error> {
19318            let _response = fidl::client::decode_transaction_body::<
19319                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
19320                fidl::encoding::DefaultFuchsiaResourceDialect,
19321                0x6af077800c5a0b4f,
19322            >(_buf?)?;
19323            Ok(_response.map(|x| x))
19324        }
19325        self.client.send_query_and_decode::<
19326            BaseNetworkSocketSetIpv6TrafficClassRequest,
19327            BaseNetworkSocketSetIpv6TrafficClassResult,
19328        >(
19329            (value,),
19330            0x6af077800c5a0b4f,
19331            fidl::encoding::DynamicFlags::empty(),
19332            _decode,
19333        )
19334    }
19335
19336    type GetIpv6TrafficClassResponseFut = fidl::client::QueryResponseFut<
19337        BaseNetworkSocketGetIpv6TrafficClassResult,
19338        fidl::encoding::DefaultFuchsiaResourceDialect,
19339    >;
19340    fn r#get_ipv6_traffic_class(&self) -> Self::GetIpv6TrafficClassResponseFut {
19341        fn _decode(
19342            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
19343        ) -> Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error> {
19344            let _response = fidl::client::decode_transaction_body::<
19345                fidl::encoding::ResultType<
19346                    BaseNetworkSocketGetIpv6TrafficClassResponse,
19347                    fidl_fuchsia_posix::Errno,
19348                >,
19349                fidl::encoding::DefaultFuchsiaResourceDialect,
19350                0x6baf6eed8fc2f04,
19351            >(_buf?)?;
19352            Ok(_response.map(|x| x.value))
19353        }
19354        self.client.send_query_and_decode::<
19355            fidl::encoding::EmptyPayload,
19356            BaseNetworkSocketGetIpv6TrafficClassResult,
19357        >(
19358            (),
19359            0x6baf6eed8fc2f04,
19360            fidl::encoding::DynamicFlags::empty(),
19361            _decode,
19362        )
19363    }
19364
19365    type SetIpv6ReceivePacketInfoResponseFut = fidl::client::QueryResponseFut<
19366        BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
19367        fidl::encoding::DefaultFuchsiaResourceDialect,
19368    >;
19369    fn r#set_ipv6_receive_packet_info(
19370        &self,
19371        mut value: bool,
19372    ) -> Self::SetIpv6ReceivePacketInfoResponseFut {
19373        fn _decode(
19374            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
19375        ) -> Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error> {
19376            let _response = fidl::client::decode_transaction_body::<
19377                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
19378                fidl::encoding::DefaultFuchsiaResourceDialect,
19379                0x19259775b1a92768,
19380            >(_buf?)?;
19381            Ok(_response.map(|x| x))
19382        }
19383        self.client.send_query_and_decode::<
19384            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
19385            BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
19386        >(
19387            (value,),
19388            0x19259775b1a92768,
19389            fidl::encoding::DynamicFlags::empty(),
19390            _decode,
19391        )
19392    }
19393
19394    type GetIpv6ReceivePacketInfoResponseFut = fidl::client::QueryResponseFut<
19395        BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
19396        fidl::encoding::DefaultFuchsiaResourceDialect,
19397    >;
19398    fn r#get_ipv6_receive_packet_info(&self) -> Self::GetIpv6ReceivePacketInfoResponseFut {
19399        fn _decode(
19400            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
19401        ) -> Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error> {
19402            let _response = fidl::client::decode_transaction_body::<
19403                fidl::encoding::ResultType<
19404                    BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
19405                    fidl_fuchsia_posix::Errno,
19406                >,
19407                fidl::encoding::DefaultFuchsiaResourceDialect,
19408                0x7acd4a2775baec75,
19409            >(_buf?)?;
19410            Ok(_response.map(|x| x.value))
19411        }
19412        self.client.send_query_and_decode::<
19413            fidl::encoding::EmptyPayload,
19414            BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
19415        >(
19416            (),
19417            0x7acd4a2775baec75,
19418            fidl::encoding::DynamicFlags::empty(),
19419            _decode,
19420        )
19421    }
19422
19423    type GetOriginalDestinationResponseFut = fidl::client::QueryResponseFut<
19424        BaseNetworkSocketGetOriginalDestinationResult,
19425        fidl::encoding::DefaultFuchsiaResourceDialect,
19426    >;
19427    fn r#get_original_destination(&self) -> Self::GetOriginalDestinationResponseFut {
19428        fn _decode(
19429            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
19430        ) -> Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error> {
19431            let _response = fidl::client::decode_transaction_body::<
19432                fidl::encoding::ResultType<
19433                    BaseNetworkSocketGetOriginalDestinationResponse,
19434                    fidl_fuchsia_posix::Errno,
19435                >,
19436                fidl::encoding::DefaultFuchsiaResourceDialect,
19437                0x38bf28f0dafdbac0,
19438            >(_buf?)?;
19439            Ok(_response.map(|x| x.value))
19440        }
19441        self.client.send_query_and_decode::<
19442            fidl::encoding::EmptyPayload,
19443            BaseNetworkSocketGetOriginalDestinationResult,
19444        >(
19445            (),
19446            0x38bf28f0dafdbac0,
19447            fidl::encoding::DynamicFlags::empty(),
19448            _decode,
19449        )
19450    }
19451}
19452
19453pub struct BaseNetworkSocketEventStream {
19454    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
19455}
19456
19457impl std::marker::Unpin for BaseNetworkSocketEventStream {}
19458
19459impl futures::stream::FusedStream for BaseNetworkSocketEventStream {
19460    fn is_terminated(&self) -> bool {
19461        self.event_receiver.is_terminated()
19462    }
19463}
19464
19465impl futures::Stream for BaseNetworkSocketEventStream {
19466    type Item = Result<BaseNetworkSocketEvent, fidl::Error>;
19467
19468    fn poll_next(
19469        mut self: std::pin::Pin<&mut Self>,
19470        cx: &mut std::task::Context<'_>,
19471    ) -> std::task::Poll<Option<Self::Item>> {
19472        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
19473            &mut self.event_receiver,
19474            cx
19475        )?) {
19476            Some(buf) => std::task::Poll::Ready(Some(BaseNetworkSocketEvent::decode(buf))),
19477            None => std::task::Poll::Ready(None),
19478        }
19479    }
19480}
19481
19482#[derive(Debug)]
19483pub enum BaseNetworkSocketEvent {}
19484
19485impl BaseNetworkSocketEvent {
19486    /// Decodes a message buffer as a [`BaseNetworkSocketEvent`].
19487    fn decode(
19488        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
19489    ) -> Result<BaseNetworkSocketEvent, fidl::Error> {
19490        let (bytes, _handles) = buf.split_mut();
19491        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
19492        debug_assert_eq!(tx_header.tx_id, 0);
19493        match tx_header.ordinal {
19494            _ => Err(fidl::Error::UnknownOrdinal {
19495                ordinal: tx_header.ordinal,
19496                protocol_name:
19497                    <BaseNetworkSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
19498            }),
19499        }
19500    }
19501}
19502
19503/// A Stream of incoming requests for fuchsia.posix.socket/BaseNetworkSocket.
19504pub struct BaseNetworkSocketRequestStream {
19505    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
19506    is_terminated: bool,
19507}
19508
19509impl std::marker::Unpin for BaseNetworkSocketRequestStream {}
19510
19511impl futures::stream::FusedStream for BaseNetworkSocketRequestStream {
19512    fn is_terminated(&self) -> bool {
19513        self.is_terminated
19514    }
19515}
19516
19517impl fidl::endpoints::RequestStream for BaseNetworkSocketRequestStream {
19518    type Protocol = BaseNetworkSocketMarker;
19519    type ControlHandle = BaseNetworkSocketControlHandle;
19520
19521    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
19522        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
19523    }
19524
19525    fn control_handle(&self) -> Self::ControlHandle {
19526        BaseNetworkSocketControlHandle { inner: self.inner.clone() }
19527    }
19528
19529    fn into_inner(
19530        self,
19531    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
19532    {
19533        (self.inner, self.is_terminated)
19534    }
19535
19536    fn from_inner(
19537        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
19538        is_terminated: bool,
19539    ) -> Self {
19540        Self { inner, is_terminated }
19541    }
19542}
19543
19544impl futures::Stream for BaseNetworkSocketRequestStream {
19545    type Item = Result<BaseNetworkSocketRequest, fidl::Error>;
19546
19547    fn poll_next(
19548        mut self: std::pin::Pin<&mut Self>,
19549        cx: &mut std::task::Context<'_>,
19550    ) -> std::task::Poll<Option<Self::Item>> {
19551        let this = &mut *self;
19552        if this.inner.check_shutdown(cx) {
19553            this.is_terminated = true;
19554            return std::task::Poll::Ready(None);
19555        }
19556        if this.is_terminated {
19557            panic!("polled BaseNetworkSocketRequestStream after completion");
19558        }
19559        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
19560            |bytes, handles| {
19561                match this.inner.channel().read_etc(cx, bytes, handles) {
19562                    std::task::Poll::Ready(Ok(())) => {}
19563                    std::task::Poll::Pending => return std::task::Poll::Pending,
19564                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
19565                        this.is_terminated = true;
19566                        return std::task::Poll::Ready(None);
19567                    }
19568                    std::task::Poll::Ready(Err(e)) => {
19569                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
19570                            e.into(),
19571                        ))));
19572                    }
19573                }
19574
19575                // A message has been received from the channel
19576                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
19577
19578                std::task::Poll::Ready(Some(match header.ordinal {
19579                    0x20d8a7aba2168a79 => {
19580                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
19581                        let mut req = fidl::new_empty!(
19582                            fidl_fuchsia_unknown::CloneableCloneRequest,
19583                            fidl::encoding::DefaultFuchsiaResourceDialect
19584                        );
19585                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl_fuchsia_unknown::CloneableCloneRequest>(&header, _body_bytes, handles, &mut req)?;
19586                        let control_handle =
19587                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19588                        Ok(BaseNetworkSocketRequest::Clone { request: req.request, control_handle })
19589                    }
19590                    0x5ac5d459ad7f657e => {
19591                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19592                        let mut req = fidl::new_empty!(
19593                            fidl::encoding::EmptyPayload,
19594                            fidl::encoding::DefaultFuchsiaResourceDialect
19595                        );
19596                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19597                        let control_handle =
19598                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19599                        Ok(BaseNetworkSocketRequest::Close {
19600                            responder: BaseNetworkSocketCloseResponder {
19601                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19602                                tx_id: header.tx_id,
19603                            },
19604                        })
19605                    }
19606                    0x2658edee9decfc06 => {
19607                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19608                        let mut req = fidl::new_empty!(
19609                            fidl::encoding::EmptyPayload,
19610                            fidl::encoding::DefaultFuchsiaResourceDialect
19611                        );
19612                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19613                        let control_handle =
19614                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19615                        Ok(BaseNetworkSocketRequest::Query {
19616                            responder: BaseNetworkSocketQueryResponder {
19617                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19618                                tx_id: header.tx_id,
19619                            },
19620                        })
19621                    }
19622                    0x1fd74ee8b9a4a876 => {
19623                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19624                        let mut req = fidl::new_empty!(
19625                            BaseSocketSetReuseAddressRequest,
19626                            fidl::encoding::DefaultFuchsiaResourceDialect
19627                        );
19628                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReuseAddressRequest>(&header, _body_bytes, handles, &mut req)?;
19629                        let control_handle =
19630                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19631                        Ok(BaseNetworkSocketRequest::SetReuseAddress {
19632                            value: req.value,
19633
19634                            responder: BaseNetworkSocketSetReuseAddressResponder {
19635                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19636                                tx_id: header.tx_id,
19637                            },
19638                        })
19639                    }
19640                    0x67b7206b8d1bc0a5 => {
19641                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19642                        let mut req = fidl::new_empty!(
19643                            fidl::encoding::EmptyPayload,
19644                            fidl::encoding::DefaultFuchsiaResourceDialect
19645                        );
19646                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19647                        let control_handle =
19648                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19649                        Ok(BaseNetworkSocketRequest::GetReuseAddress {
19650                            responder: BaseNetworkSocketGetReuseAddressResponder {
19651                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19652                                tx_id: header.tx_id,
19653                            },
19654                        })
19655                    }
19656                    0x5aad39b33e5f6ebb => {
19657                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19658                        let mut req = fidl::new_empty!(
19659                            fidl::encoding::EmptyPayload,
19660                            fidl::encoding::DefaultFuchsiaResourceDialect
19661                        );
19662                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19663                        let control_handle =
19664                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19665                        Ok(BaseNetworkSocketRequest::GetError {
19666                            responder: BaseNetworkSocketGetErrorResponder {
19667                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19668                                tx_id: header.tx_id,
19669                            },
19670                        })
19671                    }
19672                    0x6023e081ce3cd947 => {
19673                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19674                        let mut req = fidl::new_empty!(
19675                            BaseSocketSetBroadcastRequest,
19676                            fidl::encoding::DefaultFuchsiaResourceDialect
19677                        );
19678                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBroadcastRequest>(&header, _body_bytes, handles, &mut req)?;
19679                        let control_handle =
19680                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19681                        Ok(BaseNetworkSocketRequest::SetBroadcast {
19682                            value: req.value,
19683
19684                            responder: BaseNetworkSocketSetBroadcastResponder {
19685                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19686                                tx_id: header.tx_id,
19687                            },
19688                        })
19689                    }
19690                    0x68796fc556f9780d => {
19691                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19692                        let mut req = fidl::new_empty!(
19693                            fidl::encoding::EmptyPayload,
19694                            fidl::encoding::DefaultFuchsiaResourceDialect
19695                        );
19696                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19697                        let control_handle =
19698                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19699                        Ok(BaseNetworkSocketRequest::GetBroadcast {
19700                            responder: BaseNetworkSocketGetBroadcastResponder {
19701                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19702                                tx_id: header.tx_id,
19703                            },
19704                        })
19705                    }
19706                    0x756eac32d73a7a70 => {
19707                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19708                        let mut req = fidl::new_empty!(
19709                            BaseSocketSetSendBufferRequest,
19710                            fidl::encoding::DefaultFuchsiaResourceDialect
19711                        );
19712                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetSendBufferRequest>(&header, _body_bytes, handles, &mut req)?;
19713                        let control_handle =
19714                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19715                        Ok(BaseNetworkSocketRequest::SetSendBuffer {
19716                            value_bytes: req.value_bytes,
19717
19718                            responder: BaseNetworkSocketSetSendBufferResponder {
19719                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19720                                tx_id: header.tx_id,
19721                            },
19722                        })
19723                    }
19724                    0x78a52fd9c7b2410b => {
19725                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19726                        let mut req = fidl::new_empty!(
19727                            fidl::encoding::EmptyPayload,
19728                            fidl::encoding::DefaultFuchsiaResourceDialect
19729                        );
19730                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19731                        let control_handle =
19732                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19733                        Ok(BaseNetworkSocketRequest::GetSendBuffer {
19734                            responder: BaseNetworkSocketGetSendBufferResponder {
19735                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19736                                tx_id: header.tx_id,
19737                            },
19738                        })
19739                    }
19740                    0x6b0cf2f1919c7001 => {
19741                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19742                        let mut req = fidl::new_empty!(
19743                            BaseSocketSetReceiveBufferRequest,
19744                            fidl::encoding::DefaultFuchsiaResourceDialect
19745                        );
19746                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReceiveBufferRequest>(&header, _body_bytes, handles, &mut req)?;
19747                        let control_handle =
19748                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19749                        Ok(BaseNetworkSocketRequest::SetReceiveBuffer {
19750                            value_bytes: req.value_bytes,
19751
19752                            responder: BaseNetworkSocketSetReceiveBufferResponder {
19753                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19754                                tx_id: header.tx_id,
19755                            },
19756                        })
19757                    }
19758                    0x14c1a4b64f709e5c => {
19759                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19760                        let mut req = fidl::new_empty!(
19761                            fidl::encoding::EmptyPayload,
19762                            fidl::encoding::DefaultFuchsiaResourceDialect
19763                        );
19764                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19765                        let control_handle =
19766                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19767                        Ok(BaseNetworkSocketRequest::GetReceiveBuffer {
19768                            responder: BaseNetworkSocketGetReceiveBufferResponder {
19769                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19770                                tx_id: header.tx_id,
19771                            },
19772                        })
19773                    }
19774                    0x572df8f0b920d2c7 => {
19775                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19776                        let mut req = fidl::new_empty!(
19777                            BaseSocketSetKeepAliveRequest,
19778                            fidl::encoding::DefaultFuchsiaResourceDialect
19779                        );
19780                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetKeepAliveRequest>(&header, _body_bytes, handles, &mut req)?;
19781                        let control_handle =
19782                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19783                        Ok(BaseNetworkSocketRequest::SetKeepAlive {
19784                            value: req.value,
19785
19786                            responder: BaseNetworkSocketSetKeepAliveResponder {
19787                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19788                                tx_id: header.tx_id,
19789                            },
19790                        })
19791                    }
19792                    0x2dd29d3215f2c9d2 => {
19793                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19794                        let mut req = fidl::new_empty!(
19795                            fidl::encoding::EmptyPayload,
19796                            fidl::encoding::DefaultFuchsiaResourceDialect
19797                        );
19798                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19799                        let control_handle =
19800                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19801                        Ok(BaseNetworkSocketRequest::GetKeepAlive {
19802                            responder: BaseNetworkSocketGetKeepAliveResponder {
19803                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19804                                tx_id: header.tx_id,
19805                            },
19806                        })
19807                    }
19808                    0x3ecb49968bee439 => {
19809                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19810                        let mut req = fidl::new_empty!(
19811                            BaseSocketSetOutOfBandInlineRequest,
19812                            fidl::encoding::DefaultFuchsiaResourceDialect
19813                        );
19814                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetOutOfBandInlineRequest>(&header, _body_bytes, handles, &mut req)?;
19815                        let control_handle =
19816                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19817                        Ok(BaseNetworkSocketRequest::SetOutOfBandInline {
19818                            value: req.value,
19819
19820                            responder: BaseNetworkSocketSetOutOfBandInlineResponder {
19821                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19822                                tx_id: header.tx_id,
19823                            },
19824                        })
19825                    }
19826                    0x348c1ab3aeca1745 => {
19827                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19828                        let mut req = fidl::new_empty!(
19829                            fidl::encoding::EmptyPayload,
19830                            fidl::encoding::DefaultFuchsiaResourceDialect
19831                        );
19832                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19833                        let control_handle =
19834                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19835                        Ok(BaseNetworkSocketRequest::GetOutOfBandInline {
19836                            responder: BaseNetworkSocketGetOutOfBandInlineResponder {
19837                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19838                                tx_id: header.tx_id,
19839                            },
19840                        })
19841                    }
19842                    0x6bbf00c53a4c78c2 => {
19843                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19844                        let mut req = fidl::new_empty!(
19845                            BaseSocketSetNoCheckRequest,
19846                            fidl::encoding::DefaultFuchsiaResourceDialect
19847                        );
19848                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetNoCheckRequest>(&header, _body_bytes, handles, &mut req)?;
19849                        let control_handle =
19850                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19851                        Ok(BaseNetworkSocketRequest::SetNoCheck {
19852                            value: req.value,
19853
19854                            responder: BaseNetworkSocketSetNoCheckResponder {
19855                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19856                                tx_id: header.tx_id,
19857                            },
19858                        })
19859                    }
19860                    0x2cd4249286417694 => {
19861                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19862                        let mut req = fidl::new_empty!(
19863                            fidl::encoding::EmptyPayload,
19864                            fidl::encoding::DefaultFuchsiaResourceDialect
19865                        );
19866                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19867                        let control_handle =
19868                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19869                        Ok(BaseNetworkSocketRequest::GetNoCheck {
19870                            responder: BaseNetworkSocketGetNoCheckResponder {
19871                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19872                                tx_id: header.tx_id,
19873                            },
19874                        })
19875                    }
19876                    0x45386351246e998e => {
19877                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19878                        let mut req = fidl::new_empty!(
19879                            BaseSocketSetLingerRequest,
19880                            fidl::encoding::DefaultFuchsiaResourceDialect
19881                        );
19882                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetLingerRequest>(&header, _body_bytes, handles, &mut req)?;
19883                        let control_handle =
19884                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19885                        Ok(BaseNetworkSocketRequest::SetLinger {
19886                            linger: req.linger,
19887                            length_secs: req.length_secs,
19888
19889                            responder: BaseNetworkSocketSetLingerResponder {
19890                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19891                                tx_id: header.tx_id,
19892                            },
19893                        })
19894                    }
19895                    0x48eb20fc5ccb0e45 => {
19896                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19897                        let mut req = fidl::new_empty!(
19898                            fidl::encoding::EmptyPayload,
19899                            fidl::encoding::DefaultFuchsiaResourceDialect
19900                        );
19901                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19902                        let control_handle =
19903                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19904                        Ok(BaseNetworkSocketRequest::GetLinger {
19905                            responder: BaseNetworkSocketGetLingerResponder {
19906                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19907                                tx_id: header.tx_id,
19908                            },
19909                        })
19910                    }
19911                    0x547dc9cc0455189e => {
19912                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19913                        let mut req = fidl::new_empty!(
19914                            BaseSocketSetReusePortRequest,
19915                            fidl::encoding::DefaultFuchsiaResourceDialect
19916                        );
19917                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReusePortRequest>(&header, _body_bytes, handles, &mut req)?;
19918                        let control_handle =
19919                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19920                        Ok(BaseNetworkSocketRequest::SetReusePort {
19921                            value: req.value,
19922
19923                            responder: BaseNetworkSocketSetReusePortResponder {
19924                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19925                                tx_id: header.tx_id,
19926                            },
19927                        })
19928                    }
19929                    0x24dd3e5cb36d9ccb => {
19930                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19931                        let mut req = fidl::new_empty!(
19932                            BaseSocketSetReusePortDeprecatedRequest,
19933                            fidl::encoding::DefaultFuchsiaResourceDialect
19934                        );
19935                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReusePortDeprecatedRequest>(&header, _body_bytes, handles, &mut req)?;
19936                        let control_handle =
19937                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19938                        Ok(BaseNetworkSocketRequest::SetReusePortDeprecated {
19939                            value: req.value,
19940
19941                            responder: BaseNetworkSocketSetReusePortDeprecatedResponder {
19942                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19943                                tx_id: header.tx_id,
19944                            },
19945                        })
19946                    }
19947                    0x7a112c1ab54ff828 => {
19948                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19949                        let mut req = fidl::new_empty!(
19950                            fidl::encoding::EmptyPayload,
19951                            fidl::encoding::DefaultFuchsiaResourceDialect
19952                        );
19953                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19954                        let control_handle =
19955                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19956                        Ok(BaseNetworkSocketRequest::GetReusePort {
19957                            responder: BaseNetworkSocketGetReusePortResponder {
19958                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19959                                tx_id: header.tx_id,
19960                            },
19961                        })
19962                    }
19963                    0x67ce6db6c2ec8966 => {
19964                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19965                        let mut req = fidl::new_empty!(
19966                            fidl::encoding::EmptyPayload,
19967                            fidl::encoding::DefaultFuchsiaResourceDialect
19968                        );
19969                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19970                        let control_handle =
19971                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19972                        Ok(BaseNetworkSocketRequest::GetAcceptConn {
19973                            responder: BaseNetworkSocketGetAcceptConnResponder {
19974                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19975                                tx_id: header.tx_id,
19976                            },
19977                        })
19978                    }
19979                    0x2118b483f28aafc4 => {
19980                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19981                        let mut req = fidl::new_empty!(
19982                            BaseSocketSetBindToDeviceRequest,
19983                            fidl::encoding::DefaultFuchsiaResourceDialect
19984                        );
19985                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToDeviceRequest>(&header, _body_bytes, handles, &mut req)?;
19986                        let control_handle =
19987                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19988                        Ok(BaseNetworkSocketRequest::SetBindToDevice {
19989                            value: req.value,
19990
19991                            responder: BaseNetworkSocketSetBindToDeviceResponder {
19992                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19993                                tx_id: header.tx_id,
19994                            },
19995                        })
19996                    }
19997                    0x1ab1fbf0ef7906c8 => {
19998                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19999                        let mut req = fidl::new_empty!(
20000                            fidl::encoding::EmptyPayload,
20001                            fidl::encoding::DefaultFuchsiaResourceDialect
20002                        );
20003                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20004                        let control_handle =
20005                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20006                        Ok(BaseNetworkSocketRequest::GetBindToDevice {
20007                            responder: BaseNetworkSocketGetBindToDeviceResponder {
20008                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20009                                tx_id: header.tx_id,
20010                            },
20011                        })
20012                    }
20013                    0x6e387a0def00821 => {
20014                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20015                        let mut req = fidl::new_empty!(
20016                            BaseSocketSetBindToInterfaceIndexRequest,
20017                            fidl::encoding::DefaultFuchsiaResourceDialect
20018                        );
20019                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToInterfaceIndexRequest>(&header, _body_bytes, handles, &mut req)?;
20020                        let control_handle =
20021                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20022                        Ok(BaseNetworkSocketRequest::SetBindToInterfaceIndex {
20023                            value: req.value,
20024
20025                            responder: BaseNetworkSocketSetBindToInterfaceIndexResponder {
20026                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20027                                tx_id: header.tx_id,
20028                            },
20029                        })
20030                    }
20031                    0x59c31dd3e3078295 => {
20032                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20033                        let mut req = fidl::new_empty!(
20034                            fidl::encoding::EmptyPayload,
20035                            fidl::encoding::DefaultFuchsiaResourceDialect
20036                        );
20037                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20038                        let control_handle =
20039                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20040                        Ok(BaseNetworkSocketRequest::GetBindToInterfaceIndex {
20041                            responder: BaseNetworkSocketGetBindToInterfaceIndexResponder {
20042                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20043                                tx_id: header.tx_id,
20044                            },
20045                        })
20046                    }
20047                    0x285d6516c263d839 => {
20048                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20049                        let mut req = fidl::new_empty!(
20050                            BaseSocketSetTimestampRequest,
20051                            fidl::encoding::DefaultFuchsiaResourceDialect
20052                        );
20053                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetTimestampRequest>(&header, _body_bytes, handles, &mut req)?;
20054                        let control_handle =
20055                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20056                        Ok(BaseNetworkSocketRequest::SetTimestamp {
20057                            value: req.value,
20058
20059                            responder: BaseNetworkSocketSetTimestampResponder {
20060                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20061                                tx_id: header.tx_id,
20062                            },
20063                        })
20064                    }
20065                    0x49f2fffbbcc2bd27 => {
20066                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20067                        let mut req = fidl::new_empty!(
20068                            fidl::encoding::EmptyPayload,
20069                            fidl::encoding::DefaultFuchsiaResourceDialect
20070                        );
20071                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20072                        let control_handle =
20073                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20074                        Ok(BaseNetworkSocketRequest::GetTimestamp {
20075                            responder: BaseNetworkSocketGetTimestampResponder {
20076                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20077                                tx_id: header.tx_id,
20078                            },
20079                        })
20080                    }
20081                    0x6ead6de09f653236 => {
20082                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20083                        let mut req = fidl::new_empty!(
20084                            BaseSocketSetMarkRequest,
20085                            fidl::encoding::DefaultFuchsiaResourceDialect
20086                        );
20087                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
20088                        let control_handle =
20089                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20090                        Ok(BaseNetworkSocketRequest::SetMark {
20091                            domain: req.domain,
20092                            mark: req.mark,
20093
20094                            responder: BaseNetworkSocketSetMarkResponder {
20095                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20096                                tx_id: header.tx_id,
20097                            },
20098                        })
20099                    }
20100                    0x57a2752c61d93d47 => {
20101                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20102                        let mut req = fidl::new_empty!(
20103                            BaseSocketGetMarkRequest,
20104                            fidl::encoding::DefaultFuchsiaResourceDialect
20105                        );
20106                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketGetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
20107                        let control_handle =
20108                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20109                        Ok(BaseNetworkSocketRequest::GetMark {
20110                            domain: req.domain,
20111
20112                            responder: BaseNetworkSocketGetMarkResponder {
20113                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20114                                tx_id: header.tx_id,
20115                            },
20116                        })
20117                    }
20118                    0x2c2f47fd8f924e52 => {
20119                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20120                        let mut req = fidl::new_empty!(
20121                            fidl::encoding::EmptyPayload,
20122                            fidl::encoding::DefaultFuchsiaResourceDialect
20123                        );
20124                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20125                        let control_handle =
20126                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20127                        Ok(BaseNetworkSocketRequest::GetCookie {
20128                            responder: BaseNetworkSocketGetCookieResponder {
20129                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20130                                tx_id: header.tx_id,
20131                            },
20132                        })
20133                    }
20134                    0x4bc6400ae92125d => {
20135                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20136                        let mut req = fidl::new_empty!(
20137                            BaseNetworkSocketBindRequest,
20138                            fidl::encoding::DefaultFuchsiaResourceDialect
20139                        );
20140                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketBindRequest>(&header, _body_bytes, handles, &mut req)?;
20141                        let control_handle =
20142                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20143                        Ok(BaseNetworkSocketRequest::Bind {
20144                            addr: req.addr,
20145
20146                            responder: BaseNetworkSocketBindResponder {
20147                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20148                                tx_id: header.tx_id,
20149                            },
20150                        })
20151                    }
20152                    0x5f05f19bfdd38871 => {
20153                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20154                        let mut req = fidl::new_empty!(
20155                            BaseNetworkSocketConnectRequest,
20156                            fidl::encoding::DefaultFuchsiaResourceDialect
20157                        );
20158                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketConnectRequest>(&header, _body_bytes, handles, &mut req)?;
20159                        let control_handle =
20160                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20161                        Ok(BaseNetworkSocketRequest::Connect {
20162                            addr: req.addr,
20163
20164                            responder: BaseNetworkSocketConnectResponder {
20165                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20166                                tx_id: header.tx_id,
20167                            },
20168                        })
20169                    }
20170                    0x74e63b91f7b29b2 => {
20171                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20172                        let mut req = fidl::new_empty!(
20173                            fidl::encoding::EmptyPayload,
20174                            fidl::encoding::DefaultFuchsiaResourceDialect
20175                        );
20176                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20177                        let control_handle =
20178                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20179                        Ok(BaseNetworkSocketRequest::Disconnect {
20180                            responder: BaseNetworkSocketDisconnectResponder {
20181                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20182                                tx_id: header.tx_id,
20183                            },
20184                        })
20185                    }
20186                    0x475f23f84a1a4f85 => {
20187                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20188                        let mut req = fidl::new_empty!(
20189                            fidl::encoding::EmptyPayload,
20190                            fidl::encoding::DefaultFuchsiaResourceDialect
20191                        );
20192                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20193                        let control_handle =
20194                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20195                        Ok(BaseNetworkSocketRequest::GetSockName {
20196                            responder: BaseNetworkSocketGetSockNameResponder {
20197                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20198                                tx_id: header.tx_id,
20199                            },
20200                        })
20201                    }
20202                    0x1ffecf4bd5b6432e => {
20203                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20204                        let mut req = fidl::new_empty!(
20205                            fidl::encoding::EmptyPayload,
20206                            fidl::encoding::DefaultFuchsiaResourceDialect
20207                        );
20208                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20209                        let control_handle =
20210                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20211                        Ok(BaseNetworkSocketRequest::GetPeerName {
20212                            responder: BaseNetworkSocketGetPeerNameResponder {
20213                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20214                                tx_id: header.tx_id,
20215                            },
20216                        })
20217                    }
20218                    0x247f38b6db68c336 => {
20219                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20220                        let mut req = fidl::new_empty!(
20221                            BaseNetworkSocketShutdownRequest,
20222                            fidl::encoding::DefaultFuchsiaResourceDialect
20223                        );
20224                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketShutdownRequest>(&header, _body_bytes, handles, &mut req)?;
20225                        let control_handle =
20226                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20227                        Ok(BaseNetworkSocketRequest::Shutdown {
20228                            mode: req.mode,
20229
20230                            responder: BaseNetworkSocketShutdownResponder {
20231                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20232                                tx_id: header.tx_id,
20233                            },
20234                        })
20235                    }
20236                    0x995c600475b6d46 => {
20237                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20238                        let mut req = fidl::new_empty!(
20239                            BaseNetworkSocketSetIpTypeOfServiceRequest,
20240                            fidl::encoding::DefaultFuchsiaResourceDialect
20241                        );
20242                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTypeOfServiceRequest>(&header, _body_bytes, handles, &mut req)?;
20243                        let control_handle =
20244                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20245                        Ok(BaseNetworkSocketRequest::SetIpTypeOfService {
20246                            value: req.value,
20247
20248                            responder: BaseNetworkSocketSetIpTypeOfServiceResponder {
20249                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20250                                tx_id: header.tx_id,
20251                            },
20252                        })
20253                    }
20254                    0x3814a04259f75fcb => {
20255                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20256                        let mut req = fidl::new_empty!(
20257                            fidl::encoding::EmptyPayload,
20258                            fidl::encoding::DefaultFuchsiaResourceDialect
20259                        );
20260                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20261                        let control_handle =
20262                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20263                        Ok(BaseNetworkSocketRequest::GetIpTypeOfService {
20264                            responder: BaseNetworkSocketGetIpTypeOfServiceResponder {
20265                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20266                                tx_id: header.tx_id,
20267                            },
20268                        })
20269                    }
20270                    0x29e2424b433ae1ef => {
20271                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20272                        let mut req = fidl::new_empty!(
20273                            BaseNetworkSocketSetIpTtlRequest,
20274                            fidl::encoding::DefaultFuchsiaResourceDialect
20275                        );
20276                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTtlRequest>(&header, _body_bytes, handles, &mut req)?;
20277                        let control_handle =
20278                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20279                        Ok(BaseNetworkSocketRequest::SetIpTtl {
20280                            value: req.value,
20281
20282                            responder: BaseNetworkSocketSetIpTtlResponder {
20283                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20284                                tx_id: header.tx_id,
20285                            },
20286                        })
20287                    }
20288                    0x47e47fa1f24da471 => {
20289                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20290                        let mut req = fidl::new_empty!(
20291                            fidl::encoding::EmptyPayload,
20292                            fidl::encoding::DefaultFuchsiaResourceDialect
20293                        );
20294                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20295                        let control_handle =
20296                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20297                        Ok(BaseNetworkSocketRequest::GetIpTtl {
20298                            responder: BaseNetworkSocketGetIpTtlResponder {
20299                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20300                                tx_id: header.tx_id,
20301                            },
20302                        })
20303                    }
20304                    0x392d16bee20c0e16 => {
20305                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20306                        let mut req = fidl::new_empty!(
20307                            BaseNetworkSocketSetIpPacketInfoRequest,
20308                            fidl::encoding::DefaultFuchsiaResourceDialect
20309                        );
20310                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpPacketInfoRequest>(&header, _body_bytes, handles, &mut req)?;
20311                        let control_handle =
20312                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20313                        Ok(BaseNetworkSocketRequest::SetIpPacketInfo {
20314                            value: req.value,
20315
20316                            responder: BaseNetworkSocketSetIpPacketInfoResponder {
20317                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20318                                tx_id: header.tx_id,
20319                            },
20320                        })
20321                    }
20322                    0x54b505f242280740 => {
20323                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20324                        let mut req = fidl::new_empty!(
20325                            fidl::encoding::EmptyPayload,
20326                            fidl::encoding::DefaultFuchsiaResourceDialect
20327                        );
20328                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20329                        let control_handle =
20330                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20331                        Ok(BaseNetworkSocketRequest::GetIpPacketInfo {
20332                            responder: BaseNetworkSocketGetIpPacketInfoResponder {
20333                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20334                                tx_id: header.tx_id,
20335                            },
20336                        })
20337                    }
20338                    0x6c4f6714995f84ef => {
20339                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20340                        let mut req = fidl::new_empty!(
20341                            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
20342                            fidl::encoding::DefaultFuchsiaResourceDialect
20343                        );
20344                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveTypeOfServiceRequest>(&header, _body_bytes, handles, &mut req)?;
20345                        let control_handle =
20346                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20347                        Ok(BaseNetworkSocketRequest::SetIpReceiveTypeOfService {
20348                            value: req.value,
20349
20350                            responder: BaseNetworkSocketSetIpReceiveTypeOfServiceResponder {
20351                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20352                                tx_id: header.tx_id,
20353                            },
20354                        })
20355                    }
20356                    0x4158ba7dc2795960 => {
20357                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20358                        let mut req = fidl::new_empty!(
20359                            fidl::encoding::EmptyPayload,
20360                            fidl::encoding::DefaultFuchsiaResourceDialect
20361                        );
20362                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20363                        let control_handle =
20364                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20365                        Ok(BaseNetworkSocketRequest::GetIpReceiveTypeOfService {
20366                            responder: BaseNetworkSocketGetIpReceiveTypeOfServiceResponder {
20367                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20368                                tx_id: header.tx_id,
20369                            },
20370                        })
20371                    }
20372                    0x46f15be0ce0ab82b => {
20373                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20374                        let mut req = fidl::new_empty!(
20375                            BaseNetworkSocketSetIpReceiveTtlRequest,
20376                            fidl::encoding::DefaultFuchsiaResourceDialect
20377                        );
20378                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveTtlRequest>(&header, _body_bytes, handles, &mut req)?;
20379                        let control_handle =
20380                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20381                        Ok(BaseNetworkSocketRequest::SetIpReceiveTtl {
20382                            value: req.value,
20383
20384                            responder: BaseNetworkSocketSetIpReceiveTtlResponder {
20385                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20386                                tx_id: header.tx_id,
20387                            },
20388                        })
20389                    }
20390                    0x678ddd5a5dfa2eb5 => {
20391                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20392                        let mut req = fidl::new_empty!(
20393                            fidl::encoding::EmptyPayload,
20394                            fidl::encoding::DefaultFuchsiaResourceDialect
20395                        );
20396                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20397                        let control_handle =
20398                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20399                        Ok(BaseNetworkSocketRequest::GetIpReceiveTtl {
20400                            responder: BaseNetworkSocketGetIpReceiveTtlResponder {
20401                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20402                                tx_id: header.tx_id,
20403                            },
20404                        })
20405                    }
20406                    0x752fbfa9b12befe => {
20407                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20408                        let mut req = fidl::new_empty!(
20409                            BaseNetworkSocketSetIpMulticastInterfaceRequest,
20410                            fidl::encoding::DefaultFuchsiaResourceDialect
20411                        );
20412                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastInterfaceRequest>(&header, _body_bytes, handles, &mut req)?;
20413                        let control_handle =
20414                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20415                        Ok(BaseNetworkSocketRequest::SetIpMulticastInterface {
20416                            iface: req.iface,
20417                            address: req.address,
20418
20419                            responder: BaseNetworkSocketSetIpMulticastInterfaceResponder {
20420                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20421                                tx_id: header.tx_id,
20422                            },
20423                        })
20424                    }
20425                    0x320bd14c4df046c4 => {
20426                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20427                        let mut req = fidl::new_empty!(
20428                            fidl::encoding::EmptyPayload,
20429                            fidl::encoding::DefaultFuchsiaResourceDialect
20430                        );
20431                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20432                        let control_handle =
20433                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20434                        Ok(BaseNetworkSocketRequest::GetIpMulticastInterface {
20435                            responder: BaseNetworkSocketGetIpMulticastInterfaceResponder {
20436                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20437                                tx_id: header.tx_id,
20438                            },
20439                        })
20440                    }
20441                    0x63134d53772916a1 => {
20442                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20443                        let mut req = fidl::new_empty!(
20444                            BaseNetworkSocketSetIpMulticastTtlRequest,
20445                            fidl::encoding::DefaultFuchsiaResourceDialect
20446                        );
20447                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastTtlRequest>(&header, _body_bytes, handles, &mut req)?;
20448                        let control_handle =
20449                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20450                        Ok(BaseNetworkSocketRequest::SetIpMulticastTtl {
20451                            value: req.value,
20452
20453                            responder: BaseNetworkSocketSetIpMulticastTtlResponder {
20454                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20455                                tx_id: header.tx_id,
20456                            },
20457                        })
20458                    }
20459                    0x4665cd378f39e1a => {
20460                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20461                        let mut req = fidl::new_empty!(
20462                            fidl::encoding::EmptyPayload,
20463                            fidl::encoding::DefaultFuchsiaResourceDialect
20464                        );
20465                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20466                        let control_handle =
20467                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20468                        Ok(BaseNetworkSocketRequest::GetIpMulticastTtl {
20469                            responder: BaseNetworkSocketGetIpMulticastTtlResponder {
20470                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20471                                tx_id: header.tx_id,
20472                            },
20473                        })
20474                    }
20475                    0x20c55c11f00943ea => {
20476                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20477                        let mut req = fidl::new_empty!(
20478                            BaseNetworkSocketSetIpMulticastLoopbackRequest,
20479                            fidl::encoding::DefaultFuchsiaResourceDialect
20480                        );
20481                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastLoopbackRequest>(&header, _body_bytes, handles, &mut req)?;
20482                        let control_handle =
20483                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20484                        Ok(BaseNetworkSocketRequest::SetIpMulticastLoopback {
20485                            value: req.value,
20486
20487                            responder: BaseNetworkSocketSetIpMulticastLoopbackResponder {
20488                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20489                                tx_id: header.tx_id,
20490                            },
20491                        })
20492                    }
20493                    0x3b6b26ff558298f2 => {
20494                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20495                        let mut req = fidl::new_empty!(
20496                            fidl::encoding::EmptyPayload,
20497                            fidl::encoding::DefaultFuchsiaResourceDialect
20498                        );
20499                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20500                        let control_handle =
20501                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20502                        Ok(BaseNetworkSocketRequest::GetIpMulticastLoopback {
20503                            responder: BaseNetworkSocketGetIpMulticastLoopbackResponder {
20504                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20505                                tx_id: header.tx_id,
20506                            },
20507                        })
20508                    }
20509                    0x76bc7df115a3b4d0 => {
20510                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20511                        let mut req = fidl::new_empty!(
20512                            BaseNetworkSocketAddIpMembershipRequest,
20513                            fidl::encoding::DefaultFuchsiaResourceDialect
20514                        );
20515                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketAddIpMembershipRequest>(&header, _body_bytes, handles, &mut req)?;
20516                        let control_handle =
20517                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20518                        Ok(BaseNetworkSocketRequest::AddIpMembership {
20519                            membership: req.membership,
20520
20521                            responder: BaseNetworkSocketAddIpMembershipResponder {
20522                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20523                                tx_id: header.tx_id,
20524                            },
20525                        })
20526                    }
20527                    0x2888f3099188d03 => {
20528                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20529                        let mut req = fidl::new_empty!(
20530                            BaseNetworkSocketDropIpMembershipRequest,
20531                            fidl::encoding::DefaultFuchsiaResourceDialect
20532                        );
20533                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketDropIpMembershipRequest>(&header, _body_bytes, handles, &mut req)?;
20534                        let control_handle =
20535                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20536                        Ok(BaseNetworkSocketRequest::DropIpMembership {
20537                            membership: req.membership,
20538
20539                            responder: BaseNetworkSocketDropIpMembershipResponder {
20540                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20541                                tx_id: header.tx_id,
20542                            },
20543                        })
20544                    }
20545                    0x1ae532b0c066e3a0 => {
20546                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20547                        let mut req = fidl::new_empty!(
20548                            BaseNetworkSocketSetIpTransparentRequest,
20549                            fidl::encoding::DefaultFuchsiaResourceDialect
20550                        );
20551                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTransparentRequest>(&header, _body_bytes, handles, &mut req)?;
20552                        let control_handle =
20553                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20554                        Ok(BaseNetworkSocketRequest::SetIpTransparent {
20555                            value: req.value,
20556
20557                            responder: BaseNetworkSocketSetIpTransparentResponder {
20558                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20559                                tx_id: header.tx_id,
20560                            },
20561                        })
20562                    }
20563                    0x51d43695962ebfb5 => {
20564                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20565                        let mut req = fidl::new_empty!(
20566                            fidl::encoding::EmptyPayload,
20567                            fidl::encoding::DefaultFuchsiaResourceDialect
20568                        );
20569                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20570                        let control_handle =
20571                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20572                        Ok(BaseNetworkSocketRequest::GetIpTransparent {
20573                            responder: BaseNetworkSocketGetIpTransparentResponder {
20574                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20575                                tx_id: header.tx_id,
20576                            },
20577                        })
20578                    }
20579                    0x4722b4ce52f7840 => {
20580                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20581                        let mut req = fidl::new_empty!(
20582                            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
20583                            fidl::encoding::DefaultFuchsiaResourceDialect
20584                        );
20585                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest>(&header, _body_bytes, handles, &mut req)?;
20586                        let control_handle =
20587                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20588                        Ok(BaseNetworkSocketRequest::SetIpReceiveOriginalDestinationAddress {
20589                            value: req.value,
20590
20591                            responder:
20592                                BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResponder {
20593                                    control_handle: std::mem::ManuallyDrop::new(control_handle),
20594                                    tx_id: header.tx_id,
20595                                },
20596                        })
20597                    }
20598                    0x2a0e7dc5d6bfdfe9 => {
20599                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20600                        let mut req = fidl::new_empty!(
20601                            fidl::encoding::EmptyPayload,
20602                            fidl::encoding::DefaultFuchsiaResourceDialect
20603                        );
20604                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20605                        let control_handle =
20606                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20607                        Ok(BaseNetworkSocketRequest::GetIpReceiveOriginalDestinationAddress {
20608                            responder:
20609                                BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponder {
20610                                    control_handle: std::mem::ManuallyDrop::new(control_handle),
20611                                    tx_id: header.tx_id,
20612                                },
20613                        })
20614                    }
20615                    0x7c94727acb4ea4b3 => {
20616                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20617                        let mut req = fidl::new_empty!(
20618                            BaseNetworkSocketAddIpv6MembershipRequest,
20619                            fidl::encoding::DefaultFuchsiaResourceDialect
20620                        );
20621                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketAddIpv6MembershipRequest>(&header, _body_bytes, handles, &mut req)?;
20622                        let control_handle =
20623                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20624                        Ok(BaseNetworkSocketRequest::AddIpv6Membership {
20625                            membership: req.membership,
20626
20627                            responder: BaseNetworkSocketAddIpv6MembershipResponder {
20628                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20629                                tx_id: header.tx_id,
20630                            },
20631                        })
20632                    }
20633                    0x42104c70ccaba304 => {
20634                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20635                        let mut req = fidl::new_empty!(
20636                            BaseNetworkSocketDropIpv6MembershipRequest,
20637                            fidl::encoding::DefaultFuchsiaResourceDialect
20638                        );
20639                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketDropIpv6MembershipRequest>(&header, _body_bytes, handles, &mut req)?;
20640                        let control_handle =
20641                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20642                        Ok(BaseNetworkSocketRequest::DropIpv6Membership {
20643                            membership: req.membership,
20644
20645                            responder: BaseNetworkSocketDropIpv6MembershipResponder {
20646                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20647                                tx_id: header.tx_id,
20648                            },
20649                        })
20650                    }
20651                    0x135f76db3774ab3b => {
20652                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20653                        let mut req = fidl::new_empty!(
20654                            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
20655                            fidl::encoding::DefaultFuchsiaResourceDialect
20656                        );
20657                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastInterfaceRequest>(&header, _body_bytes, handles, &mut req)?;
20658                        let control_handle =
20659                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20660                        Ok(BaseNetworkSocketRequest::SetIpv6MulticastInterface {
20661                            value: req.value,
20662
20663                            responder: BaseNetworkSocketSetIpv6MulticastInterfaceResponder {
20664                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20665                                tx_id: header.tx_id,
20666                            },
20667                        })
20668                    }
20669                    0x1f26fcdd348f1882 => {
20670                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20671                        let mut req = fidl::new_empty!(
20672                            fidl::encoding::EmptyPayload,
20673                            fidl::encoding::DefaultFuchsiaResourceDialect
20674                        );
20675                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20676                        let control_handle =
20677                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20678                        Ok(BaseNetworkSocketRequest::GetIpv6MulticastInterface {
20679                            responder: BaseNetworkSocketGetIpv6MulticastInterfaceResponder {
20680                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20681                                tx_id: header.tx_id,
20682                            },
20683                        })
20684                    }
20685                    0x157d51e98f462859 => {
20686                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20687                        let mut req = fidl::new_empty!(
20688                            BaseNetworkSocketSetIpv6UnicastHopsRequest,
20689                            fidl::encoding::DefaultFuchsiaResourceDialect
20690                        );
20691                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6UnicastHopsRequest>(&header, _body_bytes, handles, &mut req)?;
20692                        let control_handle =
20693                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20694                        Ok(BaseNetworkSocketRequest::SetIpv6UnicastHops {
20695                            value: req.value,
20696
20697                            responder: BaseNetworkSocketSetIpv6UnicastHopsResponder {
20698                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20699                                tx_id: header.tx_id,
20700                            },
20701                        })
20702                    }
20703                    0x21f4641cad8bd8d2 => {
20704                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20705                        let mut req = fidl::new_empty!(
20706                            fidl::encoding::EmptyPayload,
20707                            fidl::encoding::DefaultFuchsiaResourceDialect
20708                        );
20709                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20710                        let control_handle =
20711                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20712                        Ok(BaseNetworkSocketRequest::GetIpv6UnicastHops {
20713                            responder: BaseNetworkSocketGetIpv6UnicastHopsResponder {
20714                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20715                                tx_id: header.tx_id,
20716                            },
20717                        })
20718                    }
20719                    0x5c24808ed2e84a1e => {
20720                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20721                        let mut req = fidl::new_empty!(
20722                            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
20723                            fidl::encoding::DefaultFuchsiaResourceDialect
20724                        );
20725                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceiveHopLimitRequest>(&header, _body_bytes, handles, &mut req)?;
20726                        let control_handle =
20727                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20728                        Ok(BaseNetworkSocketRequest::SetIpv6ReceiveHopLimit {
20729                            value: req.value,
20730
20731                            responder: BaseNetworkSocketSetIpv6ReceiveHopLimitResponder {
20732                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20733                                tx_id: header.tx_id,
20734                            },
20735                        })
20736                    }
20737                    0x341e06689885b4c0 => {
20738                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20739                        let mut req = fidl::new_empty!(
20740                            fidl::encoding::EmptyPayload,
20741                            fidl::encoding::DefaultFuchsiaResourceDialect
20742                        );
20743                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20744                        let control_handle =
20745                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20746                        Ok(BaseNetworkSocketRequest::GetIpv6ReceiveHopLimit {
20747                            responder: BaseNetworkSocketGetIpv6ReceiveHopLimitResponder {
20748                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20749                                tx_id: header.tx_id,
20750                            },
20751                        })
20752                    }
20753                    0x25b9cd4d181f82c1 => {
20754                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20755                        let mut req = fidl::new_empty!(
20756                            BaseNetworkSocketSetIpv6MulticastHopsRequest,
20757                            fidl::encoding::DefaultFuchsiaResourceDialect
20758                        );
20759                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastHopsRequest>(&header, _body_bytes, handles, &mut req)?;
20760                        let control_handle =
20761                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20762                        Ok(BaseNetworkSocketRequest::SetIpv6MulticastHops {
20763                            value: req.value,
20764
20765                            responder: BaseNetworkSocketSetIpv6MulticastHopsResponder {
20766                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20767                                tx_id: header.tx_id,
20768                            },
20769                        })
20770                    }
20771                    0x52916948a365012a => {
20772                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20773                        let mut req = fidl::new_empty!(
20774                            fidl::encoding::EmptyPayload,
20775                            fidl::encoding::DefaultFuchsiaResourceDialect
20776                        );
20777                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20778                        let control_handle =
20779                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20780                        Ok(BaseNetworkSocketRequest::GetIpv6MulticastHops {
20781                            responder: BaseNetworkSocketGetIpv6MulticastHopsResponder {
20782                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20783                                tx_id: header.tx_id,
20784                            },
20785                        })
20786                    }
20787                    0x55701c409ff41b40 => {
20788                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20789                        let mut req = fidl::new_empty!(
20790                            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
20791                            fidl::encoding::DefaultFuchsiaResourceDialect
20792                        );
20793                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastLoopbackRequest>(&header, _body_bytes, handles, &mut req)?;
20794                        let control_handle =
20795                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20796                        Ok(BaseNetworkSocketRequest::SetIpv6MulticastLoopback {
20797                            value: req.value,
20798
20799                            responder: BaseNetworkSocketSetIpv6MulticastLoopbackResponder {
20800                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20801                                tx_id: header.tx_id,
20802                            },
20803                        })
20804                    }
20805                    0x4415b701fde319c3 => {
20806                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20807                        let mut req = fidl::new_empty!(
20808                            fidl::encoding::EmptyPayload,
20809                            fidl::encoding::DefaultFuchsiaResourceDialect
20810                        );
20811                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20812                        let control_handle =
20813                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20814                        Ok(BaseNetworkSocketRequest::GetIpv6MulticastLoopback {
20815                            responder: BaseNetworkSocketGetIpv6MulticastLoopbackResponder {
20816                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20817                                tx_id: header.tx_id,
20818                            },
20819                        })
20820                    }
20821                    0x4873f1364758cbba => {
20822                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20823                        let mut req = fidl::new_empty!(
20824                            BaseNetworkSocketSetIpv6OnlyRequest,
20825                            fidl::encoding::DefaultFuchsiaResourceDialect
20826                        );
20827                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6OnlyRequest>(&header, _body_bytes, handles, &mut req)?;
20828                        let control_handle =
20829                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20830                        Ok(BaseNetworkSocketRequest::SetIpv6Only {
20831                            value: req.value,
20832
20833                            responder: BaseNetworkSocketSetIpv6OnlyResponder {
20834                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20835                                tx_id: header.tx_id,
20836                            },
20837                        })
20838                    }
20839                    0x4aa3340a1a26b89c => {
20840                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20841                        let mut req = fidl::new_empty!(
20842                            fidl::encoding::EmptyPayload,
20843                            fidl::encoding::DefaultFuchsiaResourceDialect
20844                        );
20845                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20846                        let control_handle =
20847                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20848                        Ok(BaseNetworkSocketRequest::GetIpv6Only {
20849                            responder: BaseNetworkSocketGetIpv6OnlyResponder {
20850                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20851                                tx_id: header.tx_id,
20852                            },
20853                        })
20854                    }
20855                    0x58f07c8788d099a0 => {
20856                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20857                        let mut req = fidl::new_empty!(
20858                            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
20859                            fidl::encoding::DefaultFuchsiaResourceDialect
20860                        );
20861                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest>(&header, _body_bytes, handles, &mut req)?;
20862                        let control_handle =
20863                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20864                        Ok(BaseNetworkSocketRequest::SetIpv6ReceiveTrafficClass {
20865                            value: req.value,
20866
20867                            responder: BaseNetworkSocketSetIpv6ReceiveTrafficClassResponder {
20868                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20869                                tx_id: header.tx_id,
20870                            },
20871                        })
20872                    }
20873                    0x2e334df1da553ffa => {
20874                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20875                        let mut req = fidl::new_empty!(
20876                            fidl::encoding::EmptyPayload,
20877                            fidl::encoding::DefaultFuchsiaResourceDialect
20878                        );
20879                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20880                        let control_handle =
20881                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20882                        Ok(BaseNetworkSocketRequest::GetIpv6ReceiveTrafficClass {
20883                            responder: BaseNetworkSocketGetIpv6ReceiveTrafficClassResponder {
20884                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20885                                tx_id: header.tx_id,
20886                            },
20887                        })
20888                    }
20889                    0x6af077800c5a0b4f => {
20890                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20891                        let mut req = fidl::new_empty!(
20892                            BaseNetworkSocketSetIpv6TrafficClassRequest,
20893                            fidl::encoding::DefaultFuchsiaResourceDialect
20894                        );
20895                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6TrafficClassRequest>(&header, _body_bytes, handles, &mut req)?;
20896                        let control_handle =
20897                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20898                        Ok(BaseNetworkSocketRequest::SetIpv6TrafficClass {
20899                            value: req.value,
20900
20901                            responder: BaseNetworkSocketSetIpv6TrafficClassResponder {
20902                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20903                                tx_id: header.tx_id,
20904                            },
20905                        })
20906                    }
20907                    0x6baf6eed8fc2f04 => {
20908                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20909                        let mut req = fidl::new_empty!(
20910                            fidl::encoding::EmptyPayload,
20911                            fidl::encoding::DefaultFuchsiaResourceDialect
20912                        );
20913                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20914                        let control_handle =
20915                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20916                        Ok(BaseNetworkSocketRequest::GetIpv6TrafficClass {
20917                            responder: BaseNetworkSocketGetIpv6TrafficClassResponder {
20918                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20919                                tx_id: header.tx_id,
20920                            },
20921                        })
20922                    }
20923                    0x19259775b1a92768 => {
20924                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20925                        let mut req = fidl::new_empty!(
20926                            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
20927                            fidl::encoding::DefaultFuchsiaResourceDialect
20928                        );
20929                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceivePacketInfoRequest>(&header, _body_bytes, handles, &mut req)?;
20930                        let control_handle =
20931                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20932                        Ok(BaseNetworkSocketRequest::SetIpv6ReceivePacketInfo {
20933                            value: req.value,
20934
20935                            responder: BaseNetworkSocketSetIpv6ReceivePacketInfoResponder {
20936                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20937                                tx_id: header.tx_id,
20938                            },
20939                        })
20940                    }
20941                    0x7acd4a2775baec75 => {
20942                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20943                        let mut req = fidl::new_empty!(
20944                            fidl::encoding::EmptyPayload,
20945                            fidl::encoding::DefaultFuchsiaResourceDialect
20946                        );
20947                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20948                        let control_handle =
20949                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20950                        Ok(BaseNetworkSocketRequest::GetIpv6ReceivePacketInfo {
20951                            responder: BaseNetworkSocketGetIpv6ReceivePacketInfoResponder {
20952                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20953                                tx_id: header.tx_id,
20954                            },
20955                        })
20956                    }
20957                    0x38bf28f0dafdbac0 => {
20958                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20959                        let mut req = fidl::new_empty!(
20960                            fidl::encoding::EmptyPayload,
20961                            fidl::encoding::DefaultFuchsiaResourceDialect
20962                        );
20963                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20964                        let control_handle =
20965                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20966                        Ok(BaseNetworkSocketRequest::GetOriginalDestination {
20967                            responder: BaseNetworkSocketGetOriginalDestinationResponder {
20968                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20969                                tx_id: header.tx_id,
20970                            },
20971                        })
20972                    }
20973                    _ => Err(fidl::Error::UnknownOrdinal {
20974                        ordinal: header.ordinal,
20975                        protocol_name:
20976                            <BaseNetworkSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
20977                    }),
20978                }))
20979            },
20980        )
20981    }
20982}
20983
20984/// A network socket.
20985#[derive(Debug)]
20986pub enum BaseNetworkSocketRequest {
20987    Clone {
20988        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
20989        control_handle: BaseNetworkSocketControlHandle,
20990    },
20991    /// Terminates the connection.
20992    ///
20993    /// After calling `Close`, the client must not send any other requests.
20994    ///
20995    /// Servers, after sending the status response, should close the connection
20996    /// regardless of status and without sending an epitaph.
20997    ///
20998    /// Closing the client end of the channel should be semantically equivalent
20999    /// to calling `Close` without knowing when the close has completed or its
21000    /// status.
21001    Close {
21002        responder: BaseNetworkSocketCloseResponder,
21003    },
21004    Query {
21005        responder: BaseNetworkSocketQueryResponder,
21006    },
21007    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
21008    SetReuseAddress {
21009        value: bool,
21010        responder: BaseNetworkSocketSetReuseAddressResponder,
21011    },
21012    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
21013    GetReuseAddress {
21014        responder: BaseNetworkSocketGetReuseAddressResponder,
21015    },
21016    /// Get `SOL_SOCKET` -> `SO_ERROR`.
21017    /// Returns the last error if there is an error set on the socket.
21018    GetError {
21019        responder: BaseNetworkSocketGetErrorResponder,
21020    },
21021    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
21022    SetBroadcast {
21023        value: bool,
21024        responder: BaseNetworkSocketSetBroadcastResponder,
21025    },
21026    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
21027    GetBroadcast {
21028        responder: BaseNetworkSocketGetBroadcastResponder,
21029    },
21030    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
21031    SetSendBuffer {
21032        value_bytes: u64,
21033        responder: BaseNetworkSocketSetSendBufferResponder,
21034    },
21035    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
21036    GetSendBuffer {
21037        responder: BaseNetworkSocketGetSendBufferResponder,
21038    },
21039    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
21040    SetReceiveBuffer {
21041        value_bytes: u64,
21042        responder: BaseNetworkSocketSetReceiveBufferResponder,
21043    },
21044    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
21045    GetReceiveBuffer {
21046        responder: BaseNetworkSocketGetReceiveBufferResponder,
21047    },
21048    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
21049    SetKeepAlive {
21050        value: bool,
21051        responder: BaseNetworkSocketSetKeepAliveResponder,
21052    },
21053    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
21054    GetKeepAlive {
21055        responder: BaseNetworkSocketGetKeepAliveResponder,
21056    },
21057    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
21058    SetOutOfBandInline {
21059        value: bool,
21060        responder: BaseNetworkSocketSetOutOfBandInlineResponder,
21061    },
21062    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
21063    GetOutOfBandInline {
21064        responder: BaseNetworkSocketGetOutOfBandInlineResponder,
21065    },
21066    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
21067    SetNoCheck {
21068        value: bool,
21069        responder: BaseNetworkSocketSetNoCheckResponder,
21070    },
21071    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
21072    GetNoCheck {
21073        responder: BaseNetworkSocketGetNoCheckResponder,
21074    },
21075    /// Set `SOL_SOCKET` -> `SO_LINGER`.
21076    SetLinger {
21077        linger: bool,
21078        length_secs: u32,
21079        responder: BaseNetworkSocketSetLingerResponder,
21080    },
21081    /// Get `SOL_SOCKET` -> `SO_LINGER`.
21082    GetLinger {
21083        responder: BaseNetworkSocketGetLingerResponder,
21084    },
21085    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
21086    SetReusePort {
21087        value: ReusePortOption,
21088        responder: BaseNetworkSocketSetReusePortResponder,
21089    },
21090    SetReusePortDeprecated {
21091        value: bool,
21092        responder: BaseNetworkSocketSetReusePortDeprecatedResponder,
21093    },
21094    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
21095    GetReusePort {
21096        responder: BaseNetworkSocketGetReusePortResponder,
21097    },
21098    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
21099    GetAcceptConn {
21100        responder: BaseNetworkSocketGetAcceptConnResponder,
21101    },
21102    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
21103    SetBindToDevice {
21104        value: String,
21105        responder: BaseNetworkSocketSetBindToDeviceResponder,
21106    },
21107    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
21108    GetBindToDevice {
21109        responder: BaseNetworkSocketGetBindToDeviceResponder,
21110    },
21111    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
21112    /// If `value` is 0, this clears the bound interface.
21113    SetBindToInterfaceIndex {
21114        value: u64,
21115        responder: BaseNetworkSocketSetBindToInterfaceIndexResponder,
21116    },
21117    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
21118    GetBindToInterfaceIndex {
21119        responder: BaseNetworkSocketGetBindToInterfaceIndexResponder,
21120    },
21121    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
21122    SetTimestamp {
21123        value: TimestampOption,
21124        responder: BaseNetworkSocketSetTimestampResponder,
21125    },
21126    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
21127    GetTimestamp {
21128        responder: BaseNetworkSocketGetTimestampResponder,
21129    },
21130    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
21131    /// unlike the standard SO_MARK, this API has multiple mark domains and each
21132    /// mark can be set independently in each domain.
21133    SetMark {
21134        domain: fidl_fuchsia_net::MarkDomain,
21135        mark: OptionalUint32,
21136        responder: BaseNetworkSocketSetMarkResponder,
21137    },
21138    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
21139    /// unlike the standard SO_MARK, this API has multiple mark domains and each
21140    /// mark can be retrieved independently in each domain.
21141    GetMark {
21142        domain: fidl_fuchsia_net::MarkDomain,
21143        responder: BaseNetworkSocketGetMarkResponder,
21144    },
21145    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
21146    GetCookie {
21147        responder: BaseNetworkSocketGetCookieResponder,
21148    },
21149    /// Sets the local address used for the socket.
21150    Bind {
21151        addr: fidl_fuchsia_net::SocketAddress,
21152        responder: BaseNetworkSocketBindResponder,
21153    },
21154    /// Initiates a connection to a remote address.
21155    Connect {
21156        addr: fidl_fuchsia_net::SocketAddress,
21157        responder: BaseNetworkSocketConnectResponder,
21158    },
21159    /// Clears connection information from this socket.
21160    Disconnect {
21161        responder: BaseNetworkSocketDisconnectResponder,
21162    },
21163    /// Retrieves the local socket address.
21164    GetSockName {
21165        responder: BaseNetworkSocketGetSockNameResponder,
21166    },
21167    /// Retrieves the remote socket address.
21168    GetPeerName {
21169        responder: BaseNetworkSocketGetPeerNameResponder,
21170    },
21171    /// Shuts down part of the socket.
21172    Shutdown {
21173        mode: ShutdownMode,
21174        responder: BaseNetworkSocketShutdownResponder,
21175    },
21176    /// Set `SOL_IP` -> `IP_TOS`.
21177    SetIpTypeOfService {
21178        value: u8,
21179        responder: BaseNetworkSocketSetIpTypeOfServiceResponder,
21180    },
21181    /// Get `SOL_IP` -> `IP_TOS`.
21182    GetIpTypeOfService {
21183        responder: BaseNetworkSocketGetIpTypeOfServiceResponder,
21184    },
21185    /// Set `SOL_IP` -> `IP_TTL`.
21186    SetIpTtl {
21187        value: OptionalUint8,
21188        responder: BaseNetworkSocketSetIpTtlResponder,
21189    },
21190    /// Get `SOL_IP` -> `IP_TTL`.
21191    GetIpTtl {
21192        responder: BaseNetworkSocketGetIpTtlResponder,
21193    },
21194    /// Set `SOL_IP` -> `IP_PKTINFO`.
21195    SetIpPacketInfo {
21196        value: bool,
21197        responder: BaseNetworkSocketSetIpPacketInfoResponder,
21198    },
21199    /// Get `SOL_IP` -> `IP_PKTINFO`.
21200    GetIpPacketInfo {
21201        responder: BaseNetworkSocketGetIpPacketInfoResponder,
21202    },
21203    /// Set `SOL_IP` -> `IP_RECVTOS`.
21204    SetIpReceiveTypeOfService {
21205        value: bool,
21206        responder: BaseNetworkSocketSetIpReceiveTypeOfServiceResponder,
21207    },
21208    /// Get `SOL_IP` -> `IP_RECVTOS`.
21209    GetIpReceiveTypeOfService {
21210        responder: BaseNetworkSocketGetIpReceiveTypeOfServiceResponder,
21211    },
21212    /// Set `SOL_IP` -> `IP_RECVTTL`.
21213    SetIpReceiveTtl {
21214        value: bool,
21215        responder: BaseNetworkSocketSetIpReceiveTtlResponder,
21216    },
21217    /// Get `SOL_IP` -> `IP_RECVTTL`.
21218    GetIpReceiveTtl {
21219        responder: BaseNetworkSocketGetIpReceiveTtlResponder,
21220    },
21221    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
21222    SetIpMulticastInterface {
21223        iface: u64,
21224        address: fidl_fuchsia_net::Ipv4Address,
21225        responder: BaseNetworkSocketSetIpMulticastInterfaceResponder,
21226    },
21227    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
21228    GetIpMulticastInterface {
21229        responder: BaseNetworkSocketGetIpMulticastInterfaceResponder,
21230    },
21231    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
21232    SetIpMulticastTtl {
21233        value: OptionalUint8,
21234        responder: BaseNetworkSocketSetIpMulticastTtlResponder,
21235    },
21236    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
21237    GetIpMulticastTtl {
21238        responder: BaseNetworkSocketGetIpMulticastTtlResponder,
21239    },
21240    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
21241    SetIpMulticastLoopback {
21242        value: bool,
21243        responder: BaseNetworkSocketSetIpMulticastLoopbackResponder,
21244    },
21245    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
21246    GetIpMulticastLoopback {
21247        responder: BaseNetworkSocketGetIpMulticastLoopbackResponder,
21248    },
21249    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
21250    AddIpMembership {
21251        membership: IpMulticastMembership,
21252        responder: BaseNetworkSocketAddIpMembershipResponder,
21253    },
21254    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
21255    DropIpMembership {
21256        membership: IpMulticastMembership,
21257        responder: BaseNetworkSocketDropIpMembershipResponder,
21258    },
21259    /// Set `SOL_IP` -> `IP_TRANSPARENT`
21260    SetIpTransparent {
21261        value: bool,
21262        responder: BaseNetworkSocketSetIpTransparentResponder,
21263    },
21264    /// Get `SOL_IP` -> `IP_TRANSPARENT`
21265    GetIpTransparent {
21266        responder: BaseNetworkSocketGetIpTransparentResponder,
21267    },
21268    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
21269    SetIpReceiveOriginalDestinationAddress {
21270        value: bool,
21271        responder: BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResponder,
21272    },
21273    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
21274    GetIpReceiveOriginalDestinationAddress {
21275        responder: BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponder,
21276    },
21277    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
21278    AddIpv6Membership {
21279        membership: Ipv6MulticastMembership,
21280        responder: BaseNetworkSocketAddIpv6MembershipResponder,
21281    },
21282    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
21283    DropIpv6Membership {
21284        membership: Ipv6MulticastMembership,
21285        responder: BaseNetworkSocketDropIpv6MembershipResponder,
21286    },
21287    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
21288    SetIpv6MulticastInterface {
21289        value: u64,
21290        responder: BaseNetworkSocketSetIpv6MulticastInterfaceResponder,
21291    },
21292    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
21293    GetIpv6MulticastInterface {
21294        responder: BaseNetworkSocketGetIpv6MulticastInterfaceResponder,
21295    },
21296    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
21297    SetIpv6UnicastHops {
21298        value: OptionalUint8,
21299        responder: BaseNetworkSocketSetIpv6UnicastHopsResponder,
21300    },
21301    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
21302    GetIpv6UnicastHops {
21303        responder: BaseNetworkSocketGetIpv6UnicastHopsResponder,
21304    },
21305    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
21306    SetIpv6ReceiveHopLimit {
21307        value: bool,
21308        responder: BaseNetworkSocketSetIpv6ReceiveHopLimitResponder,
21309    },
21310    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
21311    GetIpv6ReceiveHopLimit {
21312        responder: BaseNetworkSocketGetIpv6ReceiveHopLimitResponder,
21313    },
21314    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
21315    SetIpv6MulticastHops {
21316        value: OptionalUint8,
21317        responder: BaseNetworkSocketSetIpv6MulticastHopsResponder,
21318    },
21319    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
21320    GetIpv6MulticastHops {
21321        responder: BaseNetworkSocketGetIpv6MulticastHopsResponder,
21322    },
21323    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
21324    SetIpv6MulticastLoopback {
21325        value: bool,
21326        responder: BaseNetworkSocketSetIpv6MulticastLoopbackResponder,
21327    },
21328    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
21329    GetIpv6MulticastLoopback {
21330        responder: BaseNetworkSocketGetIpv6MulticastLoopbackResponder,
21331    },
21332    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
21333    SetIpv6Only {
21334        value: bool,
21335        responder: BaseNetworkSocketSetIpv6OnlyResponder,
21336    },
21337    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
21338    GetIpv6Only {
21339        responder: BaseNetworkSocketGetIpv6OnlyResponder,
21340    },
21341    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
21342    SetIpv6ReceiveTrafficClass {
21343        value: bool,
21344        responder: BaseNetworkSocketSetIpv6ReceiveTrafficClassResponder,
21345    },
21346    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
21347    GetIpv6ReceiveTrafficClass {
21348        responder: BaseNetworkSocketGetIpv6ReceiveTrafficClassResponder,
21349    },
21350    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
21351    SetIpv6TrafficClass {
21352        value: OptionalUint8,
21353        responder: BaseNetworkSocketSetIpv6TrafficClassResponder,
21354    },
21355    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
21356    GetIpv6TrafficClass {
21357        responder: BaseNetworkSocketGetIpv6TrafficClassResponder,
21358    },
21359    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
21360    SetIpv6ReceivePacketInfo {
21361        value: bool,
21362        responder: BaseNetworkSocketSetIpv6ReceivePacketInfoResponder,
21363    },
21364    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
21365    GetIpv6ReceivePacketInfo {
21366        responder: BaseNetworkSocketGetIpv6ReceivePacketInfoResponder,
21367    },
21368    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
21369    GetOriginalDestination {
21370        responder: BaseNetworkSocketGetOriginalDestinationResponder,
21371    },
21372}
21373
21374impl BaseNetworkSocketRequest {
21375    #[allow(irrefutable_let_patterns)]
21376    pub fn into_clone(
21377        self,
21378    ) -> Option<(
21379        fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
21380        BaseNetworkSocketControlHandle,
21381    )> {
21382        if let BaseNetworkSocketRequest::Clone { request, control_handle } = self {
21383            Some((request, control_handle))
21384        } else {
21385            None
21386        }
21387    }
21388
21389    #[allow(irrefutable_let_patterns)]
21390    pub fn into_close(self) -> Option<(BaseNetworkSocketCloseResponder)> {
21391        if let BaseNetworkSocketRequest::Close { responder } = self {
21392            Some((responder))
21393        } else {
21394            None
21395        }
21396    }
21397
21398    #[allow(irrefutable_let_patterns)]
21399    pub fn into_query(self) -> Option<(BaseNetworkSocketQueryResponder)> {
21400        if let BaseNetworkSocketRequest::Query { responder } = self {
21401            Some((responder))
21402        } else {
21403            None
21404        }
21405    }
21406
21407    #[allow(irrefutable_let_patterns)]
21408    pub fn into_set_reuse_address(
21409        self,
21410    ) -> Option<(bool, BaseNetworkSocketSetReuseAddressResponder)> {
21411        if let BaseNetworkSocketRequest::SetReuseAddress { value, responder } = self {
21412            Some((value, responder))
21413        } else {
21414            None
21415        }
21416    }
21417
21418    #[allow(irrefutable_let_patterns)]
21419    pub fn into_get_reuse_address(self) -> Option<(BaseNetworkSocketGetReuseAddressResponder)> {
21420        if let BaseNetworkSocketRequest::GetReuseAddress { responder } = self {
21421            Some((responder))
21422        } else {
21423            None
21424        }
21425    }
21426
21427    #[allow(irrefutable_let_patterns)]
21428    pub fn into_get_error(self) -> Option<(BaseNetworkSocketGetErrorResponder)> {
21429        if let BaseNetworkSocketRequest::GetError { responder } = self {
21430            Some((responder))
21431        } else {
21432            None
21433        }
21434    }
21435
21436    #[allow(irrefutable_let_patterns)]
21437    pub fn into_set_broadcast(self) -> Option<(bool, BaseNetworkSocketSetBroadcastResponder)> {
21438        if let BaseNetworkSocketRequest::SetBroadcast { value, responder } = self {
21439            Some((value, responder))
21440        } else {
21441            None
21442        }
21443    }
21444
21445    #[allow(irrefutable_let_patterns)]
21446    pub fn into_get_broadcast(self) -> Option<(BaseNetworkSocketGetBroadcastResponder)> {
21447        if let BaseNetworkSocketRequest::GetBroadcast { responder } = self {
21448            Some((responder))
21449        } else {
21450            None
21451        }
21452    }
21453
21454    #[allow(irrefutable_let_patterns)]
21455    pub fn into_set_send_buffer(self) -> Option<(u64, BaseNetworkSocketSetSendBufferResponder)> {
21456        if let BaseNetworkSocketRequest::SetSendBuffer { value_bytes, responder } = self {
21457            Some((value_bytes, responder))
21458        } else {
21459            None
21460        }
21461    }
21462
21463    #[allow(irrefutable_let_patterns)]
21464    pub fn into_get_send_buffer(self) -> Option<(BaseNetworkSocketGetSendBufferResponder)> {
21465        if let BaseNetworkSocketRequest::GetSendBuffer { responder } = self {
21466            Some((responder))
21467        } else {
21468            None
21469        }
21470    }
21471
21472    #[allow(irrefutable_let_patterns)]
21473    pub fn into_set_receive_buffer(
21474        self,
21475    ) -> Option<(u64, BaseNetworkSocketSetReceiveBufferResponder)> {
21476        if let BaseNetworkSocketRequest::SetReceiveBuffer { value_bytes, responder } = self {
21477            Some((value_bytes, responder))
21478        } else {
21479            None
21480        }
21481    }
21482
21483    #[allow(irrefutable_let_patterns)]
21484    pub fn into_get_receive_buffer(self) -> Option<(BaseNetworkSocketGetReceiveBufferResponder)> {
21485        if let BaseNetworkSocketRequest::GetReceiveBuffer { responder } = self {
21486            Some((responder))
21487        } else {
21488            None
21489        }
21490    }
21491
21492    #[allow(irrefutable_let_patterns)]
21493    pub fn into_set_keep_alive(self) -> Option<(bool, BaseNetworkSocketSetKeepAliveResponder)> {
21494        if let BaseNetworkSocketRequest::SetKeepAlive { value, responder } = self {
21495            Some((value, responder))
21496        } else {
21497            None
21498        }
21499    }
21500
21501    #[allow(irrefutable_let_patterns)]
21502    pub fn into_get_keep_alive(self) -> Option<(BaseNetworkSocketGetKeepAliveResponder)> {
21503        if let BaseNetworkSocketRequest::GetKeepAlive { responder } = self {
21504            Some((responder))
21505        } else {
21506            None
21507        }
21508    }
21509
21510    #[allow(irrefutable_let_patterns)]
21511    pub fn into_set_out_of_band_inline(
21512        self,
21513    ) -> Option<(bool, BaseNetworkSocketSetOutOfBandInlineResponder)> {
21514        if let BaseNetworkSocketRequest::SetOutOfBandInline { value, responder } = self {
21515            Some((value, responder))
21516        } else {
21517            None
21518        }
21519    }
21520
21521    #[allow(irrefutable_let_patterns)]
21522    pub fn into_get_out_of_band_inline(
21523        self,
21524    ) -> Option<(BaseNetworkSocketGetOutOfBandInlineResponder)> {
21525        if let BaseNetworkSocketRequest::GetOutOfBandInline { responder } = self {
21526            Some((responder))
21527        } else {
21528            None
21529        }
21530    }
21531
21532    #[allow(irrefutable_let_patterns)]
21533    pub fn into_set_no_check(self) -> Option<(bool, BaseNetworkSocketSetNoCheckResponder)> {
21534        if let BaseNetworkSocketRequest::SetNoCheck { value, responder } = self {
21535            Some((value, responder))
21536        } else {
21537            None
21538        }
21539    }
21540
21541    #[allow(irrefutable_let_patterns)]
21542    pub fn into_get_no_check(self) -> Option<(BaseNetworkSocketGetNoCheckResponder)> {
21543        if let BaseNetworkSocketRequest::GetNoCheck { responder } = self {
21544            Some((responder))
21545        } else {
21546            None
21547        }
21548    }
21549
21550    #[allow(irrefutable_let_patterns)]
21551    pub fn into_set_linger(self) -> Option<(bool, u32, BaseNetworkSocketSetLingerResponder)> {
21552        if let BaseNetworkSocketRequest::SetLinger { linger, length_secs, responder } = self {
21553            Some((linger, length_secs, responder))
21554        } else {
21555            None
21556        }
21557    }
21558
21559    #[allow(irrefutable_let_patterns)]
21560    pub fn into_get_linger(self) -> Option<(BaseNetworkSocketGetLingerResponder)> {
21561        if let BaseNetworkSocketRequest::GetLinger { responder } = self {
21562            Some((responder))
21563        } else {
21564            None
21565        }
21566    }
21567
21568    #[allow(irrefutable_let_patterns)]
21569    pub fn into_set_reuse_port(
21570        self,
21571    ) -> Option<(ReusePortOption, BaseNetworkSocketSetReusePortResponder)> {
21572        if let BaseNetworkSocketRequest::SetReusePort { value, responder } = self {
21573            Some((value, responder))
21574        } else {
21575            None
21576        }
21577    }
21578
21579    #[allow(irrefutable_let_patterns)]
21580    pub fn into_set_reuse_port_deprecated(
21581        self,
21582    ) -> Option<(bool, BaseNetworkSocketSetReusePortDeprecatedResponder)> {
21583        if let BaseNetworkSocketRequest::SetReusePortDeprecated { value, responder } = self {
21584            Some((value, responder))
21585        } else {
21586            None
21587        }
21588    }
21589
21590    #[allow(irrefutable_let_patterns)]
21591    pub fn into_get_reuse_port(self) -> Option<(BaseNetworkSocketGetReusePortResponder)> {
21592        if let BaseNetworkSocketRequest::GetReusePort { responder } = self {
21593            Some((responder))
21594        } else {
21595            None
21596        }
21597    }
21598
21599    #[allow(irrefutable_let_patterns)]
21600    pub fn into_get_accept_conn(self) -> Option<(BaseNetworkSocketGetAcceptConnResponder)> {
21601        if let BaseNetworkSocketRequest::GetAcceptConn { responder } = self {
21602            Some((responder))
21603        } else {
21604            None
21605        }
21606    }
21607
21608    #[allow(irrefutable_let_patterns)]
21609    pub fn into_set_bind_to_device(
21610        self,
21611    ) -> Option<(String, BaseNetworkSocketSetBindToDeviceResponder)> {
21612        if let BaseNetworkSocketRequest::SetBindToDevice { value, responder } = self {
21613            Some((value, responder))
21614        } else {
21615            None
21616        }
21617    }
21618
21619    #[allow(irrefutable_let_patterns)]
21620    pub fn into_get_bind_to_device(self) -> Option<(BaseNetworkSocketGetBindToDeviceResponder)> {
21621        if let BaseNetworkSocketRequest::GetBindToDevice { responder } = self {
21622            Some((responder))
21623        } else {
21624            None
21625        }
21626    }
21627
21628    #[allow(irrefutable_let_patterns)]
21629    pub fn into_set_bind_to_interface_index(
21630        self,
21631    ) -> Option<(u64, BaseNetworkSocketSetBindToInterfaceIndexResponder)> {
21632        if let BaseNetworkSocketRequest::SetBindToInterfaceIndex { value, responder } = self {
21633            Some((value, responder))
21634        } else {
21635            None
21636        }
21637    }
21638
21639    #[allow(irrefutable_let_patterns)]
21640    pub fn into_get_bind_to_interface_index(
21641        self,
21642    ) -> Option<(BaseNetworkSocketGetBindToInterfaceIndexResponder)> {
21643        if let BaseNetworkSocketRequest::GetBindToInterfaceIndex { responder } = self {
21644            Some((responder))
21645        } else {
21646            None
21647        }
21648    }
21649
21650    #[allow(irrefutable_let_patterns)]
21651    pub fn into_set_timestamp(
21652        self,
21653    ) -> Option<(TimestampOption, BaseNetworkSocketSetTimestampResponder)> {
21654        if let BaseNetworkSocketRequest::SetTimestamp { value, responder } = self {
21655            Some((value, responder))
21656        } else {
21657            None
21658        }
21659    }
21660
21661    #[allow(irrefutable_let_patterns)]
21662    pub fn into_get_timestamp(self) -> Option<(BaseNetworkSocketGetTimestampResponder)> {
21663        if let BaseNetworkSocketRequest::GetTimestamp { responder } = self {
21664            Some((responder))
21665        } else {
21666            None
21667        }
21668    }
21669
21670    #[allow(irrefutable_let_patterns)]
21671    pub fn into_set_mark(
21672        self,
21673    ) -> Option<(fidl_fuchsia_net::MarkDomain, OptionalUint32, BaseNetworkSocketSetMarkResponder)>
21674    {
21675        if let BaseNetworkSocketRequest::SetMark { domain, mark, responder } = self {
21676            Some((domain, mark, responder))
21677        } else {
21678            None
21679        }
21680    }
21681
21682    #[allow(irrefutable_let_patterns)]
21683    pub fn into_get_mark(
21684        self,
21685    ) -> Option<(fidl_fuchsia_net::MarkDomain, BaseNetworkSocketGetMarkResponder)> {
21686        if let BaseNetworkSocketRequest::GetMark { domain, responder } = self {
21687            Some((domain, responder))
21688        } else {
21689            None
21690        }
21691    }
21692
21693    #[allow(irrefutable_let_patterns)]
21694    pub fn into_get_cookie(self) -> Option<(BaseNetworkSocketGetCookieResponder)> {
21695        if let BaseNetworkSocketRequest::GetCookie { responder } = self {
21696            Some((responder))
21697        } else {
21698            None
21699        }
21700    }
21701
21702    #[allow(irrefutable_let_patterns)]
21703    pub fn into_bind(
21704        self,
21705    ) -> Option<(fidl_fuchsia_net::SocketAddress, BaseNetworkSocketBindResponder)> {
21706        if let BaseNetworkSocketRequest::Bind { addr, responder } = self {
21707            Some((addr, responder))
21708        } else {
21709            None
21710        }
21711    }
21712
21713    #[allow(irrefutable_let_patterns)]
21714    pub fn into_connect(
21715        self,
21716    ) -> Option<(fidl_fuchsia_net::SocketAddress, BaseNetworkSocketConnectResponder)> {
21717        if let BaseNetworkSocketRequest::Connect { addr, responder } = self {
21718            Some((addr, responder))
21719        } else {
21720            None
21721        }
21722    }
21723
21724    #[allow(irrefutable_let_patterns)]
21725    pub fn into_disconnect(self) -> Option<(BaseNetworkSocketDisconnectResponder)> {
21726        if let BaseNetworkSocketRequest::Disconnect { responder } = self {
21727            Some((responder))
21728        } else {
21729            None
21730        }
21731    }
21732
21733    #[allow(irrefutable_let_patterns)]
21734    pub fn into_get_sock_name(self) -> Option<(BaseNetworkSocketGetSockNameResponder)> {
21735        if let BaseNetworkSocketRequest::GetSockName { responder } = self {
21736            Some((responder))
21737        } else {
21738            None
21739        }
21740    }
21741
21742    #[allow(irrefutable_let_patterns)]
21743    pub fn into_get_peer_name(self) -> Option<(BaseNetworkSocketGetPeerNameResponder)> {
21744        if let BaseNetworkSocketRequest::GetPeerName { responder } = self {
21745            Some((responder))
21746        } else {
21747            None
21748        }
21749    }
21750
21751    #[allow(irrefutable_let_patterns)]
21752    pub fn into_shutdown(self) -> Option<(ShutdownMode, BaseNetworkSocketShutdownResponder)> {
21753        if let BaseNetworkSocketRequest::Shutdown { mode, responder } = self {
21754            Some((mode, responder))
21755        } else {
21756            None
21757        }
21758    }
21759
21760    #[allow(irrefutable_let_patterns)]
21761    pub fn into_set_ip_type_of_service(
21762        self,
21763    ) -> Option<(u8, BaseNetworkSocketSetIpTypeOfServiceResponder)> {
21764        if let BaseNetworkSocketRequest::SetIpTypeOfService { value, responder } = self {
21765            Some((value, responder))
21766        } else {
21767            None
21768        }
21769    }
21770
21771    #[allow(irrefutable_let_patterns)]
21772    pub fn into_get_ip_type_of_service(
21773        self,
21774    ) -> Option<(BaseNetworkSocketGetIpTypeOfServiceResponder)> {
21775        if let BaseNetworkSocketRequest::GetIpTypeOfService { responder } = self {
21776            Some((responder))
21777        } else {
21778            None
21779        }
21780    }
21781
21782    #[allow(irrefutable_let_patterns)]
21783    pub fn into_set_ip_ttl(self) -> Option<(OptionalUint8, BaseNetworkSocketSetIpTtlResponder)> {
21784        if let BaseNetworkSocketRequest::SetIpTtl { value, responder } = self {
21785            Some((value, responder))
21786        } else {
21787            None
21788        }
21789    }
21790
21791    #[allow(irrefutable_let_patterns)]
21792    pub fn into_get_ip_ttl(self) -> Option<(BaseNetworkSocketGetIpTtlResponder)> {
21793        if let BaseNetworkSocketRequest::GetIpTtl { responder } = self {
21794            Some((responder))
21795        } else {
21796            None
21797        }
21798    }
21799
21800    #[allow(irrefutable_let_patterns)]
21801    pub fn into_set_ip_packet_info(
21802        self,
21803    ) -> Option<(bool, BaseNetworkSocketSetIpPacketInfoResponder)> {
21804        if let BaseNetworkSocketRequest::SetIpPacketInfo { value, responder } = self {
21805            Some((value, responder))
21806        } else {
21807            None
21808        }
21809    }
21810
21811    #[allow(irrefutable_let_patterns)]
21812    pub fn into_get_ip_packet_info(self) -> Option<(BaseNetworkSocketGetIpPacketInfoResponder)> {
21813        if let BaseNetworkSocketRequest::GetIpPacketInfo { responder } = self {
21814            Some((responder))
21815        } else {
21816            None
21817        }
21818    }
21819
21820    #[allow(irrefutable_let_patterns)]
21821    pub fn into_set_ip_receive_type_of_service(
21822        self,
21823    ) -> Option<(bool, BaseNetworkSocketSetIpReceiveTypeOfServiceResponder)> {
21824        if let BaseNetworkSocketRequest::SetIpReceiveTypeOfService { value, responder } = self {
21825            Some((value, responder))
21826        } else {
21827            None
21828        }
21829    }
21830
21831    #[allow(irrefutable_let_patterns)]
21832    pub fn into_get_ip_receive_type_of_service(
21833        self,
21834    ) -> Option<(BaseNetworkSocketGetIpReceiveTypeOfServiceResponder)> {
21835        if let BaseNetworkSocketRequest::GetIpReceiveTypeOfService { responder } = self {
21836            Some((responder))
21837        } else {
21838            None
21839        }
21840    }
21841
21842    #[allow(irrefutable_let_patterns)]
21843    pub fn into_set_ip_receive_ttl(
21844        self,
21845    ) -> Option<(bool, BaseNetworkSocketSetIpReceiveTtlResponder)> {
21846        if let BaseNetworkSocketRequest::SetIpReceiveTtl { value, responder } = self {
21847            Some((value, responder))
21848        } else {
21849            None
21850        }
21851    }
21852
21853    #[allow(irrefutable_let_patterns)]
21854    pub fn into_get_ip_receive_ttl(self) -> Option<(BaseNetworkSocketGetIpReceiveTtlResponder)> {
21855        if let BaseNetworkSocketRequest::GetIpReceiveTtl { responder } = self {
21856            Some((responder))
21857        } else {
21858            None
21859        }
21860    }
21861
21862    #[allow(irrefutable_let_patterns)]
21863    pub fn into_set_ip_multicast_interface(
21864        self,
21865    ) -> Option<(
21866        u64,
21867        fidl_fuchsia_net::Ipv4Address,
21868        BaseNetworkSocketSetIpMulticastInterfaceResponder,
21869    )> {
21870        if let BaseNetworkSocketRequest::SetIpMulticastInterface { iface, address, responder } =
21871            self
21872        {
21873            Some((iface, address, responder))
21874        } else {
21875            None
21876        }
21877    }
21878
21879    #[allow(irrefutable_let_patterns)]
21880    pub fn into_get_ip_multicast_interface(
21881        self,
21882    ) -> Option<(BaseNetworkSocketGetIpMulticastInterfaceResponder)> {
21883        if let BaseNetworkSocketRequest::GetIpMulticastInterface { responder } = self {
21884            Some((responder))
21885        } else {
21886            None
21887        }
21888    }
21889
21890    #[allow(irrefutable_let_patterns)]
21891    pub fn into_set_ip_multicast_ttl(
21892        self,
21893    ) -> Option<(OptionalUint8, BaseNetworkSocketSetIpMulticastTtlResponder)> {
21894        if let BaseNetworkSocketRequest::SetIpMulticastTtl { value, responder } = self {
21895            Some((value, responder))
21896        } else {
21897            None
21898        }
21899    }
21900
21901    #[allow(irrefutable_let_patterns)]
21902    pub fn into_get_ip_multicast_ttl(
21903        self,
21904    ) -> Option<(BaseNetworkSocketGetIpMulticastTtlResponder)> {
21905        if let BaseNetworkSocketRequest::GetIpMulticastTtl { responder } = self {
21906            Some((responder))
21907        } else {
21908            None
21909        }
21910    }
21911
21912    #[allow(irrefutable_let_patterns)]
21913    pub fn into_set_ip_multicast_loopback(
21914        self,
21915    ) -> Option<(bool, BaseNetworkSocketSetIpMulticastLoopbackResponder)> {
21916        if let BaseNetworkSocketRequest::SetIpMulticastLoopback { value, responder } = self {
21917            Some((value, responder))
21918        } else {
21919            None
21920        }
21921    }
21922
21923    #[allow(irrefutable_let_patterns)]
21924    pub fn into_get_ip_multicast_loopback(
21925        self,
21926    ) -> Option<(BaseNetworkSocketGetIpMulticastLoopbackResponder)> {
21927        if let BaseNetworkSocketRequest::GetIpMulticastLoopback { responder } = self {
21928            Some((responder))
21929        } else {
21930            None
21931        }
21932    }
21933
21934    #[allow(irrefutable_let_patterns)]
21935    pub fn into_add_ip_membership(
21936        self,
21937    ) -> Option<(IpMulticastMembership, BaseNetworkSocketAddIpMembershipResponder)> {
21938        if let BaseNetworkSocketRequest::AddIpMembership { membership, responder } = self {
21939            Some((membership, responder))
21940        } else {
21941            None
21942        }
21943    }
21944
21945    #[allow(irrefutable_let_patterns)]
21946    pub fn into_drop_ip_membership(
21947        self,
21948    ) -> Option<(IpMulticastMembership, BaseNetworkSocketDropIpMembershipResponder)> {
21949        if let BaseNetworkSocketRequest::DropIpMembership { membership, responder } = self {
21950            Some((membership, responder))
21951        } else {
21952            None
21953        }
21954    }
21955
21956    #[allow(irrefutable_let_patterns)]
21957    pub fn into_set_ip_transparent(
21958        self,
21959    ) -> Option<(bool, BaseNetworkSocketSetIpTransparentResponder)> {
21960        if let BaseNetworkSocketRequest::SetIpTransparent { value, responder } = self {
21961            Some((value, responder))
21962        } else {
21963            None
21964        }
21965    }
21966
21967    #[allow(irrefutable_let_patterns)]
21968    pub fn into_get_ip_transparent(self) -> Option<(BaseNetworkSocketGetIpTransparentResponder)> {
21969        if let BaseNetworkSocketRequest::GetIpTransparent { responder } = self {
21970            Some((responder))
21971        } else {
21972            None
21973        }
21974    }
21975
21976    #[allow(irrefutable_let_patterns)]
21977    pub fn into_set_ip_receive_original_destination_address(
21978        self,
21979    ) -> Option<(bool, BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResponder)> {
21980        if let BaseNetworkSocketRequest::SetIpReceiveOriginalDestinationAddress {
21981            value,
21982            responder,
21983        } = self
21984        {
21985            Some((value, responder))
21986        } else {
21987            None
21988        }
21989    }
21990
21991    #[allow(irrefutable_let_patterns)]
21992    pub fn into_get_ip_receive_original_destination_address(
21993        self,
21994    ) -> Option<(BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponder)> {
21995        if let BaseNetworkSocketRequest::GetIpReceiveOriginalDestinationAddress { responder } = self
21996        {
21997            Some((responder))
21998        } else {
21999            None
22000        }
22001    }
22002
22003    #[allow(irrefutable_let_patterns)]
22004    pub fn into_add_ipv6_membership(
22005        self,
22006    ) -> Option<(Ipv6MulticastMembership, BaseNetworkSocketAddIpv6MembershipResponder)> {
22007        if let BaseNetworkSocketRequest::AddIpv6Membership { membership, responder } = self {
22008            Some((membership, responder))
22009        } else {
22010            None
22011        }
22012    }
22013
22014    #[allow(irrefutable_let_patterns)]
22015    pub fn into_drop_ipv6_membership(
22016        self,
22017    ) -> Option<(Ipv6MulticastMembership, BaseNetworkSocketDropIpv6MembershipResponder)> {
22018        if let BaseNetworkSocketRequest::DropIpv6Membership { membership, responder } = self {
22019            Some((membership, responder))
22020        } else {
22021            None
22022        }
22023    }
22024
22025    #[allow(irrefutable_let_patterns)]
22026    pub fn into_set_ipv6_multicast_interface(
22027        self,
22028    ) -> Option<(u64, BaseNetworkSocketSetIpv6MulticastInterfaceResponder)> {
22029        if let BaseNetworkSocketRequest::SetIpv6MulticastInterface { value, responder } = self {
22030            Some((value, responder))
22031        } else {
22032            None
22033        }
22034    }
22035
22036    #[allow(irrefutable_let_patterns)]
22037    pub fn into_get_ipv6_multicast_interface(
22038        self,
22039    ) -> Option<(BaseNetworkSocketGetIpv6MulticastInterfaceResponder)> {
22040        if let BaseNetworkSocketRequest::GetIpv6MulticastInterface { responder } = self {
22041            Some((responder))
22042        } else {
22043            None
22044        }
22045    }
22046
22047    #[allow(irrefutable_let_patterns)]
22048    pub fn into_set_ipv6_unicast_hops(
22049        self,
22050    ) -> Option<(OptionalUint8, BaseNetworkSocketSetIpv6UnicastHopsResponder)> {
22051        if let BaseNetworkSocketRequest::SetIpv6UnicastHops { value, responder } = self {
22052            Some((value, responder))
22053        } else {
22054            None
22055        }
22056    }
22057
22058    #[allow(irrefutable_let_patterns)]
22059    pub fn into_get_ipv6_unicast_hops(
22060        self,
22061    ) -> Option<(BaseNetworkSocketGetIpv6UnicastHopsResponder)> {
22062        if let BaseNetworkSocketRequest::GetIpv6UnicastHops { responder } = self {
22063            Some((responder))
22064        } else {
22065            None
22066        }
22067    }
22068
22069    #[allow(irrefutable_let_patterns)]
22070    pub fn into_set_ipv6_receive_hop_limit(
22071        self,
22072    ) -> Option<(bool, BaseNetworkSocketSetIpv6ReceiveHopLimitResponder)> {
22073        if let BaseNetworkSocketRequest::SetIpv6ReceiveHopLimit { value, responder } = self {
22074            Some((value, responder))
22075        } else {
22076            None
22077        }
22078    }
22079
22080    #[allow(irrefutable_let_patterns)]
22081    pub fn into_get_ipv6_receive_hop_limit(
22082        self,
22083    ) -> Option<(BaseNetworkSocketGetIpv6ReceiveHopLimitResponder)> {
22084        if let BaseNetworkSocketRequest::GetIpv6ReceiveHopLimit { responder } = self {
22085            Some((responder))
22086        } else {
22087            None
22088        }
22089    }
22090
22091    #[allow(irrefutable_let_patterns)]
22092    pub fn into_set_ipv6_multicast_hops(
22093        self,
22094    ) -> Option<(OptionalUint8, BaseNetworkSocketSetIpv6MulticastHopsResponder)> {
22095        if let BaseNetworkSocketRequest::SetIpv6MulticastHops { value, responder } = self {
22096            Some((value, responder))
22097        } else {
22098            None
22099        }
22100    }
22101
22102    #[allow(irrefutable_let_patterns)]
22103    pub fn into_get_ipv6_multicast_hops(
22104        self,
22105    ) -> Option<(BaseNetworkSocketGetIpv6MulticastHopsResponder)> {
22106        if let BaseNetworkSocketRequest::GetIpv6MulticastHops { responder } = self {
22107            Some((responder))
22108        } else {
22109            None
22110        }
22111    }
22112
22113    #[allow(irrefutable_let_patterns)]
22114    pub fn into_set_ipv6_multicast_loopback(
22115        self,
22116    ) -> Option<(bool, BaseNetworkSocketSetIpv6MulticastLoopbackResponder)> {
22117        if let BaseNetworkSocketRequest::SetIpv6MulticastLoopback { value, responder } = self {
22118            Some((value, responder))
22119        } else {
22120            None
22121        }
22122    }
22123
22124    #[allow(irrefutable_let_patterns)]
22125    pub fn into_get_ipv6_multicast_loopback(
22126        self,
22127    ) -> Option<(BaseNetworkSocketGetIpv6MulticastLoopbackResponder)> {
22128        if let BaseNetworkSocketRequest::GetIpv6MulticastLoopback { responder } = self {
22129            Some((responder))
22130        } else {
22131            None
22132        }
22133    }
22134
22135    #[allow(irrefutable_let_patterns)]
22136    pub fn into_set_ipv6_only(self) -> Option<(bool, BaseNetworkSocketSetIpv6OnlyResponder)> {
22137        if let BaseNetworkSocketRequest::SetIpv6Only { value, responder } = self {
22138            Some((value, responder))
22139        } else {
22140            None
22141        }
22142    }
22143
22144    #[allow(irrefutable_let_patterns)]
22145    pub fn into_get_ipv6_only(self) -> Option<(BaseNetworkSocketGetIpv6OnlyResponder)> {
22146        if let BaseNetworkSocketRequest::GetIpv6Only { responder } = self {
22147            Some((responder))
22148        } else {
22149            None
22150        }
22151    }
22152
22153    #[allow(irrefutable_let_patterns)]
22154    pub fn into_set_ipv6_receive_traffic_class(
22155        self,
22156    ) -> Option<(bool, BaseNetworkSocketSetIpv6ReceiveTrafficClassResponder)> {
22157        if let BaseNetworkSocketRequest::SetIpv6ReceiveTrafficClass { value, responder } = self {
22158            Some((value, responder))
22159        } else {
22160            None
22161        }
22162    }
22163
22164    #[allow(irrefutable_let_patterns)]
22165    pub fn into_get_ipv6_receive_traffic_class(
22166        self,
22167    ) -> Option<(BaseNetworkSocketGetIpv6ReceiveTrafficClassResponder)> {
22168        if let BaseNetworkSocketRequest::GetIpv6ReceiveTrafficClass { responder } = self {
22169            Some((responder))
22170        } else {
22171            None
22172        }
22173    }
22174
22175    #[allow(irrefutable_let_patterns)]
22176    pub fn into_set_ipv6_traffic_class(
22177        self,
22178    ) -> Option<(OptionalUint8, BaseNetworkSocketSetIpv6TrafficClassResponder)> {
22179        if let BaseNetworkSocketRequest::SetIpv6TrafficClass { value, responder } = self {
22180            Some((value, responder))
22181        } else {
22182            None
22183        }
22184    }
22185
22186    #[allow(irrefutable_let_patterns)]
22187    pub fn into_get_ipv6_traffic_class(
22188        self,
22189    ) -> Option<(BaseNetworkSocketGetIpv6TrafficClassResponder)> {
22190        if let BaseNetworkSocketRequest::GetIpv6TrafficClass { responder } = self {
22191            Some((responder))
22192        } else {
22193            None
22194        }
22195    }
22196
22197    #[allow(irrefutable_let_patterns)]
22198    pub fn into_set_ipv6_receive_packet_info(
22199        self,
22200    ) -> Option<(bool, BaseNetworkSocketSetIpv6ReceivePacketInfoResponder)> {
22201        if let BaseNetworkSocketRequest::SetIpv6ReceivePacketInfo { value, responder } = self {
22202            Some((value, responder))
22203        } else {
22204            None
22205        }
22206    }
22207
22208    #[allow(irrefutable_let_patterns)]
22209    pub fn into_get_ipv6_receive_packet_info(
22210        self,
22211    ) -> Option<(BaseNetworkSocketGetIpv6ReceivePacketInfoResponder)> {
22212        if let BaseNetworkSocketRequest::GetIpv6ReceivePacketInfo { responder } = self {
22213            Some((responder))
22214        } else {
22215            None
22216        }
22217    }
22218
22219    #[allow(irrefutable_let_patterns)]
22220    pub fn into_get_original_destination(
22221        self,
22222    ) -> Option<(BaseNetworkSocketGetOriginalDestinationResponder)> {
22223        if let BaseNetworkSocketRequest::GetOriginalDestination { responder } = self {
22224            Some((responder))
22225        } else {
22226            None
22227        }
22228    }
22229
22230    /// Name of the method defined in FIDL
22231    pub fn method_name(&self) -> &'static str {
22232        match *self {
22233            BaseNetworkSocketRequest::Clone { .. } => "clone",
22234            BaseNetworkSocketRequest::Close { .. } => "close",
22235            BaseNetworkSocketRequest::Query { .. } => "query",
22236            BaseNetworkSocketRequest::SetReuseAddress { .. } => "set_reuse_address",
22237            BaseNetworkSocketRequest::GetReuseAddress { .. } => "get_reuse_address",
22238            BaseNetworkSocketRequest::GetError { .. } => "get_error",
22239            BaseNetworkSocketRequest::SetBroadcast { .. } => "set_broadcast",
22240            BaseNetworkSocketRequest::GetBroadcast { .. } => "get_broadcast",
22241            BaseNetworkSocketRequest::SetSendBuffer { .. } => "set_send_buffer",
22242            BaseNetworkSocketRequest::GetSendBuffer { .. } => "get_send_buffer",
22243            BaseNetworkSocketRequest::SetReceiveBuffer { .. } => "set_receive_buffer",
22244            BaseNetworkSocketRequest::GetReceiveBuffer { .. } => "get_receive_buffer",
22245            BaseNetworkSocketRequest::SetKeepAlive { .. } => "set_keep_alive",
22246            BaseNetworkSocketRequest::GetKeepAlive { .. } => "get_keep_alive",
22247            BaseNetworkSocketRequest::SetOutOfBandInline { .. } => "set_out_of_band_inline",
22248            BaseNetworkSocketRequest::GetOutOfBandInline { .. } => "get_out_of_band_inline",
22249            BaseNetworkSocketRequest::SetNoCheck { .. } => "set_no_check",
22250            BaseNetworkSocketRequest::GetNoCheck { .. } => "get_no_check",
22251            BaseNetworkSocketRequest::SetLinger { .. } => "set_linger",
22252            BaseNetworkSocketRequest::GetLinger { .. } => "get_linger",
22253            BaseNetworkSocketRequest::SetReusePort { .. } => "set_reuse_port",
22254            BaseNetworkSocketRequest::SetReusePortDeprecated { .. } => "set_reuse_port_deprecated",
22255            BaseNetworkSocketRequest::GetReusePort { .. } => "get_reuse_port",
22256            BaseNetworkSocketRequest::GetAcceptConn { .. } => "get_accept_conn",
22257            BaseNetworkSocketRequest::SetBindToDevice { .. } => "set_bind_to_device",
22258            BaseNetworkSocketRequest::GetBindToDevice { .. } => "get_bind_to_device",
22259            BaseNetworkSocketRequest::SetBindToInterfaceIndex { .. } => {
22260                "set_bind_to_interface_index"
22261            }
22262            BaseNetworkSocketRequest::GetBindToInterfaceIndex { .. } => {
22263                "get_bind_to_interface_index"
22264            }
22265            BaseNetworkSocketRequest::SetTimestamp { .. } => "set_timestamp",
22266            BaseNetworkSocketRequest::GetTimestamp { .. } => "get_timestamp",
22267            BaseNetworkSocketRequest::SetMark { .. } => "set_mark",
22268            BaseNetworkSocketRequest::GetMark { .. } => "get_mark",
22269            BaseNetworkSocketRequest::GetCookie { .. } => "get_cookie",
22270            BaseNetworkSocketRequest::Bind { .. } => "bind",
22271            BaseNetworkSocketRequest::Connect { .. } => "connect",
22272            BaseNetworkSocketRequest::Disconnect { .. } => "disconnect",
22273            BaseNetworkSocketRequest::GetSockName { .. } => "get_sock_name",
22274            BaseNetworkSocketRequest::GetPeerName { .. } => "get_peer_name",
22275            BaseNetworkSocketRequest::Shutdown { .. } => "shutdown",
22276            BaseNetworkSocketRequest::SetIpTypeOfService { .. } => "set_ip_type_of_service",
22277            BaseNetworkSocketRequest::GetIpTypeOfService { .. } => "get_ip_type_of_service",
22278            BaseNetworkSocketRequest::SetIpTtl { .. } => "set_ip_ttl",
22279            BaseNetworkSocketRequest::GetIpTtl { .. } => "get_ip_ttl",
22280            BaseNetworkSocketRequest::SetIpPacketInfo { .. } => "set_ip_packet_info",
22281            BaseNetworkSocketRequest::GetIpPacketInfo { .. } => "get_ip_packet_info",
22282            BaseNetworkSocketRequest::SetIpReceiveTypeOfService { .. } => {
22283                "set_ip_receive_type_of_service"
22284            }
22285            BaseNetworkSocketRequest::GetIpReceiveTypeOfService { .. } => {
22286                "get_ip_receive_type_of_service"
22287            }
22288            BaseNetworkSocketRequest::SetIpReceiveTtl { .. } => "set_ip_receive_ttl",
22289            BaseNetworkSocketRequest::GetIpReceiveTtl { .. } => "get_ip_receive_ttl",
22290            BaseNetworkSocketRequest::SetIpMulticastInterface { .. } => {
22291                "set_ip_multicast_interface"
22292            }
22293            BaseNetworkSocketRequest::GetIpMulticastInterface { .. } => {
22294                "get_ip_multicast_interface"
22295            }
22296            BaseNetworkSocketRequest::SetIpMulticastTtl { .. } => "set_ip_multicast_ttl",
22297            BaseNetworkSocketRequest::GetIpMulticastTtl { .. } => "get_ip_multicast_ttl",
22298            BaseNetworkSocketRequest::SetIpMulticastLoopback { .. } => "set_ip_multicast_loopback",
22299            BaseNetworkSocketRequest::GetIpMulticastLoopback { .. } => "get_ip_multicast_loopback",
22300            BaseNetworkSocketRequest::AddIpMembership { .. } => "add_ip_membership",
22301            BaseNetworkSocketRequest::DropIpMembership { .. } => "drop_ip_membership",
22302            BaseNetworkSocketRequest::SetIpTransparent { .. } => "set_ip_transparent",
22303            BaseNetworkSocketRequest::GetIpTransparent { .. } => "get_ip_transparent",
22304            BaseNetworkSocketRequest::SetIpReceiveOriginalDestinationAddress { .. } => {
22305                "set_ip_receive_original_destination_address"
22306            }
22307            BaseNetworkSocketRequest::GetIpReceiveOriginalDestinationAddress { .. } => {
22308                "get_ip_receive_original_destination_address"
22309            }
22310            BaseNetworkSocketRequest::AddIpv6Membership { .. } => "add_ipv6_membership",
22311            BaseNetworkSocketRequest::DropIpv6Membership { .. } => "drop_ipv6_membership",
22312            BaseNetworkSocketRequest::SetIpv6MulticastInterface { .. } => {
22313                "set_ipv6_multicast_interface"
22314            }
22315            BaseNetworkSocketRequest::GetIpv6MulticastInterface { .. } => {
22316                "get_ipv6_multicast_interface"
22317            }
22318            BaseNetworkSocketRequest::SetIpv6UnicastHops { .. } => "set_ipv6_unicast_hops",
22319            BaseNetworkSocketRequest::GetIpv6UnicastHops { .. } => "get_ipv6_unicast_hops",
22320            BaseNetworkSocketRequest::SetIpv6ReceiveHopLimit { .. } => "set_ipv6_receive_hop_limit",
22321            BaseNetworkSocketRequest::GetIpv6ReceiveHopLimit { .. } => "get_ipv6_receive_hop_limit",
22322            BaseNetworkSocketRequest::SetIpv6MulticastHops { .. } => "set_ipv6_multicast_hops",
22323            BaseNetworkSocketRequest::GetIpv6MulticastHops { .. } => "get_ipv6_multicast_hops",
22324            BaseNetworkSocketRequest::SetIpv6MulticastLoopback { .. } => {
22325                "set_ipv6_multicast_loopback"
22326            }
22327            BaseNetworkSocketRequest::GetIpv6MulticastLoopback { .. } => {
22328                "get_ipv6_multicast_loopback"
22329            }
22330            BaseNetworkSocketRequest::SetIpv6Only { .. } => "set_ipv6_only",
22331            BaseNetworkSocketRequest::GetIpv6Only { .. } => "get_ipv6_only",
22332            BaseNetworkSocketRequest::SetIpv6ReceiveTrafficClass { .. } => {
22333                "set_ipv6_receive_traffic_class"
22334            }
22335            BaseNetworkSocketRequest::GetIpv6ReceiveTrafficClass { .. } => {
22336                "get_ipv6_receive_traffic_class"
22337            }
22338            BaseNetworkSocketRequest::SetIpv6TrafficClass { .. } => "set_ipv6_traffic_class",
22339            BaseNetworkSocketRequest::GetIpv6TrafficClass { .. } => "get_ipv6_traffic_class",
22340            BaseNetworkSocketRequest::SetIpv6ReceivePacketInfo { .. } => {
22341                "set_ipv6_receive_packet_info"
22342            }
22343            BaseNetworkSocketRequest::GetIpv6ReceivePacketInfo { .. } => {
22344                "get_ipv6_receive_packet_info"
22345            }
22346            BaseNetworkSocketRequest::GetOriginalDestination { .. } => "get_original_destination",
22347        }
22348    }
22349}
22350
22351#[derive(Debug, Clone)]
22352pub struct BaseNetworkSocketControlHandle {
22353    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
22354}
22355
22356impl fidl::endpoints::ControlHandle for BaseNetworkSocketControlHandle {
22357    fn shutdown(&self) {
22358        self.inner.shutdown()
22359    }
22360
22361    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
22362        self.inner.shutdown_with_epitaph(status)
22363    }
22364
22365    fn is_closed(&self) -> bool {
22366        self.inner.channel().is_closed()
22367    }
22368    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
22369        self.inner.channel().on_closed()
22370    }
22371
22372    #[cfg(target_os = "fuchsia")]
22373    fn signal_peer(
22374        &self,
22375        clear_mask: zx::Signals,
22376        set_mask: zx::Signals,
22377    ) -> Result<(), zx_status::Status> {
22378        use fidl::Peered;
22379        self.inner.channel().signal_peer(clear_mask, set_mask)
22380    }
22381}
22382
22383impl BaseNetworkSocketControlHandle {}
22384
22385#[must_use = "FIDL methods require a response to be sent"]
22386#[derive(Debug)]
22387pub struct BaseNetworkSocketCloseResponder {
22388    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22389    tx_id: u32,
22390}
22391
22392/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22393/// if the responder is dropped without sending a response, so that the client
22394/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22395impl std::ops::Drop for BaseNetworkSocketCloseResponder {
22396    fn drop(&mut self) {
22397        self.control_handle.shutdown();
22398        // Safety: drops once, never accessed again
22399        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22400    }
22401}
22402
22403impl fidl::endpoints::Responder for BaseNetworkSocketCloseResponder {
22404    type ControlHandle = BaseNetworkSocketControlHandle;
22405
22406    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22407        &self.control_handle
22408    }
22409
22410    fn drop_without_shutdown(mut self) {
22411        // Safety: drops once, never accessed again due to mem::forget
22412        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22413        // Prevent Drop from running (which would shut down the channel)
22414        std::mem::forget(self);
22415    }
22416}
22417
22418impl BaseNetworkSocketCloseResponder {
22419    /// Sends a response to the FIDL transaction.
22420    ///
22421    /// Sets the channel to shutdown if an error occurs.
22422    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
22423        let _result = self.send_raw(result);
22424        if _result.is_err() {
22425            self.control_handle.shutdown();
22426        }
22427        self.drop_without_shutdown();
22428        _result
22429    }
22430
22431    /// Similar to "send" but does not shutdown the channel if an error occurs.
22432    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
22433        let _result = self.send_raw(result);
22434        self.drop_without_shutdown();
22435        _result
22436    }
22437
22438    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
22439        self.control_handle
22440            .inner
22441            .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>>(
22442                result,
22443                self.tx_id,
22444                0x5ac5d459ad7f657e,
22445                fidl::encoding::DynamicFlags::empty(),
22446            )
22447    }
22448}
22449
22450#[must_use = "FIDL methods require a response to be sent"]
22451#[derive(Debug)]
22452pub struct BaseNetworkSocketQueryResponder {
22453    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22454    tx_id: u32,
22455}
22456
22457/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22458/// if the responder is dropped without sending a response, so that the client
22459/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22460impl std::ops::Drop for BaseNetworkSocketQueryResponder {
22461    fn drop(&mut self) {
22462        self.control_handle.shutdown();
22463        // Safety: drops once, never accessed again
22464        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22465    }
22466}
22467
22468impl fidl::endpoints::Responder for BaseNetworkSocketQueryResponder {
22469    type ControlHandle = BaseNetworkSocketControlHandle;
22470
22471    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22472        &self.control_handle
22473    }
22474
22475    fn drop_without_shutdown(mut self) {
22476        // Safety: drops once, never accessed again due to mem::forget
22477        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22478        // Prevent Drop from running (which would shut down the channel)
22479        std::mem::forget(self);
22480    }
22481}
22482
22483impl BaseNetworkSocketQueryResponder {
22484    /// Sends a response to the FIDL transaction.
22485    ///
22486    /// Sets the channel to shutdown if an error occurs.
22487    pub fn send(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
22488        let _result = self.send_raw(protocol);
22489        if _result.is_err() {
22490            self.control_handle.shutdown();
22491        }
22492        self.drop_without_shutdown();
22493        _result
22494    }
22495
22496    /// Similar to "send" but does not shutdown the channel if an error occurs.
22497    pub fn send_no_shutdown_on_err(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
22498        let _result = self.send_raw(protocol);
22499        self.drop_without_shutdown();
22500        _result
22501    }
22502
22503    fn send_raw(&self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
22504        self.control_handle.inner.send::<fidl_fuchsia_unknown::QueryableQueryResponse>(
22505            (protocol,),
22506            self.tx_id,
22507            0x2658edee9decfc06,
22508            fidl::encoding::DynamicFlags::empty(),
22509        )
22510    }
22511}
22512
22513#[must_use = "FIDL methods require a response to be sent"]
22514#[derive(Debug)]
22515pub struct BaseNetworkSocketSetReuseAddressResponder {
22516    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22517    tx_id: u32,
22518}
22519
22520/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22521/// if the responder is dropped without sending a response, so that the client
22522/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22523impl std::ops::Drop for BaseNetworkSocketSetReuseAddressResponder {
22524    fn drop(&mut self) {
22525        self.control_handle.shutdown();
22526        // Safety: drops once, never accessed again
22527        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22528    }
22529}
22530
22531impl fidl::endpoints::Responder for BaseNetworkSocketSetReuseAddressResponder {
22532    type ControlHandle = BaseNetworkSocketControlHandle;
22533
22534    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22535        &self.control_handle
22536    }
22537
22538    fn drop_without_shutdown(mut self) {
22539        // Safety: drops once, never accessed again due to mem::forget
22540        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22541        // Prevent Drop from running (which would shut down the channel)
22542        std::mem::forget(self);
22543    }
22544}
22545
22546impl BaseNetworkSocketSetReuseAddressResponder {
22547    /// Sends a response to the FIDL transaction.
22548    ///
22549    /// Sets the channel to shutdown if an error occurs.
22550    pub fn send(
22551        self,
22552        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22553    ) -> Result<(), fidl::Error> {
22554        let _result = self.send_raw(result);
22555        if _result.is_err() {
22556            self.control_handle.shutdown();
22557        }
22558        self.drop_without_shutdown();
22559        _result
22560    }
22561
22562    /// Similar to "send" but does not shutdown the channel if an error occurs.
22563    pub fn send_no_shutdown_on_err(
22564        self,
22565        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22566    ) -> Result<(), fidl::Error> {
22567        let _result = self.send_raw(result);
22568        self.drop_without_shutdown();
22569        _result
22570    }
22571
22572    fn send_raw(
22573        &self,
22574        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22575    ) -> Result<(), fidl::Error> {
22576        self.control_handle.inner.send::<fidl::encoding::ResultType<
22577            fidl::encoding::EmptyStruct,
22578            fidl_fuchsia_posix::Errno,
22579        >>(
22580            result,
22581            self.tx_id,
22582            0x1fd74ee8b9a4a876,
22583            fidl::encoding::DynamicFlags::empty(),
22584        )
22585    }
22586}
22587
22588#[must_use = "FIDL methods require a response to be sent"]
22589#[derive(Debug)]
22590pub struct BaseNetworkSocketGetReuseAddressResponder {
22591    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22592    tx_id: u32,
22593}
22594
22595/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22596/// if the responder is dropped without sending a response, so that the client
22597/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22598impl std::ops::Drop for BaseNetworkSocketGetReuseAddressResponder {
22599    fn drop(&mut self) {
22600        self.control_handle.shutdown();
22601        // Safety: drops once, never accessed again
22602        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22603    }
22604}
22605
22606impl fidl::endpoints::Responder for BaseNetworkSocketGetReuseAddressResponder {
22607    type ControlHandle = BaseNetworkSocketControlHandle;
22608
22609    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22610        &self.control_handle
22611    }
22612
22613    fn drop_without_shutdown(mut self) {
22614        // Safety: drops once, never accessed again due to mem::forget
22615        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22616        // Prevent Drop from running (which would shut down the channel)
22617        std::mem::forget(self);
22618    }
22619}
22620
22621impl BaseNetworkSocketGetReuseAddressResponder {
22622    /// Sends a response to the FIDL transaction.
22623    ///
22624    /// Sets the channel to shutdown if an error occurs.
22625    pub fn send(
22626        self,
22627        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
22628    ) -> Result<(), fidl::Error> {
22629        let _result = self.send_raw(result);
22630        if _result.is_err() {
22631            self.control_handle.shutdown();
22632        }
22633        self.drop_without_shutdown();
22634        _result
22635    }
22636
22637    /// Similar to "send" but does not shutdown the channel if an error occurs.
22638    pub fn send_no_shutdown_on_err(
22639        self,
22640        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
22641    ) -> Result<(), fidl::Error> {
22642        let _result = self.send_raw(result);
22643        self.drop_without_shutdown();
22644        _result
22645    }
22646
22647    fn send_raw(
22648        &self,
22649        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
22650    ) -> Result<(), fidl::Error> {
22651        self.control_handle.inner.send::<fidl::encoding::ResultType<
22652            BaseSocketGetReuseAddressResponse,
22653            fidl_fuchsia_posix::Errno,
22654        >>(
22655            result.map(|value| (value,)),
22656            self.tx_id,
22657            0x67b7206b8d1bc0a5,
22658            fidl::encoding::DynamicFlags::empty(),
22659        )
22660    }
22661}
22662
22663#[must_use = "FIDL methods require a response to be sent"]
22664#[derive(Debug)]
22665pub struct BaseNetworkSocketGetErrorResponder {
22666    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22667    tx_id: u32,
22668}
22669
22670/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22671/// if the responder is dropped without sending a response, so that the client
22672/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22673impl std::ops::Drop for BaseNetworkSocketGetErrorResponder {
22674    fn drop(&mut self) {
22675        self.control_handle.shutdown();
22676        // Safety: drops once, never accessed again
22677        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22678    }
22679}
22680
22681impl fidl::endpoints::Responder for BaseNetworkSocketGetErrorResponder {
22682    type ControlHandle = BaseNetworkSocketControlHandle;
22683
22684    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22685        &self.control_handle
22686    }
22687
22688    fn drop_without_shutdown(mut self) {
22689        // Safety: drops once, never accessed again due to mem::forget
22690        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22691        // Prevent Drop from running (which would shut down the channel)
22692        std::mem::forget(self);
22693    }
22694}
22695
22696impl BaseNetworkSocketGetErrorResponder {
22697    /// Sends a response to the FIDL transaction.
22698    ///
22699    /// Sets the channel to shutdown if an error occurs.
22700    pub fn send(
22701        self,
22702        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22703    ) -> Result<(), fidl::Error> {
22704        let _result = self.send_raw(result);
22705        if _result.is_err() {
22706            self.control_handle.shutdown();
22707        }
22708        self.drop_without_shutdown();
22709        _result
22710    }
22711
22712    /// Similar to "send" but does not shutdown the channel if an error occurs.
22713    pub fn send_no_shutdown_on_err(
22714        self,
22715        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22716    ) -> Result<(), fidl::Error> {
22717        let _result = self.send_raw(result);
22718        self.drop_without_shutdown();
22719        _result
22720    }
22721
22722    fn send_raw(
22723        &self,
22724        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22725    ) -> Result<(), fidl::Error> {
22726        self.control_handle.inner.send::<fidl::encoding::ResultType<
22727            fidl::encoding::EmptyStruct,
22728            fidl_fuchsia_posix::Errno,
22729        >>(
22730            result,
22731            self.tx_id,
22732            0x5aad39b33e5f6ebb,
22733            fidl::encoding::DynamicFlags::empty(),
22734        )
22735    }
22736}
22737
22738#[must_use = "FIDL methods require a response to be sent"]
22739#[derive(Debug)]
22740pub struct BaseNetworkSocketSetBroadcastResponder {
22741    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22742    tx_id: u32,
22743}
22744
22745/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22746/// if the responder is dropped without sending a response, so that the client
22747/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22748impl std::ops::Drop for BaseNetworkSocketSetBroadcastResponder {
22749    fn drop(&mut self) {
22750        self.control_handle.shutdown();
22751        // Safety: drops once, never accessed again
22752        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22753    }
22754}
22755
22756impl fidl::endpoints::Responder for BaseNetworkSocketSetBroadcastResponder {
22757    type ControlHandle = BaseNetworkSocketControlHandle;
22758
22759    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22760        &self.control_handle
22761    }
22762
22763    fn drop_without_shutdown(mut self) {
22764        // Safety: drops once, never accessed again due to mem::forget
22765        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22766        // Prevent Drop from running (which would shut down the channel)
22767        std::mem::forget(self);
22768    }
22769}
22770
22771impl BaseNetworkSocketSetBroadcastResponder {
22772    /// Sends a response to the FIDL transaction.
22773    ///
22774    /// Sets the channel to shutdown if an error occurs.
22775    pub fn send(
22776        self,
22777        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22778    ) -> Result<(), fidl::Error> {
22779        let _result = self.send_raw(result);
22780        if _result.is_err() {
22781            self.control_handle.shutdown();
22782        }
22783        self.drop_without_shutdown();
22784        _result
22785    }
22786
22787    /// Similar to "send" but does not shutdown the channel if an error occurs.
22788    pub fn send_no_shutdown_on_err(
22789        self,
22790        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22791    ) -> Result<(), fidl::Error> {
22792        let _result = self.send_raw(result);
22793        self.drop_without_shutdown();
22794        _result
22795    }
22796
22797    fn send_raw(
22798        &self,
22799        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22800    ) -> Result<(), fidl::Error> {
22801        self.control_handle.inner.send::<fidl::encoding::ResultType<
22802            fidl::encoding::EmptyStruct,
22803            fidl_fuchsia_posix::Errno,
22804        >>(
22805            result,
22806            self.tx_id,
22807            0x6023e081ce3cd947,
22808            fidl::encoding::DynamicFlags::empty(),
22809        )
22810    }
22811}
22812
22813#[must_use = "FIDL methods require a response to be sent"]
22814#[derive(Debug)]
22815pub struct BaseNetworkSocketGetBroadcastResponder {
22816    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22817    tx_id: u32,
22818}
22819
22820/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22821/// if the responder is dropped without sending a response, so that the client
22822/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22823impl std::ops::Drop for BaseNetworkSocketGetBroadcastResponder {
22824    fn drop(&mut self) {
22825        self.control_handle.shutdown();
22826        // Safety: drops once, never accessed again
22827        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22828    }
22829}
22830
22831impl fidl::endpoints::Responder for BaseNetworkSocketGetBroadcastResponder {
22832    type ControlHandle = BaseNetworkSocketControlHandle;
22833
22834    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22835        &self.control_handle
22836    }
22837
22838    fn drop_without_shutdown(mut self) {
22839        // Safety: drops once, never accessed again due to mem::forget
22840        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22841        // Prevent Drop from running (which would shut down the channel)
22842        std::mem::forget(self);
22843    }
22844}
22845
22846impl BaseNetworkSocketGetBroadcastResponder {
22847    /// Sends a response to the FIDL transaction.
22848    ///
22849    /// Sets the channel to shutdown if an error occurs.
22850    pub fn send(
22851        self,
22852        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
22853    ) -> Result<(), fidl::Error> {
22854        let _result = self.send_raw(result);
22855        if _result.is_err() {
22856            self.control_handle.shutdown();
22857        }
22858        self.drop_without_shutdown();
22859        _result
22860    }
22861
22862    /// Similar to "send" but does not shutdown the channel if an error occurs.
22863    pub fn send_no_shutdown_on_err(
22864        self,
22865        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
22866    ) -> Result<(), fidl::Error> {
22867        let _result = self.send_raw(result);
22868        self.drop_without_shutdown();
22869        _result
22870    }
22871
22872    fn send_raw(
22873        &self,
22874        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
22875    ) -> Result<(), fidl::Error> {
22876        self.control_handle.inner.send::<fidl::encoding::ResultType<
22877            BaseSocketGetBroadcastResponse,
22878            fidl_fuchsia_posix::Errno,
22879        >>(
22880            result.map(|value| (value,)),
22881            self.tx_id,
22882            0x68796fc556f9780d,
22883            fidl::encoding::DynamicFlags::empty(),
22884        )
22885    }
22886}
22887
22888#[must_use = "FIDL methods require a response to be sent"]
22889#[derive(Debug)]
22890pub struct BaseNetworkSocketSetSendBufferResponder {
22891    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22892    tx_id: u32,
22893}
22894
22895/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22896/// if the responder is dropped without sending a response, so that the client
22897/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22898impl std::ops::Drop for BaseNetworkSocketSetSendBufferResponder {
22899    fn drop(&mut self) {
22900        self.control_handle.shutdown();
22901        // Safety: drops once, never accessed again
22902        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22903    }
22904}
22905
22906impl fidl::endpoints::Responder for BaseNetworkSocketSetSendBufferResponder {
22907    type ControlHandle = BaseNetworkSocketControlHandle;
22908
22909    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22910        &self.control_handle
22911    }
22912
22913    fn drop_without_shutdown(mut self) {
22914        // Safety: drops once, never accessed again due to mem::forget
22915        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22916        // Prevent Drop from running (which would shut down the channel)
22917        std::mem::forget(self);
22918    }
22919}
22920
22921impl BaseNetworkSocketSetSendBufferResponder {
22922    /// Sends a response to the FIDL transaction.
22923    ///
22924    /// Sets the channel to shutdown if an error occurs.
22925    pub fn send(
22926        self,
22927        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22928    ) -> Result<(), fidl::Error> {
22929        let _result = self.send_raw(result);
22930        if _result.is_err() {
22931            self.control_handle.shutdown();
22932        }
22933        self.drop_without_shutdown();
22934        _result
22935    }
22936
22937    /// Similar to "send" but does not shutdown the channel if an error occurs.
22938    pub fn send_no_shutdown_on_err(
22939        self,
22940        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22941    ) -> Result<(), fidl::Error> {
22942        let _result = self.send_raw(result);
22943        self.drop_without_shutdown();
22944        _result
22945    }
22946
22947    fn send_raw(
22948        &self,
22949        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22950    ) -> Result<(), fidl::Error> {
22951        self.control_handle.inner.send::<fidl::encoding::ResultType<
22952            fidl::encoding::EmptyStruct,
22953            fidl_fuchsia_posix::Errno,
22954        >>(
22955            result,
22956            self.tx_id,
22957            0x756eac32d73a7a70,
22958            fidl::encoding::DynamicFlags::empty(),
22959        )
22960    }
22961}
22962
22963#[must_use = "FIDL methods require a response to be sent"]
22964#[derive(Debug)]
22965pub struct BaseNetworkSocketGetSendBufferResponder {
22966    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22967    tx_id: u32,
22968}
22969
22970/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22971/// if the responder is dropped without sending a response, so that the client
22972/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22973impl std::ops::Drop for BaseNetworkSocketGetSendBufferResponder {
22974    fn drop(&mut self) {
22975        self.control_handle.shutdown();
22976        // Safety: drops once, never accessed again
22977        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22978    }
22979}
22980
22981impl fidl::endpoints::Responder for BaseNetworkSocketGetSendBufferResponder {
22982    type ControlHandle = BaseNetworkSocketControlHandle;
22983
22984    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22985        &self.control_handle
22986    }
22987
22988    fn drop_without_shutdown(mut self) {
22989        // Safety: drops once, never accessed again due to mem::forget
22990        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22991        // Prevent Drop from running (which would shut down the channel)
22992        std::mem::forget(self);
22993    }
22994}
22995
22996impl BaseNetworkSocketGetSendBufferResponder {
22997    /// Sends a response to the FIDL transaction.
22998    ///
22999    /// Sets the channel to shutdown if an error occurs.
23000    pub fn send(
23001        self,
23002        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
23003    ) -> Result<(), fidl::Error> {
23004        let _result = self.send_raw(result);
23005        if _result.is_err() {
23006            self.control_handle.shutdown();
23007        }
23008        self.drop_without_shutdown();
23009        _result
23010    }
23011
23012    /// Similar to "send" but does not shutdown the channel if an error occurs.
23013    pub fn send_no_shutdown_on_err(
23014        self,
23015        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
23016    ) -> Result<(), fidl::Error> {
23017        let _result = self.send_raw(result);
23018        self.drop_without_shutdown();
23019        _result
23020    }
23021
23022    fn send_raw(
23023        &self,
23024        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
23025    ) -> Result<(), fidl::Error> {
23026        self.control_handle.inner.send::<fidl::encoding::ResultType<
23027            BaseSocketGetSendBufferResponse,
23028            fidl_fuchsia_posix::Errno,
23029        >>(
23030            result.map(|value_bytes| (value_bytes,)),
23031            self.tx_id,
23032            0x78a52fd9c7b2410b,
23033            fidl::encoding::DynamicFlags::empty(),
23034        )
23035    }
23036}
23037
23038#[must_use = "FIDL methods require a response to be sent"]
23039#[derive(Debug)]
23040pub struct BaseNetworkSocketSetReceiveBufferResponder {
23041    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23042    tx_id: u32,
23043}
23044
23045/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23046/// if the responder is dropped without sending a response, so that the client
23047/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23048impl std::ops::Drop for BaseNetworkSocketSetReceiveBufferResponder {
23049    fn drop(&mut self) {
23050        self.control_handle.shutdown();
23051        // Safety: drops once, never accessed again
23052        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23053    }
23054}
23055
23056impl fidl::endpoints::Responder for BaseNetworkSocketSetReceiveBufferResponder {
23057    type ControlHandle = BaseNetworkSocketControlHandle;
23058
23059    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23060        &self.control_handle
23061    }
23062
23063    fn drop_without_shutdown(mut self) {
23064        // Safety: drops once, never accessed again due to mem::forget
23065        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23066        // Prevent Drop from running (which would shut down the channel)
23067        std::mem::forget(self);
23068    }
23069}
23070
23071impl BaseNetworkSocketSetReceiveBufferResponder {
23072    /// Sends a response to the FIDL transaction.
23073    ///
23074    /// Sets the channel to shutdown if an error occurs.
23075    pub fn send(
23076        self,
23077        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23078    ) -> Result<(), fidl::Error> {
23079        let _result = self.send_raw(result);
23080        if _result.is_err() {
23081            self.control_handle.shutdown();
23082        }
23083        self.drop_without_shutdown();
23084        _result
23085    }
23086
23087    /// Similar to "send" but does not shutdown the channel if an error occurs.
23088    pub fn send_no_shutdown_on_err(
23089        self,
23090        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23091    ) -> Result<(), fidl::Error> {
23092        let _result = self.send_raw(result);
23093        self.drop_without_shutdown();
23094        _result
23095    }
23096
23097    fn send_raw(
23098        &self,
23099        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23100    ) -> Result<(), fidl::Error> {
23101        self.control_handle.inner.send::<fidl::encoding::ResultType<
23102            fidl::encoding::EmptyStruct,
23103            fidl_fuchsia_posix::Errno,
23104        >>(
23105            result,
23106            self.tx_id,
23107            0x6b0cf2f1919c7001,
23108            fidl::encoding::DynamicFlags::empty(),
23109        )
23110    }
23111}
23112
23113#[must_use = "FIDL methods require a response to be sent"]
23114#[derive(Debug)]
23115pub struct BaseNetworkSocketGetReceiveBufferResponder {
23116    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23117    tx_id: u32,
23118}
23119
23120/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23121/// if the responder is dropped without sending a response, so that the client
23122/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23123impl std::ops::Drop for BaseNetworkSocketGetReceiveBufferResponder {
23124    fn drop(&mut self) {
23125        self.control_handle.shutdown();
23126        // Safety: drops once, never accessed again
23127        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23128    }
23129}
23130
23131impl fidl::endpoints::Responder for BaseNetworkSocketGetReceiveBufferResponder {
23132    type ControlHandle = BaseNetworkSocketControlHandle;
23133
23134    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23135        &self.control_handle
23136    }
23137
23138    fn drop_without_shutdown(mut self) {
23139        // Safety: drops once, never accessed again due to mem::forget
23140        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23141        // Prevent Drop from running (which would shut down the channel)
23142        std::mem::forget(self);
23143    }
23144}
23145
23146impl BaseNetworkSocketGetReceiveBufferResponder {
23147    /// Sends a response to the FIDL transaction.
23148    ///
23149    /// Sets the channel to shutdown if an error occurs.
23150    pub fn send(
23151        self,
23152        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
23153    ) -> Result<(), fidl::Error> {
23154        let _result = self.send_raw(result);
23155        if _result.is_err() {
23156            self.control_handle.shutdown();
23157        }
23158        self.drop_without_shutdown();
23159        _result
23160    }
23161
23162    /// Similar to "send" but does not shutdown the channel if an error occurs.
23163    pub fn send_no_shutdown_on_err(
23164        self,
23165        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
23166    ) -> Result<(), fidl::Error> {
23167        let _result = self.send_raw(result);
23168        self.drop_without_shutdown();
23169        _result
23170    }
23171
23172    fn send_raw(
23173        &self,
23174        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
23175    ) -> Result<(), fidl::Error> {
23176        self.control_handle.inner.send::<fidl::encoding::ResultType<
23177            BaseSocketGetReceiveBufferResponse,
23178            fidl_fuchsia_posix::Errno,
23179        >>(
23180            result.map(|value_bytes| (value_bytes,)),
23181            self.tx_id,
23182            0x14c1a4b64f709e5c,
23183            fidl::encoding::DynamicFlags::empty(),
23184        )
23185    }
23186}
23187
23188#[must_use = "FIDL methods require a response to be sent"]
23189#[derive(Debug)]
23190pub struct BaseNetworkSocketSetKeepAliveResponder {
23191    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23192    tx_id: u32,
23193}
23194
23195/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23196/// if the responder is dropped without sending a response, so that the client
23197/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23198impl std::ops::Drop for BaseNetworkSocketSetKeepAliveResponder {
23199    fn drop(&mut self) {
23200        self.control_handle.shutdown();
23201        // Safety: drops once, never accessed again
23202        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23203    }
23204}
23205
23206impl fidl::endpoints::Responder for BaseNetworkSocketSetKeepAliveResponder {
23207    type ControlHandle = BaseNetworkSocketControlHandle;
23208
23209    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23210        &self.control_handle
23211    }
23212
23213    fn drop_without_shutdown(mut self) {
23214        // Safety: drops once, never accessed again due to mem::forget
23215        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23216        // Prevent Drop from running (which would shut down the channel)
23217        std::mem::forget(self);
23218    }
23219}
23220
23221impl BaseNetworkSocketSetKeepAliveResponder {
23222    /// Sends a response to the FIDL transaction.
23223    ///
23224    /// Sets the channel to shutdown if an error occurs.
23225    pub fn send(
23226        self,
23227        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23228    ) -> Result<(), fidl::Error> {
23229        let _result = self.send_raw(result);
23230        if _result.is_err() {
23231            self.control_handle.shutdown();
23232        }
23233        self.drop_without_shutdown();
23234        _result
23235    }
23236
23237    /// Similar to "send" but does not shutdown the channel if an error occurs.
23238    pub fn send_no_shutdown_on_err(
23239        self,
23240        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23241    ) -> Result<(), fidl::Error> {
23242        let _result = self.send_raw(result);
23243        self.drop_without_shutdown();
23244        _result
23245    }
23246
23247    fn send_raw(
23248        &self,
23249        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23250    ) -> Result<(), fidl::Error> {
23251        self.control_handle.inner.send::<fidl::encoding::ResultType<
23252            fidl::encoding::EmptyStruct,
23253            fidl_fuchsia_posix::Errno,
23254        >>(
23255            result,
23256            self.tx_id,
23257            0x572df8f0b920d2c7,
23258            fidl::encoding::DynamicFlags::empty(),
23259        )
23260    }
23261}
23262
23263#[must_use = "FIDL methods require a response to be sent"]
23264#[derive(Debug)]
23265pub struct BaseNetworkSocketGetKeepAliveResponder {
23266    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23267    tx_id: u32,
23268}
23269
23270/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23271/// if the responder is dropped without sending a response, so that the client
23272/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23273impl std::ops::Drop for BaseNetworkSocketGetKeepAliveResponder {
23274    fn drop(&mut self) {
23275        self.control_handle.shutdown();
23276        // Safety: drops once, never accessed again
23277        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23278    }
23279}
23280
23281impl fidl::endpoints::Responder for BaseNetworkSocketGetKeepAliveResponder {
23282    type ControlHandle = BaseNetworkSocketControlHandle;
23283
23284    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23285        &self.control_handle
23286    }
23287
23288    fn drop_without_shutdown(mut self) {
23289        // Safety: drops once, never accessed again due to mem::forget
23290        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23291        // Prevent Drop from running (which would shut down the channel)
23292        std::mem::forget(self);
23293    }
23294}
23295
23296impl BaseNetworkSocketGetKeepAliveResponder {
23297    /// Sends a response to the FIDL transaction.
23298    ///
23299    /// Sets the channel to shutdown if an error occurs.
23300    pub fn send(
23301        self,
23302        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
23303    ) -> Result<(), fidl::Error> {
23304        let _result = self.send_raw(result);
23305        if _result.is_err() {
23306            self.control_handle.shutdown();
23307        }
23308        self.drop_without_shutdown();
23309        _result
23310    }
23311
23312    /// Similar to "send" but does not shutdown the channel if an error occurs.
23313    pub fn send_no_shutdown_on_err(
23314        self,
23315        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
23316    ) -> Result<(), fidl::Error> {
23317        let _result = self.send_raw(result);
23318        self.drop_without_shutdown();
23319        _result
23320    }
23321
23322    fn send_raw(
23323        &self,
23324        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
23325    ) -> Result<(), fidl::Error> {
23326        self.control_handle.inner.send::<fidl::encoding::ResultType<
23327            BaseSocketGetKeepAliveResponse,
23328            fidl_fuchsia_posix::Errno,
23329        >>(
23330            result.map(|value| (value,)),
23331            self.tx_id,
23332            0x2dd29d3215f2c9d2,
23333            fidl::encoding::DynamicFlags::empty(),
23334        )
23335    }
23336}
23337
23338#[must_use = "FIDL methods require a response to be sent"]
23339#[derive(Debug)]
23340pub struct BaseNetworkSocketSetOutOfBandInlineResponder {
23341    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23342    tx_id: u32,
23343}
23344
23345/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23346/// if the responder is dropped without sending a response, so that the client
23347/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23348impl std::ops::Drop for BaseNetworkSocketSetOutOfBandInlineResponder {
23349    fn drop(&mut self) {
23350        self.control_handle.shutdown();
23351        // Safety: drops once, never accessed again
23352        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23353    }
23354}
23355
23356impl fidl::endpoints::Responder for BaseNetworkSocketSetOutOfBandInlineResponder {
23357    type ControlHandle = BaseNetworkSocketControlHandle;
23358
23359    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23360        &self.control_handle
23361    }
23362
23363    fn drop_without_shutdown(mut self) {
23364        // Safety: drops once, never accessed again due to mem::forget
23365        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23366        // Prevent Drop from running (which would shut down the channel)
23367        std::mem::forget(self);
23368    }
23369}
23370
23371impl BaseNetworkSocketSetOutOfBandInlineResponder {
23372    /// Sends a response to the FIDL transaction.
23373    ///
23374    /// Sets the channel to shutdown if an error occurs.
23375    pub fn send(
23376        self,
23377        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23378    ) -> Result<(), fidl::Error> {
23379        let _result = self.send_raw(result);
23380        if _result.is_err() {
23381            self.control_handle.shutdown();
23382        }
23383        self.drop_without_shutdown();
23384        _result
23385    }
23386
23387    /// Similar to "send" but does not shutdown the channel if an error occurs.
23388    pub fn send_no_shutdown_on_err(
23389        self,
23390        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23391    ) -> Result<(), fidl::Error> {
23392        let _result = self.send_raw(result);
23393        self.drop_without_shutdown();
23394        _result
23395    }
23396
23397    fn send_raw(
23398        &self,
23399        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23400    ) -> Result<(), fidl::Error> {
23401        self.control_handle.inner.send::<fidl::encoding::ResultType<
23402            fidl::encoding::EmptyStruct,
23403            fidl_fuchsia_posix::Errno,
23404        >>(
23405            result,
23406            self.tx_id,
23407            0x3ecb49968bee439,
23408            fidl::encoding::DynamicFlags::empty(),
23409        )
23410    }
23411}
23412
23413#[must_use = "FIDL methods require a response to be sent"]
23414#[derive(Debug)]
23415pub struct BaseNetworkSocketGetOutOfBandInlineResponder {
23416    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23417    tx_id: u32,
23418}
23419
23420/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23421/// if the responder is dropped without sending a response, so that the client
23422/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23423impl std::ops::Drop for BaseNetworkSocketGetOutOfBandInlineResponder {
23424    fn drop(&mut self) {
23425        self.control_handle.shutdown();
23426        // Safety: drops once, never accessed again
23427        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23428    }
23429}
23430
23431impl fidl::endpoints::Responder for BaseNetworkSocketGetOutOfBandInlineResponder {
23432    type ControlHandle = BaseNetworkSocketControlHandle;
23433
23434    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23435        &self.control_handle
23436    }
23437
23438    fn drop_without_shutdown(mut self) {
23439        // Safety: drops once, never accessed again due to mem::forget
23440        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23441        // Prevent Drop from running (which would shut down the channel)
23442        std::mem::forget(self);
23443    }
23444}
23445
23446impl BaseNetworkSocketGetOutOfBandInlineResponder {
23447    /// Sends a response to the FIDL transaction.
23448    ///
23449    /// Sets the channel to shutdown if an error occurs.
23450    pub fn send(
23451        self,
23452        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
23453    ) -> Result<(), fidl::Error> {
23454        let _result = self.send_raw(result);
23455        if _result.is_err() {
23456            self.control_handle.shutdown();
23457        }
23458        self.drop_without_shutdown();
23459        _result
23460    }
23461
23462    /// Similar to "send" but does not shutdown the channel if an error occurs.
23463    pub fn send_no_shutdown_on_err(
23464        self,
23465        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
23466    ) -> Result<(), fidl::Error> {
23467        let _result = self.send_raw(result);
23468        self.drop_without_shutdown();
23469        _result
23470    }
23471
23472    fn send_raw(
23473        &self,
23474        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
23475    ) -> Result<(), fidl::Error> {
23476        self.control_handle.inner.send::<fidl::encoding::ResultType<
23477            BaseSocketGetOutOfBandInlineResponse,
23478            fidl_fuchsia_posix::Errno,
23479        >>(
23480            result.map(|value| (value,)),
23481            self.tx_id,
23482            0x348c1ab3aeca1745,
23483            fidl::encoding::DynamicFlags::empty(),
23484        )
23485    }
23486}
23487
23488#[must_use = "FIDL methods require a response to be sent"]
23489#[derive(Debug)]
23490pub struct BaseNetworkSocketSetNoCheckResponder {
23491    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23492    tx_id: u32,
23493}
23494
23495/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23496/// if the responder is dropped without sending a response, so that the client
23497/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23498impl std::ops::Drop for BaseNetworkSocketSetNoCheckResponder {
23499    fn drop(&mut self) {
23500        self.control_handle.shutdown();
23501        // Safety: drops once, never accessed again
23502        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23503    }
23504}
23505
23506impl fidl::endpoints::Responder for BaseNetworkSocketSetNoCheckResponder {
23507    type ControlHandle = BaseNetworkSocketControlHandle;
23508
23509    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23510        &self.control_handle
23511    }
23512
23513    fn drop_without_shutdown(mut self) {
23514        // Safety: drops once, never accessed again due to mem::forget
23515        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23516        // Prevent Drop from running (which would shut down the channel)
23517        std::mem::forget(self);
23518    }
23519}
23520
23521impl BaseNetworkSocketSetNoCheckResponder {
23522    /// Sends a response to the FIDL transaction.
23523    ///
23524    /// Sets the channel to shutdown if an error occurs.
23525    pub fn send(
23526        self,
23527        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23528    ) -> Result<(), fidl::Error> {
23529        let _result = self.send_raw(result);
23530        if _result.is_err() {
23531            self.control_handle.shutdown();
23532        }
23533        self.drop_without_shutdown();
23534        _result
23535    }
23536
23537    /// Similar to "send" but does not shutdown the channel if an error occurs.
23538    pub fn send_no_shutdown_on_err(
23539        self,
23540        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23541    ) -> Result<(), fidl::Error> {
23542        let _result = self.send_raw(result);
23543        self.drop_without_shutdown();
23544        _result
23545    }
23546
23547    fn send_raw(
23548        &self,
23549        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23550    ) -> Result<(), fidl::Error> {
23551        self.control_handle.inner.send::<fidl::encoding::ResultType<
23552            fidl::encoding::EmptyStruct,
23553            fidl_fuchsia_posix::Errno,
23554        >>(
23555            result,
23556            self.tx_id,
23557            0x6bbf00c53a4c78c2,
23558            fidl::encoding::DynamicFlags::empty(),
23559        )
23560    }
23561}
23562
23563#[must_use = "FIDL methods require a response to be sent"]
23564#[derive(Debug)]
23565pub struct BaseNetworkSocketGetNoCheckResponder {
23566    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23567    tx_id: u32,
23568}
23569
23570/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23571/// if the responder is dropped without sending a response, so that the client
23572/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23573impl std::ops::Drop for BaseNetworkSocketGetNoCheckResponder {
23574    fn drop(&mut self) {
23575        self.control_handle.shutdown();
23576        // Safety: drops once, never accessed again
23577        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23578    }
23579}
23580
23581impl fidl::endpoints::Responder for BaseNetworkSocketGetNoCheckResponder {
23582    type ControlHandle = BaseNetworkSocketControlHandle;
23583
23584    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23585        &self.control_handle
23586    }
23587
23588    fn drop_without_shutdown(mut self) {
23589        // Safety: drops once, never accessed again due to mem::forget
23590        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23591        // Prevent Drop from running (which would shut down the channel)
23592        std::mem::forget(self);
23593    }
23594}
23595
23596impl BaseNetworkSocketGetNoCheckResponder {
23597    /// Sends a response to the FIDL transaction.
23598    ///
23599    /// Sets the channel to shutdown if an error occurs.
23600    pub fn send(
23601        self,
23602        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
23603    ) -> Result<(), fidl::Error> {
23604        let _result = self.send_raw(result);
23605        if _result.is_err() {
23606            self.control_handle.shutdown();
23607        }
23608        self.drop_without_shutdown();
23609        _result
23610    }
23611
23612    /// Similar to "send" but does not shutdown the channel if an error occurs.
23613    pub fn send_no_shutdown_on_err(
23614        self,
23615        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
23616    ) -> Result<(), fidl::Error> {
23617        let _result = self.send_raw(result);
23618        self.drop_without_shutdown();
23619        _result
23620    }
23621
23622    fn send_raw(
23623        &self,
23624        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
23625    ) -> Result<(), fidl::Error> {
23626        self.control_handle.inner.send::<fidl::encoding::ResultType<
23627            BaseSocketGetNoCheckResponse,
23628            fidl_fuchsia_posix::Errno,
23629        >>(
23630            result.map(|value| (value,)),
23631            self.tx_id,
23632            0x2cd4249286417694,
23633            fidl::encoding::DynamicFlags::empty(),
23634        )
23635    }
23636}
23637
23638#[must_use = "FIDL methods require a response to be sent"]
23639#[derive(Debug)]
23640pub struct BaseNetworkSocketSetLingerResponder {
23641    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23642    tx_id: u32,
23643}
23644
23645/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23646/// if the responder is dropped without sending a response, so that the client
23647/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23648impl std::ops::Drop for BaseNetworkSocketSetLingerResponder {
23649    fn drop(&mut self) {
23650        self.control_handle.shutdown();
23651        // Safety: drops once, never accessed again
23652        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23653    }
23654}
23655
23656impl fidl::endpoints::Responder for BaseNetworkSocketSetLingerResponder {
23657    type ControlHandle = BaseNetworkSocketControlHandle;
23658
23659    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23660        &self.control_handle
23661    }
23662
23663    fn drop_without_shutdown(mut self) {
23664        // Safety: drops once, never accessed again due to mem::forget
23665        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23666        // Prevent Drop from running (which would shut down the channel)
23667        std::mem::forget(self);
23668    }
23669}
23670
23671impl BaseNetworkSocketSetLingerResponder {
23672    /// Sends a response to the FIDL transaction.
23673    ///
23674    /// Sets the channel to shutdown if an error occurs.
23675    pub fn send(
23676        self,
23677        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23678    ) -> Result<(), fidl::Error> {
23679        let _result = self.send_raw(result);
23680        if _result.is_err() {
23681            self.control_handle.shutdown();
23682        }
23683        self.drop_without_shutdown();
23684        _result
23685    }
23686
23687    /// Similar to "send" but does not shutdown the channel if an error occurs.
23688    pub fn send_no_shutdown_on_err(
23689        self,
23690        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23691    ) -> Result<(), fidl::Error> {
23692        let _result = self.send_raw(result);
23693        self.drop_without_shutdown();
23694        _result
23695    }
23696
23697    fn send_raw(
23698        &self,
23699        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23700    ) -> Result<(), fidl::Error> {
23701        self.control_handle.inner.send::<fidl::encoding::ResultType<
23702            fidl::encoding::EmptyStruct,
23703            fidl_fuchsia_posix::Errno,
23704        >>(
23705            result,
23706            self.tx_id,
23707            0x45386351246e998e,
23708            fidl::encoding::DynamicFlags::empty(),
23709        )
23710    }
23711}
23712
23713#[must_use = "FIDL methods require a response to be sent"]
23714#[derive(Debug)]
23715pub struct BaseNetworkSocketGetLingerResponder {
23716    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23717    tx_id: u32,
23718}
23719
23720/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23721/// if the responder is dropped without sending a response, so that the client
23722/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23723impl std::ops::Drop for BaseNetworkSocketGetLingerResponder {
23724    fn drop(&mut self) {
23725        self.control_handle.shutdown();
23726        // Safety: drops once, never accessed again
23727        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23728    }
23729}
23730
23731impl fidl::endpoints::Responder for BaseNetworkSocketGetLingerResponder {
23732    type ControlHandle = BaseNetworkSocketControlHandle;
23733
23734    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23735        &self.control_handle
23736    }
23737
23738    fn drop_without_shutdown(mut self) {
23739        // Safety: drops once, never accessed again due to mem::forget
23740        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23741        // Prevent Drop from running (which would shut down the channel)
23742        std::mem::forget(self);
23743    }
23744}
23745
23746impl BaseNetworkSocketGetLingerResponder {
23747    /// Sends a response to the FIDL transaction.
23748    ///
23749    /// Sets the channel to shutdown if an error occurs.
23750    pub fn send(
23751        self,
23752        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
23753    ) -> Result<(), fidl::Error> {
23754        let _result = self.send_raw(result);
23755        if _result.is_err() {
23756            self.control_handle.shutdown();
23757        }
23758        self.drop_without_shutdown();
23759        _result
23760    }
23761
23762    /// Similar to "send" but does not shutdown the channel if an error occurs.
23763    pub fn send_no_shutdown_on_err(
23764        self,
23765        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
23766    ) -> Result<(), fidl::Error> {
23767        let _result = self.send_raw(result);
23768        self.drop_without_shutdown();
23769        _result
23770    }
23771
23772    fn send_raw(
23773        &self,
23774        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
23775    ) -> Result<(), fidl::Error> {
23776        self.control_handle.inner.send::<fidl::encoding::ResultType<
23777            BaseSocketGetLingerResponse,
23778            fidl_fuchsia_posix::Errno,
23779        >>(
23780            result,
23781            self.tx_id,
23782            0x48eb20fc5ccb0e45,
23783            fidl::encoding::DynamicFlags::empty(),
23784        )
23785    }
23786}
23787
23788#[must_use = "FIDL methods require a response to be sent"]
23789#[derive(Debug)]
23790pub struct BaseNetworkSocketSetReusePortResponder {
23791    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23792    tx_id: u32,
23793}
23794
23795/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23796/// if the responder is dropped without sending a response, so that the client
23797/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23798impl std::ops::Drop for BaseNetworkSocketSetReusePortResponder {
23799    fn drop(&mut self) {
23800        self.control_handle.shutdown();
23801        // Safety: drops once, never accessed again
23802        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23803    }
23804}
23805
23806impl fidl::endpoints::Responder for BaseNetworkSocketSetReusePortResponder {
23807    type ControlHandle = BaseNetworkSocketControlHandle;
23808
23809    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23810        &self.control_handle
23811    }
23812
23813    fn drop_without_shutdown(mut self) {
23814        // Safety: drops once, never accessed again due to mem::forget
23815        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23816        // Prevent Drop from running (which would shut down the channel)
23817        std::mem::forget(self);
23818    }
23819}
23820
23821impl BaseNetworkSocketSetReusePortResponder {
23822    /// Sends a response to the FIDL transaction.
23823    ///
23824    /// Sets the channel to shutdown if an error occurs.
23825    pub fn send(
23826        self,
23827        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23828    ) -> Result<(), fidl::Error> {
23829        let _result = self.send_raw(result);
23830        if _result.is_err() {
23831            self.control_handle.shutdown();
23832        }
23833        self.drop_without_shutdown();
23834        _result
23835    }
23836
23837    /// Similar to "send" but does not shutdown the channel if an error occurs.
23838    pub fn send_no_shutdown_on_err(
23839        self,
23840        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23841    ) -> Result<(), fidl::Error> {
23842        let _result = self.send_raw(result);
23843        self.drop_without_shutdown();
23844        _result
23845    }
23846
23847    fn send_raw(
23848        &self,
23849        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23850    ) -> Result<(), fidl::Error> {
23851        self.control_handle.inner.send::<fidl::encoding::ResultType<
23852            fidl::encoding::EmptyStruct,
23853            fidl_fuchsia_posix::Errno,
23854        >>(
23855            result,
23856            self.tx_id,
23857            0x547dc9cc0455189e,
23858            fidl::encoding::DynamicFlags::empty(),
23859        )
23860    }
23861}
23862
23863#[must_use = "FIDL methods require a response to be sent"]
23864#[derive(Debug)]
23865pub struct BaseNetworkSocketSetReusePortDeprecatedResponder {
23866    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23867    tx_id: u32,
23868}
23869
23870/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23871/// if the responder is dropped without sending a response, so that the client
23872/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23873impl std::ops::Drop for BaseNetworkSocketSetReusePortDeprecatedResponder {
23874    fn drop(&mut self) {
23875        self.control_handle.shutdown();
23876        // Safety: drops once, never accessed again
23877        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23878    }
23879}
23880
23881impl fidl::endpoints::Responder for BaseNetworkSocketSetReusePortDeprecatedResponder {
23882    type ControlHandle = BaseNetworkSocketControlHandle;
23883
23884    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23885        &self.control_handle
23886    }
23887
23888    fn drop_without_shutdown(mut self) {
23889        // Safety: drops once, never accessed again due to mem::forget
23890        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23891        // Prevent Drop from running (which would shut down the channel)
23892        std::mem::forget(self);
23893    }
23894}
23895
23896impl BaseNetworkSocketSetReusePortDeprecatedResponder {
23897    /// Sends a response to the FIDL transaction.
23898    ///
23899    /// Sets the channel to shutdown if an error occurs.
23900    pub fn send(
23901        self,
23902        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23903    ) -> Result<(), fidl::Error> {
23904        let _result = self.send_raw(result);
23905        if _result.is_err() {
23906            self.control_handle.shutdown();
23907        }
23908        self.drop_without_shutdown();
23909        _result
23910    }
23911
23912    /// Similar to "send" but does not shutdown the channel if an error occurs.
23913    pub fn send_no_shutdown_on_err(
23914        self,
23915        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23916    ) -> Result<(), fidl::Error> {
23917        let _result = self.send_raw(result);
23918        self.drop_without_shutdown();
23919        _result
23920    }
23921
23922    fn send_raw(
23923        &self,
23924        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23925    ) -> Result<(), fidl::Error> {
23926        self.control_handle.inner.send::<fidl::encoding::ResultType<
23927            fidl::encoding::EmptyStruct,
23928            fidl_fuchsia_posix::Errno,
23929        >>(
23930            result,
23931            self.tx_id,
23932            0x24dd3e5cb36d9ccb,
23933            fidl::encoding::DynamicFlags::empty(),
23934        )
23935    }
23936}
23937
23938#[must_use = "FIDL methods require a response to be sent"]
23939#[derive(Debug)]
23940pub struct BaseNetworkSocketGetReusePortResponder {
23941    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23942    tx_id: u32,
23943}
23944
23945/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23946/// if the responder is dropped without sending a response, so that the client
23947/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23948impl std::ops::Drop for BaseNetworkSocketGetReusePortResponder {
23949    fn drop(&mut self) {
23950        self.control_handle.shutdown();
23951        // Safety: drops once, never accessed again
23952        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23953    }
23954}
23955
23956impl fidl::endpoints::Responder for BaseNetworkSocketGetReusePortResponder {
23957    type ControlHandle = BaseNetworkSocketControlHandle;
23958
23959    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23960        &self.control_handle
23961    }
23962
23963    fn drop_without_shutdown(mut self) {
23964        // Safety: drops once, never accessed again due to mem::forget
23965        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23966        // Prevent Drop from running (which would shut down the channel)
23967        std::mem::forget(self);
23968    }
23969}
23970
23971impl BaseNetworkSocketGetReusePortResponder {
23972    /// Sends a response to the FIDL transaction.
23973    ///
23974    /// Sets the channel to shutdown if an error occurs.
23975    pub fn send(
23976        self,
23977        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
23978    ) -> Result<(), fidl::Error> {
23979        let _result = self.send_raw(result);
23980        if _result.is_err() {
23981            self.control_handle.shutdown();
23982        }
23983        self.drop_without_shutdown();
23984        _result
23985    }
23986
23987    /// Similar to "send" but does not shutdown the channel if an error occurs.
23988    pub fn send_no_shutdown_on_err(
23989        self,
23990        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
23991    ) -> Result<(), fidl::Error> {
23992        let _result = self.send_raw(result);
23993        self.drop_without_shutdown();
23994        _result
23995    }
23996
23997    fn send_raw(
23998        &self,
23999        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
24000    ) -> Result<(), fidl::Error> {
24001        self.control_handle.inner.send::<fidl::encoding::ResultType<
24002            BaseSocketGetReusePortResponse,
24003            fidl_fuchsia_posix::Errno,
24004        >>(
24005            result.map(|value| (value,)),
24006            self.tx_id,
24007            0x7a112c1ab54ff828,
24008            fidl::encoding::DynamicFlags::empty(),
24009        )
24010    }
24011}
24012
24013#[must_use = "FIDL methods require a response to be sent"]
24014#[derive(Debug)]
24015pub struct BaseNetworkSocketGetAcceptConnResponder {
24016    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24017    tx_id: u32,
24018}
24019
24020/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24021/// if the responder is dropped without sending a response, so that the client
24022/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24023impl std::ops::Drop for BaseNetworkSocketGetAcceptConnResponder {
24024    fn drop(&mut self) {
24025        self.control_handle.shutdown();
24026        // Safety: drops once, never accessed again
24027        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24028    }
24029}
24030
24031impl fidl::endpoints::Responder for BaseNetworkSocketGetAcceptConnResponder {
24032    type ControlHandle = BaseNetworkSocketControlHandle;
24033
24034    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24035        &self.control_handle
24036    }
24037
24038    fn drop_without_shutdown(mut self) {
24039        // Safety: drops once, never accessed again due to mem::forget
24040        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24041        // Prevent Drop from running (which would shut down the channel)
24042        std::mem::forget(self);
24043    }
24044}
24045
24046impl BaseNetworkSocketGetAcceptConnResponder {
24047    /// Sends a response to the FIDL transaction.
24048    ///
24049    /// Sets the channel to shutdown if an error occurs.
24050    pub fn send(
24051        self,
24052        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
24053    ) -> Result<(), fidl::Error> {
24054        let _result = self.send_raw(result);
24055        if _result.is_err() {
24056            self.control_handle.shutdown();
24057        }
24058        self.drop_without_shutdown();
24059        _result
24060    }
24061
24062    /// Similar to "send" but does not shutdown the channel if an error occurs.
24063    pub fn send_no_shutdown_on_err(
24064        self,
24065        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
24066    ) -> Result<(), fidl::Error> {
24067        let _result = self.send_raw(result);
24068        self.drop_without_shutdown();
24069        _result
24070    }
24071
24072    fn send_raw(
24073        &self,
24074        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
24075    ) -> Result<(), fidl::Error> {
24076        self.control_handle.inner.send::<fidl::encoding::ResultType<
24077            BaseSocketGetAcceptConnResponse,
24078            fidl_fuchsia_posix::Errno,
24079        >>(
24080            result.map(|value| (value,)),
24081            self.tx_id,
24082            0x67ce6db6c2ec8966,
24083            fidl::encoding::DynamicFlags::empty(),
24084        )
24085    }
24086}
24087
24088#[must_use = "FIDL methods require a response to be sent"]
24089#[derive(Debug)]
24090pub struct BaseNetworkSocketSetBindToDeviceResponder {
24091    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24092    tx_id: u32,
24093}
24094
24095/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24096/// if the responder is dropped without sending a response, so that the client
24097/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24098impl std::ops::Drop for BaseNetworkSocketSetBindToDeviceResponder {
24099    fn drop(&mut self) {
24100        self.control_handle.shutdown();
24101        // Safety: drops once, never accessed again
24102        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24103    }
24104}
24105
24106impl fidl::endpoints::Responder for BaseNetworkSocketSetBindToDeviceResponder {
24107    type ControlHandle = BaseNetworkSocketControlHandle;
24108
24109    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24110        &self.control_handle
24111    }
24112
24113    fn drop_without_shutdown(mut self) {
24114        // Safety: drops once, never accessed again due to mem::forget
24115        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24116        // Prevent Drop from running (which would shut down the channel)
24117        std::mem::forget(self);
24118    }
24119}
24120
24121impl BaseNetworkSocketSetBindToDeviceResponder {
24122    /// Sends a response to the FIDL transaction.
24123    ///
24124    /// Sets the channel to shutdown if an error occurs.
24125    pub fn send(
24126        self,
24127        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24128    ) -> Result<(), fidl::Error> {
24129        let _result = self.send_raw(result);
24130        if _result.is_err() {
24131            self.control_handle.shutdown();
24132        }
24133        self.drop_without_shutdown();
24134        _result
24135    }
24136
24137    /// Similar to "send" but does not shutdown the channel if an error occurs.
24138    pub fn send_no_shutdown_on_err(
24139        self,
24140        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24141    ) -> Result<(), fidl::Error> {
24142        let _result = self.send_raw(result);
24143        self.drop_without_shutdown();
24144        _result
24145    }
24146
24147    fn send_raw(
24148        &self,
24149        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24150    ) -> Result<(), fidl::Error> {
24151        self.control_handle.inner.send::<fidl::encoding::ResultType<
24152            fidl::encoding::EmptyStruct,
24153            fidl_fuchsia_posix::Errno,
24154        >>(
24155            result,
24156            self.tx_id,
24157            0x2118b483f28aafc4,
24158            fidl::encoding::DynamicFlags::empty(),
24159        )
24160    }
24161}
24162
24163#[must_use = "FIDL methods require a response to be sent"]
24164#[derive(Debug)]
24165pub struct BaseNetworkSocketGetBindToDeviceResponder {
24166    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24167    tx_id: u32,
24168}
24169
24170/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24171/// if the responder is dropped without sending a response, so that the client
24172/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24173impl std::ops::Drop for BaseNetworkSocketGetBindToDeviceResponder {
24174    fn drop(&mut self) {
24175        self.control_handle.shutdown();
24176        // Safety: drops once, never accessed again
24177        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24178    }
24179}
24180
24181impl fidl::endpoints::Responder for BaseNetworkSocketGetBindToDeviceResponder {
24182    type ControlHandle = BaseNetworkSocketControlHandle;
24183
24184    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24185        &self.control_handle
24186    }
24187
24188    fn drop_without_shutdown(mut self) {
24189        // Safety: drops once, never accessed again due to mem::forget
24190        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24191        // Prevent Drop from running (which would shut down the channel)
24192        std::mem::forget(self);
24193    }
24194}
24195
24196impl BaseNetworkSocketGetBindToDeviceResponder {
24197    /// Sends a response to the FIDL transaction.
24198    ///
24199    /// Sets the channel to shutdown if an error occurs.
24200    pub fn send(
24201        self,
24202        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
24203    ) -> Result<(), fidl::Error> {
24204        let _result = self.send_raw(result);
24205        if _result.is_err() {
24206            self.control_handle.shutdown();
24207        }
24208        self.drop_without_shutdown();
24209        _result
24210    }
24211
24212    /// Similar to "send" but does not shutdown the channel if an error occurs.
24213    pub fn send_no_shutdown_on_err(
24214        self,
24215        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
24216    ) -> Result<(), fidl::Error> {
24217        let _result = self.send_raw(result);
24218        self.drop_without_shutdown();
24219        _result
24220    }
24221
24222    fn send_raw(
24223        &self,
24224        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
24225    ) -> Result<(), fidl::Error> {
24226        self.control_handle.inner.send::<fidl::encoding::ResultType<
24227            BaseSocketGetBindToDeviceResponse,
24228            fidl_fuchsia_posix::Errno,
24229        >>(
24230            result.map(|value| (value,)),
24231            self.tx_id,
24232            0x1ab1fbf0ef7906c8,
24233            fidl::encoding::DynamicFlags::empty(),
24234        )
24235    }
24236}
24237
24238#[must_use = "FIDL methods require a response to be sent"]
24239#[derive(Debug)]
24240pub struct BaseNetworkSocketSetBindToInterfaceIndexResponder {
24241    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24242    tx_id: u32,
24243}
24244
24245/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24246/// if the responder is dropped without sending a response, so that the client
24247/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24248impl std::ops::Drop for BaseNetworkSocketSetBindToInterfaceIndexResponder {
24249    fn drop(&mut self) {
24250        self.control_handle.shutdown();
24251        // Safety: drops once, never accessed again
24252        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24253    }
24254}
24255
24256impl fidl::endpoints::Responder for BaseNetworkSocketSetBindToInterfaceIndexResponder {
24257    type ControlHandle = BaseNetworkSocketControlHandle;
24258
24259    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24260        &self.control_handle
24261    }
24262
24263    fn drop_without_shutdown(mut self) {
24264        // Safety: drops once, never accessed again due to mem::forget
24265        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24266        // Prevent Drop from running (which would shut down the channel)
24267        std::mem::forget(self);
24268    }
24269}
24270
24271impl BaseNetworkSocketSetBindToInterfaceIndexResponder {
24272    /// Sends a response to the FIDL transaction.
24273    ///
24274    /// Sets the channel to shutdown if an error occurs.
24275    pub fn send(
24276        self,
24277        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24278    ) -> Result<(), fidl::Error> {
24279        let _result = self.send_raw(result);
24280        if _result.is_err() {
24281            self.control_handle.shutdown();
24282        }
24283        self.drop_without_shutdown();
24284        _result
24285    }
24286
24287    /// Similar to "send" but does not shutdown the channel if an error occurs.
24288    pub fn send_no_shutdown_on_err(
24289        self,
24290        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24291    ) -> Result<(), fidl::Error> {
24292        let _result = self.send_raw(result);
24293        self.drop_without_shutdown();
24294        _result
24295    }
24296
24297    fn send_raw(
24298        &self,
24299        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24300    ) -> Result<(), fidl::Error> {
24301        self.control_handle.inner.send::<fidl::encoding::ResultType<
24302            fidl::encoding::EmptyStruct,
24303            fidl_fuchsia_posix::Errno,
24304        >>(
24305            result,
24306            self.tx_id,
24307            0x6e387a0def00821,
24308            fidl::encoding::DynamicFlags::empty(),
24309        )
24310    }
24311}
24312
24313#[must_use = "FIDL methods require a response to be sent"]
24314#[derive(Debug)]
24315pub struct BaseNetworkSocketGetBindToInterfaceIndexResponder {
24316    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24317    tx_id: u32,
24318}
24319
24320/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24321/// if the responder is dropped without sending a response, so that the client
24322/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24323impl std::ops::Drop for BaseNetworkSocketGetBindToInterfaceIndexResponder {
24324    fn drop(&mut self) {
24325        self.control_handle.shutdown();
24326        // Safety: drops once, never accessed again
24327        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24328    }
24329}
24330
24331impl fidl::endpoints::Responder for BaseNetworkSocketGetBindToInterfaceIndexResponder {
24332    type ControlHandle = BaseNetworkSocketControlHandle;
24333
24334    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24335        &self.control_handle
24336    }
24337
24338    fn drop_without_shutdown(mut self) {
24339        // Safety: drops once, never accessed again due to mem::forget
24340        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24341        // Prevent Drop from running (which would shut down the channel)
24342        std::mem::forget(self);
24343    }
24344}
24345
24346impl BaseNetworkSocketGetBindToInterfaceIndexResponder {
24347    /// Sends a response to the FIDL transaction.
24348    ///
24349    /// Sets the channel to shutdown if an error occurs.
24350    pub fn send(
24351        self,
24352        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
24353    ) -> Result<(), fidl::Error> {
24354        let _result = self.send_raw(result);
24355        if _result.is_err() {
24356            self.control_handle.shutdown();
24357        }
24358        self.drop_without_shutdown();
24359        _result
24360    }
24361
24362    /// Similar to "send" but does not shutdown the channel if an error occurs.
24363    pub fn send_no_shutdown_on_err(
24364        self,
24365        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
24366    ) -> Result<(), fidl::Error> {
24367        let _result = self.send_raw(result);
24368        self.drop_without_shutdown();
24369        _result
24370    }
24371
24372    fn send_raw(
24373        &self,
24374        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
24375    ) -> Result<(), fidl::Error> {
24376        self.control_handle.inner.send::<fidl::encoding::ResultType<
24377            BaseSocketGetBindToInterfaceIndexResponse,
24378            fidl_fuchsia_posix::Errno,
24379        >>(
24380            result.map(|value| (value,)),
24381            self.tx_id,
24382            0x59c31dd3e3078295,
24383            fidl::encoding::DynamicFlags::empty(),
24384        )
24385    }
24386}
24387
24388#[must_use = "FIDL methods require a response to be sent"]
24389#[derive(Debug)]
24390pub struct BaseNetworkSocketSetTimestampResponder {
24391    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24392    tx_id: u32,
24393}
24394
24395/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24396/// if the responder is dropped without sending a response, so that the client
24397/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24398impl std::ops::Drop for BaseNetworkSocketSetTimestampResponder {
24399    fn drop(&mut self) {
24400        self.control_handle.shutdown();
24401        // Safety: drops once, never accessed again
24402        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24403    }
24404}
24405
24406impl fidl::endpoints::Responder for BaseNetworkSocketSetTimestampResponder {
24407    type ControlHandle = BaseNetworkSocketControlHandle;
24408
24409    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24410        &self.control_handle
24411    }
24412
24413    fn drop_without_shutdown(mut self) {
24414        // Safety: drops once, never accessed again due to mem::forget
24415        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24416        // Prevent Drop from running (which would shut down the channel)
24417        std::mem::forget(self);
24418    }
24419}
24420
24421impl BaseNetworkSocketSetTimestampResponder {
24422    /// Sends a response to the FIDL transaction.
24423    ///
24424    /// Sets the channel to shutdown if an error occurs.
24425    pub fn send(
24426        self,
24427        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24428    ) -> Result<(), fidl::Error> {
24429        let _result = self.send_raw(result);
24430        if _result.is_err() {
24431            self.control_handle.shutdown();
24432        }
24433        self.drop_without_shutdown();
24434        _result
24435    }
24436
24437    /// Similar to "send" but does not shutdown the channel if an error occurs.
24438    pub fn send_no_shutdown_on_err(
24439        self,
24440        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24441    ) -> Result<(), fidl::Error> {
24442        let _result = self.send_raw(result);
24443        self.drop_without_shutdown();
24444        _result
24445    }
24446
24447    fn send_raw(
24448        &self,
24449        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24450    ) -> Result<(), fidl::Error> {
24451        self.control_handle.inner.send::<fidl::encoding::ResultType<
24452            fidl::encoding::EmptyStruct,
24453            fidl_fuchsia_posix::Errno,
24454        >>(
24455            result,
24456            self.tx_id,
24457            0x285d6516c263d839,
24458            fidl::encoding::DynamicFlags::empty(),
24459        )
24460    }
24461}
24462
24463#[must_use = "FIDL methods require a response to be sent"]
24464#[derive(Debug)]
24465pub struct BaseNetworkSocketGetTimestampResponder {
24466    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24467    tx_id: u32,
24468}
24469
24470/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24471/// if the responder is dropped without sending a response, so that the client
24472/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24473impl std::ops::Drop for BaseNetworkSocketGetTimestampResponder {
24474    fn drop(&mut self) {
24475        self.control_handle.shutdown();
24476        // Safety: drops once, never accessed again
24477        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24478    }
24479}
24480
24481impl fidl::endpoints::Responder for BaseNetworkSocketGetTimestampResponder {
24482    type ControlHandle = BaseNetworkSocketControlHandle;
24483
24484    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24485        &self.control_handle
24486    }
24487
24488    fn drop_without_shutdown(mut self) {
24489        // Safety: drops once, never accessed again due to mem::forget
24490        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24491        // Prevent Drop from running (which would shut down the channel)
24492        std::mem::forget(self);
24493    }
24494}
24495
24496impl BaseNetworkSocketGetTimestampResponder {
24497    /// Sends a response to the FIDL transaction.
24498    ///
24499    /// Sets the channel to shutdown if an error occurs.
24500    pub fn send(
24501        self,
24502        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
24503    ) -> Result<(), fidl::Error> {
24504        let _result = self.send_raw(result);
24505        if _result.is_err() {
24506            self.control_handle.shutdown();
24507        }
24508        self.drop_without_shutdown();
24509        _result
24510    }
24511
24512    /// Similar to "send" but does not shutdown the channel if an error occurs.
24513    pub fn send_no_shutdown_on_err(
24514        self,
24515        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
24516    ) -> Result<(), fidl::Error> {
24517        let _result = self.send_raw(result);
24518        self.drop_without_shutdown();
24519        _result
24520    }
24521
24522    fn send_raw(
24523        &self,
24524        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
24525    ) -> Result<(), fidl::Error> {
24526        self.control_handle.inner.send::<fidl::encoding::ResultType<
24527            BaseSocketGetTimestampResponse,
24528            fidl_fuchsia_posix::Errno,
24529        >>(
24530            result.map(|value| (value,)),
24531            self.tx_id,
24532            0x49f2fffbbcc2bd27,
24533            fidl::encoding::DynamicFlags::empty(),
24534        )
24535    }
24536}
24537
24538#[must_use = "FIDL methods require a response to be sent"]
24539#[derive(Debug)]
24540pub struct BaseNetworkSocketSetMarkResponder {
24541    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24542    tx_id: u32,
24543}
24544
24545/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24546/// if the responder is dropped without sending a response, so that the client
24547/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24548impl std::ops::Drop for BaseNetworkSocketSetMarkResponder {
24549    fn drop(&mut self) {
24550        self.control_handle.shutdown();
24551        // Safety: drops once, never accessed again
24552        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24553    }
24554}
24555
24556impl fidl::endpoints::Responder for BaseNetworkSocketSetMarkResponder {
24557    type ControlHandle = BaseNetworkSocketControlHandle;
24558
24559    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24560        &self.control_handle
24561    }
24562
24563    fn drop_without_shutdown(mut self) {
24564        // Safety: drops once, never accessed again due to mem::forget
24565        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24566        // Prevent Drop from running (which would shut down the channel)
24567        std::mem::forget(self);
24568    }
24569}
24570
24571impl BaseNetworkSocketSetMarkResponder {
24572    /// Sends a response to the FIDL transaction.
24573    ///
24574    /// Sets the channel to shutdown if an error occurs.
24575    pub fn send(
24576        self,
24577        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24578    ) -> Result<(), fidl::Error> {
24579        let _result = self.send_raw(result);
24580        if _result.is_err() {
24581            self.control_handle.shutdown();
24582        }
24583        self.drop_without_shutdown();
24584        _result
24585    }
24586
24587    /// Similar to "send" but does not shutdown the channel if an error occurs.
24588    pub fn send_no_shutdown_on_err(
24589        self,
24590        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24591    ) -> Result<(), fidl::Error> {
24592        let _result = self.send_raw(result);
24593        self.drop_without_shutdown();
24594        _result
24595    }
24596
24597    fn send_raw(
24598        &self,
24599        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24600    ) -> Result<(), fidl::Error> {
24601        self.control_handle.inner.send::<fidl::encoding::ResultType<
24602            fidl::encoding::EmptyStruct,
24603            fidl_fuchsia_posix::Errno,
24604        >>(
24605            result,
24606            self.tx_id,
24607            0x6ead6de09f653236,
24608            fidl::encoding::DynamicFlags::empty(),
24609        )
24610    }
24611}
24612
24613#[must_use = "FIDL methods require a response to be sent"]
24614#[derive(Debug)]
24615pub struct BaseNetworkSocketGetMarkResponder {
24616    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24617    tx_id: u32,
24618}
24619
24620/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24621/// if the responder is dropped without sending a response, so that the client
24622/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24623impl std::ops::Drop for BaseNetworkSocketGetMarkResponder {
24624    fn drop(&mut self) {
24625        self.control_handle.shutdown();
24626        // Safety: drops once, never accessed again
24627        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24628    }
24629}
24630
24631impl fidl::endpoints::Responder for BaseNetworkSocketGetMarkResponder {
24632    type ControlHandle = BaseNetworkSocketControlHandle;
24633
24634    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24635        &self.control_handle
24636    }
24637
24638    fn drop_without_shutdown(mut self) {
24639        // Safety: drops once, never accessed again due to mem::forget
24640        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24641        // Prevent Drop from running (which would shut down the channel)
24642        std::mem::forget(self);
24643    }
24644}
24645
24646impl BaseNetworkSocketGetMarkResponder {
24647    /// Sends a response to the FIDL transaction.
24648    ///
24649    /// Sets the channel to shutdown if an error occurs.
24650    pub fn send(
24651        self,
24652        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
24653    ) -> Result<(), fidl::Error> {
24654        let _result = self.send_raw(result);
24655        if _result.is_err() {
24656            self.control_handle.shutdown();
24657        }
24658        self.drop_without_shutdown();
24659        _result
24660    }
24661
24662    /// Similar to "send" but does not shutdown the channel if an error occurs.
24663    pub fn send_no_shutdown_on_err(
24664        self,
24665        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
24666    ) -> Result<(), fidl::Error> {
24667        let _result = self.send_raw(result);
24668        self.drop_without_shutdown();
24669        _result
24670    }
24671
24672    fn send_raw(
24673        &self,
24674        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
24675    ) -> Result<(), fidl::Error> {
24676        self.control_handle.inner.send::<fidl::encoding::ResultType<
24677            BaseSocketGetMarkResponse,
24678            fidl_fuchsia_posix::Errno,
24679        >>(
24680            result.map(|mark| (mark,)),
24681            self.tx_id,
24682            0x57a2752c61d93d47,
24683            fidl::encoding::DynamicFlags::empty(),
24684        )
24685    }
24686}
24687
24688#[must_use = "FIDL methods require a response to be sent"]
24689#[derive(Debug)]
24690pub struct BaseNetworkSocketGetCookieResponder {
24691    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24692    tx_id: u32,
24693}
24694
24695/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24696/// if the responder is dropped without sending a response, so that the client
24697/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24698impl std::ops::Drop for BaseNetworkSocketGetCookieResponder {
24699    fn drop(&mut self) {
24700        self.control_handle.shutdown();
24701        // Safety: drops once, never accessed again
24702        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24703    }
24704}
24705
24706impl fidl::endpoints::Responder for BaseNetworkSocketGetCookieResponder {
24707    type ControlHandle = BaseNetworkSocketControlHandle;
24708
24709    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24710        &self.control_handle
24711    }
24712
24713    fn drop_without_shutdown(mut self) {
24714        // Safety: drops once, never accessed again due to mem::forget
24715        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24716        // Prevent Drop from running (which would shut down the channel)
24717        std::mem::forget(self);
24718    }
24719}
24720
24721impl BaseNetworkSocketGetCookieResponder {
24722    /// Sends a response to the FIDL transaction.
24723    ///
24724    /// Sets the channel to shutdown if an error occurs.
24725    pub fn send(
24726        self,
24727        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
24728    ) -> Result<(), fidl::Error> {
24729        let _result = self.send_raw(result);
24730        if _result.is_err() {
24731            self.control_handle.shutdown();
24732        }
24733        self.drop_without_shutdown();
24734        _result
24735    }
24736
24737    /// Similar to "send" but does not shutdown the channel if an error occurs.
24738    pub fn send_no_shutdown_on_err(
24739        self,
24740        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
24741    ) -> Result<(), fidl::Error> {
24742        let _result = self.send_raw(result);
24743        self.drop_without_shutdown();
24744        _result
24745    }
24746
24747    fn send_raw(
24748        &self,
24749        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
24750    ) -> Result<(), fidl::Error> {
24751        self.control_handle.inner.send::<fidl::encoding::ResultType<
24752            BaseSocketGetCookieResponse,
24753            fidl_fuchsia_posix::Errno,
24754        >>(
24755            result.map(|value| (value,)),
24756            self.tx_id,
24757            0x2c2f47fd8f924e52,
24758            fidl::encoding::DynamicFlags::empty(),
24759        )
24760    }
24761}
24762
24763#[must_use = "FIDL methods require a response to be sent"]
24764#[derive(Debug)]
24765pub struct BaseNetworkSocketBindResponder {
24766    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24767    tx_id: u32,
24768}
24769
24770/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24771/// if the responder is dropped without sending a response, so that the client
24772/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24773impl std::ops::Drop for BaseNetworkSocketBindResponder {
24774    fn drop(&mut self) {
24775        self.control_handle.shutdown();
24776        // Safety: drops once, never accessed again
24777        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24778    }
24779}
24780
24781impl fidl::endpoints::Responder for BaseNetworkSocketBindResponder {
24782    type ControlHandle = BaseNetworkSocketControlHandle;
24783
24784    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24785        &self.control_handle
24786    }
24787
24788    fn drop_without_shutdown(mut self) {
24789        // Safety: drops once, never accessed again due to mem::forget
24790        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24791        // Prevent Drop from running (which would shut down the channel)
24792        std::mem::forget(self);
24793    }
24794}
24795
24796impl BaseNetworkSocketBindResponder {
24797    /// Sends a response to the FIDL transaction.
24798    ///
24799    /// Sets the channel to shutdown if an error occurs.
24800    pub fn send(
24801        self,
24802        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24803    ) -> Result<(), fidl::Error> {
24804        let _result = self.send_raw(result);
24805        if _result.is_err() {
24806            self.control_handle.shutdown();
24807        }
24808        self.drop_without_shutdown();
24809        _result
24810    }
24811
24812    /// Similar to "send" but does not shutdown the channel if an error occurs.
24813    pub fn send_no_shutdown_on_err(
24814        self,
24815        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24816    ) -> Result<(), fidl::Error> {
24817        let _result = self.send_raw(result);
24818        self.drop_without_shutdown();
24819        _result
24820    }
24821
24822    fn send_raw(
24823        &self,
24824        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24825    ) -> Result<(), fidl::Error> {
24826        self.control_handle.inner.send::<fidl::encoding::ResultType<
24827            fidl::encoding::EmptyStruct,
24828            fidl_fuchsia_posix::Errno,
24829        >>(
24830            result,
24831            self.tx_id,
24832            0x4bc6400ae92125d,
24833            fidl::encoding::DynamicFlags::empty(),
24834        )
24835    }
24836}
24837
24838#[must_use = "FIDL methods require a response to be sent"]
24839#[derive(Debug)]
24840pub struct BaseNetworkSocketConnectResponder {
24841    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24842    tx_id: u32,
24843}
24844
24845/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24846/// if the responder is dropped without sending a response, so that the client
24847/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24848impl std::ops::Drop for BaseNetworkSocketConnectResponder {
24849    fn drop(&mut self) {
24850        self.control_handle.shutdown();
24851        // Safety: drops once, never accessed again
24852        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24853    }
24854}
24855
24856impl fidl::endpoints::Responder for BaseNetworkSocketConnectResponder {
24857    type ControlHandle = BaseNetworkSocketControlHandle;
24858
24859    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24860        &self.control_handle
24861    }
24862
24863    fn drop_without_shutdown(mut self) {
24864        // Safety: drops once, never accessed again due to mem::forget
24865        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24866        // Prevent Drop from running (which would shut down the channel)
24867        std::mem::forget(self);
24868    }
24869}
24870
24871impl BaseNetworkSocketConnectResponder {
24872    /// Sends a response to the FIDL transaction.
24873    ///
24874    /// Sets the channel to shutdown if an error occurs.
24875    pub fn send(
24876        self,
24877        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24878    ) -> Result<(), fidl::Error> {
24879        let _result = self.send_raw(result);
24880        if _result.is_err() {
24881            self.control_handle.shutdown();
24882        }
24883        self.drop_without_shutdown();
24884        _result
24885    }
24886
24887    /// Similar to "send" but does not shutdown the channel if an error occurs.
24888    pub fn send_no_shutdown_on_err(
24889        self,
24890        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24891    ) -> Result<(), fidl::Error> {
24892        let _result = self.send_raw(result);
24893        self.drop_without_shutdown();
24894        _result
24895    }
24896
24897    fn send_raw(
24898        &self,
24899        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24900    ) -> Result<(), fidl::Error> {
24901        self.control_handle.inner.send::<fidl::encoding::ResultType<
24902            fidl::encoding::EmptyStruct,
24903            fidl_fuchsia_posix::Errno,
24904        >>(
24905            result,
24906            self.tx_id,
24907            0x5f05f19bfdd38871,
24908            fidl::encoding::DynamicFlags::empty(),
24909        )
24910    }
24911}
24912
24913#[must_use = "FIDL methods require a response to be sent"]
24914#[derive(Debug)]
24915pub struct BaseNetworkSocketDisconnectResponder {
24916    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24917    tx_id: u32,
24918}
24919
24920/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24921/// if the responder is dropped without sending a response, so that the client
24922/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24923impl std::ops::Drop for BaseNetworkSocketDisconnectResponder {
24924    fn drop(&mut self) {
24925        self.control_handle.shutdown();
24926        // Safety: drops once, never accessed again
24927        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24928    }
24929}
24930
24931impl fidl::endpoints::Responder for BaseNetworkSocketDisconnectResponder {
24932    type ControlHandle = BaseNetworkSocketControlHandle;
24933
24934    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24935        &self.control_handle
24936    }
24937
24938    fn drop_without_shutdown(mut self) {
24939        // Safety: drops once, never accessed again due to mem::forget
24940        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24941        // Prevent Drop from running (which would shut down the channel)
24942        std::mem::forget(self);
24943    }
24944}
24945
24946impl BaseNetworkSocketDisconnectResponder {
24947    /// Sends a response to the FIDL transaction.
24948    ///
24949    /// Sets the channel to shutdown if an error occurs.
24950    pub fn send(
24951        self,
24952        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24953    ) -> Result<(), fidl::Error> {
24954        let _result = self.send_raw(result);
24955        if _result.is_err() {
24956            self.control_handle.shutdown();
24957        }
24958        self.drop_without_shutdown();
24959        _result
24960    }
24961
24962    /// Similar to "send" but does not shutdown the channel if an error occurs.
24963    pub fn send_no_shutdown_on_err(
24964        self,
24965        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24966    ) -> Result<(), fidl::Error> {
24967        let _result = self.send_raw(result);
24968        self.drop_without_shutdown();
24969        _result
24970    }
24971
24972    fn send_raw(
24973        &self,
24974        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24975    ) -> Result<(), fidl::Error> {
24976        self.control_handle.inner.send::<fidl::encoding::ResultType<
24977            fidl::encoding::EmptyStruct,
24978            fidl_fuchsia_posix::Errno,
24979        >>(
24980            result,
24981            self.tx_id,
24982            0x74e63b91f7b29b2,
24983            fidl::encoding::DynamicFlags::empty(),
24984        )
24985    }
24986}
24987
24988#[must_use = "FIDL methods require a response to be sent"]
24989#[derive(Debug)]
24990pub struct BaseNetworkSocketGetSockNameResponder {
24991    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24992    tx_id: u32,
24993}
24994
24995/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24996/// if the responder is dropped without sending a response, so that the client
24997/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24998impl std::ops::Drop for BaseNetworkSocketGetSockNameResponder {
24999    fn drop(&mut self) {
25000        self.control_handle.shutdown();
25001        // Safety: drops once, never accessed again
25002        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25003    }
25004}
25005
25006impl fidl::endpoints::Responder for BaseNetworkSocketGetSockNameResponder {
25007    type ControlHandle = BaseNetworkSocketControlHandle;
25008
25009    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25010        &self.control_handle
25011    }
25012
25013    fn drop_without_shutdown(mut self) {
25014        // Safety: drops once, never accessed again due to mem::forget
25015        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25016        // Prevent Drop from running (which would shut down the channel)
25017        std::mem::forget(self);
25018    }
25019}
25020
25021impl BaseNetworkSocketGetSockNameResponder {
25022    /// Sends a response to the FIDL transaction.
25023    ///
25024    /// Sets the channel to shutdown if an error occurs.
25025    pub fn send(
25026        self,
25027        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
25028    ) -> Result<(), fidl::Error> {
25029        let _result = self.send_raw(result);
25030        if _result.is_err() {
25031            self.control_handle.shutdown();
25032        }
25033        self.drop_without_shutdown();
25034        _result
25035    }
25036
25037    /// Similar to "send" but does not shutdown the channel if an error occurs.
25038    pub fn send_no_shutdown_on_err(
25039        self,
25040        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
25041    ) -> Result<(), fidl::Error> {
25042        let _result = self.send_raw(result);
25043        self.drop_without_shutdown();
25044        _result
25045    }
25046
25047    fn send_raw(
25048        &self,
25049        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
25050    ) -> Result<(), fidl::Error> {
25051        self.control_handle.inner.send::<fidl::encoding::ResultType<
25052            BaseNetworkSocketGetSockNameResponse,
25053            fidl_fuchsia_posix::Errno,
25054        >>(
25055            result.map(|addr| (addr,)),
25056            self.tx_id,
25057            0x475f23f84a1a4f85,
25058            fidl::encoding::DynamicFlags::empty(),
25059        )
25060    }
25061}
25062
25063#[must_use = "FIDL methods require a response to be sent"]
25064#[derive(Debug)]
25065pub struct BaseNetworkSocketGetPeerNameResponder {
25066    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25067    tx_id: u32,
25068}
25069
25070/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25071/// if the responder is dropped without sending a response, so that the client
25072/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25073impl std::ops::Drop for BaseNetworkSocketGetPeerNameResponder {
25074    fn drop(&mut self) {
25075        self.control_handle.shutdown();
25076        // Safety: drops once, never accessed again
25077        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25078    }
25079}
25080
25081impl fidl::endpoints::Responder for BaseNetworkSocketGetPeerNameResponder {
25082    type ControlHandle = BaseNetworkSocketControlHandle;
25083
25084    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25085        &self.control_handle
25086    }
25087
25088    fn drop_without_shutdown(mut self) {
25089        // Safety: drops once, never accessed again due to mem::forget
25090        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25091        // Prevent Drop from running (which would shut down the channel)
25092        std::mem::forget(self);
25093    }
25094}
25095
25096impl BaseNetworkSocketGetPeerNameResponder {
25097    /// Sends a response to the FIDL transaction.
25098    ///
25099    /// Sets the channel to shutdown if an error occurs.
25100    pub fn send(
25101        self,
25102        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
25103    ) -> Result<(), fidl::Error> {
25104        let _result = self.send_raw(result);
25105        if _result.is_err() {
25106            self.control_handle.shutdown();
25107        }
25108        self.drop_without_shutdown();
25109        _result
25110    }
25111
25112    /// Similar to "send" but does not shutdown the channel if an error occurs.
25113    pub fn send_no_shutdown_on_err(
25114        self,
25115        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
25116    ) -> Result<(), fidl::Error> {
25117        let _result = self.send_raw(result);
25118        self.drop_without_shutdown();
25119        _result
25120    }
25121
25122    fn send_raw(
25123        &self,
25124        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
25125    ) -> Result<(), fidl::Error> {
25126        self.control_handle.inner.send::<fidl::encoding::ResultType<
25127            BaseNetworkSocketGetPeerNameResponse,
25128            fidl_fuchsia_posix::Errno,
25129        >>(
25130            result.map(|addr| (addr,)),
25131            self.tx_id,
25132            0x1ffecf4bd5b6432e,
25133            fidl::encoding::DynamicFlags::empty(),
25134        )
25135    }
25136}
25137
25138#[must_use = "FIDL methods require a response to be sent"]
25139#[derive(Debug)]
25140pub struct BaseNetworkSocketShutdownResponder {
25141    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25142    tx_id: u32,
25143}
25144
25145/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25146/// if the responder is dropped without sending a response, so that the client
25147/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25148impl std::ops::Drop for BaseNetworkSocketShutdownResponder {
25149    fn drop(&mut self) {
25150        self.control_handle.shutdown();
25151        // Safety: drops once, never accessed again
25152        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25153    }
25154}
25155
25156impl fidl::endpoints::Responder for BaseNetworkSocketShutdownResponder {
25157    type ControlHandle = BaseNetworkSocketControlHandle;
25158
25159    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25160        &self.control_handle
25161    }
25162
25163    fn drop_without_shutdown(mut self) {
25164        // Safety: drops once, never accessed again due to mem::forget
25165        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25166        // Prevent Drop from running (which would shut down the channel)
25167        std::mem::forget(self);
25168    }
25169}
25170
25171impl BaseNetworkSocketShutdownResponder {
25172    /// Sends a response to the FIDL transaction.
25173    ///
25174    /// Sets the channel to shutdown if an error occurs.
25175    pub fn send(
25176        self,
25177        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25178    ) -> Result<(), fidl::Error> {
25179        let _result = self.send_raw(result);
25180        if _result.is_err() {
25181            self.control_handle.shutdown();
25182        }
25183        self.drop_without_shutdown();
25184        _result
25185    }
25186
25187    /// Similar to "send" but does not shutdown the channel if an error occurs.
25188    pub fn send_no_shutdown_on_err(
25189        self,
25190        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25191    ) -> Result<(), fidl::Error> {
25192        let _result = self.send_raw(result);
25193        self.drop_without_shutdown();
25194        _result
25195    }
25196
25197    fn send_raw(
25198        &self,
25199        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25200    ) -> Result<(), fidl::Error> {
25201        self.control_handle.inner.send::<fidl::encoding::ResultType<
25202            fidl::encoding::EmptyStruct,
25203            fidl_fuchsia_posix::Errno,
25204        >>(
25205            result,
25206            self.tx_id,
25207            0x247f38b6db68c336,
25208            fidl::encoding::DynamicFlags::empty(),
25209        )
25210    }
25211}
25212
25213#[must_use = "FIDL methods require a response to be sent"]
25214#[derive(Debug)]
25215pub struct BaseNetworkSocketSetIpTypeOfServiceResponder {
25216    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25217    tx_id: u32,
25218}
25219
25220/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25221/// if the responder is dropped without sending a response, so that the client
25222/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25223impl std::ops::Drop for BaseNetworkSocketSetIpTypeOfServiceResponder {
25224    fn drop(&mut self) {
25225        self.control_handle.shutdown();
25226        // Safety: drops once, never accessed again
25227        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25228    }
25229}
25230
25231impl fidl::endpoints::Responder for BaseNetworkSocketSetIpTypeOfServiceResponder {
25232    type ControlHandle = BaseNetworkSocketControlHandle;
25233
25234    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25235        &self.control_handle
25236    }
25237
25238    fn drop_without_shutdown(mut self) {
25239        // Safety: drops once, never accessed again due to mem::forget
25240        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25241        // Prevent Drop from running (which would shut down the channel)
25242        std::mem::forget(self);
25243    }
25244}
25245
25246impl BaseNetworkSocketSetIpTypeOfServiceResponder {
25247    /// Sends a response to the FIDL transaction.
25248    ///
25249    /// Sets the channel to shutdown if an error occurs.
25250    pub fn send(
25251        self,
25252        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25253    ) -> Result<(), fidl::Error> {
25254        let _result = self.send_raw(result);
25255        if _result.is_err() {
25256            self.control_handle.shutdown();
25257        }
25258        self.drop_without_shutdown();
25259        _result
25260    }
25261
25262    /// Similar to "send" but does not shutdown the channel if an error occurs.
25263    pub fn send_no_shutdown_on_err(
25264        self,
25265        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25266    ) -> Result<(), fidl::Error> {
25267        let _result = self.send_raw(result);
25268        self.drop_without_shutdown();
25269        _result
25270    }
25271
25272    fn send_raw(
25273        &self,
25274        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25275    ) -> Result<(), fidl::Error> {
25276        self.control_handle.inner.send::<fidl::encoding::ResultType<
25277            fidl::encoding::EmptyStruct,
25278            fidl_fuchsia_posix::Errno,
25279        >>(
25280            result,
25281            self.tx_id,
25282            0x995c600475b6d46,
25283            fidl::encoding::DynamicFlags::empty(),
25284        )
25285    }
25286}
25287
25288#[must_use = "FIDL methods require a response to be sent"]
25289#[derive(Debug)]
25290pub struct BaseNetworkSocketGetIpTypeOfServiceResponder {
25291    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25292    tx_id: u32,
25293}
25294
25295/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25296/// if the responder is dropped without sending a response, so that the client
25297/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25298impl std::ops::Drop for BaseNetworkSocketGetIpTypeOfServiceResponder {
25299    fn drop(&mut self) {
25300        self.control_handle.shutdown();
25301        // Safety: drops once, never accessed again
25302        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25303    }
25304}
25305
25306impl fidl::endpoints::Responder for BaseNetworkSocketGetIpTypeOfServiceResponder {
25307    type ControlHandle = BaseNetworkSocketControlHandle;
25308
25309    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25310        &self.control_handle
25311    }
25312
25313    fn drop_without_shutdown(mut self) {
25314        // Safety: drops once, never accessed again due to mem::forget
25315        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25316        // Prevent Drop from running (which would shut down the channel)
25317        std::mem::forget(self);
25318    }
25319}
25320
25321impl BaseNetworkSocketGetIpTypeOfServiceResponder {
25322    /// Sends a response to the FIDL transaction.
25323    ///
25324    /// Sets the channel to shutdown if an error occurs.
25325    pub fn send(
25326        self,
25327        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
25328    ) -> Result<(), fidl::Error> {
25329        let _result = self.send_raw(result);
25330        if _result.is_err() {
25331            self.control_handle.shutdown();
25332        }
25333        self.drop_without_shutdown();
25334        _result
25335    }
25336
25337    /// Similar to "send" but does not shutdown the channel if an error occurs.
25338    pub fn send_no_shutdown_on_err(
25339        self,
25340        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
25341    ) -> Result<(), fidl::Error> {
25342        let _result = self.send_raw(result);
25343        self.drop_without_shutdown();
25344        _result
25345    }
25346
25347    fn send_raw(
25348        &self,
25349        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
25350    ) -> Result<(), fidl::Error> {
25351        self.control_handle.inner.send::<fidl::encoding::ResultType<
25352            BaseNetworkSocketGetIpTypeOfServiceResponse,
25353            fidl_fuchsia_posix::Errno,
25354        >>(
25355            result.map(|value| (value,)),
25356            self.tx_id,
25357            0x3814a04259f75fcb,
25358            fidl::encoding::DynamicFlags::empty(),
25359        )
25360    }
25361}
25362
25363#[must_use = "FIDL methods require a response to be sent"]
25364#[derive(Debug)]
25365pub struct BaseNetworkSocketSetIpTtlResponder {
25366    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25367    tx_id: u32,
25368}
25369
25370/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25371/// if the responder is dropped without sending a response, so that the client
25372/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25373impl std::ops::Drop for BaseNetworkSocketSetIpTtlResponder {
25374    fn drop(&mut self) {
25375        self.control_handle.shutdown();
25376        // Safety: drops once, never accessed again
25377        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25378    }
25379}
25380
25381impl fidl::endpoints::Responder for BaseNetworkSocketSetIpTtlResponder {
25382    type ControlHandle = BaseNetworkSocketControlHandle;
25383
25384    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25385        &self.control_handle
25386    }
25387
25388    fn drop_without_shutdown(mut self) {
25389        // Safety: drops once, never accessed again due to mem::forget
25390        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25391        // Prevent Drop from running (which would shut down the channel)
25392        std::mem::forget(self);
25393    }
25394}
25395
25396impl BaseNetworkSocketSetIpTtlResponder {
25397    /// Sends a response to the FIDL transaction.
25398    ///
25399    /// Sets the channel to shutdown if an error occurs.
25400    pub fn send(
25401        self,
25402        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25403    ) -> Result<(), fidl::Error> {
25404        let _result = self.send_raw(result);
25405        if _result.is_err() {
25406            self.control_handle.shutdown();
25407        }
25408        self.drop_without_shutdown();
25409        _result
25410    }
25411
25412    /// Similar to "send" but does not shutdown the channel if an error occurs.
25413    pub fn send_no_shutdown_on_err(
25414        self,
25415        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25416    ) -> Result<(), fidl::Error> {
25417        let _result = self.send_raw(result);
25418        self.drop_without_shutdown();
25419        _result
25420    }
25421
25422    fn send_raw(
25423        &self,
25424        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25425    ) -> Result<(), fidl::Error> {
25426        self.control_handle.inner.send::<fidl::encoding::ResultType<
25427            fidl::encoding::EmptyStruct,
25428            fidl_fuchsia_posix::Errno,
25429        >>(
25430            result,
25431            self.tx_id,
25432            0x29e2424b433ae1ef,
25433            fidl::encoding::DynamicFlags::empty(),
25434        )
25435    }
25436}
25437
25438#[must_use = "FIDL methods require a response to be sent"]
25439#[derive(Debug)]
25440pub struct BaseNetworkSocketGetIpTtlResponder {
25441    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25442    tx_id: u32,
25443}
25444
25445/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25446/// if the responder is dropped without sending a response, so that the client
25447/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25448impl std::ops::Drop for BaseNetworkSocketGetIpTtlResponder {
25449    fn drop(&mut self) {
25450        self.control_handle.shutdown();
25451        // Safety: drops once, never accessed again
25452        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25453    }
25454}
25455
25456impl fidl::endpoints::Responder for BaseNetworkSocketGetIpTtlResponder {
25457    type ControlHandle = BaseNetworkSocketControlHandle;
25458
25459    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25460        &self.control_handle
25461    }
25462
25463    fn drop_without_shutdown(mut self) {
25464        // Safety: drops once, never accessed again due to mem::forget
25465        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25466        // Prevent Drop from running (which would shut down the channel)
25467        std::mem::forget(self);
25468    }
25469}
25470
25471impl BaseNetworkSocketGetIpTtlResponder {
25472    /// Sends a response to the FIDL transaction.
25473    ///
25474    /// Sets the channel to shutdown if an error occurs.
25475    pub fn send(
25476        self,
25477        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
25478    ) -> Result<(), fidl::Error> {
25479        let _result = self.send_raw(result);
25480        if _result.is_err() {
25481            self.control_handle.shutdown();
25482        }
25483        self.drop_without_shutdown();
25484        _result
25485    }
25486
25487    /// Similar to "send" but does not shutdown the channel if an error occurs.
25488    pub fn send_no_shutdown_on_err(
25489        self,
25490        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
25491    ) -> Result<(), fidl::Error> {
25492        let _result = self.send_raw(result);
25493        self.drop_without_shutdown();
25494        _result
25495    }
25496
25497    fn send_raw(
25498        &self,
25499        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
25500    ) -> Result<(), fidl::Error> {
25501        self.control_handle.inner.send::<fidl::encoding::ResultType<
25502            BaseNetworkSocketGetIpTtlResponse,
25503            fidl_fuchsia_posix::Errno,
25504        >>(
25505            result.map(|value| (value,)),
25506            self.tx_id,
25507            0x47e47fa1f24da471,
25508            fidl::encoding::DynamicFlags::empty(),
25509        )
25510    }
25511}
25512
25513#[must_use = "FIDL methods require a response to be sent"]
25514#[derive(Debug)]
25515pub struct BaseNetworkSocketSetIpPacketInfoResponder {
25516    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25517    tx_id: u32,
25518}
25519
25520/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25521/// if the responder is dropped without sending a response, so that the client
25522/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25523impl std::ops::Drop for BaseNetworkSocketSetIpPacketInfoResponder {
25524    fn drop(&mut self) {
25525        self.control_handle.shutdown();
25526        // Safety: drops once, never accessed again
25527        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25528    }
25529}
25530
25531impl fidl::endpoints::Responder for BaseNetworkSocketSetIpPacketInfoResponder {
25532    type ControlHandle = BaseNetworkSocketControlHandle;
25533
25534    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25535        &self.control_handle
25536    }
25537
25538    fn drop_without_shutdown(mut self) {
25539        // Safety: drops once, never accessed again due to mem::forget
25540        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25541        // Prevent Drop from running (which would shut down the channel)
25542        std::mem::forget(self);
25543    }
25544}
25545
25546impl BaseNetworkSocketSetIpPacketInfoResponder {
25547    /// Sends a response to the FIDL transaction.
25548    ///
25549    /// Sets the channel to shutdown if an error occurs.
25550    pub fn send(
25551        self,
25552        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25553    ) -> Result<(), fidl::Error> {
25554        let _result = self.send_raw(result);
25555        if _result.is_err() {
25556            self.control_handle.shutdown();
25557        }
25558        self.drop_without_shutdown();
25559        _result
25560    }
25561
25562    /// Similar to "send" but does not shutdown the channel if an error occurs.
25563    pub fn send_no_shutdown_on_err(
25564        self,
25565        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25566    ) -> Result<(), fidl::Error> {
25567        let _result = self.send_raw(result);
25568        self.drop_without_shutdown();
25569        _result
25570    }
25571
25572    fn send_raw(
25573        &self,
25574        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25575    ) -> Result<(), fidl::Error> {
25576        self.control_handle.inner.send::<fidl::encoding::ResultType<
25577            fidl::encoding::EmptyStruct,
25578            fidl_fuchsia_posix::Errno,
25579        >>(
25580            result,
25581            self.tx_id,
25582            0x392d16bee20c0e16,
25583            fidl::encoding::DynamicFlags::empty(),
25584        )
25585    }
25586}
25587
25588#[must_use = "FIDL methods require a response to be sent"]
25589#[derive(Debug)]
25590pub struct BaseNetworkSocketGetIpPacketInfoResponder {
25591    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25592    tx_id: u32,
25593}
25594
25595/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25596/// if the responder is dropped without sending a response, so that the client
25597/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25598impl std::ops::Drop for BaseNetworkSocketGetIpPacketInfoResponder {
25599    fn drop(&mut self) {
25600        self.control_handle.shutdown();
25601        // Safety: drops once, never accessed again
25602        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25603    }
25604}
25605
25606impl fidl::endpoints::Responder for BaseNetworkSocketGetIpPacketInfoResponder {
25607    type ControlHandle = BaseNetworkSocketControlHandle;
25608
25609    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25610        &self.control_handle
25611    }
25612
25613    fn drop_without_shutdown(mut self) {
25614        // Safety: drops once, never accessed again due to mem::forget
25615        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25616        // Prevent Drop from running (which would shut down the channel)
25617        std::mem::forget(self);
25618    }
25619}
25620
25621impl BaseNetworkSocketGetIpPacketInfoResponder {
25622    /// Sends a response to the FIDL transaction.
25623    ///
25624    /// Sets the channel to shutdown if an error occurs.
25625    pub fn send(
25626        self,
25627        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
25628    ) -> Result<(), fidl::Error> {
25629        let _result = self.send_raw(result);
25630        if _result.is_err() {
25631            self.control_handle.shutdown();
25632        }
25633        self.drop_without_shutdown();
25634        _result
25635    }
25636
25637    /// Similar to "send" but does not shutdown the channel if an error occurs.
25638    pub fn send_no_shutdown_on_err(
25639        self,
25640        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
25641    ) -> Result<(), fidl::Error> {
25642        let _result = self.send_raw(result);
25643        self.drop_without_shutdown();
25644        _result
25645    }
25646
25647    fn send_raw(
25648        &self,
25649        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
25650    ) -> Result<(), fidl::Error> {
25651        self.control_handle.inner.send::<fidl::encoding::ResultType<
25652            BaseNetworkSocketGetIpPacketInfoResponse,
25653            fidl_fuchsia_posix::Errno,
25654        >>(
25655            result.map(|value| (value,)),
25656            self.tx_id,
25657            0x54b505f242280740,
25658            fidl::encoding::DynamicFlags::empty(),
25659        )
25660    }
25661}
25662
25663#[must_use = "FIDL methods require a response to be sent"]
25664#[derive(Debug)]
25665pub struct BaseNetworkSocketSetIpReceiveTypeOfServiceResponder {
25666    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25667    tx_id: u32,
25668}
25669
25670/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25671/// if the responder is dropped without sending a response, so that the client
25672/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25673impl std::ops::Drop for BaseNetworkSocketSetIpReceiveTypeOfServiceResponder {
25674    fn drop(&mut self) {
25675        self.control_handle.shutdown();
25676        // Safety: drops once, never accessed again
25677        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25678    }
25679}
25680
25681impl fidl::endpoints::Responder for BaseNetworkSocketSetIpReceiveTypeOfServiceResponder {
25682    type ControlHandle = BaseNetworkSocketControlHandle;
25683
25684    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25685        &self.control_handle
25686    }
25687
25688    fn drop_without_shutdown(mut self) {
25689        // Safety: drops once, never accessed again due to mem::forget
25690        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25691        // Prevent Drop from running (which would shut down the channel)
25692        std::mem::forget(self);
25693    }
25694}
25695
25696impl BaseNetworkSocketSetIpReceiveTypeOfServiceResponder {
25697    /// Sends a response to the FIDL transaction.
25698    ///
25699    /// Sets the channel to shutdown if an error occurs.
25700    pub fn send(
25701        self,
25702        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25703    ) -> Result<(), fidl::Error> {
25704        let _result = self.send_raw(result);
25705        if _result.is_err() {
25706            self.control_handle.shutdown();
25707        }
25708        self.drop_without_shutdown();
25709        _result
25710    }
25711
25712    /// Similar to "send" but does not shutdown the channel if an error occurs.
25713    pub fn send_no_shutdown_on_err(
25714        self,
25715        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25716    ) -> Result<(), fidl::Error> {
25717        let _result = self.send_raw(result);
25718        self.drop_without_shutdown();
25719        _result
25720    }
25721
25722    fn send_raw(
25723        &self,
25724        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25725    ) -> Result<(), fidl::Error> {
25726        self.control_handle.inner.send::<fidl::encoding::ResultType<
25727            fidl::encoding::EmptyStruct,
25728            fidl_fuchsia_posix::Errno,
25729        >>(
25730            result,
25731            self.tx_id,
25732            0x6c4f6714995f84ef,
25733            fidl::encoding::DynamicFlags::empty(),
25734        )
25735    }
25736}
25737
25738#[must_use = "FIDL methods require a response to be sent"]
25739#[derive(Debug)]
25740pub struct BaseNetworkSocketGetIpReceiveTypeOfServiceResponder {
25741    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25742    tx_id: u32,
25743}
25744
25745/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25746/// if the responder is dropped without sending a response, so that the client
25747/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25748impl std::ops::Drop for BaseNetworkSocketGetIpReceiveTypeOfServiceResponder {
25749    fn drop(&mut self) {
25750        self.control_handle.shutdown();
25751        // Safety: drops once, never accessed again
25752        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25753    }
25754}
25755
25756impl fidl::endpoints::Responder for BaseNetworkSocketGetIpReceiveTypeOfServiceResponder {
25757    type ControlHandle = BaseNetworkSocketControlHandle;
25758
25759    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25760        &self.control_handle
25761    }
25762
25763    fn drop_without_shutdown(mut self) {
25764        // Safety: drops once, never accessed again due to mem::forget
25765        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25766        // Prevent Drop from running (which would shut down the channel)
25767        std::mem::forget(self);
25768    }
25769}
25770
25771impl BaseNetworkSocketGetIpReceiveTypeOfServiceResponder {
25772    /// Sends a response to the FIDL transaction.
25773    ///
25774    /// Sets the channel to shutdown if an error occurs.
25775    pub fn send(
25776        self,
25777        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
25778    ) -> Result<(), fidl::Error> {
25779        let _result = self.send_raw(result);
25780        if _result.is_err() {
25781            self.control_handle.shutdown();
25782        }
25783        self.drop_without_shutdown();
25784        _result
25785    }
25786
25787    /// Similar to "send" but does not shutdown the channel if an error occurs.
25788    pub fn send_no_shutdown_on_err(
25789        self,
25790        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
25791    ) -> Result<(), fidl::Error> {
25792        let _result = self.send_raw(result);
25793        self.drop_without_shutdown();
25794        _result
25795    }
25796
25797    fn send_raw(
25798        &self,
25799        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
25800    ) -> Result<(), fidl::Error> {
25801        self.control_handle.inner.send::<fidl::encoding::ResultType<
25802            BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
25803            fidl_fuchsia_posix::Errno,
25804        >>(
25805            result.map(|value| (value,)),
25806            self.tx_id,
25807            0x4158ba7dc2795960,
25808            fidl::encoding::DynamicFlags::empty(),
25809        )
25810    }
25811}
25812
25813#[must_use = "FIDL methods require a response to be sent"]
25814#[derive(Debug)]
25815pub struct BaseNetworkSocketSetIpReceiveTtlResponder {
25816    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25817    tx_id: u32,
25818}
25819
25820/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25821/// if the responder is dropped without sending a response, so that the client
25822/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25823impl std::ops::Drop for BaseNetworkSocketSetIpReceiveTtlResponder {
25824    fn drop(&mut self) {
25825        self.control_handle.shutdown();
25826        // Safety: drops once, never accessed again
25827        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25828    }
25829}
25830
25831impl fidl::endpoints::Responder for BaseNetworkSocketSetIpReceiveTtlResponder {
25832    type ControlHandle = BaseNetworkSocketControlHandle;
25833
25834    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25835        &self.control_handle
25836    }
25837
25838    fn drop_without_shutdown(mut self) {
25839        // Safety: drops once, never accessed again due to mem::forget
25840        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25841        // Prevent Drop from running (which would shut down the channel)
25842        std::mem::forget(self);
25843    }
25844}
25845
25846impl BaseNetworkSocketSetIpReceiveTtlResponder {
25847    /// Sends a response to the FIDL transaction.
25848    ///
25849    /// Sets the channel to shutdown if an error occurs.
25850    pub fn send(
25851        self,
25852        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25853    ) -> Result<(), fidl::Error> {
25854        let _result = self.send_raw(result);
25855        if _result.is_err() {
25856            self.control_handle.shutdown();
25857        }
25858        self.drop_without_shutdown();
25859        _result
25860    }
25861
25862    /// Similar to "send" but does not shutdown the channel if an error occurs.
25863    pub fn send_no_shutdown_on_err(
25864        self,
25865        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25866    ) -> Result<(), fidl::Error> {
25867        let _result = self.send_raw(result);
25868        self.drop_without_shutdown();
25869        _result
25870    }
25871
25872    fn send_raw(
25873        &self,
25874        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25875    ) -> Result<(), fidl::Error> {
25876        self.control_handle.inner.send::<fidl::encoding::ResultType<
25877            fidl::encoding::EmptyStruct,
25878            fidl_fuchsia_posix::Errno,
25879        >>(
25880            result,
25881            self.tx_id,
25882            0x46f15be0ce0ab82b,
25883            fidl::encoding::DynamicFlags::empty(),
25884        )
25885    }
25886}
25887
25888#[must_use = "FIDL methods require a response to be sent"]
25889#[derive(Debug)]
25890pub struct BaseNetworkSocketGetIpReceiveTtlResponder {
25891    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25892    tx_id: u32,
25893}
25894
25895/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25896/// if the responder is dropped without sending a response, so that the client
25897/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25898impl std::ops::Drop for BaseNetworkSocketGetIpReceiveTtlResponder {
25899    fn drop(&mut self) {
25900        self.control_handle.shutdown();
25901        // Safety: drops once, never accessed again
25902        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25903    }
25904}
25905
25906impl fidl::endpoints::Responder for BaseNetworkSocketGetIpReceiveTtlResponder {
25907    type ControlHandle = BaseNetworkSocketControlHandle;
25908
25909    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25910        &self.control_handle
25911    }
25912
25913    fn drop_without_shutdown(mut self) {
25914        // Safety: drops once, never accessed again due to mem::forget
25915        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25916        // Prevent Drop from running (which would shut down the channel)
25917        std::mem::forget(self);
25918    }
25919}
25920
25921impl BaseNetworkSocketGetIpReceiveTtlResponder {
25922    /// Sends a response to the FIDL transaction.
25923    ///
25924    /// Sets the channel to shutdown if an error occurs.
25925    pub fn send(
25926        self,
25927        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
25928    ) -> Result<(), fidl::Error> {
25929        let _result = self.send_raw(result);
25930        if _result.is_err() {
25931            self.control_handle.shutdown();
25932        }
25933        self.drop_without_shutdown();
25934        _result
25935    }
25936
25937    /// Similar to "send" but does not shutdown the channel if an error occurs.
25938    pub fn send_no_shutdown_on_err(
25939        self,
25940        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
25941    ) -> Result<(), fidl::Error> {
25942        let _result = self.send_raw(result);
25943        self.drop_without_shutdown();
25944        _result
25945    }
25946
25947    fn send_raw(
25948        &self,
25949        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
25950    ) -> Result<(), fidl::Error> {
25951        self.control_handle.inner.send::<fidl::encoding::ResultType<
25952            BaseNetworkSocketGetIpReceiveTtlResponse,
25953            fidl_fuchsia_posix::Errno,
25954        >>(
25955            result.map(|value| (value,)),
25956            self.tx_id,
25957            0x678ddd5a5dfa2eb5,
25958            fidl::encoding::DynamicFlags::empty(),
25959        )
25960    }
25961}
25962
25963#[must_use = "FIDL methods require a response to be sent"]
25964#[derive(Debug)]
25965pub struct BaseNetworkSocketSetIpMulticastInterfaceResponder {
25966    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25967    tx_id: u32,
25968}
25969
25970/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25971/// if the responder is dropped without sending a response, so that the client
25972/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25973impl std::ops::Drop for BaseNetworkSocketSetIpMulticastInterfaceResponder {
25974    fn drop(&mut self) {
25975        self.control_handle.shutdown();
25976        // Safety: drops once, never accessed again
25977        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25978    }
25979}
25980
25981impl fidl::endpoints::Responder for BaseNetworkSocketSetIpMulticastInterfaceResponder {
25982    type ControlHandle = BaseNetworkSocketControlHandle;
25983
25984    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25985        &self.control_handle
25986    }
25987
25988    fn drop_without_shutdown(mut self) {
25989        // Safety: drops once, never accessed again due to mem::forget
25990        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25991        // Prevent Drop from running (which would shut down the channel)
25992        std::mem::forget(self);
25993    }
25994}
25995
25996impl BaseNetworkSocketSetIpMulticastInterfaceResponder {
25997    /// Sends a response to the FIDL transaction.
25998    ///
25999    /// Sets the channel to shutdown if an error occurs.
26000    pub fn send(
26001        self,
26002        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26003    ) -> Result<(), fidl::Error> {
26004        let _result = self.send_raw(result);
26005        if _result.is_err() {
26006            self.control_handle.shutdown();
26007        }
26008        self.drop_without_shutdown();
26009        _result
26010    }
26011
26012    /// Similar to "send" but does not shutdown the channel if an error occurs.
26013    pub fn send_no_shutdown_on_err(
26014        self,
26015        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26016    ) -> Result<(), fidl::Error> {
26017        let _result = self.send_raw(result);
26018        self.drop_without_shutdown();
26019        _result
26020    }
26021
26022    fn send_raw(
26023        &self,
26024        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26025    ) -> Result<(), fidl::Error> {
26026        self.control_handle.inner.send::<fidl::encoding::ResultType<
26027            fidl::encoding::EmptyStruct,
26028            fidl_fuchsia_posix::Errno,
26029        >>(
26030            result,
26031            self.tx_id,
26032            0x752fbfa9b12befe,
26033            fidl::encoding::DynamicFlags::empty(),
26034        )
26035    }
26036}
26037
26038#[must_use = "FIDL methods require a response to be sent"]
26039#[derive(Debug)]
26040pub struct BaseNetworkSocketGetIpMulticastInterfaceResponder {
26041    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26042    tx_id: u32,
26043}
26044
26045/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26046/// if the responder is dropped without sending a response, so that the client
26047/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26048impl std::ops::Drop for BaseNetworkSocketGetIpMulticastInterfaceResponder {
26049    fn drop(&mut self) {
26050        self.control_handle.shutdown();
26051        // Safety: drops once, never accessed again
26052        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26053    }
26054}
26055
26056impl fidl::endpoints::Responder for BaseNetworkSocketGetIpMulticastInterfaceResponder {
26057    type ControlHandle = BaseNetworkSocketControlHandle;
26058
26059    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26060        &self.control_handle
26061    }
26062
26063    fn drop_without_shutdown(mut self) {
26064        // Safety: drops once, never accessed again due to mem::forget
26065        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26066        // Prevent Drop from running (which would shut down the channel)
26067        std::mem::forget(self);
26068    }
26069}
26070
26071impl BaseNetworkSocketGetIpMulticastInterfaceResponder {
26072    /// Sends a response to the FIDL transaction.
26073    ///
26074    /// Sets the channel to shutdown if an error occurs.
26075    pub fn send(
26076        self,
26077        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
26078    ) -> Result<(), fidl::Error> {
26079        let _result = self.send_raw(result);
26080        if _result.is_err() {
26081            self.control_handle.shutdown();
26082        }
26083        self.drop_without_shutdown();
26084        _result
26085    }
26086
26087    /// Similar to "send" but does not shutdown the channel if an error occurs.
26088    pub fn send_no_shutdown_on_err(
26089        self,
26090        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
26091    ) -> Result<(), fidl::Error> {
26092        let _result = self.send_raw(result);
26093        self.drop_without_shutdown();
26094        _result
26095    }
26096
26097    fn send_raw(
26098        &self,
26099        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
26100    ) -> Result<(), fidl::Error> {
26101        self.control_handle.inner.send::<fidl::encoding::ResultType<
26102            BaseNetworkSocketGetIpMulticastInterfaceResponse,
26103            fidl_fuchsia_posix::Errno,
26104        >>(
26105            result.map(|value| (value,)),
26106            self.tx_id,
26107            0x320bd14c4df046c4,
26108            fidl::encoding::DynamicFlags::empty(),
26109        )
26110    }
26111}
26112
26113#[must_use = "FIDL methods require a response to be sent"]
26114#[derive(Debug)]
26115pub struct BaseNetworkSocketSetIpMulticastTtlResponder {
26116    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26117    tx_id: u32,
26118}
26119
26120/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26121/// if the responder is dropped without sending a response, so that the client
26122/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26123impl std::ops::Drop for BaseNetworkSocketSetIpMulticastTtlResponder {
26124    fn drop(&mut self) {
26125        self.control_handle.shutdown();
26126        // Safety: drops once, never accessed again
26127        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26128    }
26129}
26130
26131impl fidl::endpoints::Responder for BaseNetworkSocketSetIpMulticastTtlResponder {
26132    type ControlHandle = BaseNetworkSocketControlHandle;
26133
26134    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26135        &self.control_handle
26136    }
26137
26138    fn drop_without_shutdown(mut self) {
26139        // Safety: drops once, never accessed again due to mem::forget
26140        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26141        // Prevent Drop from running (which would shut down the channel)
26142        std::mem::forget(self);
26143    }
26144}
26145
26146impl BaseNetworkSocketSetIpMulticastTtlResponder {
26147    /// Sends a response to the FIDL transaction.
26148    ///
26149    /// Sets the channel to shutdown if an error occurs.
26150    pub fn send(
26151        self,
26152        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26153    ) -> Result<(), fidl::Error> {
26154        let _result = self.send_raw(result);
26155        if _result.is_err() {
26156            self.control_handle.shutdown();
26157        }
26158        self.drop_without_shutdown();
26159        _result
26160    }
26161
26162    /// Similar to "send" but does not shutdown the channel if an error occurs.
26163    pub fn send_no_shutdown_on_err(
26164        self,
26165        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26166    ) -> Result<(), fidl::Error> {
26167        let _result = self.send_raw(result);
26168        self.drop_without_shutdown();
26169        _result
26170    }
26171
26172    fn send_raw(
26173        &self,
26174        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26175    ) -> Result<(), fidl::Error> {
26176        self.control_handle.inner.send::<fidl::encoding::ResultType<
26177            fidl::encoding::EmptyStruct,
26178            fidl_fuchsia_posix::Errno,
26179        >>(
26180            result,
26181            self.tx_id,
26182            0x63134d53772916a1,
26183            fidl::encoding::DynamicFlags::empty(),
26184        )
26185    }
26186}
26187
26188#[must_use = "FIDL methods require a response to be sent"]
26189#[derive(Debug)]
26190pub struct BaseNetworkSocketGetIpMulticastTtlResponder {
26191    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26192    tx_id: u32,
26193}
26194
26195/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26196/// if the responder is dropped without sending a response, so that the client
26197/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26198impl std::ops::Drop for BaseNetworkSocketGetIpMulticastTtlResponder {
26199    fn drop(&mut self) {
26200        self.control_handle.shutdown();
26201        // Safety: drops once, never accessed again
26202        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26203    }
26204}
26205
26206impl fidl::endpoints::Responder for BaseNetworkSocketGetIpMulticastTtlResponder {
26207    type ControlHandle = BaseNetworkSocketControlHandle;
26208
26209    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26210        &self.control_handle
26211    }
26212
26213    fn drop_without_shutdown(mut self) {
26214        // Safety: drops once, never accessed again due to mem::forget
26215        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26216        // Prevent Drop from running (which would shut down the channel)
26217        std::mem::forget(self);
26218    }
26219}
26220
26221impl BaseNetworkSocketGetIpMulticastTtlResponder {
26222    /// Sends a response to the FIDL transaction.
26223    ///
26224    /// Sets the channel to shutdown if an error occurs.
26225    pub fn send(
26226        self,
26227        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
26228    ) -> Result<(), fidl::Error> {
26229        let _result = self.send_raw(result);
26230        if _result.is_err() {
26231            self.control_handle.shutdown();
26232        }
26233        self.drop_without_shutdown();
26234        _result
26235    }
26236
26237    /// Similar to "send" but does not shutdown the channel if an error occurs.
26238    pub fn send_no_shutdown_on_err(
26239        self,
26240        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
26241    ) -> Result<(), fidl::Error> {
26242        let _result = self.send_raw(result);
26243        self.drop_without_shutdown();
26244        _result
26245    }
26246
26247    fn send_raw(
26248        &self,
26249        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
26250    ) -> Result<(), fidl::Error> {
26251        self.control_handle.inner.send::<fidl::encoding::ResultType<
26252            BaseNetworkSocketGetIpMulticastTtlResponse,
26253            fidl_fuchsia_posix::Errno,
26254        >>(
26255            result.map(|value| (value,)),
26256            self.tx_id,
26257            0x4665cd378f39e1a,
26258            fidl::encoding::DynamicFlags::empty(),
26259        )
26260    }
26261}
26262
26263#[must_use = "FIDL methods require a response to be sent"]
26264#[derive(Debug)]
26265pub struct BaseNetworkSocketSetIpMulticastLoopbackResponder {
26266    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26267    tx_id: u32,
26268}
26269
26270/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26271/// if the responder is dropped without sending a response, so that the client
26272/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26273impl std::ops::Drop for BaseNetworkSocketSetIpMulticastLoopbackResponder {
26274    fn drop(&mut self) {
26275        self.control_handle.shutdown();
26276        // Safety: drops once, never accessed again
26277        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26278    }
26279}
26280
26281impl fidl::endpoints::Responder for BaseNetworkSocketSetIpMulticastLoopbackResponder {
26282    type ControlHandle = BaseNetworkSocketControlHandle;
26283
26284    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26285        &self.control_handle
26286    }
26287
26288    fn drop_without_shutdown(mut self) {
26289        // Safety: drops once, never accessed again due to mem::forget
26290        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26291        // Prevent Drop from running (which would shut down the channel)
26292        std::mem::forget(self);
26293    }
26294}
26295
26296impl BaseNetworkSocketSetIpMulticastLoopbackResponder {
26297    /// Sends a response to the FIDL transaction.
26298    ///
26299    /// Sets the channel to shutdown if an error occurs.
26300    pub fn send(
26301        self,
26302        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26303    ) -> Result<(), fidl::Error> {
26304        let _result = self.send_raw(result);
26305        if _result.is_err() {
26306            self.control_handle.shutdown();
26307        }
26308        self.drop_without_shutdown();
26309        _result
26310    }
26311
26312    /// Similar to "send" but does not shutdown the channel if an error occurs.
26313    pub fn send_no_shutdown_on_err(
26314        self,
26315        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26316    ) -> Result<(), fidl::Error> {
26317        let _result = self.send_raw(result);
26318        self.drop_without_shutdown();
26319        _result
26320    }
26321
26322    fn send_raw(
26323        &self,
26324        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26325    ) -> Result<(), fidl::Error> {
26326        self.control_handle.inner.send::<fidl::encoding::ResultType<
26327            fidl::encoding::EmptyStruct,
26328            fidl_fuchsia_posix::Errno,
26329        >>(
26330            result,
26331            self.tx_id,
26332            0x20c55c11f00943ea,
26333            fidl::encoding::DynamicFlags::empty(),
26334        )
26335    }
26336}
26337
26338#[must_use = "FIDL methods require a response to be sent"]
26339#[derive(Debug)]
26340pub struct BaseNetworkSocketGetIpMulticastLoopbackResponder {
26341    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26342    tx_id: u32,
26343}
26344
26345/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26346/// if the responder is dropped without sending a response, so that the client
26347/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26348impl std::ops::Drop for BaseNetworkSocketGetIpMulticastLoopbackResponder {
26349    fn drop(&mut self) {
26350        self.control_handle.shutdown();
26351        // Safety: drops once, never accessed again
26352        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26353    }
26354}
26355
26356impl fidl::endpoints::Responder for BaseNetworkSocketGetIpMulticastLoopbackResponder {
26357    type ControlHandle = BaseNetworkSocketControlHandle;
26358
26359    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26360        &self.control_handle
26361    }
26362
26363    fn drop_without_shutdown(mut self) {
26364        // Safety: drops once, never accessed again due to mem::forget
26365        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26366        // Prevent Drop from running (which would shut down the channel)
26367        std::mem::forget(self);
26368    }
26369}
26370
26371impl BaseNetworkSocketGetIpMulticastLoopbackResponder {
26372    /// Sends a response to the FIDL transaction.
26373    ///
26374    /// Sets the channel to shutdown if an error occurs.
26375    pub fn send(
26376        self,
26377        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
26378    ) -> Result<(), fidl::Error> {
26379        let _result = self.send_raw(result);
26380        if _result.is_err() {
26381            self.control_handle.shutdown();
26382        }
26383        self.drop_without_shutdown();
26384        _result
26385    }
26386
26387    /// Similar to "send" but does not shutdown the channel if an error occurs.
26388    pub fn send_no_shutdown_on_err(
26389        self,
26390        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
26391    ) -> Result<(), fidl::Error> {
26392        let _result = self.send_raw(result);
26393        self.drop_without_shutdown();
26394        _result
26395    }
26396
26397    fn send_raw(
26398        &self,
26399        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
26400    ) -> Result<(), fidl::Error> {
26401        self.control_handle.inner.send::<fidl::encoding::ResultType<
26402            BaseNetworkSocketGetIpMulticastLoopbackResponse,
26403            fidl_fuchsia_posix::Errno,
26404        >>(
26405            result.map(|value| (value,)),
26406            self.tx_id,
26407            0x3b6b26ff558298f2,
26408            fidl::encoding::DynamicFlags::empty(),
26409        )
26410    }
26411}
26412
26413#[must_use = "FIDL methods require a response to be sent"]
26414#[derive(Debug)]
26415pub struct BaseNetworkSocketAddIpMembershipResponder {
26416    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26417    tx_id: u32,
26418}
26419
26420/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26421/// if the responder is dropped without sending a response, so that the client
26422/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26423impl std::ops::Drop for BaseNetworkSocketAddIpMembershipResponder {
26424    fn drop(&mut self) {
26425        self.control_handle.shutdown();
26426        // Safety: drops once, never accessed again
26427        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26428    }
26429}
26430
26431impl fidl::endpoints::Responder for BaseNetworkSocketAddIpMembershipResponder {
26432    type ControlHandle = BaseNetworkSocketControlHandle;
26433
26434    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26435        &self.control_handle
26436    }
26437
26438    fn drop_without_shutdown(mut self) {
26439        // Safety: drops once, never accessed again due to mem::forget
26440        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26441        // Prevent Drop from running (which would shut down the channel)
26442        std::mem::forget(self);
26443    }
26444}
26445
26446impl BaseNetworkSocketAddIpMembershipResponder {
26447    /// Sends a response to the FIDL transaction.
26448    ///
26449    /// Sets the channel to shutdown if an error occurs.
26450    pub fn send(
26451        self,
26452        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26453    ) -> Result<(), fidl::Error> {
26454        let _result = self.send_raw(result);
26455        if _result.is_err() {
26456            self.control_handle.shutdown();
26457        }
26458        self.drop_without_shutdown();
26459        _result
26460    }
26461
26462    /// Similar to "send" but does not shutdown the channel if an error occurs.
26463    pub fn send_no_shutdown_on_err(
26464        self,
26465        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26466    ) -> Result<(), fidl::Error> {
26467        let _result = self.send_raw(result);
26468        self.drop_without_shutdown();
26469        _result
26470    }
26471
26472    fn send_raw(
26473        &self,
26474        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26475    ) -> Result<(), fidl::Error> {
26476        self.control_handle.inner.send::<fidl::encoding::ResultType<
26477            fidl::encoding::EmptyStruct,
26478            fidl_fuchsia_posix::Errno,
26479        >>(
26480            result,
26481            self.tx_id,
26482            0x76bc7df115a3b4d0,
26483            fidl::encoding::DynamicFlags::empty(),
26484        )
26485    }
26486}
26487
26488#[must_use = "FIDL methods require a response to be sent"]
26489#[derive(Debug)]
26490pub struct BaseNetworkSocketDropIpMembershipResponder {
26491    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26492    tx_id: u32,
26493}
26494
26495/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26496/// if the responder is dropped without sending a response, so that the client
26497/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26498impl std::ops::Drop for BaseNetworkSocketDropIpMembershipResponder {
26499    fn drop(&mut self) {
26500        self.control_handle.shutdown();
26501        // Safety: drops once, never accessed again
26502        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26503    }
26504}
26505
26506impl fidl::endpoints::Responder for BaseNetworkSocketDropIpMembershipResponder {
26507    type ControlHandle = BaseNetworkSocketControlHandle;
26508
26509    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26510        &self.control_handle
26511    }
26512
26513    fn drop_without_shutdown(mut self) {
26514        // Safety: drops once, never accessed again due to mem::forget
26515        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26516        // Prevent Drop from running (which would shut down the channel)
26517        std::mem::forget(self);
26518    }
26519}
26520
26521impl BaseNetworkSocketDropIpMembershipResponder {
26522    /// Sends a response to the FIDL transaction.
26523    ///
26524    /// Sets the channel to shutdown if an error occurs.
26525    pub fn send(
26526        self,
26527        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26528    ) -> Result<(), fidl::Error> {
26529        let _result = self.send_raw(result);
26530        if _result.is_err() {
26531            self.control_handle.shutdown();
26532        }
26533        self.drop_without_shutdown();
26534        _result
26535    }
26536
26537    /// Similar to "send" but does not shutdown the channel if an error occurs.
26538    pub fn send_no_shutdown_on_err(
26539        self,
26540        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26541    ) -> Result<(), fidl::Error> {
26542        let _result = self.send_raw(result);
26543        self.drop_without_shutdown();
26544        _result
26545    }
26546
26547    fn send_raw(
26548        &self,
26549        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26550    ) -> Result<(), fidl::Error> {
26551        self.control_handle.inner.send::<fidl::encoding::ResultType<
26552            fidl::encoding::EmptyStruct,
26553            fidl_fuchsia_posix::Errno,
26554        >>(
26555            result,
26556            self.tx_id,
26557            0x2888f3099188d03,
26558            fidl::encoding::DynamicFlags::empty(),
26559        )
26560    }
26561}
26562
26563#[must_use = "FIDL methods require a response to be sent"]
26564#[derive(Debug)]
26565pub struct BaseNetworkSocketSetIpTransparentResponder {
26566    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26567    tx_id: u32,
26568}
26569
26570/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26571/// if the responder is dropped without sending a response, so that the client
26572/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26573impl std::ops::Drop for BaseNetworkSocketSetIpTransparentResponder {
26574    fn drop(&mut self) {
26575        self.control_handle.shutdown();
26576        // Safety: drops once, never accessed again
26577        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26578    }
26579}
26580
26581impl fidl::endpoints::Responder for BaseNetworkSocketSetIpTransparentResponder {
26582    type ControlHandle = BaseNetworkSocketControlHandle;
26583
26584    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26585        &self.control_handle
26586    }
26587
26588    fn drop_without_shutdown(mut self) {
26589        // Safety: drops once, never accessed again due to mem::forget
26590        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26591        // Prevent Drop from running (which would shut down the channel)
26592        std::mem::forget(self);
26593    }
26594}
26595
26596impl BaseNetworkSocketSetIpTransparentResponder {
26597    /// Sends a response to the FIDL transaction.
26598    ///
26599    /// Sets the channel to shutdown if an error occurs.
26600    pub fn send(
26601        self,
26602        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26603    ) -> Result<(), fidl::Error> {
26604        let _result = self.send_raw(result);
26605        if _result.is_err() {
26606            self.control_handle.shutdown();
26607        }
26608        self.drop_without_shutdown();
26609        _result
26610    }
26611
26612    /// Similar to "send" but does not shutdown the channel if an error occurs.
26613    pub fn send_no_shutdown_on_err(
26614        self,
26615        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26616    ) -> Result<(), fidl::Error> {
26617        let _result = self.send_raw(result);
26618        self.drop_without_shutdown();
26619        _result
26620    }
26621
26622    fn send_raw(
26623        &self,
26624        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26625    ) -> Result<(), fidl::Error> {
26626        self.control_handle.inner.send::<fidl::encoding::ResultType<
26627            fidl::encoding::EmptyStruct,
26628            fidl_fuchsia_posix::Errno,
26629        >>(
26630            result,
26631            self.tx_id,
26632            0x1ae532b0c066e3a0,
26633            fidl::encoding::DynamicFlags::empty(),
26634        )
26635    }
26636}
26637
26638#[must_use = "FIDL methods require a response to be sent"]
26639#[derive(Debug)]
26640pub struct BaseNetworkSocketGetIpTransparentResponder {
26641    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26642    tx_id: u32,
26643}
26644
26645/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26646/// if the responder is dropped without sending a response, so that the client
26647/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26648impl std::ops::Drop for BaseNetworkSocketGetIpTransparentResponder {
26649    fn drop(&mut self) {
26650        self.control_handle.shutdown();
26651        // Safety: drops once, never accessed again
26652        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26653    }
26654}
26655
26656impl fidl::endpoints::Responder for BaseNetworkSocketGetIpTransparentResponder {
26657    type ControlHandle = BaseNetworkSocketControlHandle;
26658
26659    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26660        &self.control_handle
26661    }
26662
26663    fn drop_without_shutdown(mut self) {
26664        // Safety: drops once, never accessed again due to mem::forget
26665        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26666        // Prevent Drop from running (which would shut down the channel)
26667        std::mem::forget(self);
26668    }
26669}
26670
26671impl BaseNetworkSocketGetIpTransparentResponder {
26672    /// Sends a response to the FIDL transaction.
26673    ///
26674    /// Sets the channel to shutdown if an error occurs.
26675    pub fn send(
26676        self,
26677        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
26678    ) -> Result<(), fidl::Error> {
26679        let _result = self.send_raw(result);
26680        if _result.is_err() {
26681            self.control_handle.shutdown();
26682        }
26683        self.drop_without_shutdown();
26684        _result
26685    }
26686
26687    /// Similar to "send" but does not shutdown the channel if an error occurs.
26688    pub fn send_no_shutdown_on_err(
26689        self,
26690        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
26691    ) -> Result<(), fidl::Error> {
26692        let _result = self.send_raw(result);
26693        self.drop_without_shutdown();
26694        _result
26695    }
26696
26697    fn send_raw(
26698        &self,
26699        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
26700    ) -> Result<(), fidl::Error> {
26701        self.control_handle.inner.send::<fidl::encoding::ResultType<
26702            BaseNetworkSocketGetIpTransparentResponse,
26703            fidl_fuchsia_posix::Errno,
26704        >>(
26705            result.map(|value| (value,)),
26706            self.tx_id,
26707            0x51d43695962ebfb5,
26708            fidl::encoding::DynamicFlags::empty(),
26709        )
26710    }
26711}
26712
26713#[must_use = "FIDL methods require a response to be sent"]
26714#[derive(Debug)]
26715pub struct BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResponder {
26716    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26717    tx_id: u32,
26718}
26719
26720/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26721/// if the responder is dropped without sending a response, so that the client
26722/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26723impl std::ops::Drop for BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResponder {
26724    fn drop(&mut self) {
26725        self.control_handle.shutdown();
26726        // Safety: drops once, never accessed again
26727        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26728    }
26729}
26730
26731impl fidl::endpoints::Responder
26732    for BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResponder
26733{
26734    type ControlHandle = BaseNetworkSocketControlHandle;
26735
26736    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26737        &self.control_handle
26738    }
26739
26740    fn drop_without_shutdown(mut self) {
26741        // Safety: drops once, never accessed again due to mem::forget
26742        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26743        // Prevent Drop from running (which would shut down the channel)
26744        std::mem::forget(self);
26745    }
26746}
26747
26748impl BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResponder {
26749    /// Sends a response to the FIDL transaction.
26750    ///
26751    /// Sets the channel to shutdown if an error occurs.
26752    pub fn send(
26753        self,
26754        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26755    ) -> Result<(), fidl::Error> {
26756        let _result = self.send_raw(result);
26757        if _result.is_err() {
26758            self.control_handle.shutdown();
26759        }
26760        self.drop_without_shutdown();
26761        _result
26762    }
26763
26764    /// Similar to "send" but does not shutdown the channel if an error occurs.
26765    pub fn send_no_shutdown_on_err(
26766        self,
26767        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26768    ) -> Result<(), fidl::Error> {
26769        let _result = self.send_raw(result);
26770        self.drop_without_shutdown();
26771        _result
26772    }
26773
26774    fn send_raw(
26775        &self,
26776        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26777    ) -> Result<(), fidl::Error> {
26778        self.control_handle.inner.send::<fidl::encoding::ResultType<
26779            fidl::encoding::EmptyStruct,
26780            fidl_fuchsia_posix::Errno,
26781        >>(
26782            result,
26783            self.tx_id,
26784            0x4722b4ce52f7840,
26785            fidl::encoding::DynamicFlags::empty(),
26786        )
26787    }
26788}
26789
26790#[must_use = "FIDL methods require a response to be sent"]
26791#[derive(Debug)]
26792pub struct BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponder {
26793    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26794    tx_id: u32,
26795}
26796
26797/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26798/// if the responder is dropped without sending a response, so that the client
26799/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26800impl std::ops::Drop for BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponder {
26801    fn drop(&mut self) {
26802        self.control_handle.shutdown();
26803        // Safety: drops once, never accessed again
26804        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26805    }
26806}
26807
26808impl fidl::endpoints::Responder
26809    for BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponder
26810{
26811    type ControlHandle = BaseNetworkSocketControlHandle;
26812
26813    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26814        &self.control_handle
26815    }
26816
26817    fn drop_without_shutdown(mut self) {
26818        // Safety: drops once, never accessed again due to mem::forget
26819        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26820        // Prevent Drop from running (which would shut down the channel)
26821        std::mem::forget(self);
26822    }
26823}
26824
26825impl BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponder {
26826    /// Sends a response to the FIDL transaction.
26827    ///
26828    /// Sets the channel to shutdown if an error occurs.
26829    pub fn send(
26830        self,
26831        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
26832    ) -> Result<(), fidl::Error> {
26833        let _result = self.send_raw(result);
26834        if _result.is_err() {
26835            self.control_handle.shutdown();
26836        }
26837        self.drop_without_shutdown();
26838        _result
26839    }
26840
26841    /// Similar to "send" but does not shutdown the channel if an error occurs.
26842    pub fn send_no_shutdown_on_err(
26843        self,
26844        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
26845    ) -> Result<(), fidl::Error> {
26846        let _result = self.send_raw(result);
26847        self.drop_without_shutdown();
26848        _result
26849    }
26850
26851    fn send_raw(
26852        &self,
26853        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
26854    ) -> Result<(), fidl::Error> {
26855        self.control_handle.inner.send::<fidl::encoding::ResultType<
26856            BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
26857            fidl_fuchsia_posix::Errno,
26858        >>(
26859            result.map(|value| (value,)),
26860            self.tx_id,
26861            0x2a0e7dc5d6bfdfe9,
26862            fidl::encoding::DynamicFlags::empty(),
26863        )
26864    }
26865}
26866
26867#[must_use = "FIDL methods require a response to be sent"]
26868#[derive(Debug)]
26869pub struct BaseNetworkSocketAddIpv6MembershipResponder {
26870    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26871    tx_id: u32,
26872}
26873
26874/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26875/// if the responder is dropped without sending a response, so that the client
26876/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26877impl std::ops::Drop for BaseNetworkSocketAddIpv6MembershipResponder {
26878    fn drop(&mut self) {
26879        self.control_handle.shutdown();
26880        // Safety: drops once, never accessed again
26881        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26882    }
26883}
26884
26885impl fidl::endpoints::Responder for BaseNetworkSocketAddIpv6MembershipResponder {
26886    type ControlHandle = BaseNetworkSocketControlHandle;
26887
26888    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26889        &self.control_handle
26890    }
26891
26892    fn drop_without_shutdown(mut self) {
26893        // Safety: drops once, never accessed again due to mem::forget
26894        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26895        // Prevent Drop from running (which would shut down the channel)
26896        std::mem::forget(self);
26897    }
26898}
26899
26900impl BaseNetworkSocketAddIpv6MembershipResponder {
26901    /// Sends a response to the FIDL transaction.
26902    ///
26903    /// Sets the channel to shutdown if an error occurs.
26904    pub fn send(
26905        self,
26906        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26907    ) -> Result<(), fidl::Error> {
26908        let _result = self.send_raw(result);
26909        if _result.is_err() {
26910            self.control_handle.shutdown();
26911        }
26912        self.drop_without_shutdown();
26913        _result
26914    }
26915
26916    /// Similar to "send" but does not shutdown the channel if an error occurs.
26917    pub fn send_no_shutdown_on_err(
26918        self,
26919        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26920    ) -> Result<(), fidl::Error> {
26921        let _result = self.send_raw(result);
26922        self.drop_without_shutdown();
26923        _result
26924    }
26925
26926    fn send_raw(
26927        &self,
26928        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26929    ) -> Result<(), fidl::Error> {
26930        self.control_handle.inner.send::<fidl::encoding::ResultType<
26931            fidl::encoding::EmptyStruct,
26932            fidl_fuchsia_posix::Errno,
26933        >>(
26934            result,
26935            self.tx_id,
26936            0x7c94727acb4ea4b3,
26937            fidl::encoding::DynamicFlags::empty(),
26938        )
26939    }
26940}
26941
26942#[must_use = "FIDL methods require a response to be sent"]
26943#[derive(Debug)]
26944pub struct BaseNetworkSocketDropIpv6MembershipResponder {
26945    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26946    tx_id: u32,
26947}
26948
26949/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26950/// if the responder is dropped without sending a response, so that the client
26951/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26952impl std::ops::Drop for BaseNetworkSocketDropIpv6MembershipResponder {
26953    fn drop(&mut self) {
26954        self.control_handle.shutdown();
26955        // Safety: drops once, never accessed again
26956        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26957    }
26958}
26959
26960impl fidl::endpoints::Responder for BaseNetworkSocketDropIpv6MembershipResponder {
26961    type ControlHandle = BaseNetworkSocketControlHandle;
26962
26963    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26964        &self.control_handle
26965    }
26966
26967    fn drop_without_shutdown(mut self) {
26968        // Safety: drops once, never accessed again due to mem::forget
26969        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26970        // Prevent Drop from running (which would shut down the channel)
26971        std::mem::forget(self);
26972    }
26973}
26974
26975impl BaseNetworkSocketDropIpv6MembershipResponder {
26976    /// Sends a response to the FIDL transaction.
26977    ///
26978    /// Sets the channel to shutdown if an error occurs.
26979    pub fn send(
26980        self,
26981        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26982    ) -> Result<(), fidl::Error> {
26983        let _result = self.send_raw(result);
26984        if _result.is_err() {
26985            self.control_handle.shutdown();
26986        }
26987        self.drop_without_shutdown();
26988        _result
26989    }
26990
26991    /// Similar to "send" but does not shutdown the channel if an error occurs.
26992    pub fn send_no_shutdown_on_err(
26993        self,
26994        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26995    ) -> Result<(), fidl::Error> {
26996        let _result = self.send_raw(result);
26997        self.drop_without_shutdown();
26998        _result
26999    }
27000
27001    fn send_raw(
27002        &self,
27003        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27004    ) -> Result<(), fidl::Error> {
27005        self.control_handle.inner.send::<fidl::encoding::ResultType<
27006            fidl::encoding::EmptyStruct,
27007            fidl_fuchsia_posix::Errno,
27008        >>(
27009            result,
27010            self.tx_id,
27011            0x42104c70ccaba304,
27012            fidl::encoding::DynamicFlags::empty(),
27013        )
27014    }
27015}
27016
27017#[must_use = "FIDL methods require a response to be sent"]
27018#[derive(Debug)]
27019pub struct BaseNetworkSocketSetIpv6MulticastInterfaceResponder {
27020    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27021    tx_id: u32,
27022}
27023
27024/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27025/// if the responder is dropped without sending a response, so that the client
27026/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27027impl std::ops::Drop for BaseNetworkSocketSetIpv6MulticastInterfaceResponder {
27028    fn drop(&mut self) {
27029        self.control_handle.shutdown();
27030        // Safety: drops once, never accessed again
27031        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27032    }
27033}
27034
27035impl fidl::endpoints::Responder for BaseNetworkSocketSetIpv6MulticastInterfaceResponder {
27036    type ControlHandle = BaseNetworkSocketControlHandle;
27037
27038    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27039        &self.control_handle
27040    }
27041
27042    fn drop_without_shutdown(mut self) {
27043        // Safety: drops once, never accessed again due to mem::forget
27044        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27045        // Prevent Drop from running (which would shut down the channel)
27046        std::mem::forget(self);
27047    }
27048}
27049
27050impl BaseNetworkSocketSetIpv6MulticastInterfaceResponder {
27051    /// Sends a response to the FIDL transaction.
27052    ///
27053    /// Sets the channel to shutdown if an error occurs.
27054    pub fn send(
27055        self,
27056        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27057    ) -> Result<(), fidl::Error> {
27058        let _result = self.send_raw(result);
27059        if _result.is_err() {
27060            self.control_handle.shutdown();
27061        }
27062        self.drop_without_shutdown();
27063        _result
27064    }
27065
27066    /// Similar to "send" but does not shutdown the channel if an error occurs.
27067    pub fn send_no_shutdown_on_err(
27068        self,
27069        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27070    ) -> Result<(), fidl::Error> {
27071        let _result = self.send_raw(result);
27072        self.drop_without_shutdown();
27073        _result
27074    }
27075
27076    fn send_raw(
27077        &self,
27078        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27079    ) -> Result<(), fidl::Error> {
27080        self.control_handle.inner.send::<fidl::encoding::ResultType<
27081            fidl::encoding::EmptyStruct,
27082            fidl_fuchsia_posix::Errno,
27083        >>(
27084            result,
27085            self.tx_id,
27086            0x135f76db3774ab3b,
27087            fidl::encoding::DynamicFlags::empty(),
27088        )
27089    }
27090}
27091
27092#[must_use = "FIDL methods require a response to be sent"]
27093#[derive(Debug)]
27094pub struct BaseNetworkSocketGetIpv6MulticastInterfaceResponder {
27095    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27096    tx_id: u32,
27097}
27098
27099/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27100/// if the responder is dropped without sending a response, so that the client
27101/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27102impl std::ops::Drop for BaseNetworkSocketGetIpv6MulticastInterfaceResponder {
27103    fn drop(&mut self) {
27104        self.control_handle.shutdown();
27105        // Safety: drops once, never accessed again
27106        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27107    }
27108}
27109
27110impl fidl::endpoints::Responder for BaseNetworkSocketGetIpv6MulticastInterfaceResponder {
27111    type ControlHandle = BaseNetworkSocketControlHandle;
27112
27113    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27114        &self.control_handle
27115    }
27116
27117    fn drop_without_shutdown(mut self) {
27118        // Safety: drops once, never accessed again due to mem::forget
27119        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27120        // Prevent Drop from running (which would shut down the channel)
27121        std::mem::forget(self);
27122    }
27123}
27124
27125impl BaseNetworkSocketGetIpv6MulticastInterfaceResponder {
27126    /// Sends a response to the FIDL transaction.
27127    ///
27128    /// Sets the channel to shutdown if an error occurs.
27129    pub fn send(
27130        self,
27131        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
27132    ) -> Result<(), fidl::Error> {
27133        let _result = self.send_raw(result);
27134        if _result.is_err() {
27135            self.control_handle.shutdown();
27136        }
27137        self.drop_without_shutdown();
27138        _result
27139    }
27140
27141    /// Similar to "send" but does not shutdown the channel if an error occurs.
27142    pub fn send_no_shutdown_on_err(
27143        self,
27144        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
27145    ) -> Result<(), fidl::Error> {
27146        let _result = self.send_raw(result);
27147        self.drop_without_shutdown();
27148        _result
27149    }
27150
27151    fn send_raw(
27152        &self,
27153        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
27154    ) -> Result<(), fidl::Error> {
27155        self.control_handle.inner.send::<fidl::encoding::ResultType<
27156            BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
27157            fidl_fuchsia_posix::Errno,
27158        >>(
27159            result.map(|value| (value,)),
27160            self.tx_id,
27161            0x1f26fcdd348f1882,
27162            fidl::encoding::DynamicFlags::empty(),
27163        )
27164    }
27165}
27166
27167#[must_use = "FIDL methods require a response to be sent"]
27168#[derive(Debug)]
27169pub struct BaseNetworkSocketSetIpv6UnicastHopsResponder {
27170    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27171    tx_id: u32,
27172}
27173
27174/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27175/// if the responder is dropped without sending a response, so that the client
27176/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27177impl std::ops::Drop for BaseNetworkSocketSetIpv6UnicastHopsResponder {
27178    fn drop(&mut self) {
27179        self.control_handle.shutdown();
27180        // Safety: drops once, never accessed again
27181        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27182    }
27183}
27184
27185impl fidl::endpoints::Responder for BaseNetworkSocketSetIpv6UnicastHopsResponder {
27186    type ControlHandle = BaseNetworkSocketControlHandle;
27187
27188    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27189        &self.control_handle
27190    }
27191
27192    fn drop_without_shutdown(mut self) {
27193        // Safety: drops once, never accessed again due to mem::forget
27194        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27195        // Prevent Drop from running (which would shut down the channel)
27196        std::mem::forget(self);
27197    }
27198}
27199
27200impl BaseNetworkSocketSetIpv6UnicastHopsResponder {
27201    /// Sends a response to the FIDL transaction.
27202    ///
27203    /// Sets the channel to shutdown if an error occurs.
27204    pub fn send(
27205        self,
27206        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27207    ) -> Result<(), fidl::Error> {
27208        let _result = self.send_raw(result);
27209        if _result.is_err() {
27210            self.control_handle.shutdown();
27211        }
27212        self.drop_without_shutdown();
27213        _result
27214    }
27215
27216    /// Similar to "send" but does not shutdown the channel if an error occurs.
27217    pub fn send_no_shutdown_on_err(
27218        self,
27219        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27220    ) -> Result<(), fidl::Error> {
27221        let _result = self.send_raw(result);
27222        self.drop_without_shutdown();
27223        _result
27224    }
27225
27226    fn send_raw(
27227        &self,
27228        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27229    ) -> Result<(), fidl::Error> {
27230        self.control_handle.inner.send::<fidl::encoding::ResultType<
27231            fidl::encoding::EmptyStruct,
27232            fidl_fuchsia_posix::Errno,
27233        >>(
27234            result,
27235            self.tx_id,
27236            0x157d51e98f462859,
27237            fidl::encoding::DynamicFlags::empty(),
27238        )
27239    }
27240}
27241
27242#[must_use = "FIDL methods require a response to be sent"]
27243#[derive(Debug)]
27244pub struct BaseNetworkSocketGetIpv6UnicastHopsResponder {
27245    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27246    tx_id: u32,
27247}
27248
27249/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27250/// if the responder is dropped without sending a response, so that the client
27251/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27252impl std::ops::Drop for BaseNetworkSocketGetIpv6UnicastHopsResponder {
27253    fn drop(&mut self) {
27254        self.control_handle.shutdown();
27255        // Safety: drops once, never accessed again
27256        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27257    }
27258}
27259
27260impl fidl::endpoints::Responder for BaseNetworkSocketGetIpv6UnicastHopsResponder {
27261    type ControlHandle = BaseNetworkSocketControlHandle;
27262
27263    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27264        &self.control_handle
27265    }
27266
27267    fn drop_without_shutdown(mut self) {
27268        // Safety: drops once, never accessed again due to mem::forget
27269        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27270        // Prevent Drop from running (which would shut down the channel)
27271        std::mem::forget(self);
27272    }
27273}
27274
27275impl BaseNetworkSocketGetIpv6UnicastHopsResponder {
27276    /// Sends a response to the FIDL transaction.
27277    ///
27278    /// Sets the channel to shutdown if an error occurs.
27279    pub fn send(
27280        self,
27281        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
27282    ) -> Result<(), fidl::Error> {
27283        let _result = self.send_raw(result);
27284        if _result.is_err() {
27285            self.control_handle.shutdown();
27286        }
27287        self.drop_without_shutdown();
27288        _result
27289    }
27290
27291    /// Similar to "send" but does not shutdown the channel if an error occurs.
27292    pub fn send_no_shutdown_on_err(
27293        self,
27294        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
27295    ) -> Result<(), fidl::Error> {
27296        let _result = self.send_raw(result);
27297        self.drop_without_shutdown();
27298        _result
27299    }
27300
27301    fn send_raw(
27302        &self,
27303        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
27304    ) -> Result<(), fidl::Error> {
27305        self.control_handle.inner.send::<fidl::encoding::ResultType<
27306            BaseNetworkSocketGetIpv6UnicastHopsResponse,
27307            fidl_fuchsia_posix::Errno,
27308        >>(
27309            result.map(|value| (value,)),
27310            self.tx_id,
27311            0x21f4641cad8bd8d2,
27312            fidl::encoding::DynamicFlags::empty(),
27313        )
27314    }
27315}
27316
27317#[must_use = "FIDL methods require a response to be sent"]
27318#[derive(Debug)]
27319pub struct BaseNetworkSocketSetIpv6ReceiveHopLimitResponder {
27320    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27321    tx_id: u32,
27322}
27323
27324/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27325/// if the responder is dropped without sending a response, so that the client
27326/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27327impl std::ops::Drop for BaseNetworkSocketSetIpv6ReceiveHopLimitResponder {
27328    fn drop(&mut self) {
27329        self.control_handle.shutdown();
27330        // Safety: drops once, never accessed again
27331        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27332    }
27333}
27334
27335impl fidl::endpoints::Responder for BaseNetworkSocketSetIpv6ReceiveHopLimitResponder {
27336    type ControlHandle = BaseNetworkSocketControlHandle;
27337
27338    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27339        &self.control_handle
27340    }
27341
27342    fn drop_without_shutdown(mut self) {
27343        // Safety: drops once, never accessed again due to mem::forget
27344        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27345        // Prevent Drop from running (which would shut down the channel)
27346        std::mem::forget(self);
27347    }
27348}
27349
27350impl BaseNetworkSocketSetIpv6ReceiveHopLimitResponder {
27351    /// Sends a response to the FIDL transaction.
27352    ///
27353    /// Sets the channel to shutdown if an error occurs.
27354    pub fn send(
27355        self,
27356        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27357    ) -> Result<(), fidl::Error> {
27358        let _result = self.send_raw(result);
27359        if _result.is_err() {
27360            self.control_handle.shutdown();
27361        }
27362        self.drop_without_shutdown();
27363        _result
27364    }
27365
27366    /// Similar to "send" but does not shutdown the channel if an error occurs.
27367    pub fn send_no_shutdown_on_err(
27368        self,
27369        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27370    ) -> Result<(), fidl::Error> {
27371        let _result = self.send_raw(result);
27372        self.drop_without_shutdown();
27373        _result
27374    }
27375
27376    fn send_raw(
27377        &self,
27378        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27379    ) -> Result<(), fidl::Error> {
27380        self.control_handle.inner.send::<fidl::encoding::ResultType<
27381            fidl::encoding::EmptyStruct,
27382            fidl_fuchsia_posix::Errno,
27383        >>(
27384            result,
27385            self.tx_id,
27386            0x5c24808ed2e84a1e,
27387            fidl::encoding::DynamicFlags::empty(),
27388        )
27389    }
27390}
27391
27392#[must_use = "FIDL methods require a response to be sent"]
27393#[derive(Debug)]
27394pub struct BaseNetworkSocketGetIpv6ReceiveHopLimitResponder {
27395    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27396    tx_id: u32,
27397}
27398
27399/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27400/// if the responder is dropped without sending a response, so that the client
27401/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27402impl std::ops::Drop for BaseNetworkSocketGetIpv6ReceiveHopLimitResponder {
27403    fn drop(&mut self) {
27404        self.control_handle.shutdown();
27405        // Safety: drops once, never accessed again
27406        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27407    }
27408}
27409
27410impl fidl::endpoints::Responder for BaseNetworkSocketGetIpv6ReceiveHopLimitResponder {
27411    type ControlHandle = BaseNetworkSocketControlHandle;
27412
27413    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27414        &self.control_handle
27415    }
27416
27417    fn drop_without_shutdown(mut self) {
27418        // Safety: drops once, never accessed again due to mem::forget
27419        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27420        // Prevent Drop from running (which would shut down the channel)
27421        std::mem::forget(self);
27422    }
27423}
27424
27425impl BaseNetworkSocketGetIpv6ReceiveHopLimitResponder {
27426    /// Sends a response to the FIDL transaction.
27427    ///
27428    /// Sets the channel to shutdown if an error occurs.
27429    pub fn send(
27430        self,
27431        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
27432    ) -> Result<(), fidl::Error> {
27433        let _result = self.send_raw(result);
27434        if _result.is_err() {
27435            self.control_handle.shutdown();
27436        }
27437        self.drop_without_shutdown();
27438        _result
27439    }
27440
27441    /// Similar to "send" but does not shutdown the channel if an error occurs.
27442    pub fn send_no_shutdown_on_err(
27443        self,
27444        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
27445    ) -> Result<(), fidl::Error> {
27446        let _result = self.send_raw(result);
27447        self.drop_without_shutdown();
27448        _result
27449    }
27450
27451    fn send_raw(
27452        &self,
27453        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
27454    ) -> Result<(), fidl::Error> {
27455        self.control_handle.inner.send::<fidl::encoding::ResultType<
27456            BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
27457            fidl_fuchsia_posix::Errno,
27458        >>(
27459            result.map(|value| (value,)),
27460            self.tx_id,
27461            0x341e06689885b4c0,
27462            fidl::encoding::DynamicFlags::empty(),
27463        )
27464    }
27465}
27466
27467#[must_use = "FIDL methods require a response to be sent"]
27468#[derive(Debug)]
27469pub struct BaseNetworkSocketSetIpv6MulticastHopsResponder {
27470    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27471    tx_id: u32,
27472}
27473
27474/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27475/// if the responder is dropped without sending a response, so that the client
27476/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27477impl std::ops::Drop for BaseNetworkSocketSetIpv6MulticastHopsResponder {
27478    fn drop(&mut self) {
27479        self.control_handle.shutdown();
27480        // Safety: drops once, never accessed again
27481        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27482    }
27483}
27484
27485impl fidl::endpoints::Responder for BaseNetworkSocketSetIpv6MulticastHopsResponder {
27486    type ControlHandle = BaseNetworkSocketControlHandle;
27487
27488    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27489        &self.control_handle
27490    }
27491
27492    fn drop_without_shutdown(mut self) {
27493        // Safety: drops once, never accessed again due to mem::forget
27494        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27495        // Prevent Drop from running (which would shut down the channel)
27496        std::mem::forget(self);
27497    }
27498}
27499
27500impl BaseNetworkSocketSetIpv6MulticastHopsResponder {
27501    /// Sends a response to the FIDL transaction.
27502    ///
27503    /// Sets the channel to shutdown if an error occurs.
27504    pub fn send(
27505        self,
27506        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27507    ) -> Result<(), fidl::Error> {
27508        let _result = self.send_raw(result);
27509        if _result.is_err() {
27510            self.control_handle.shutdown();
27511        }
27512        self.drop_without_shutdown();
27513        _result
27514    }
27515
27516    /// Similar to "send" but does not shutdown the channel if an error occurs.
27517    pub fn send_no_shutdown_on_err(
27518        self,
27519        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27520    ) -> Result<(), fidl::Error> {
27521        let _result = self.send_raw(result);
27522        self.drop_without_shutdown();
27523        _result
27524    }
27525
27526    fn send_raw(
27527        &self,
27528        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27529    ) -> Result<(), fidl::Error> {
27530        self.control_handle.inner.send::<fidl::encoding::ResultType<
27531            fidl::encoding::EmptyStruct,
27532            fidl_fuchsia_posix::Errno,
27533        >>(
27534            result,
27535            self.tx_id,
27536            0x25b9cd4d181f82c1,
27537            fidl::encoding::DynamicFlags::empty(),
27538        )
27539    }
27540}
27541
27542#[must_use = "FIDL methods require a response to be sent"]
27543#[derive(Debug)]
27544pub struct BaseNetworkSocketGetIpv6MulticastHopsResponder {
27545    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27546    tx_id: u32,
27547}
27548
27549/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27550/// if the responder is dropped without sending a response, so that the client
27551/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27552impl std::ops::Drop for BaseNetworkSocketGetIpv6MulticastHopsResponder {
27553    fn drop(&mut self) {
27554        self.control_handle.shutdown();
27555        // Safety: drops once, never accessed again
27556        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27557    }
27558}
27559
27560impl fidl::endpoints::Responder for BaseNetworkSocketGetIpv6MulticastHopsResponder {
27561    type ControlHandle = BaseNetworkSocketControlHandle;
27562
27563    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27564        &self.control_handle
27565    }
27566
27567    fn drop_without_shutdown(mut self) {
27568        // Safety: drops once, never accessed again due to mem::forget
27569        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27570        // Prevent Drop from running (which would shut down the channel)
27571        std::mem::forget(self);
27572    }
27573}
27574
27575impl BaseNetworkSocketGetIpv6MulticastHopsResponder {
27576    /// Sends a response to the FIDL transaction.
27577    ///
27578    /// Sets the channel to shutdown if an error occurs.
27579    pub fn send(
27580        self,
27581        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
27582    ) -> Result<(), fidl::Error> {
27583        let _result = self.send_raw(result);
27584        if _result.is_err() {
27585            self.control_handle.shutdown();
27586        }
27587        self.drop_without_shutdown();
27588        _result
27589    }
27590
27591    /// Similar to "send" but does not shutdown the channel if an error occurs.
27592    pub fn send_no_shutdown_on_err(
27593        self,
27594        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
27595    ) -> Result<(), fidl::Error> {
27596        let _result = self.send_raw(result);
27597        self.drop_without_shutdown();
27598        _result
27599    }
27600
27601    fn send_raw(
27602        &self,
27603        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
27604    ) -> Result<(), fidl::Error> {
27605        self.control_handle.inner.send::<fidl::encoding::ResultType<
27606            BaseNetworkSocketGetIpv6MulticastHopsResponse,
27607            fidl_fuchsia_posix::Errno,
27608        >>(
27609            result.map(|value| (value,)),
27610            self.tx_id,
27611            0x52916948a365012a,
27612            fidl::encoding::DynamicFlags::empty(),
27613        )
27614    }
27615}
27616
27617#[must_use = "FIDL methods require a response to be sent"]
27618#[derive(Debug)]
27619pub struct BaseNetworkSocketSetIpv6MulticastLoopbackResponder {
27620    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27621    tx_id: u32,
27622}
27623
27624/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27625/// if the responder is dropped without sending a response, so that the client
27626/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27627impl std::ops::Drop for BaseNetworkSocketSetIpv6MulticastLoopbackResponder {
27628    fn drop(&mut self) {
27629        self.control_handle.shutdown();
27630        // Safety: drops once, never accessed again
27631        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27632    }
27633}
27634
27635impl fidl::endpoints::Responder for BaseNetworkSocketSetIpv6MulticastLoopbackResponder {
27636    type ControlHandle = BaseNetworkSocketControlHandle;
27637
27638    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27639        &self.control_handle
27640    }
27641
27642    fn drop_without_shutdown(mut self) {
27643        // Safety: drops once, never accessed again due to mem::forget
27644        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27645        // Prevent Drop from running (which would shut down the channel)
27646        std::mem::forget(self);
27647    }
27648}
27649
27650impl BaseNetworkSocketSetIpv6MulticastLoopbackResponder {
27651    /// Sends a response to the FIDL transaction.
27652    ///
27653    /// Sets the channel to shutdown if an error occurs.
27654    pub fn send(
27655        self,
27656        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27657    ) -> Result<(), fidl::Error> {
27658        let _result = self.send_raw(result);
27659        if _result.is_err() {
27660            self.control_handle.shutdown();
27661        }
27662        self.drop_without_shutdown();
27663        _result
27664    }
27665
27666    /// Similar to "send" but does not shutdown the channel if an error occurs.
27667    pub fn send_no_shutdown_on_err(
27668        self,
27669        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27670    ) -> Result<(), fidl::Error> {
27671        let _result = self.send_raw(result);
27672        self.drop_without_shutdown();
27673        _result
27674    }
27675
27676    fn send_raw(
27677        &self,
27678        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27679    ) -> Result<(), fidl::Error> {
27680        self.control_handle.inner.send::<fidl::encoding::ResultType<
27681            fidl::encoding::EmptyStruct,
27682            fidl_fuchsia_posix::Errno,
27683        >>(
27684            result,
27685            self.tx_id,
27686            0x55701c409ff41b40,
27687            fidl::encoding::DynamicFlags::empty(),
27688        )
27689    }
27690}
27691
27692#[must_use = "FIDL methods require a response to be sent"]
27693#[derive(Debug)]
27694pub struct BaseNetworkSocketGetIpv6MulticastLoopbackResponder {
27695    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27696    tx_id: u32,
27697}
27698
27699/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27700/// if the responder is dropped without sending a response, so that the client
27701/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27702impl std::ops::Drop for BaseNetworkSocketGetIpv6MulticastLoopbackResponder {
27703    fn drop(&mut self) {
27704        self.control_handle.shutdown();
27705        // Safety: drops once, never accessed again
27706        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27707    }
27708}
27709
27710impl fidl::endpoints::Responder for BaseNetworkSocketGetIpv6MulticastLoopbackResponder {
27711    type ControlHandle = BaseNetworkSocketControlHandle;
27712
27713    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27714        &self.control_handle
27715    }
27716
27717    fn drop_without_shutdown(mut self) {
27718        // Safety: drops once, never accessed again due to mem::forget
27719        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27720        // Prevent Drop from running (which would shut down the channel)
27721        std::mem::forget(self);
27722    }
27723}
27724
27725impl BaseNetworkSocketGetIpv6MulticastLoopbackResponder {
27726    /// Sends a response to the FIDL transaction.
27727    ///
27728    /// Sets the channel to shutdown if an error occurs.
27729    pub fn send(
27730        self,
27731        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
27732    ) -> Result<(), fidl::Error> {
27733        let _result = self.send_raw(result);
27734        if _result.is_err() {
27735            self.control_handle.shutdown();
27736        }
27737        self.drop_without_shutdown();
27738        _result
27739    }
27740
27741    /// Similar to "send" but does not shutdown the channel if an error occurs.
27742    pub fn send_no_shutdown_on_err(
27743        self,
27744        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
27745    ) -> Result<(), fidl::Error> {
27746        let _result = self.send_raw(result);
27747        self.drop_without_shutdown();
27748        _result
27749    }
27750
27751    fn send_raw(
27752        &self,
27753        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
27754    ) -> Result<(), fidl::Error> {
27755        self.control_handle.inner.send::<fidl::encoding::ResultType<
27756            BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
27757            fidl_fuchsia_posix::Errno,
27758        >>(
27759            result.map(|value| (value,)),
27760            self.tx_id,
27761            0x4415b701fde319c3,
27762            fidl::encoding::DynamicFlags::empty(),
27763        )
27764    }
27765}
27766
27767#[must_use = "FIDL methods require a response to be sent"]
27768#[derive(Debug)]
27769pub struct BaseNetworkSocketSetIpv6OnlyResponder {
27770    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27771    tx_id: u32,
27772}
27773
27774/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27775/// if the responder is dropped without sending a response, so that the client
27776/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27777impl std::ops::Drop for BaseNetworkSocketSetIpv6OnlyResponder {
27778    fn drop(&mut self) {
27779        self.control_handle.shutdown();
27780        // Safety: drops once, never accessed again
27781        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27782    }
27783}
27784
27785impl fidl::endpoints::Responder for BaseNetworkSocketSetIpv6OnlyResponder {
27786    type ControlHandle = BaseNetworkSocketControlHandle;
27787
27788    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27789        &self.control_handle
27790    }
27791
27792    fn drop_without_shutdown(mut self) {
27793        // Safety: drops once, never accessed again due to mem::forget
27794        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27795        // Prevent Drop from running (which would shut down the channel)
27796        std::mem::forget(self);
27797    }
27798}
27799
27800impl BaseNetworkSocketSetIpv6OnlyResponder {
27801    /// Sends a response to the FIDL transaction.
27802    ///
27803    /// Sets the channel to shutdown if an error occurs.
27804    pub fn send(
27805        self,
27806        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27807    ) -> Result<(), fidl::Error> {
27808        let _result = self.send_raw(result);
27809        if _result.is_err() {
27810            self.control_handle.shutdown();
27811        }
27812        self.drop_without_shutdown();
27813        _result
27814    }
27815
27816    /// Similar to "send" but does not shutdown the channel if an error occurs.
27817    pub fn send_no_shutdown_on_err(
27818        self,
27819        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27820    ) -> Result<(), fidl::Error> {
27821        let _result = self.send_raw(result);
27822        self.drop_without_shutdown();
27823        _result
27824    }
27825
27826    fn send_raw(
27827        &self,
27828        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27829    ) -> Result<(), fidl::Error> {
27830        self.control_handle.inner.send::<fidl::encoding::ResultType<
27831            fidl::encoding::EmptyStruct,
27832            fidl_fuchsia_posix::Errno,
27833        >>(
27834            result,
27835            self.tx_id,
27836            0x4873f1364758cbba,
27837            fidl::encoding::DynamicFlags::empty(),
27838        )
27839    }
27840}
27841
27842#[must_use = "FIDL methods require a response to be sent"]
27843#[derive(Debug)]
27844pub struct BaseNetworkSocketGetIpv6OnlyResponder {
27845    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27846    tx_id: u32,
27847}
27848
27849/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27850/// if the responder is dropped without sending a response, so that the client
27851/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27852impl std::ops::Drop for BaseNetworkSocketGetIpv6OnlyResponder {
27853    fn drop(&mut self) {
27854        self.control_handle.shutdown();
27855        // Safety: drops once, never accessed again
27856        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27857    }
27858}
27859
27860impl fidl::endpoints::Responder for BaseNetworkSocketGetIpv6OnlyResponder {
27861    type ControlHandle = BaseNetworkSocketControlHandle;
27862
27863    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27864        &self.control_handle
27865    }
27866
27867    fn drop_without_shutdown(mut self) {
27868        // Safety: drops once, never accessed again due to mem::forget
27869        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27870        // Prevent Drop from running (which would shut down the channel)
27871        std::mem::forget(self);
27872    }
27873}
27874
27875impl BaseNetworkSocketGetIpv6OnlyResponder {
27876    /// Sends a response to the FIDL transaction.
27877    ///
27878    /// Sets the channel to shutdown if an error occurs.
27879    pub fn send(
27880        self,
27881        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
27882    ) -> Result<(), fidl::Error> {
27883        let _result = self.send_raw(result);
27884        if _result.is_err() {
27885            self.control_handle.shutdown();
27886        }
27887        self.drop_without_shutdown();
27888        _result
27889    }
27890
27891    /// Similar to "send" but does not shutdown the channel if an error occurs.
27892    pub fn send_no_shutdown_on_err(
27893        self,
27894        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
27895    ) -> Result<(), fidl::Error> {
27896        let _result = self.send_raw(result);
27897        self.drop_without_shutdown();
27898        _result
27899    }
27900
27901    fn send_raw(
27902        &self,
27903        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
27904    ) -> Result<(), fidl::Error> {
27905        self.control_handle.inner.send::<fidl::encoding::ResultType<
27906            BaseNetworkSocketGetIpv6OnlyResponse,
27907            fidl_fuchsia_posix::Errno,
27908        >>(
27909            result.map(|value| (value,)),
27910            self.tx_id,
27911            0x4aa3340a1a26b89c,
27912            fidl::encoding::DynamicFlags::empty(),
27913        )
27914    }
27915}
27916
27917#[must_use = "FIDL methods require a response to be sent"]
27918#[derive(Debug)]
27919pub struct BaseNetworkSocketSetIpv6ReceiveTrafficClassResponder {
27920    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27921    tx_id: u32,
27922}
27923
27924/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27925/// if the responder is dropped without sending a response, so that the client
27926/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27927impl std::ops::Drop for BaseNetworkSocketSetIpv6ReceiveTrafficClassResponder {
27928    fn drop(&mut self) {
27929        self.control_handle.shutdown();
27930        // Safety: drops once, never accessed again
27931        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27932    }
27933}
27934
27935impl fidl::endpoints::Responder for BaseNetworkSocketSetIpv6ReceiveTrafficClassResponder {
27936    type ControlHandle = BaseNetworkSocketControlHandle;
27937
27938    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27939        &self.control_handle
27940    }
27941
27942    fn drop_without_shutdown(mut self) {
27943        // Safety: drops once, never accessed again due to mem::forget
27944        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27945        // Prevent Drop from running (which would shut down the channel)
27946        std::mem::forget(self);
27947    }
27948}
27949
27950impl BaseNetworkSocketSetIpv6ReceiveTrafficClassResponder {
27951    /// Sends a response to the FIDL transaction.
27952    ///
27953    /// Sets the channel to shutdown if an error occurs.
27954    pub fn send(
27955        self,
27956        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27957    ) -> Result<(), fidl::Error> {
27958        let _result = self.send_raw(result);
27959        if _result.is_err() {
27960            self.control_handle.shutdown();
27961        }
27962        self.drop_without_shutdown();
27963        _result
27964    }
27965
27966    /// Similar to "send" but does not shutdown the channel if an error occurs.
27967    pub fn send_no_shutdown_on_err(
27968        self,
27969        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27970    ) -> Result<(), fidl::Error> {
27971        let _result = self.send_raw(result);
27972        self.drop_without_shutdown();
27973        _result
27974    }
27975
27976    fn send_raw(
27977        &self,
27978        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27979    ) -> Result<(), fidl::Error> {
27980        self.control_handle.inner.send::<fidl::encoding::ResultType<
27981            fidl::encoding::EmptyStruct,
27982            fidl_fuchsia_posix::Errno,
27983        >>(
27984            result,
27985            self.tx_id,
27986            0x58f07c8788d099a0,
27987            fidl::encoding::DynamicFlags::empty(),
27988        )
27989    }
27990}
27991
27992#[must_use = "FIDL methods require a response to be sent"]
27993#[derive(Debug)]
27994pub struct BaseNetworkSocketGetIpv6ReceiveTrafficClassResponder {
27995    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27996    tx_id: u32,
27997}
27998
27999/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
28000/// if the responder is dropped without sending a response, so that the client
28001/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
28002impl std::ops::Drop for BaseNetworkSocketGetIpv6ReceiveTrafficClassResponder {
28003    fn drop(&mut self) {
28004        self.control_handle.shutdown();
28005        // Safety: drops once, never accessed again
28006        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
28007    }
28008}
28009
28010impl fidl::endpoints::Responder for BaseNetworkSocketGetIpv6ReceiveTrafficClassResponder {
28011    type ControlHandle = BaseNetworkSocketControlHandle;
28012
28013    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
28014        &self.control_handle
28015    }
28016
28017    fn drop_without_shutdown(mut self) {
28018        // Safety: drops once, never accessed again due to mem::forget
28019        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
28020        // Prevent Drop from running (which would shut down the channel)
28021        std::mem::forget(self);
28022    }
28023}
28024
28025impl BaseNetworkSocketGetIpv6ReceiveTrafficClassResponder {
28026    /// Sends a response to the FIDL transaction.
28027    ///
28028    /// Sets the channel to shutdown if an error occurs.
28029    pub fn send(
28030        self,
28031        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
28032    ) -> Result<(), fidl::Error> {
28033        let _result = self.send_raw(result);
28034        if _result.is_err() {
28035            self.control_handle.shutdown();
28036        }
28037        self.drop_without_shutdown();
28038        _result
28039    }
28040
28041    /// Similar to "send" but does not shutdown the channel if an error occurs.
28042    pub fn send_no_shutdown_on_err(
28043        self,
28044        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
28045    ) -> Result<(), fidl::Error> {
28046        let _result = self.send_raw(result);
28047        self.drop_without_shutdown();
28048        _result
28049    }
28050
28051    fn send_raw(
28052        &self,
28053        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
28054    ) -> Result<(), fidl::Error> {
28055        self.control_handle.inner.send::<fidl::encoding::ResultType<
28056            BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
28057            fidl_fuchsia_posix::Errno,
28058        >>(
28059            result.map(|value| (value,)),
28060            self.tx_id,
28061            0x2e334df1da553ffa,
28062            fidl::encoding::DynamicFlags::empty(),
28063        )
28064    }
28065}
28066
28067#[must_use = "FIDL methods require a response to be sent"]
28068#[derive(Debug)]
28069pub struct BaseNetworkSocketSetIpv6TrafficClassResponder {
28070    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
28071    tx_id: u32,
28072}
28073
28074/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
28075/// if the responder is dropped without sending a response, so that the client
28076/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
28077impl std::ops::Drop for BaseNetworkSocketSetIpv6TrafficClassResponder {
28078    fn drop(&mut self) {
28079        self.control_handle.shutdown();
28080        // Safety: drops once, never accessed again
28081        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
28082    }
28083}
28084
28085impl fidl::endpoints::Responder for BaseNetworkSocketSetIpv6TrafficClassResponder {
28086    type ControlHandle = BaseNetworkSocketControlHandle;
28087
28088    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
28089        &self.control_handle
28090    }
28091
28092    fn drop_without_shutdown(mut self) {
28093        // Safety: drops once, never accessed again due to mem::forget
28094        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
28095        // Prevent Drop from running (which would shut down the channel)
28096        std::mem::forget(self);
28097    }
28098}
28099
28100impl BaseNetworkSocketSetIpv6TrafficClassResponder {
28101    /// Sends a response to the FIDL transaction.
28102    ///
28103    /// Sets the channel to shutdown if an error occurs.
28104    pub fn send(
28105        self,
28106        mut result: Result<(), fidl_fuchsia_posix::Errno>,
28107    ) -> Result<(), fidl::Error> {
28108        let _result = self.send_raw(result);
28109        if _result.is_err() {
28110            self.control_handle.shutdown();
28111        }
28112        self.drop_without_shutdown();
28113        _result
28114    }
28115
28116    /// Similar to "send" but does not shutdown the channel if an error occurs.
28117    pub fn send_no_shutdown_on_err(
28118        self,
28119        mut result: Result<(), fidl_fuchsia_posix::Errno>,
28120    ) -> Result<(), fidl::Error> {
28121        let _result = self.send_raw(result);
28122        self.drop_without_shutdown();
28123        _result
28124    }
28125
28126    fn send_raw(
28127        &self,
28128        mut result: Result<(), fidl_fuchsia_posix::Errno>,
28129    ) -> Result<(), fidl::Error> {
28130        self.control_handle.inner.send::<fidl::encoding::ResultType<
28131            fidl::encoding::EmptyStruct,
28132            fidl_fuchsia_posix::Errno,
28133        >>(
28134            result,
28135            self.tx_id,
28136            0x6af077800c5a0b4f,
28137            fidl::encoding::DynamicFlags::empty(),
28138        )
28139    }
28140}
28141
28142#[must_use = "FIDL methods require a response to be sent"]
28143#[derive(Debug)]
28144pub struct BaseNetworkSocketGetIpv6TrafficClassResponder {
28145    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
28146    tx_id: u32,
28147}
28148
28149/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
28150/// if the responder is dropped without sending a response, so that the client
28151/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
28152impl std::ops::Drop for BaseNetworkSocketGetIpv6TrafficClassResponder {
28153    fn drop(&mut self) {
28154        self.control_handle.shutdown();
28155        // Safety: drops once, never accessed again
28156        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
28157    }
28158}
28159
28160impl fidl::endpoints::Responder for BaseNetworkSocketGetIpv6TrafficClassResponder {
28161    type ControlHandle = BaseNetworkSocketControlHandle;
28162
28163    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
28164        &self.control_handle
28165    }
28166
28167    fn drop_without_shutdown(mut self) {
28168        // Safety: drops once, never accessed again due to mem::forget
28169        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
28170        // Prevent Drop from running (which would shut down the channel)
28171        std::mem::forget(self);
28172    }
28173}
28174
28175impl BaseNetworkSocketGetIpv6TrafficClassResponder {
28176    /// Sends a response to the FIDL transaction.
28177    ///
28178    /// Sets the channel to shutdown if an error occurs.
28179    pub fn send(
28180        self,
28181        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
28182    ) -> Result<(), fidl::Error> {
28183        let _result = self.send_raw(result);
28184        if _result.is_err() {
28185            self.control_handle.shutdown();
28186        }
28187        self.drop_without_shutdown();
28188        _result
28189    }
28190
28191    /// Similar to "send" but does not shutdown the channel if an error occurs.
28192    pub fn send_no_shutdown_on_err(
28193        self,
28194        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
28195    ) -> Result<(), fidl::Error> {
28196        let _result = self.send_raw(result);
28197        self.drop_without_shutdown();
28198        _result
28199    }
28200
28201    fn send_raw(
28202        &self,
28203        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
28204    ) -> Result<(), fidl::Error> {
28205        self.control_handle.inner.send::<fidl::encoding::ResultType<
28206            BaseNetworkSocketGetIpv6TrafficClassResponse,
28207            fidl_fuchsia_posix::Errno,
28208        >>(
28209            result.map(|value| (value,)),
28210            self.tx_id,
28211            0x6baf6eed8fc2f04,
28212            fidl::encoding::DynamicFlags::empty(),
28213        )
28214    }
28215}
28216
28217#[must_use = "FIDL methods require a response to be sent"]
28218#[derive(Debug)]
28219pub struct BaseNetworkSocketSetIpv6ReceivePacketInfoResponder {
28220    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
28221    tx_id: u32,
28222}
28223
28224/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
28225/// if the responder is dropped without sending a response, so that the client
28226/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
28227impl std::ops::Drop for BaseNetworkSocketSetIpv6ReceivePacketInfoResponder {
28228    fn drop(&mut self) {
28229        self.control_handle.shutdown();
28230        // Safety: drops once, never accessed again
28231        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
28232    }
28233}
28234
28235impl fidl::endpoints::Responder for BaseNetworkSocketSetIpv6ReceivePacketInfoResponder {
28236    type ControlHandle = BaseNetworkSocketControlHandle;
28237
28238    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
28239        &self.control_handle
28240    }
28241
28242    fn drop_without_shutdown(mut self) {
28243        // Safety: drops once, never accessed again due to mem::forget
28244        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
28245        // Prevent Drop from running (which would shut down the channel)
28246        std::mem::forget(self);
28247    }
28248}
28249
28250impl BaseNetworkSocketSetIpv6ReceivePacketInfoResponder {
28251    /// Sends a response to the FIDL transaction.
28252    ///
28253    /// Sets the channel to shutdown if an error occurs.
28254    pub fn send(
28255        self,
28256        mut result: Result<(), fidl_fuchsia_posix::Errno>,
28257    ) -> Result<(), fidl::Error> {
28258        let _result = self.send_raw(result);
28259        if _result.is_err() {
28260            self.control_handle.shutdown();
28261        }
28262        self.drop_without_shutdown();
28263        _result
28264    }
28265
28266    /// Similar to "send" but does not shutdown the channel if an error occurs.
28267    pub fn send_no_shutdown_on_err(
28268        self,
28269        mut result: Result<(), fidl_fuchsia_posix::Errno>,
28270    ) -> Result<(), fidl::Error> {
28271        let _result = self.send_raw(result);
28272        self.drop_without_shutdown();
28273        _result
28274    }
28275
28276    fn send_raw(
28277        &self,
28278        mut result: Result<(), fidl_fuchsia_posix::Errno>,
28279    ) -> Result<(), fidl::Error> {
28280        self.control_handle.inner.send::<fidl::encoding::ResultType<
28281            fidl::encoding::EmptyStruct,
28282            fidl_fuchsia_posix::Errno,
28283        >>(
28284            result,
28285            self.tx_id,
28286            0x19259775b1a92768,
28287            fidl::encoding::DynamicFlags::empty(),
28288        )
28289    }
28290}
28291
28292#[must_use = "FIDL methods require a response to be sent"]
28293#[derive(Debug)]
28294pub struct BaseNetworkSocketGetIpv6ReceivePacketInfoResponder {
28295    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
28296    tx_id: u32,
28297}
28298
28299/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
28300/// if the responder is dropped without sending a response, so that the client
28301/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
28302impl std::ops::Drop for BaseNetworkSocketGetIpv6ReceivePacketInfoResponder {
28303    fn drop(&mut self) {
28304        self.control_handle.shutdown();
28305        // Safety: drops once, never accessed again
28306        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
28307    }
28308}
28309
28310impl fidl::endpoints::Responder for BaseNetworkSocketGetIpv6ReceivePacketInfoResponder {
28311    type ControlHandle = BaseNetworkSocketControlHandle;
28312
28313    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
28314        &self.control_handle
28315    }
28316
28317    fn drop_without_shutdown(mut self) {
28318        // Safety: drops once, never accessed again due to mem::forget
28319        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
28320        // Prevent Drop from running (which would shut down the channel)
28321        std::mem::forget(self);
28322    }
28323}
28324
28325impl BaseNetworkSocketGetIpv6ReceivePacketInfoResponder {
28326    /// Sends a response to the FIDL transaction.
28327    ///
28328    /// Sets the channel to shutdown if an error occurs.
28329    pub fn send(
28330        self,
28331        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
28332    ) -> Result<(), fidl::Error> {
28333        let _result = self.send_raw(result);
28334        if _result.is_err() {
28335            self.control_handle.shutdown();
28336        }
28337        self.drop_without_shutdown();
28338        _result
28339    }
28340
28341    /// Similar to "send" but does not shutdown the channel if an error occurs.
28342    pub fn send_no_shutdown_on_err(
28343        self,
28344        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
28345    ) -> Result<(), fidl::Error> {
28346        let _result = self.send_raw(result);
28347        self.drop_without_shutdown();
28348        _result
28349    }
28350
28351    fn send_raw(
28352        &self,
28353        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
28354    ) -> Result<(), fidl::Error> {
28355        self.control_handle.inner.send::<fidl::encoding::ResultType<
28356            BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
28357            fidl_fuchsia_posix::Errno,
28358        >>(
28359            result.map(|value| (value,)),
28360            self.tx_id,
28361            0x7acd4a2775baec75,
28362            fidl::encoding::DynamicFlags::empty(),
28363        )
28364    }
28365}
28366
28367#[must_use = "FIDL methods require a response to be sent"]
28368#[derive(Debug)]
28369pub struct BaseNetworkSocketGetOriginalDestinationResponder {
28370    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
28371    tx_id: u32,
28372}
28373
28374/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
28375/// if the responder is dropped without sending a response, so that the client
28376/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
28377impl std::ops::Drop for BaseNetworkSocketGetOriginalDestinationResponder {
28378    fn drop(&mut self) {
28379        self.control_handle.shutdown();
28380        // Safety: drops once, never accessed again
28381        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
28382    }
28383}
28384
28385impl fidl::endpoints::Responder for BaseNetworkSocketGetOriginalDestinationResponder {
28386    type ControlHandle = BaseNetworkSocketControlHandle;
28387
28388    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
28389        &self.control_handle
28390    }
28391
28392    fn drop_without_shutdown(mut self) {
28393        // Safety: drops once, never accessed again due to mem::forget
28394        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
28395        // Prevent Drop from running (which would shut down the channel)
28396        std::mem::forget(self);
28397    }
28398}
28399
28400impl BaseNetworkSocketGetOriginalDestinationResponder {
28401    /// Sends a response to the FIDL transaction.
28402    ///
28403    /// Sets the channel to shutdown if an error occurs.
28404    pub fn send(
28405        self,
28406        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
28407    ) -> Result<(), fidl::Error> {
28408        let _result = self.send_raw(result);
28409        if _result.is_err() {
28410            self.control_handle.shutdown();
28411        }
28412        self.drop_without_shutdown();
28413        _result
28414    }
28415
28416    /// Similar to "send" but does not shutdown the channel if an error occurs.
28417    pub fn send_no_shutdown_on_err(
28418        self,
28419        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
28420    ) -> Result<(), fidl::Error> {
28421        let _result = self.send_raw(result);
28422        self.drop_without_shutdown();
28423        _result
28424    }
28425
28426    fn send_raw(
28427        &self,
28428        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
28429    ) -> Result<(), fidl::Error> {
28430        self.control_handle.inner.send::<fidl::encoding::ResultType<
28431            BaseNetworkSocketGetOriginalDestinationResponse,
28432            fidl_fuchsia_posix::Errno,
28433        >>(
28434            result.map(|value| (value,)),
28435            self.tx_id,
28436            0x38bf28f0dafdbac0,
28437            fidl::encoding::DynamicFlags::empty(),
28438        )
28439    }
28440}
28441
28442#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
28443pub struct BaseSocketMarker;
28444
28445impl fidl::endpoints::ProtocolMarker for BaseSocketMarker {
28446    type Proxy = BaseSocketProxy;
28447    type RequestStream = BaseSocketRequestStream;
28448    #[cfg(target_os = "fuchsia")]
28449    type SynchronousProxy = BaseSocketSynchronousProxy;
28450
28451    const DEBUG_NAME: &'static str = "(anonymous) BaseSocket";
28452}
28453pub type BaseSocketSetReuseAddressResult = Result<(), fidl_fuchsia_posix::Errno>;
28454pub type BaseSocketGetReuseAddressResult = Result<bool, fidl_fuchsia_posix::Errno>;
28455pub type BaseSocketGetErrorResult = Result<(), fidl_fuchsia_posix::Errno>;
28456pub type BaseSocketSetBroadcastResult = Result<(), fidl_fuchsia_posix::Errno>;
28457pub type BaseSocketGetBroadcastResult = Result<bool, fidl_fuchsia_posix::Errno>;
28458pub type BaseSocketSetSendBufferResult = Result<(), fidl_fuchsia_posix::Errno>;
28459pub type BaseSocketGetSendBufferResult = Result<u64, fidl_fuchsia_posix::Errno>;
28460pub type BaseSocketSetReceiveBufferResult = Result<(), fidl_fuchsia_posix::Errno>;
28461pub type BaseSocketGetReceiveBufferResult = Result<u64, fidl_fuchsia_posix::Errno>;
28462pub type BaseSocketSetKeepAliveResult = Result<(), fidl_fuchsia_posix::Errno>;
28463pub type BaseSocketGetKeepAliveResult = Result<bool, fidl_fuchsia_posix::Errno>;
28464pub type BaseSocketSetOutOfBandInlineResult = Result<(), fidl_fuchsia_posix::Errno>;
28465pub type BaseSocketGetOutOfBandInlineResult = Result<bool, fidl_fuchsia_posix::Errno>;
28466pub type BaseSocketSetNoCheckResult = Result<(), fidl_fuchsia_posix::Errno>;
28467pub type BaseSocketGetNoCheckResult = Result<bool, fidl_fuchsia_posix::Errno>;
28468pub type BaseSocketSetLingerResult = Result<(), fidl_fuchsia_posix::Errno>;
28469pub type BaseSocketGetLingerResult = Result<(bool, u32), fidl_fuchsia_posix::Errno>;
28470pub type BaseSocketSetReusePortResult = Result<(), fidl_fuchsia_posix::Errno>;
28471pub type BaseSocketSetReusePortDeprecatedResult = Result<(), fidl_fuchsia_posix::Errno>;
28472pub type BaseSocketGetReusePortResult = Result<bool, fidl_fuchsia_posix::Errno>;
28473pub type BaseSocketGetAcceptConnResult = Result<bool, fidl_fuchsia_posix::Errno>;
28474pub type BaseSocketSetBindToDeviceResult = Result<(), fidl_fuchsia_posix::Errno>;
28475pub type BaseSocketGetBindToDeviceResult = Result<String, fidl_fuchsia_posix::Errno>;
28476pub type BaseSocketSetBindToInterfaceIndexResult = Result<(), fidl_fuchsia_posix::Errno>;
28477pub type BaseSocketGetBindToInterfaceIndexResult = Result<u64, fidl_fuchsia_posix::Errno>;
28478pub type BaseSocketSetTimestampResult = Result<(), fidl_fuchsia_posix::Errno>;
28479pub type BaseSocketGetTimestampResult = Result<TimestampOption, fidl_fuchsia_posix::Errno>;
28480pub type BaseSocketSetMarkResult = Result<(), fidl_fuchsia_posix::Errno>;
28481pub type BaseSocketGetMarkResult = Result<OptionalUint32, fidl_fuchsia_posix::Errno>;
28482pub type BaseSocketGetCookieResult = Result<u64, fidl_fuchsia_posix::Errno>;
28483
28484pub trait BaseSocketProxyInterface: Send + Sync {
28485    fn r#clone(
28486        &self,
28487        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
28488    ) -> Result<(), fidl::Error>;
28489    type CloseResponseFut: std::future::Future<
28490            Output = Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error>,
28491        > + Send;
28492    fn r#close(&self) -> Self::CloseResponseFut;
28493    type QueryResponseFut: std::future::Future<Output = Result<Vec<u8>, fidl::Error>> + Send;
28494    fn r#query(&self) -> Self::QueryResponseFut;
28495    type SetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketSetReuseAddressResult, fidl::Error>>
28496        + Send;
28497    fn r#set_reuse_address(&self, value: bool) -> Self::SetReuseAddressResponseFut;
28498    type GetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketGetReuseAddressResult, fidl::Error>>
28499        + Send;
28500    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut;
28501    type GetErrorResponseFut: std::future::Future<Output = Result<BaseSocketGetErrorResult, fidl::Error>>
28502        + Send;
28503    fn r#get_error(&self) -> Self::GetErrorResponseFut;
28504    type SetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketSetBroadcastResult, fidl::Error>>
28505        + Send;
28506    fn r#set_broadcast(&self, value: bool) -> Self::SetBroadcastResponseFut;
28507    type GetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketGetBroadcastResult, fidl::Error>>
28508        + Send;
28509    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut;
28510    type SetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetSendBufferResult, fidl::Error>>
28511        + Send;
28512    fn r#set_send_buffer(&self, value_bytes: u64) -> Self::SetSendBufferResponseFut;
28513    type GetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetSendBufferResult, fidl::Error>>
28514        + Send;
28515    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut;
28516    type SetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetReceiveBufferResult, fidl::Error>>
28517        + Send;
28518    fn r#set_receive_buffer(&self, value_bytes: u64) -> Self::SetReceiveBufferResponseFut;
28519    type GetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetReceiveBufferResult, fidl::Error>>
28520        + Send;
28521    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut;
28522    type SetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketSetKeepAliveResult, fidl::Error>>
28523        + Send;
28524    fn r#set_keep_alive(&self, value: bool) -> Self::SetKeepAliveResponseFut;
28525    type GetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketGetKeepAliveResult, fidl::Error>>
28526        + Send;
28527    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut;
28528    type SetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketSetOutOfBandInlineResult, fidl::Error>>
28529        + Send;
28530    fn r#set_out_of_band_inline(&self, value: bool) -> Self::SetOutOfBandInlineResponseFut;
28531    type GetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketGetOutOfBandInlineResult, fidl::Error>>
28532        + Send;
28533    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut;
28534    type SetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketSetNoCheckResult, fidl::Error>>
28535        + Send;
28536    fn r#set_no_check(&self, value: bool) -> Self::SetNoCheckResponseFut;
28537    type GetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketGetNoCheckResult, fidl::Error>>
28538        + Send;
28539    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut;
28540    type SetLingerResponseFut: std::future::Future<Output = Result<BaseSocketSetLingerResult, fidl::Error>>
28541        + Send;
28542    fn r#set_linger(&self, linger: bool, length_secs: u32) -> Self::SetLingerResponseFut;
28543    type GetLingerResponseFut: std::future::Future<Output = Result<BaseSocketGetLingerResult, fidl::Error>>
28544        + Send;
28545    fn r#get_linger(&self) -> Self::GetLingerResponseFut;
28546    type SetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketSetReusePortResult, fidl::Error>>
28547        + Send;
28548    fn r#set_reuse_port(&self, value: ReusePortOption) -> Self::SetReusePortResponseFut;
28549    type SetReusePortDeprecatedResponseFut: std::future::Future<Output = Result<BaseSocketSetReusePortDeprecatedResult, fidl::Error>>
28550        + Send;
28551    fn r#set_reuse_port_deprecated(&self, value: bool) -> Self::SetReusePortDeprecatedResponseFut;
28552    type GetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketGetReusePortResult, fidl::Error>>
28553        + Send;
28554    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut;
28555    type GetAcceptConnResponseFut: std::future::Future<Output = Result<BaseSocketGetAcceptConnResult, fidl::Error>>
28556        + Send;
28557    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut;
28558    type SetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToDeviceResult, fidl::Error>>
28559        + Send;
28560    fn r#set_bind_to_device(&self, value: &str) -> Self::SetBindToDeviceResponseFut;
28561    type GetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToDeviceResult, fidl::Error>>
28562        + Send;
28563    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut;
28564    type SetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error>>
28565        + Send;
28566    fn r#set_bind_to_interface_index(&self, value: u64)
28567    -> Self::SetBindToInterfaceIndexResponseFut;
28568    type GetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error>>
28569        + Send;
28570    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut;
28571    type SetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketSetTimestampResult, fidl::Error>>
28572        + Send;
28573    fn r#set_timestamp(&self, value: TimestampOption) -> Self::SetTimestampResponseFut;
28574    type GetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketGetTimestampResult, fidl::Error>>
28575        + Send;
28576    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut;
28577    type SetMarkResponseFut: std::future::Future<Output = Result<BaseSocketSetMarkResult, fidl::Error>>
28578        + Send;
28579    fn r#set_mark(
28580        &self,
28581        domain: fidl_fuchsia_net::MarkDomain,
28582        mark: &OptionalUint32,
28583    ) -> Self::SetMarkResponseFut;
28584    type GetMarkResponseFut: std::future::Future<Output = Result<BaseSocketGetMarkResult, fidl::Error>>
28585        + Send;
28586    fn r#get_mark(&self, domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut;
28587    type GetCookieResponseFut: std::future::Future<Output = Result<BaseSocketGetCookieResult, fidl::Error>>
28588        + Send;
28589    fn r#get_cookie(&self) -> Self::GetCookieResponseFut;
28590}
28591#[derive(Debug)]
28592#[cfg(target_os = "fuchsia")]
28593pub struct BaseSocketSynchronousProxy {
28594    client: fidl::client::sync::Client,
28595}
28596
28597#[cfg(target_os = "fuchsia")]
28598impl fidl::endpoints::SynchronousProxy for BaseSocketSynchronousProxy {
28599    type Proxy = BaseSocketProxy;
28600    type Protocol = BaseSocketMarker;
28601
28602    fn from_channel(inner: fidl::Channel) -> Self {
28603        Self::new(inner)
28604    }
28605
28606    fn into_channel(self) -> fidl::Channel {
28607        self.client.into_channel()
28608    }
28609
28610    fn as_channel(&self) -> &fidl::Channel {
28611        self.client.as_channel()
28612    }
28613}
28614
28615#[cfg(target_os = "fuchsia")]
28616impl BaseSocketSynchronousProxy {
28617    pub fn new(channel: fidl::Channel) -> Self {
28618        Self { client: fidl::client::sync::Client::new(channel) }
28619    }
28620
28621    pub fn into_channel(self) -> fidl::Channel {
28622        self.client.into_channel()
28623    }
28624
28625    /// Waits until an event arrives and returns it. It is safe for other
28626    /// threads to make concurrent requests while waiting for an event.
28627    pub fn wait_for_event(
28628        &self,
28629        deadline: zx::MonotonicInstant,
28630    ) -> Result<BaseSocketEvent, fidl::Error> {
28631        BaseSocketEvent::decode(self.client.wait_for_event::<BaseSocketMarker>(deadline)?)
28632    }
28633
28634    pub fn r#clone(
28635        &self,
28636        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
28637    ) -> Result<(), fidl::Error> {
28638        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
28639            (request,),
28640            0x20d8a7aba2168a79,
28641            fidl::encoding::DynamicFlags::empty(),
28642        )
28643    }
28644
28645    /// Terminates the connection.
28646    ///
28647    /// After calling `Close`, the client must not send any other requests.
28648    ///
28649    /// Servers, after sending the status response, should close the connection
28650    /// regardless of status and without sending an epitaph.
28651    ///
28652    /// Closing the client end of the channel should be semantically equivalent
28653    /// to calling `Close` without knowing when the close has completed or its
28654    /// status.
28655    pub fn r#close(
28656        &self,
28657        ___deadline: zx::MonotonicInstant,
28658    ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
28659        let _response = self.client.send_query::<
28660            fidl::encoding::EmptyPayload,
28661            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
28662            BaseSocketMarker,
28663        >(
28664            (),
28665            0x5ac5d459ad7f657e,
28666            fidl::encoding::DynamicFlags::empty(),
28667            ___deadline,
28668        )?;
28669        Ok(_response.map(|x| x))
28670    }
28671
28672    pub fn r#query(&self, ___deadline: zx::MonotonicInstant) -> Result<Vec<u8>, fidl::Error> {
28673        let _response = self.client.send_query::<
28674            fidl::encoding::EmptyPayload,
28675            fidl_fuchsia_unknown::QueryableQueryResponse,
28676            BaseSocketMarker,
28677        >(
28678            (),
28679            0x2658edee9decfc06,
28680            fidl::encoding::DynamicFlags::empty(),
28681            ___deadline,
28682        )?;
28683        Ok(_response.protocol)
28684    }
28685
28686    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
28687    pub fn r#set_reuse_address(
28688        &self,
28689        mut value: bool,
28690        ___deadline: zx::MonotonicInstant,
28691    ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
28692        let _response =
28693            self.client.send_query::<BaseSocketSetReuseAddressRequest, fidl::encoding::ResultType<
28694                fidl::encoding::EmptyStruct,
28695                fidl_fuchsia_posix::Errno,
28696            >, BaseSocketMarker>(
28697                (value,),
28698                0x1fd74ee8b9a4a876,
28699                fidl::encoding::DynamicFlags::empty(),
28700                ___deadline,
28701            )?;
28702        Ok(_response.map(|x| x))
28703    }
28704
28705    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
28706    pub fn r#get_reuse_address(
28707        &self,
28708        ___deadline: zx::MonotonicInstant,
28709    ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
28710        let _response =
28711            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28712                BaseSocketGetReuseAddressResponse,
28713                fidl_fuchsia_posix::Errno,
28714            >, BaseSocketMarker>(
28715                (),
28716                0x67b7206b8d1bc0a5,
28717                fidl::encoding::DynamicFlags::empty(),
28718                ___deadline,
28719            )?;
28720        Ok(_response.map(|x| x.value))
28721    }
28722
28723    /// Get `SOL_SOCKET` -> `SO_ERROR`.
28724    /// Returns the last error if there is an error set on the socket.
28725    pub fn r#get_error(
28726        &self,
28727        ___deadline: zx::MonotonicInstant,
28728    ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
28729        let _response =
28730            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28731                fidl::encoding::EmptyStruct,
28732                fidl_fuchsia_posix::Errno,
28733            >, BaseSocketMarker>(
28734                (),
28735                0x5aad39b33e5f6ebb,
28736                fidl::encoding::DynamicFlags::empty(),
28737                ___deadline,
28738            )?;
28739        Ok(_response.map(|x| x))
28740    }
28741
28742    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
28743    pub fn r#set_broadcast(
28744        &self,
28745        mut value: bool,
28746        ___deadline: zx::MonotonicInstant,
28747    ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
28748        let _response =
28749            self.client.send_query::<BaseSocketSetBroadcastRequest, fidl::encoding::ResultType<
28750                fidl::encoding::EmptyStruct,
28751                fidl_fuchsia_posix::Errno,
28752            >, BaseSocketMarker>(
28753                (value,),
28754                0x6023e081ce3cd947,
28755                fidl::encoding::DynamicFlags::empty(),
28756                ___deadline,
28757            )?;
28758        Ok(_response.map(|x| x))
28759    }
28760
28761    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
28762    pub fn r#get_broadcast(
28763        &self,
28764        ___deadline: zx::MonotonicInstant,
28765    ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
28766        let _response =
28767            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28768                BaseSocketGetBroadcastResponse,
28769                fidl_fuchsia_posix::Errno,
28770            >, BaseSocketMarker>(
28771                (),
28772                0x68796fc556f9780d,
28773                fidl::encoding::DynamicFlags::empty(),
28774                ___deadline,
28775            )?;
28776        Ok(_response.map(|x| x.value))
28777    }
28778
28779    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
28780    pub fn r#set_send_buffer(
28781        &self,
28782        mut value_bytes: u64,
28783        ___deadline: zx::MonotonicInstant,
28784    ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
28785        let _response =
28786            self.client.send_query::<BaseSocketSetSendBufferRequest, fidl::encoding::ResultType<
28787                fidl::encoding::EmptyStruct,
28788                fidl_fuchsia_posix::Errno,
28789            >, BaseSocketMarker>(
28790                (value_bytes,),
28791                0x756eac32d73a7a70,
28792                fidl::encoding::DynamicFlags::empty(),
28793                ___deadline,
28794            )?;
28795        Ok(_response.map(|x| x))
28796    }
28797
28798    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
28799    pub fn r#get_send_buffer(
28800        &self,
28801        ___deadline: zx::MonotonicInstant,
28802    ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
28803        let _response =
28804            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28805                BaseSocketGetSendBufferResponse,
28806                fidl_fuchsia_posix::Errno,
28807            >, BaseSocketMarker>(
28808                (),
28809                0x78a52fd9c7b2410b,
28810                fidl::encoding::DynamicFlags::empty(),
28811                ___deadline,
28812            )?;
28813        Ok(_response.map(|x| x.value_bytes))
28814    }
28815
28816    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
28817    pub fn r#set_receive_buffer(
28818        &self,
28819        mut value_bytes: u64,
28820        ___deadline: zx::MonotonicInstant,
28821    ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
28822        let _response =
28823            self.client
28824                .send_query::<BaseSocketSetReceiveBufferRequest, fidl::encoding::ResultType<
28825                    fidl::encoding::EmptyStruct,
28826                    fidl_fuchsia_posix::Errno,
28827                >, BaseSocketMarker>(
28828                    (value_bytes,),
28829                    0x6b0cf2f1919c7001,
28830                    fidl::encoding::DynamicFlags::empty(),
28831                    ___deadline,
28832                )?;
28833        Ok(_response.map(|x| x))
28834    }
28835
28836    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
28837    pub fn r#get_receive_buffer(
28838        &self,
28839        ___deadline: zx::MonotonicInstant,
28840    ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
28841        let _response =
28842            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28843                BaseSocketGetReceiveBufferResponse,
28844                fidl_fuchsia_posix::Errno,
28845            >, BaseSocketMarker>(
28846                (),
28847                0x14c1a4b64f709e5c,
28848                fidl::encoding::DynamicFlags::empty(),
28849                ___deadline,
28850            )?;
28851        Ok(_response.map(|x| x.value_bytes))
28852    }
28853
28854    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
28855    pub fn r#set_keep_alive(
28856        &self,
28857        mut value: bool,
28858        ___deadline: zx::MonotonicInstant,
28859    ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
28860        let _response =
28861            self.client.send_query::<BaseSocketSetKeepAliveRequest, fidl::encoding::ResultType<
28862                fidl::encoding::EmptyStruct,
28863                fidl_fuchsia_posix::Errno,
28864            >, BaseSocketMarker>(
28865                (value,),
28866                0x572df8f0b920d2c7,
28867                fidl::encoding::DynamicFlags::empty(),
28868                ___deadline,
28869            )?;
28870        Ok(_response.map(|x| x))
28871    }
28872
28873    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
28874    pub fn r#get_keep_alive(
28875        &self,
28876        ___deadline: zx::MonotonicInstant,
28877    ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
28878        let _response =
28879            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28880                BaseSocketGetKeepAliveResponse,
28881                fidl_fuchsia_posix::Errno,
28882            >, BaseSocketMarker>(
28883                (),
28884                0x2dd29d3215f2c9d2,
28885                fidl::encoding::DynamicFlags::empty(),
28886                ___deadline,
28887            )?;
28888        Ok(_response.map(|x| x.value))
28889    }
28890
28891    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
28892    pub fn r#set_out_of_band_inline(
28893        &self,
28894        mut value: bool,
28895        ___deadline: zx::MonotonicInstant,
28896    ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
28897        let _response =
28898            self.client
28899                .send_query::<BaseSocketSetOutOfBandInlineRequest, fidl::encoding::ResultType<
28900                    fidl::encoding::EmptyStruct,
28901                    fidl_fuchsia_posix::Errno,
28902                >, BaseSocketMarker>(
28903                    (value,),
28904                    0x3ecb49968bee439,
28905                    fidl::encoding::DynamicFlags::empty(),
28906                    ___deadline,
28907                )?;
28908        Ok(_response.map(|x| x))
28909    }
28910
28911    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
28912    pub fn r#get_out_of_band_inline(
28913        &self,
28914        ___deadline: zx::MonotonicInstant,
28915    ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
28916        let _response =
28917            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28918                BaseSocketGetOutOfBandInlineResponse,
28919                fidl_fuchsia_posix::Errno,
28920            >, BaseSocketMarker>(
28921                (),
28922                0x348c1ab3aeca1745,
28923                fidl::encoding::DynamicFlags::empty(),
28924                ___deadline,
28925            )?;
28926        Ok(_response.map(|x| x.value))
28927    }
28928
28929    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
28930    pub fn r#set_no_check(
28931        &self,
28932        mut value: bool,
28933        ___deadline: zx::MonotonicInstant,
28934    ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
28935        let _response =
28936            self.client.send_query::<BaseSocketSetNoCheckRequest, fidl::encoding::ResultType<
28937                fidl::encoding::EmptyStruct,
28938                fidl_fuchsia_posix::Errno,
28939            >, BaseSocketMarker>(
28940                (value,),
28941                0x6bbf00c53a4c78c2,
28942                fidl::encoding::DynamicFlags::empty(),
28943                ___deadline,
28944            )?;
28945        Ok(_response.map(|x| x))
28946    }
28947
28948    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
28949    pub fn r#get_no_check(
28950        &self,
28951        ___deadline: zx::MonotonicInstant,
28952    ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
28953        let _response =
28954            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28955                BaseSocketGetNoCheckResponse,
28956                fidl_fuchsia_posix::Errno,
28957            >, BaseSocketMarker>(
28958                (),
28959                0x2cd4249286417694,
28960                fidl::encoding::DynamicFlags::empty(),
28961                ___deadline,
28962            )?;
28963        Ok(_response.map(|x| x.value))
28964    }
28965
28966    /// Set `SOL_SOCKET` -> `SO_LINGER`.
28967    pub fn r#set_linger(
28968        &self,
28969        mut linger: bool,
28970        mut length_secs: u32,
28971        ___deadline: zx::MonotonicInstant,
28972    ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
28973        let _response =
28974            self.client.send_query::<BaseSocketSetLingerRequest, fidl::encoding::ResultType<
28975                fidl::encoding::EmptyStruct,
28976                fidl_fuchsia_posix::Errno,
28977            >, BaseSocketMarker>(
28978                (linger, length_secs),
28979                0x45386351246e998e,
28980                fidl::encoding::DynamicFlags::empty(),
28981                ___deadline,
28982            )?;
28983        Ok(_response.map(|x| x))
28984    }
28985
28986    /// Get `SOL_SOCKET` -> `SO_LINGER`.
28987    pub fn r#get_linger(
28988        &self,
28989        ___deadline: zx::MonotonicInstant,
28990    ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
28991        let _response =
28992            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28993                BaseSocketGetLingerResponse,
28994                fidl_fuchsia_posix::Errno,
28995            >, BaseSocketMarker>(
28996                (),
28997                0x48eb20fc5ccb0e45,
28998                fidl::encoding::DynamicFlags::empty(),
28999                ___deadline,
29000            )?;
29001        Ok(_response.map(|x| (x.linger, x.length_secs)))
29002    }
29003
29004    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
29005    pub fn r#set_reuse_port(
29006        &self,
29007        mut value: ReusePortOption,
29008        ___deadline: zx::MonotonicInstant,
29009    ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
29010        let _response =
29011            self.client.send_query::<BaseSocketSetReusePortRequest, fidl::encoding::ResultType<
29012                fidl::encoding::EmptyStruct,
29013                fidl_fuchsia_posix::Errno,
29014            >, BaseSocketMarker>(
29015                (&mut value,),
29016                0x547dc9cc0455189e,
29017                fidl::encoding::DynamicFlags::empty(),
29018                ___deadline,
29019            )?;
29020        Ok(_response.map(|x| x))
29021    }
29022
29023    pub fn r#set_reuse_port_deprecated(
29024        &self,
29025        mut value: bool,
29026        ___deadline: zx::MonotonicInstant,
29027    ) -> Result<BaseSocketSetReusePortDeprecatedResult, fidl::Error> {
29028        let _response =
29029            self.client
29030                .send_query::<BaseSocketSetReusePortDeprecatedRequest, fidl::encoding::ResultType<
29031                    fidl::encoding::EmptyStruct,
29032                    fidl_fuchsia_posix::Errno,
29033                >, BaseSocketMarker>(
29034                    (value,),
29035                    0x24dd3e5cb36d9ccb,
29036                    fidl::encoding::DynamicFlags::empty(),
29037                    ___deadline,
29038                )?;
29039        Ok(_response.map(|x| x))
29040    }
29041
29042    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
29043    pub fn r#get_reuse_port(
29044        &self,
29045        ___deadline: zx::MonotonicInstant,
29046    ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
29047        let _response =
29048            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
29049                BaseSocketGetReusePortResponse,
29050                fidl_fuchsia_posix::Errno,
29051            >, BaseSocketMarker>(
29052                (),
29053                0x7a112c1ab54ff828,
29054                fidl::encoding::DynamicFlags::empty(),
29055                ___deadline,
29056            )?;
29057        Ok(_response.map(|x| x.value))
29058    }
29059
29060    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
29061    pub fn r#get_accept_conn(
29062        &self,
29063        ___deadline: zx::MonotonicInstant,
29064    ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
29065        let _response =
29066            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
29067                BaseSocketGetAcceptConnResponse,
29068                fidl_fuchsia_posix::Errno,
29069            >, BaseSocketMarker>(
29070                (),
29071                0x67ce6db6c2ec8966,
29072                fidl::encoding::DynamicFlags::empty(),
29073                ___deadline,
29074            )?;
29075        Ok(_response.map(|x| x.value))
29076    }
29077
29078    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
29079    pub fn r#set_bind_to_device(
29080        &self,
29081        mut value: &str,
29082        ___deadline: zx::MonotonicInstant,
29083    ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
29084        let _response =
29085            self.client.send_query::<BaseSocketSetBindToDeviceRequest, fidl::encoding::ResultType<
29086                fidl::encoding::EmptyStruct,
29087                fidl_fuchsia_posix::Errno,
29088            >, BaseSocketMarker>(
29089                (value,),
29090                0x2118b483f28aafc4,
29091                fidl::encoding::DynamicFlags::empty(),
29092                ___deadline,
29093            )?;
29094        Ok(_response.map(|x| x))
29095    }
29096
29097    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
29098    pub fn r#get_bind_to_device(
29099        &self,
29100        ___deadline: zx::MonotonicInstant,
29101    ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
29102        let _response =
29103            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
29104                BaseSocketGetBindToDeviceResponse,
29105                fidl_fuchsia_posix::Errno,
29106            >, BaseSocketMarker>(
29107                (),
29108                0x1ab1fbf0ef7906c8,
29109                fidl::encoding::DynamicFlags::empty(),
29110                ___deadline,
29111            )?;
29112        Ok(_response.map(|x| x.value))
29113    }
29114
29115    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
29116    /// If `value` is 0, this clears the bound interface.
29117    pub fn r#set_bind_to_interface_index(
29118        &self,
29119        mut value: u64,
29120        ___deadline: zx::MonotonicInstant,
29121    ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
29122        let _response =
29123            self.client
29124                .send_query::<BaseSocketSetBindToInterfaceIndexRequest, fidl::encoding::ResultType<
29125                    fidl::encoding::EmptyStruct,
29126                    fidl_fuchsia_posix::Errno,
29127                >, BaseSocketMarker>(
29128                    (value,),
29129                    0x6e387a0def00821,
29130                    fidl::encoding::DynamicFlags::empty(),
29131                    ___deadline,
29132                )?;
29133        Ok(_response.map(|x| x))
29134    }
29135
29136    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
29137    pub fn r#get_bind_to_interface_index(
29138        &self,
29139        ___deadline: zx::MonotonicInstant,
29140    ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
29141        let _response =
29142            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
29143                BaseSocketGetBindToInterfaceIndexResponse,
29144                fidl_fuchsia_posix::Errno,
29145            >, BaseSocketMarker>(
29146                (),
29147                0x59c31dd3e3078295,
29148                fidl::encoding::DynamicFlags::empty(),
29149                ___deadline,
29150            )?;
29151        Ok(_response.map(|x| x.value))
29152    }
29153
29154    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
29155    pub fn r#set_timestamp(
29156        &self,
29157        mut value: TimestampOption,
29158        ___deadline: zx::MonotonicInstant,
29159    ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
29160        let _response =
29161            self.client.send_query::<BaseSocketSetTimestampRequest, fidl::encoding::ResultType<
29162                fidl::encoding::EmptyStruct,
29163                fidl_fuchsia_posix::Errno,
29164            >, BaseSocketMarker>(
29165                (value,),
29166                0x285d6516c263d839,
29167                fidl::encoding::DynamicFlags::empty(),
29168                ___deadline,
29169            )?;
29170        Ok(_response.map(|x| x))
29171    }
29172
29173    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
29174    pub fn r#get_timestamp(
29175        &self,
29176        ___deadline: zx::MonotonicInstant,
29177    ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
29178        let _response =
29179            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
29180                BaseSocketGetTimestampResponse,
29181                fidl_fuchsia_posix::Errno,
29182            >, BaseSocketMarker>(
29183                (),
29184                0x49f2fffbbcc2bd27,
29185                fidl::encoding::DynamicFlags::empty(),
29186                ___deadline,
29187            )?;
29188        Ok(_response.map(|x| x.value))
29189    }
29190
29191    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
29192    /// unlike the standard SO_MARK, this API has multiple mark domains and each
29193    /// mark can be set independently in each domain.
29194    pub fn r#set_mark(
29195        &self,
29196        mut domain: fidl_fuchsia_net::MarkDomain,
29197        mut mark: &OptionalUint32,
29198        ___deadline: zx::MonotonicInstant,
29199    ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
29200        let _response =
29201            self.client.send_query::<BaseSocketSetMarkRequest, fidl::encoding::ResultType<
29202                fidl::encoding::EmptyStruct,
29203                fidl_fuchsia_posix::Errno,
29204            >, BaseSocketMarker>(
29205                (domain, mark),
29206                0x6ead6de09f653236,
29207                fidl::encoding::DynamicFlags::empty(),
29208                ___deadline,
29209            )?;
29210        Ok(_response.map(|x| x))
29211    }
29212
29213    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
29214    /// unlike the standard SO_MARK, this API has multiple mark domains and each
29215    /// mark can be retrieved independently in each domain.
29216    pub fn r#get_mark(
29217        &self,
29218        mut domain: fidl_fuchsia_net::MarkDomain,
29219        ___deadline: zx::MonotonicInstant,
29220    ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
29221        let _response =
29222            self.client.send_query::<BaseSocketGetMarkRequest, fidl::encoding::ResultType<
29223                BaseSocketGetMarkResponse,
29224                fidl_fuchsia_posix::Errno,
29225            >, BaseSocketMarker>(
29226                (domain,),
29227                0x57a2752c61d93d47,
29228                fidl::encoding::DynamicFlags::empty(),
29229                ___deadline,
29230            )?;
29231        Ok(_response.map(|x| x.mark))
29232    }
29233
29234    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
29235    pub fn r#get_cookie(
29236        &self,
29237        ___deadline: zx::MonotonicInstant,
29238    ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
29239        let _response =
29240            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
29241                BaseSocketGetCookieResponse,
29242                fidl_fuchsia_posix::Errno,
29243            >, BaseSocketMarker>(
29244                (),
29245                0x2c2f47fd8f924e52,
29246                fidl::encoding::DynamicFlags::empty(),
29247                ___deadline,
29248            )?;
29249        Ok(_response.map(|x| x.value))
29250    }
29251}
29252
29253#[cfg(target_os = "fuchsia")]
29254impl From<BaseSocketSynchronousProxy> for zx::NullableHandle {
29255    fn from(value: BaseSocketSynchronousProxy) -> Self {
29256        value.into_channel().into()
29257    }
29258}
29259
29260#[cfg(target_os = "fuchsia")]
29261impl From<fidl::Channel> for BaseSocketSynchronousProxy {
29262    fn from(value: fidl::Channel) -> Self {
29263        Self::new(value)
29264    }
29265}
29266
29267#[cfg(target_os = "fuchsia")]
29268impl fidl::endpoints::FromClient for BaseSocketSynchronousProxy {
29269    type Protocol = BaseSocketMarker;
29270
29271    fn from_client(value: fidl::endpoints::ClientEnd<BaseSocketMarker>) -> Self {
29272        Self::new(value.into_channel())
29273    }
29274}
29275
29276#[derive(Debug, Clone)]
29277pub struct BaseSocketProxy {
29278    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
29279}
29280
29281impl fidl::endpoints::Proxy for BaseSocketProxy {
29282    type Protocol = BaseSocketMarker;
29283
29284    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
29285        Self::new(inner)
29286    }
29287
29288    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
29289        self.client.into_channel().map_err(|client| Self { client })
29290    }
29291
29292    fn as_channel(&self) -> &::fidl::AsyncChannel {
29293        self.client.as_channel()
29294    }
29295}
29296
29297impl BaseSocketProxy {
29298    /// Create a new Proxy for fuchsia.posix.socket/BaseSocket.
29299    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
29300        let protocol_name = <BaseSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
29301        Self { client: fidl::client::Client::new(channel, protocol_name) }
29302    }
29303
29304    /// Get a Stream of events from the remote end of the protocol.
29305    ///
29306    /// # Panics
29307    ///
29308    /// Panics if the event stream was already taken.
29309    pub fn take_event_stream(&self) -> BaseSocketEventStream {
29310        BaseSocketEventStream { event_receiver: self.client.take_event_receiver() }
29311    }
29312
29313    pub fn r#clone(
29314        &self,
29315        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
29316    ) -> Result<(), fidl::Error> {
29317        BaseSocketProxyInterface::r#clone(self, request)
29318    }
29319
29320    /// Terminates the connection.
29321    ///
29322    /// After calling `Close`, the client must not send any other requests.
29323    ///
29324    /// Servers, after sending the status response, should close the connection
29325    /// regardless of status and without sending an epitaph.
29326    ///
29327    /// Closing the client end of the channel should be semantically equivalent
29328    /// to calling `Close` without knowing when the close has completed or its
29329    /// status.
29330    pub fn r#close(
29331        &self,
29332    ) -> fidl::client::QueryResponseFut<
29333        fidl_fuchsia_unknown::CloseableCloseResult,
29334        fidl::encoding::DefaultFuchsiaResourceDialect,
29335    > {
29336        BaseSocketProxyInterface::r#close(self)
29337    }
29338
29339    pub fn r#query(
29340        &self,
29341    ) -> fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>
29342    {
29343        BaseSocketProxyInterface::r#query(self)
29344    }
29345
29346    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
29347    pub fn r#set_reuse_address(
29348        &self,
29349        mut value: bool,
29350    ) -> fidl::client::QueryResponseFut<
29351        BaseSocketSetReuseAddressResult,
29352        fidl::encoding::DefaultFuchsiaResourceDialect,
29353    > {
29354        BaseSocketProxyInterface::r#set_reuse_address(self, value)
29355    }
29356
29357    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
29358    pub fn r#get_reuse_address(
29359        &self,
29360    ) -> fidl::client::QueryResponseFut<
29361        BaseSocketGetReuseAddressResult,
29362        fidl::encoding::DefaultFuchsiaResourceDialect,
29363    > {
29364        BaseSocketProxyInterface::r#get_reuse_address(self)
29365    }
29366
29367    /// Get `SOL_SOCKET` -> `SO_ERROR`.
29368    /// Returns the last error if there is an error set on the socket.
29369    pub fn r#get_error(
29370        &self,
29371    ) -> fidl::client::QueryResponseFut<
29372        BaseSocketGetErrorResult,
29373        fidl::encoding::DefaultFuchsiaResourceDialect,
29374    > {
29375        BaseSocketProxyInterface::r#get_error(self)
29376    }
29377
29378    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
29379    pub fn r#set_broadcast(
29380        &self,
29381        mut value: bool,
29382    ) -> fidl::client::QueryResponseFut<
29383        BaseSocketSetBroadcastResult,
29384        fidl::encoding::DefaultFuchsiaResourceDialect,
29385    > {
29386        BaseSocketProxyInterface::r#set_broadcast(self, value)
29387    }
29388
29389    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
29390    pub fn r#get_broadcast(
29391        &self,
29392    ) -> fidl::client::QueryResponseFut<
29393        BaseSocketGetBroadcastResult,
29394        fidl::encoding::DefaultFuchsiaResourceDialect,
29395    > {
29396        BaseSocketProxyInterface::r#get_broadcast(self)
29397    }
29398
29399    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
29400    pub fn r#set_send_buffer(
29401        &self,
29402        mut value_bytes: u64,
29403    ) -> fidl::client::QueryResponseFut<
29404        BaseSocketSetSendBufferResult,
29405        fidl::encoding::DefaultFuchsiaResourceDialect,
29406    > {
29407        BaseSocketProxyInterface::r#set_send_buffer(self, value_bytes)
29408    }
29409
29410    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
29411    pub fn r#get_send_buffer(
29412        &self,
29413    ) -> fidl::client::QueryResponseFut<
29414        BaseSocketGetSendBufferResult,
29415        fidl::encoding::DefaultFuchsiaResourceDialect,
29416    > {
29417        BaseSocketProxyInterface::r#get_send_buffer(self)
29418    }
29419
29420    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
29421    pub fn r#set_receive_buffer(
29422        &self,
29423        mut value_bytes: u64,
29424    ) -> fidl::client::QueryResponseFut<
29425        BaseSocketSetReceiveBufferResult,
29426        fidl::encoding::DefaultFuchsiaResourceDialect,
29427    > {
29428        BaseSocketProxyInterface::r#set_receive_buffer(self, value_bytes)
29429    }
29430
29431    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
29432    pub fn r#get_receive_buffer(
29433        &self,
29434    ) -> fidl::client::QueryResponseFut<
29435        BaseSocketGetReceiveBufferResult,
29436        fidl::encoding::DefaultFuchsiaResourceDialect,
29437    > {
29438        BaseSocketProxyInterface::r#get_receive_buffer(self)
29439    }
29440
29441    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
29442    pub fn r#set_keep_alive(
29443        &self,
29444        mut value: bool,
29445    ) -> fidl::client::QueryResponseFut<
29446        BaseSocketSetKeepAliveResult,
29447        fidl::encoding::DefaultFuchsiaResourceDialect,
29448    > {
29449        BaseSocketProxyInterface::r#set_keep_alive(self, value)
29450    }
29451
29452    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
29453    pub fn r#get_keep_alive(
29454        &self,
29455    ) -> fidl::client::QueryResponseFut<
29456        BaseSocketGetKeepAliveResult,
29457        fidl::encoding::DefaultFuchsiaResourceDialect,
29458    > {
29459        BaseSocketProxyInterface::r#get_keep_alive(self)
29460    }
29461
29462    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
29463    pub fn r#set_out_of_band_inline(
29464        &self,
29465        mut value: bool,
29466    ) -> fidl::client::QueryResponseFut<
29467        BaseSocketSetOutOfBandInlineResult,
29468        fidl::encoding::DefaultFuchsiaResourceDialect,
29469    > {
29470        BaseSocketProxyInterface::r#set_out_of_band_inline(self, value)
29471    }
29472
29473    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
29474    pub fn r#get_out_of_band_inline(
29475        &self,
29476    ) -> fidl::client::QueryResponseFut<
29477        BaseSocketGetOutOfBandInlineResult,
29478        fidl::encoding::DefaultFuchsiaResourceDialect,
29479    > {
29480        BaseSocketProxyInterface::r#get_out_of_band_inline(self)
29481    }
29482
29483    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
29484    pub fn r#set_no_check(
29485        &self,
29486        mut value: bool,
29487    ) -> fidl::client::QueryResponseFut<
29488        BaseSocketSetNoCheckResult,
29489        fidl::encoding::DefaultFuchsiaResourceDialect,
29490    > {
29491        BaseSocketProxyInterface::r#set_no_check(self, value)
29492    }
29493
29494    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
29495    pub fn r#get_no_check(
29496        &self,
29497    ) -> fidl::client::QueryResponseFut<
29498        BaseSocketGetNoCheckResult,
29499        fidl::encoding::DefaultFuchsiaResourceDialect,
29500    > {
29501        BaseSocketProxyInterface::r#get_no_check(self)
29502    }
29503
29504    /// Set `SOL_SOCKET` -> `SO_LINGER`.
29505    pub fn r#set_linger(
29506        &self,
29507        mut linger: bool,
29508        mut length_secs: u32,
29509    ) -> fidl::client::QueryResponseFut<
29510        BaseSocketSetLingerResult,
29511        fidl::encoding::DefaultFuchsiaResourceDialect,
29512    > {
29513        BaseSocketProxyInterface::r#set_linger(self, linger, length_secs)
29514    }
29515
29516    /// Get `SOL_SOCKET` -> `SO_LINGER`.
29517    pub fn r#get_linger(
29518        &self,
29519    ) -> fidl::client::QueryResponseFut<
29520        BaseSocketGetLingerResult,
29521        fidl::encoding::DefaultFuchsiaResourceDialect,
29522    > {
29523        BaseSocketProxyInterface::r#get_linger(self)
29524    }
29525
29526    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
29527    pub fn r#set_reuse_port(
29528        &self,
29529        mut value: ReusePortOption,
29530    ) -> fidl::client::QueryResponseFut<
29531        BaseSocketSetReusePortResult,
29532        fidl::encoding::DefaultFuchsiaResourceDialect,
29533    > {
29534        BaseSocketProxyInterface::r#set_reuse_port(self, value)
29535    }
29536
29537    pub fn r#set_reuse_port_deprecated(
29538        &self,
29539        mut value: bool,
29540    ) -> fidl::client::QueryResponseFut<
29541        BaseSocketSetReusePortDeprecatedResult,
29542        fidl::encoding::DefaultFuchsiaResourceDialect,
29543    > {
29544        BaseSocketProxyInterface::r#set_reuse_port_deprecated(self, value)
29545    }
29546
29547    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
29548    pub fn r#get_reuse_port(
29549        &self,
29550    ) -> fidl::client::QueryResponseFut<
29551        BaseSocketGetReusePortResult,
29552        fidl::encoding::DefaultFuchsiaResourceDialect,
29553    > {
29554        BaseSocketProxyInterface::r#get_reuse_port(self)
29555    }
29556
29557    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
29558    pub fn r#get_accept_conn(
29559        &self,
29560    ) -> fidl::client::QueryResponseFut<
29561        BaseSocketGetAcceptConnResult,
29562        fidl::encoding::DefaultFuchsiaResourceDialect,
29563    > {
29564        BaseSocketProxyInterface::r#get_accept_conn(self)
29565    }
29566
29567    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
29568    pub fn r#set_bind_to_device(
29569        &self,
29570        mut value: &str,
29571    ) -> fidl::client::QueryResponseFut<
29572        BaseSocketSetBindToDeviceResult,
29573        fidl::encoding::DefaultFuchsiaResourceDialect,
29574    > {
29575        BaseSocketProxyInterface::r#set_bind_to_device(self, value)
29576    }
29577
29578    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
29579    pub fn r#get_bind_to_device(
29580        &self,
29581    ) -> fidl::client::QueryResponseFut<
29582        BaseSocketGetBindToDeviceResult,
29583        fidl::encoding::DefaultFuchsiaResourceDialect,
29584    > {
29585        BaseSocketProxyInterface::r#get_bind_to_device(self)
29586    }
29587
29588    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
29589    /// If `value` is 0, this clears the bound interface.
29590    pub fn r#set_bind_to_interface_index(
29591        &self,
29592        mut value: u64,
29593    ) -> fidl::client::QueryResponseFut<
29594        BaseSocketSetBindToInterfaceIndexResult,
29595        fidl::encoding::DefaultFuchsiaResourceDialect,
29596    > {
29597        BaseSocketProxyInterface::r#set_bind_to_interface_index(self, value)
29598    }
29599
29600    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
29601    pub fn r#get_bind_to_interface_index(
29602        &self,
29603    ) -> fidl::client::QueryResponseFut<
29604        BaseSocketGetBindToInterfaceIndexResult,
29605        fidl::encoding::DefaultFuchsiaResourceDialect,
29606    > {
29607        BaseSocketProxyInterface::r#get_bind_to_interface_index(self)
29608    }
29609
29610    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
29611    pub fn r#set_timestamp(
29612        &self,
29613        mut value: TimestampOption,
29614    ) -> fidl::client::QueryResponseFut<
29615        BaseSocketSetTimestampResult,
29616        fidl::encoding::DefaultFuchsiaResourceDialect,
29617    > {
29618        BaseSocketProxyInterface::r#set_timestamp(self, value)
29619    }
29620
29621    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
29622    pub fn r#get_timestamp(
29623        &self,
29624    ) -> fidl::client::QueryResponseFut<
29625        BaseSocketGetTimestampResult,
29626        fidl::encoding::DefaultFuchsiaResourceDialect,
29627    > {
29628        BaseSocketProxyInterface::r#get_timestamp(self)
29629    }
29630
29631    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
29632    /// unlike the standard SO_MARK, this API has multiple mark domains and each
29633    /// mark can be set independently in each domain.
29634    pub fn r#set_mark(
29635        &self,
29636        mut domain: fidl_fuchsia_net::MarkDomain,
29637        mut mark: &OptionalUint32,
29638    ) -> fidl::client::QueryResponseFut<
29639        BaseSocketSetMarkResult,
29640        fidl::encoding::DefaultFuchsiaResourceDialect,
29641    > {
29642        BaseSocketProxyInterface::r#set_mark(self, domain, mark)
29643    }
29644
29645    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
29646    /// unlike the standard SO_MARK, this API has multiple mark domains and each
29647    /// mark can be retrieved independently in each domain.
29648    pub fn r#get_mark(
29649        &self,
29650        mut domain: fidl_fuchsia_net::MarkDomain,
29651    ) -> fidl::client::QueryResponseFut<
29652        BaseSocketGetMarkResult,
29653        fidl::encoding::DefaultFuchsiaResourceDialect,
29654    > {
29655        BaseSocketProxyInterface::r#get_mark(self, domain)
29656    }
29657
29658    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
29659    pub fn r#get_cookie(
29660        &self,
29661    ) -> fidl::client::QueryResponseFut<
29662        BaseSocketGetCookieResult,
29663        fidl::encoding::DefaultFuchsiaResourceDialect,
29664    > {
29665        BaseSocketProxyInterface::r#get_cookie(self)
29666    }
29667}
29668
29669impl BaseSocketProxyInterface for BaseSocketProxy {
29670    fn r#clone(
29671        &self,
29672        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
29673    ) -> Result<(), fidl::Error> {
29674        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
29675            (request,),
29676            0x20d8a7aba2168a79,
29677            fidl::encoding::DynamicFlags::empty(),
29678        )
29679    }
29680
29681    type CloseResponseFut = fidl::client::QueryResponseFut<
29682        fidl_fuchsia_unknown::CloseableCloseResult,
29683        fidl::encoding::DefaultFuchsiaResourceDialect,
29684    >;
29685    fn r#close(&self) -> Self::CloseResponseFut {
29686        fn _decode(
29687            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29688        ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
29689            let _response = fidl::client::decode_transaction_body::<
29690                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
29691                fidl::encoding::DefaultFuchsiaResourceDialect,
29692                0x5ac5d459ad7f657e,
29693            >(_buf?)?;
29694            Ok(_response.map(|x| x))
29695        }
29696        self.client.send_query_and_decode::<
29697            fidl::encoding::EmptyPayload,
29698            fidl_fuchsia_unknown::CloseableCloseResult,
29699        >(
29700            (),
29701            0x5ac5d459ad7f657e,
29702            fidl::encoding::DynamicFlags::empty(),
29703            _decode,
29704        )
29705    }
29706
29707    type QueryResponseFut =
29708        fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>;
29709    fn r#query(&self) -> Self::QueryResponseFut {
29710        fn _decode(
29711            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29712        ) -> Result<Vec<u8>, fidl::Error> {
29713            let _response = fidl::client::decode_transaction_body::<
29714                fidl_fuchsia_unknown::QueryableQueryResponse,
29715                fidl::encoding::DefaultFuchsiaResourceDialect,
29716                0x2658edee9decfc06,
29717            >(_buf?)?;
29718            Ok(_response.protocol)
29719        }
29720        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, Vec<u8>>(
29721            (),
29722            0x2658edee9decfc06,
29723            fidl::encoding::DynamicFlags::empty(),
29724            _decode,
29725        )
29726    }
29727
29728    type SetReuseAddressResponseFut = fidl::client::QueryResponseFut<
29729        BaseSocketSetReuseAddressResult,
29730        fidl::encoding::DefaultFuchsiaResourceDialect,
29731    >;
29732    fn r#set_reuse_address(&self, mut value: bool) -> Self::SetReuseAddressResponseFut {
29733        fn _decode(
29734            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29735        ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
29736            let _response = fidl::client::decode_transaction_body::<
29737                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29738                fidl::encoding::DefaultFuchsiaResourceDialect,
29739                0x1fd74ee8b9a4a876,
29740            >(_buf?)?;
29741            Ok(_response.map(|x| x))
29742        }
29743        self.client.send_query_and_decode::<
29744            BaseSocketSetReuseAddressRequest,
29745            BaseSocketSetReuseAddressResult,
29746        >(
29747            (value,),
29748            0x1fd74ee8b9a4a876,
29749            fidl::encoding::DynamicFlags::empty(),
29750            _decode,
29751        )
29752    }
29753
29754    type GetReuseAddressResponseFut = fidl::client::QueryResponseFut<
29755        BaseSocketGetReuseAddressResult,
29756        fidl::encoding::DefaultFuchsiaResourceDialect,
29757    >;
29758    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut {
29759        fn _decode(
29760            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29761        ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
29762            let _response = fidl::client::decode_transaction_body::<
29763                fidl::encoding::ResultType<
29764                    BaseSocketGetReuseAddressResponse,
29765                    fidl_fuchsia_posix::Errno,
29766                >,
29767                fidl::encoding::DefaultFuchsiaResourceDialect,
29768                0x67b7206b8d1bc0a5,
29769            >(_buf?)?;
29770            Ok(_response.map(|x| x.value))
29771        }
29772        self.client
29773            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReuseAddressResult>(
29774                (),
29775                0x67b7206b8d1bc0a5,
29776                fidl::encoding::DynamicFlags::empty(),
29777                _decode,
29778            )
29779    }
29780
29781    type GetErrorResponseFut = fidl::client::QueryResponseFut<
29782        BaseSocketGetErrorResult,
29783        fidl::encoding::DefaultFuchsiaResourceDialect,
29784    >;
29785    fn r#get_error(&self) -> Self::GetErrorResponseFut {
29786        fn _decode(
29787            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29788        ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
29789            let _response = fidl::client::decode_transaction_body::<
29790                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29791                fidl::encoding::DefaultFuchsiaResourceDialect,
29792                0x5aad39b33e5f6ebb,
29793            >(_buf?)?;
29794            Ok(_response.map(|x| x))
29795        }
29796        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetErrorResult>(
29797            (),
29798            0x5aad39b33e5f6ebb,
29799            fidl::encoding::DynamicFlags::empty(),
29800            _decode,
29801        )
29802    }
29803
29804    type SetBroadcastResponseFut = fidl::client::QueryResponseFut<
29805        BaseSocketSetBroadcastResult,
29806        fidl::encoding::DefaultFuchsiaResourceDialect,
29807    >;
29808    fn r#set_broadcast(&self, mut value: bool) -> Self::SetBroadcastResponseFut {
29809        fn _decode(
29810            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29811        ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
29812            let _response = fidl::client::decode_transaction_body::<
29813                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29814                fidl::encoding::DefaultFuchsiaResourceDialect,
29815                0x6023e081ce3cd947,
29816            >(_buf?)?;
29817            Ok(_response.map(|x| x))
29818        }
29819        self.client
29820            .send_query_and_decode::<BaseSocketSetBroadcastRequest, BaseSocketSetBroadcastResult>(
29821                (value,),
29822                0x6023e081ce3cd947,
29823                fidl::encoding::DynamicFlags::empty(),
29824                _decode,
29825            )
29826    }
29827
29828    type GetBroadcastResponseFut = fidl::client::QueryResponseFut<
29829        BaseSocketGetBroadcastResult,
29830        fidl::encoding::DefaultFuchsiaResourceDialect,
29831    >;
29832    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut {
29833        fn _decode(
29834            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29835        ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
29836            let _response = fidl::client::decode_transaction_body::<
29837                fidl::encoding::ResultType<
29838                    BaseSocketGetBroadcastResponse,
29839                    fidl_fuchsia_posix::Errno,
29840                >,
29841                fidl::encoding::DefaultFuchsiaResourceDialect,
29842                0x68796fc556f9780d,
29843            >(_buf?)?;
29844            Ok(_response.map(|x| x.value))
29845        }
29846        self.client
29847            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBroadcastResult>(
29848                (),
29849                0x68796fc556f9780d,
29850                fidl::encoding::DynamicFlags::empty(),
29851                _decode,
29852            )
29853    }
29854
29855    type SetSendBufferResponseFut = fidl::client::QueryResponseFut<
29856        BaseSocketSetSendBufferResult,
29857        fidl::encoding::DefaultFuchsiaResourceDialect,
29858    >;
29859    fn r#set_send_buffer(&self, mut value_bytes: u64) -> Self::SetSendBufferResponseFut {
29860        fn _decode(
29861            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29862        ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
29863            let _response = fidl::client::decode_transaction_body::<
29864                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29865                fidl::encoding::DefaultFuchsiaResourceDialect,
29866                0x756eac32d73a7a70,
29867            >(_buf?)?;
29868            Ok(_response.map(|x| x))
29869        }
29870        self.client
29871            .send_query_and_decode::<BaseSocketSetSendBufferRequest, BaseSocketSetSendBufferResult>(
29872                (value_bytes,),
29873                0x756eac32d73a7a70,
29874                fidl::encoding::DynamicFlags::empty(),
29875                _decode,
29876            )
29877    }
29878
29879    type GetSendBufferResponseFut = fidl::client::QueryResponseFut<
29880        BaseSocketGetSendBufferResult,
29881        fidl::encoding::DefaultFuchsiaResourceDialect,
29882    >;
29883    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut {
29884        fn _decode(
29885            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29886        ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
29887            let _response = fidl::client::decode_transaction_body::<
29888                fidl::encoding::ResultType<
29889                    BaseSocketGetSendBufferResponse,
29890                    fidl_fuchsia_posix::Errno,
29891                >,
29892                fidl::encoding::DefaultFuchsiaResourceDialect,
29893                0x78a52fd9c7b2410b,
29894            >(_buf?)?;
29895            Ok(_response.map(|x| x.value_bytes))
29896        }
29897        self.client
29898            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetSendBufferResult>(
29899                (),
29900                0x78a52fd9c7b2410b,
29901                fidl::encoding::DynamicFlags::empty(),
29902                _decode,
29903            )
29904    }
29905
29906    type SetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
29907        BaseSocketSetReceiveBufferResult,
29908        fidl::encoding::DefaultFuchsiaResourceDialect,
29909    >;
29910    fn r#set_receive_buffer(&self, mut value_bytes: u64) -> Self::SetReceiveBufferResponseFut {
29911        fn _decode(
29912            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29913        ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
29914            let _response = fidl::client::decode_transaction_body::<
29915                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29916                fidl::encoding::DefaultFuchsiaResourceDialect,
29917                0x6b0cf2f1919c7001,
29918            >(_buf?)?;
29919            Ok(_response.map(|x| x))
29920        }
29921        self.client.send_query_and_decode::<
29922            BaseSocketSetReceiveBufferRequest,
29923            BaseSocketSetReceiveBufferResult,
29924        >(
29925            (value_bytes,),
29926            0x6b0cf2f1919c7001,
29927            fidl::encoding::DynamicFlags::empty(),
29928            _decode,
29929        )
29930    }
29931
29932    type GetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
29933        BaseSocketGetReceiveBufferResult,
29934        fidl::encoding::DefaultFuchsiaResourceDialect,
29935    >;
29936    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut {
29937        fn _decode(
29938            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29939        ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
29940            let _response = fidl::client::decode_transaction_body::<
29941                fidl::encoding::ResultType<
29942                    BaseSocketGetReceiveBufferResponse,
29943                    fidl_fuchsia_posix::Errno,
29944                >,
29945                fidl::encoding::DefaultFuchsiaResourceDialect,
29946                0x14c1a4b64f709e5c,
29947            >(_buf?)?;
29948            Ok(_response.map(|x| x.value_bytes))
29949        }
29950        self.client.send_query_and_decode::<
29951            fidl::encoding::EmptyPayload,
29952            BaseSocketGetReceiveBufferResult,
29953        >(
29954            (),
29955            0x14c1a4b64f709e5c,
29956            fidl::encoding::DynamicFlags::empty(),
29957            _decode,
29958        )
29959    }
29960
29961    type SetKeepAliveResponseFut = fidl::client::QueryResponseFut<
29962        BaseSocketSetKeepAliveResult,
29963        fidl::encoding::DefaultFuchsiaResourceDialect,
29964    >;
29965    fn r#set_keep_alive(&self, mut value: bool) -> Self::SetKeepAliveResponseFut {
29966        fn _decode(
29967            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29968        ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
29969            let _response = fidl::client::decode_transaction_body::<
29970                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29971                fidl::encoding::DefaultFuchsiaResourceDialect,
29972                0x572df8f0b920d2c7,
29973            >(_buf?)?;
29974            Ok(_response.map(|x| x))
29975        }
29976        self.client
29977            .send_query_and_decode::<BaseSocketSetKeepAliveRequest, BaseSocketSetKeepAliveResult>(
29978                (value,),
29979                0x572df8f0b920d2c7,
29980                fidl::encoding::DynamicFlags::empty(),
29981                _decode,
29982            )
29983    }
29984
29985    type GetKeepAliveResponseFut = fidl::client::QueryResponseFut<
29986        BaseSocketGetKeepAliveResult,
29987        fidl::encoding::DefaultFuchsiaResourceDialect,
29988    >;
29989    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut {
29990        fn _decode(
29991            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29992        ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
29993            let _response = fidl::client::decode_transaction_body::<
29994                fidl::encoding::ResultType<
29995                    BaseSocketGetKeepAliveResponse,
29996                    fidl_fuchsia_posix::Errno,
29997                >,
29998                fidl::encoding::DefaultFuchsiaResourceDialect,
29999                0x2dd29d3215f2c9d2,
30000            >(_buf?)?;
30001            Ok(_response.map(|x| x.value))
30002        }
30003        self.client
30004            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetKeepAliveResult>(
30005                (),
30006                0x2dd29d3215f2c9d2,
30007                fidl::encoding::DynamicFlags::empty(),
30008                _decode,
30009            )
30010    }
30011
30012    type SetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
30013        BaseSocketSetOutOfBandInlineResult,
30014        fidl::encoding::DefaultFuchsiaResourceDialect,
30015    >;
30016    fn r#set_out_of_band_inline(&self, mut value: bool) -> Self::SetOutOfBandInlineResponseFut {
30017        fn _decode(
30018            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
30019        ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
30020            let _response = fidl::client::decode_transaction_body::<
30021                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
30022                fidl::encoding::DefaultFuchsiaResourceDialect,
30023                0x3ecb49968bee439,
30024            >(_buf?)?;
30025            Ok(_response.map(|x| x))
30026        }
30027        self.client.send_query_and_decode::<
30028            BaseSocketSetOutOfBandInlineRequest,
30029            BaseSocketSetOutOfBandInlineResult,
30030        >(
30031            (value,),
30032            0x3ecb49968bee439,
30033            fidl::encoding::DynamicFlags::empty(),
30034            _decode,
30035        )
30036    }
30037
30038    type GetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
30039        BaseSocketGetOutOfBandInlineResult,
30040        fidl::encoding::DefaultFuchsiaResourceDialect,
30041    >;
30042    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut {
30043        fn _decode(
30044            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
30045        ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
30046            let _response = fidl::client::decode_transaction_body::<
30047                fidl::encoding::ResultType<
30048                    BaseSocketGetOutOfBandInlineResponse,
30049                    fidl_fuchsia_posix::Errno,
30050                >,
30051                fidl::encoding::DefaultFuchsiaResourceDialect,
30052                0x348c1ab3aeca1745,
30053            >(_buf?)?;
30054            Ok(_response.map(|x| x.value))
30055        }
30056        self.client.send_query_and_decode::<
30057            fidl::encoding::EmptyPayload,
30058            BaseSocketGetOutOfBandInlineResult,
30059        >(
30060            (),
30061            0x348c1ab3aeca1745,
30062            fidl::encoding::DynamicFlags::empty(),
30063            _decode,
30064        )
30065    }
30066
30067    type SetNoCheckResponseFut = fidl::client::QueryResponseFut<
30068        BaseSocketSetNoCheckResult,
30069        fidl::encoding::DefaultFuchsiaResourceDialect,
30070    >;
30071    fn r#set_no_check(&self, mut value: bool) -> Self::SetNoCheckResponseFut {
30072        fn _decode(
30073            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
30074        ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
30075            let _response = fidl::client::decode_transaction_body::<
30076                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
30077                fidl::encoding::DefaultFuchsiaResourceDialect,
30078                0x6bbf00c53a4c78c2,
30079            >(_buf?)?;
30080            Ok(_response.map(|x| x))
30081        }
30082        self.client
30083            .send_query_and_decode::<BaseSocketSetNoCheckRequest, BaseSocketSetNoCheckResult>(
30084                (value,),
30085                0x6bbf00c53a4c78c2,
30086                fidl::encoding::DynamicFlags::empty(),
30087                _decode,
30088            )
30089    }
30090
30091    type GetNoCheckResponseFut = fidl::client::QueryResponseFut<
30092        BaseSocketGetNoCheckResult,
30093        fidl::encoding::DefaultFuchsiaResourceDialect,
30094    >;
30095    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut {
30096        fn _decode(
30097            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
30098        ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
30099            let _response = fidl::client::decode_transaction_body::<
30100                fidl::encoding::ResultType<BaseSocketGetNoCheckResponse, fidl_fuchsia_posix::Errno>,
30101                fidl::encoding::DefaultFuchsiaResourceDialect,
30102                0x2cd4249286417694,
30103            >(_buf?)?;
30104            Ok(_response.map(|x| x.value))
30105        }
30106        self.client
30107            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetNoCheckResult>(
30108                (),
30109                0x2cd4249286417694,
30110                fidl::encoding::DynamicFlags::empty(),
30111                _decode,
30112            )
30113    }
30114
30115    type SetLingerResponseFut = fidl::client::QueryResponseFut<
30116        BaseSocketSetLingerResult,
30117        fidl::encoding::DefaultFuchsiaResourceDialect,
30118    >;
30119    fn r#set_linger(&self, mut linger: bool, mut length_secs: u32) -> Self::SetLingerResponseFut {
30120        fn _decode(
30121            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
30122        ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
30123            let _response = fidl::client::decode_transaction_body::<
30124                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
30125                fidl::encoding::DefaultFuchsiaResourceDialect,
30126                0x45386351246e998e,
30127            >(_buf?)?;
30128            Ok(_response.map(|x| x))
30129        }
30130        self.client.send_query_and_decode::<BaseSocketSetLingerRequest, BaseSocketSetLingerResult>(
30131            (linger, length_secs),
30132            0x45386351246e998e,
30133            fidl::encoding::DynamicFlags::empty(),
30134            _decode,
30135        )
30136    }
30137
30138    type GetLingerResponseFut = fidl::client::QueryResponseFut<
30139        BaseSocketGetLingerResult,
30140        fidl::encoding::DefaultFuchsiaResourceDialect,
30141    >;
30142    fn r#get_linger(&self) -> Self::GetLingerResponseFut {
30143        fn _decode(
30144            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
30145        ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
30146            let _response = fidl::client::decode_transaction_body::<
30147                fidl::encoding::ResultType<BaseSocketGetLingerResponse, fidl_fuchsia_posix::Errno>,
30148                fidl::encoding::DefaultFuchsiaResourceDialect,
30149                0x48eb20fc5ccb0e45,
30150            >(_buf?)?;
30151            Ok(_response.map(|x| (x.linger, x.length_secs)))
30152        }
30153        self.client
30154            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetLingerResult>(
30155                (),
30156                0x48eb20fc5ccb0e45,
30157                fidl::encoding::DynamicFlags::empty(),
30158                _decode,
30159            )
30160    }
30161
30162    type SetReusePortResponseFut = fidl::client::QueryResponseFut<
30163        BaseSocketSetReusePortResult,
30164        fidl::encoding::DefaultFuchsiaResourceDialect,
30165    >;
30166    fn r#set_reuse_port(&self, mut value: ReusePortOption) -> Self::SetReusePortResponseFut {
30167        fn _decode(
30168            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
30169        ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
30170            let _response = fidl::client::decode_transaction_body::<
30171                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
30172                fidl::encoding::DefaultFuchsiaResourceDialect,
30173                0x547dc9cc0455189e,
30174            >(_buf?)?;
30175            Ok(_response.map(|x| x))
30176        }
30177        self.client
30178            .send_query_and_decode::<BaseSocketSetReusePortRequest, BaseSocketSetReusePortResult>(
30179                (&mut value,),
30180                0x547dc9cc0455189e,
30181                fidl::encoding::DynamicFlags::empty(),
30182                _decode,
30183            )
30184    }
30185
30186    type SetReusePortDeprecatedResponseFut = fidl::client::QueryResponseFut<
30187        BaseSocketSetReusePortDeprecatedResult,
30188        fidl::encoding::DefaultFuchsiaResourceDialect,
30189    >;
30190    fn r#set_reuse_port_deprecated(
30191        &self,
30192        mut value: bool,
30193    ) -> Self::SetReusePortDeprecatedResponseFut {
30194        fn _decode(
30195            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
30196        ) -> Result<BaseSocketSetReusePortDeprecatedResult, fidl::Error> {
30197            let _response = fidl::client::decode_transaction_body::<
30198                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
30199                fidl::encoding::DefaultFuchsiaResourceDialect,
30200                0x24dd3e5cb36d9ccb,
30201            >(_buf?)?;
30202            Ok(_response.map(|x| x))
30203        }
30204        self.client.send_query_and_decode::<
30205            BaseSocketSetReusePortDeprecatedRequest,
30206            BaseSocketSetReusePortDeprecatedResult,
30207        >(
30208            (value,),
30209            0x24dd3e5cb36d9ccb,
30210            fidl::encoding::DynamicFlags::empty(),
30211            _decode,
30212        )
30213    }
30214
30215    type GetReusePortResponseFut = fidl::client::QueryResponseFut<
30216        BaseSocketGetReusePortResult,
30217        fidl::encoding::DefaultFuchsiaResourceDialect,
30218    >;
30219    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut {
30220        fn _decode(
30221            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
30222        ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
30223            let _response = fidl::client::decode_transaction_body::<
30224                fidl::encoding::ResultType<
30225                    BaseSocketGetReusePortResponse,
30226                    fidl_fuchsia_posix::Errno,
30227                >,
30228                fidl::encoding::DefaultFuchsiaResourceDialect,
30229                0x7a112c1ab54ff828,
30230            >(_buf?)?;
30231            Ok(_response.map(|x| x.value))
30232        }
30233        self.client
30234            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReusePortResult>(
30235                (),
30236                0x7a112c1ab54ff828,
30237                fidl::encoding::DynamicFlags::empty(),
30238                _decode,
30239            )
30240    }
30241
30242    type GetAcceptConnResponseFut = fidl::client::QueryResponseFut<
30243        BaseSocketGetAcceptConnResult,
30244        fidl::encoding::DefaultFuchsiaResourceDialect,
30245    >;
30246    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut {
30247        fn _decode(
30248            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
30249        ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
30250            let _response = fidl::client::decode_transaction_body::<
30251                fidl::encoding::ResultType<
30252                    BaseSocketGetAcceptConnResponse,
30253                    fidl_fuchsia_posix::Errno,
30254                >,
30255                fidl::encoding::DefaultFuchsiaResourceDialect,
30256                0x67ce6db6c2ec8966,
30257            >(_buf?)?;
30258            Ok(_response.map(|x| x.value))
30259        }
30260        self.client
30261            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetAcceptConnResult>(
30262                (),
30263                0x67ce6db6c2ec8966,
30264                fidl::encoding::DynamicFlags::empty(),
30265                _decode,
30266            )
30267    }
30268
30269    type SetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
30270        BaseSocketSetBindToDeviceResult,
30271        fidl::encoding::DefaultFuchsiaResourceDialect,
30272    >;
30273    fn r#set_bind_to_device(&self, mut value: &str) -> Self::SetBindToDeviceResponseFut {
30274        fn _decode(
30275            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
30276        ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
30277            let _response = fidl::client::decode_transaction_body::<
30278                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
30279                fidl::encoding::DefaultFuchsiaResourceDialect,
30280                0x2118b483f28aafc4,
30281            >(_buf?)?;
30282            Ok(_response.map(|x| x))
30283        }
30284        self.client.send_query_and_decode::<
30285            BaseSocketSetBindToDeviceRequest,
30286            BaseSocketSetBindToDeviceResult,
30287        >(
30288            (value,),
30289            0x2118b483f28aafc4,
30290            fidl::encoding::DynamicFlags::empty(),
30291            _decode,
30292        )
30293    }
30294
30295    type GetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
30296        BaseSocketGetBindToDeviceResult,
30297        fidl::encoding::DefaultFuchsiaResourceDialect,
30298    >;
30299    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut {
30300        fn _decode(
30301            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
30302        ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
30303            let _response = fidl::client::decode_transaction_body::<
30304                fidl::encoding::ResultType<
30305                    BaseSocketGetBindToDeviceResponse,
30306                    fidl_fuchsia_posix::Errno,
30307                >,
30308                fidl::encoding::DefaultFuchsiaResourceDialect,
30309                0x1ab1fbf0ef7906c8,
30310            >(_buf?)?;
30311            Ok(_response.map(|x| x.value))
30312        }
30313        self.client
30314            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBindToDeviceResult>(
30315                (),
30316                0x1ab1fbf0ef7906c8,
30317                fidl::encoding::DynamicFlags::empty(),
30318                _decode,
30319            )
30320    }
30321
30322    type SetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
30323        BaseSocketSetBindToInterfaceIndexResult,
30324        fidl::encoding::DefaultFuchsiaResourceDialect,
30325    >;
30326    fn r#set_bind_to_interface_index(
30327        &self,
30328        mut value: u64,
30329    ) -> Self::SetBindToInterfaceIndexResponseFut {
30330        fn _decode(
30331            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
30332        ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
30333            let _response = fidl::client::decode_transaction_body::<
30334                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
30335                fidl::encoding::DefaultFuchsiaResourceDialect,
30336                0x6e387a0def00821,
30337            >(_buf?)?;
30338            Ok(_response.map(|x| x))
30339        }
30340        self.client.send_query_and_decode::<
30341            BaseSocketSetBindToInterfaceIndexRequest,
30342            BaseSocketSetBindToInterfaceIndexResult,
30343        >(
30344            (value,),
30345            0x6e387a0def00821,
30346            fidl::encoding::DynamicFlags::empty(),
30347            _decode,
30348        )
30349    }
30350
30351    type GetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
30352        BaseSocketGetBindToInterfaceIndexResult,
30353        fidl::encoding::DefaultFuchsiaResourceDialect,
30354    >;
30355    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut {
30356        fn _decode(
30357            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
30358        ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
30359            let _response = fidl::client::decode_transaction_body::<
30360                fidl::encoding::ResultType<
30361                    BaseSocketGetBindToInterfaceIndexResponse,
30362                    fidl_fuchsia_posix::Errno,
30363                >,
30364                fidl::encoding::DefaultFuchsiaResourceDialect,
30365                0x59c31dd3e3078295,
30366            >(_buf?)?;
30367            Ok(_response.map(|x| x.value))
30368        }
30369        self.client.send_query_and_decode::<
30370            fidl::encoding::EmptyPayload,
30371            BaseSocketGetBindToInterfaceIndexResult,
30372        >(
30373            (),
30374            0x59c31dd3e3078295,
30375            fidl::encoding::DynamicFlags::empty(),
30376            _decode,
30377        )
30378    }
30379
30380    type SetTimestampResponseFut = fidl::client::QueryResponseFut<
30381        BaseSocketSetTimestampResult,
30382        fidl::encoding::DefaultFuchsiaResourceDialect,
30383    >;
30384    fn r#set_timestamp(&self, mut value: TimestampOption) -> Self::SetTimestampResponseFut {
30385        fn _decode(
30386            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
30387        ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
30388            let _response = fidl::client::decode_transaction_body::<
30389                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
30390                fidl::encoding::DefaultFuchsiaResourceDialect,
30391                0x285d6516c263d839,
30392            >(_buf?)?;
30393            Ok(_response.map(|x| x))
30394        }
30395        self.client
30396            .send_query_and_decode::<BaseSocketSetTimestampRequest, BaseSocketSetTimestampResult>(
30397                (value,),
30398                0x285d6516c263d839,
30399                fidl::encoding::DynamicFlags::empty(),
30400                _decode,
30401            )
30402    }
30403
30404    type GetTimestampResponseFut = fidl::client::QueryResponseFut<
30405        BaseSocketGetTimestampResult,
30406        fidl::encoding::DefaultFuchsiaResourceDialect,
30407    >;
30408    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut {
30409        fn _decode(
30410            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
30411        ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
30412            let _response = fidl::client::decode_transaction_body::<
30413                fidl::encoding::ResultType<
30414                    BaseSocketGetTimestampResponse,
30415                    fidl_fuchsia_posix::Errno,
30416                >,
30417                fidl::encoding::DefaultFuchsiaResourceDialect,
30418                0x49f2fffbbcc2bd27,
30419            >(_buf?)?;
30420            Ok(_response.map(|x| x.value))
30421        }
30422        self.client
30423            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetTimestampResult>(
30424                (),
30425                0x49f2fffbbcc2bd27,
30426                fidl::encoding::DynamicFlags::empty(),
30427                _decode,
30428            )
30429    }
30430
30431    type SetMarkResponseFut = fidl::client::QueryResponseFut<
30432        BaseSocketSetMarkResult,
30433        fidl::encoding::DefaultFuchsiaResourceDialect,
30434    >;
30435    fn r#set_mark(
30436        &self,
30437        mut domain: fidl_fuchsia_net::MarkDomain,
30438        mut mark: &OptionalUint32,
30439    ) -> Self::SetMarkResponseFut {
30440        fn _decode(
30441            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
30442        ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
30443            let _response = fidl::client::decode_transaction_body::<
30444                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
30445                fidl::encoding::DefaultFuchsiaResourceDialect,
30446                0x6ead6de09f653236,
30447            >(_buf?)?;
30448            Ok(_response.map(|x| x))
30449        }
30450        self.client.send_query_and_decode::<BaseSocketSetMarkRequest, BaseSocketSetMarkResult>(
30451            (domain, mark),
30452            0x6ead6de09f653236,
30453            fidl::encoding::DynamicFlags::empty(),
30454            _decode,
30455        )
30456    }
30457
30458    type GetMarkResponseFut = fidl::client::QueryResponseFut<
30459        BaseSocketGetMarkResult,
30460        fidl::encoding::DefaultFuchsiaResourceDialect,
30461    >;
30462    fn r#get_mark(&self, mut domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut {
30463        fn _decode(
30464            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
30465        ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
30466            let _response = fidl::client::decode_transaction_body::<
30467                fidl::encoding::ResultType<BaseSocketGetMarkResponse, fidl_fuchsia_posix::Errno>,
30468                fidl::encoding::DefaultFuchsiaResourceDialect,
30469                0x57a2752c61d93d47,
30470            >(_buf?)?;
30471            Ok(_response.map(|x| x.mark))
30472        }
30473        self.client.send_query_and_decode::<BaseSocketGetMarkRequest, BaseSocketGetMarkResult>(
30474            (domain,),
30475            0x57a2752c61d93d47,
30476            fidl::encoding::DynamicFlags::empty(),
30477            _decode,
30478        )
30479    }
30480
30481    type GetCookieResponseFut = fidl::client::QueryResponseFut<
30482        BaseSocketGetCookieResult,
30483        fidl::encoding::DefaultFuchsiaResourceDialect,
30484    >;
30485    fn r#get_cookie(&self) -> Self::GetCookieResponseFut {
30486        fn _decode(
30487            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
30488        ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
30489            let _response = fidl::client::decode_transaction_body::<
30490                fidl::encoding::ResultType<BaseSocketGetCookieResponse, fidl_fuchsia_posix::Errno>,
30491                fidl::encoding::DefaultFuchsiaResourceDialect,
30492                0x2c2f47fd8f924e52,
30493            >(_buf?)?;
30494            Ok(_response.map(|x| x.value))
30495        }
30496        self.client
30497            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetCookieResult>(
30498                (),
30499                0x2c2f47fd8f924e52,
30500                fidl::encoding::DynamicFlags::empty(),
30501                _decode,
30502            )
30503    }
30504}
30505
30506pub struct BaseSocketEventStream {
30507    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
30508}
30509
30510impl std::marker::Unpin for BaseSocketEventStream {}
30511
30512impl futures::stream::FusedStream for BaseSocketEventStream {
30513    fn is_terminated(&self) -> bool {
30514        self.event_receiver.is_terminated()
30515    }
30516}
30517
30518impl futures::Stream for BaseSocketEventStream {
30519    type Item = Result<BaseSocketEvent, fidl::Error>;
30520
30521    fn poll_next(
30522        mut self: std::pin::Pin<&mut Self>,
30523        cx: &mut std::task::Context<'_>,
30524    ) -> std::task::Poll<Option<Self::Item>> {
30525        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
30526            &mut self.event_receiver,
30527            cx
30528        )?) {
30529            Some(buf) => std::task::Poll::Ready(Some(BaseSocketEvent::decode(buf))),
30530            None => std::task::Poll::Ready(None),
30531        }
30532    }
30533}
30534
30535#[derive(Debug)]
30536pub enum BaseSocketEvent {}
30537
30538impl BaseSocketEvent {
30539    /// Decodes a message buffer as a [`BaseSocketEvent`].
30540    fn decode(
30541        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
30542    ) -> Result<BaseSocketEvent, fidl::Error> {
30543        let (bytes, _handles) = buf.split_mut();
30544        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
30545        debug_assert_eq!(tx_header.tx_id, 0);
30546        match tx_header.ordinal {
30547            _ => Err(fidl::Error::UnknownOrdinal {
30548                ordinal: tx_header.ordinal,
30549                protocol_name: <BaseSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
30550            }),
30551        }
30552    }
30553}
30554
30555/// A Stream of incoming requests for fuchsia.posix.socket/BaseSocket.
30556pub struct BaseSocketRequestStream {
30557    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
30558    is_terminated: bool,
30559}
30560
30561impl std::marker::Unpin for BaseSocketRequestStream {}
30562
30563impl futures::stream::FusedStream for BaseSocketRequestStream {
30564    fn is_terminated(&self) -> bool {
30565        self.is_terminated
30566    }
30567}
30568
30569impl fidl::endpoints::RequestStream for BaseSocketRequestStream {
30570    type Protocol = BaseSocketMarker;
30571    type ControlHandle = BaseSocketControlHandle;
30572
30573    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
30574        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
30575    }
30576
30577    fn control_handle(&self) -> Self::ControlHandle {
30578        BaseSocketControlHandle { inner: self.inner.clone() }
30579    }
30580
30581    fn into_inner(
30582        self,
30583    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
30584    {
30585        (self.inner, self.is_terminated)
30586    }
30587
30588    fn from_inner(
30589        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
30590        is_terminated: bool,
30591    ) -> Self {
30592        Self { inner, is_terminated }
30593    }
30594}
30595
30596impl futures::Stream for BaseSocketRequestStream {
30597    type Item = Result<BaseSocketRequest, fidl::Error>;
30598
30599    fn poll_next(
30600        mut self: std::pin::Pin<&mut Self>,
30601        cx: &mut std::task::Context<'_>,
30602    ) -> std::task::Poll<Option<Self::Item>> {
30603        let this = &mut *self;
30604        if this.inner.check_shutdown(cx) {
30605            this.is_terminated = true;
30606            return std::task::Poll::Ready(None);
30607        }
30608        if this.is_terminated {
30609            panic!("polled BaseSocketRequestStream after completion");
30610        }
30611        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
30612            |bytes, handles| {
30613                match this.inner.channel().read_etc(cx, bytes, handles) {
30614                    std::task::Poll::Ready(Ok(())) => {}
30615                    std::task::Poll::Pending => return std::task::Poll::Pending,
30616                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
30617                        this.is_terminated = true;
30618                        return std::task::Poll::Ready(None);
30619                    }
30620                    std::task::Poll::Ready(Err(e)) => {
30621                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
30622                            e.into(),
30623                        ))));
30624                    }
30625                }
30626
30627                // A message has been received from the channel
30628                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
30629
30630                std::task::Poll::Ready(Some(match header.ordinal {
30631                    0x20d8a7aba2168a79 => {
30632                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
30633                        let mut req = fidl::new_empty!(
30634                            fidl_fuchsia_unknown::CloneableCloneRequest,
30635                            fidl::encoding::DefaultFuchsiaResourceDialect
30636                        );
30637                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl_fuchsia_unknown::CloneableCloneRequest>(&header, _body_bytes, handles, &mut req)?;
30638                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30639                        Ok(BaseSocketRequest::Clone { request: req.request, control_handle })
30640                    }
30641                    0x5ac5d459ad7f657e => {
30642                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30643                        let mut req = fidl::new_empty!(
30644                            fidl::encoding::EmptyPayload,
30645                            fidl::encoding::DefaultFuchsiaResourceDialect
30646                        );
30647                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30648                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30649                        Ok(BaseSocketRequest::Close {
30650                            responder: BaseSocketCloseResponder {
30651                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30652                                tx_id: header.tx_id,
30653                            },
30654                        })
30655                    }
30656                    0x2658edee9decfc06 => {
30657                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30658                        let mut req = fidl::new_empty!(
30659                            fidl::encoding::EmptyPayload,
30660                            fidl::encoding::DefaultFuchsiaResourceDialect
30661                        );
30662                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30663                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30664                        Ok(BaseSocketRequest::Query {
30665                            responder: BaseSocketQueryResponder {
30666                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30667                                tx_id: header.tx_id,
30668                            },
30669                        })
30670                    }
30671                    0x1fd74ee8b9a4a876 => {
30672                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30673                        let mut req = fidl::new_empty!(
30674                            BaseSocketSetReuseAddressRequest,
30675                            fidl::encoding::DefaultFuchsiaResourceDialect
30676                        );
30677                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReuseAddressRequest>(&header, _body_bytes, handles, &mut req)?;
30678                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30679                        Ok(BaseSocketRequest::SetReuseAddress {
30680                            value: req.value,
30681
30682                            responder: BaseSocketSetReuseAddressResponder {
30683                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30684                                tx_id: header.tx_id,
30685                            },
30686                        })
30687                    }
30688                    0x67b7206b8d1bc0a5 => {
30689                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30690                        let mut req = fidl::new_empty!(
30691                            fidl::encoding::EmptyPayload,
30692                            fidl::encoding::DefaultFuchsiaResourceDialect
30693                        );
30694                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30695                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30696                        Ok(BaseSocketRequest::GetReuseAddress {
30697                            responder: BaseSocketGetReuseAddressResponder {
30698                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30699                                tx_id: header.tx_id,
30700                            },
30701                        })
30702                    }
30703                    0x5aad39b33e5f6ebb => {
30704                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30705                        let mut req = fidl::new_empty!(
30706                            fidl::encoding::EmptyPayload,
30707                            fidl::encoding::DefaultFuchsiaResourceDialect
30708                        );
30709                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30710                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30711                        Ok(BaseSocketRequest::GetError {
30712                            responder: BaseSocketGetErrorResponder {
30713                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30714                                tx_id: header.tx_id,
30715                            },
30716                        })
30717                    }
30718                    0x6023e081ce3cd947 => {
30719                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30720                        let mut req = fidl::new_empty!(
30721                            BaseSocketSetBroadcastRequest,
30722                            fidl::encoding::DefaultFuchsiaResourceDialect
30723                        );
30724                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBroadcastRequest>(&header, _body_bytes, handles, &mut req)?;
30725                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30726                        Ok(BaseSocketRequest::SetBroadcast {
30727                            value: req.value,
30728
30729                            responder: BaseSocketSetBroadcastResponder {
30730                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30731                                tx_id: header.tx_id,
30732                            },
30733                        })
30734                    }
30735                    0x68796fc556f9780d => {
30736                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30737                        let mut req = fidl::new_empty!(
30738                            fidl::encoding::EmptyPayload,
30739                            fidl::encoding::DefaultFuchsiaResourceDialect
30740                        );
30741                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30742                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30743                        Ok(BaseSocketRequest::GetBroadcast {
30744                            responder: BaseSocketGetBroadcastResponder {
30745                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30746                                tx_id: header.tx_id,
30747                            },
30748                        })
30749                    }
30750                    0x756eac32d73a7a70 => {
30751                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30752                        let mut req = fidl::new_empty!(
30753                            BaseSocketSetSendBufferRequest,
30754                            fidl::encoding::DefaultFuchsiaResourceDialect
30755                        );
30756                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetSendBufferRequest>(&header, _body_bytes, handles, &mut req)?;
30757                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30758                        Ok(BaseSocketRequest::SetSendBuffer {
30759                            value_bytes: req.value_bytes,
30760
30761                            responder: BaseSocketSetSendBufferResponder {
30762                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30763                                tx_id: header.tx_id,
30764                            },
30765                        })
30766                    }
30767                    0x78a52fd9c7b2410b => {
30768                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30769                        let mut req = fidl::new_empty!(
30770                            fidl::encoding::EmptyPayload,
30771                            fidl::encoding::DefaultFuchsiaResourceDialect
30772                        );
30773                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30774                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30775                        Ok(BaseSocketRequest::GetSendBuffer {
30776                            responder: BaseSocketGetSendBufferResponder {
30777                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30778                                tx_id: header.tx_id,
30779                            },
30780                        })
30781                    }
30782                    0x6b0cf2f1919c7001 => {
30783                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30784                        let mut req = fidl::new_empty!(
30785                            BaseSocketSetReceiveBufferRequest,
30786                            fidl::encoding::DefaultFuchsiaResourceDialect
30787                        );
30788                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReceiveBufferRequest>(&header, _body_bytes, handles, &mut req)?;
30789                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30790                        Ok(BaseSocketRequest::SetReceiveBuffer {
30791                            value_bytes: req.value_bytes,
30792
30793                            responder: BaseSocketSetReceiveBufferResponder {
30794                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30795                                tx_id: header.tx_id,
30796                            },
30797                        })
30798                    }
30799                    0x14c1a4b64f709e5c => {
30800                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30801                        let mut req = fidl::new_empty!(
30802                            fidl::encoding::EmptyPayload,
30803                            fidl::encoding::DefaultFuchsiaResourceDialect
30804                        );
30805                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30806                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30807                        Ok(BaseSocketRequest::GetReceiveBuffer {
30808                            responder: BaseSocketGetReceiveBufferResponder {
30809                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30810                                tx_id: header.tx_id,
30811                            },
30812                        })
30813                    }
30814                    0x572df8f0b920d2c7 => {
30815                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30816                        let mut req = fidl::new_empty!(
30817                            BaseSocketSetKeepAliveRequest,
30818                            fidl::encoding::DefaultFuchsiaResourceDialect
30819                        );
30820                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetKeepAliveRequest>(&header, _body_bytes, handles, &mut req)?;
30821                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30822                        Ok(BaseSocketRequest::SetKeepAlive {
30823                            value: req.value,
30824
30825                            responder: BaseSocketSetKeepAliveResponder {
30826                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30827                                tx_id: header.tx_id,
30828                            },
30829                        })
30830                    }
30831                    0x2dd29d3215f2c9d2 => {
30832                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30833                        let mut req = fidl::new_empty!(
30834                            fidl::encoding::EmptyPayload,
30835                            fidl::encoding::DefaultFuchsiaResourceDialect
30836                        );
30837                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30838                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30839                        Ok(BaseSocketRequest::GetKeepAlive {
30840                            responder: BaseSocketGetKeepAliveResponder {
30841                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30842                                tx_id: header.tx_id,
30843                            },
30844                        })
30845                    }
30846                    0x3ecb49968bee439 => {
30847                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30848                        let mut req = fidl::new_empty!(
30849                            BaseSocketSetOutOfBandInlineRequest,
30850                            fidl::encoding::DefaultFuchsiaResourceDialect
30851                        );
30852                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetOutOfBandInlineRequest>(&header, _body_bytes, handles, &mut req)?;
30853                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30854                        Ok(BaseSocketRequest::SetOutOfBandInline {
30855                            value: req.value,
30856
30857                            responder: BaseSocketSetOutOfBandInlineResponder {
30858                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30859                                tx_id: header.tx_id,
30860                            },
30861                        })
30862                    }
30863                    0x348c1ab3aeca1745 => {
30864                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30865                        let mut req = fidl::new_empty!(
30866                            fidl::encoding::EmptyPayload,
30867                            fidl::encoding::DefaultFuchsiaResourceDialect
30868                        );
30869                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30870                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30871                        Ok(BaseSocketRequest::GetOutOfBandInline {
30872                            responder: BaseSocketGetOutOfBandInlineResponder {
30873                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30874                                tx_id: header.tx_id,
30875                            },
30876                        })
30877                    }
30878                    0x6bbf00c53a4c78c2 => {
30879                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30880                        let mut req = fidl::new_empty!(
30881                            BaseSocketSetNoCheckRequest,
30882                            fidl::encoding::DefaultFuchsiaResourceDialect
30883                        );
30884                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetNoCheckRequest>(&header, _body_bytes, handles, &mut req)?;
30885                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30886                        Ok(BaseSocketRequest::SetNoCheck {
30887                            value: req.value,
30888
30889                            responder: BaseSocketSetNoCheckResponder {
30890                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30891                                tx_id: header.tx_id,
30892                            },
30893                        })
30894                    }
30895                    0x2cd4249286417694 => {
30896                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30897                        let mut req = fidl::new_empty!(
30898                            fidl::encoding::EmptyPayload,
30899                            fidl::encoding::DefaultFuchsiaResourceDialect
30900                        );
30901                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30902                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30903                        Ok(BaseSocketRequest::GetNoCheck {
30904                            responder: BaseSocketGetNoCheckResponder {
30905                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30906                                tx_id: header.tx_id,
30907                            },
30908                        })
30909                    }
30910                    0x45386351246e998e => {
30911                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30912                        let mut req = fidl::new_empty!(
30913                            BaseSocketSetLingerRequest,
30914                            fidl::encoding::DefaultFuchsiaResourceDialect
30915                        );
30916                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetLingerRequest>(&header, _body_bytes, handles, &mut req)?;
30917                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30918                        Ok(BaseSocketRequest::SetLinger {
30919                            linger: req.linger,
30920                            length_secs: req.length_secs,
30921
30922                            responder: BaseSocketSetLingerResponder {
30923                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30924                                tx_id: header.tx_id,
30925                            },
30926                        })
30927                    }
30928                    0x48eb20fc5ccb0e45 => {
30929                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30930                        let mut req = fidl::new_empty!(
30931                            fidl::encoding::EmptyPayload,
30932                            fidl::encoding::DefaultFuchsiaResourceDialect
30933                        );
30934                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30935                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30936                        Ok(BaseSocketRequest::GetLinger {
30937                            responder: BaseSocketGetLingerResponder {
30938                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30939                                tx_id: header.tx_id,
30940                            },
30941                        })
30942                    }
30943                    0x547dc9cc0455189e => {
30944                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30945                        let mut req = fidl::new_empty!(
30946                            BaseSocketSetReusePortRequest,
30947                            fidl::encoding::DefaultFuchsiaResourceDialect
30948                        );
30949                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReusePortRequest>(&header, _body_bytes, handles, &mut req)?;
30950                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30951                        Ok(BaseSocketRequest::SetReusePort {
30952                            value: req.value,
30953
30954                            responder: BaseSocketSetReusePortResponder {
30955                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30956                                tx_id: header.tx_id,
30957                            },
30958                        })
30959                    }
30960                    0x24dd3e5cb36d9ccb => {
30961                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30962                        let mut req = fidl::new_empty!(
30963                            BaseSocketSetReusePortDeprecatedRequest,
30964                            fidl::encoding::DefaultFuchsiaResourceDialect
30965                        );
30966                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReusePortDeprecatedRequest>(&header, _body_bytes, handles, &mut req)?;
30967                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30968                        Ok(BaseSocketRequest::SetReusePortDeprecated {
30969                            value: req.value,
30970
30971                            responder: BaseSocketSetReusePortDeprecatedResponder {
30972                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30973                                tx_id: header.tx_id,
30974                            },
30975                        })
30976                    }
30977                    0x7a112c1ab54ff828 => {
30978                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30979                        let mut req = fidl::new_empty!(
30980                            fidl::encoding::EmptyPayload,
30981                            fidl::encoding::DefaultFuchsiaResourceDialect
30982                        );
30983                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30984                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30985                        Ok(BaseSocketRequest::GetReusePort {
30986                            responder: BaseSocketGetReusePortResponder {
30987                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30988                                tx_id: header.tx_id,
30989                            },
30990                        })
30991                    }
30992                    0x67ce6db6c2ec8966 => {
30993                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30994                        let mut req = fidl::new_empty!(
30995                            fidl::encoding::EmptyPayload,
30996                            fidl::encoding::DefaultFuchsiaResourceDialect
30997                        );
30998                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30999                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
31000                        Ok(BaseSocketRequest::GetAcceptConn {
31001                            responder: BaseSocketGetAcceptConnResponder {
31002                                control_handle: std::mem::ManuallyDrop::new(control_handle),
31003                                tx_id: header.tx_id,
31004                            },
31005                        })
31006                    }
31007                    0x2118b483f28aafc4 => {
31008                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
31009                        let mut req = fidl::new_empty!(
31010                            BaseSocketSetBindToDeviceRequest,
31011                            fidl::encoding::DefaultFuchsiaResourceDialect
31012                        );
31013                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToDeviceRequest>(&header, _body_bytes, handles, &mut req)?;
31014                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
31015                        Ok(BaseSocketRequest::SetBindToDevice {
31016                            value: req.value,
31017
31018                            responder: BaseSocketSetBindToDeviceResponder {
31019                                control_handle: std::mem::ManuallyDrop::new(control_handle),
31020                                tx_id: header.tx_id,
31021                            },
31022                        })
31023                    }
31024                    0x1ab1fbf0ef7906c8 => {
31025                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
31026                        let mut req = fidl::new_empty!(
31027                            fidl::encoding::EmptyPayload,
31028                            fidl::encoding::DefaultFuchsiaResourceDialect
31029                        );
31030                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
31031                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
31032                        Ok(BaseSocketRequest::GetBindToDevice {
31033                            responder: BaseSocketGetBindToDeviceResponder {
31034                                control_handle: std::mem::ManuallyDrop::new(control_handle),
31035                                tx_id: header.tx_id,
31036                            },
31037                        })
31038                    }
31039                    0x6e387a0def00821 => {
31040                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
31041                        let mut req = fidl::new_empty!(
31042                            BaseSocketSetBindToInterfaceIndexRequest,
31043                            fidl::encoding::DefaultFuchsiaResourceDialect
31044                        );
31045                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToInterfaceIndexRequest>(&header, _body_bytes, handles, &mut req)?;
31046                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
31047                        Ok(BaseSocketRequest::SetBindToInterfaceIndex {
31048                            value: req.value,
31049
31050                            responder: BaseSocketSetBindToInterfaceIndexResponder {
31051                                control_handle: std::mem::ManuallyDrop::new(control_handle),
31052                                tx_id: header.tx_id,
31053                            },
31054                        })
31055                    }
31056                    0x59c31dd3e3078295 => {
31057                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
31058                        let mut req = fidl::new_empty!(
31059                            fidl::encoding::EmptyPayload,
31060                            fidl::encoding::DefaultFuchsiaResourceDialect
31061                        );
31062                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
31063                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
31064                        Ok(BaseSocketRequest::GetBindToInterfaceIndex {
31065                            responder: BaseSocketGetBindToInterfaceIndexResponder {
31066                                control_handle: std::mem::ManuallyDrop::new(control_handle),
31067                                tx_id: header.tx_id,
31068                            },
31069                        })
31070                    }
31071                    0x285d6516c263d839 => {
31072                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
31073                        let mut req = fidl::new_empty!(
31074                            BaseSocketSetTimestampRequest,
31075                            fidl::encoding::DefaultFuchsiaResourceDialect
31076                        );
31077                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetTimestampRequest>(&header, _body_bytes, handles, &mut req)?;
31078                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
31079                        Ok(BaseSocketRequest::SetTimestamp {
31080                            value: req.value,
31081
31082                            responder: BaseSocketSetTimestampResponder {
31083                                control_handle: std::mem::ManuallyDrop::new(control_handle),
31084                                tx_id: header.tx_id,
31085                            },
31086                        })
31087                    }
31088                    0x49f2fffbbcc2bd27 => {
31089                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
31090                        let mut req = fidl::new_empty!(
31091                            fidl::encoding::EmptyPayload,
31092                            fidl::encoding::DefaultFuchsiaResourceDialect
31093                        );
31094                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
31095                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
31096                        Ok(BaseSocketRequest::GetTimestamp {
31097                            responder: BaseSocketGetTimestampResponder {
31098                                control_handle: std::mem::ManuallyDrop::new(control_handle),
31099                                tx_id: header.tx_id,
31100                            },
31101                        })
31102                    }
31103                    0x6ead6de09f653236 => {
31104                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
31105                        let mut req = fidl::new_empty!(
31106                            BaseSocketSetMarkRequest,
31107                            fidl::encoding::DefaultFuchsiaResourceDialect
31108                        );
31109                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
31110                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
31111                        Ok(BaseSocketRequest::SetMark {
31112                            domain: req.domain,
31113                            mark: req.mark,
31114
31115                            responder: BaseSocketSetMarkResponder {
31116                                control_handle: std::mem::ManuallyDrop::new(control_handle),
31117                                tx_id: header.tx_id,
31118                            },
31119                        })
31120                    }
31121                    0x57a2752c61d93d47 => {
31122                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
31123                        let mut req = fidl::new_empty!(
31124                            BaseSocketGetMarkRequest,
31125                            fidl::encoding::DefaultFuchsiaResourceDialect
31126                        );
31127                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketGetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
31128                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
31129                        Ok(BaseSocketRequest::GetMark {
31130                            domain: req.domain,
31131
31132                            responder: BaseSocketGetMarkResponder {
31133                                control_handle: std::mem::ManuallyDrop::new(control_handle),
31134                                tx_id: header.tx_id,
31135                            },
31136                        })
31137                    }
31138                    0x2c2f47fd8f924e52 => {
31139                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
31140                        let mut req = fidl::new_empty!(
31141                            fidl::encoding::EmptyPayload,
31142                            fidl::encoding::DefaultFuchsiaResourceDialect
31143                        );
31144                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
31145                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
31146                        Ok(BaseSocketRequest::GetCookie {
31147                            responder: BaseSocketGetCookieResponder {
31148                                control_handle: std::mem::ManuallyDrop::new(control_handle),
31149                                tx_id: header.tx_id,
31150                            },
31151                        })
31152                    }
31153                    _ => Err(fidl::Error::UnknownOrdinal {
31154                        ordinal: header.ordinal,
31155                        protocol_name:
31156                            <BaseSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
31157                    }),
31158                }))
31159            },
31160        )
31161    }
31162}
31163
31164/// A socket.
31165#[derive(Debug)]
31166pub enum BaseSocketRequest {
31167    Clone {
31168        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
31169        control_handle: BaseSocketControlHandle,
31170    },
31171    /// Terminates the connection.
31172    ///
31173    /// After calling `Close`, the client must not send any other requests.
31174    ///
31175    /// Servers, after sending the status response, should close the connection
31176    /// regardless of status and without sending an epitaph.
31177    ///
31178    /// Closing the client end of the channel should be semantically equivalent
31179    /// to calling `Close` without knowing when the close has completed or its
31180    /// status.
31181    Close {
31182        responder: BaseSocketCloseResponder,
31183    },
31184    Query {
31185        responder: BaseSocketQueryResponder,
31186    },
31187    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
31188    SetReuseAddress {
31189        value: bool,
31190        responder: BaseSocketSetReuseAddressResponder,
31191    },
31192    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
31193    GetReuseAddress {
31194        responder: BaseSocketGetReuseAddressResponder,
31195    },
31196    /// Get `SOL_SOCKET` -> `SO_ERROR`.
31197    /// Returns the last error if there is an error set on the socket.
31198    GetError {
31199        responder: BaseSocketGetErrorResponder,
31200    },
31201    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
31202    SetBroadcast {
31203        value: bool,
31204        responder: BaseSocketSetBroadcastResponder,
31205    },
31206    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
31207    GetBroadcast {
31208        responder: BaseSocketGetBroadcastResponder,
31209    },
31210    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
31211    SetSendBuffer {
31212        value_bytes: u64,
31213        responder: BaseSocketSetSendBufferResponder,
31214    },
31215    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
31216    GetSendBuffer {
31217        responder: BaseSocketGetSendBufferResponder,
31218    },
31219    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
31220    SetReceiveBuffer {
31221        value_bytes: u64,
31222        responder: BaseSocketSetReceiveBufferResponder,
31223    },
31224    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
31225    GetReceiveBuffer {
31226        responder: BaseSocketGetReceiveBufferResponder,
31227    },
31228    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
31229    SetKeepAlive {
31230        value: bool,
31231        responder: BaseSocketSetKeepAliveResponder,
31232    },
31233    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
31234    GetKeepAlive {
31235        responder: BaseSocketGetKeepAliveResponder,
31236    },
31237    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
31238    SetOutOfBandInline {
31239        value: bool,
31240        responder: BaseSocketSetOutOfBandInlineResponder,
31241    },
31242    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
31243    GetOutOfBandInline {
31244        responder: BaseSocketGetOutOfBandInlineResponder,
31245    },
31246    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
31247    SetNoCheck {
31248        value: bool,
31249        responder: BaseSocketSetNoCheckResponder,
31250    },
31251    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
31252    GetNoCheck {
31253        responder: BaseSocketGetNoCheckResponder,
31254    },
31255    /// Set `SOL_SOCKET` -> `SO_LINGER`.
31256    SetLinger {
31257        linger: bool,
31258        length_secs: u32,
31259        responder: BaseSocketSetLingerResponder,
31260    },
31261    /// Get `SOL_SOCKET` -> `SO_LINGER`.
31262    GetLinger {
31263        responder: BaseSocketGetLingerResponder,
31264    },
31265    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
31266    SetReusePort {
31267        value: ReusePortOption,
31268        responder: BaseSocketSetReusePortResponder,
31269    },
31270    SetReusePortDeprecated {
31271        value: bool,
31272        responder: BaseSocketSetReusePortDeprecatedResponder,
31273    },
31274    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
31275    GetReusePort {
31276        responder: BaseSocketGetReusePortResponder,
31277    },
31278    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
31279    GetAcceptConn {
31280        responder: BaseSocketGetAcceptConnResponder,
31281    },
31282    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
31283    SetBindToDevice {
31284        value: String,
31285        responder: BaseSocketSetBindToDeviceResponder,
31286    },
31287    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
31288    GetBindToDevice {
31289        responder: BaseSocketGetBindToDeviceResponder,
31290    },
31291    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
31292    /// If `value` is 0, this clears the bound interface.
31293    SetBindToInterfaceIndex {
31294        value: u64,
31295        responder: BaseSocketSetBindToInterfaceIndexResponder,
31296    },
31297    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
31298    GetBindToInterfaceIndex {
31299        responder: BaseSocketGetBindToInterfaceIndexResponder,
31300    },
31301    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
31302    SetTimestamp {
31303        value: TimestampOption,
31304        responder: BaseSocketSetTimestampResponder,
31305    },
31306    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
31307    GetTimestamp {
31308        responder: BaseSocketGetTimestampResponder,
31309    },
31310    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
31311    /// unlike the standard SO_MARK, this API has multiple mark domains and each
31312    /// mark can be set independently in each domain.
31313    SetMark {
31314        domain: fidl_fuchsia_net::MarkDomain,
31315        mark: OptionalUint32,
31316        responder: BaseSocketSetMarkResponder,
31317    },
31318    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
31319    /// unlike the standard SO_MARK, this API has multiple mark domains and each
31320    /// mark can be retrieved independently in each domain.
31321    GetMark {
31322        domain: fidl_fuchsia_net::MarkDomain,
31323        responder: BaseSocketGetMarkResponder,
31324    },
31325    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
31326    GetCookie {
31327        responder: BaseSocketGetCookieResponder,
31328    },
31329}
31330
31331impl BaseSocketRequest {
31332    #[allow(irrefutable_let_patterns)]
31333    pub fn into_clone(
31334        self,
31335    ) -> Option<(
31336        fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
31337        BaseSocketControlHandle,
31338    )> {
31339        if let BaseSocketRequest::Clone { request, control_handle } = self {
31340            Some((request, control_handle))
31341        } else {
31342            None
31343        }
31344    }
31345
31346    #[allow(irrefutable_let_patterns)]
31347    pub fn into_close(self) -> Option<(BaseSocketCloseResponder)> {
31348        if let BaseSocketRequest::Close { responder } = self { Some((responder)) } else { None }
31349    }
31350
31351    #[allow(irrefutable_let_patterns)]
31352    pub fn into_query(self) -> Option<(BaseSocketQueryResponder)> {
31353        if let BaseSocketRequest::Query { responder } = self { Some((responder)) } else { None }
31354    }
31355
31356    #[allow(irrefutable_let_patterns)]
31357    pub fn into_set_reuse_address(self) -> Option<(bool, BaseSocketSetReuseAddressResponder)> {
31358        if let BaseSocketRequest::SetReuseAddress { value, responder } = self {
31359            Some((value, responder))
31360        } else {
31361            None
31362        }
31363    }
31364
31365    #[allow(irrefutable_let_patterns)]
31366    pub fn into_get_reuse_address(self) -> Option<(BaseSocketGetReuseAddressResponder)> {
31367        if let BaseSocketRequest::GetReuseAddress { responder } = self {
31368            Some((responder))
31369        } else {
31370            None
31371        }
31372    }
31373
31374    #[allow(irrefutable_let_patterns)]
31375    pub fn into_get_error(self) -> Option<(BaseSocketGetErrorResponder)> {
31376        if let BaseSocketRequest::GetError { responder } = self { Some((responder)) } else { None }
31377    }
31378
31379    #[allow(irrefutable_let_patterns)]
31380    pub fn into_set_broadcast(self) -> Option<(bool, BaseSocketSetBroadcastResponder)> {
31381        if let BaseSocketRequest::SetBroadcast { value, responder } = self {
31382            Some((value, responder))
31383        } else {
31384            None
31385        }
31386    }
31387
31388    #[allow(irrefutable_let_patterns)]
31389    pub fn into_get_broadcast(self) -> Option<(BaseSocketGetBroadcastResponder)> {
31390        if let BaseSocketRequest::GetBroadcast { responder } = self {
31391            Some((responder))
31392        } else {
31393            None
31394        }
31395    }
31396
31397    #[allow(irrefutable_let_patterns)]
31398    pub fn into_set_send_buffer(self) -> Option<(u64, BaseSocketSetSendBufferResponder)> {
31399        if let BaseSocketRequest::SetSendBuffer { value_bytes, responder } = self {
31400            Some((value_bytes, responder))
31401        } else {
31402            None
31403        }
31404    }
31405
31406    #[allow(irrefutable_let_patterns)]
31407    pub fn into_get_send_buffer(self) -> Option<(BaseSocketGetSendBufferResponder)> {
31408        if let BaseSocketRequest::GetSendBuffer { responder } = self {
31409            Some((responder))
31410        } else {
31411            None
31412        }
31413    }
31414
31415    #[allow(irrefutable_let_patterns)]
31416    pub fn into_set_receive_buffer(self) -> Option<(u64, BaseSocketSetReceiveBufferResponder)> {
31417        if let BaseSocketRequest::SetReceiveBuffer { value_bytes, responder } = self {
31418            Some((value_bytes, responder))
31419        } else {
31420            None
31421        }
31422    }
31423
31424    #[allow(irrefutable_let_patterns)]
31425    pub fn into_get_receive_buffer(self) -> Option<(BaseSocketGetReceiveBufferResponder)> {
31426        if let BaseSocketRequest::GetReceiveBuffer { responder } = self {
31427            Some((responder))
31428        } else {
31429            None
31430        }
31431    }
31432
31433    #[allow(irrefutable_let_patterns)]
31434    pub fn into_set_keep_alive(self) -> Option<(bool, BaseSocketSetKeepAliveResponder)> {
31435        if let BaseSocketRequest::SetKeepAlive { value, responder } = self {
31436            Some((value, responder))
31437        } else {
31438            None
31439        }
31440    }
31441
31442    #[allow(irrefutable_let_patterns)]
31443    pub fn into_get_keep_alive(self) -> Option<(BaseSocketGetKeepAliveResponder)> {
31444        if let BaseSocketRequest::GetKeepAlive { responder } = self {
31445            Some((responder))
31446        } else {
31447            None
31448        }
31449    }
31450
31451    #[allow(irrefutable_let_patterns)]
31452    pub fn into_set_out_of_band_inline(
31453        self,
31454    ) -> Option<(bool, BaseSocketSetOutOfBandInlineResponder)> {
31455        if let BaseSocketRequest::SetOutOfBandInline { value, responder } = self {
31456            Some((value, responder))
31457        } else {
31458            None
31459        }
31460    }
31461
31462    #[allow(irrefutable_let_patterns)]
31463    pub fn into_get_out_of_band_inline(self) -> Option<(BaseSocketGetOutOfBandInlineResponder)> {
31464        if let BaseSocketRequest::GetOutOfBandInline { responder } = self {
31465            Some((responder))
31466        } else {
31467            None
31468        }
31469    }
31470
31471    #[allow(irrefutable_let_patterns)]
31472    pub fn into_set_no_check(self) -> Option<(bool, BaseSocketSetNoCheckResponder)> {
31473        if let BaseSocketRequest::SetNoCheck { value, responder } = self {
31474            Some((value, responder))
31475        } else {
31476            None
31477        }
31478    }
31479
31480    #[allow(irrefutable_let_patterns)]
31481    pub fn into_get_no_check(self) -> Option<(BaseSocketGetNoCheckResponder)> {
31482        if let BaseSocketRequest::GetNoCheck { responder } = self {
31483            Some((responder))
31484        } else {
31485            None
31486        }
31487    }
31488
31489    #[allow(irrefutable_let_patterns)]
31490    pub fn into_set_linger(self) -> Option<(bool, u32, BaseSocketSetLingerResponder)> {
31491        if let BaseSocketRequest::SetLinger { linger, length_secs, responder } = self {
31492            Some((linger, length_secs, responder))
31493        } else {
31494            None
31495        }
31496    }
31497
31498    #[allow(irrefutable_let_patterns)]
31499    pub fn into_get_linger(self) -> Option<(BaseSocketGetLingerResponder)> {
31500        if let BaseSocketRequest::GetLinger { responder } = self { Some((responder)) } else { None }
31501    }
31502
31503    #[allow(irrefutable_let_patterns)]
31504    pub fn into_set_reuse_port(self) -> Option<(ReusePortOption, BaseSocketSetReusePortResponder)> {
31505        if let BaseSocketRequest::SetReusePort { value, responder } = self {
31506            Some((value, responder))
31507        } else {
31508            None
31509        }
31510    }
31511
31512    #[allow(irrefutable_let_patterns)]
31513    pub fn into_set_reuse_port_deprecated(
31514        self,
31515    ) -> Option<(bool, BaseSocketSetReusePortDeprecatedResponder)> {
31516        if let BaseSocketRequest::SetReusePortDeprecated { value, responder } = self {
31517            Some((value, responder))
31518        } else {
31519            None
31520        }
31521    }
31522
31523    #[allow(irrefutable_let_patterns)]
31524    pub fn into_get_reuse_port(self) -> Option<(BaseSocketGetReusePortResponder)> {
31525        if let BaseSocketRequest::GetReusePort { responder } = self {
31526            Some((responder))
31527        } else {
31528            None
31529        }
31530    }
31531
31532    #[allow(irrefutable_let_patterns)]
31533    pub fn into_get_accept_conn(self) -> Option<(BaseSocketGetAcceptConnResponder)> {
31534        if let BaseSocketRequest::GetAcceptConn { responder } = self {
31535            Some((responder))
31536        } else {
31537            None
31538        }
31539    }
31540
31541    #[allow(irrefutable_let_patterns)]
31542    pub fn into_set_bind_to_device(self) -> Option<(String, BaseSocketSetBindToDeviceResponder)> {
31543        if let BaseSocketRequest::SetBindToDevice { value, responder } = self {
31544            Some((value, responder))
31545        } else {
31546            None
31547        }
31548    }
31549
31550    #[allow(irrefutable_let_patterns)]
31551    pub fn into_get_bind_to_device(self) -> Option<(BaseSocketGetBindToDeviceResponder)> {
31552        if let BaseSocketRequest::GetBindToDevice { responder } = self {
31553            Some((responder))
31554        } else {
31555            None
31556        }
31557    }
31558
31559    #[allow(irrefutable_let_patterns)]
31560    pub fn into_set_bind_to_interface_index(
31561        self,
31562    ) -> Option<(u64, BaseSocketSetBindToInterfaceIndexResponder)> {
31563        if let BaseSocketRequest::SetBindToInterfaceIndex { value, responder } = self {
31564            Some((value, responder))
31565        } else {
31566            None
31567        }
31568    }
31569
31570    #[allow(irrefutable_let_patterns)]
31571    pub fn into_get_bind_to_interface_index(
31572        self,
31573    ) -> Option<(BaseSocketGetBindToInterfaceIndexResponder)> {
31574        if let BaseSocketRequest::GetBindToInterfaceIndex { responder } = self {
31575            Some((responder))
31576        } else {
31577            None
31578        }
31579    }
31580
31581    #[allow(irrefutable_let_patterns)]
31582    pub fn into_set_timestamp(self) -> Option<(TimestampOption, BaseSocketSetTimestampResponder)> {
31583        if let BaseSocketRequest::SetTimestamp { value, responder } = self {
31584            Some((value, responder))
31585        } else {
31586            None
31587        }
31588    }
31589
31590    #[allow(irrefutable_let_patterns)]
31591    pub fn into_get_timestamp(self) -> Option<(BaseSocketGetTimestampResponder)> {
31592        if let BaseSocketRequest::GetTimestamp { responder } = self {
31593            Some((responder))
31594        } else {
31595            None
31596        }
31597    }
31598
31599    #[allow(irrefutable_let_patterns)]
31600    pub fn into_set_mark(
31601        self,
31602    ) -> Option<(fidl_fuchsia_net::MarkDomain, OptionalUint32, BaseSocketSetMarkResponder)> {
31603        if let BaseSocketRequest::SetMark { domain, mark, responder } = self {
31604            Some((domain, mark, responder))
31605        } else {
31606            None
31607        }
31608    }
31609
31610    #[allow(irrefutable_let_patterns)]
31611    pub fn into_get_mark(
31612        self,
31613    ) -> Option<(fidl_fuchsia_net::MarkDomain, BaseSocketGetMarkResponder)> {
31614        if let BaseSocketRequest::GetMark { domain, responder } = self {
31615            Some((domain, responder))
31616        } else {
31617            None
31618        }
31619    }
31620
31621    #[allow(irrefutable_let_patterns)]
31622    pub fn into_get_cookie(self) -> Option<(BaseSocketGetCookieResponder)> {
31623        if let BaseSocketRequest::GetCookie { responder } = self { Some((responder)) } else { None }
31624    }
31625
31626    /// Name of the method defined in FIDL
31627    pub fn method_name(&self) -> &'static str {
31628        match *self {
31629            BaseSocketRequest::Clone { .. } => "clone",
31630            BaseSocketRequest::Close { .. } => "close",
31631            BaseSocketRequest::Query { .. } => "query",
31632            BaseSocketRequest::SetReuseAddress { .. } => "set_reuse_address",
31633            BaseSocketRequest::GetReuseAddress { .. } => "get_reuse_address",
31634            BaseSocketRequest::GetError { .. } => "get_error",
31635            BaseSocketRequest::SetBroadcast { .. } => "set_broadcast",
31636            BaseSocketRequest::GetBroadcast { .. } => "get_broadcast",
31637            BaseSocketRequest::SetSendBuffer { .. } => "set_send_buffer",
31638            BaseSocketRequest::GetSendBuffer { .. } => "get_send_buffer",
31639            BaseSocketRequest::SetReceiveBuffer { .. } => "set_receive_buffer",
31640            BaseSocketRequest::GetReceiveBuffer { .. } => "get_receive_buffer",
31641            BaseSocketRequest::SetKeepAlive { .. } => "set_keep_alive",
31642            BaseSocketRequest::GetKeepAlive { .. } => "get_keep_alive",
31643            BaseSocketRequest::SetOutOfBandInline { .. } => "set_out_of_band_inline",
31644            BaseSocketRequest::GetOutOfBandInline { .. } => "get_out_of_band_inline",
31645            BaseSocketRequest::SetNoCheck { .. } => "set_no_check",
31646            BaseSocketRequest::GetNoCheck { .. } => "get_no_check",
31647            BaseSocketRequest::SetLinger { .. } => "set_linger",
31648            BaseSocketRequest::GetLinger { .. } => "get_linger",
31649            BaseSocketRequest::SetReusePort { .. } => "set_reuse_port",
31650            BaseSocketRequest::SetReusePortDeprecated { .. } => "set_reuse_port_deprecated",
31651            BaseSocketRequest::GetReusePort { .. } => "get_reuse_port",
31652            BaseSocketRequest::GetAcceptConn { .. } => "get_accept_conn",
31653            BaseSocketRequest::SetBindToDevice { .. } => "set_bind_to_device",
31654            BaseSocketRequest::GetBindToDevice { .. } => "get_bind_to_device",
31655            BaseSocketRequest::SetBindToInterfaceIndex { .. } => "set_bind_to_interface_index",
31656            BaseSocketRequest::GetBindToInterfaceIndex { .. } => "get_bind_to_interface_index",
31657            BaseSocketRequest::SetTimestamp { .. } => "set_timestamp",
31658            BaseSocketRequest::GetTimestamp { .. } => "get_timestamp",
31659            BaseSocketRequest::SetMark { .. } => "set_mark",
31660            BaseSocketRequest::GetMark { .. } => "get_mark",
31661            BaseSocketRequest::GetCookie { .. } => "get_cookie",
31662        }
31663    }
31664}
31665
31666#[derive(Debug, Clone)]
31667pub struct BaseSocketControlHandle {
31668    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
31669}
31670
31671impl fidl::endpoints::ControlHandle for BaseSocketControlHandle {
31672    fn shutdown(&self) {
31673        self.inner.shutdown()
31674    }
31675
31676    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
31677        self.inner.shutdown_with_epitaph(status)
31678    }
31679
31680    fn is_closed(&self) -> bool {
31681        self.inner.channel().is_closed()
31682    }
31683    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
31684        self.inner.channel().on_closed()
31685    }
31686
31687    #[cfg(target_os = "fuchsia")]
31688    fn signal_peer(
31689        &self,
31690        clear_mask: zx::Signals,
31691        set_mask: zx::Signals,
31692    ) -> Result<(), zx_status::Status> {
31693        use fidl::Peered;
31694        self.inner.channel().signal_peer(clear_mask, set_mask)
31695    }
31696}
31697
31698impl BaseSocketControlHandle {}
31699
31700#[must_use = "FIDL methods require a response to be sent"]
31701#[derive(Debug)]
31702pub struct BaseSocketCloseResponder {
31703    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
31704    tx_id: u32,
31705}
31706
31707/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
31708/// if the responder is dropped without sending a response, so that the client
31709/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
31710impl std::ops::Drop for BaseSocketCloseResponder {
31711    fn drop(&mut self) {
31712        self.control_handle.shutdown();
31713        // Safety: drops once, never accessed again
31714        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31715    }
31716}
31717
31718impl fidl::endpoints::Responder for BaseSocketCloseResponder {
31719    type ControlHandle = BaseSocketControlHandle;
31720
31721    fn control_handle(&self) -> &BaseSocketControlHandle {
31722        &self.control_handle
31723    }
31724
31725    fn drop_without_shutdown(mut self) {
31726        // Safety: drops once, never accessed again due to mem::forget
31727        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31728        // Prevent Drop from running (which would shut down the channel)
31729        std::mem::forget(self);
31730    }
31731}
31732
31733impl BaseSocketCloseResponder {
31734    /// Sends a response to the FIDL transaction.
31735    ///
31736    /// Sets the channel to shutdown if an error occurs.
31737    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
31738        let _result = self.send_raw(result);
31739        if _result.is_err() {
31740            self.control_handle.shutdown();
31741        }
31742        self.drop_without_shutdown();
31743        _result
31744    }
31745
31746    /// Similar to "send" but does not shutdown the channel if an error occurs.
31747    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
31748        let _result = self.send_raw(result);
31749        self.drop_without_shutdown();
31750        _result
31751    }
31752
31753    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
31754        self.control_handle
31755            .inner
31756            .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>>(
31757                result,
31758                self.tx_id,
31759                0x5ac5d459ad7f657e,
31760                fidl::encoding::DynamicFlags::empty(),
31761            )
31762    }
31763}
31764
31765#[must_use = "FIDL methods require a response to be sent"]
31766#[derive(Debug)]
31767pub struct BaseSocketQueryResponder {
31768    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
31769    tx_id: u32,
31770}
31771
31772/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
31773/// if the responder is dropped without sending a response, so that the client
31774/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
31775impl std::ops::Drop for BaseSocketQueryResponder {
31776    fn drop(&mut self) {
31777        self.control_handle.shutdown();
31778        // Safety: drops once, never accessed again
31779        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31780    }
31781}
31782
31783impl fidl::endpoints::Responder for BaseSocketQueryResponder {
31784    type ControlHandle = BaseSocketControlHandle;
31785
31786    fn control_handle(&self) -> &BaseSocketControlHandle {
31787        &self.control_handle
31788    }
31789
31790    fn drop_without_shutdown(mut self) {
31791        // Safety: drops once, never accessed again due to mem::forget
31792        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31793        // Prevent Drop from running (which would shut down the channel)
31794        std::mem::forget(self);
31795    }
31796}
31797
31798impl BaseSocketQueryResponder {
31799    /// Sends a response to the FIDL transaction.
31800    ///
31801    /// Sets the channel to shutdown if an error occurs.
31802    pub fn send(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
31803        let _result = self.send_raw(protocol);
31804        if _result.is_err() {
31805            self.control_handle.shutdown();
31806        }
31807        self.drop_without_shutdown();
31808        _result
31809    }
31810
31811    /// Similar to "send" but does not shutdown the channel if an error occurs.
31812    pub fn send_no_shutdown_on_err(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
31813        let _result = self.send_raw(protocol);
31814        self.drop_without_shutdown();
31815        _result
31816    }
31817
31818    fn send_raw(&self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
31819        self.control_handle.inner.send::<fidl_fuchsia_unknown::QueryableQueryResponse>(
31820            (protocol,),
31821            self.tx_id,
31822            0x2658edee9decfc06,
31823            fidl::encoding::DynamicFlags::empty(),
31824        )
31825    }
31826}
31827
31828#[must_use = "FIDL methods require a response to be sent"]
31829#[derive(Debug)]
31830pub struct BaseSocketSetReuseAddressResponder {
31831    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
31832    tx_id: u32,
31833}
31834
31835/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
31836/// if the responder is dropped without sending a response, so that the client
31837/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
31838impl std::ops::Drop for BaseSocketSetReuseAddressResponder {
31839    fn drop(&mut self) {
31840        self.control_handle.shutdown();
31841        // Safety: drops once, never accessed again
31842        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31843    }
31844}
31845
31846impl fidl::endpoints::Responder for BaseSocketSetReuseAddressResponder {
31847    type ControlHandle = BaseSocketControlHandle;
31848
31849    fn control_handle(&self) -> &BaseSocketControlHandle {
31850        &self.control_handle
31851    }
31852
31853    fn drop_without_shutdown(mut self) {
31854        // Safety: drops once, never accessed again due to mem::forget
31855        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31856        // Prevent Drop from running (which would shut down the channel)
31857        std::mem::forget(self);
31858    }
31859}
31860
31861impl BaseSocketSetReuseAddressResponder {
31862    /// Sends a response to the FIDL transaction.
31863    ///
31864    /// Sets the channel to shutdown if an error occurs.
31865    pub fn send(
31866        self,
31867        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31868    ) -> Result<(), fidl::Error> {
31869        let _result = self.send_raw(result);
31870        if _result.is_err() {
31871            self.control_handle.shutdown();
31872        }
31873        self.drop_without_shutdown();
31874        _result
31875    }
31876
31877    /// Similar to "send" but does not shutdown the channel if an error occurs.
31878    pub fn send_no_shutdown_on_err(
31879        self,
31880        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31881    ) -> Result<(), fidl::Error> {
31882        let _result = self.send_raw(result);
31883        self.drop_without_shutdown();
31884        _result
31885    }
31886
31887    fn send_raw(
31888        &self,
31889        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31890    ) -> Result<(), fidl::Error> {
31891        self.control_handle.inner.send::<fidl::encoding::ResultType<
31892            fidl::encoding::EmptyStruct,
31893            fidl_fuchsia_posix::Errno,
31894        >>(
31895            result,
31896            self.tx_id,
31897            0x1fd74ee8b9a4a876,
31898            fidl::encoding::DynamicFlags::empty(),
31899        )
31900    }
31901}
31902
31903#[must_use = "FIDL methods require a response to be sent"]
31904#[derive(Debug)]
31905pub struct BaseSocketGetReuseAddressResponder {
31906    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
31907    tx_id: u32,
31908}
31909
31910/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
31911/// if the responder is dropped without sending a response, so that the client
31912/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
31913impl std::ops::Drop for BaseSocketGetReuseAddressResponder {
31914    fn drop(&mut self) {
31915        self.control_handle.shutdown();
31916        // Safety: drops once, never accessed again
31917        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31918    }
31919}
31920
31921impl fidl::endpoints::Responder for BaseSocketGetReuseAddressResponder {
31922    type ControlHandle = BaseSocketControlHandle;
31923
31924    fn control_handle(&self) -> &BaseSocketControlHandle {
31925        &self.control_handle
31926    }
31927
31928    fn drop_without_shutdown(mut self) {
31929        // Safety: drops once, never accessed again due to mem::forget
31930        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31931        // Prevent Drop from running (which would shut down the channel)
31932        std::mem::forget(self);
31933    }
31934}
31935
31936impl BaseSocketGetReuseAddressResponder {
31937    /// Sends a response to the FIDL transaction.
31938    ///
31939    /// Sets the channel to shutdown if an error occurs.
31940    pub fn send(
31941        self,
31942        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
31943    ) -> Result<(), fidl::Error> {
31944        let _result = self.send_raw(result);
31945        if _result.is_err() {
31946            self.control_handle.shutdown();
31947        }
31948        self.drop_without_shutdown();
31949        _result
31950    }
31951
31952    /// Similar to "send" but does not shutdown the channel if an error occurs.
31953    pub fn send_no_shutdown_on_err(
31954        self,
31955        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
31956    ) -> Result<(), fidl::Error> {
31957        let _result = self.send_raw(result);
31958        self.drop_without_shutdown();
31959        _result
31960    }
31961
31962    fn send_raw(
31963        &self,
31964        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
31965    ) -> Result<(), fidl::Error> {
31966        self.control_handle.inner.send::<fidl::encoding::ResultType<
31967            BaseSocketGetReuseAddressResponse,
31968            fidl_fuchsia_posix::Errno,
31969        >>(
31970            result.map(|value| (value,)),
31971            self.tx_id,
31972            0x67b7206b8d1bc0a5,
31973            fidl::encoding::DynamicFlags::empty(),
31974        )
31975    }
31976}
31977
31978#[must_use = "FIDL methods require a response to be sent"]
31979#[derive(Debug)]
31980pub struct BaseSocketGetErrorResponder {
31981    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
31982    tx_id: u32,
31983}
31984
31985/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
31986/// if the responder is dropped without sending a response, so that the client
31987/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
31988impl std::ops::Drop for BaseSocketGetErrorResponder {
31989    fn drop(&mut self) {
31990        self.control_handle.shutdown();
31991        // Safety: drops once, never accessed again
31992        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31993    }
31994}
31995
31996impl fidl::endpoints::Responder for BaseSocketGetErrorResponder {
31997    type ControlHandle = BaseSocketControlHandle;
31998
31999    fn control_handle(&self) -> &BaseSocketControlHandle {
32000        &self.control_handle
32001    }
32002
32003    fn drop_without_shutdown(mut self) {
32004        // Safety: drops once, never accessed again due to mem::forget
32005        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32006        // Prevent Drop from running (which would shut down the channel)
32007        std::mem::forget(self);
32008    }
32009}
32010
32011impl BaseSocketGetErrorResponder {
32012    /// Sends a response to the FIDL transaction.
32013    ///
32014    /// Sets the channel to shutdown if an error occurs.
32015    pub fn send(
32016        self,
32017        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32018    ) -> Result<(), fidl::Error> {
32019        let _result = self.send_raw(result);
32020        if _result.is_err() {
32021            self.control_handle.shutdown();
32022        }
32023        self.drop_without_shutdown();
32024        _result
32025    }
32026
32027    /// Similar to "send" but does not shutdown the channel if an error occurs.
32028    pub fn send_no_shutdown_on_err(
32029        self,
32030        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32031    ) -> Result<(), fidl::Error> {
32032        let _result = self.send_raw(result);
32033        self.drop_without_shutdown();
32034        _result
32035    }
32036
32037    fn send_raw(
32038        &self,
32039        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32040    ) -> Result<(), fidl::Error> {
32041        self.control_handle.inner.send::<fidl::encoding::ResultType<
32042            fidl::encoding::EmptyStruct,
32043            fidl_fuchsia_posix::Errno,
32044        >>(
32045            result,
32046            self.tx_id,
32047            0x5aad39b33e5f6ebb,
32048            fidl::encoding::DynamicFlags::empty(),
32049        )
32050    }
32051}
32052
32053#[must_use = "FIDL methods require a response to be sent"]
32054#[derive(Debug)]
32055pub struct BaseSocketSetBroadcastResponder {
32056    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32057    tx_id: u32,
32058}
32059
32060/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32061/// if the responder is dropped without sending a response, so that the client
32062/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32063impl std::ops::Drop for BaseSocketSetBroadcastResponder {
32064    fn drop(&mut self) {
32065        self.control_handle.shutdown();
32066        // Safety: drops once, never accessed again
32067        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32068    }
32069}
32070
32071impl fidl::endpoints::Responder for BaseSocketSetBroadcastResponder {
32072    type ControlHandle = BaseSocketControlHandle;
32073
32074    fn control_handle(&self) -> &BaseSocketControlHandle {
32075        &self.control_handle
32076    }
32077
32078    fn drop_without_shutdown(mut self) {
32079        // Safety: drops once, never accessed again due to mem::forget
32080        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32081        // Prevent Drop from running (which would shut down the channel)
32082        std::mem::forget(self);
32083    }
32084}
32085
32086impl BaseSocketSetBroadcastResponder {
32087    /// Sends a response to the FIDL transaction.
32088    ///
32089    /// Sets the channel to shutdown if an error occurs.
32090    pub fn send(
32091        self,
32092        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32093    ) -> Result<(), fidl::Error> {
32094        let _result = self.send_raw(result);
32095        if _result.is_err() {
32096            self.control_handle.shutdown();
32097        }
32098        self.drop_without_shutdown();
32099        _result
32100    }
32101
32102    /// Similar to "send" but does not shutdown the channel if an error occurs.
32103    pub fn send_no_shutdown_on_err(
32104        self,
32105        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32106    ) -> Result<(), fidl::Error> {
32107        let _result = self.send_raw(result);
32108        self.drop_without_shutdown();
32109        _result
32110    }
32111
32112    fn send_raw(
32113        &self,
32114        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32115    ) -> Result<(), fidl::Error> {
32116        self.control_handle.inner.send::<fidl::encoding::ResultType<
32117            fidl::encoding::EmptyStruct,
32118            fidl_fuchsia_posix::Errno,
32119        >>(
32120            result,
32121            self.tx_id,
32122            0x6023e081ce3cd947,
32123            fidl::encoding::DynamicFlags::empty(),
32124        )
32125    }
32126}
32127
32128#[must_use = "FIDL methods require a response to be sent"]
32129#[derive(Debug)]
32130pub struct BaseSocketGetBroadcastResponder {
32131    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32132    tx_id: u32,
32133}
32134
32135/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32136/// if the responder is dropped without sending a response, so that the client
32137/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32138impl std::ops::Drop for BaseSocketGetBroadcastResponder {
32139    fn drop(&mut self) {
32140        self.control_handle.shutdown();
32141        // Safety: drops once, never accessed again
32142        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32143    }
32144}
32145
32146impl fidl::endpoints::Responder for BaseSocketGetBroadcastResponder {
32147    type ControlHandle = BaseSocketControlHandle;
32148
32149    fn control_handle(&self) -> &BaseSocketControlHandle {
32150        &self.control_handle
32151    }
32152
32153    fn drop_without_shutdown(mut self) {
32154        // Safety: drops once, never accessed again due to mem::forget
32155        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32156        // Prevent Drop from running (which would shut down the channel)
32157        std::mem::forget(self);
32158    }
32159}
32160
32161impl BaseSocketGetBroadcastResponder {
32162    /// Sends a response to the FIDL transaction.
32163    ///
32164    /// Sets the channel to shutdown if an error occurs.
32165    pub fn send(
32166        self,
32167        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32168    ) -> Result<(), fidl::Error> {
32169        let _result = self.send_raw(result);
32170        if _result.is_err() {
32171            self.control_handle.shutdown();
32172        }
32173        self.drop_without_shutdown();
32174        _result
32175    }
32176
32177    /// Similar to "send" but does not shutdown the channel if an error occurs.
32178    pub fn send_no_shutdown_on_err(
32179        self,
32180        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32181    ) -> Result<(), fidl::Error> {
32182        let _result = self.send_raw(result);
32183        self.drop_without_shutdown();
32184        _result
32185    }
32186
32187    fn send_raw(
32188        &self,
32189        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32190    ) -> Result<(), fidl::Error> {
32191        self.control_handle.inner.send::<fidl::encoding::ResultType<
32192            BaseSocketGetBroadcastResponse,
32193            fidl_fuchsia_posix::Errno,
32194        >>(
32195            result.map(|value| (value,)),
32196            self.tx_id,
32197            0x68796fc556f9780d,
32198            fidl::encoding::DynamicFlags::empty(),
32199        )
32200    }
32201}
32202
32203#[must_use = "FIDL methods require a response to be sent"]
32204#[derive(Debug)]
32205pub struct BaseSocketSetSendBufferResponder {
32206    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32207    tx_id: u32,
32208}
32209
32210/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32211/// if the responder is dropped without sending a response, so that the client
32212/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32213impl std::ops::Drop for BaseSocketSetSendBufferResponder {
32214    fn drop(&mut self) {
32215        self.control_handle.shutdown();
32216        // Safety: drops once, never accessed again
32217        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32218    }
32219}
32220
32221impl fidl::endpoints::Responder for BaseSocketSetSendBufferResponder {
32222    type ControlHandle = BaseSocketControlHandle;
32223
32224    fn control_handle(&self) -> &BaseSocketControlHandle {
32225        &self.control_handle
32226    }
32227
32228    fn drop_without_shutdown(mut self) {
32229        // Safety: drops once, never accessed again due to mem::forget
32230        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32231        // Prevent Drop from running (which would shut down the channel)
32232        std::mem::forget(self);
32233    }
32234}
32235
32236impl BaseSocketSetSendBufferResponder {
32237    /// Sends a response to the FIDL transaction.
32238    ///
32239    /// Sets the channel to shutdown if an error occurs.
32240    pub fn send(
32241        self,
32242        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32243    ) -> Result<(), fidl::Error> {
32244        let _result = self.send_raw(result);
32245        if _result.is_err() {
32246            self.control_handle.shutdown();
32247        }
32248        self.drop_without_shutdown();
32249        _result
32250    }
32251
32252    /// Similar to "send" but does not shutdown the channel if an error occurs.
32253    pub fn send_no_shutdown_on_err(
32254        self,
32255        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32256    ) -> Result<(), fidl::Error> {
32257        let _result = self.send_raw(result);
32258        self.drop_without_shutdown();
32259        _result
32260    }
32261
32262    fn send_raw(
32263        &self,
32264        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32265    ) -> Result<(), fidl::Error> {
32266        self.control_handle.inner.send::<fidl::encoding::ResultType<
32267            fidl::encoding::EmptyStruct,
32268            fidl_fuchsia_posix::Errno,
32269        >>(
32270            result,
32271            self.tx_id,
32272            0x756eac32d73a7a70,
32273            fidl::encoding::DynamicFlags::empty(),
32274        )
32275    }
32276}
32277
32278#[must_use = "FIDL methods require a response to be sent"]
32279#[derive(Debug)]
32280pub struct BaseSocketGetSendBufferResponder {
32281    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32282    tx_id: u32,
32283}
32284
32285/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32286/// if the responder is dropped without sending a response, so that the client
32287/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32288impl std::ops::Drop for BaseSocketGetSendBufferResponder {
32289    fn drop(&mut self) {
32290        self.control_handle.shutdown();
32291        // Safety: drops once, never accessed again
32292        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32293    }
32294}
32295
32296impl fidl::endpoints::Responder for BaseSocketGetSendBufferResponder {
32297    type ControlHandle = BaseSocketControlHandle;
32298
32299    fn control_handle(&self) -> &BaseSocketControlHandle {
32300        &self.control_handle
32301    }
32302
32303    fn drop_without_shutdown(mut self) {
32304        // Safety: drops once, never accessed again due to mem::forget
32305        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32306        // Prevent Drop from running (which would shut down the channel)
32307        std::mem::forget(self);
32308    }
32309}
32310
32311impl BaseSocketGetSendBufferResponder {
32312    /// Sends a response to the FIDL transaction.
32313    ///
32314    /// Sets the channel to shutdown if an error occurs.
32315    pub fn send(
32316        self,
32317        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
32318    ) -> Result<(), fidl::Error> {
32319        let _result = self.send_raw(result);
32320        if _result.is_err() {
32321            self.control_handle.shutdown();
32322        }
32323        self.drop_without_shutdown();
32324        _result
32325    }
32326
32327    /// Similar to "send" but does not shutdown the channel if an error occurs.
32328    pub fn send_no_shutdown_on_err(
32329        self,
32330        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
32331    ) -> Result<(), fidl::Error> {
32332        let _result = self.send_raw(result);
32333        self.drop_without_shutdown();
32334        _result
32335    }
32336
32337    fn send_raw(
32338        &self,
32339        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
32340    ) -> Result<(), fidl::Error> {
32341        self.control_handle.inner.send::<fidl::encoding::ResultType<
32342            BaseSocketGetSendBufferResponse,
32343            fidl_fuchsia_posix::Errno,
32344        >>(
32345            result.map(|value_bytes| (value_bytes,)),
32346            self.tx_id,
32347            0x78a52fd9c7b2410b,
32348            fidl::encoding::DynamicFlags::empty(),
32349        )
32350    }
32351}
32352
32353#[must_use = "FIDL methods require a response to be sent"]
32354#[derive(Debug)]
32355pub struct BaseSocketSetReceiveBufferResponder {
32356    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32357    tx_id: u32,
32358}
32359
32360/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32361/// if the responder is dropped without sending a response, so that the client
32362/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32363impl std::ops::Drop for BaseSocketSetReceiveBufferResponder {
32364    fn drop(&mut self) {
32365        self.control_handle.shutdown();
32366        // Safety: drops once, never accessed again
32367        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32368    }
32369}
32370
32371impl fidl::endpoints::Responder for BaseSocketSetReceiveBufferResponder {
32372    type ControlHandle = BaseSocketControlHandle;
32373
32374    fn control_handle(&self) -> &BaseSocketControlHandle {
32375        &self.control_handle
32376    }
32377
32378    fn drop_without_shutdown(mut self) {
32379        // Safety: drops once, never accessed again due to mem::forget
32380        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32381        // Prevent Drop from running (which would shut down the channel)
32382        std::mem::forget(self);
32383    }
32384}
32385
32386impl BaseSocketSetReceiveBufferResponder {
32387    /// Sends a response to the FIDL transaction.
32388    ///
32389    /// Sets the channel to shutdown if an error occurs.
32390    pub fn send(
32391        self,
32392        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32393    ) -> Result<(), fidl::Error> {
32394        let _result = self.send_raw(result);
32395        if _result.is_err() {
32396            self.control_handle.shutdown();
32397        }
32398        self.drop_without_shutdown();
32399        _result
32400    }
32401
32402    /// Similar to "send" but does not shutdown the channel if an error occurs.
32403    pub fn send_no_shutdown_on_err(
32404        self,
32405        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32406    ) -> Result<(), fidl::Error> {
32407        let _result = self.send_raw(result);
32408        self.drop_without_shutdown();
32409        _result
32410    }
32411
32412    fn send_raw(
32413        &self,
32414        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32415    ) -> Result<(), fidl::Error> {
32416        self.control_handle.inner.send::<fidl::encoding::ResultType<
32417            fidl::encoding::EmptyStruct,
32418            fidl_fuchsia_posix::Errno,
32419        >>(
32420            result,
32421            self.tx_id,
32422            0x6b0cf2f1919c7001,
32423            fidl::encoding::DynamicFlags::empty(),
32424        )
32425    }
32426}
32427
32428#[must_use = "FIDL methods require a response to be sent"]
32429#[derive(Debug)]
32430pub struct BaseSocketGetReceiveBufferResponder {
32431    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32432    tx_id: u32,
32433}
32434
32435/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32436/// if the responder is dropped without sending a response, so that the client
32437/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32438impl std::ops::Drop for BaseSocketGetReceiveBufferResponder {
32439    fn drop(&mut self) {
32440        self.control_handle.shutdown();
32441        // Safety: drops once, never accessed again
32442        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32443    }
32444}
32445
32446impl fidl::endpoints::Responder for BaseSocketGetReceiveBufferResponder {
32447    type ControlHandle = BaseSocketControlHandle;
32448
32449    fn control_handle(&self) -> &BaseSocketControlHandle {
32450        &self.control_handle
32451    }
32452
32453    fn drop_without_shutdown(mut self) {
32454        // Safety: drops once, never accessed again due to mem::forget
32455        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32456        // Prevent Drop from running (which would shut down the channel)
32457        std::mem::forget(self);
32458    }
32459}
32460
32461impl BaseSocketGetReceiveBufferResponder {
32462    /// Sends a response to the FIDL transaction.
32463    ///
32464    /// Sets the channel to shutdown if an error occurs.
32465    pub fn send(
32466        self,
32467        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
32468    ) -> Result<(), fidl::Error> {
32469        let _result = self.send_raw(result);
32470        if _result.is_err() {
32471            self.control_handle.shutdown();
32472        }
32473        self.drop_without_shutdown();
32474        _result
32475    }
32476
32477    /// Similar to "send" but does not shutdown the channel if an error occurs.
32478    pub fn send_no_shutdown_on_err(
32479        self,
32480        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
32481    ) -> Result<(), fidl::Error> {
32482        let _result = self.send_raw(result);
32483        self.drop_without_shutdown();
32484        _result
32485    }
32486
32487    fn send_raw(
32488        &self,
32489        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
32490    ) -> Result<(), fidl::Error> {
32491        self.control_handle.inner.send::<fidl::encoding::ResultType<
32492            BaseSocketGetReceiveBufferResponse,
32493            fidl_fuchsia_posix::Errno,
32494        >>(
32495            result.map(|value_bytes| (value_bytes,)),
32496            self.tx_id,
32497            0x14c1a4b64f709e5c,
32498            fidl::encoding::DynamicFlags::empty(),
32499        )
32500    }
32501}
32502
32503#[must_use = "FIDL methods require a response to be sent"]
32504#[derive(Debug)]
32505pub struct BaseSocketSetKeepAliveResponder {
32506    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32507    tx_id: u32,
32508}
32509
32510/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32511/// if the responder is dropped without sending a response, so that the client
32512/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32513impl std::ops::Drop for BaseSocketSetKeepAliveResponder {
32514    fn drop(&mut self) {
32515        self.control_handle.shutdown();
32516        // Safety: drops once, never accessed again
32517        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32518    }
32519}
32520
32521impl fidl::endpoints::Responder for BaseSocketSetKeepAliveResponder {
32522    type ControlHandle = BaseSocketControlHandle;
32523
32524    fn control_handle(&self) -> &BaseSocketControlHandle {
32525        &self.control_handle
32526    }
32527
32528    fn drop_without_shutdown(mut self) {
32529        // Safety: drops once, never accessed again due to mem::forget
32530        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32531        // Prevent Drop from running (which would shut down the channel)
32532        std::mem::forget(self);
32533    }
32534}
32535
32536impl BaseSocketSetKeepAliveResponder {
32537    /// Sends a response to the FIDL transaction.
32538    ///
32539    /// Sets the channel to shutdown if an error occurs.
32540    pub fn send(
32541        self,
32542        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32543    ) -> Result<(), fidl::Error> {
32544        let _result = self.send_raw(result);
32545        if _result.is_err() {
32546            self.control_handle.shutdown();
32547        }
32548        self.drop_without_shutdown();
32549        _result
32550    }
32551
32552    /// Similar to "send" but does not shutdown the channel if an error occurs.
32553    pub fn send_no_shutdown_on_err(
32554        self,
32555        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32556    ) -> Result<(), fidl::Error> {
32557        let _result = self.send_raw(result);
32558        self.drop_without_shutdown();
32559        _result
32560    }
32561
32562    fn send_raw(
32563        &self,
32564        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32565    ) -> Result<(), fidl::Error> {
32566        self.control_handle.inner.send::<fidl::encoding::ResultType<
32567            fidl::encoding::EmptyStruct,
32568            fidl_fuchsia_posix::Errno,
32569        >>(
32570            result,
32571            self.tx_id,
32572            0x572df8f0b920d2c7,
32573            fidl::encoding::DynamicFlags::empty(),
32574        )
32575    }
32576}
32577
32578#[must_use = "FIDL methods require a response to be sent"]
32579#[derive(Debug)]
32580pub struct BaseSocketGetKeepAliveResponder {
32581    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32582    tx_id: u32,
32583}
32584
32585/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32586/// if the responder is dropped without sending a response, so that the client
32587/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32588impl std::ops::Drop for BaseSocketGetKeepAliveResponder {
32589    fn drop(&mut self) {
32590        self.control_handle.shutdown();
32591        // Safety: drops once, never accessed again
32592        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32593    }
32594}
32595
32596impl fidl::endpoints::Responder for BaseSocketGetKeepAliveResponder {
32597    type ControlHandle = BaseSocketControlHandle;
32598
32599    fn control_handle(&self) -> &BaseSocketControlHandle {
32600        &self.control_handle
32601    }
32602
32603    fn drop_without_shutdown(mut self) {
32604        // Safety: drops once, never accessed again due to mem::forget
32605        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32606        // Prevent Drop from running (which would shut down the channel)
32607        std::mem::forget(self);
32608    }
32609}
32610
32611impl BaseSocketGetKeepAliveResponder {
32612    /// Sends a response to the FIDL transaction.
32613    ///
32614    /// Sets the channel to shutdown if an error occurs.
32615    pub fn send(
32616        self,
32617        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32618    ) -> Result<(), fidl::Error> {
32619        let _result = self.send_raw(result);
32620        if _result.is_err() {
32621            self.control_handle.shutdown();
32622        }
32623        self.drop_without_shutdown();
32624        _result
32625    }
32626
32627    /// Similar to "send" but does not shutdown the channel if an error occurs.
32628    pub fn send_no_shutdown_on_err(
32629        self,
32630        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32631    ) -> Result<(), fidl::Error> {
32632        let _result = self.send_raw(result);
32633        self.drop_without_shutdown();
32634        _result
32635    }
32636
32637    fn send_raw(
32638        &self,
32639        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32640    ) -> Result<(), fidl::Error> {
32641        self.control_handle.inner.send::<fidl::encoding::ResultType<
32642            BaseSocketGetKeepAliveResponse,
32643            fidl_fuchsia_posix::Errno,
32644        >>(
32645            result.map(|value| (value,)),
32646            self.tx_id,
32647            0x2dd29d3215f2c9d2,
32648            fidl::encoding::DynamicFlags::empty(),
32649        )
32650    }
32651}
32652
32653#[must_use = "FIDL methods require a response to be sent"]
32654#[derive(Debug)]
32655pub struct BaseSocketSetOutOfBandInlineResponder {
32656    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32657    tx_id: u32,
32658}
32659
32660/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32661/// if the responder is dropped without sending a response, so that the client
32662/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32663impl std::ops::Drop for BaseSocketSetOutOfBandInlineResponder {
32664    fn drop(&mut self) {
32665        self.control_handle.shutdown();
32666        // Safety: drops once, never accessed again
32667        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32668    }
32669}
32670
32671impl fidl::endpoints::Responder for BaseSocketSetOutOfBandInlineResponder {
32672    type ControlHandle = BaseSocketControlHandle;
32673
32674    fn control_handle(&self) -> &BaseSocketControlHandle {
32675        &self.control_handle
32676    }
32677
32678    fn drop_without_shutdown(mut self) {
32679        // Safety: drops once, never accessed again due to mem::forget
32680        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32681        // Prevent Drop from running (which would shut down the channel)
32682        std::mem::forget(self);
32683    }
32684}
32685
32686impl BaseSocketSetOutOfBandInlineResponder {
32687    /// Sends a response to the FIDL transaction.
32688    ///
32689    /// Sets the channel to shutdown if an error occurs.
32690    pub fn send(
32691        self,
32692        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32693    ) -> Result<(), fidl::Error> {
32694        let _result = self.send_raw(result);
32695        if _result.is_err() {
32696            self.control_handle.shutdown();
32697        }
32698        self.drop_without_shutdown();
32699        _result
32700    }
32701
32702    /// Similar to "send" but does not shutdown the channel if an error occurs.
32703    pub fn send_no_shutdown_on_err(
32704        self,
32705        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32706    ) -> Result<(), fidl::Error> {
32707        let _result = self.send_raw(result);
32708        self.drop_without_shutdown();
32709        _result
32710    }
32711
32712    fn send_raw(
32713        &self,
32714        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32715    ) -> Result<(), fidl::Error> {
32716        self.control_handle.inner.send::<fidl::encoding::ResultType<
32717            fidl::encoding::EmptyStruct,
32718            fidl_fuchsia_posix::Errno,
32719        >>(
32720            result,
32721            self.tx_id,
32722            0x3ecb49968bee439,
32723            fidl::encoding::DynamicFlags::empty(),
32724        )
32725    }
32726}
32727
32728#[must_use = "FIDL methods require a response to be sent"]
32729#[derive(Debug)]
32730pub struct BaseSocketGetOutOfBandInlineResponder {
32731    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32732    tx_id: u32,
32733}
32734
32735/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32736/// if the responder is dropped without sending a response, so that the client
32737/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32738impl std::ops::Drop for BaseSocketGetOutOfBandInlineResponder {
32739    fn drop(&mut self) {
32740        self.control_handle.shutdown();
32741        // Safety: drops once, never accessed again
32742        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32743    }
32744}
32745
32746impl fidl::endpoints::Responder for BaseSocketGetOutOfBandInlineResponder {
32747    type ControlHandle = BaseSocketControlHandle;
32748
32749    fn control_handle(&self) -> &BaseSocketControlHandle {
32750        &self.control_handle
32751    }
32752
32753    fn drop_without_shutdown(mut self) {
32754        // Safety: drops once, never accessed again due to mem::forget
32755        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32756        // Prevent Drop from running (which would shut down the channel)
32757        std::mem::forget(self);
32758    }
32759}
32760
32761impl BaseSocketGetOutOfBandInlineResponder {
32762    /// Sends a response to the FIDL transaction.
32763    ///
32764    /// Sets the channel to shutdown if an error occurs.
32765    pub fn send(
32766        self,
32767        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32768    ) -> Result<(), fidl::Error> {
32769        let _result = self.send_raw(result);
32770        if _result.is_err() {
32771            self.control_handle.shutdown();
32772        }
32773        self.drop_without_shutdown();
32774        _result
32775    }
32776
32777    /// Similar to "send" but does not shutdown the channel if an error occurs.
32778    pub fn send_no_shutdown_on_err(
32779        self,
32780        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32781    ) -> Result<(), fidl::Error> {
32782        let _result = self.send_raw(result);
32783        self.drop_without_shutdown();
32784        _result
32785    }
32786
32787    fn send_raw(
32788        &self,
32789        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32790    ) -> Result<(), fidl::Error> {
32791        self.control_handle.inner.send::<fidl::encoding::ResultType<
32792            BaseSocketGetOutOfBandInlineResponse,
32793            fidl_fuchsia_posix::Errno,
32794        >>(
32795            result.map(|value| (value,)),
32796            self.tx_id,
32797            0x348c1ab3aeca1745,
32798            fidl::encoding::DynamicFlags::empty(),
32799        )
32800    }
32801}
32802
32803#[must_use = "FIDL methods require a response to be sent"]
32804#[derive(Debug)]
32805pub struct BaseSocketSetNoCheckResponder {
32806    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32807    tx_id: u32,
32808}
32809
32810/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32811/// if the responder is dropped without sending a response, so that the client
32812/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32813impl std::ops::Drop for BaseSocketSetNoCheckResponder {
32814    fn drop(&mut self) {
32815        self.control_handle.shutdown();
32816        // Safety: drops once, never accessed again
32817        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32818    }
32819}
32820
32821impl fidl::endpoints::Responder for BaseSocketSetNoCheckResponder {
32822    type ControlHandle = BaseSocketControlHandle;
32823
32824    fn control_handle(&self) -> &BaseSocketControlHandle {
32825        &self.control_handle
32826    }
32827
32828    fn drop_without_shutdown(mut self) {
32829        // Safety: drops once, never accessed again due to mem::forget
32830        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32831        // Prevent Drop from running (which would shut down the channel)
32832        std::mem::forget(self);
32833    }
32834}
32835
32836impl BaseSocketSetNoCheckResponder {
32837    /// Sends a response to the FIDL transaction.
32838    ///
32839    /// Sets the channel to shutdown if an error occurs.
32840    pub fn send(
32841        self,
32842        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32843    ) -> Result<(), fidl::Error> {
32844        let _result = self.send_raw(result);
32845        if _result.is_err() {
32846            self.control_handle.shutdown();
32847        }
32848        self.drop_without_shutdown();
32849        _result
32850    }
32851
32852    /// Similar to "send" but does not shutdown the channel if an error occurs.
32853    pub fn send_no_shutdown_on_err(
32854        self,
32855        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32856    ) -> Result<(), fidl::Error> {
32857        let _result = self.send_raw(result);
32858        self.drop_without_shutdown();
32859        _result
32860    }
32861
32862    fn send_raw(
32863        &self,
32864        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32865    ) -> Result<(), fidl::Error> {
32866        self.control_handle.inner.send::<fidl::encoding::ResultType<
32867            fidl::encoding::EmptyStruct,
32868            fidl_fuchsia_posix::Errno,
32869        >>(
32870            result,
32871            self.tx_id,
32872            0x6bbf00c53a4c78c2,
32873            fidl::encoding::DynamicFlags::empty(),
32874        )
32875    }
32876}
32877
32878#[must_use = "FIDL methods require a response to be sent"]
32879#[derive(Debug)]
32880pub struct BaseSocketGetNoCheckResponder {
32881    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32882    tx_id: u32,
32883}
32884
32885/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32886/// if the responder is dropped without sending a response, so that the client
32887/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32888impl std::ops::Drop for BaseSocketGetNoCheckResponder {
32889    fn drop(&mut self) {
32890        self.control_handle.shutdown();
32891        // Safety: drops once, never accessed again
32892        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32893    }
32894}
32895
32896impl fidl::endpoints::Responder for BaseSocketGetNoCheckResponder {
32897    type ControlHandle = BaseSocketControlHandle;
32898
32899    fn control_handle(&self) -> &BaseSocketControlHandle {
32900        &self.control_handle
32901    }
32902
32903    fn drop_without_shutdown(mut self) {
32904        // Safety: drops once, never accessed again due to mem::forget
32905        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32906        // Prevent Drop from running (which would shut down the channel)
32907        std::mem::forget(self);
32908    }
32909}
32910
32911impl BaseSocketGetNoCheckResponder {
32912    /// Sends a response to the FIDL transaction.
32913    ///
32914    /// Sets the channel to shutdown if an error occurs.
32915    pub fn send(
32916        self,
32917        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32918    ) -> Result<(), fidl::Error> {
32919        let _result = self.send_raw(result);
32920        if _result.is_err() {
32921            self.control_handle.shutdown();
32922        }
32923        self.drop_without_shutdown();
32924        _result
32925    }
32926
32927    /// Similar to "send" but does not shutdown the channel if an error occurs.
32928    pub fn send_no_shutdown_on_err(
32929        self,
32930        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32931    ) -> Result<(), fidl::Error> {
32932        let _result = self.send_raw(result);
32933        self.drop_without_shutdown();
32934        _result
32935    }
32936
32937    fn send_raw(
32938        &self,
32939        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32940    ) -> Result<(), fidl::Error> {
32941        self.control_handle.inner.send::<fidl::encoding::ResultType<
32942            BaseSocketGetNoCheckResponse,
32943            fidl_fuchsia_posix::Errno,
32944        >>(
32945            result.map(|value| (value,)),
32946            self.tx_id,
32947            0x2cd4249286417694,
32948            fidl::encoding::DynamicFlags::empty(),
32949        )
32950    }
32951}
32952
32953#[must_use = "FIDL methods require a response to be sent"]
32954#[derive(Debug)]
32955pub struct BaseSocketSetLingerResponder {
32956    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32957    tx_id: u32,
32958}
32959
32960/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32961/// if the responder is dropped without sending a response, so that the client
32962/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32963impl std::ops::Drop for BaseSocketSetLingerResponder {
32964    fn drop(&mut self) {
32965        self.control_handle.shutdown();
32966        // Safety: drops once, never accessed again
32967        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32968    }
32969}
32970
32971impl fidl::endpoints::Responder for BaseSocketSetLingerResponder {
32972    type ControlHandle = BaseSocketControlHandle;
32973
32974    fn control_handle(&self) -> &BaseSocketControlHandle {
32975        &self.control_handle
32976    }
32977
32978    fn drop_without_shutdown(mut self) {
32979        // Safety: drops once, never accessed again due to mem::forget
32980        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32981        // Prevent Drop from running (which would shut down the channel)
32982        std::mem::forget(self);
32983    }
32984}
32985
32986impl BaseSocketSetLingerResponder {
32987    /// Sends a response to the FIDL transaction.
32988    ///
32989    /// Sets the channel to shutdown if an error occurs.
32990    pub fn send(
32991        self,
32992        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32993    ) -> Result<(), fidl::Error> {
32994        let _result = self.send_raw(result);
32995        if _result.is_err() {
32996            self.control_handle.shutdown();
32997        }
32998        self.drop_without_shutdown();
32999        _result
33000    }
33001
33002    /// Similar to "send" but does not shutdown the channel if an error occurs.
33003    pub fn send_no_shutdown_on_err(
33004        self,
33005        mut result: Result<(), fidl_fuchsia_posix::Errno>,
33006    ) -> Result<(), fidl::Error> {
33007        let _result = self.send_raw(result);
33008        self.drop_without_shutdown();
33009        _result
33010    }
33011
33012    fn send_raw(
33013        &self,
33014        mut result: Result<(), fidl_fuchsia_posix::Errno>,
33015    ) -> Result<(), fidl::Error> {
33016        self.control_handle.inner.send::<fidl::encoding::ResultType<
33017            fidl::encoding::EmptyStruct,
33018            fidl_fuchsia_posix::Errno,
33019        >>(
33020            result,
33021            self.tx_id,
33022            0x45386351246e998e,
33023            fidl::encoding::DynamicFlags::empty(),
33024        )
33025    }
33026}
33027
33028#[must_use = "FIDL methods require a response to be sent"]
33029#[derive(Debug)]
33030pub struct BaseSocketGetLingerResponder {
33031    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
33032    tx_id: u32,
33033}
33034
33035/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
33036/// if the responder is dropped without sending a response, so that the client
33037/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
33038impl std::ops::Drop for BaseSocketGetLingerResponder {
33039    fn drop(&mut self) {
33040        self.control_handle.shutdown();
33041        // Safety: drops once, never accessed again
33042        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33043    }
33044}
33045
33046impl fidl::endpoints::Responder for BaseSocketGetLingerResponder {
33047    type ControlHandle = BaseSocketControlHandle;
33048
33049    fn control_handle(&self) -> &BaseSocketControlHandle {
33050        &self.control_handle
33051    }
33052
33053    fn drop_without_shutdown(mut self) {
33054        // Safety: drops once, never accessed again due to mem::forget
33055        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33056        // Prevent Drop from running (which would shut down the channel)
33057        std::mem::forget(self);
33058    }
33059}
33060
33061impl BaseSocketGetLingerResponder {
33062    /// Sends a response to the FIDL transaction.
33063    ///
33064    /// Sets the channel to shutdown if an error occurs.
33065    pub fn send(
33066        self,
33067        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
33068    ) -> Result<(), fidl::Error> {
33069        let _result = self.send_raw(result);
33070        if _result.is_err() {
33071            self.control_handle.shutdown();
33072        }
33073        self.drop_without_shutdown();
33074        _result
33075    }
33076
33077    /// Similar to "send" but does not shutdown the channel if an error occurs.
33078    pub fn send_no_shutdown_on_err(
33079        self,
33080        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
33081    ) -> Result<(), fidl::Error> {
33082        let _result = self.send_raw(result);
33083        self.drop_without_shutdown();
33084        _result
33085    }
33086
33087    fn send_raw(
33088        &self,
33089        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
33090    ) -> Result<(), fidl::Error> {
33091        self.control_handle.inner.send::<fidl::encoding::ResultType<
33092            BaseSocketGetLingerResponse,
33093            fidl_fuchsia_posix::Errno,
33094        >>(
33095            result,
33096            self.tx_id,
33097            0x48eb20fc5ccb0e45,
33098            fidl::encoding::DynamicFlags::empty(),
33099        )
33100    }
33101}
33102
33103#[must_use = "FIDL methods require a response to be sent"]
33104#[derive(Debug)]
33105pub struct BaseSocketSetReusePortResponder {
33106    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
33107    tx_id: u32,
33108}
33109
33110/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
33111/// if the responder is dropped without sending a response, so that the client
33112/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
33113impl std::ops::Drop for BaseSocketSetReusePortResponder {
33114    fn drop(&mut self) {
33115        self.control_handle.shutdown();
33116        // Safety: drops once, never accessed again
33117        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33118    }
33119}
33120
33121impl fidl::endpoints::Responder for BaseSocketSetReusePortResponder {
33122    type ControlHandle = BaseSocketControlHandle;
33123
33124    fn control_handle(&self) -> &BaseSocketControlHandle {
33125        &self.control_handle
33126    }
33127
33128    fn drop_without_shutdown(mut self) {
33129        // Safety: drops once, never accessed again due to mem::forget
33130        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33131        // Prevent Drop from running (which would shut down the channel)
33132        std::mem::forget(self);
33133    }
33134}
33135
33136impl BaseSocketSetReusePortResponder {
33137    /// Sends a response to the FIDL transaction.
33138    ///
33139    /// Sets the channel to shutdown if an error occurs.
33140    pub fn send(
33141        self,
33142        mut result: Result<(), fidl_fuchsia_posix::Errno>,
33143    ) -> Result<(), fidl::Error> {
33144        let _result = self.send_raw(result);
33145        if _result.is_err() {
33146            self.control_handle.shutdown();
33147        }
33148        self.drop_without_shutdown();
33149        _result
33150    }
33151
33152    /// Similar to "send" but does not shutdown the channel if an error occurs.
33153    pub fn send_no_shutdown_on_err(
33154        self,
33155        mut result: Result<(), fidl_fuchsia_posix::Errno>,
33156    ) -> Result<(), fidl::Error> {
33157        let _result = self.send_raw(result);
33158        self.drop_without_shutdown();
33159        _result
33160    }
33161
33162    fn send_raw(
33163        &self,
33164        mut result: Result<(), fidl_fuchsia_posix::Errno>,
33165    ) -> Result<(), fidl::Error> {
33166        self.control_handle.inner.send::<fidl::encoding::ResultType<
33167            fidl::encoding::EmptyStruct,
33168            fidl_fuchsia_posix::Errno,
33169        >>(
33170            result,
33171            self.tx_id,
33172            0x547dc9cc0455189e,
33173            fidl::encoding::DynamicFlags::empty(),
33174        )
33175    }
33176}
33177
33178#[must_use = "FIDL methods require a response to be sent"]
33179#[derive(Debug)]
33180pub struct BaseSocketSetReusePortDeprecatedResponder {
33181    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
33182    tx_id: u32,
33183}
33184
33185/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
33186/// if the responder is dropped without sending a response, so that the client
33187/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
33188impl std::ops::Drop for BaseSocketSetReusePortDeprecatedResponder {
33189    fn drop(&mut self) {
33190        self.control_handle.shutdown();
33191        // Safety: drops once, never accessed again
33192        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33193    }
33194}
33195
33196impl fidl::endpoints::Responder for BaseSocketSetReusePortDeprecatedResponder {
33197    type ControlHandle = BaseSocketControlHandle;
33198
33199    fn control_handle(&self) -> &BaseSocketControlHandle {
33200        &self.control_handle
33201    }
33202
33203    fn drop_without_shutdown(mut self) {
33204        // Safety: drops once, never accessed again due to mem::forget
33205        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33206        // Prevent Drop from running (which would shut down the channel)
33207        std::mem::forget(self);
33208    }
33209}
33210
33211impl BaseSocketSetReusePortDeprecatedResponder {
33212    /// Sends a response to the FIDL transaction.
33213    ///
33214    /// Sets the channel to shutdown if an error occurs.
33215    pub fn send(
33216        self,
33217        mut result: Result<(), fidl_fuchsia_posix::Errno>,
33218    ) -> Result<(), fidl::Error> {
33219        let _result = self.send_raw(result);
33220        if _result.is_err() {
33221            self.control_handle.shutdown();
33222        }
33223        self.drop_without_shutdown();
33224        _result
33225    }
33226
33227    /// Similar to "send" but does not shutdown the channel if an error occurs.
33228    pub fn send_no_shutdown_on_err(
33229        self,
33230        mut result: Result<(), fidl_fuchsia_posix::Errno>,
33231    ) -> Result<(), fidl::Error> {
33232        let _result = self.send_raw(result);
33233        self.drop_without_shutdown();
33234        _result
33235    }
33236
33237    fn send_raw(
33238        &self,
33239        mut result: Result<(), fidl_fuchsia_posix::Errno>,
33240    ) -> Result<(), fidl::Error> {
33241        self.control_handle.inner.send::<fidl::encoding::ResultType<
33242            fidl::encoding::EmptyStruct,
33243            fidl_fuchsia_posix::Errno,
33244        >>(
33245            result,
33246            self.tx_id,
33247            0x24dd3e5cb36d9ccb,
33248            fidl::encoding::DynamicFlags::empty(),
33249        )
33250    }
33251}
33252
33253#[must_use = "FIDL methods require a response to be sent"]
33254#[derive(Debug)]
33255pub struct BaseSocketGetReusePortResponder {
33256    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
33257    tx_id: u32,
33258}
33259
33260/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
33261/// if the responder is dropped without sending a response, so that the client
33262/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
33263impl std::ops::Drop for BaseSocketGetReusePortResponder {
33264    fn drop(&mut self) {
33265        self.control_handle.shutdown();
33266        // Safety: drops once, never accessed again
33267        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33268    }
33269}
33270
33271impl fidl::endpoints::Responder for BaseSocketGetReusePortResponder {
33272    type ControlHandle = BaseSocketControlHandle;
33273
33274    fn control_handle(&self) -> &BaseSocketControlHandle {
33275        &self.control_handle
33276    }
33277
33278    fn drop_without_shutdown(mut self) {
33279        // Safety: drops once, never accessed again due to mem::forget
33280        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33281        // Prevent Drop from running (which would shut down the channel)
33282        std::mem::forget(self);
33283    }
33284}
33285
33286impl BaseSocketGetReusePortResponder {
33287    /// Sends a response to the FIDL transaction.
33288    ///
33289    /// Sets the channel to shutdown if an error occurs.
33290    pub fn send(
33291        self,
33292        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
33293    ) -> Result<(), fidl::Error> {
33294        let _result = self.send_raw(result);
33295        if _result.is_err() {
33296            self.control_handle.shutdown();
33297        }
33298        self.drop_without_shutdown();
33299        _result
33300    }
33301
33302    /// Similar to "send" but does not shutdown the channel if an error occurs.
33303    pub fn send_no_shutdown_on_err(
33304        self,
33305        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
33306    ) -> Result<(), fidl::Error> {
33307        let _result = self.send_raw(result);
33308        self.drop_without_shutdown();
33309        _result
33310    }
33311
33312    fn send_raw(
33313        &self,
33314        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
33315    ) -> Result<(), fidl::Error> {
33316        self.control_handle.inner.send::<fidl::encoding::ResultType<
33317            BaseSocketGetReusePortResponse,
33318            fidl_fuchsia_posix::Errno,
33319        >>(
33320            result.map(|value| (value,)),
33321            self.tx_id,
33322            0x7a112c1ab54ff828,
33323            fidl::encoding::DynamicFlags::empty(),
33324        )
33325    }
33326}
33327
33328#[must_use = "FIDL methods require a response to be sent"]
33329#[derive(Debug)]
33330pub struct BaseSocketGetAcceptConnResponder {
33331    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
33332    tx_id: u32,
33333}
33334
33335/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
33336/// if the responder is dropped without sending a response, so that the client
33337/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
33338impl std::ops::Drop for BaseSocketGetAcceptConnResponder {
33339    fn drop(&mut self) {
33340        self.control_handle.shutdown();
33341        // Safety: drops once, never accessed again
33342        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33343    }
33344}
33345
33346impl fidl::endpoints::Responder for BaseSocketGetAcceptConnResponder {
33347    type ControlHandle = BaseSocketControlHandle;
33348
33349    fn control_handle(&self) -> &BaseSocketControlHandle {
33350        &self.control_handle
33351    }
33352
33353    fn drop_without_shutdown(mut self) {
33354        // Safety: drops once, never accessed again due to mem::forget
33355        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33356        // Prevent Drop from running (which would shut down the channel)
33357        std::mem::forget(self);
33358    }
33359}
33360
33361impl BaseSocketGetAcceptConnResponder {
33362    /// Sends a response to the FIDL transaction.
33363    ///
33364    /// Sets the channel to shutdown if an error occurs.
33365    pub fn send(
33366        self,
33367        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
33368    ) -> Result<(), fidl::Error> {
33369        let _result = self.send_raw(result);
33370        if _result.is_err() {
33371            self.control_handle.shutdown();
33372        }
33373        self.drop_without_shutdown();
33374        _result
33375    }
33376
33377    /// Similar to "send" but does not shutdown the channel if an error occurs.
33378    pub fn send_no_shutdown_on_err(
33379        self,
33380        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
33381    ) -> Result<(), fidl::Error> {
33382        let _result = self.send_raw(result);
33383        self.drop_without_shutdown();
33384        _result
33385    }
33386
33387    fn send_raw(
33388        &self,
33389        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
33390    ) -> Result<(), fidl::Error> {
33391        self.control_handle.inner.send::<fidl::encoding::ResultType<
33392            BaseSocketGetAcceptConnResponse,
33393            fidl_fuchsia_posix::Errno,
33394        >>(
33395            result.map(|value| (value,)),
33396            self.tx_id,
33397            0x67ce6db6c2ec8966,
33398            fidl::encoding::DynamicFlags::empty(),
33399        )
33400    }
33401}
33402
33403#[must_use = "FIDL methods require a response to be sent"]
33404#[derive(Debug)]
33405pub struct BaseSocketSetBindToDeviceResponder {
33406    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
33407    tx_id: u32,
33408}
33409
33410/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
33411/// if the responder is dropped without sending a response, so that the client
33412/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
33413impl std::ops::Drop for BaseSocketSetBindToDeviceResponder {
33414    fn drop(&mut self) {
33415        self.control_handle.shutdown();
33416        // Safety: drops once, never accessed again
33417        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33418    }
33419}
33420
33421impl fidl::endpoints::Responder for BaseSocketSetBindToDeviceResponder {
33422    type ControlHandle = BaseSocketControlHandle;
33423
33424    fn control_handle(&self) -> &BaseSocketControlHandle {
33425        &self.control_handle
33426    }
33427
33428    fn drop_without_shutdown(mut self) {
33429        // Safety: drops once, never accessed again due to mem::forget
33430        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33431        // Prevent Drop from running (which would shut down the channel)
33432        std::mem::forget(self);
33433    }
33434}
33435
33436impl BaseSocketSetBindToDeviceResponder {
33437    /// Sends a response to the FIDL transaction.
33438    ///
33439    /// Sets the channel to shutdown if an error occurs.
33440    pub fn send(
33441        self,
33442        mut result: Result<(), fidl_fuchsia_posix::Errno>,
33443    ) -> Result<(), fidl::Error> {
33444        let _result = self.send_raw(result);
33445        if _result.is_err() {
33446            self.control_handle.shutdown();
33447        }
33448        self.drop_without_shutdown();
33449        _result
33450    }
33451
33452    /// Similar to "send" but does not shutdown the channel if an error occurs.
33453    pub fn send_no_shutdown_on_err(
33454        self,
33455        mut result: Result<(), fidl_fuchsia_posix::Errno>,
33456    ) -> Result<(), fidl::Error> {
33457        let _result = self.send_raw(result);
33458        self.drop_without_shutdown();
33459        _result
33460    }
33461
33462    fn send_raw(
33463        &self,
33464        mut result: Result<(), fidl_fuchsia_posix::Errno>,
33465    ) -> Result<(), fidl::Error> {
33466        self.control_handle.inner.send::<fidl::encoding::ResultType<
33467            fidl::encoding::EmptyStruct,
33468            fidl_fuchsia_posix::Errno,
33469        >>(
33470            result,
33471            self.tx_id,
33472            0x2118b483f28aafc4,
33473            fidl::encoding::DynamicFlags::empty(),
33474        )
33475    }
33476}
33477
33478#[must_use = "FIDL methods require a response to be sent"]
33479#[derive(Debug)]
33480pub struct BaseSocketGetBindToDeviceResponder {
33481    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
33482    tx_id: u32,
33483}
33484
33485/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
33486/// if the responder is dropped without sending a response, so that the client
33487/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
33488impl std::ops::Drop for BaseSocketGetBindToDeviceResponder {
33489    fn drop(&mut self) {
33490        self.control_handle.shutdown();
33491        // Safety: drops once, never accessed again
33492        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33493    }
33494}
33495
33496impl fidl::endpoints::Responder for BaseSocketGetBindToDeviceResponder {
33497    type ControlHandle = BaseSocketControlHandle;
33498
33499    fn control_handle(&self) -> &BaseSocketControlHandle {
33500        &self.control_handle
33501    }
33502
33503    fn drop_without_shutdown(mut self) {
33504        // Safety: drops once, never accessed again due to mem::forget
33505        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33506        // Prevent Drop from running (which would shut down the channel)
33507        std::mem::forget(self);
33508    }
33509}
33510
33511impl BaseSocketGetBindToDeviceResponder {
33512    /// Sends a response to the FIDL transaction.
33513    ///
33514    /// Sets the channel to shutdown if an error occurs.
33515    pub fn send(
33516        self,
33517        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
33518    ) -> Result<(), fidl::Error> {
33519        let _result = self.send_raw(result);
33520        if _result.is_err() {
33521            self.control_handle.shutdown();
33522        }
33523        self.drop_without_shutdown();
33524        _result
33525    }
33526
33527    /// Similar to "send" but does not shutdown the channel if an error occurs.
33528    pub fn send_no_shutdown_on_err(
33529        self,
33530        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
33531    ) -> Result<(), fidl::Error> {
33532        let _result = self.send_raw(result);
33533        self.drop_without_shutdown();
33534        _result
33535    }
33536
33537    fn send_raw(
33538        &self,
33539        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
33540    ) -> Result<(), fidl::Error> {
33541        self.control_handle.inner.send::<fidl::encoding::ResultType<
33542            BaseSocketGetBindToDeviceResponse,
33543            fidl_fuchsia_posix::Errno,
33544        >>(
33545            result.map(|value| (value,)),
33546            self.tx_id,
33547            0x1ab1fbf0ef7906c8,
33548            fidl::encoding::DynamicFlags::empty(),
33549        )
33550    }
33551}
33552
33553#[must_use = "FIDL methods require a response to be sent"]
33554#[derive(Debug)]
33555pub struct BaseSocketSetBindToInterfaceIndexResponder {
33556    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
33557    tx_id: u32,
33558}
33559
33560/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
33561/// if the responder is dropped without sending a response, so that the client
33562/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
33563impl std::ops::Drop for BaseSocketSetBindToInterfaceIndexResponder {
33564    fn drop(&mut self) {
33565        self.control_handle.shutdown();
33566        // Safety: drops once, never accessed again
33567        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33568    }
33569}
33570
33571impl fidl::endpoints::Responder for BaseSocketSetBindToInterfaceIndexResponder {
33572    type ControlHandle = BaseSocketControlHandle;
33573
33574    fn control_handle(&self) -> &BaseSocketControlHandle {
33575        &self.control_handle
33576    }
33577
33578    fn drop_without_shutdown(mut self) {
33579        // Safety: drops once, never accessed again due to mem::forget
33580        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33581        // Prevent Drop from running (which would shut down the channel)
33582        std::mem::forget(self);
33583    }
33584}
33585
33586impl BaseSocketSetBindToInterfaceIndexResponder {
33587    /// Sends a response to the FIDL transaction.
33588    ///
33589    /// Sets the channel to shutdown if an error occurs.
33590    pub fn send(
33591        self,
33592        mut result: Result<(), fidl_fuchsia_posix::Errno>,
33593    ) -> Result<(), fidl::Error> {
33594        let _result = self.send_raw(result);
33595        if _result.is_err() {
33596            self.control_handle.shutdown();
33597        }
33598        self.drop_without_shutdown();
33599        _result
33600    }
33601
33602    /// Similar to "send" but does not shutdown the channel if an error occurs.
33603    pub fn send_no_shutdown_on_err(
33604        self,
33605        mut result: Result<(), fidl_fuchsia_posix::Errno>,
33606    ) -> Result<(), fidl::Error> {
33607        let _result = self.send_raw(result);
33608        self.drop_without_shutdown();
33609        _result
33610    }
33611
33612    fn send_raw(
33613        &self,
33614        mut result: Result<(), fidl_fuchsia_posix::Errno>,
33615    ) -> Result<(), fidl::Error> {
33616        self.control_handle.inner.send::<fidl::encoding::ResultType<
33617            fidl::encoding::EmptyStruct,
33618            fidl_fuchsia_posix::Errno,
33619        >>(
33620            result,
33621            self.tx_id,
33622            0x6e387a0def00821,
33623            fidl::encoding::DynamicFlags::empty(),
33624        )
33625    }
33626}
33627
33628#[must_use = "FIDL methods require a response to be sent"]
33629#[derive(Debug)]
33630pub struct BaseSocketGetBindToInterfaceIndexResponder {
33631    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
33632    tx_id: u32,
33633}
33634
33635/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
33636/// if the responder is dropped without sending a response, so that the client
33637/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
33638impl std::ops::Drop for BaseSocketGetBindToInterfaceIndexResponder {
33639    fn drop(&mut self) {
33640        self.control_handle.shutdown();
33641        // Safety: drops once, never accessed again
33642        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33643    }
33644}
33645
33646impl fidl::endpoints::Responder for BaseSocketGetBindToInterfaceIndexResponder {
33647    type ControlHandle = BaseSocketControlHandle;
33648
33649    fn control_handle(&self) -> &BaseSocketControlHandle {
33650        &self.control_handle
33651    }
33652
33653    fn drop_without_shutdown(mut self) {
33654        // Safety: drops once, never accessed again due to mem::forget
33655        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33656        // Prevent Drop from running (which would shut down the channel)
33657        std::mem::forget(self);
33658    }
33659}
33660
33661impl BaseSocketGetBindToInterfaceIndexResponder {
33662    /// Sends a response to the FIDL transaction.
33663    ///
33664    /// Sets the channel to shutdown if an error occurs.
33665    pub fn send(
33666        self,
33667        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
33668    ) -> Result<(), fidl::Error> {
33669        let _result = self.send_raw(result);
33670        if _result.is_err() {
33671            self.control_handle.shutdown();
33672        }
33673        self.drop_without_shutdown();
33674        _result
33675    }
33676
33677    /// Similar to "send" but does not shutdown the channel if an error occurs.
33678    pub fn send_no_shutdown_on_err(
33679        self,
33680        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
33681    ) -> Result<(), fidl::Error> {
33682        let _result = self.send_raw(result);
33683        self.drop_without_shutdown();
33684        _result
33685    }
33686
33687    fn send_raw(
33688        &self,
33689        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
33690    ) -> Result<(), fidl::Error> {
33691        self.control_handle.inner.send::<fidl::encoding::ResultType<
33692            BaseSocketGetBindToInterfaceIndexResponse,
33693            fidl_fuchsia_posix::Errno,
33694        >>(
33695            result.map(|value| (value,)),
33696            self.tx_id,
33697            0x59c31dd3e3078295,
33698            fidl::encoding::DynamicFlags::empty(),
33699        )
33700    }
33701}
33702
33703#[must_use = "FIDL methods require a response to be sent"]
33704#[derive(Debug)]
33705pub struct BaseSocketSetTimestampResponder {
33706    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
33707    tx_id: u32,
33708}
33709
33710/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
33711/// if the responder is dropped without sending a response, so that the client
33712/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
33713impl std::ops::Drop for BaseSocketSetTimestampResponder {
33714    fn drop(&mut self) {
33715        self.control_handle.shutdown();
33716        // Safety: drops once, never accessed again
33717        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33718    }
33719}
33720
33721impl fidl::endpoints::Responder for BaseSocketSetTimestampResponder {
33722    type ControlHandle = BaseSocketControlHandle;
33723
33724    fn control_handle(&self) -> &BaseSocketControlHandle {
33725        &self.control_handle
33726    }
33727
33728    fn drop_without_shutdown(mut self) {
33729        // Safety: drops once, never accessed again due to mem::forget
33730        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33731        // Prevent Drop from running (which would shut down the channel)
33732        std::mem::forget(self);
33733    }
33734}
33735
33736impl BaseSocketSetTimestampResponder {
33737    /// Sends a response to the FIDL transaction.
33738    ///
33739    /// Sets the channel to shutdown if an error occurs.
33740    pub fn send(
33741        self,
33742        mut result: Result<(), fidl_fuchsia_posix::Errno>,
33743    ) -> Result<(), fidl::Error> {
33744        let _result = self.send_raw(result);
33745        if _result.is_err() {
33746            self.control_handle.shutdown();
33747        }
33748        self.drop_without_shutdown();
33749        _result
33750    }
33751
33752    /// Similar to "send" but does not shutdown the channel if an error occurs.
33753    pub fn send_no_shutdown_on_err(
33754        self,
33755        mut result: Result<(), fidl_fuchsia_posix::Errno>,
33756    ) -> Result<(), fidl::Error> {
33757        let _result = self.send_raw(result);
33758        self.drop_without_shutdown();
33759        _result
33760    }
33761
33762    fn send_raw(
33763        &self,
33764        mut result: Result<(), fidl_fuchsia_posix::Errno>,
33765    ) -> Result<(), fidl::Error> {
33766        self.control_handle.inner.send::<fidl::encoding::ResultType<
33767            fidl::encoding::EmptyStruct,
33768            fidl_fuchsia_posix::Errno,
33769        >>(
33770            result,
33771            self.tx_id,
33772            0x285d6516c263d839,
33773            fidl::encoding::DynamicFlags::empty(),
33774        )
33775    }
33776}
33777
33778#[must_use = "FIDL methods require a response to be sent"]
33779#[derive(Debug)]
33780pub struct BaseSocketGetTimestampResponder {
33781    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
33782    tx_id: u32,
33783}
33784
33785/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
33786/// if the responder is dropped without sending a response, so that the client
33787/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
33788impl std::ops::Drop for BaseSocketGetTimestampResponder {
33789    fn drop(&mut self) {
33790        self.control_handle.shutdown();
33791        // Safety: drops once, never accessed again
33792        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33793    }
33794}
33795
33796impl fidl::endpoints::Responder for BaseSocketGetTimestampResponder {
33797    type ControlHandle = BaseSocketControlHandle;
33798
33799    fn control_handle(&self) -> &BaseSocketControlHandle {
33800        &self.control_handle
33801    }
33802
33803    fn drop_without_shutdown(mut self) {
33804        // Safety: drops once, never accessed again due to mem::forget
33805        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33806        // Prevent Drop from running (which would shut down the channel)
33807        std::mem::forget(self);
33808    }
33809}
33810
33811impl BaseSocketGetTimestampResponder {
33812    /// Sends a response to the FIDL transaction.
33813    ///
33814    /// Sets the channel to shutdown if an error occurs.
33815    pub fn send(
33816        self,
33817        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
33818    ) -> Result<(), fidl::Error> {
33819        let _result = self.send_raw(result);
33820        if _result.is_err() {
33821            self.control_handle.shutdown();
33822        }
33823        self.drop_without_shutdown();
33824        _result
33825    }
33826
33827    /// Similar to "send" but does not shutdown the channel if an error occurs.
33828    pub fn send_no_shutdown_on_err(
33829        self,
33830        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
33831    ) -> Result<(), fidl::Error> {
33832        let _result = self.send_raw(result);
33833        self.drop_without_shutdown();
33834        _result
33835    }
33836
33837    fn send_raw(
33838        &self,
33839        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
33840    ) -> Result<(), fidl::Error> {
33841        self.control_handle.inner.send::<fidl::encoding::ResultType<
33842            BaseSocketGetTimestampResponse,
33843            fidl_fuchsia_posix::Errno,
33844        >>(
33845            result.map(|value| (value,)),
33846            self.tx_id,
33847            0x49f2fffbbcc2bd27,
33848            fidl::encoding::DynamicFlags::empty(),
33849        )
33850    }
33851}
33852
33853#[must_use = "FIDL methods require a response to be sent"]
33854#[derive(Debug)]
33855pub struct BaseSocketSetMarkResponder {
33856    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
33857    tx_id: u32,
33858}
33859
33860/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
33861/// if the responder is dropped without sending a response, so that the client
33862/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
33863impl std::ops::Drop for BaseSocketSetMarkResponder {
33864    fn drop(&mut self) {
33865        self.control_handle.shutdown();
33866        // Safety: drops once, never accessed again
33867        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33868    }
33869}
33870
33871impl fidl::endpoints::Responder for BaseSocketSetMarkResponder {
33872    type ControlHandle = BaseSocketControlHandle;
33873
33874    fn control_handle(&self) -> &BaseSocketControlHandle {
33875        &self.control_handle
33876    }
33877
33878    fn drop_without_shutdown(mut self) {
33879        // Safety: drops once, never accessed again due to mem::forget
33880        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33881        // Prevent Drop from running (which would shut down the channel)
33882        std::mem::forget(self);
33883    }
33884}
33885
33886impl BaseSocketSetMarkResponder {
33887    /// Sends a response to the FIDL transaction.
33888    ///
33889    /// Sets the channel to shutdown if an error occurs.
33890    pub fn send(
33891        self,
33892        mut result: Result<(), fidl_fuchsia_posix::Errno>,
33893    ) -> Result<(), fidl::Error> {
33894        let _result = self.send_raw(result);
33895        if _result.is_err() {
33896            self.control_handle.shutdown();
33897        }
33898        self.drop_without_shutdown();
33899        _result
33900    }
33901
33902    /// Similar to "send" but does not shutdown the channel if an error occurs.
33903    pub fn send_no_shutdown_on_err(
33904        self,
33905        mut result: Result<(), fidl_fuchsia_posix::Errno>,
33906    ) -> Result<(), fidl::Error> {
33907        let _result = self.send_raw(result);
33908        self.drop_without_shutdown();
33909        _result
33910    }
33911
33912    fn send_raw(
33913        &self,
33914        mut result: Result<(), fidl_fuchsia_posix::Errno>,
33915    ) -> Result<(), fidl::Error> {
33916        self.control_handle.inner.send::<fidl::encoding::ResultType<
33917            fidl::encoding::EmptyStruct,
33918            fidl_fuchsia_posix::Errno,
33919        >>(
33920            result,
33921            self.tx_id,
33922            0x6ead6de09f653236,
33923            fidl::encoding::DynamicFlags::empty(),
33924        )
33925    }
33926}
33927
33928#[must_use = "FIDL methods require a response to be sent"]
33929#[derive(Debug)]
33930pub struct BaseSocketGetMarkResponder {
33931    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
33932    tx_id: u32,
33933}
33934
33935/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
33936/// if the responder is dropped without sending a response, so that the client
33937/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
33938impl std::ops::Drop for BaseSocketGetMarkResponder {
33939    fn drop(&mut self) {
33940        self.control_handle.shutdown();
33941        // Safety: drops once, never accessed again
33942        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33943    }
33944}
33945
33946impl fidl::endpoints::Responder for BaseSocketGetMarkResponder {
33947    type ControlHandle = BaseSocketControlHandle;
33948
33949    fn control_handle(&self) -> &BaseSocketControlHandle {
33950        &self.control_handle
33951    }
33952
33953    fn drop_without_shutdown(mut self) {
33954        // Safety: drops once, never accessed again due to mem::forget
33955        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33956        // Prevent Drop from running (which would shut down the channel)
33957        std::mem::forget(self);
33958    }
33959}
33960
33961impl BaseSocketGetMarkResponder {
33962    /// Sends a response to the FIDL transaction.
33963    ///
33964    /// Sets the channel to shutdown if an error occurs.
33965    pub fn send(
33966        self,
33967        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
33968    ) -> Result<(), fidl::Error> {
33969        let _result = self.send_raw(result);
33970        if _result.is_err() {
33971            self.control_handle.shutdown();
33972        }
33973        self.drop_without_shutdown();
33974        _result
33975    }
33976
33977    /// Similar to "send" but does not shutdown the channel if an error occurs.
33978    pub fn send_no_shutdown_on_err(
33979        self,
33980        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
33981    ) -> Result<(), fidl::Error> {
33982        let _result = self.send_raw(result);
33983        self.drop_without_shutdown();
33984        _result
33985    }
33986
33987    fn send_raw(
33988        &self,
33989        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
33990    ) -> Result<(), fidl::Error> {
33991        self.control_handle.inner.send::<fidl::encoding::ResultType<
33992            BaseSocketGetMarkResponse,
33993            fidl_fuchsia_posix::Errno,
33994        >>(
33995            result.map(|mark| (mark,)),
33996            self.tx_id,
33997            0x57a2752c61d93d47,
33998            fidl::encoding::DynamicFlags::empty(),
33999        )
34000    }
34001}
34002
34003#[must_use = "FIDL methods require a response to be sent"]
34004#[derive(Debug)]
34005pub struct BaseSocketGetCookieResponder {
34006    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
34007    tx_id: u32,
34008}
34009
34010/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
34011/// if the responder is dropped without sending a response, so that the client
34012/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
34013impl std::ops::Drop for BaseSocketGetCookieResponder {
34014    fn drop(&mut self) {
34015        self.control_handle.shutdown();
34016        // Safety: drops once, never accessed again
34017        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
34018    }
34019}
34020
34021impl fidl::endpoints::Responder for BaseSocketGetCookieResponder {
34022    type ControlHandle = BaseSocketControlHandle;
34023
34024    fn control_handle(&self) -> &BaseSocketControlHandle {
34025        &self.control_handle
34026    }
34027
34028    fn drop_without_shutdown(mut self) {
34029        // Safety: drops once, never accessed again due to mem::forget
34030        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
34031        // Prevent Drop from running (which would shut down the channel)
34032        std::mem::forget(self);
34033    }
34034}
34035
34036impl BaseSocketGetCookieResponder {
34037    /// Sends a response to the FIDL transaction.
34038    ///
34039    /// Sets the channel to shutdown if an error occurs.
34040    pub fn send(
34041        self,
34042        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
34043    ) -> Result<(), fidl::Error> {
34044        let _result = self.send_raw(result);
34045        if _result.is_err() {
34046            self.control_handle.shutdown();
34047        }
34048        self.drop_without_shutdown();
34049        _result
34050    }
34051
34052    /// Similar to "send" but does not shutdown the channel if an error occurs.
34053    pub fn send_no_shutdown_on_err(
34054        self,
34055        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
34056    ) -> Result<(), fidl::Error> {
34057        let _result = self.send_raw(result);
34058        self.drop_without_shutdown();
34059        _result
34060    }
34061
34062    fn send_raw(
34063        &self,
34064        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
34065    ) -> Result<(), fidl::Error> {
34066        self.control_handle.inner.send::<fidl::encoding::ResultType<
34067            BaseSocketGetCookieResponse,
34068            fidl_fuchsia_posix::Errno,
34069        >>(
34070            result.map(|value| (value,)),
34071            self.tx_id,
34072            0x2c2f47fd8f924e52,
34073            fidl::encoding::DynamicFlags::empty(),
34074        )
34075    }
34076}
34077
34078#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
34079pub struct DatagramSocketMarker;
34080
34081impl fidl::endpoints::ProtocolMarker for DatagramSocketMarker {
34082    type Proxy = DatagramSocketProxy;
34083    type RequestStream = DatagramSocketRequestStream;
34084    #[cfg(target_os = "fuchsia")]
34085    type SynchronousProxy = DatagramSocketSynchronousProxy;
34086
34087    const DEBUG_NAME: &'static str = "fuchsia.posix.socket.DatagramSocket";
34088}
34089impl fidl::endpoints::DiscoverableProtocolMarker for DatagramSocketMarker {}
34090pub type DatagramSocketSendMsgPreflightResult =
34091    Result<DatagramSocketSendMsgPreflightResponse, fidl_fuchsia_posix::Errno>;
34092pub type DatagramSocketRecvMsgPostflightResult =
34093    Result<DatagramSocketRecvMsgPostflightResponse, fidl_fuchsia_posix::Errno>;
34094
34095pub trait DatagramSocketProxyInterface: Send + Sync {
34096    fn r#clone(
34097        &self,
34098        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
34099    ) -> Result<(), fidl::Error>;
34100    type CloseResponseFut: std::future::Future<
34101            Output = Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error>,
34102        > + Send;
34103    fn r#close(&self) -> Self::CloseResponseFut;
34104    type QueryResponseFut: std::future::Future<Output = Result<Vec<u8>, fidl::Error>> + Send;
34105    fn r#query(&self) -> Self::QueryResponseFut;
34106    type SetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketSetReuseAddressResult, fidl::Error>>
34107        + Send;
34108    fn r#set_reuse_address(&self, value: bool) -> Self::SetReuseAddressResponseFut;
34109    type GetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketGetReuseAddressResult, fidl::Error>>
34110        + Send;
34111    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut;
34112    type GetErrorResponseFut: std::future::Future<Output = Result<BaseSocketGetErrorResult, fidl::Error>>
34113        + Send;
34114    fn r#get_error(&self) -> Self::GetErrorResponseFut;
34115    type SetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketSetBroadcastResult, fidl::Error>>
34116        + Send;
34117    fn r#set_broadcast(&self, value: bool) -> Self::SetBroadcastResponseFut;
34118    type GetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketGetBroadcastResult, fidl::Error>>
34119        + Send;
34120    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut;
34121    type SetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetSendBufferResult, fidl::Error>>
34122        + Send;
34123    fn r#set_send_buffer(&self, value_bytes: u64) -> Self::SetSendBufferResponseFut;
34124    type GetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetSendBufferResult, fidl::Error>>
34125        + Send;
34126    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut;
34127    type SetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetReceiveBufferResult, fidl::Error>>
34128        + Send;
34129    fn r#set_receive_buffer(&self, value_bytes: u64) -> Self::SetReceiveBufferResponseFut;
34130    type GetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetReceiveBufferResult, fidl::Error>>
34131        + Send;
34132    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut;
34133    type SetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketSetKeepAliveResult, fidl::Error>>
34134        + Send;
34135    fn r#set_keep_alive(&self, value: bool) -> Self::SetKeepAliveResponseFut;
34136    type GetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketGetKeepAliveResult, fidl::Error>>
34137        + Send;
34138    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut;
34139    type SetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketSetOutOfBandInlineResult, fidl::Error>>
34140        + Send;
34141    fn r#set_out_of_band_inline(&self, value: bool) -> Self::SetOutOfBandInlineResponseFut;
34142    type GetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketGetOutOfBandInlineResult, fidl::Error>>
34143        + Send;
34144    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut;
34145    type SetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketSetNoCheckResult, fidl::Error>>
34146        + Send;
34147    fn r#set_no_check(&self, value: bool) -> Self::SetNoCheckResponseFut;
34148    type GetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketGetNoCheckResult, fidl::Error>>
34149        + Send;
34150    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut;
34151    type SetLingerResponseFut: std::future::Future<Output = Result<BaseSocketSetLingerResult, fidl::Error>>
34152        + Send;
34153    fn r#set_linger(&self, linger: bool, length_secs: u32) -> Self::SetLingerResponseFut;
34154    type GetLingerResponseFut: std::future::Future<Output = Result<BaseSocketGetLingerResult, fidl::Error>>
34155        + Send;
34156    fn r#get_linger(&self) -> Self::GetLingerResponseFut;
34157    type SetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketSetReusePortResult, fidl::Error>>
34158        + Send;
34159    fn r#set_reuse_port(&self, value: ReusePortOption) -> Self::SetReusePortResponseFut;
34160    type SetReusePortDeprecatedResponseFut: std::future::Future<Output = Result<BaseSocketSetReusePortDeprecatedResult, fidl::Error>>
34161        + Send;
34162    fn r#set_reuse_port_deprecated(&self, value: bool) -> Self::SetReusePortDeprecatedResponseFut;
34163    type GetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketGetReusePortResult, fidl::Error>>
34164        + Send;
34165    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut;
34166    type GetAcceptConnResponseFut: std::future::Future<Output = Result<BaseSocketGetAcceptConnResult, fidl::Error>>
34167        + Send;
34168    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut;
34169    type SetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToDeviceResult, fidl::Error>>
34170        + Send;
34171    fn r#set_bind_to_device(&self, value: &str) -> Self::SetBindToDeviceResponseFut;
34172    type GetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToDeviceResult, fidl::Error>>
34173        + Send;
34174    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut;
34175    type SetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error>>
34176        + Send;
34177    fn r#set_bind_to_interface_index(&self, value: u64)
34178    -> Self::SetBindToInterfaceIndexResponseFut;
34179    type GetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error>>
34180        + Send;
34181    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut;
34182    type SetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketSetTimestampResult, fidl::Error>>
34183        + Send;
34184    fn r#set_timestamp(&self, value: TimestampOption) -> Self::SetTimestampResponseFut;
34185    type GetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketGetTimestampResult, fidl::Error>>
34186        + Send;
34187    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut;
34188    type SetMarkResponseFut: std::future::Future<Output = Result<BaseSocketSetMarkResult, fidl::Error>>
34189        + Send;
34190    fn r#set_mark(
34191        &self,
34192        domain: fidl_fuchsia_net::MarkDomain,
34193        mark: &OptionalUint32,
34194    ) -> Self::SetMarkResponseFut;
34195    type GetMarkResponseFut: std::future::Future<Output = Result<BaseSocketGetMarkResult, fidl::Error>>
34196        + Send;
34197    fn r#get_mark(&self, domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut;
34198    type GetCookieResponseFut: std::future::Future<Output = Result<BaseSocketGetCookieResult, fidl::Error>>
34199        + Send;
34200    fn r#get_cookie(&self) -> Self::GetCookieResponseFut;
34201    type BindResponseFut: std::future::Future<Output = Result<BaseNetworkSocketBindResult, fidl::Error>>
34202        + Send;
34203    fn r#bind(&self, addr: &fidl_fuchsia_net::SocketAddress) -> Self::BindResponseFut;
34204    type ConnectResponseFut: std::future::Future<Output = Result<BaseNetworkSocketConnectResult, fidl::Error>>
34205        + Send;
34206    fn r#connect(&self, addr: &fidl_fuchsia_net::SocketAddress) -> Self::ConnectResponseFut;
34207    type DisconnectResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDisconnectResult, fidl::Error>>
34208        + Send;
34209    fn r#disconnect(&self) -> Self::DisconnectResponseFut;
34210    type GetSockNameResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetSockNameResult, fidl::Error>>
34211        + Send;
34212    fn r#get_sock_name(&self) -> Self::GetSockNameResponseFut;
34213    type GetPeerNameResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetPeerNameResult, fidl::Error>>
34214        + Send;
34215    fn r#get_peer_name(&self) -> Self::GetPeerNameResponseFut;
34216    type ShutdownResponseFut: std::future::Future<Output = Result<BaseNetworkSocketShutdownResult, fidl::Error>>
34217        + Send;
34218    fn r#shutdown(&self, mode: ShutdownMode) -> Self::ShutdownResponseFut;
34219    type SetIpTypeOfServiceResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error>>
34220        + Send;
34221    fn r#set_ip_type_of_service(&self, value: u8) -> Self::SetIpTypeOfServiceResponseFut;
34222    type GetIpTypeOfServiceResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error>>
34223        + Send;
34224    fn r#get_ip_type_of_service(&self) -> Self::GetIpTypeOfServiceResponseFut;
34225    type SetIpTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTtlResult, fidl::Error>>
34226        + Send;
34227    fn r#set_ip_ttl(&self, value: &OptionalUint8) -> Self::SetIpTtlResponseFut;
34228    type GetIpTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTtlResult, fidl::Error>>
34229        + Send;
34230    fn r#get_ip_ttl(&self) -> Self::GetIpTtlResponseFut;
34231    type SetIpPacketInfoResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error>>
34232        + Send;
34233    fn r#set_ip_packet_info(&self, value: bool) -> Self::SetIpPacketInfoResponseFut;
34234    type GetIpPacketInfoResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error>>
34235        + Send;
34236    fn r#get_ip_packet_info(&self) -> Self::GetIpPacketInfoResponseFut;
34237    type SetIpReceiveTypeOfServiceResponseFut: std::future::Future<
34238            Output = Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error>,
34239        > + Send;
34240    fn r#set_ip_receive_type_of_service(
34241        &self,
34242        value: bool,
34243    ) -> Self::SetIpReceiveTypeOfServiceResponseFut;
34244    type GetIpReceiveTypeOfServiceResponseFut: std::future::Future<
34245            Output = Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error>,
34246        > + Send;
34247    fn r#get_ip_receive_type_of_service(&self) -> Self::GetIpReceiveTypeOfServiceResponseFut;
34248    type SetIpReceiveTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error>>
34249        + Send;
34250    fn r#set_ip_receive_ttl(&self, value: bool) -> Self::SetIpReceiveTtlResponseFut;
34251    type GetIpReceiveTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error>>
34252        + Send;
34253    fn r#get_ip_receive_ttl(&self) -> Self::GetIpReceiveTtlResponseFut;
34254    type SetIpMulticastInterfaceResponseFut: std::future::Future<
34255            Output = Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error>,
34256        > + Send;
34257    fn r#set_ip_multicast_interface(
34258        &self,
34259        iface: u64,
34260        address: &fidl_fuchsia_net::Ipv4Address,
34261    ) -> Self::SetIpMulticastInterfaceResponseFut;
34262    type GetIpMulticastInterfaceResponseFut: std::future::Future<
34263            Output = Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error>,
34264        > + Send;
34265    fn r#get_ip_multicast_interface(&self) -> Self::GetIpMulticastInterfaceResponseFut;
34266    type SetIpMulticastTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error>>
34267        + Send;
34268    fn r#set_ip_multicast_ttl(&self, value: &OptionalUint8) -> Self::SetIpMulticastTtlResponseFut;
34269    type GetIpMulticastTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error>>
34270        + Send;
34271    fn r#get_ip_multicast_ttl(&self) -> Self::GetIpMulticastTtlResponseFut;
34272    type SetIpMulticastLoopbackResponseFut: std::future::Future<
34273            Output = Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error>,
34274        > + Send;
34275    fn r#set_ip_multicast_loopback(&self, value: bool) -> Self::SetIpMulticastLoopbackResponseFut;
34276    type GetIpMulticastLoopbackResponseFut: std::future::Future<
34277            Output = Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error>,
34278        > + Send;
34279    fn r#get_ip_multicast_loopback(&self) -> Self::GetIpMulticastLoopbackResponseFut;
34280    type AddIpMembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error>>
34281        + Send;
34282    fn r#add_ip_membership(
34283        &self,
34284        membership: &IpMulticastMembership,
34285    ) -> Self::AddIpMembershipResponseFut;
34286    type DropIpMembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error>>
34287        + Send;
34288    fn r#drop_ip_membership(
34289        &self,
34290        membership: &IpMulticastMembership,
34291    ) -> Self::DropIpMembershipResponseFut;
34292    type SetIpTransparentResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error>>
34293        + Send;
34294    fn r#set_ip_transparent(&self, value: bool) -> Self::SetIpTransparentResponseFut;
34295    type GetIpTransparentResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error>>
34296        + Send;
34297    fn r#get_ip_transparent(&self) -> Self::GetIpTransparentResponseFut;
34298    type SetIpReceiveOriginalDestinationAddressResponseFut: std::future::Future<
34299            Output = Result<
34300                BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
34301                fidl::Error,
34302            >,
34303        > + Send;
34304    fn r#set_ip_receive_original_destination_address(
34305        &self,
34306        value: bool,
34307    ) -> Self::SetIpReceiveOriginalDestinationAddressResponseFut;
34308    type GetIpReceiveOriginalDestinationAddressResponseFut: std::future::Future<
34309            Output = Result<
34310                BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
34311                fidl::Error,
34312            >,
34313        > + Send;
34314    fn r#get_ip_receive_original_destination_address(
34315        &self,
34316    ) -> Self::GetIpReceiveOriginalDestinationAddressResponseFut;
34317    type AddIpv6MembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error>>
34318        + Send;
34319    fn r#add_ipv6_membership(
34320        &self,
34321        membership: &Ipv6MulticastMembership,
34322    ) -> Self::AddIpv6MembershipResponseFut;
34323    type DropIpv6MembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error>>
34324        + Send;
34325    fn r#drop_ipv6_membership(
34326        &self,
34327        membership: &Ipv6MulticastMembership,
34328    ) -> Self::DropIpv6MembershipResponseFut;
34329    type SetIpv6MulticastInterfaceResponseFut: std::future::Future<
34330            Output = Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error>,
34331        > + Send;
34332    fn r#set_ipv6_multicast_interface(
34333        &self,
34334        value: u64,
34335    ) -> Self::SetIpv6MulticastInterfaceResponseFut;
34336    type GetIpv6MulticastInterfaceResponseFut: std::future::Future<
34337            Output = Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error>,
34338        > + Send;
34339    fn r#get_ipv6_multicast_interface(&self) -> Self::GetIpv6MulticastInterfaceResponseFut;
34340    type SetIpv6UnicastHopsResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error>>
34341        + Send;
34342    fn r#set_ipv6_unicast_hops(&self, value: &OptionalUint8)
34343    -> Self::SetIpv6UnicastHopsResponseFut;
34344    type GetIpv6UnicastHopsResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error>>
34345        + Send;
34346    fn r#get_ipv6_unicast_hops(&self) -> Self::GetIpv6UnicastHopsResponseFut;
34347    type SetIpv6ReceiveHopLimitResponseFut: std::future::Future<
34348            Output = Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error>,
34349        > + Send;
34350    fn r#set_ipv6_receive_hop_limit(&self, value: bool) -> Self::SetIpv6ReceiveHopLimitResponseFut;
34351    type GetIpv6ReceiveHopLimitResponseFut: std::future::Future<
34352            Output = Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error>,
34353        > + Send;
34354    fn r#get_ipv6_receive_hop_limit(&self) -> Self::GetIpv6ReceiveHopLimitResponseFut;
34355    type SetIpv6MulticastHopsResponseFut: std::future::Future<
34356            Output = Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error>,
34357        > + Send;
34358    fn r#set_ipv6_multicast_hops(
34359        &self,
34360        value: &OptionalUint8,
34361    ) -> Self::SetIpv6MulticastHopsResponseFut;
34362    type GetIpv6MulticastHopsResponseFut: std::future::Future<
34363            Output = Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error>,
34364        > + Send;
34365    fn r#get_ipv6_multicast_hops(&self) -> Self::GetIpv6MulticastHopsResponseFut;
34366    type SetIpv6MulticastLoopbackResponseFut: std::future::Future<
34367            Output = Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error>,
34368        > + Send;
34369    fn r#set_ipv6_multicast_loopback(
34370        &self,
34371        value: bool,
34372    ) -> Self::SetIpv6MulticastLoopbackResponseFut;
34373    type GetIpv6MulticastLoopbackResponseFut: std::future::Future<
34374            Output = Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error>,
34375        > + Send;
34376    fn r#get_ipv6_multicast_loopback(&self) -> Self::GetIpv6MulticastLoopbackResponseFut;
34377    type SetIpv6OnlyResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error>>
34378        + Send;
34379    fn r#set_ipv6_only(&self, value: bool) -> Self::SetIpv6OnlyResponseFut;
34380    type GetIpv6OnlyResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error>>
34381        + Send;
34382    fn r#get_ipv6_only(&self) -> Self::GetIpv6OnlyResponseFut;
34383    type SetIpv6ReceiveTrafficClassResponseFut: std::future::Future<
34384            Output = Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error>,
34385        > + Send;
34386    fn r#set_ipv6_receive_traffic_class(
34387        &self,
34388        value: bool,
34389    ) -> Self::SetIpv6ReceiveTrafficClassResponseFut;
34390    type GetIpv6ReceiveTrafficClassResponseFut: std::future::Future<
34391            Output = Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error>,
34392        > + Send;
34393    fn r#get_ipv6_receive_traffic_class(&self) -> Self::GetIpv6ReceiveTrafficClassResponseFut;
34394    type SetIpv6TrafficClassResponseFut: std::future::Future<
34395            Output = Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error>,
34396        > + Send;
34397    fn r#set_ipv6_traffic_class(
34398        &self,
34399        value: &OptionalUint8,
34400    ) -> Self::SetIpv6TrafficClassResponseFut;
34401    type GetIpv6TrafficClassResponseFut: std::future::Future<
34402            Output = Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error>,
34403        > + Send;
34404    fn r#get_ipv6_traffic_class(&self) -> Self::GetIpv6TrafficClassResponseFut;
34405    type SetIpv6ReceivePacketInfoResponseFut: std::future::Future<
34406            Output = Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error>,
34407        > + Send;
34408    fn r#set_ipv6_receive_packet_info(
34409        &self,
34410        value: bool,
34411    ) -> Self::SetIpv6ReceivePacketInfoResponseFut;
34412    type GetIpv6ReceivePacketInfoResponseFut: std::future::Future<
34413            Output = Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error>,
34414        > + Send;
34415    fn r#get_ipv6_receive_packet_info(&self) -> Self::GetIpv6ReceivePacketInfoResponseFut;
34416    type GetOriginalDestinationResponseFut: std::future::Future<
34417            Output = Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error>,
34418        > + Send;
34419    fn r#get_original_destination(&self) -> Self::GetOriginalDestinationResponseFut;
34420    type GetInfoResponseFut: std::future::Future<Output = Result<BaseDatagramSocketGetInfoResult, fidl::Error>>
34421        + Send;
34422    fn r#get_info(&self) -> Self::GetInfoResponseFut;
34423    type DescribeResponseFut: std::future::Future<Output = Result<DatagramSocketDescribeResponse, fidl::Error>>
34424        + Send;
34425    fn r#describe(&self) -> Self::DescribeResponseFut;
34426    type SendMsgPreflightResponseFut: std::future::Future<Output = Result<DatagramSocketSendMsgPreflightResult, fidl::Error>>
34427        + Send;
34428    fn r#send_msg_preflight(
34429        &self,
34430        payload: &DatagramSocketSendMsgPreflightRequest,
34431    ) -> Self::SendMsgPreflightResponseFut;
34432    type RecvMsgPostflightResponseFut: std::future::Future<Output = Result<DatagramSocketRecvMsgPostflightResult, fidl::Error>>
34433        + Send;
34434    fn r#recv_msg_postflight(&self) -> Self::RecvMsgPostflightResponseFut;
34435}
34436#[derive(Debug)]
34437#[cfg(target_os = "fuchsia")]
34438pub struct DatagramSocketSynchronousProxy {
34439    client: fidl::client::sync::Client,
34440}
34441
34442#[cfg(target_os = "fuchsia")]
34443impl fidl::endpoints::SynchronousProxy for DatagramSocketSynchronousProxy {
34444    type Proxy = DatagramSocketProxy;
34445    type Protocol = DatagramSocketMarker;
34446
34447    fn from_channel(inner: fidl::Channel) -> Self {
34448        Self::new(inner)
34449    }
34450
34451    fn into_channel(self) -> fidl::Channel {
34452        self.client.into_channel()
34453    }
34454
34455    fn as_channel(&self) -> &fidl::Channel {
34456        self.client.as_channel()
34457    }
34458}
34459
34460#[cfg(target_os = "fuchsia")]
34461impl DatagramSocketSynchronousProxy {
34462    pub fn new(channel: fidl::Channel) -> Self {
34463        Self { client: fidl::client::sync::Client::new(channel) }
34464    }
34465
34466    pub fn into_channel(self) -> fidl::Channel {
34467        self.client.into_channel()
34468    }
34469
34470    /// Waits until an event arrives and returns it. It is safe for other
34471    /// threads to make concurrent requests while waiting for an event.
34472    pub fn wait_for_event(
34473        &self,
34474        deadline: zx::MonotonicInstant,
34475    ) -> Result<DatagramSocketEvent, fidl::Error> {
34476        DatagramSocketEvent::decode(self.client.wait_for_event::<DatagramSocketMarker>(deadline)?)
34477    }
34478
34479    pub fn r#clone(
34480        &self,
34481        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
34482    ) -> Result<(), fidl::Error> {
34483        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
34484            (request,),
34485            0x20d8a7aba2168a79,
34486            fidl::encoding::DynamicFlags::empty(),
34487        )
34488    }
34489
34490    /// Terminates the connection.
34491    ///
34492    /// After calling `Close`, the client must not send any other requests.
34493    ///
34494    /// Servers, after sending the status response, should close the connection
34495    /// regardless of status and without sending an epitaph.
34496    ///
34497    /// Closing the client end of the channel should be semantically equivalent
34498    /// to calling `Close` without knowing when the close has completed or its
34499    /// status.
34500    pub fn r#close(
34501        &self,
34502        ___deadline: zx::MonotonicInstant,
34503    ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
34504        let _response = self.client.send_query::<
34505            fidl::encoding::EmptyPayload,
34506            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
34507            DatagramSocketMarker,
34508        >(
34509            (),
34510            0x5ac5d459ad7f657e,
34511            fidl::encoding::DynamicFlags::empty(),
34512            ___deadline,
34513        )?;
34514        Ok(_response.map(|x| x))
34515    }
34516
34517    pub fn r#query(&self, ___deadline: zx::MonotonicInstant) -> Result<Vec<u8>, fidl::Error> {
34518        let _response = self.client.send_query::<
34519            fidl::encoding::EmptyPayload,
34520            fidl_fuchsia_unknown::QueryableQueryResponse,
34521            DatagramSocketMarker,
34522        >(
34523            (),
34524            0x2658edee9decfc06,
34525            fidl::encoding::DynamicFlags::empty(),
34526            ___deadline,
34527        )?;
34528        Ok(_response.protocol)
34529    }
34530
34531    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
34532    pub fn r#set_reuse_address(
34533        &self,
34534        mut value: bool,
34535        ___deadline: zx::MonotonicInstant,
34536    ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
34537        let _response =
34538            self.client.send_query::<BaseSocketSetReuseAddressRequest, fidl::encoding::ResultType<
34539                fidl::encoding::EmptyStruct,
34540                fidl_fuchsia_posix::Errno,
34541            >, DatagramSocketMarker>(
34542                (value,),
34543                0x1fd74ee8b9a4a876,
34544                fidl::encoding::DynamicFlags::empty(),
34545                ___deadline,
34546            )?;
34547        Ok(_response.map(|x| x))
34548    }
34549
34550    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
34551    pub fn r#get_reuse_address(
34552        &self,
34553        ___deadline: zx::MonotonicInstant,
34554    ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
34555        let _response =
34556            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34557                BaseSocketGetReuseAddressResponse,
34558                fidl_fuchsia_posix::Errno,
34559            >, DatagramSocketMarker>(
34560                (),
34561                0x67b7206b8d1bc0a5,
34562                fidl::encoding::DynamicFlags::empty(),
34563                ___deadline,
34564            )?;
34565        Ok(_response.map(|x| x.value))
34566    }
34567
34568    /// Get `SOL_SOCKET` -> `SO_ERROR`.
34569    /// Returns the last error if there is an error set on the socket.
34570    pub fn r#get_error(
34571        &self,
34572        ___deadline: zx::MonotonicInstant,
34573    ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
34574        let _response =
34575            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34576                fidl::encoding::EmptyStruct,
34577                fidl_fuchsia_posix::Errno,
34578            >, DatagramSocketMarker>(
34579                (),
34580                0x5aad39b33e5f6ebb,
34581                fidl::encoding::DynamicFlags::empty(),
34582                ___deadline,
34583            )?;
34584        Ok(_response.map(|x| x))
34585    }
34586
34587    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
34588    pub fn r#set_broadcast(
34589        &self,
34590        mut value: bool,
34591        ___deadline: zx::MonotonicInstant,
34592    ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
34593        let _response =
34594            self.client.send_query::<BaseSocketSetBroadcastRequest, fidl::encoding::ResultType<
34595                fidl::encoding::EmptyStruct,
34596                fidl_fuchsia_posix::Errno,
34597            >, DatagramSocketMarker>(
34598                (value,),
34599                0x6023e081ce3cd947,
34600                fidl::encoding::DynamicFlags::empty(),
34601                ___deadline,
34602            )?;
34603        Ok(_response.map(|x| x))
34604    }
34605
34606    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
34607    pub fn r#get_broadcast(
34608        &self,
34609        ___deadline: zx::MonotonicInstant,
34610    ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
34611        let _response =
34612            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34613                BaseSocketGetBroadcastResponse,
34614                fidl_fuchsia_posix::Errno,
34615            >, DatagramSocketMarker>(
34616                (),
34617                0x68796fc556f9780d,
34618                fidl::encoding::DynamicFlags::empty(),
34619                ___deadline,
34620            )?;
34621        Ok(_response.map(|x| x.value))
34622    }
34623
34624    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
34625    pub fn r#set_send_buffer(
34626        &self,
34627        mut value_bytes: u64,
34628        ___deadline: zx::MonotonicInstant,
34629    ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
34630        let _response =
34631            self.client.send_query::<BaseSocketSetSendBufferRequest, fidl::encoding::ResultType<
34632                fidl::encoding::EmptyStruct,
34633                fidl_fuchsia_posix::Errno,
34634            >, DatagramSocketMarker>(
34635                (value_bytes,),
34636                0x756eac32d73a7a70,
34637                fidl::encoding::DynamicFlags::empty(),
34638                ___deadline,
34639            )?;
34640        Ok(_response.map(|x| x))
34641    }
34642
34643    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
34644    pub fn r#get_send_buffer(
34645        &self,
34646        ___deadline: zx::MonotonicInstant,
34647    ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
34648        let _response =
34649            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34650                BaseSocketGetSendBufferResponse,
34651                fidl_fuchsia_posix::Errno,
34652            >, DatagramSocketMarker>(
34653                (),
34654                0x78a52fd9c7b2410b,
34655                fidl::encoding::DynamicFlags::empty(),
34656                ___deadline,
34657            )?;
34658        Ok(_response.map(|x| x.value_bytes))
34659    }
34660
34661    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
34662    pub fn r#set_receive_buffer(
34663        &self,
34664        mut value_bytes: u64,
34665        ___deadline: zx::MonotonicInstant,
34666    ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
34667        let _response =
34668            self.client
34669                .send_query::<BaseSocketSetReceiveBufferRequest, fidl::encoding::ResultType<
34670                    fidl::encoding::EmptyStruct,
34671                    fidl_fuchsia_posix::Errno,
34672                >, DatagramSocketMarker>(
34673                    (value_bytes,),
34674                    0x6b0cf2f1919c7001,
34675                    fidl::encoding::DynamicFlags::empty(),
34676                    ___deadline,
34677                )?;
34678        Ok(_response.map(|x| x))
34679    }
34680
34681    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
34682    pub fn r#get_receive_buffer(
34683        &self,
34684        ___deadline: zx::MonotonicInstant,
34685    ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
34686        let _response =
34687            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34688                BaseSocketGetReceiveBufferResponse,
34689                fidl_fuchsia_posix::Errno,
34690            >, DatagramSocketMarker>(
34691                (),
34692                0x14c1a4b64f709e5c,
34693                fidl::encoding::DynamicFlags::empty(),
34694                ___deadline,
34695            )?;
34696        Ok(_response.map(|x| x.value_bytes))
34697    }
34698
34699    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
34700    pub fn r#set_keep_alive(
34701        &self,
34702        mut value: bool,
34703        ___deadline: zx::MonotonicInstant,
34704    ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
34705        let _response =
34706            self.client.send_query::<BaseSocketSetKeepAliveRequest, fidl::encoding::ResultType<
34707                fidl::encoding::EmptyStruct,
34708                fidl_fuchsia_posix::Errno,
34709            >, DatagramSocketMarker>(
34710                (value,),
34711                0x572df8f0b920d2c7,
34712                fidl::encoding::DynamicFlags::empty(),
34713                ___deadline,
34714            )?;
34715        Ok(_response.map(|x| x))
34716    }
34717
34718    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
34719    pub fn r#get_keep_alive(
34720        &self,
34721        ___deadline: zx::MonotonicInstant,
34722    ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
34723        let _response =
34724            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34725                BaseSocketGetKeepAliveResponse,
34726                fidl_fuchsia_posix::Errno,
34727            >, DatagramSocketMarker>(
34728                (),
34729                0x2dd29d3215f2c9d2,
34730                fidl::encoding::DynamicFlags::empty(),
34731                ___deadline,
34732            )?;
34733        Ok(_response.map(|x| x.value))
34734    }
34735
34736    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
34737    pub fn r#set_out_of_band_inline(
34738        &self,
34739        mut value: bool,
34740        ___deadline: zx::MonotonicInstant,
34741    ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
34742        let _response =
34743            self.client
34744                .send_query::<BaseSocketSetOutOfBandInlineRequest, fidl::encoding::ResultType<
34745                    fidl::encoding::EmptyStruct,
34746                    fidl_fuchsia_posix::Errno,
34747                >, DatagramSocketMarker>(
34748                    (value,),
34749                    0x3ecb49968bee439,
34750                    fidl::encoding::DynamicFlags::empty(),
34751                    ___deadline,
34752                )?;
34753        Ok(_response.map(|x| x))
34754    }
34755
34756    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
34757    pub fn r#get_out_of_band_inline(
34758        &self,
34759        ___deadline: zx::MonotonicInstant,
34760    ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
34761        let _response =
34762            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34763                BaseSocketGetOutOfBandInlineResponse,
34764                fidl_fuchsia_posix::Errno,
34765            >, DatagramSocketMarker>(
34766                (),
34767                0x348c1ab3aeca1745,
34768                fidl::encoding::DynamicFlags::empty(),
34769                ___deadline,
34770            )?;
34771        Ok(_response.map(|x| x.value))
34772    }
34773
34774    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
34775    pub fn r#set_no_check(
34776        &self,
34777        mut value: bool,
34778        ___deadline: zx::MonotonicInstant,
34779    ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
34780        let _response =
34781            self.client.send_query::<BaseSocketSetNoCheckRequest, fidl::encoding::ResultType<
34782                fidl::encoding::EmptyStruct,
34783                fidl_fuchsia_posix::Errno,
34784            >, DatagramSocketMarker>(
34785                (value,),
34786                0x6bbf00c53a4c78c2,
34787                fidl::encoding::DynamicFlags::empty(),
34788                ___deadline,
34789            )?;
34790        Ok(_response.map(|x| x))
34791    }
34792
34793    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
34794    pub fn r#get_no_check(
34795        &self,
34796        ___deadline: zx::MonotonicInstant,
34797    ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
34798        let _response =
34799            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34800                BaseSocketGetNoCheckResponse,
34801                fidl_fuchsia_posix::Errno,
34802            >, DatagramSocketMarker>(
34803                (),
34804                0x2cd4249286417694,
34805                fidl::encoding::DynamicFlags::empty(),
34806                ___deadline,
34807            )?;
34808        Ok(_response.map(|x| x.value))
34809    }
34810
34811    /// Set `SOL_SOCKET` -> `SO_LINGER`.
34812    pub fn r#set_linger(
34813        &self,
34814        mut linger: bool,
34815        mut length_secs: u32,
34816        ___deadline: zx::MonotonicInstant,
34817    ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
34818        let _response =
34819            self.client.send_query::<BaseSocketSetLingerRequest, fidl::encoding::ResultType<
34820                fidl::encoding::EmptyStruct,
34821                fidl_fuchsia_posix::Errno,
34822            >, DatagramSocketMarker>(
34823                (linger, length_secs),
34824                0x45386351246e998e,
34825                fidl::encoding::DynamicFlags::empty(),
34826                ___deadline,
34827            )?;
34828        Ok(_response.map(|x| x))
34829    }
34830
34831    /// Get `SOL_SOCKET` -> `SO_LINGER`.
34832    pub fn r#get_linger(
34833        &self,
34834        ___deadline: zx::MonotonicInstant,
34835    ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
34836        let _response =
34837            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34838                BaseSocketGetLingerResponse,
34839                fidl_fuchsia_posix::Errno,
34840            >, DatagramSocketMarker>(
34841                (),
34842                0x48eb20fc5ccb0e45,
34843                fidl::encoding::DynamicFlags::empty(),
34844                ___deadline,
34845            )?;
34846        Ok(_response.map(|x| (x.linger, x.length_secs)))
34847    }
34848
34849    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
34850    pub fn r#set_reuse_port(
34851        &self,
34852        mut value: ReusePortOption,
34853        ___deadline: zx::MonotonicInstant,
34854    ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
34855        let _response =
34856            self.client.send_query::<BaseSocketSetReusePortRequest, fidl::encoding::ResultType<
34857                fidl::encoding::EmptyStruct,
34858                fidl_fuchsia_posix::Errno,
34859            >, DatagramSocketMarker>(
34860                (&mut value,),
34861                0x547dc9cc0455189e,
34862                fidl::encoding::DynamicFlags::empty(),
34863                ___deadline,
34864            )?;
34865        Ok(_response.map(|x| x))
34866    }
34867
34868    pub fn r#set_reuse_port_deprecated(
34869        &self,
34870        mut value: bool,
34871        ___deadline: zx::MonotonicInstant,
34872    ) -> Result<BaseSocketSetReusePortDeprecatedResult, fidl::Error> {
34873        let _response =
34874            self.client
34875                .send_query::<BaseSocketSetReusePortDeprecatedRequest, fidl::encoding::ResultType<
34876                    fidl::encoding::EmptyStruct,
34877                    fidl_fuchsia_posix::Errno,
34878                >, DatagramSocketMarker>(
34879                    (value,),
34880                    0x24dd3e5cb36d9ccb,
34881                    fidl::encoding::DynamicFlags::empty(),
34882                    ___deadline,
34883                )?;
34884        Ok(_response.map(|x| x))
34885    }
34886
34887    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
34888    pub fn r#get_reuse_port(
34889        &self,
34890        ___deadline: zx::MonotonicInstant,
34891    ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
34892        let _response =
34893            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34894                BaseSocketGetReusePortResponse,
34895                fidl_fuchsia_posix::Errno,
34896            >, DatagramSocketMarker>(
34897                (),
34898                0x7a112c1ab54ff828,
34899                fidl::encoding::DynamicFlags::empty(),
34900                ___deadline,
34901            )?;
34902        Ok(_response.map(|x| x.value))
34903    }
34904
34905    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
34906    pub fn r#get_accept_conn(
34907        &self,
34908        ___deadline: zx::MonotonicInstant,
34909    ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
34910        let _response =
34911            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34912                BaseSocketGetAcceptConnResponse,
34913                fidl_fuchsia_posix::Errno,
34914            >, DatagramSocketMarker>(
34915                (),
34916                0x67ce6db6c2ec8966,
34917                fidl::encoding::DynamicFlags::empty(),
34918                ___deadline,
34919            )?;
34920        Ok(_response.map(|x| x.value))
34921    }
34922
34923    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
34924    pub fn r#set_bind_to_device(
34925        &self,
34926        mut value: &str,
34927        ___deadline: zx::MonotonicInstant,
34928    ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
34929        let _response =
34930            self.client.send_query::<BaseSocketSetBindToDeviceRequest, fidl::encoding::ResultType<
34931                fidl::encoding::EmptyStruct,
34932                fidl_fuchsia_posix::Errno,
34933            >, DatagramSocketMarker>(
34934                (value,),
34935                0x2118b483f28aafc4,
34936                fidl::encoding::DynamicFlags::empty(),
34937                ___deadline,
34938            )?;
34939        Ok(_response.map(|x| x))
34940    }
34941
34942    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
34943    pub fn r#get_bind_to_device(
34944        &self,
34945        ___deadline: zx::MonotonicInstant,
34946    ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
34947        let _response =
34948            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34949                BaseSocketGetBindToDeviceResponse,
34950                fidl_fuchsia_posix::Errno,
34951            >, DatagramSocketMarker>(
34952                (),
34953                0x1ab1fbf0ef7906c8,
34954                fidl::encoding::DynamicFlags::empty(),
34955                ___deadline,
34956            )?;
34957        Ok(_response.map(|x| x.value))
34958    }
34959
34960    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
34961    /// If `value` is 0, this clears the bound interface.
34962    pub fn r#set_bind_to_interface_index(
34963        &self,
34964        mut value: u64,
34965        ___deadline: zx::MonotonicInstant,
34966    ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
34967        let _response =
34968            self.client
34969                .send_query::<BaseSocketSetBindToInterfaceIndexRequest, fidl::encoding::ResultType<
34970                    fidl::encoding::EmptyStruct,
34971                    fidl_fuchsia_posix::Errno,
34972                >, DatagramSocketMarker>(
34973                    (value,),
34974                    0x6e387a0def00821,
34975                    fidl::encoding::DynamicFlags::empty(),
34976                    ___deadline,
34977                )?;
34978        Ok(_response.map(|x| x))
34979    }
34980
34981    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
34982    pub fn r#get_bind_to_interface_index(
34983        &self,
34984        ___deadline: zx::MonotonicInstant,
34985    ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
34986        let _response =
34987            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34988                BaseSocketGetBindToInterfaceIndexResponse,
34989                fidl_fuchsia_posix::Errno,
34990            >, DatagramSocketMarker>(
34991                (),
34992                0x59c31dd3e3078295,
34993                fidl::encoding::DynamicFlags::empty(),
34994                ___deadline,
34995            )?;
34996        Ok(_response.map(|x| x.value))
34997    }
34998
34999    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
35000    pub fn r#set_timestamp(
35001        &self,
35002        mut value: TimestampOption,
35003        ___deadline: zx::MonotonicInstant,
35004    ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
35005        let _response =
35006            self.client.send_query::<BaseSocketSetTimestampRequest, fidl::encoding::ResultType<
35007                fidl::encoding::EmptyStruct,
35008                fidl_fuchsia_posix::Errno,
35009            >, DatagramSocketMarker>(
35010                (value,),
35011                0x285d6516c263d839,
35012                fidl::encoding::DynamicFlags::empty(),
35013                ___deadline,
35014            )?;
35015        Ok(_response.map(|x| x))
35016    }
35017
35018    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
35019    pub fn r#get_timestamp(
35020        &self,
35021        ___deadline: zx::MonotonicInstant,
35022    ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
35023        let _response =
35024            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35025                BaseSocketGetTimestampResponse,
35026                fidl_fuchsia_posix::Errno,
35027            >, DatagramSocketMarker>(
35028                (),
35029                0x49f2fffbbcc2bd27,
35030                fidl::encoding::DynamicFlags::empty(),
35031                ___deadline,
35032            )?;
35033        Ok(_response.map(|x| x.value))
35034    }
35035
35036    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
35037    /// unlike the standard SO_MARK, this API has multiple mark domains and each
35038    /// mark can be set independently in each domain.
35039    pub fn r#set_mark(
35040        &self,
35041        mut domain: fidl_fuchsia_net::MarkDomain,
35042        mut mark: &OptionalUint32,
35043        ___deadline: zx::MonotonicInstant,
35044    ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
35045        let _response =
35046            self.client.send_query::<BaseSocketSetMarkRequest, fidl::encoding::ResultType<
35047                fidl::encoding::EmptyStruct,
35048                fidl_fuchsia_posix::Errno,
35049            >, DatagramSocketMarker>(
35050                (domain, mark),
35051                0x6ead6de09f653236,
35052                fidl::encoding::DynamicFlags::empty(),
35053                ___deadline,
35054            )?;
35055        Ok(_response.map(|x| x))
35056    }
35057
35058    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
35059    /// unlike the standard SO_MARK, this API has multiple mark domains and each
35060    /// mark can be retrieved independently in each domain.
35061    pub fn r#get_mark(
35062        &self,
35063        mut domain: fidl_fuchsia_net::MarkDomain,
35064        ___deadline: zx::MonotonicInstant,
35065    ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
35066        let _response =
35067            self.client.send_query::<BaseSocketGetMarkRequest, fidl::encoding::ResultType<
35068                BaseSocketGetMarkResponse,
35069                fidl_fuchsia_posix::Errno,
35070            >, DatagramSocketMarker>(
35071                (domain,),
35072                0x57a2752c61d93d47,
35073                fidl::encoding::DynamicFlags::empty(),
35074                ___deadline,
35075            )?;
35076        Ok(_response.map(|x| x.mark))
35077    }
35078
35079    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
35080    pub fn r#get_cookie(
35081        &self,
35082        ___deadline: zx::MonotonicInstant,
35083    ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
35084        let _response =
35085            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35086                BaseSocketGetCookieResponse,
35087                fidl_fuchsia_posix::Errno,
35088            >, DatagramSocketMarker>(
35089                (),
35090                0x2c2f47fd8f924e52,
35091                fidl::encoding::DynamicFlags::empty(),
35092                ___deadline,
35093            )?;
35094        Ok(_response.map(|x| x.value))
35095    }
35096
35097    /// Sets the local address used for the socket.
35098    pub fn r#bind(
35099        &self,
35100        mut addr: &fidl_fuchsia_net::SocketAddress,
35101        ___deadline: zx::MonotonicInstant,
35102    ) -> Result<BaseNetworkSocketBindResult, fidl::Error> {
35103        let _response =
35104            self.client.send_query::<BaseNetworkSocketBindRequest, fidl::encoding::ResultType<
35105                fidl::encoding::EmptyStruct,
35106                fidl_fuchsia_posix::Errno,
35107            >, DatagramSocketMarker>(
35108                (addr,),
35109                0x4bc6400ae92125d,
35110                fidl::encoding::DynamicFlags::empty(),
35111                ___deadline,
35112            )?;
35113        Ok(_response.map(|x| x))
35114    }
35115
35116    /// Initiates a connection to a remote address.
35117    pub fn r#connect(
35118        &self,
35119        mut addr: &fidl_fuchsia_net::SocketAddress,
35120        ___deadline: zx::MonotonicInstant,
35121    ) -> Result<BaseNetworkSocketConnectResult, fidl::Error> {
35122        let _response =
35123            self.client.send_query::<BaseNetworkSocketConnectRequest, fidl::encoding::ResultType<
35124                fidl::encoding::EmptyStruct,
35125                fidl_fuchsia_posix::Errno,
35126            >, DatagramSocketMarker>(
35127                (addr,),
35128                0x5f05f19bfdd38871,
35129                fidl::encoding::DynamicFlags::empty(),
35130                ___deadline,
35131            )?;
35132        Ok(_response.map(|x| x))
35133    }
35134
35135    /// Clears connection information from this socket.
35136    pub fn r#disconnect(
35137        &self,
35138        ___deadline: zx::MonotonicInstant,
35139    ) -> Result<BaseNetworkSocketDisconnectResult, fidl::Error> {
35140        let _response =
35141            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35142                fidl::encoding::EmptyStruct,
35143                fidl_fuchsia_posix::Errno,
35144            >, DatagramSocketMarker>(
35145                (),
35146                0x74e63b91f7b29b2,
35147                fidl::encoding::DynamicFlags::empty(),
35148                ___deadline,
35149            )?;
35150        Ok(_response.map(|x| x))
35151    }
35152
35153    /// Retrieves the local socket address.
35154    pub fn r#get_sock_name(
35155        &self,
35156        ___deadline: zx::MonotonicInstant,
35157    ) -> Result<BaseNetworkSocketGetSockNameResult, fidl::Error> {
35158        let _response =
35159            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35160                BaseNetworkSocketGetSockNameResponse,
35161                fidl_fuchsia_posix::Errno,
35162            >, DatagramSocketMarker>(
35163                (),
35164                0x475f23f84a1a4f85,
35165                fidl::encoding::DynamicFlags::empty(),
35166                ___deadline,
35167            )?;
35168        Ok(_response.map(|x| x.addr))
35169    }
35170
35171    /// Retrieves the remote socket address.
35172    pub fn r#get_peer_name(
35173        &self,
35174        ___deadline: zx::MonotonicInstant,
35175    ) -> Result<BaseNetworkSocketGetPeerNameResult, fidl::Error> {
35176        let _response =
35177            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35178                BaseNetworkSocketGetPeerNameResponse,
35179                fidl_fuchsia_posix::Errno,
35180            >, DatagramSocketMarker>(
35181                (),
35182                0x1ffecf4bd5b6432e,
35183                fidl::encoding::DynamicFlags::empty(),
35184                ___deadline,
35185            )?;
35186        Ok(_response.map(|x| x.addr))
35187    }
35188
35189    /// Shuts down part of the socket.
35190    pub fn r#shutdown(
35191        &self,
35192        mut mode: ShutdownMode,
35193        ___deadline: zx::MonotonicInstant,
35194    ) -> Result<BaseNetworkSocketShutdownResult, fidl::Error> {
35195        let _response =
35196            self.client.send_query::<BaseNetworkSocketShutdownRequest, fidl::encoding::ResultType<
35197                fidl::encoding::EmptyStruct,
35198                fidl_fuchsia_posix::Errno,
35199            >, DatagramSocketMarker>(
35200                (mode,),
35201                0x247f38b6db68c336,
35202                fidl::encoding::DynamicFlags::empty(),
35203                ___deadline,
35204            )?;
35205        Ok(_response.map(|x| x))
35206    }
35207
35208    /// Set `SOL_IP` -> `IP_TOS`.
35209    pub fn r#set_ip_type_of_service(
35210        &self,
35211        mut value: u8,
35212        ___deadline: zx::MonotonicInstant,
35213    ) -> Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error> {
35214        let _response = self.client.send_query::<
35215            BaseNetworkSocketSetIpTypeOfServiceRequest,
35216            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
35217            DatagramSocketMarker,
35218        >(
35219            (value,),
35220            0x995c600475b6d46,
35221            fidl::encoding::DynamicFlags::empty(),
35222            ___deadline,
35223        )?;
35224        Ok(_response.map(|x| x))
35225    }
35226
35227    /// Get `SOL_IP` -> `IP_TOS`.
35228    pub fn r#get_ip_type_of_service(
35229        &self,
35230        ___deadline: zx::MonotonicInstant,
35231    ) -> Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error> {
35232        let _response =
35233            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35234                BaseNetworkSocketGetIpTypeOfServiceResponse,
35235                fidl_fuchsia_posix::Errno,
35236            >, DatagramSocketMarker>(
35237                (),
35238                0x3814a04259f75fcb,
35239                fidl::encoding::DynamicFlags::empty(),
35240                ___deadline,
35241            )?;
35242        Ok(_response.map(|x| x.value))
35243    }
35244
35245    /// Set `SOL_IP` -> `IP_TTL`.
35246    pub fn r#set_ip_ttl(
35247        &self,
35248        mut value: &OptionalUint8,
35249        ___deadline: zx::MonotonicInstant,
35250    ) -> Result<BaseNetworkSocketSetIpTtlResult, fidl::Error> {
35251        let _response =
35252            self.client.send_query::<BaseNetworkSocketSetIpTtlRequest, fidl::encoding::ResultType<
35253                fidl::encoding::EmptyStruct,
35254                fidl_fuchsia_posix::Errno,
35255            >, DatagramSocketMarker>(
35256                (value,),
35257                0x29e2424b433ae1ef,
35258                fidl::encoding::DynamicFlags::empty(),
35259                ___deadline,
35260            )?;
35261        Ok(_response.map(|x| x))
35262    }
35263
35264    /// Get `SOL_IP` -> `IP_TTL`.
35265    pub fn r#get_ip_ttl(
35266        &self,
35267        ___deadline: zx::MonotonicInstant,
35268    ) -> Result<BaseNetworkSocketGetIpTtlResult, fidl::Error> {
35269        let _response =
35270            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35271                BaseNetworkSocketGetIpTtlResponse,
35272                fidl_fuchsia_posix::Errno,
35273            >, DatagramSocketMarker>(
35274                (),
35275                0x47e47fa1f24da471,
35276                fidl::encoding::DynamicFlags::empty(),
35277                ___deadline,
35278            )?;
35279        Ok(_response.map(|x| x.value))
35280    }
35281
35282    /// Set `SOL_IP` -> `IP_PKTINFO`.
35283    pub fn r#set_ip_packet_info(
35284        &self,
35285        mut value: bool,
35286        ___deadline: zx::MonotonicInstant,
35287    ) -> Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error> {
35288        let _response =
35289            self.client
35290                .send_query::<BaseNetworkSocketSetIpPacketInfoRequest, fidl::encoding::ResultType<
35291                    fidl::encoding::EmptyStruct,
35292                    fidl_fuchsia_posix::Errno,
35293                >, DatagramSocketMarker>(
35294                    (value,),
35295                    0x392d16bee20c0e16,
35296                    fidl::encoding::DynamicFlags::empty(),
35297                    ___deadline,
35298                )?;
35299        Ok(_response.map(|x| x))
35300    }
35301
35302    /// Get `SOL_IP` -> `IP_PKTINFO`.
35303    pub fn r#get_ip_packet_info(
35304        &self,
35305        ___deadline: zx::MonotonicInstant,
35306    ) -> Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error> {
35307        let _response =
35308            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35309                BaseNetworkSocketGetIpPacketInfoResponse,
35310                fidl_fuchsia_posix::Errno,
35311            >, DatagramSocketMarker>(
35312                (),
35313                0x54b505f242280740,
35314                fidl::encoding::DynamicFlags::empty(),
35315                ___deadline,
35316            )?;
35317        Ok(_response.map(|x| x.value))
35318    }
35319
35320    /// Set `SOL_IP` -> `IP_RECVTOS`.
35321    pub fn r#set_ip_receive_type_of_service(
35322        &self,
35323        mut value: bool,
35324        ___deadline: zx::MonotonicInstant,
35325    ) -> Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error> {
35326        let _response = self.client.send_query::<
35327            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
35328            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
35329            DatagramSocketMarker,
35330        >(
35331            (value,),
35332            0x6c4f6714995f84ef,
35333            fidl::encoding::DynamicFlags::empty(),
35334            ___deadline,
35335        )?;
35336        Ok(_response.map(|x| x))
35337    }
35338
35339    /// Get `SOL_IP` -> `IP_RECVTOS`.
35340    pub fn r#get_ip_receive_type_of_service(
35341        &self,
35342        ___deadline: zx::MonotonicInstant,
35343    ) -> Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error> {
35344        let _response =
35345            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35346                BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
35347                fidl_fuchsia_posix::Errno,
35348            >, DatagramSocketMarker>(
35349                (),
35350                0x4158ba7dc2795960,
35351                fidl::encoding::DynamicFlags::empty(),
35352                ___deadline,
35353            )?;
35354        Ok(_response.map(|x| x.value))
35355    }
35356
35357    /// Set `SOL_IP` -> `IP_RECVTTL`.
35358    pub fn r#set_ip_receive_ttl(
35359        &self,
35360        mut value: bool,
35361        ___deadline: zx::MonotonicInstant,
35362    ) -> Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error> {
35363        let _response =
35364            self.client
35365                .send_query::<BaseNetworkSocketSetIpReceiveTtlRequest, fidl::encoding::ResultType<
35366                    fidl::encoding::EmptyStruct,
35367                    fidl_fuchsia_posix::Errno,
35368                >, DatagramSocketMarker>(
35369                    (value,),
35370                    0x46f15be0ce0ab82b,
35371                    fidl::encoding::DynamicFlags::empty(),
35372                    ___deadline,
35373                )?;
35374        Ok(_response.map(|x| x))
35375    }
35376
35377    /// Get `SOL_IP` -> `IP_RECVTTL`.
35378    pub fn r#get_ip_receive_ttl(
35379        &self,
35380        ___deadline: zx::MonotonicInstant,
35381    ) -> Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error> {
35382        let _response =
35383            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35384                BaseNetworkSocketGetIpReceiveTtlResponse,
35385                fidl_fuchsia_posix::Errno,
35386            >, DatagramSocketMarker>(
35387                (),
35388                0x678ddd5a5dfa2eb5,
35389                fidl::encoding::DynamicFlags::empty(),
35390                ___deadline,
35391            )?;
35392        Ok(_response.map(|x| x.value))
35393    }
35394
35395    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
35396    pub fn r#set_ip_multicast_interface(
35397        &self,
35398        mut iface: u64,
35399        mut address: &fidl_fuchsia_net::Ipv4Address,
35400        ___deadline: zx::MonotonicInstant,
35401    ) -> Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error> {
35402        let _response = self.client.send_query::<
35403            BaseNetworkSocketSetIpMulticastInterfaceRequest,
35404            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
35405            DatagramSocketMarker,
35406        >(
35407            (iface, address,),
35408            0x752fbfa9b12befe,
35409            fidl::encoding::DynamicFlags::empty(),
35410            ___deadline,
35411        )?;
35412        Ok(_response.map(|x| x))
35413    }
35414
35415    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
35416    pub fn r#get_ip_multicast_interface(
35417        &self,
35418        ___deadline: zx::MonotonicInstant,
35419    ) -> Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error> {
35420        let _response =
35421            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35422                BaseNetworkSocketGetIpMulticastInterfaceResponse,
35423                fidl_fuchsia_posix::Errno,
35424            >, DatagramSocketMarker>(
35425                (),
35426                0x320bd14c4df046c4,
35427                fidl::encoding::DynamicFlags::empty(),
35428                ___deadline,
35429            )?;
35430        Ok(_response.map(|x| x.value))
35431    }
35432
35433    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
35434    pub fn r#set_ip_multicast_ttl(
35435        &self,
35436        mut value: &OptionalUint8,
35437        ___deadline: zx::MonotonicInstant,
35438    ) -> Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error> {
35439        let _response =
35440            self.client
35441                .send_query::<BaseNetworkSocketSetIpMulticastTtlRequest, fidl::encoding::ResultType<
35442                    fidl::encoding::EmptyStruct,
35443                    fidl_fuchsia_posix::Errno,
35444                >, DatagramSocketMarker>(
35445                    (value,),
35446                    0x63134d53772916a1,
35447                    fidl::encoding::DynamicFlags::empty(),
35448                    ___deadline,
35449                )?;
35450        Ok(_response.map(|x| x))
35451    }
35452
35453    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
35454    pub fn r#get_ip_multicast_ttl(
35455        &self,
35456        ___deadline: zx::MonotonicInstant,
35457    ) -> Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error> {
35458        let _response =
35459            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35460                BaseNetworkSocketGetIpMulticastTtlResponse,
35461                fidl_fuchsia_posix::Errno,
35462            >, DatagramSocketMarker>(
35463                (),
35464                0x4665cd378f39e1a,
35465                fidl::encoding::DynamicFlags::empty(),
35466                ___deadline,
35467            )?;
35468        Ok(_response.map(|x| x.value))
35469    }
35470
35471    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
35472    pub fn r#set_ip_multicast_loopback(
35473        &self,
35474        mut value: bool,
35475        ___deadline: zx::MonotonicInstant,
35476    ) -> Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error> {
35477        let _response = self.client.send_query::<
35478            BaseNetworkSocketSetIpMulticastLoopbackRequest,
35479            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
35480            DatagramSocketMarker,
35481        >(
35482            (value,),
35483            0x20c55c11f00943ea,
35484            fidl::encoding::DynamicFlags::empty(),
35485            ___deadline,
35486        )?;
35487        Ok(_response.map(|x| x))
35488    }
35489
35490    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
35491    pub fn r#get_ip_multicast_loopback(
35492        &self,
35493        ___deadline: zx::MonotonicInstant,
35494    ) -> Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error> {
35495        let _response =
35496            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35497                BaseNetworkSocketGetIpMulticastLoopbackResponse,
35498                fidl_fuchsia_posix::Errno,
35499            >, DatagramSocketMarker>(
35500                (),
35501                0x3b6b26ff558298f2,
35502                fidl::encoding::DynamicFlags::empty(),
35503                ___deadline,
35504            )?;
35505        Ok(_response.map(|x| x.value))
35506    }
35507
35508    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
35509    pub fn r#add_ip_membership(
35510        &self,
35511        mut membership: &IpMulticastMembership,
35512        ___deadline: zx::MonotonicInstant,
35513    ) -> Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error> {
35514        let _response =
35515            self.client
35516                .send_query::<BaseNetworkSocketAddIpMembershipRequest, fidl::encoding::ResultType<
35517                    fidl::encoding::EmptyStruct,
35518                    fidl_fuchsia_posix::Errno,
35519                >, DatagramSocketMarker>(
35520                    (membership,),
35521                    0x76bc7df115a3b4d0,
35522                    fidl::encoding::DynamicFlags::empty(),
35523                    ___deadline,
35524                )?;
35525        Ok(_response.map(|x| x))
35526    }
35527
35528    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
35529    pub fn r#drop_ip_membership(
35530        &self,
35531        mut membership: &IpMulticastMembership,
35532        ___deadline: zx::MonotonicInstant,
35533    ) -> Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error> {
35534        let _response =
35535            self.client
35536                .send_query::<BaseNetworkSocketDropIpMembershipRequest, fidl::encoding::ResultType<
35537                    fidl::encoding::EmptyStruct,
35538                    fidl_fuchsia_posix::Errno,
35539                >, DatagramSocketMarker>(
35540                    (membership,),
35541                    0x2888f3099188d03,
35542                    fidl::encoding::DynamicFlags::empty(),
35543                    ___deadline,
35544                )?;
35545        Ok(_response.map(|x| x))
35546    }
35547
35548    /// Set `SOL_IP` -> `IP_TRANSPARENT`
35549    pub fn r#set_ip_transparent(
35550        &self,
35551        mut value: bool,
35552        ___deadline: zx::MonotonicInstant,
35553    ) -> Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error> {
35554        let _response =
35555            self.client
35556                .send_query::<BaseNetworkSocketSetIpTransparentRequest, fidl::encoding::ResultType<
35557                    fidl::encoding::EmptyStruct,
35558                    fidl_fuchsia_posix::Errno,
35559                >, DatagramSocketMarker>(
35560                    (value,),
35561                    0x1ae532b0c066e3a0,
35562                    fidl::encoding::DynamicFlags::empty(),
35563                    ___deadline,
35564                )?;
35565        Ok(_response.map(|x| x))
35566    }
35567
35568    /// Get `SOL_IP` -> `IP_TRANSPARENT`
35569    pub fn r#get_ip_transparent(
35570        &self,
35571        ___deadline: zx::MonotonicInstant,
35572    ) -> Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error> {
35573        let _response =
35574            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35575                BaseNetworkSocketGetIpTransparentResponse,
35576                fidl_fuchsia_posix::Errno,
35577            >, DatagramSocketMarker>(
35578                (),
35579                0x51d43695962ebfb5,
35580                fidl::encoding::DynamicFlags::empty(),
35581                ___deadline,
35582            )?;
35583        Ok(_response.map(|x| x.value))
35584    }
35585
35586    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
35587    pub fn r#set_ip_receive_original_destination_address(
35588        &self,
35589        mut value: bool,
35590        ___deadline: zx::MonotonicInstant,
35591    ) -> Result<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult, fidl::Error> {
35592        let _response = self.client.send_query::<
35593            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
35594            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
35595            DatagramSocketMarker,
35596        >(
35597            (value,),
35598            0x4722b4ce52f7840,
35599            fidl::encoding::DynamicFlags::empty(),
35600            ___deadline,
35601        )?;
35602        Ok(_response.map(|x| x))
35603    }
35604
35605    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
35606    pub fn r#get_ip_receive_original_destination_address(
35607        &self,
35608        ___deadline: zx::MonotonicInstant,
35609    ) -> Result<BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult, fidl::Error> {
35610        let _response =
35611            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35612                BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
35613                fidl_fuchsia_posix::Errno,
35614            >, DatagramSocketMarker>(
35615                (),
35616                0x2a0e7dc5d6bfdfe9,
35617                fidl::encoding::DynamicFlags::empty(),
35618                ___deadline,
35619            )?;
35620        Ok(_response.map(|x| x.value))
35621    }
35622
35623    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
35624    pub fn r#add_ipv6_membership(
35625        &self,
35626        mut membership: &Ipv6MulticastMembership,
35627        ___deadline: zx::MonotonicInstant,
35628    ) -> Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error> {
35629        let _response =
35630            self.client
35631                .send_query::<BaseNetworkSocketAddIpv6MembershipRequest, fidl::encoding::ResultType<
35632                    fidl::encoding::EmptyStruct,
35633                    fidl_fuchsia_posix::Errno,
35634                >, DatagramSocketMarker>(
35635                    (membership,),
35636                    0x7c94727acb4ea4b3,
35637                    fidl::encoding::DynamicFlags::empty(),
35638                    ___deadline,
35639                )?;
35640        Ok(_response.map(|x| x))
35641    }
35642
35643    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
35644    pub fn r#drop_ipv6_membership(
35645        &self,
35646        mut membership: &Ipv6MulticastMembership,
35647        ___deadline: zx::MonotonicInstant,
35648    ) -> Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error> {
35649        let _response = self.client.send_query::<
35650            BaseNetworkSocketDropIpv6MembershipRequest,
35651            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
35652            DatagramSocketMarker,
35653        >(
35654            (membership,),
35655            0x42104c70ccaba304,
35656            fidl::encoding::DynamicFlags::empty(),
35657            ___deadline,
35658        )?;
35659        Ok(_response.map(|x| x))
35660    }
35661
35662    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
35663    pub fn r#set_ipv6_multicast_interface(
35664        &self,
35665        mut value: u64,
35666        ___deadline: zx::MonotonicInstant,
35667    ) -> Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error> {
35668        let _response = self.client.send_query::<
35669            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
35670            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
35671            DatagramSocketMarker,
35672        >(
35673            (value,),
35674            0x135f76db3774ab3b,
35675            fidl::encoding::DynamicFlags::empty(),
35676            ___deadline,
35677        )?;
35678        Ok(_response.map(|x| x))
35679    }
35680
35681    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
35682    pub fn r#get_ipv6_multicast_interface(
35683        &self,
35684        ___deadline: zx::MonotonicInstant,
35685    ) -> Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error> {
35686        let _response =
35687            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35688                BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
35689                fidl_fuchsia_posix::Errno,
35690            >, DatagramSocketMarker>(
35691                (),
35692                0x1f26fcdd348f1882,
35693                fidl::encoding::DynamicFlags::empty(),
35694                ___deadline,
35695            )?;
35696        Ok(_response.map(|x| x.value))
35697    }
35698
35699    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
35700    pub fn r#set_ipv6_unicast_hops(
35701        &self,
35702        mut value: &OptionalUint8,
35703        ___deadline: zx::MonotonicInstant,
35704    ) -> Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error> {
35705        let _response = self.client.send_query::<
35706            BaseNetworkSocketSetIpv6UnicastHopsRequest,
35707            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
35708            DatagramSocketMarker,
35709        >(
35710            (value,),
35711            0x157d51e98f462859,
35712            fidl::encoding::DynamicFlags::empty(),
35713            ___deadline,
35714        )?;
35715        Ok(_response.map(|x| x))
35716    }
35717
35718    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
35719    pub fn r#get_ipv6_unicast_hops(
35720        &self,
35721        ___deadline: zx::MonotonicInstant,
35722    ) -> Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error> {
35723        let _response =
35724            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35725                BaseNetworkSocketGetIpv6UnicastHopsResponse,
35726                fidl_fuchsia_posix::Errno,
35727            >, DatagramSocketMarker>(
35728                (),
35729                0x21f4641cad8bd8d2,
35730                fidl::encoding::DynamicFlags::empty(),
35731                ___deadline,
35732            )?;
35733        Ok(_response.map(|x| x.value))
35734    }
35735
35736    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
35737    pub fn r#set_ipv6_receive_hop_limit(
35738        &self,
35739        mut value: bool,
35740        ___deadline: zx::MonotonicInstant,
35741    ) -> Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error> {
35742        let _response = self.client.send_query::<
35743            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
35744            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
35745            DatagramSocketMarker,
35746        >(
35747            (value,),
35748            0x5c24808ed2e84a1e,
35749            fidl::encoding::DynamicFlags::empty(),
35750            ___deadline,
35751        )?;
35752        Ok(_response.map(|x| x))
35753    }
35754
35755    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
35756    pub fn r#get_ipv6_receive_hop_limit(
35757        &self,
35758        ___deadline: zx::MonotonicInstant,
35759    ) -> Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error> {
35760        let _response =
35761            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35762                BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
35763                fidl_fuchsia_posix::Errno,
35764            >, DatagramSocketMarker>(
35765                (),
35766                0x341e06689885b4c0,
35767                fidl::encoding::DynamicFlags::empty(),
35768                ___deadline,
35769            )?;
35770        Ok(_response.map(|x| x.value))
35771    }
35772
35773    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
35774    pub fn r#set_ipv6_multicast_hops(
35775        &self,
35776        mut value: &OptionalUint8,
35777        ___deadline: zx::MonotonicInstant,
35778    ) -> Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error> {
35779        let _response = self.client.send_query::<
35780            BaseNetworkSocketSetIpv6MulticastHopsRequest,
35781            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
35782            DatagramSocketMarker,
35783        >(
35784            (value,),
35785            0x25b9cd4d181f82c1,
35786            fidl::encoding::DynamicFlags::empty(),
35787            ___deadline,
35788        )?;
35789        Ok(_response.map(|x| x))
35790    }
35791
35792    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
35793    pub fn r#get_ipv6_multicast_hops(
35794        &self,
35795        ___deadline: zx::MonotonicInstant,
35796    ) -> Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error> {
35797        let _response =
35798            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35799                BaseNetworkSocketGetIpv6MulticastHopsResponse,
35800                fidl_fuchsia_posix::Errno,
35801            >, DatagramSocketMarker>(
35802                (),
35803                0x52916948a365012a,
35804                fidl::encoding::DynamicFlags::empty(),
35805                ___deadline,
35806            )?;
35807        Ok(_response.map(|x| x.value))
35808    }
35809
35810    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
35811    pub fn r#set_ipv6_multicast_loopback(
35812        &self,
35813        mut value: bool,
35814        ___deadline: zx::MonotonicInstant,
35815    ) -> Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error> {
35816        let _response = self.client.send_query::<
35817            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
35818            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
35819            DatagramSocketMarker,
35820        >(
35821            (value,),
35822            0x55701c409ff41b40,
35823            fidl::encoding::DynamicFlags::empty(),
35824            ___deadline,
35825        )?;
35826        Ok(_response.map(|x| x))
35827    }
35828
35829    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
35830    pub fn r#get_ipv6_multicast_loopback(
35831        &self,
35832        ___deadline: zx::MonotonicInstant,
35833    ) -> Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error> {
35834        let _response =
35835            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35836                BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
35837                fidl_fuchsia_posix::Errno,
35838            >, DatagramSocketMarker>(
35839                (),
35840                0x4415b701fde319c3,
35841                fidl::encoding::DynamicFlags::empty(),
35842                ___deadline,
35843            )?;
35844        Ok(_response.map(|x| x.value))
35845    }
35846
35847    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
35848    pub fn r#set_ipv6_only(
35849        &self,
35850        mut value: bool,
35851        ___deadline: zx::MonotonicInstant,
35852    ) -> Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error> {
35853        let _response =
35854            self.client
35855                .send_query::<BaseNetworkSocketSetIpv6OnlyRequest, fidl::encoding::ResultType<
35856                    fidl::encoding::EmptyStruct,
35857                    fidl_fuchsia_posix::Errno,
35858                >, DatagramSocketMarker>(
35859                    (value,),
35860                    0x4873f1364758cbba,
35861                    fidl::encoding::DynamicFlags::empty(),
35862                    ___deadline,
35863                )?;
35864        Ok(_response.map(|x| x))
35865    }
35866
35867    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
35868    pub fn r#get_ipv6_only(
35869        &self,
35870        ___deadline: zx::MonotonicInstant,
35871    ) -> Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error> {
35872        let _response =
35873            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35874                BaseNetworkSocketGetIpv6OnlyResponse,
35875                fidl_fuchsia_posix::Errno,
35876            >, DatagramSocketMarker>(
35877                (),
35878                0x4aa3340a1a26b89c,
35879                fidl::encoding::DynamicFlags::empty(),
35880                ___deadline,
35881            )?;
35882        Ok(_response.map(|x| x.value))
35883    }
35884
35885    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
35886    pub fn r#set_ipv6_receive_traffic_class(
35887        &self,
35888        mut value: bool,
35889        ___deadline: zx::MonotonicInstant,
35890    ) -> Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error> {
35891        let _response = self.client.send_query::<
35892            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
35893            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
35894            DatagramSocketMarker,
35895        >(
35896            (value,),
35897            0x58f07c8788d099a0,
35898            fidl::encoding::DynamicFlags::empty(),
35899            ___deadline,
35900        )?;
35901        Ok(_response.map(|x| x))
35902    }
35903
35904    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
35905    pub fn r#get_ipv6_receive_traffic_class(
35906        &self,
35907        ___deadline: zx::MonotonicInstant,
35908    ) -> Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error> {
35909        let _response =
35910            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35911                BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
35912                fidl_fuchsia_posix::Errno,
35913            >, DatagramSocketMarker>(
35914                (),
35915                0x2e334df1da553ffa,
35916                fidl::encoding::DynamicFlags::empty(),
35917                ___deadline,
35918            )?;
35919        Ok(_response.map(|x| x.value))
35920    }
35921
35922    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
35923    pub fn r#set_ipv6_traffic_class(
35924        &self,
35925        mut value: &OptionalUint8,
35926        ___deadline: zx::MonotonicInstant,
35927    ) -> Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error> {
35928        let _response = self.client.send_query::<
35929            BaseNetworkSocketSetIpv6TrafficClassRequest,
35930            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
35931            DatagramSocketMarker,
35932        >(
35933            (value,),
35934            0x6af077800c5a0b4f,
35935            fidl::encoding::DynamicFlags::empty(),
35936            ___deadline,
35937        )?;
35938        Ok(_response.map(|x| x))
35939    }
35940
35941    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
35942    pub fn r#get_ipv6_traffic_class(
35943        &self,
35944        ___deadline: zx::MonotonicInstant,
35945    ) -> Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error> {
35946        let _response =
35947            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35948                BaseNetworkSocketGetIpv6TrafficClassResponse,
35949                fidl_fuchsia_posix::Errno,
35950            >, DatagramSocketMarker>(
35951                (),
35952                0x6baf6eed8fc2f04,
35953                fidl::encoding::DynamicFlags::empty(),
35954                ___deadline,
35955            )?;
35956        Ok(_response.map(|x| x.value))
35957    }
35958
35959    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
35960    pub fn r#set_ipv6_receive_packet_info(
35961        &self,
35962        mut value: bool,
35963        ___deadline: zx::MonotonicInstant,
35964    ) -> Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error> {
35965        let _response = self.client.send_query::<
35966            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
35967            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
35968            DatagramSocketMarker,
35969        >(
35970            (value,),
35971            0x19259775b1a92768,
35972            fidl::encoding::DynamicFlags::empty(),
35973            ___deadline,
35974        )?;
35975        Ok(_response.map(|x| x))
35976    }
35977
35978    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
35979    pub fn r#get_ipv6_receive_packet_info(
35980        &self,
35981        ___deadline: zx::MonotonicInstant,
35982    ) -> Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error> {
35983        let _response =
35984            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35985                BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
35986                fidl_fuchsia_posix::Errno,
35987            >, DatagramSocketMarker>(
35988                (),
35989                0x7acd4a2775baec75,
35990                fidl::encoding::DynamicFlags::empty(),
35991                ___deadline,
35992            )?;
35993        Ok(_response.map(|x| x.value))
35994    }
35995
35996    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
35997    pub fn r#get_original_destination(
35998        &self,
35999        ___deadline: zx::MonotonicInstant,
36000    ) -> Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error> {
36001        let _response =
36002            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
36003                BaseNetworkSocketGetOriginalDestinationResponse,
36004                fidl_fuchsia_posix::Errno,
36005            >, DatagramSocketMarker>(
36006                (),
36007                0x38bf28f0dafdbac0,
36008                fidl::encoding::DynamicFlags::empty(),
36009                ___deadline,
36010            )?;
36011        Ok(_response.map(|x| x.value))
36012    }
36013
36014    /// Retrieves creation information from the socket.
36015    ///
36016    /// - response `domain` the socket's associated domain.
36017    /// - response `proto` the socket's associated protocol.
36018    pub fn r#get_info(
36019        &self,
36020        ___deadline: zx::MonotonicInstant,
36021    ) -> Result<BaseDatagramSocketGetInfoResult, fidl::Error> {
36022        let _response =
36023            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
36024                BaseDatagramSocketGetInfoResponse,
36025                fidl_fuchsia_posix::Errno,
36026            >, DatagramSocketMarker>(
36027                (),
36028                0x48aa0a1f6a32d2ed,
36029                fidl::encoding::DynamicFlags::empty(),
36030                ___deadline,
36031            )?;
36032        Ok(_response.map(|x| (x.domain, x.proto)))
36033    }
36034
36035    pub fn r#describe(
36036        &self,
36037        ___deadline: zx::MonotonicInstant,
36038    ) -> Result<DatagramSocketDescribeResponse, fidl::Error> {
36039        let _response = self.client.send_query::<
36040            fidl::encoding::EmptyPayload,
36041            DatagramSocketDescribeResponse,
36042            DatagramSocketMarker,
36043        >(
36044            (),
36045            0xbf1e2f0a86601f3,
36046            fidl::encoding::DynamicFlags::empty(),
36047            ___deadline,
36048        )?;
36049        Ok(_response)
36050    }
36051
36052    /// Validates that data can be sent.
36053    ///
36054    /// + request `args` the requested disposition of data to be sent.
36055    /// - response the constraints sent data must satisfy.
36056    /// * error the error code indicating the reason for validation failure.
36057    pub fn r#send_msg_preflight(
36058        &self,
36059        mut payload: &DatagramSocketSendMsgPreflightRequest,
36060        ___deadline: zx::MonotonicInstant,
36061    ) -> Result<DatagramSocketSendMsgPreflightResult, fidl::Error> {
36062        let _response = self
36063            .client
36064            .send_query::<DatagramSocketSendMsgPreflightRequest, fidl::encoding::ResultType<
36065                DatagramSocketSendMsgPreflightResponse,
36066                fidl_fuchsia_posix::Errno,
36067            >, DatagramSocketMarker>(
36068                payload,
36069                0x5362e668e777248a,
36070                fidl::encoding::DynamicFlags::empty(),
36071                ___deadline,
36072            )?;
36073        Ok(_response.map(|x| x))
36074    }
36075
36076    /// Returns the set of requested control messages.
36077    ///
36078    /// - response the set of currently requested control messages.
36079    pub fn r#recv_msg_postflight(
36080        &self,
36081        ___deadline: zx::MonotonicInstant,
36082    ) -> Result<DatagramSocketRecvMsgPostflightResult, fidl::Error> {
36083        let _response =
36084            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
36085                DatagramSocketRecvMsgPostflightResponse,
36086                fidl_fuchsia_posix::Errno,
36087            >, DatagramSocketMarker>(
36088                (),
36089                0x1a7cdeca5f3eb8e2,
36090                fidl::encoding::DynamicFlags::empty(),
36091                ___deadline,
36092            )?;
36093        Ok(_response.map(|x| x))
36094    }
36095}
36096
36097#[cfg(target_os = "fuchsia")]
36098impl From<DatagramSocketSynchronousProxy> for zx::NullableHandle {
36099    fn from(value: DatagramSocketSynchronousProxy) -> Self {
36100        value.into_channel().into()
36101    }
36102}
36103
36104#[cfg(target_os = "fuchsia")]
36105impl From<fidl::Channel> for DatagramSocketSynchronousProxy {
36106    fn from(value: fidl::Channel) -> Self {
36107        Self::new(value)
36108    }
36109}
36110
36111#[cfg(target_os = "fuchsia")]
36112impl fidl::endpoints::FromClient for DatagramSocketSynchronousProxy {
36113    type Protocol = DatagramSocketMarker;
36114
36115    fn from_client(value: fidl::endpoints::ClientEnd<DatagramSocketMarker>) -> Self {
36116        Self::new(value.into_channel())
36117    }
36118}
36119
36120#[derive(Debug, Clone)]
36121pub struct DatagramSocketProxy {
36122    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
36123}
36124
36125impl fidl::endpoints::Proxy for DatagramSocketProxy {
36126    type Protocol = DatagramSocketMarker;
36127
36128    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
36129        Self::new(inner)
36130    }
36131
36132    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
36133        self.client.into_channel().map_err(|client| Self { client })
36134    }
36135
36136    fn as_channel(&self) -> &::fidl::AsyncChannel {
36137        self.client.as_channel()
36138    }
36139}
36140
36141impl DatagramSocketProxy {
36142    /// Create a new Proxy for fuchsia.posix.socket/DatagramSocket.
36143    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
36144        let protocol_name = <DatagramSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
36145        Self { client: fidl::client::Client::new(channel, protocol_name) }
36146    }
36147
36148    /// Get a Stream of events from the remote end of the protocol.
36149    ///
36150    /// # Panics
36151    ///
36152    /// Panics if the event stream was already taken.
36153    pub fn take_event_stream(&self) -> DatagramSocketEventStream {
36154        DatagramSocketEventStream { event_receiver: self.client.take_event_receiver() }
36155    }
36156
36157    pub fn r#clone(
36158        &self,
36159        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
36160    ) -> Result<(), fidl::Error> {
36161        DatagramSocketProxyInterface::r#clone(self, request)
36162    }
36163
36164    /// Terminates the connection.
36165    ///
36166    /// After calling `Close`, the client must not send any other requests.
36167    ///
36168    /// Servers, after sending the status response, should close the connection
36169    /// regardless of status and without sending an epitaph.
36170    ///
36171    /// Closing the client end of the channel should be semantically equivalent
36172    /// to calling `Close` without knowing when the close has completed or its
36173    /// status.
36174    pub fn r#close(
36175        &self,
36176    ) -> fidl::client::QueryResponseFut<
36177        fidl_fuchsia_unknown::CloseableCloseResult,
36178        fidl::encoding::DefaultFuchsiaResourceDialect,
36179    > {
36180        DatagramSocketProxyInterface::r#close(self)
36181    }
36182
36183    pub fn r#query(
36184        &self,
36185    ) -> fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>
36186    {
36187        DatagramSocketProxyInterface::r#query(self)
36188    }
36189
36190    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
36191    pub fn r#set_reuse_address(
36192        &self,
36193        mut value: bool,
36194    ) -> fidl::client::QueryResponseFut<
36195        BaseSocketSetReuseAddressResult,
36196        fidl::encoding::DefaultFuchsiaResourceDialect,
36197    > {
36198        DatagramSocketProxyInterface::r#set_reuse_address(self, value)
36199    }
36200
36201    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
36202    pub fn r#get_reuse_address(
36203        &self,
36204    ) -> fidl::client::QueryResponseFut<
36205        BaseSocketGetReuseAddressResult,
36206        fidl::encoding::DefaultFuchsiaResourceDialect,
36207    > {
36208        DatagramSocketProxyInterface::r#get_reuse_address(self)
36209    }
36210
36211    /// Get `SOL_SOCKET` -> `SO_ERROR`.
36212    /// Returns the last error if there is an error set on the socket.
36213    pub fn r#get_error(
36214        &self,
36215    ) -> fidl::client::QueryResponseFut<
36216        BaseSocketGetErrorResult,
36217        fidl::encoding::DefaultFuchsiaResourceDialect,
36218    > {
36219        DatagramSocketProxyInterface::r#get_error(self)
36220    }
36221
36222    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
36223    pub fn r#set_broadcast(
36224        &self,
36225        mut value: bool,
36226    ) -> fidl::client::QueryResponseFut<
36227        BaseSocketSetBroadcastResult,
36228        fidl::encoding::DefaultFuchsiaResourceDialect,
36229    > {
36230        DatagramSocketProxyInterface::r#set_broadcast(self, value)
36231    }
36232
36233    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
36234    pub fn r#get_broadcast(
36235        &self,
36236    ) -> fidl::client::QueryResponseFut<
36237        BaseSocketGetBroadcastResult,
36238        fidl::encoding::DefaultFuchsiaResourceDialect,
36239    > {
36240        DatagramSocketProxyInterface::r#get_broadcast(self)
36241    }
36242
36243    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
36244    pub fn r#set_send_buffer(
36245        &self,
36246        mut value_bytes: u64,
36247    ) -> fidl::client::QueryResponseFut<
36248        BaseSocketSetSendBufferResult,
36249        fidl::encoding::DefaultFuchsiaResourceDialect,
36250    > {
36251        DatagramSocketProxyInterface::r#set_send_buffer(self, value_bytes)
36252    }
36253
36254    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
36255    pub fn r#get_send_buffer(
36256        &self,
36257    ) -> fidl::client::QueryResponseFut<
36258        BaseSocketGetSendBufferResult,
36259        fidl::encoding::DefaultFuchsiaResourceDialect,
36260    > {
36261        DatagramSocketProxyInterface::r#get_send_buffer(self)
36262    }
36263
36264    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
36265    pub fn r#set_receive_buffer(
36266        &self,
36267        mut value_bytes: u64,
36268    ) -> fidl::client::QueryResponseFut<
36269        BaseSocketSetReceiveBufferResult,
36270        fidl::encoding::DefaultFuchsiaResourceDialect,
36271    > {
36272        DatagramSocketProxyInterface::r#set_receive_buffer(self, value_bytes)
36273    }
36274
36275    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
36276    pub fn r#get_receive_buffer(
36277        &self,
36278    ) -> fidl::client::QueryResponseFut<
36279        BaseSocketGetReceiveBufferResult,
36280        fidl::encoding::DefaultFuchsiaResourceDialect,
36281    > {
36282        DatagramSocketProxyInterface::r#get_receive_buffer(self)
36283    }
36284
36285    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
36286    pub fn r#set_keep_alive(
36287        &self,
36288        mut value: bool,
36289    ) -> fidl::client::QueryResponseFut<
36290        BaseSocketSetKeepAliveResult,
36291        fidl::encoding::DefaultFuchsiaResourceDialect,
36292    > {
36293        DatagramSocketProxyInterface::r#set_keep_alive(self, value)
36294    }
36295
36296    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
36297    pub fn r#get_keep_alive(
36298        &self,
36299    ) -> fidl::client::QueryResponseFut<
36300        BaseSocketGetKeepAliveResult,
36301        fidl::encoding::DefaultFuchsiaResourceDialect,
36302    > {
36303        DatagramSocketProxyInterface::r#get_keep_alive(self)
36304    }
36305
36306    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
36307    pub fn r#set_out_of_band_inline(
36308        &self,
36309        mut value: bool,
36310    ) -> fidl::client::QueryResponseFut<
36311        BaseSocketSetOutOfBandInlineResult,
36312        fidl::encoding::DefaultFuchsiaResourceDialect,
36313    > {
36314        DatagramSocketProxyInterface::r#set_out_of_band_inline(self, value)
36315    }
36316
36317    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
36318    pub fn r#get_out_of_band_inline(
36319        &self,
36320    ) -> fidl::client::QueryResponseFut<
36321        BaseSocketGetOutOfBandInlineResult,
36322        fidl::encoding::DefaultFuchsiaResourceDialect,
36323    > {
36324        DatagramSocketProxyInterface::r#get_out_of_band_inline(self)
36325    }
36326
36327    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
36328    pub fn r#set_no_check(
36329        &self,
36330        mut value: bool,
36331    ) -> fidl::client::QueryResponseFut<
36332        BaseSocketSetNoCheckResult,
36333        fidl::encoding::DefaultFuchsiaResourceDialect,
36334    > {
36335        DatagramSocketProxyInterface::r#set_no_check(self, value)
36336    }
36337
36338    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
36339    pub fn r#get_no_check(
36340        &self,
36341    ) -> fidl::client::QueryResponseFut<
36342        BaseSocketGetNoCheckResult,
36343        fidl::encoding::DefaultFuchsiaResourceDialect,
36344    > {
36345        DatagramSocketProxyInterface::r#get_no_check(self)
36346    }
36347
36348    /// Set `SOL_SOCKET` -> `SO_LINGER`.
36349    pub fn r#set_linger(
36350        &self,
36351        mut linger: bool,
36352        mut length_secs: u32,
36353    ) -> fidl::client::QueryResponseFut<
36354        BaseSocketSetLingerResult,
36355        fidl::encoding::DefaultFuchsiaResourceDialect,
36356    > {
36357        DatagramSocketProxyInterface::r#set_linger(self, linger, length_secs)
36358    }
36359
36360    /// Get `SOL_SOCKET` -> `SO_LINGER`.
36361    pub fn r#get_linger(
36362        &self,
36363    ) -> fidl::client::QueryResponseFut<
36364        BaseSocketGetLingerResult,
36365        fidl::encoding::DefaultFuchsiaResourceDialect,
36366    > {
36367        DatagramSocketProxyInterface::r#get_linger(self)
36368    }
36369
36370    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
36371    pub fn r#set_reuse_port(
36372        &self,
36373        mut value: ReusePortOption,
36374    ) -> fidl::client::QueryResponseFut<
36375        BaseSocketSetReusePortResult,
36376        fidl::encoding::DefaultFuchsiaResourceDialect,
36377    > {
36378        DatagramSocketProxyInterface::r#set_reuse_port(self, value)
36379    }
36380
36381    pub fn r#set_reuse_port_deprecated(
36382        &self,
36383        mut value: bool,
36384    ) -> fidl::client::QueryResponseFut<
36385        BaseSocketSetReusePortDeprecatedResult,
36386        fidl::encoding::DefaultFuchsiaResourceDialect,
36387    > {
36388        DatagramSocketProxyInterface::r#set_reuse_port_deprecated(self, value)
36389    }
36390
36391    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
36392    pub fn r#get_reuse_port(
36393        &self,
36394    ) -> fidl::client::QueryResponseFut<
36395        BaseSocketGetReusePortResult,
36396        fidl::encoding::DefaultFuchsiaResourceDialect,
36397    > {
36398        DatagramSocketProxyInterface::r#get_reuse_port(self)
36399    }
36400
36401    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
36402    pub fn r#get_accept_conn(
36403        &self,
36404    ) -> fidl::client::QueryResponseFut<
36405        BaseSocketGetAcceptConnResult,
36406        fidl::encoding::DefaultFuchsiaResourceDialect,
36407    > {
36408        DatagramSocketProxyInterface::r#get_accept_conn(self)
36409    }
36410
36411    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
36412    pub fn r#set_bind_to_device(
36413        &self,
36414        mut value: &str,
36415    ) -> fidl::client::QueryResponseFut<
36416        BaseSocketSetBindToDeviceResult,
36417        fidl::encoding::DefaultFuchsiaResourceDialect,
36418    > {
36419        DatagramSocketProxyInterface::r#set_bind_to_device(self, value)
36420    }
36421
36422    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
36423    pub fn r#get_bind_to_device(
36424        &self,
36425    ) -> fidl::client::QueryResponseFut<
36426        BaseSocketGetBindToDeviceResult,
36427        fidl::encoding::DefaultFuchsiaResourceDialect,
36428    > {
36429        DatagramSocketProxyInterface::r#get_bind_to_device(self)
36430    }
36431
36432    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
36433    /// If `value` is 0, this clears the bound interface.
36434    pub fn r#set_bind_to_interface_index(
36435        &self,
36436        mut value: u64,
36437    ) -> fidl::client::QueryResponseFut<
36438        BaseSocketSetBindToInterfaceIndexResult,
36439        fidl::encoding::DefaultFuchsiaResourceDialect,
36440    > {
36441        DatagramSocketProxyInterface::r#set_bind_to_interface_index(self, value)
36442    }
36443
36444    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
36445    pub fn r#get_bind_to_interface_index(
36446        &self,
36447    ) -> fidl::client::QueryResponseFut<
36448        BaseSocketGetBindToInterfaceIndexResult,
36449        fidl::encoding::DefaultFuchsiaResourceDialect,
36450    > {
36451        DatagramSocketProxyInterface::r#get_bind_to_interface_index(self)
36452    }
36453
36454    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
36455    pub fn r#set_timestamp(
36456        &self,
36457        mut value: TimestampOption,
36458    ) -> fidl::client::QueryResponseFut<
36459        BaseSocketSetTimestampResult,
36460        fidl::encoding::DefaultFuchsiaResourceDialect,
36461    > {
36462        DatagramSocketProxyInterface::r#set_timestamp(self, value)
36463    }
36464
36465    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
36466    pub fn r#get_timestamp(
36467        &self,
36468    ) -> fidl::client::QueryResponseFut<
36469        BaseSocketGetTimestampResult,
36470        fidl::encoding::DefaultFuchsiaResourceDialect,
36471    > {
36472        DatagramSocketProxyInterface::r#get_timestamp(self)
36473    }
36474
36475    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
36476    /// unlike the standard SO_MARK, this API has multiple mark domains and each
36477    /// mark can be set independently in each domain.
36478    pub fn r#set_mark(
36479        &self,
36480        mut domain: fidl_fuchsia_net::MarkDomain,
36481        mut mark: &OptionalUint32,
36482    ) -> fidl::client::QueryResponseFut<
36483        BaseSocketSetMarkResult,
36484        fidl::encoding::DefaultFuchsiaResourceDialect,
36485    > {
36486        DatagramSocketProxyInterface::r#set_mark(self, domain, mark)
36487    }
36488
36489    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
36490    /// unlike the standard SO_MARK, this API has multiple mark domains and each
36491    /// mark can be retrieved independently in each domain.
36492    pub fn r#get_mark(
36493        &self,
36494        mut domain: fidl_fuchsia_net::MarkDomain,
36495    ) -> fidl::client::QueryResponseFut<
36496        BaseSocketGetMarkResult,
36497        fidl::encoding::DefaultFuchsiaResourceDialect,
36498    > {
36499        DatagramSocketProxyInterface::r#get_mark(self, domain)
36500    }
36501
36502    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
36503    pub fn r#get_cookie(
36504        &self,
36505    ) -> fidl::client::QueryResponseFut<
36506        BaseSocketGetCookieResult,
36507        fidl::encoding::DefaultFuchsiaResourceDialect,
36508    > {
36509        DatagramSocketProxyInterface::r#get_cookie(self)
36510    }
36511
36512    /// Sets the local address used for the socket.
36513    pub fn r#bind(
36514        &self,
36515        mut addr: &fidl_fuchsia_net::SocketAddress,
36516    ) -> fidl::client::QueryResponseFut<
36517        BaseNetworkSocketBindResult,
36518        fidl::encoding::DefaultFuchsiaResourceDialect,
36519    > {
36520        DatagramSocketProxyInterface::r#bind(self, addr)
36521    }
36522
36523    /// Initiates a connection to a remote address.
36524    pub fn r#connect(
36525        &self,
36526        mut addr: &fidl_fuchsia_net::SocketAddress,
36527    ) -> fidl::client::QueryResponseFut<
36528        BaseNetworkSocketConnectResult,
36529        fidl::encoding::DefaultFuchsiaResourceDialect,
36530    > {
36531        DatagramSocketProxyInterface::r#connect(self, addr)
36532    }
36533
36534    /// Clears connection information from this socket.
36535    pub fn r#disconnect(
36536        &self,
36537    ) -> fidl::client::QueryResponseFut<
36538        BaseNetworkSocketDisconnectResult,
36539        fidl::encoding::DefaultFuchsiaResourceDialect,
36540    > {
36541        DatagramSocketProxyInterface::r#disconnect(self)
36542    }
36543
36544    /// Retrieves the local socket address.
36545    pub fn r#get_sock_name(
36546        &self,
36547    ) -> fidl::client::QueryResponseFut<
36548        BaseNetworkSocketGetSockNameResult,
36549        fidl::encoding::DefaultFuchsiaResourceDialect,
36550    > {
36551        DatagramSocketProxyInterface::r#get_sock_name(self)
36552    }
36553
36554    /// Retrieves the remote socket address.
36555    pub fn r#get_peer_name(
36556        &self,
36557    ) -> fidl::client::QueryResponseFut<
36558        BaseNetworkSocketGetPeerNameResult,
36559        fidl::encoding::DefaultFuchsiaResourceDialect,
36560    > {
36561        DatagramSocketProxyInterface::r#get_peer_name(self)
36562    }
36563
36564    /// Shuts down part of the socket.
36565    pub fn r#shutdown(
36566        &self,
36567        mut mode: ShutdownMode,
36568    ) -> fidl::client::QueryResponseFut<
36569        BaseNetworkSocketShutdownResult,
36570        fidl::encoding::DefaultFuchsiaResourceDialect,
36571    > {
36572        DatagramSocketProxyInterface::r#shutdown(self, mode)
36573    }
36574
36575    /// Set `SOL_IP` -> `IP_TOS`.
36576    pub fn r#set_ip_type_of_service(
36577        &self,
36578        mut value: u8,
36579    ) -> fidl::client::QueryResponseFut<
36580        BaseNetworkSocketSetIpTypeOfServiceResult,
36581        fidl::encoding::DefaultFuchsiaResourceDialect,
36582    > {
36583        DatagramSocketProxyInterface::r#set_ip_type_of_service(self, value)
36584    }
36585
36586    /// Get `SOL_IP` -> `IP_TOS`.
36587    pub fn r#get_ip_type_of_service(
36588        &self,
36589    ) -> fidl::client::QueryResponseFut<
36590        BaseNetworkSocketGetIpTypeOfServiceResult,
36591        fidl::encoding::DefaultFuchsiaResourceDialect,
36592    > {
36593        DatagramSocketProxyInterface::r#get_ip_type_of_service(self)
36594    }
36595
36596    /// Set `SOL_IP` -> `IP_TTL`.
36597    pub fn r#set_ip_ttl(
36598        &self,
36599        mut value: &OptionalUint8,
36600    ) -> fidl::client::QueryResponseFut<
36601        BaseNetworkSocketSetIpTtlResult,
36602        fidl::encoding::DefaultFuchsiaResourceDialect,
36603    > {
36604        DatagramSocketProxyInterface::r#set_ip_ttl(self, value)
36605    }
36606
36607    /// Get `SOL_IP` -> `IP_TTL`.
36608    pub fn r#get_ip_ttl(
36609        &self,
36610    ) -> fidl::client::QueryResponseFut<
36611        BaseNetworkSocketGetIpTtlResult,
36612        fidl::encoding::DefaultFuchsiaResourceDialect,
36613    > {
36614        DatagramSocketProxyInterface::r#get_ip_ttl(self)
36615    }
36616
36617    /// Set `SOL_IP` -> `IP_PKTINFO`.
36618    pub fn r#set_ip_packet_info(
36619        &self,
36620        mut value: bool,
36621    ) -> fidl::client::QueryResponseFut<
36622        BaseNetworkSocketSetIpPacketInfoResult,
36623        fidl::encoding::DefaultFuchsiaResourceDialect,
36624    > {
36625        DatagramSocketProxyInterface::r#set_ip_packet_info(self, value)
36626    }
36627
36628    /// Get `SOL_IP` -> `IP_PKTINFO`.
36629    pub fn r#get_ip_packet_info(
36630        &self,
36631    ) -> fidl::client::QueryResponseFut<
36632        BaseNetworkSocketGetIpPacketInfoResult,
36633        fidl::encoding::DefaultFuchsiaResourceDialect,
36634    > {
36635        DatagramSocketProxyInterface::r#get_ip_packet_info(self)
36636    }
36637
36638    /// Set `SOL_IP` -> `IP_RECVTOS`.
36639    pub fn r#set_ip_receive_type_of_service(
36640        &self,
36641        mut value: bool,
36642    ) -> fidl::client::QueryResponseFut<
36643        BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
36644        fidl::encoding::DefaultFuchsiaResourceDialect,
36645    > {
36646        DatagramSocketProxyInterface::r#set_ip_receive_type_of_service(self, value)
36647    }
36648
36649    /// Get `SOL_IP` -> `IP_RECVTOS`.
36650    pub fn r#get_ip_receive_type_of_service(
36651        &self,
36652    ) -> fidl::client::QueryResponseFut<
36653        BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
36654        fidl::encoding::DefaultFuchsiaResourceDialect,
36655    > {
36656        DatagramSocketProxyInterface::r#get_ip_receive_type_of_service(self)
36657    }
36658
36659    /// Set `SOL_IP` -> `IP_RECVTTL`.
36660    pub fn r#set_ip_receive_ttl(
36661        &self,
36662        mut value: bool,
36663    ) -> fidl::client::QueryResponseFut<
36664        BaseNetworkSocketSetIpReceiveTtlResult,
36665        fidl::encoding::DefaultFuchsiaResourceDialect,
36666    > {
36667        DatagramSocketProxyInterface::r#set_ip_receive_ttl(self, value)
36668    }
36669
36670    /// Get `SOL_IP` -> `IP_RECVTTL`.
36671    pub fn r#get_ip_receive_ttl(
36672        &self,
36673    ) -> fidl::client::QueryResponseFut<
36674        BaseNetworkSocketGetIpReceiveTtlResult,
36675        fidl::encoding::DefaultFuchsiaResourceDialect,
36676    > {
36677        DatagramSocketProxyInterface::r#get_ip_receive_ttl(self)
36678    }
36679
36680    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
36681    pub fn r#set_ip_multicast_interface(
36682        &self,
36683        mut iface: u64,
36684        mut address: &fidl_fuchsia_net::Ipv4Address,
36685    ) -> fidl::client::QueryResponseFut<
36686        BaseNetworkSocketSetIpMulticastInterfaceResult,
36687        fidl::encoding::DefaultFuchsiaResourceDialect,
36688    > {
36689        DatagramSocketProxyInterface::r#set_ip_multicast_interface(self, iface, address)
36690    }
36691
36692    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
36693    pub fn r#get_ip_multicast_interface(
36694        &self,
36695    ) -> fidl::client::QueryResponseFut<
36696        BaseNetworkSocketGetIpMulticastInterfaceResult,
36697        fidl::encoding::DefaultFuchsiaResourceDialect,
36698    > {
36699        DatagramSocketProxyInterface::r#get_ip_multicast_interface(self)
36700    }
36701
36702    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
36703    pub fn r#set_ip_multicast_ttl(
36704        &self,
36705        mut value: &OptionalUint8,
36706    ) -> fidl::client::QueryResponseFut<
36707        BaseNetworkSocketSetIpMulticastTtlResult,
36708        fidl::encoding::DefaultFuchsiaResourceDialect,
36709    > {
36710        DatagramSocketProxyInterface::r#set_ip_multicast_ttl(self, value)
36711    }
36712
36713    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
36714    pub fn r#get_ip_multicast_ttl(
36715        &self,
36716    ) -> fidl::client::QueryResponseFut<
36717        BaseNetworkSocketGetIpMulticastTtlResult,
36718        fidl::encoding::DefaultFuchsiaResourceDialect,
36719    > {
36720        DatagramSocketProxyInterface::r#get_ip_multicast_ttl(self)
36721    }
36722
36723    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
36724    pub fn r#set_ip_multicast_loopback(
36725        &self,
36726        mut value: bool,
36727    ) -> fidl::client::QueryResponseFut<
36728        BaseNetworkSocketSetIpMulticastLoopbackResult,
36729        fidl::encoding::DefaultFuchsiaResourceDialect,
36730    > {
36731        DatagramSocketProxyInterface::r#set_ip_multicast_loopback(self, value)
36732    }
36733
36734    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
36735    pub fn r#get_ip_multicast_loopback(
36736        &self,
36737    ) -> fidl::client::QueryResponseFut<
36738        BaseNetworkSocketGetIpMulticastLoopbackResult,
36739        fidl::encoding::DefaultFuchsiaResourceDialect,
36740    > {
36741        DatagramSocketProxyInterface::r#get_ip_multicast_loopback(self)
36742    }
36743
36744    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
36745    pub fn r#add_ip_membership(
36746        &self,
36747        mut membership: &IpMulticastMembership,
36748    ) -> fidl::client::QueryResponseFut<
36749        BaseNetworkSocketAddIpMembershipResult,
36750        fidl::encoding::DefaultFuchsiaResourceDialect,
36751    > {
36752        DatagramSocketProxyInterface::r#add_ip_membership(self, membership)
36753    }
36754
36755    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
36756    pub fn r#drop_ip_membership(
36757        &self,
36758        mut membership: &IpMulticastMembership,
36759    ) -> fidl::client::QueryResponseFut<
36760        BaseNetworkSocketDropIpMembershipResult,
36761        fidl::encoding::DefaultFuchsiaResourceDialect,
36762    > {
36763        DatagramSocketProxyInterface::r#drop_ip_membership(self, membership)
36764    }
36765
36766    /// Set `SOL_IP` -> `IP_TRANSPARENT`
36767    pub fn r#set_ip_transparent(
36768        &self,
36769        mut value: bool,
36770    ) -> fidl::client::QueryResponseFut<
36771        BaseNetworkSocketSetIpTransparentResult,
36772        fidl::encoding::DefaultFuchsiaResourceDialect,
36773    > {
36774        DatagramSocketProxyInterface::r#set_ip_transparent(self, value)
36775    }
36776
36777    /// Get `SOL_IP` -> `IP_TRANSPARENT`
36778    pub fn r#get_ip_transparent(
36779        &self,
36780    ) -> fidl::client::QueryResponseFut<
36781        BaseNetworkSocketGetIpTransparentResult,
36782        fidl::encoding::DefaultFuchsiaResourceDialect,
36783    > {
36784        DatagramSocketProxyInterface::r#get_ip_transparent(self)
36785    }
36786
36787    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
36788    pub fn r#set_ip_receive_original_destination_address(
36789        &self,
36790        mut value: bool,
36791    ) -> fidl::client::QueryResponseFut<
36792        BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
36793        fidl::encoding::DefaultFuchsiaResourceDialect,
36794    > {
36795        DatagramSocketProxyInterface::r#set_ip_receive_original_destination_address(self, value)
36796    }
36797
36798    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
36799    pub fn r#get_ip_receive_original_destination_address(
36800        &self,
36801    ) -> fidl::client::QueryResponseFut<
36802        BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
36803        fidl::encoding::DefaultFuchsiaResourceDialect,
36804    > {
36805        DatagramSocketProxyInterface::r#get_ip_receive_original_destination_address(self)
36806    }
36807
36808    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
36809    pub fn r#add_ipv6_membership(
36810        &self,
36811        mut membership: &Ipv6MulticastMembership,
36812    ) -> fidl::client::QueryResponseFut<
36813        BaseNetworkSocketAddIpv6MembershipResult,
36814        fidl::encoding::DefaultFuchsiaResourceDialect,
36815    > {
36816        DatagramSocketProxyInterface::r#add_ipv6_membership(self, membership)
36817    }
36818
36819    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
36820    pub fn r#drop_ipv6_membership(
36821        &self,
36822        mut membership: &Ipv6MulticastMembership,
36823    ) -> fidl::client::QueryResponseFut<
36824        BaseNetworkSocketDropIpv6MembershipResult,
36825        fidl::encoding::DefaultFuchsiaResourceDialect,
36826    > {
36827        DatagramSocketProxyInterface::r#drop_ipv6_membership(self, membership)
36828    }
36829
36830    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
36831    pub fn r#set_ipv6_multicast_interface(
36832        &self,
36833        mut value: u64,
36834    ) -> fidl::client::QueryResponseFut<
36835        BaseNetworkSocketSetIpv6MulticastInterfaceResult,
36836        fidl::encoding::DefaultFuchsiaResourceDialect,
36837    > {
36838        DatagramSocketProxyInterface::r#set_ipv6_multicast_interface(self, value)
36839    }
36840
36841    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
36842    pub fn r#get_ipv6_multicast_interface(
36843        &self,
36844    ) -> fidl::client::QueryResponseFut<
36845        BaseNetworkSocketGetIpv6MulticastInterfaceResult,
36846        fidl::encoding::DefaultFuchsiaResourceDialect,
36847    > {
36848        DatagramSocketProxyInterface::r#get_ipv6_multicast_interface(self)
36849    }
36850
36851    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
36852    pub fn r#set_ipv6_unicast_hops(
36853        &self,
36854        mut value: &OptionalUint8,
36855    ) -> fidl::client::QueryResponseFut<
36856        BaseNetworkSocketSetIpv6UnicastHopsResult,
36857        fidl::encoding::DefaultFuchsiaResourceDialect,
36858    > {
36859        DatagramSocketProxyInterface::r#set_ipv6_unicast_hops(self, value)
36860    }
36861
36862    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
36863    pub fn r#get_ipv6_unicast_hops(
36864        &self,
36865    ) -> fidl::client::QueryResponseFut<
36866        BaseNetworkSocketGetIpv6UnicastHopsResult,
36867        fidl::encoding::DefaultFuchsiaResourceDialect,
36868    > {
36869        DatagramSocketProxyInterface::r#get_ipv6_unicast_hops(self)
36870    }
36871
36872    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
36873    pub fn r#set_ipv6_receive_hop_limit(
36874        &self,
36875        mut value: bool,
36876    ) -> fidl::client::QueryResponseFut<
36877        BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
36878        fidl::encoding::DefaultFuchsiaResourceDialect,
36879    > {
36880        DatagramSocketProxyInterface::r#set_ipv6_receive_hop_limit(self, value)
36881    }
36882
36883    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
36884    pub fn r#get_ipv6_receive_hop_limit(
36885        &self,
36886    ) -> fidl::client::QueryResponseFut<
36887        BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
36888        fidl::encoding::DefaultFuchsiaResourceDialect,
36889    > {
36890        DatagramSocketProxyInterface::r#get_ipv6_receive_hop_limit(self)
36891    }
36892
36893    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
36894    pub fn r#set_ipv6_multicast_hops(
36895        &self,
36896        mut value: &OptionalUint8,
36897    ) -> fidl::client::QueryResponseFut<
36898        BaseNetworkSocketSetIpv6MulticastHopsResult,
36899        fidl::encoding::DefaultFuchsiaResourceDialect,
36900    > {
36901        DatagramSocketProxyInterface::r#set_ipv6_multicast_hops(self, value)
36902    }
36903
36904    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
36905    pub fn r#get_ipv6_multicast_hops(
36906        &self,
36907    ) -> fidl::client::QueryResponseFut<
36908        BaseNetworkSocketGetIpv6MulticastHopsResult,
36909        fidl::encoding::DefaultFuchsiaResourceDialect,
36910    > {
36911        DatagramSocketProxyInterface::r#get_ipv6_multicast_hops(self)
36912    }
36913
36914    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
36915    pub fn r#set_ipv6_multicast_loopback(
36916        &self,
36917        mut value: bool,
36918    ) -> fidl::client::QueryResponseFut<
36919        BaseNetworkSocketSetIpv6MulticastLoopbackResult,
36920        fidl::encoding::DefaultFuchsiaResourceDialect,
36921    > {
36922        DatagramSocketProxyInterface::r#set_ipv6_multicast_loopback(self, value)
36923    }
36924
36925    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
36926    pub fn r#get_ipv6_multicast_loopback(
36927        &self,
36928    ) -> fidl::client::QueryResponseFut<
36929        BaseNetworkSocketGetIpv6MulticastLoopbackResult,
36930        fidl::encoding::DefaultFuchsiaResourceDialect,
36931    > {
36932        DatagramSocketProxyInterface::r#get_ipv6_multicast_loopback(self)
36933    }
36934
36935    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
36936    pub fn r#set_ipv6_only(
36937        &self,
36938        mut value: bool,
36939    ) -> fidl::client::QueryResponseFut<
36940        BaseNetworkSocketSetIpv6OnlyResult,
36941        fidl::encoding::DefaultFuchsiaResourceDialect,
36942    > {
36943        DatagramSocketProxyInterface::r#set_ipv6_only(self, value)
36944    }
36945
36946    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
36947    pub fn r#get_ipv6_only(
36948        &self,
36949    ) -> fidl::client::QueryResponseFut<
36950        BaseNetworkSocketGetIpv6OnlyResult,
36951        fidl::encoding::DefaultFuchsiaResourceDialect,
36952    > {
36953        DatagramSocketProxyInterface::r#get_ipv6_only(self)
36954    }
36955
36956    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
36957    pub fn r#set_ipv6_receive_traffic_class(
36958        &self,
36959        mut value: bool,
36960    ) -> fidl::client::QueryResponseFut<
36961        BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
36962        fidl::encoding::DefaultFuchsiaResourceDialect,
36963    > {
36964        DatagramSocketProxyInterface::r#set_ipv6_receive_traffic_class(self, value)
36965    }
36966
36967    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
36968    pub fn r#get_ipv6_receive_traffic_class(
36969        &self,
36970    ) -> fidl::client::QueryResponseFut<
36971        BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
36972        fidl::encoding::DefaultFuchsiaResourceDialect,
36973    > {
36974        DatagramSocketProxyInterface::r#get_ipv6_receive_traffic_class(self)
36975    }
36976
36977    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
36978    pub fn r#set_ipv6_traffic_class(
36979        &self,
36980        mut value: &OptionalUint8,
36981    ) -> fidl::client::QueryResponseFut<
36982        BaseNetworkSocketSetIpv6TrafficClassResult,
36983        fidl::encoding::DefaultFuchsiaResourceDialect,
36984    > {
36985        DatagramSocketProxyInterface::r#set_ipv6_traffic_class(self, value)
36986    }
36987
36988    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
36989    pub fn r#get_ipv6_traffic_class(
36990        &self,
36991    ) -> fidl::client::QueryResponseFut<
36992        BaseNetworkSocketGetIpv6TrafficClassResult,
36993        fidl::encoding::DefaultFuchsiaResourceDialect,
36994    > {
36995        DatagramSocketProxyInterface::r#get_ipv6_traffic_class(self)
36996    }
36997
36998    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
36999    pub fn r#set_ipv6_receive_packet_info(
37000        &self,
37001        mut value: bool,
37002    ) -> fidl::client::QueryResponseFut<
37003        BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
37004        fidl::encoding::DefaultFuchsiaResourceDialect,
37005    > {
37006        DatagramSocketProxyInterface::r#set_ipv6_receive_packet_info(self, value)
37007    }
37008
37009    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
37010    pub fn r#get_ipv6_receive_packet_info(
37011        &self,
37012    ) -> fidl::client::QueryResponseFut<
37013        BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
37014        fidl::encoding::DefaultFuchsiaResourceDialect,
37015    > {
37016        DatagramSocketProxyInterface::r#get_ipv6_receive_packet_info(self)
37017    }
37018
37019    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
37020    pub fn r#get_original_destination(
37021        &self,
37022    ) -> fidl::client::QueryResponseFut<
37023        BaseNetworkSocketGetOriginalDestinationResult,
37024        fidl::encoding::DefaultFuchsiaResourceDialect,
37025    > {
37026        DatagramSocketProxyInterface::r#get_original_destination(self)
37027    }
37028
37029    /// Retrieves creation information from the socket.
37030    ///
37031    /// - response `domain` the socket's associated domain.
37032    /// - response `proto` the socket's associated protocol.
37033    pub fn r#get_info(
37034        &self,
37035    ) -> fidl::client::QueryResponseFut<
37036        BaseDatagramSocketGetInfoResult,
37037        fidl::encoding::DefaultFuchsiaResourceDialect,
37038    > {
37039        DatagramSocketProxyInterface::r#get_info(self)
37040    }
37041
37042    pub fn r#describe(
37043        &self,
37044    ) -> fidl::client::QueryResponseFut<
37045        DatagramSocketDescribeResponse,
37046        fidl::encoding::DefaultFuchsiaResourceDialect,
37047    > {
37048        DatagramSocketProxyInterface::r#describe(self)
37049    }
37050
37051    /// Validates that data can be sent.
37052    ///
37053    /// + request `args` the requested disposition of data to be sent.
37054    /// - response the constraints sent data must satisfy.
37055    /// * error the error code indicating the reason for validation failure.
37056    pub fn r#send_msg_preflight(
37057        &self,
37058        mut payload: &DatagramSocketSendMsgPreflightRequest,
37059    ) -> fidl::client::QueryResponseFut<
37060        DatagramSocketSendMsgPreflightResult,
37061        fidl::encoding::DefaultFuchsiaResourceDialect,
37062    > {
37063        DatagramSocketProxyInterface::r#send_msg_preflight(self, payload)
37064    }
37065
37066    /// Returns the set of requested control messages.
37067    ///
37068    /// - response the set of currently requested control messages.
37069    pub fn r#recv_msg_postflight(
37070        &self,
37071    ) -> fidl::client::QueryResponseFut<
37072        DatagramSocketRecvMsgPostflightResult,
37073        fidl::encoding::DefaultFuchsiaResourceDialect,
37074    > {
37075        DatagramSocketProxyInterface::r#recv_msg_postflight(self)
37076    }
37077}
37078
37079impl DatagramSocketProxyInterface for DatagramSocketProxy {
37080    fn r#clone(
37081        &self,
37082        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
37083    ) -> Result<(), fidl::Error> {
37084        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
37085            (request,),
37086            0x20d8a7aba2168a79,
37087            fidl::encoding::DynamicFlags::empty(),
37088        )
37089    }
37090
37091    type CloseResponseFut = fidl::client::QueryResponseFut<
37092        fidl_fuchsia_unknown::CloseableCloseResult,
37093        fidl::encoding::DefaultFuchsiaResourceDialect,
37094    >;
37095    fn r#close(&self) -> Self::CloseResponseFut {
37096        fn _decode(
37097            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37098        ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
37099            let _response = fidl::client::decode_transaction_body::<
37100                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
37101                fidl::encoding::DefaultFuchsiaResourceDialect,
37102                0x5ac5d459ad7f657e,
37103            >(_buf?)?;
37104            Ok(_response.map(|x| x))
37105        }
37106        self.client.send_query_and_decode::<
37107            fidl::encoding::EmptyPayload,
37108            fidl_fuchsia_unknown::CloseableCloseResult,
37109        >(
37110            (),
37111            0x5ac5d459ad7f657e,
37112            fidl::encoding::DynamicFlags::empty(),
37113            _decode,
37114        )
37115    }
37116
37117    type QueryResponseFut =
37118        fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>;
37119    fn r#query(&self) -> Self::QueryResponseFut {
37120        fn _decode(
37121            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37122        ) -> Result<Vec<u8>, fidl::Error> {
37123            let _response = fidl::client::decode_transaction_body::<
37124                fidl_fuchsia_unknown::QueryableQueryResponse,
37125                fidl::encoding::DefaultFuchsiaResourceDialect,
37126                0x2658edee9decfc06,
37127            >(_buf?)?;
37128            Ok(_response.protocol)
37129        }
37130        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, Vec<u8>>(
37131            (),
37132            0x2658edee9decfc06,
37133            fidl::encoding::DynamicFlags::empty(),
37134            _decode,
37135        )
37136    }
37137
37138    type SetReuseAddressResponseFut = fidl::client::QueryResponseFut<
37139        BaseSocketSetReuseAddressResult,
37140        fidl::encoding::DefaultFuchsiaResourceDialect,
37141    >;
37142    fn r#set_reuse_address(&self, mut value: bool) -> Self::SetReuseAddressResponseFut {
37143        fn _decode(
37144            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37145        ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
37146            let _response = fidl::client::decode_transaction_body::<
37147                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37148                fidl::encoding::DefaultFuchsiaResourceDialect,
37149                0x1fd74ee8b9a4a876,
37150            >(_buf?)?;
37151            Ok(_response.map(|x| x))
37152        }
37153        self.client.send_query_and_decode::<
37154            BaseSocketSetReuseAddressRequest,
37155            BaseSocketSetReuseAddressResult,
37156        >(
37157            (value,),
37158            0x1fd74ee8b9a4a876,
37159            fidl::encoding::DynamicFlags::empty(),
37160            _decode,
37161        )
37162    }
37163
37164    type GetReuseAddressResponseFut = fidl::client::QueryResponseFut<
37165        BaseSocketGetReuseAddressResult,
37166        fidl::encoding::DefaultFuchsiaResourceDialect,
37167    >;
37168    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut {
37169        fn _decode(
37170            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37171        ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
37172            let _response = fidl::client::decode_transaction_body::<
37173                fidl::encoding::ResultType<
37174                    BaseSocketGetReuseAddressResponse,
37175                    fidl_fuchsia_posix::Errno,
37176                >,
37177                fidl::encoding::DefaultFuchsiaResourceDialect,
37178                0x67b7206b8d1bc0a5,
37179            >(_buf?)?;
37180            Ok(_response.map(|x| x.value))
37181        }
37182        self.client
37183            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReuseAddressResult>(
37184                (),
37185                0x67b7206b8d1bc0a5,
37186                fidl::encoding::DynamicFlags::empty(),
37187                _decode,
37188            )
37189    }
37190
37191    type GetErrorResponseFut = fidl::client::QueryResponseFut<
37192        BaseSocketGetErrorResult,
37193        fidl::encoding::DefaultFuchsiaResourceDialect,
37194    >;
37195    fn r#get_error(&self) -> Self::GetErrorResponseFut {
37196        fn _decode(
37197            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37198        ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
37199            let _response = fidl::client::decode_transaction_body::<
37200                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37201                fidl::encoding::DefaultFuchsiaResourceDialect,
37202                0x5aad39b33e5f6ebb,
37203            >(_buf?)?;
37204            Ok(_response.map(|x| x))
37205        }
37206        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetErrorResult>(
37207            (),
37208            0x5aad39b33e5f6ebb,
37209            fidl::encoding::DynamicFlags::empty(),
37210            _decode,
37211        )
37212    }
37213
37214    type SetBroadcastResponseFut = fidl::client::QueryResponseFut<
37215        BaseSocketSetBroadcastResult,
37216        fidl::encoding::DefaultFuchsiaResourceDialect,
37217    >;
37218    fn r#set_broadcast(&self, mut value: bool) -> Self::SetBroadcastResponseFut {
37219        fn _decode(
37220            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37221        ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
37222            let _response = fidl::client::decode_transaction_body::<
37223                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37224                fidl::encoding::DefaultFuchsiaResourceDialect,
37225                0x6023e081ce3cd947,
37226            >(_buf?)?;
37227            Ok(_response.map(|x| x))
37228        }
37229        self.client
37230            .send_query_and_decode::<BaseSocketSetBroadcastRequest, BaseSocketSetBroadcastResult>(
37231                (value,),
37232                0x6023e081ce3cd947,
37233                fidl::encoding::DynamicFlags::empty(),
37234                _decode,
37235            )
37236    }
37237
37238    type GetBroadcastResponseFut = fidl::client::QueryResponseFut<
37239        BaseSocketGetBroadcastResult,
37240        fidl::encoding::DefaultFuchsiaResourceDialect,
37241    >;
37242    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut {
37243        fn _decode(
37244            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37245        ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
37246            let _response = fidl::client::decode_transaction_body::<
37247                fidl::encoding::ResultType<
37248                    BaseSocketGetBroadcastResponse,
37249                    fidl_fuchsia_posix::Errno,
37250                >,
37251                fidl::encoding::DefaultFuchsiaResourceDialect,
37252                0x68796fc556f9780d,
37253            >(_buf?)?;
37254            Ok(_response.map(|x| x.value))
37255        }
37256        self.client
37257            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBroadcastResult>(
37258                (),
37259                0x68796fc556f9780d,
37260                fidl::encoding::DynamicFlags::empty(),
37261                _decode,
37262            )
37263    }
37264
37265    type SetSendBufferResponseFut = fidl::client::QueryResponseFut<
37266        BaseSocketSetSendBufferResult,
37267        fidl::encoding::DefaultFuchsiaResourceDialect,
37268    >;
37269    fn r#set_send_buffer(&self, mut value_bytes: u64) -> Self::SetSendBufferResponseFut {
37270        fn _decode(
37271            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37272        ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
37273            let _response = fidl::client::decode_transaction_body::<
37274                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37275                fidl::encoding::DefaultFuchsiaResourceDialect,
37276                0x756eac32d73a7a70,
37277            >(_buf?)?;
37278            Ok(_response.map(|x| x))
37279        }
37280        self.client
37281            .send_query_and_decode::<BaseSocketSetSendBufferRequest, BaseSocketSetSendBufferResult>(
37282                (value_bytes,),
37283                0x756eac32d73a7a70,
37284                fidl::encoding::DynamicFlags::empty(),
37285                _decode,
37286            )
37287    }
37288
37289    type GetSendBufferResponseFut = fidl::client::QueryResponseFut<
37290        BaseSocketGetSendBufferResult,
37291        fidl::encoding::DefaultFuchsiaResourceDialect,
37292    >;
37293    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut {
37294        fn _decode(
37295            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37296        ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
37297            let _response = fidl::client::decode_transaction_body::<
37298                fidl::encoding::ResultType<
37299                    BaseSocketGetSendBufferResponse,
37300                    fidl_fuchsia_posix::Errno,
37301                >,
37302                fidl::encoding::DefaultFuchsiaResourceDialect,
37303                0x78a52fd9c7b2410b,
37304            >(_buf?)?;
37305            Ok(_response.map(|x| x.value_bytes))
37306        }
37307        self.client
37308            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetSendBufferResult>(
37309                (),
37310                0x78a52fd9c7b2410b,
37311                fidl::encoding::DynamicFlags::empty(),
37312                _decode,
37313            )
37314    }
37315
37316    type SetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
37317        BaseSocketSetReceiveBufferResult,
37318        fidl::encoding::DefaultFuchsiaResourceDialect,
37319    >;
37320    fn r#set_receive_buffer(&self, mut value_bytes: u64) -> Self::SetReceiveBufferResponseFut {
37321        fn _decode(
37322            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37323        ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
37324            let _response = fidl::client::decode_transaction_body::<
37325                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37326                fidl::encoding::DefaultFuchsiaResourceDialect,
37327                0x6b0cf2f1919c7001,
37328            >(_buf?)?;
37329            Ok(_response.map(|x| x))
37330        }
37331        self.client.send_query_and_decode::<
37332            BaseSocketSetReceiveBufferRequest,
37333            BaseSocketSetReceiveBufferResult,
37334        >(
37335            (value_bytes,),
37336            0x6b0cf2f1919c7001,
37337            fidl::encoding::DynamicFlags::empty(),
37338            _decode,
37339        )
37340    }
37341
37342    type GetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
37343        BaseSocketGetReceiveBufferResult,
37344        fidl::encoding::DefaultFuchsiaResourceDialect,
37345    >;
37346    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut {
37347        fn _decode(
37348            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37349        ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
37350            let _response = fidl::client::decode_transaction_body::<
37351                fidl::encoding::ResultType<
37352                    BaseSocketGetReceiveBufferResponse,
37353                    fidl_fuchsia_posix::Errno,
37354                >,
37355                fidl::encoding::DefaultFuchsiaResourceDialect,
37356                0x14c1a4b64f709e5c,
37357            >(_buf?)?;
37358            Ok(_response.map(|x| x.value_bytes))
37359        }
37360        self.client.send_query_and_decode::<
37361            fidl::encoding::EmptyPayload,
37362            BaseSocketGetReceiveBufferResult,
37363        >(
37364            (),
37365            0x14c1a4b64f709e5c,
37366            fidl::encoding::DynamicFlags::empty(),
37367            _decode,
37368        )
37369    }
37370
37371    type SetKeepAliveResponseFut = fidl::client::QueryResponseFut<
37372        BaseSocketSetKeepAliveResult,
37373        fidl::encoding::DefaultFuchsiaResourceDialect,
37374    >;
37375    fn r#set_keep_alive(&self, mut value: bool) -> Self::SetKeepAliveResponseFut {
37376        fn _decode(
37377            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37378        ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
37379            let _response = fidl::client::decode_transaction_body::<
37380                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37381                fidl::encoding::DefaultFuchsiaResourceDialect,
37382                0x572df8f0b920d2c7,
37383            >(_buf?)?;
37384            Ok(_response.map(|x| x))
37385        }
37386        self.client
37387            .send_query_and_decode::<BaseSocketSetKeepAliveRequest, BaseSocketSetKeepAliveResult>(
37388                (value,),
37389                0x572df8f0b920d2c7,
37390                fidl::encoding::DynamicFlags::empty(),
37391                _decode,
37392            )
37393    }
37394
37395    type GetKeepAliveResponseFut = fidl::client::QueryResponseFut<
37396        BaseSocketGetKeepAliveResult,
37397        fidl::encoding::DefaultFuchsiaResourceDialect,
37398    >;
37399    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut {
37400        fn _decode(
37401            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37402        ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
37403            let _response = fidl::client::decode_transaction_body::<
37404                fidl::encoding::ResultType<
37405                    BaseSocketGetKeepAliveResponse,
37406                    fidl_fuchsia_posix::Errno,
37407                >,
37408                fidl::encoding::DefaultFuchsiaResourceDialect,
37409                0x2dd29d3215f2c9d2,
37410            >(_buf?)?;
37411            Ok(_response.map(|x| x.value))
37412        }
37413        self.client
37414            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetKeepAliveResult>(
37415                (),
37416                0x2dd29d3215f2c9d2,
37417                fidl::encoding::DynamicFlags::empty(),
37418                _decode,
37419            )
37420    }
37421
37422    type SetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
37423        BaseSocketSetOutOfBandInlineResult,
37424        fidl::encoding::DefaultFuchsiaResourceDialect,
37425    >;
37426    fn r#set_out_of_band_inline(&self, mut value: bool) -> Self::SetOutOfBandInlineResponseFut {
37427        fn _decode(
37428            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37429        ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
37430            let _response = fidl::client::decode_transaction_body::<
37431                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37432                fidl::encoding::DefaultFuchsiaResourceDialect,
37433                0x3ecb49968bee439,
37434            >(_buf?)?;
37435            Ok(_response.map(|x| x))
37436        }
37437        self.client.send_query_and_decode::<
37438            BaseSocketSetOutOfBandInlineRequest,
37439            BaseSocketSetOutOfBandInlineResult,
37440        >(
37441            (value,),
37442            0x3ecb49968bee439,
37443            fidl::encoding::DynamicFlags::empty(),
37444            _decode,
37445        )
37446    }
37447
37448    type GetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
37449        BaseSocketGetOutOfBandInlineResult,
37450        fidl::encoding::DefaultFuchsiaResourceDialect,
37451    >;
37452    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut {
37453        fn _decode(
37454            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37455        ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
37456            let _response = fidl::client::decode_transaction_body::<
37457                fidl::encoding::ResultType<
37458                    BaseSocketGetOutOfBandInlineResponse,
37459                    fidl_fuchsia_posix::Errno,
37460                >,
37461                fidl::encoding::DefaultFuchsiaResourceDialect,
37462                0x348c1ab3aeca1745,
37463            >(_buf?)?;
37464            Ok(_response.map(|x| x.value))
37465        }
37466        self.client.send_query_and_decode::<
37467            fidl::encoding::EmptyPayload,
37468            BaseSocketGetOutOfBandInlineResult,
37469        >(
37470            (),
37471            0x348c1ab3aeca1745,
37472            fidl::encoding::DynamicFlags::empty(),
37473            _decode,
37474        )
37475    }
37476
37477    type SetNoCheckResponseFut = fidl::client::QueryResponseFut<
37478        BaseSocketSetNoCheckResult,
37479        fidl::encoding::DefaultFuchsiaResourceDialect,
37480    >;
37481    fn r#set_no_check(&self, mut value: bool) -> Self::SetNoCheckResponseFut {
37482        fn _decode(
37483            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37484        ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
37485            let _response = fidl::client::decode_transaction_body::<
37486                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37487                fidl::encoding::DefaultFuchsiaResourceDialect,
37488                0x6bbf00c53a4c78c2,
37489            >(_buf?)?;
37490            Ok(_response.map(|x| x))
37491        }
37492        self.client
37493            .send_query_and_decode::<BaseSocketSetNoCheckRequest, BaseSocketSetNoCheckResult>(
37494                (value,),
37495                0x6bbf00c53a4c78c2,
37496                fidl::encoding::DynamicFlags::empty(),
37497                _decode,
37498            )
37499    }
37500
37501    type GetNoCheckResponseFut = fidl::client::QueryResponseFut<
37502        BaseSocketGetNoCheckResult,
37503        fidl::encoding::DefaultFuchsiaResourceDialect,
37504    >;
37505    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut {
37506        fn _decode(
37507            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37508        ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
37509            let _response = fidl::client::decode_transaction_body::<
37510                fidl::encoding::ResultType<BaseSocketGetNoCheckResponse, fidl_fuchsia_posix::Errno>,
37511                fidl::encoding::DefaultFuchsiaResourceDialect,
37512                0x2cd4249286417694,
37513            >(_buf?)?;
37514            Ok(_response.map(|x| x.value))
37515        }
37516        self.client
37517            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetNoCheckResult>(
37518                (),
37519                0x2cd4249286417694,
37520                fidl::encoding::DynamicFlags::empty(),
37521                _decode,
37522            )
37523    }
37524
37525    type SetLingerResponseFut = fidl::client::QueryResponseFut<
37526        BaseSocketSetLingerResult,
37527        fidl::encoding::DefaultFuchsiaResourceDialect,
37528    >;
37529    fn r#set_linger(&self, mut linger: bool, mut length_secs: u32) -> Self::SetLingerResponseFut {
37530        fn _decode(
37531            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37532        ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
37533            let _response = fidl::client::decode_transaction_body::<
37534                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37535                fidl::encoding::DefaultFuchsiaResourceDialect,
37536                0x45386351246e998e,
37537            >(_buf?)?;
37538            Ok(_response.map(|x| x))
37539        }
37540        self.client.send_query_and_decode::<BaseSocketSetLingerRequest, BaseSocketSetLingerResult>(
37541            (linger, length_secs),
37542            0x45386351246e998e,
37543            fidl::encoding::DynamicFlags::empty(),
37544            _decode,
37545        )
37546    }
37547
37548    type GetLingerResponseFut = fidl::client::QueryResponseFut<
37549        BaseSocketGetLingerResult,
37550        fidl::encoding::DefaultFuchsiaResourceDialect,
37551    >;
37552    fn r#get_linger(&self) -> Self::GetLingerResponseFut {
37553        fn _decode(
37554            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37555        ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
37556            let _response = fidl::client::decode_transaction_body::<
37557                fidl::encoding::ResultType<BaseSocketGetLingerResponse, fidl_fuchsia_posix::Errno>,
37558                fidl::encoding::DefaultFuchsiaResourceDialect,
37559                0x48eb20fc5ccb0e45,
37560            >(_buf?)?;
37561            Ok(_response.map(|x| (x.linger, x.length_secs)))
37562        }
37563        self.client
37564            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetLingerResult>(
37565                (),
37566                0x48eb20fc5ccb0e45,
37567                fidl::encoding::DynamicFlags::empty(),
37568                _decode,
37569            )
37570    }
37571
37572    type SetReusePortResponseFut = fidl::client::QueryResponseFut<
37573        BaseSocketSetReusePortResult,
37574        fidl::encoding::DefaultFuchsiaResourceDialect,
37575    >;
37576    fn r#set_reuse_port(&self, mut value: ReusePortOption) -> Self::SetReusePortResponseFut {
37577        fn _decode(
37578            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37579        ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
37580            let _response = fidl::client::decode_transaction_body::<
37581                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37582                fidl::encoding::DefaultFuchsiaResourceDialect,
37583                0x547dc9cc0455189e,
37584            >(_buf?)?;
37585            Ok(_response.map(|x| x))
37586        }
37587        self.client
37588            .send_query_and_decode::<BaseSocketSetReusePortRequest, BaseSocketSetReusePortResult>(
37589                (&mut value,),
37590                0x547dc9cc0455189e,
37591                fidl::encoding::DynamicFlags::empty(),
37592                _decode,
37593            )
37594    }
37595
37596    type SetReusePortDeprecatedResponseFut = fidl::client::QueryResponseFut<
37597        BaseSocketSetReusePortDeprecatedResult,
37598        fidl::encoding::DefaultFuchsiaResourceDialect,
37599    >;
37600    fn r#set_reuse_port_deprecated(
37601        &self,
37602        mut value: bool,
37603    ) -> Self::SetReusePortDeprecatedResponseFut {
37604        fn _decode(
37605            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37606        ) -> Result<BaseSocketSetReusePortDeprecatedResult, fidl::Error> {
37607            let _response = fidl::client::decode_transaction_body::<
37608                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37609                fidl::encoding::DefaultFuchsiaResourceDialect,
37610                0x24dd3e5cb36d9ccb,
37611            >(_buf?)?;
37612            Ok(_response.map(|x| x))
37613        }
37614        self.client.send_query_and_decode::<
37615            BaseSocketSetReusePortDeprecatedRequest,
37616            BaseSocketSetReusePortDeprecatedResult,
37617        >(
37618            (value,),
37619            0x24dd3e5cb36d9ccb,
37620            fidl::encoding::DynamicFlags::empty(),
37621            _decode,
37622        )
37623    }
37624
37625    type GetReusePortResponseFut = fidl::client::QueryResponseFut<
37626        BaseSocketGetReusePortResult,
37627        fidl::encoding::DefaultFuchsiaResourceDialect,
37628    >;
37629    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut {
37630        fn _decode(
37631            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37632        ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
37633            let _response = fidl::client::decode_transaction_body::<
37634                fidl::encoding::ResultType<
37635                    BaseSocketGetReusePortResponse,
37636                    fidl_fuchsia_posix::Errno,
37637                >,
37638                fidl::encoding::DefaultFuchsiaResourceDialect,
37639                0x7a112c1ab54ff828,
37640            >(_buf?)?;
37641            Ok(_response.map(|x| x.value))
37642        }
37643        self.client
37644            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReusePortResult>(
37645                (),
37646                0x7a112c1ab54ff828,
37647                fidl::encoding::DynamicFlags::empty(),
37648                _decode,
37649            )
37650    }
37651
37652    type GetAcceptConnResponseFut = fidl::client::QueryResponseFut<
37653        BaseSocketGetAcceptConnResult,
37654        fidl::encoding::DefaultFuchsiaResourceDialect,
37655    >;
37656    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut {
37657        fn _decode(
37658            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37659        ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
37660            let _response = fidl::client::decode_transaction_body::<
37661                fidl::encoding::ResultType<
37662                    BaseSocketGetAcceptConnResponse,
37663                    fidl_fuchsia_posix::Errno,
37664                >,
37665                fidl::encoding::DefaultFuchsiaResourceDialect,
37666                0x67ce6db6c2ec8966,
37667            >(_buf?)?;
37668            Ok(_response.map(|x| x.value))
37669        }
37670        self.client
37671            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetAcceptConnResult>(
37672                (),
37673                0x67ce6db6c2ec8966,
37674                fidl::encoding::DynamicFlags::empty(),
37675                _decode,
37676            )
37677    }
37678
37679    type SetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
37680        BaseSocketSetBindToDeviceResult,
37681        fidl::encoding::DefaultFuchsiaResourceDialect,
37682    >;
37683    fn r#set_bind_to_device(&self, mut value: &str) -> Self::SetBindToDeviceResponseFut {
37684        fn _decode(
37685            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37686        ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
37687            let _response = fidl::client::decode_transaction_body::<
37688                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37689                fidl::encoding::DefaultFuchsiaResourceDialect,
37690                0x2118b483f28aafc4,
37691            >(_buf?)?;
37692            Ok(_response.map(|x| x))
37693        }
37694        self.client.send_query_and_decode::<
37695            BaseSocketSetBindToDeviceRequest,
37696            BaseSocketSetBindToDeviceResult,
37697        >(
37698            (value,),
37699            0x2118b483f28aafc4,
37700            fidl::encoding::DynamicFlags::empty(),
37701            _decode,
37702        )
37703    }
37704
37705    type GetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
37706        BaseSocketGetBindToDeviceResult,
37707        fidl::encoding::DefaultFuchsiaResourceDialect,
37708    >;
37709    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut {
37710        fn _decode(
37711            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37712        ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
37713            let _response = fidl::client::decode_transaction_body::<
37714                fidl::encoding::ResultType<
37715                    BaseSocketGetBindToDeviceResponse,
37716                    fidl_fuchsia_posix::Errno,
37717                >,
37718                fidl::encoding::DefaultFuchsiaResourceDialect,
37719                0x1ab1fbf0ef7906c8,
37720            >(_buf?)?;
37721            Ok(_response.map(|x| x.value))
37722        }
37723        self.client
37724            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBindToDeviceResult>(
37725                (),
37726                0x1ab1fbf0ef7906c8,
37727                fidl::encoding::DynamicFlags::empty(),
37728                _decode,
37729            )
37730    }
37731
37732    type SetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
37733        BaseSocketSetBindToInterfaceIndexResult,
37734        fidl::encoding::DefaultFuchsiaResourceDialect,
37735    >;
37736    fn r#set_bind_to_interface_index(
37737        &self,
37738        mut value: u64,
37739    ) -> Self::SetBindToInterfaceIndexResponseFut {
37740        fn _decode(
37741            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37742        ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
37743            let _response = fidl::client::decode_transaction_body::<
37744                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37745                fidl::encoding::DefaultFuchsiaResourceDialect,
37746                0x6e387a0def00821,
37747            >(_buf?)?;
37748            Ok(_response.map(|x| x))
37749        }
37750        self.client.send_query_and_decode::<
37751            BaseSocketSetBindToInterfaceIndexRequest,
37752            BaseSocketSetBindToInterfaceIndexResult,
37753        >(
37754            (value,),
37755            0x6e387a0def00821,
37756            fidl::encoding::DynamicFlags::empty(),
37757            _decode,
37758        )
37759    }
37760
37761    type GetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
37762        BaseSocketGetBindToInterfaceIndexResult,
37763        fidl::encoding::DefaultFuchsiaResourceDialect,
37764    >;
37765    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut {
37766        fn _decode(
37767            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37768        ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
37769            let _response = fidl::client::decode_transaction_body::<
37770                fidl::encoding::ResultType<
37771                    BaseSocketGetBindToInterfaceIndexResponse,
37772                    fidl_fuchsia_posix::Errno,
37773                >,
37774                fidl::encoding::DefaultFuchsiaResourceDialect,
37775                0x59c31dd3e3078295,
37776            >(_buf?)?;
37777            Ok(_response.map(|x| x.value))
37778        }
37779        self.client.send_query_and_decode::<
37780            fidl::encoding::EmptyPayload,
37781            BaseSocketGetBindToInterfaceIndexResult,
37782        >(
37783            (),
37784            0x59c31dd3e3078295,
37785            fidl::encoding::DynamicFlags::empty(),
37786            _decode,
37787        )
37788    }
37789
37790    type SetTimestampResponseFut = fidl::client::QueryResponseFut<
37791        BaseSocketSetTimestampResult,
37792        fidl::encoding::DefaultFuchsiaResourceDialect,
37793    >;
37794    fn r#set_timestamp(&self, mut value: TimestampOption) -> Self::SetTimestampResponseFut {
37795        fn _decode(
37796            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37797        ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
37798            let _response = fidl::client::decode_transaction_body::<
37799                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37800                fidl::encoding::DefaultFuchsiaResourceDialect,
37801                0x285d6516c263d839,
37802            >(_buf?)?;
37803            Ok(_response.map(|x| x))
37804        }
37805        self.client
37806            .send_query_and_decode::<BaseSocketSetTimestampRequest, BaseSocketSetTimestampResult>(
37807                (value,),
37808                0x285d6516c263d839,
37809                fidl::encoding::DynamicFlags::empty(),
37810                _decode,
37811            )
37812    }
37813
37814    type GetTimestampResponseFut = fidl::client::QueryResponseFut<
37815        BaseSocketGetTimestampResult,
37816        fidl::encoding::DefaultFuchsiaResourceDialect,
37817    >;
37818    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut {
37819        fn _decode(
37820            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37821        ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
37822            let _response = fidl::client::decode_transaction_body::<
37823                fidl::encoding::ResultType<
37824                    BaseSocketGetTimestampResponse,
37825                    fidl_fuchsia_posix::Errno,
37826                >,
37827                fidl::encoding::DefaultFuchsiaResourceDialect,
37828                0x49f2fffbbcc2bd27,
37829            >(_buf?)?;
37830            Ok(_response.map(|x| x.value))
37831        }
37832        self.client
37833            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetTimestampResult>(
37834                (),
37835                0x49f2fffbbcc2bd27,
37836                fidl::encoding::DynamicFlags::empty(),
37837                _decode,
37838            )
37839    }
37840
37841    type SetMarkResponseFut = fidl::client::QueryResponseFut<
37842        BaseSocketSetMarkResult,
37843        fidl::encoding::DefaultFuchsiaResourceDialect,
37844    >;
37845    fn r#set_mark(
37846        &self,
37847        mut domain: fidl_fuchsia_net::MarkDomain,
37848        mut mark: &OptionalUint32,
37849    ) -> Self::SetMarkResponseFut {
37850        fn _decode(
37851            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37852        ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
37853            let _response = fidl::client::decode_transaction_body::<
37854                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37855                fidl::encoding::DefaultFuchsiaResourceDialect,
37856                0x6ead6de09f653236,
37857            >(_buf?)?;
37858            Ok(_response.map(|x| x))
37859        }
37860        self.client.send_query_and_decode::<BaseSocketSetMarkRequest, BaseSocketSetMarkResult>(
37861            (domain, mark),
37862            0x6ead6de09f653236,
37863            fidl::encoding::DynamicFlags::empty(),
37864            _decode,
37865        )
37866    }
37867
37868    type GetMarkResponseFut = fidl::client::QueryResponseFut<
37869        BaseSocketGetMarkResult,
37870        fidl::encoding::DefaultFuchsiaResourceDialect,
37871    >;
37872    fn r#get_mark(&self, mut domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut {
37873        fn _decode(
37874            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37875        ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
37876            let _response = fidl::client::decode_transaction_body::<
37877                fidl::encoding::ResultType<BaseSocketGetMarkResponse, fidl_fuchsia_posix::Errno>,
37878                fidl::encoding::DefaultFuchsiaResourceDialect,
37879                0x57a2752c61d93d47,
37880            >(_buf?)?;
37881            Ok(_response.map(|x| x.mark))
37882        }
37883        self.client.send_query_and_decode::<BaseSocketGetMarkRequest, BaseSocketGetMarkResult>(
37884            (domain,),
37885            0x57a2752c61d93d47,
37886            fidl::encoding::DynamicFlags::empty(),
37887            _decode,
37888        )
37889    }
37890
37891    type GetCookieResponseFut = fidl::client::QueryResponseFut<
37892        BaseSocketGetCookieResult,
37893        fidl::encoding::DefaultFuchsiaResourceDialect,
37894    >;
37895    fn r#get_cookie(&self) -> Self::GetCookieResponseFut {
37896        fn _decode(
37897            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37898        ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
37899            let _response = fidl::client::decode_transaction_body::<
37900                fidl::encoding::ResultType<BaseSocketGetCookieResponse, fidl_fuchsia_posix::Errno>,
37901                fidl::encoding::DefaultFuchsiaResourceDialect,
37902                0x2c2f47fd8f924e52,
37903            >(_buf?)?;
37904            Ok(_response.map(|x| x.value))
37905        }
37906        self.client
37907            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetCookieResult>(
37908                (),
37909                0x2c2f47fd8f924e52,
37910                fidl::encoding::DynamicFlags::empty(),
37911                _decode,
37912            )
37913    }
37914
37915    type BindResponseFut = fidl::client::QueryResponseFut<
37916        BaseNetworkSocketBindResult,
37917        fidl::encoding::DefaultFuchsiaResourceDialect,
37918    >;
37919    fn r#bind(&self, mut addr: &fidl_fuchsia_net::SocketAddress) -> Self::BindResponseFut {
37920        fn _decode(
37921            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37922        ) -> Result<BaseNetworkSocketBindResult, fidl::Error> {
37923            let _response = fidl::client::decode_transaction_body::<
37924                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37925                fidl::encoding::DefaultFuchsiaResourceDialect,
37926                0x4bc6400ae92125d,
37927            >(_buf?)?;
37928            Ok(_response.map(|x| x))
37929        }
37930        self.client
37931            .send_query_and_decode::<BaseNetworkSocketBindRequest, BaseNetworkSocketBindResult>(
37932                (addr,),
37933                0x4bc6400ae92125d,
37934                fidl::encoding::DynamicFlags::empty(),
37935                _decode,
37936            )
37937    }
37938
37939    type ConnectResponseFut = fidl::client::QueryResponseFut<
37940        BaseNetworkSocketConnectResult,
37941        fidl::encoding::DefaultFuchsiaResourceDialect,
37942    >;
37943    fn r#connect(&self, mut addr: &fidl_fuchsia_net::SocketAddress) -> Self::ConnectResponseFut {
37944        fn _decode(
37945            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37946        ) -> Result<BaseNetworkSocketConnectResult, fidl::Error> {
37947            let _response = fidl::client::decode_transaction_body::<
37948                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37949                fidl::encoding::DefaultFuchsiaResourceDialect,
37950                0x5f05f19bfdd38871,
37951            >(_buf?)?;
37952            Ok(_response.map(|x| x))
37953        }
37954        self.client.send_query_and_decode::<
37955            BaseNetworkSocketConnectRequest,
37956            BaseNetworkSocketConnectResult,
37957        >(
37958            (addr,),
37959            0x5f05f19bfdd38871,
37960            fidl::encoding::DynamicFlags::empty(),
37961            _decode,
37962        )
37963    }
37964
37965    type DisconnectResponseFut = fidl::client::QueryResponseFut<
37966        BaseNetworkSocketDisconnectResult,
37967        fidl::encoding::DefaultFuchsiaResourceDialect,
37968    >;
37969    fn r#disconnect(&self) -> Self::DisconnectResponseFut {
37970        fn _decode(
37971            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37972        ) -> Result<BaseNetworkSocketDisconnectResult, fidl::Error> {
37973            let _response = fidl::client::decode_transaction_body::<
37974                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37975                fidl::encoding::DefaultFuchsiaResourceDialect,
37976                0x74e63b91f7b29b2,
37977            >(_buf?)?;
37978            Ok(_response.map(|x| x))
37979        }
37980        self.client.send_query_and_decode::<
37981            fidl::encoding::EmptyPayload,
37982            BaseNetworkSocketDisconnectResult,
37983        >(
37984            (),
37985            0x74e63b91f7b29b2,
37986            fidl::encoding::DynamicFlags::empty(),
37987            _decode,
37988        )
37989    }
37990
37991    type GetSockNameResponseFut = fidl::client::QueryResponseFut<
37992        BaseNetworkSocketGetSockNameResult,
37993        fidl::encoding::DefaultFuchsiaResourceDialect,
37994    >;
37995    fn r#get_sock_name(&self) -> Self::GetSockNameResponseFut {
37996        fn _decode(
37997            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37998        ) -> Result<BaseNetworkSocketGetSockNameResult, fidl::Error> {
37999            let _response = fidl::client::decode_transaction_body::<
38000                fidl::encoding::ResultType<
38001                    BaseNetworkSocketGetSockNameResponse,
38002                    fidl_fuchsia_posix::Errno,
38003                >,
38004                fidl::encoding::DefaultFuchsiaResourceDialect,
38005                0x475f23f84a1a4f85,
38006            >(_buf?)?;
38007            Ok(_response.map(|x| x.addr))
38008        }
38009        self.client.send_query_and_decode::<
38010            fidl::encoding::EmptyPayload,
38011            BaseNetworkSocketGetSockNameResult,
38012        >(
38013            (),
38014            0x475f23f84a1a4f85,
38015            fidl::encoding::DynamicFlags::empty(),
38016            _decode,
38017        )
38018    }
38019
38020    type GetPeerNameResponseFut = fidl::client::QueryResponseFut<
38021        BaseNetworkSocketGetPeerNameResult,
38022        fidl::encoding::DefaultFuchsiaResourceDialect,
38023    >;
38024    fn r#get_peer_name(&self) -> Self::GetPeerNameResponseFut {
38025        fn _decode(
38026            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38027        ) -> Result<BaseNetworkSocketGetPeerNameResult, fidl::Error> {
38028            let _response = fidl::client::decode_transaction_body::<
38029                fidl::encoding::ResultType<
38030                    BaseNetworkSocketGetPeerNameResponse,
38031                    fidl_fuchsia_posix::Errno,
38032                >,
38033                fidl::encoding::DefaultFuchsiaResourceDialect,
38034                0x1ffecf4bd5b6432e,
38035            >(_buf?)?;
38036            Ok(_response.map(|x| x.addr))
38037        }
38038        self.client.send_query_and_decode::<
38039            fidl::encoding::EmptyPayload,
38040            BaseNetworkSocketGetPeerNameResult,
38041        >(
38042            (),
38043            0x1ffecf4bd5b6432e,
38044            fidl::encoding::DynamicFlags::empty(),
38045            _decode,
38046        )
38047    }
38048
38049    type ShutdownResponseFut = fidl::client::QueryResponseFut<
38050        BaseNetworkSocketShutdownResult,
38051        fidl::encoding::DefaultFuchsiaResourceDialect,
38052    >;
38053    fn r#shutdown(&self, mut mode: ShutdownMode) -> Self::ShutdownResponseFut {
38054        fn _decode(
38055            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38056        ) -> Result<BaseNetworkSocketShutdownResult, fidl::Error> {
38057            let _response = fidl::client::decode_transaction_body::<
38058                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
38059                fidl::encoding::DefaultFuchsiaResourceDialect,
38060                0x247f38b6db68c336,
38061            >(_buf?)?;
38062            Ok(_response.map(|x| x))
38063        }
38064        self.client.send_query_and_decode::<
38065            BaseNetworkSocketShutdownRequest,
38066            BaseNetworkSocketShutdownResult,
38067        >(
38068            (mode,),
38069            0x247f38b6db68c336,
38070            fidl::encoding::DynamicFlags::empty(),
38071            _decode,
38072        )
38073    }
38074
38075    type SetIpTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
38076        BaseNetworkSocketSetIpTypeOfServiceResult,
38077        fidl::encoding::DefaultFuchsiaResourceDialect,
38078    >;
38079    fn r#set_ip_type_of_service(&self, mut value: u8) -> Self::SetIpTypeOfServiceResponseFut {
38080        fn _decode(
38081            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38082        ) -> Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error> {
38083            let _response = fidl::client::decode_transaction_body::<
38084                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
38085                fidl::encoding::DefaultFuchsiaResourceDialect,
38086                0x995c600475b6d46,
38087            >(_buf?)?;
38088            Ok(_response.map(|x| x))
38089        }
38090        self.client.send_query_and_decode::<
38091            BaseNetworkSocketSetIpTypeOfServiceRequest,
38092            BaseNetworkSocketSetIpTypeOfServiceResult,
38093        >(
38094            (value,),
38095            0x995c600475b6d46,
38096            fidl::encoding::DynamicFlags::empty(),
38097            _decode,
38098        )
38099    }
38100
38101    type GetIpTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
38102        BaseNetworkSocketGetIpTypeOfServiceResult,
38103        fidl::encoding::DefaultFuchsiaResourceDialect,
38104    >;
38105    fn r#get_ip_type_of_service(&self) -> Self::GetIpTypeOfServiceResponseFut {
38106        fn _decode(
38107            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38108        ) -> Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error> {
38109            let _response = fidl::client::decode_transaction_body::<
38110                fidl::encoding::ResultType<
38111                    BaseNetworkSocketGetIpTypeOfServiceResponse,
38112                    fidl_fuchsia_posix::Errno,
38113                >,
38114                fidl::encoding::DefaultFuchsiaResourceDialect,
38115                0x3814a04259f75fcb,
38116            >(_buf?)?;
38117            Ok(_response.map(|x| x.value))
38118        }
38119        self.client.send_query_and_decode::<
38120            fidl::encoding::EmptyPayload,
38121            BaseNetworkSocketGetIpTypeOfServiceResult,
38122        >(
38123            (),
38124            0x3814a04259f75fcb,
38125            fidl::encoding::DynamicFlags::empty(),
38126            _decode,
38127        )
38128    }
38129
38130    type SetIpTtlResponseFut = fidl::client::QueryResponseFut<
38131        BaseNetworkSocketSetIpTtlResult,
38132        fidl::encoding::DefaultFuchsiaResourceDialect,
38133    >;
38134    fn r#set_ip_ttl(&self, mut value: &OptionalUint8) -> Self::SetIpTtlResponseFut {
38135        fn _decode(
38136            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38137        ) -> Result<BaseNetworkSocketSetIpTtlResult, fidl::Error> {
38138            let _response = fidl::client::decode_transaction_body::<
38139                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
38140                fidl::encoding::DefaultFuchsiaResourceDialect,
38141                0x29e2424b433ae1ef,
38142            >(_buf?)?;
38143            Ok(_response.map(|x| x))
38144        }
38145        self.client.send_query_and_decode::<
38146            BaseNetworkSocketSetIpTtlRequest,
38147            BaseNetworkSocketSetIpTtlResult,
38148        >(
38149            (value,),
38150            0x29e2424b433ae1ef,
38151            fidl::encoding::DynamicFlags::empty(),
38152            _decode,
38153        )
38154    }
38155
38156    type GetIpTtlResponseFut = fidl::client::QueryResponseFut<
38157        BaseNetworkSocketGetIpTtlResult,
38158        fidl::encoding::DefaultFuchsiaResourceDialect,
38159    >;
38160    fn r#get_ip_ttl(&self) -> Self::GetIpTtlResponseFut {
38161        fn _decode(
38162            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38163        ) -> Result<BaseNetworkSocketGetIpTtlResult, fidl::Error> {
38164            let _response = fidl::client::decode_transaction_body::<
38165                fidl::encoding::ResultType<
38166                    BaseNetworkSocketGetIpTtlResponse,
38167                    fidl_fuchsia_posix::Errno,
38168                >,
38169                fidl::encoding::DefaultFuchsiaResourceDialect,
38170                0x47e47fa1f24da471,
38171            >(_buf?)?;
38172            Ok(_response.map(|x| x.value))
38173        }
38174        self.client
38175            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseNetworkSocketGetIpTtlResult>(
38176                (),
38177                0x47e47fa1f24da471,
38178                fidl::encoding::DynamicFlags::empty(),
38179                _decode,
38180            )
38181    }
38182
38183    type SetIpPacketInfoResponseFut = fidl::client::QueryResponseFut<
38184        BaseNetworkSocketSetIpPacketInfoResult,
38185        fidl::encoding::DefaultFuchsiaResourceDialect,
38186    >;
38187    fn r#set_ip_packet_info(&self, mut value: bool) -> Self::SetIpPacketInfoResponseFut {
38188        fn _decode(
38189            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38190        ) -> Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error> {
38191            let _response = fidl::client::decode_transaction_body::<
38192                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
38193                fidl::encoding::DefaultFuchsiaResourceDialect,
38194                0x392d16bee20c0e16,
38195            >(_buf?)?;
38196            Ok(_response.map(|x| x))
38197        }
38198        self.client.send_query_and_decode::<
38199            BaseNetworkSocketSetIpPacketInfoRequest,
38200            BaseNetworkSocketSetIpPacketInfoResult,
38201        >(
38202            (value,),
38203            0x392d16bee20c0e16,
38204            fidl::encoding::DynamicFlags::empty(),
38205            _decode,
38206        )
38207    }
38208
38209    type GetIpPacketInfoResponseFut = fidl::client::QueryResponseFut<
38210        BaseNetworkSocketGetIpPacketInfoResult,
38211        fidl::encoding::DefaultFuchsiaResourceDialect,
38212    >;
38213    fn r#get_ip_packet_info(&self) -> Self::GetIpPacketInfoResponseFut {
38214        fn _decode(
38215            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38216        ) -> Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error> {
38217            let _response = fidl::client::decode_transaction_body::<
38218                fidl::encoding::ResultType<
38219                    BaseNetworkSocketGetIpPacketInfoResponse,
38220                    fidl_fuchsia_posix::Errno,
38221                >,
38222                fidl::encoding::DefaultFuchsiaResourceDialect,
38223                0x54b505f242280740,
38224            >(_buf?)?;
38225            Ok(_response.map(|x| x.value))
38226        }
38227        self.client.send_query_and_decode::<
38228            fidl::encoding::EmptyPayload,
38229            BaseNetworkSocketGetIpPacketInfoResult,
38230        >(
38231            (),
38232            0x54b505f242280740,
38233            fidl::encoding::DynamicFlags::empty(),
38234            _decode,
38235        )
38236    }
38237
38238    type SetIpReceiveTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
38239        BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
38240        fidl::encoding::DefaultFuchsiaResourceDialect,
38241    >;
38242    fn r#set_ip_receive_type_of_service(
38243        &self,
38244        mut value: bool,
38245    ) -> Self::SetIpReceiveTypeOfServiceResponseFut {
38246        fn _decode(
38247            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38248        ) -> Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error> {
38249            let _response = fidl::client::decode_transaction_body::<
38250                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
38251                fidl::encoding::DefaultFuchsiaResourceDialect,
38252                0x6c4f6714995f84ef,
38253            >(_buf?)?;
38254            Ok(_response.map(|x| x))
38255        }
38256        self.client.send_query_and_decode::<
38257            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
38258            BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
38259        >(
38260            (value,),
38261            0x6c4f6714995f84ef,
38262            fidl::encoding::DynamicFlags::empty(),
38263            _decode,
38264        )
38265    }
38266
38267    type GetIpReceiveTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
38268        BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
38269        fidl::encoding::DefaultFuchsiaResourceDialect,
38270    >;
38271    fn r#get_ip_receive_type_of_service(&self) -> Self::GetIpReceiveTypeOfServiceResponseFut {
38272        fn _decode(
38273            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38274        ) -> Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error> {
38275            let _response = fidl::client::decode_transaction_body::<
38276                fidl::encoding::ResultType<
38277                    BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
38278                    fidl_fuchsia_posix::Errno,
38279                >,
38280                fidl::encoding::DefaultFuchsiaResourceDialect,
38281                0x4158ba7dc2795960,
38282            >(_buf?)?;
38283            Ok(_response.map(|x| x.value))
38284        }
38285        self.client.send_query_and_decode::<
38286            fidl::encoding::EmptyPayload,
38287            BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
38288        >(
38289            (),
38290            0x4158ba7dc2795960,
38291            fidl::encoding::DynamicFlags::empty(),
38292            _decode,
38293        )
38294    }
38295
38296    type SetIpReceiveTtlResponseFut = fidl::client::QueryResponseFut<
38297        BaseNetworkSocketSetIpReceiveTtlResult,
38298        fidl::encoding::DefaultFuchsiaResourceDialect,
38299    >;
38300    fn r#set_ip_receive_ttl(&self, mut value: bool) -> Self::SetIpReceiveTtlResponseFut {
38301        fn _decode(
38302            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38303        ) -> Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error> {
38304            let _response = fidl::client::decode_transaction_body::<
38305                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
38306                fidl::encoding::DefaultFuchsiaResourceDialect,
38307                0x46f15be0ce0ab82b,
38308            >(_buf?)?;
38309            Ok(_response.map(|x| x))
38310        }
38311        self.client.send_query_and_decode::<
38312            BaseNetworkSocketSetIpReceiveTtlRequest,
38313            BaseNetworkSocketSetIpReceiveTtlResult,
38314        >(
38315            (value,),
38316            0x46f15be0ce0ab82b,
38317            fidl::encoding::DynamicFlags::empty(),
38318            _decode,
38319        )
38320    }
38321
38322    type GetIpReceiveTtlResponseFut = fidl::client::QueryResponseFut<
38323        BaseNetworkSocketGetIpReceiveTtlResult,
38324        fidl::encoding::DefaultFuchsiaResourceDialect,
38325    >;
38326    fn r#get_ip_receive_ttl(&self) -> Self::GetIpReceiveTtlResponseFut {
38327        fn _decode(
38328            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38329        ) -> Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error> {
38330            let _response = fidl::client::decode_transaction_body::<
38331                fidl::encoding::ResultType<
38332                    BaseNetworkSocketGetIpReceiveTtlResponse,
38333                    fidl_fuchsia_posix::Errno,
38334                >,
38335                fidl::encoding::DefaultFuchsiaResourceDialect,
38336                0x678ddd5a5dfa2eb5,
38337            >(_buf?)?;
38338            Ok(_response.map(|x| x.value))
38339        }
38340        self.client.send_query_and_decode::<
38341            fidl::encoding::EmptyPayload,
38342            BaseNetworkSocketGetIpReceiveTtlResult,
38343        >(
38344            (),
38345            0x678ddd5a5dfa2eb5,
38346            fidl::encoding::DynamicFlags::empty(),
38347            _decode,
38348        )
38349    }
38350
38351    type SetIpMulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
38352        BaseNetworkSocketSetIpMulticastInterfaceResult,
38353        fidl::encoding::DefaultFuchsiaResourceDialect,
38354    >;
38355    fn r#set_ip_multicast_interface(
38356        &self,
38357        mut iface: u64,
38358        mut address: &fidl_fuchsia_net::Ipv4Address,
38359    ) -> Self::SetIpMulticastInterfaceResponseFut {
38360        fn _decode(
38361            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38362        ) -> Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error> {
38363            let _response = fidl::client::decode_transaction_body::<
38364                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
38365                fidl::encoding::DefaultFuchsiaResourceDialect,
38366                0x752fbfa9b12befe,
38367            >(_buf?)?;
38368            Ok(_response.map(|x| x))
38369        }
38370        self.client.send_query_and_decode::<
38371            BaseNetworkSocketSetIpMulticastInterfaceRequest,
38372            BaseNetworkSocketSetIpMulticastInterfaceResult,
38373        >(
38374            (iface, address,),
38375            0x752fbfa9b12befe,
38376            fidl::encoding::DynamicFlags::empty(),
38377            _decode,
38378        )
38379    }
38380
38381    type GetIpMulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
38382        BaseNetworkSocketGetIpMulticastInterfaceResult,
38383        fidl::encoding::DefaultFuchsiaResourceDialect,
38384    >;
38385    fn r#get_ip_multicast_interface(&self) -> Self::GetIpMulticastInterfaceResponseFut {
38386        fn _decode(
38387            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38388        ) -> Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error> {
38389            let _response = fidl::client::decode_transaction_body::<
38390                fidl::encoding::ResultType<
38391                    BaseNetworkSocketGetIpMulticastInterfaceResponse,
38392                    fidl_fuchsia_posix::Errno,
38393                >,
38394                fidl::encoding::DefaultFuchsiaResourceDialect,
38395                0x320bd14c4df046c4,
38396            >(_buf?)?;
38397            Ok(_response.map(|x| x.value))
38398        }
38399        self.client.send_query_and_decode::<
38400            fidl::encoding::EmptyPayload,
38401            BaseNetworkSocketGetIpMulticastInterfaceResult,
38402        >(
38403            (),
38404            0x320bd14c4df046c4,
38405            fidl::encoding::DynamicFlags::empty(),
38406            _decode,
38407        )
38408    }
38409
38410    type SetIpMulticastTtlResponseFut = fidl::client::QueryResponseFut<
38411        BaseNetworkSocketSetIpMulticastTtlResult,
38412        fidl::encoding::DefaultFuchsiaResourceDialect,
38413    >;
38414    fn r#set_ip_multicast_ttl(
38415        &self,
38416        mut value: &OptionalUint8,
38417    ) -> Self::SetIpMulticastTtlResponseFut {
38418        fn _decode(
38419            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38420        ) -> Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error> {
38421            let _response = fidl::client::decode_transaction_body::<
38422                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
38423                fidl::encoding::DefaultFuchsiaResourceDialect,
38424                0x63134d53772916a1,
38425            >(_buf?)?;
38426            Ok(_response.map(|x| x))
38427        }
38428        self.client.send_query_and_decode::<
38429            BaseNetworkSocketSetIpMulticastTtlRequest,
38430            BaseNetworkSocketSetIpMulticastTtlResult,
38431        >(
38432            (value,),
38433            0x63134d53772916a1,
38434            fidl::encoding::DynamicFlags::empty(),
38435            _decode,
38436        )
38437    }
38438
38439    type GetIpMulticastTtlResponseFut = fidl::client::QueryResponseFut<
38440        BaseNetworkSocketGetIpMulticastTtlResult,
38441        fidl::encoding::DefaultFuchsiaResourceDialect,
38442    >;
38443    fn r#get_ip_multicast_ttl(&self) -> Self::GetIpMulticastTtlResponseFut {
38444        fn _decode(
38445            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38446        ) -> Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error> {
38447            let _response = fidl::client::decode_transaction_body::<
38448                fidl::encoding::ResultType<
38449                    BaseNetworkSocketGetIpMulticastTtlResponse,
38450                    fidl_fuchsia_posix::Errno,
38451                >,
38452                fidl::encoding::DefaultFuchsiaResourceDialect,
38453                0x4665cd378f39e1a,
38454            >(_buf?)?;
38455            Ok(_response.map(|x| x.value))
38456        }
38457        self.client.send_query_and_decode::<
38458            fidl::encoding::EmptyPayload,
38459            BaseNetworkSocketGetIpMulticastTtlResult,
38460        >(
38461            (),
38462            0x4665cd378f39e1a,
38463            fidl::encoding::DynamicFlags::empty(),
38464            _decode,
38465        )
38466    }
38467
38468    type SetIpMulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
38469        BaseNetworkSocketSetIpMulticastLoopbackResult,
38470        fidl::encoding::DefaultFuchsiaResourceDialect,
38471    >;
38472    fn r#set_ip_multicast_loopback(
38473        &self,
38474        mut value: bool,
38475    ) -> Self::SetIpMulticastLoopbackResponseFut {
38476        fn _decode(
38477            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38478        ) -> Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error> {
38479            let _response = fidl::client::decode_transaction_body::<
38480                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
38481                fidl::encoding::DefaultFuchsiaResourceDialect,
38482                0x20c55c11f00943ea,
38483            >(_buf?)?;
38484            Ok(_response.map(|x| x))
38485        }
38486        self.client.send_query_and_decode::<
38487            BaseNetworkSocketSetIpMulticastLoopbackRequest,
38488            BaseNetworkSocketSetIpMulticastLoopbackResult,
38489        >(
38490            (value,),
38491            0x20c55c11f00943ea,
38492            fidl::encoding::DynamicFlags::empty(),
38493            _decode,
38494        )
38495    }
38496
38497    type GetIpMulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
38498        BaseNetworkSocketGetIpMulticastLoopbackResult,
38499        fidl::encoding::DefaultFuchsiaResourceDialect,
38500    >;
38501    fn r#get_ip_multicast_loopback(&self) -> Self::GetIpMulticastLoopbackResponseFut {
38502        fn _decode(
38503            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38504        ) -> Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error> {
38505            let _response = fidl::client::decode_transaction_body::<
38506                fidl::encoding::ResultType<
38507                    BaseNetworkSocketGetIpMulticastLoopbackResponse,
38508                    fidl_fuchsia_posix::Errno,
38509                >,
38510                fidl::encoding::DefaultFuchsiaResourceDialect,
38511                0x3b6b26ff558298f2,
38512            >(_buf?)?;
38513            Ok(_response.map(|x| x.value))
38514        }
38515        self.client.send_query_and_decode::<
38516            fidl::encoding::EmptyPayload,
38517            BaseNetworkSocketGetIpMulticastLoopbackResult,
38518        >(
38519            (),
38520            0x3b6b26ff558298f2,
38521            fidl::encoding::DynamicFlags::empty(),
38522            _decode,
38523        )
38524    }
38525
38526    type AddIpMembershipResponseFut = fidl::client::QueryResponseFut<
38527        BaseNetworkSocketAddIpMembershipResult,
38528        fidl::encoding::DefaultFuchsiaResourceDialect,
38529    >;
38530    fn r#add_ip_membership(
38531        &self,
38532        mut membership: &IpMulticastMembership,
38533    ) -> Self::AddIpMembershipResponseFut {
38534        fn _decode(
38535            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38536        ) -> Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error> {
38537            let _response = fidl::client::decode_transaction_body::<
38538                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
38539                fidl::encoding::DefaultFuchsiaResourceDialect,
38540                0x76bc7df115a3b4d0,
38541            >(_buf?)?;
38542            Ok(_response.map(|x| x))
38543        }
38544        self.client.send_query_and_decode::<
38545            BaseNetworkSocketAddIpMembershipRequest,
38546            BaseNetworkSocketAddIpMembershipResult,
38547        >(
38548            (membership,),
38549            0x76bc7df115a3b4d0,
38550            fidl::encoding::DynamicFlags::empty(),
38551            _decode,
38552        )
38553    }
38554
38555    type DropIpMembershipResponseFut = fidl::client::QueryResponseFut<
38556        BaseNetworkSocketDropIpMembershipResult,
38557        fidl::encoding::DefaultFuchsiaResourceDialect,
38558    >;
38559    fn r#drop_ip_membership(
38560        &self,
38561        mut membership: &IpMulticastMembership,
38562    ) -> Self::DropIpMembershipResponseFut {
38563        fn _decode(
38564            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38565        ) -> Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error> {
38566            let _response = fidl::client::decode_transaction_body::<
38567                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
38568                fidl::encoding::DefaultFuchsiaResourceDialect,
38569                0x2888f3099188d03,
38570            >(_buf?)?;
38571            Ok(_response.map(|x| x))
38572        }
38573        self.client.send_query_and_decode::<
38574            BaseNetworkSocketDropIpMembershipRequest,
38575            BaseNetworkSocketDropIpMembershipResult,
38576        >(
38577            (membership,),
38578            0x2888f3099188d03,
38579            fidl::encoding::DynamicFlags::empty(),
38580            _decode,
38581        )
38582    }
38583
38584    type SetIpTransparentResponseFut = fidl::client::QueryResponseFut<
38585        BaseNetworkSocketSetIpTransparentResult,
38586        fidl::encoding::DefaultFuchsiaResourceDialect,
38587    >;
38588    fn r#set_ip_transparent(&self, mut value: bool) -> Self::SetIpTransparentResponseFut {
38589        fn _decode(
38590            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38591        ) -> Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error> {
38592            let _response = fidl::client::decode_transaction_body::<
38593                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
38594                fidl::encoding::DefaultFuchsiaResourceDialect,
38595                0x1ae532b0c066e3a0,
38596            >(_buf?)?;
38597            Ok(_response.map(|x| x))
38598        }
38599        self.client.send_query_and_decode::<
38600            BaseNetworkSocketSetIpTransparentRequest,
38601            BaseNetworkSocketSetIpTransparentResult,
38602        >(
38603            (value,),
38604            0x1ae532b0c066e3a0,
38605            fidl::encoding::DynamicFlags::empty(),
38606            _decode,
38607        )
38608    }
38609
38610    type GetIpTransparentResponseFut = fidl::client::QueryResponseFut<
38611        BaseNetworkSocketGetIpTransparentResult,
38612        fidl::encoding::DefaultFuchsiaResourceDialect,
38613    >;
38614    fn r#get_ip_transparent(&self) -> Self::GetIpTransparentResponseFut {
38615        fn _decode(
38616            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38617        ) -> Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error> {
38618            let _response = fidl::client::decode_transaction_body::<
38619                fidl::encoding::ResultType<
38620                    BaseNetworkSocketGetIpTransparentResponse,
38621                    fidl_fuchsia_posix::Errno,
38622                >,
38623                fidl::encoding::DefaultFuchsiaResourceDialect,
38624                0x51d43695962ebfb5,
38625            >(_buf?)?;
38626            Ok(_response.map(|x| x.value))
38627        }
38628        self.client.send_query_and_decode::<
38629            fidl::encoding::EmptyPayload,
38630            BaseNetworkSocketGetIpTransparentResult,
38631        >(
38632            (),
38633            0x51d43695962ebfb5,
38634            fidl::encoding::DynamicFlags::empty(),
38635            _decode,
38636        )
38637    }
38638
38639    type SetIpReceiveOriginalDestinationAddressResponseFut = fidl::client::QueryResponseFut<
38640        BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
38641        fidl::encoding::DefaultFuchsiaResourceDialect,
38642    >;
38643    fn r#set_ip_receive_original_destination_address(
38644        &self,
38645        mut value: bool,
38646    ) -> Self::SetIpReceiveOriginalDestinationAddressResponseFut {
38647        fn _decode(
38648            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38649        ) -> Result<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult, fidl::Error>
38650        {
38651            let _response = fidl::client::decode_transaction_body::<
38652                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
38653                fidl::encoding::DefaultFuchsiaResourceDialect,
38654                0x4722b4ce52f7840,
38655            >(_buf?)?;
38656            Ok(_response.map(|x| x))
38657        }
38658        self.client.send_query_and_decode::<
38659            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
38660            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
38661        >(
38662            (value,),
38663            0x4722b4ce52f7840,
38664            fidl::encoding::DynamicFlags::empty(),
38665            _decode,
38666        )
38667    }
38668
38669    type GetIpReceiveOriginalDestinationAddressResponseFut = fidl::client::QueryResponseFut<
38670        BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
38671        fidl::encoding::DefaultFuchsiaResourceDialect,
38672    >;
38673    fn r#get_ip_receive_original_destination_address(
38674        &self,
38675    ) -> Self::GetIpReceiveOriginalDestinationAddressResponseFut {
38676        fn _decode(
38677            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38678        ) -> Result<BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult, fidl::Error>
38679        {
38680            let _response = fidl::client::decode_transaction_body::<
38681                fidl::encoding::ResultType<
38682                    BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
38683                    fidl_fuchsia_posix::Errno,
38684                >,
38685                fidl::encoding::DefaultFuchsiaResourceDialect,
38686                0x2a0e7dc5d6bfdfe9,
38687            >(_buf?)?;
38688            Ok(_response.map(|x| x.value))
38689        }
38690        self.client.send_query_and_decode::<
38691            fidl::encoding::EmptyPayload,
38692            BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
38693        >(
38694            (),
38695            0x2a0e7dc5d6bfdfe9,
38696            fidl::encoding::DynamicFlags::empty(),
38697            _decode,
38698        )
38699    }
38700
38701    type AddIpv6MembershipResponseFut = fidl::client::QueryResponseFut<
38702        BaseNetworkSocketAddIpv6MembershipResult,
38703        fidl::encoding::DefaultFuchsiaResourceDialect,
38704    >;
38705    fn r#add_ipv6_membership(
38706        &self,
38707        mut membership: &Ipv6MulticastMembership,
38708    ) -> Self::AddIpv6MembershipResponseFut {
38709        fn _decode(
38710            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38711        ) -> Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error> {
38712            let _response = fidl::client::decode_transaction_body::<
38713                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
38714                fidl::encoding::DefaultFuchsiaResourceDialect,
38715                0x7c94727acb4ea4b3,
38716            >(_buf?)?;
38717            Ok(_response.map(|x| x))
38718        }
38719        self.client.send_query_and_decode::<
38720            BaseNetworkSocketAddIpv6MembershipRequest,
38721            BaseNetworkSocketAddIpv6MembershipResult,
38722        >(
38723            (membership,),
38724            0x7c94727acb4ea4b3,
38725            fidl::encoding::DynamicFlags::empty(),
38726            _decode,
38727        )
38728    }
38729
38730    type DropIpv6MembershipResponseFut = fidl::client::QueryResponseFut<
38731        BaseNetworkSocketDropIpv6MembershipResult,
38732        fidl::encoding::DefaultFuchsiaResourceDialect,
38733    >;
38734    fn r#drop_ipv6_membership(
38735        &self,
38736        mut membership: &Ipv6MulticastMembership,
38737    ) -> Self::DropIpv6MembershipResponseFut {
38738        fn _decode(
38739            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38740        ) -> Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error> {
38741            let _response = fidl::client::decode_transaction_body::<
38742                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
38743                fidl::encoding::DefaultFuchsiaResourceDialect,
38744                0x42104c70ccaba304,
38745            >(_buf?)?;
38746            Ok(_response.map(|x| x))
38747        }
38748        self.client.send_query_and_decode::<
38749            BaseNetworkSocketDropIpv6MembershipRequest,
38750            BaseNetworkSocketDropIpv6MembershipResult,
38751        >(
38752            (membership,),
38753            0x42104c70ccaba304,
38754            fidl::encoding::DynamicFlags::empty(),
38755            _decode,
38756        )
38757    }
38758
38759    type SetIpv6MulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
38760        BaseNetworkSocketSetIpv6MulticastInterfaceResult,
38761        fidl::encoding::DefaultFuchsiaResourceDialect,
38762    >;
38763    fn r#set_ipv6_multicast_interface(
38764        &self,
38765        mut value: u64,
38766    ) -> Self::SetIpv6MulticastInterfaceResponseFut {
38767        fn _decode(
38768            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38769        ) -> Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error> {
38770            let _response = fidl::client::decode_transaction_body::<
38771                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
38772                fidl::encoding::DefaultFuchsiaResourceDialect,
38773                0x135f76db3774ab3b,
38774            >(_buf?)?;
38775            Ok(_response.map(|x| x))
38776        }
38777        self.client.send_query_and_decode::<
38778            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
38779            BaseNetworkSocketSetIpv6MulticastInterfaceResult,
38780        >(
38781            (value,),
38782            0x135f76db3774ab3b,
38783            fidl::encoding::DynamicFlags::empty(),
38784            _decode,
38785        )
38786    }
38787
38788    type GetIpv6MulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
38789        BaseNetworkSocketGetIpv6MulticastInterfaceResult,
38790        fidl::encoding::DefaultFuchsiaResourceDialect,
38791    >;
38792    fn r#get_ipv6_multicast_interface(&self) -> Self::GetIpv6MulticastInterfaceResponseFut {
38793        fn _decode(
38794            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38795        ) -> Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error> {
38796            let _response = fidl::client::decode_transaction_body::<
38797                fidl::encoding::ResultType<
38798                    BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
38799                    fidl_fuchsia_posix::Errno,
38800                >,
38801                fidl::encoding::DefaultFuchsiaResourceDialect,
38802                0x1f26fcdd348f1882,
38803            >(_buf?)?;
38804            Ok(_response.map(|x| x.value))
38805        }
38806        self.client.send_query_and_decode::<
38807            fidl::encoding::EmptyPayload,
38808            BaseNetworkSocketGetIpv6MulticastInterfaceResult,
38809        >(
38810            (),
38811            0x1f26fcdd348f1882,
38812            fidl::encoding::DynamicFlags::empty(),
38813            _decode,
38814        )
38815    }
38816
38817    type SetIpv6UnicastHopsResponseFut = fidl::client::QueryResponseFut<
38818        BaseNetworkSocketSetIpv6UnicastHopsResult,
38819        fidl::encoding::DefaultFuchsiaResourceDialect,
38820    >;
38821    fn r#set_ipv6_unicast_hops(
38822        &self,
38823        mut value: &OptionalUint8,
38824    ) -> Self::SetIpv6UnicastHopsResponseFut {
38825        fn _decode(
38826            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38827        ) -> Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error> {
38828            let _response = fidl::client::decode_transaction_body::<
38829                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
38830                fidl::encoding::DefaultFuchsiaResourceDialect,
38831                0x157d51e98f462859,
38832            >(_buf?)?;
38833            Ok(_response.map(|x| x))
38834        }
38835        self.client.send_query_and_decode::<
38836            BaseNetworkSocketSetIpv6UnicastHopsRequest,
38837            BaseNetworkSocketSetIpv6UnicastHopsResult,
38838        >(
38839            (value,),
38840            0x157d51e98f462859,
38841            fidl::encoding::DynamicFlags::empty(),
38842            _decode,
38843        )
38844    }
38845
38846    type GetIpv6UnicastHopsResponseFut = fidl::client::QueryResponseFut<
38847        BaseNetworkSocketGetIpv6UnicastHopsResult,
38848        fidl::encoding::DefaultFuchsiaResourceDialect,
38849    >;
38850    fn r#get_ipv6_unicast_hops(&self) -> Self::GetIpv6UnicastHopsResponseFut {
38851        fn _decode(
38852            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38853        ) -> Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error> {
38854            let _response = fidl::client::decode_transaction_body::<
38855                fidl::encoding::ResultType<
38856                    BaseNetworkSocketGetIpv6UnicastHopsResponse,
38857                    fidl_fuchsia_posix::Errno,
38858                >,
38859                fidl::encoding::DefaultFuchsiaResourceDialect,
38860                0x21f4641cad8bd8d2,
38861            >(_buf?)?;
38862            Ok(_response.map(|x| x.value))
38863        }
38864        self.client.send_query_and_decode::<
38865            fidl::encoding::EmptyPayload,
38866            BaseNetworkSocketGetIpv6UnicastHopsResult,
38867        >(
38868            (),
38869            0x21f4641cad8bd8d2,
38870            fidl::encoding::DynamicFlags::empty(),
38871            _decode,
38872        )
38873    }
38874
38875    type SetIpv6ReceiveHopLimitResponseFut = fidl::client::QueryResponseFut<
38876        BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
38877        fidl::encoding::DefaultFuchsiaResourceDialect,
38878    >;
38879    fn r#set_ipv6_receive_hop_limit(
38880        &self,
38881        mut value: bool,
38882    ) -> Self::SetIpv6ReceiveHopLimitResponseFut {
38883        fn _decode(
38884            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38885        ) -> Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error> {
38886            let _response = fidl::client::decode_transaction_body::<
38887                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
38888                fidl::encoding::DefaultFuchsiaResourceDialect,
38889                0x5c24808ed2e84a1e,
38890            >(_buf?)?;
38891            Ok(_response.map(|x| x))
38892        }
38893        self.client.send_query_and_decode::<
38894            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
38895            BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
38896        >(
38897            (value,),
38898            0x5c24808ed2e84a1e,
38899            fidl::encoding::DynamicFlags::empty(),
38900            _decode,
38901        )
38902    }
38903
38904    type GetIpv6ReceiveHopLimitResponseFut = fidl::client::QueryResponseFut<
38905        BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
38906        fidl::encoding::DefaultFuchsiaResourceDialect,
38907    >;
38908    fn r#get_ipv6_receive_hop_limit(&self) -> Self::GetIpv6ReceiveHopLimitResponseFut {
38909        fn _decode(
38910            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38911        ) -> Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error> {
38912            let _response = fidl::client::decode_transaction_body::<
38913                fidl::encoding::ResultType<
38914                    BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
38915                    fidl_fuchsia_posix::Errno,
38916                >,
38917                fidl::encoding::DefaultFuchsiaResourceDialect,
38918                0x341e06689885b4c0,
38919            >(_buf?)?;
38920            Ok(_response.map(|x| x.value))
38921        }
38922        self.client.send_query_and_decode::<
38923            fidl::encoding::EmptyPayload,
38924            BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
38925        >(
38926            (),
38927            0x341e06689885b4c0,
38928            fidl::encoding::DynamicFlags::empty(),
38929            _decode,
38930        )
38931    }
38932
38933    type SetIpv6MulticastHopsResponseFut = fidl::client::QueryResponseFut<
38934        BaseNetworkSocketSetIpv6MulticastHopsResult,
38935        fidl::encoding::DefaultFuchsiaResourceDialect,
38936    >;
38937    fn r#set_ipv6_multicast_hops(
38938        &self,
38939        mut value: &OptionalUint8,
38940    ) -> Self::SetIpv6MulticastHopsResponseFut {
38941        fn _decode(
38942            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38943        ) -> Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error> {
38944            let _response = fidl::client::decode_transaction_body::<
38945                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
38946                fidl::encoding::DefaultFuchsiaResourceDialect,
38947                0x25b9cd4d181f82c1,
38948            >(_buf?)?;
38949            Ok(_response.map(|x| x))
38950        }
38951        self.client.send_query_and_decode::<
38952            BaseNetworkSocketSetIpv6MulticastHopsRequest,
38953            BaseNetworkSocketSetIpv6MulticastHopsResult,
38954        >(
38955            (value,),
38956            0x25b9cd4d181f82c1,
38957            fidl::encoding::DynamicFlags::empty(),
38958            _decode,
38959        )
38960    }
38961
38962    type GetIpv6MulticastHopsResponseFut = fidl::client::QueryResponseFut<
38963        BaseNetworkSocketGetIpv6MulticastHopsResult,
38964        fidl::encoding::DefaultFuchsiaResourceDialect,
38965    >;
38966    fn r#get_ipv6_multicast_hops(&self) -> Self::GetIpv6MulticastHopsResponseFut {
38967        fn _decode(
38968            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38969        ) -> Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error> {
38970            let _response = fidl::client::decode_transaction_body::<
38971                fidl::encoding::ResultType<
38972                    BaseNetworkSocketGetIpv6MulticastHopsResponse,
38973                    fidl_fuchsia_posix::Errno,
38974                >,
38975                fidl::encoding::DefaultFuchsiaResourceDialect,
38976                0x52916948a365012a,
38977            >(_buf?)?;
38978            Ok(_response.map(|x| x.value))
38979        }
38980        self.client.send_query_and_decode::<
38981            fidl::encoding::EmptyPayload,
38982            BaseNetworkSocketGetIpv6MulticastHopsResult,
38983        >(
38984            (),
38985            0x52916948a365012a,
38986            fidl::encoding::DynamicFlags::empty(),
38987            _decode,
38988        )
38989    }
38990
38991    type SetIpv6MulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
38992        BaseNetworkSocketSetIpv6MulticastLoopbackResult,
38993        fidl::encoding::DefaultFuchsiaResourceDialect,
38994    >;
38995    fn r#set_ipv6_multicast_loopback(
38996        &self,
38997        mut value: bool,
38998    ) -> Self::SetIpv6MulticastLoopbackResponseFut {
38999        fn _decode(
39000            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
39001        ) -> Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error> {
39002            let _response = fidl::client::decode_transaction_body::<
39003                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
39004                fidl::encoding::DefaultFuchsiaResourceDialect,
39005                0x55701c409ff41b40,
39006            >(_buf?)?;
39007            Ok(_response.map(|x| x))
39008        }
39009        self.client.send_query_and_decode::<
39010            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
39011            BaseNetworkSocketSetIpv6MulticastLoopbackResult,
39012        >(
39013            (value,),
39014            0x55701c409ff41b40,
39015            fidl::encoding::DynamicFlags::empty(),
39016            _decode,
39017        )
39018    }
39019
39020    type GetIpv6MulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
39021        BaseNetworkSocketGetIpv6MulticastLoopbackResult,
39022        fidl::encoding::DefaultFuchsiaResourceDialect,
39023    >;
39024    fn r#get_ipv6_multicast_loopback(&self) -> Self::GetIpv6MulticastLoopbackResponseFut {
39025        fn _decode(
39026            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
39027        ) -> Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error> {
39028            let _response = fidl::client::decode_transaction_body::<
39029                fidl::encoding::ResultType<
39030                    BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
39031                    fidl_fuchsia_posix::Errno,
39032                >,
39033                fidl::encoding::DefaultFuchsiaResourceDialect,
39034                0x4415b701fde319c3,
39035            >(_buf?)?;
39036            Ok(_response.map(|x| x.value))
39037        }
39038        self.client.send_query_and_decode::<
39039            fidl::encoding::EmptyPayload,
39040            BaseNetworkSocketGetIpv6MulticastLoopbackResult,
39041        >(
39042            (),
39043            0x4415b701fde319c3,
39044            fidl::encoding::DynamicFlags::empty(),
39045            _decode,
39046        )
39047    }
39048
39049    type SetIpv6OnlyResponseFut = fidl::client::QueryResponseFut<
39050        BaseNetworkSocketSetIpv6OnlyResult,
39051        fidl::encoding::DefaultFuchsiaResourceDialect,
39052    >;
39053    fn r#set_ipv6_only(&self, mut value: bool) -> Self::SetIpv6OnlyResponseFut {
39054        fn _decode(
39055            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
39056        ) -> Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error> {
39057            let _response = fidl::client::decode_transaction_body::<
39058                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
39059                fidl::encoding::DefaultFuchsiaResourceDialect,
39060                0x4873f1364758cbba,
39061            >(_buf?)?;
39062            Ok(_response.map(|x| x))
39063        }
39064        self.client.send_query_and_decode::<
39065            BaseNetworkSocketSetIpv6OnlyRequest,
39066            BaseNetworkSocketSetIpv6OnlyResult,
39067        >(
39068            (value,),
39069            0x4873f1364758cbba,
39070            fidl::encoding::DynamicFlags::empty(),
39071            _decode,
39072        )
39073    }
39074
39075    type GetIpv6OnlyResponseFut = fidl::client::QueryResponseFut<
39076        BaseNetworkSocketGetIpv6OnlyResult,
39077        fidl::encoding::DefaultFuchsiaResourceDialect,
39078    >;
39079    fn r#get_ipv6_only(&self) -> Self::GetIpv6OnlyResponseFut {
39080        fn _decode(
39081            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
39082        ) -> Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error> {
39083            let _response = fidl::client::decode_transaction_body::<
39084                fidl::encoding::ResultType<
39085                    BaseNetworkSocketGetIpv6OnlyResponse,
39086                    fidl_fuchsia_posix::Errno,
39087                >,
39088                fidl::encoding::DefaultFuchsiaResourceDialect,
39089                0x4aa3340a1a26b89c,
39090            >(_buf?)?;
39091            Ok(_response.map(|x| x.value))
39092        }
39093        self.client.send_query_and_decode::<
39094            fidl::encoding::EmptyPayload,
39095            BaseNetworkSocketGetIpv6OnlyResult,
39096        >(
39097            (),
39098            0x4aa3340a1a26b89c,
39099            fidl::encoding::DynamicFlags::empty(),
39100            _decode,
39101        )
39102    }
39103
39104    type SetIpv6ReceiveTrafficClassResponseFut = fidl::client::QueryResponseFut<
39105        BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
39106        fidl::encoding::DefaultFuchsiaResourceDialect,
39107    >;
39108    fn r#set_ipv6_receive_traffic_class(
39109        &self,
39110        mut value: bool,
39111    ) -> Self::SetIpv6ReceiveTrafficClassResponseFut {
39112        fn _decode(
39113            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
39114        ) -> Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error> {
39115            let _response = fidl::client::decode_transaction_body::<
39116                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
39117                fidl::encoding::DefaultFuchsiaResourceDialect,
39118                0x58f07c8788d099a0,
39119            >(_buf?)?;
39120            Ok(_response.map(|x| x))
39121        }
39122        self.client.send_query_and_decode::<
39123            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
39124            BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
39125        >(
39126            (value,),
39127            0x58f07c8788d099a0,
39128            fidl::encoding::DynamicFlags::empty(),
39129            _decode,
39130        )
39131    }
39132
39133    type GetIpv6ReceiveTrafficClassResponseFut = fidl::client::QueryResponseFut<
39134        BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
39135        fidl::encoding::DefaultFuchsiaResourceDialect,
39136    >;
39137    fn r#get_ipv6_receive_traffic_class(&self) -> Self::GetIpv6ReceiveTrafficClassResponseFut {
39138        fn _decode(
39139            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
39140        ) -> Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error> {
39141            let _response = fidl::client::decode_transaction_body::<
39142                fidl::encoding::ResultType<
39143                    BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
39144                    fidl_fuchsia_posix::Errno,
39145                >,
39146                fidl::encoding::DefaultFuchsiaResourceDialect,
39147                0x2e334df1da553ffa,
39148            >(_buf?)?;
39149            Ok(_response.map(|x| x.value))
39150        }
39151        self.client.send_query_and_decode::<
39152            fidl::encoding::EmptyPayload,
39153            BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
39154        >(
39155            (),
39156            0x2e334df1da553ffa,
39157            fidl::encoding::DynamicFlags::empty(),
39158            _decode,
39159        )
39160    }
39161
39162    type SetIpv6TrafficClassResponseFut = fidl::client::QueryResponseFut<
39163        BaseNetworkSocketSetIpv6TrafficClassResult,
39164        fidl::encoding::DefaultFuchsiaResourceDialect,
39165    >;
39166    fn r#set_ipv6_traffic_class(
39167        &self,
39168        mut value: &OptionalUint8,
39169    ) -> Self::SetIpv6TrafficClassResponseFut {
39170        fn _decode(
39171            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
39172        ) -> Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error> {
39173            let _response = fidl::client::decode_transaction_body::<
39174                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
39175                fidl::encoding::DefaultFuchsiaResourceDialect,
39176                0x6af077800c5a0b4f,
39177            >(_buf?)?;
39178            Ok(_response.map(|x| x))
39179        }
39180        self.client.send_query_and_decode::<
39181            BaseNetworkSocketSetIpv6TrafficClassRequest,
39182            BaseNetworkSocketSetIpv6TrafficClassResult,
39183        >(
39184            (value,),
39185            0x6af077800c5a0b4f,
39186            fidl::encoding::DynamicFlags::empty(),
39187            _decode,
39188        )
39189    }
39190
39191    type GetIpv6TrafficClassResponseFut = fidl::client::QueryResponseFut<
39192        BaseNetworkSocketGetIpv6TrafficClassResult,
39193        fidl::encoding::DefaultFuchsiaResourceDialect,
39194    >;
39195    fn r#get_ipv6_traffic_class(&self) -> Self::GetIpv6TrafficClassResponseFut {
39196        fn _decode(
39197            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
39198        ) -> Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error> {
39199            let _response = fidl::client::decode_transaction_body::<
39200                fidl::encoding::ResultType<
39201                    BaseNetworkSocketGetIpv6TrafficClassResponse,
39202                    fidl_fuchsia_posix::Errno,
39203                >,
39204                fidl::encoding::DefaultFuchsiaResourceDialect,
39205                0x6baf6eed8fc2f04,
39206            >(_buf?)?;
39207            Ok(_response.map(|x| x.value))
39208        }
39209        self.client.send_query_and_decode::<
39210            fidl::encoding::EmptyPayload,
39211            BaseNetworkSocketGetIpv6TrafficClassResult,
39212        >(
39213            (),
39214            0x6baf6eed8fc2f04,
39215            fidl::encoding::DynamicFlags::empty(),
39216            _decode,
39217        )
39218    }
39219
39220    type SetIpv6ReceivePacketInfoResponseFut = fidl::client::QueryResponseFut<
39221        BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
39222        fidl::encoding::DefaultFuchsiaResourceDialect,
39223    >;
39224    fn r#set_ipv6_receive_packet_info(
39225        &self,
39226        mut value: bool,
39227    ) -> Self::SetIpv6ReceivePacketInfoResponseFut {
39228        fn _decode(
39229            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
39230        ) -> Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error> {
39231            let _response = fidl::client::decode_transaction_body::<
39232                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
39233                fidl::encoding::DefaultFuchsiaResourceDialect,
39234                0x19259775b1a92768,
39235            >(_buf?)?;
39236            Ok(_response.map(|x| x))
39237        }
39238        self.client.send_query_and_decode::<
39239            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
39240            BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
39241        >(
39242            (value,),
39243            0x19259775b1a92768,
39244            fidl::encoding::DynamicFlags::empty(),
39245            _decode,
39246        )
39247    }
39248
39249    type GetIpv6ReceivePacketInfoResponseFut = fidl::client::QueryResponseFut<
39250        BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
39251        fidl::encoding::DefaultFuchsiaResourceDialect,
39252    >;
39253    fn r#get_ipv6_receive_packet_info(&self) -> Self::GetIpv6ReceivePacketInfoResponseFut {
39254        fn _decode(
39255            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
39256        ) -> Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error> {
39257            let _response = fidl::client::decode_transaction_body::<
39258                fidl::encoding::ResultType<
39259                    BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
39260                    fidl_fuchsia_posix::Errno,
39261                >,
39262                fidl::encoding::DefaultFuchsiaResourceDialect,
39263                0x7acd4a2775baec75,
39264            >(_buf?)?;
39265            Ok(_response.map(|x| x.value))
39266        }
39267        self.client.send_query_and_decode::<
39268            fidl::encoding::EmptyPayload,
39269            BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
39270        >(
39271            (),
39272            0x7acd4a2775baec75,
39273            fidl::encoding::DynamicFlags::empty(),
39274            _decode,
39275        )
39276    }
39277
39278    type GetOriginalDestinationResponseFut = fidl::client::QueryResponseFut<
39279        BaseNetworkSocketGetOriginalDestinationResult,
39280        fidl::encoding::DefaultFuchsiaResourceDialect,
39281    >;
39282    fn r#get_original_destination(&self) -> Self::GetOriginalDestinationResponseFut {
39283        fn _decode(
39284            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
39285        ) -> Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error> {
39286            let _response = fidl::client::decode_transaction_body::<
39287                fidl::encoding::ResultType<
39288                    BaseNetworkSocketGetOriginalDestinationResponse,
39289                    fidl_fuchsia_posix::Errno,
39290                >,
39291                fidl::encoding::DefaultFuchsiaResourceDialect,
39292                0x38bf28f0dafdbac0,
39293            >(_buf?)?;
39294            Ok(_response.map(|x| x.value))
39295        }
39296        self.client.send_query_and_decode::<
39297            fidl::encoding::EmptyPayload,
39298            BaseNetworkSocketGetOriginalDestinationResult,
39299        >(
39300            (),
39301            0x38bf28f0dafdbac0,
39302            fidl::encoding::DynamicFlags::empty(),
39303            _decode,
39304        )
39305    }
39306
39307    type GetInfoResponseFut = fidl::client::QueryResponseFut<
39308        BaseDatagramSocketGetInfoResult,
39309        fidl::encoding::DefaultFuchsiaResourceDialect,
39310    >;
39311    fn r#get_info(&self) -> Self::GetInfoResponseFut {
39312        fn _decode(
39313            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
39314        ) -> Result<BaseDatagramSocketGetInfoResult, fidl::Error> {
39315            let _response = fidl::client::decode_transaction_body::<
39316                fidl::encoding::ResultType<
39317                    BaseDatagramSocketGetInfoResponse,
39318                    fidl_fuchsia_posix::Errno,
39319                >,
39320                fidl::encoding::DefaultFuchsiaResourceDialect,
39321                0x48aa0a1f6a32d2ed,
39322            >(_buf?)?;
39323            Ok(_response.map(|x| (x.domain, x.proto)))
39324        }
39325        self.client
39326            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseDatagramSocketGetInfoResult>(
39327                (),
39328                0x48aa0a1f6a32d2ed,
39329                fidl::encoding::DynamicFlags::empty(),
39330                _decode,
39331            )
39332    }
39333
39334    type DescribeResponseFut = fidl::client::QueryResponseFut<
39335        DatagramSocketDescribeResponse,
39336        fidl::encoding::DefaultFuchsiaResourceDialect,
39337    >;
39338    fn r#describe(&self) -> Self::DescribeResponseFut {
39339        fn _decode(
39340            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
39341        ) -> Result<DatagramSocketDescribeResponse, fidl::Error> {
39342            let _response = fidl::client::decode_transaction_body::<
39343                DatagramSocketDescribeResponse,
39344                fidl::encoding::DefaultFuchsiaResourceDialect,
39345                0xbf1e2f0a86601f3,
39346            >(_buf?)?;
39347            Ok(_response)
39348        }
39349        self.client
39350            .send_query_and_decode::<fidl::encoding::EmptyPayload, DatagramSocketDescribeResponse>(
39351                (),
39352                0xbf1e2f0a86601f3,
39353                fidl::encoding::DynamicFlags::empty(),
39354                _decode,
39355            )
39356    }
39357
39358    type SendMsgPreflightResponseFut = fidl::client::QueryResponseFut<
39359        DatagramSocketSendMsgPreflightResult,
39360        fidl::encoding::DefaultFuchsiaResourceDialect,
39361    >;
39362    fn r#send_msg_preflight(
39363        &self,
39364        mut payload: &DatagramSocketSendMsgPreflightRequest,
39365    ) -> Self::SendMsgPreflightResponseFut {
39366        fn _decode(
39367            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
39368        ) -> Result<DatagramSocketSendMsgPreflightResult, fidl::Error> {
39369            let _response = fidl::client::decode_transaction_body::<
39370                fidl::encoding::ResultType<
39371                    DatagramSocketSendMsgPreflightResponse,
39372                    fidl_fuchsia_posix::Errno,
39373                >,
39374                fidl::encoding::DefaultFuchsiaResourceDialect,
39375                0x5362e668e777248a,
39376            >(_buf?)?;
39377            Ok(_response.map(|x| x))
39378        }
39379        self.client.send_query_and_decode::<
39380            DatagramSocketSendMsgPreflightRequest,
39381            DatagramSocketSendMsgPreflightResult,
39382        >(
39383            payload,
39384            0x5362e668e777248a,
39385            fidl::encoding::DynamicFlags::empty(),
39386            _decode,
39387        )
39388    }
39389
39390    type RecvMsgPostflightResponseFut = fidl::client::QueryResponseFut<
39391        DatagramSocketRecvMsgPostflightResult,
39392        fidl::encoding::DefaultFuchsiaResourceDialect,
39393    >;
39394    fn r#recv_msg_postflight(&self) -> Self::RecvMsgPostflightResponseFut {
39395        fn _decode(
39396            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
39397        ) -> Result<DatagramSocketRecvMsgPostflightResult, fidl::Error> {
39398            let _response = fidl::client::decode_transaction_body::<
39399                fidl::encoding::ResultType<
39400                    DatagramSocketRecvMsgPostflightResponse,
39401                    fidl_fuchsia_posix::Errno,
39402                >,
39403                fidl::encoding::DefaultFuchsiaResourceDialect,
39404                0x1a7cdeca5f3eb8e2,
39405            >(_buf?)?;
39406            Ok(_response.map(|x| x))
39407        }
39408        self.client.send_query_and_decode::<
39409            fidl::encoding::EmptyPayload,
39410            DatagramSocketRecvMsgPostflightResult,
39411        >(
39412            (),
39413            0x1a7cdeca5f3eb8e2,
39414            fidl::encoding::DynamicFlags::empty(),
39415            _decode,
39416        )
39417    }
39418}
39419
39420pub struct DatagramSocketEventStream {
39421    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
39422}
39423
39424impl std::marker::Unpin for DatagramSocketEventStream {}
39425
39426impl futures::stream::FusedStream for DatagramSocketEventStream {
39427    fn is_terminated(&self) -> bool {
39428        self.event_receiver.is_terminated()
39429    }
39430}
39431
39432impl futures::Stream for DatagramSocketEventStream {
39433    type Item = Result<DatagramSocketEvent, fidl::Error>;
39434
39435    fn poll_next(
39436        mut self: std::pin::Pin<&mut Self>,
39437        cx: &mut std::task::Context<'_>,
39438    ) -> std::task::Poll<Option<Self::Item>> {
39439        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
39440            &mut self.event_receiver,
39441            cx
39442        )?) {
39443            Some(buf) => std::task::Poll::Ready(Some(DatagramSocketEvent::decode(buf))),
39444            None => std::task::Poll::Ready(None),
39445        }
39446    }
39447}
39448
39449#[derive(Debug)]
39450pub enum DatagramSocketEvent {}
39451
39452impl DatagramSocketEvent {
39453    /// Decodes a message buffer as a [`DatagramSocketEvent`].
39454    fn decode(
39455        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
39456    ) -> Result<DatagramSocketEvent, fidl::Error> {
39457        let (bytes, _handles) = buf.split_mut();
39458        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
39459        debug_assert_eq!(tx_header.tx_id, 0);
39460        match tx_header.ordinal {
39461            _ => Err(fidl::Error::UnknownOrdinal {
39462                ordinal: tx_header.ordinal,
39463                protocol_name:
39464                    <DatagramSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
39465            }),
39466        }
39467    }
39468}
39469
39470/// A Stream of incoming requests for fuchsia.posix.socket/DatagramSocket.
39471pub struct DatagramSocketRequestStream {
39472    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
39473    is_terminated: bool,
39474}
39475
39476impl std::marker::Unpin for DatagramSocketRequestStream {}
39477
39478impl futures::stream::FusedStream for DatagramSocketRequestStream {
39479    fn is_terminated(&self) -> bool {
39480        self.is_terminated
39481    }
39482}
39483
39484impl fidl::endpoints::RequestStream for DatagramSocketRequestStream {
39485    type Protocol = DatagramSocketMarker;
39486    type ControlHandle = DatagramSocketControlHandle;
39487
39488    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
39489        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
39490    }
39491
39492    fn control_handle(&self) -> Self::ControlHandle {
39493        DatagramSocketControlHandle { inner: self.inner.clone() }
39494    }
39495
39496    fn into_inner(
39497        self,
39498    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
39499    {
39500        (self.inner, self.is_terminated)
39501    }
39502
39503    fn from_inner(
39504        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
39505        is_terminated: bool,
39506    ) -> Self {
39507        Self { inner, is_terminated }
39508    }
39509}
39510
39511impl futures::Stream for DatagramSocketRequestStream {
39512    type Item = Result<DatagramSocketRequest, fidl::Error>;
39513
39514    fn poll_next(
39515        mut self: std::pin::Pin<&mut Self>,
39516        cx: &mut std::task::Context<'_>,
39517    ) -> std::task::Poll<Option<Self::Item>> {
39518        let this = &mut *self;
39519        if this.inner.check_shutdown(cx) {
39520            this.is_terminated = true;
39521            return std::task::Poll::Ready(None);
39522        }
39523        if this.is_terminated {
39524            panic!("polled DatagramSocketRequestStream after completion");
39525        }
39526        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
39527            |bytes, handles| {
39528                match this.inner.channel().read_etc(cx, bytes, handles) {
39529                    std::task::Poll::Ready(Ok(())) => {}
39530                    std::task::Poll::Pending => return std::task::Poll::Pending,
39531                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
39532                        this.is_terminated = true;
39533                        return std::task::Poll::Ready(None);
39534                    }
39535                    std::task::Poll::Ready(Err(e)) => {
39536                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
39537                            e.into(),
39538                        ))));
39539                    }
39540                }
39541
39542                // A message has been received from the channel
39543                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
39544
39545                std::task::Poll::Ready(Some(match header.ordinal {
39546                    0x20d8a7aba2168a79 => {
39547                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
39548                        let mut req = fidl::new_empty!(
39549                            fidl_fuchsia_unknown::CloneableCloneRequest,
39550                            fidl::encoding::DefaultFuchsiaResourceDialect
39551                        );
39552                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl_fuchsia_unknown::CloneableCloneRequest>(&header, _body_bytes, handles, &mut req)?;
39553                        let control_handle =
39554                            DatagramSocketControlHandle { inner: this.inner.clone() };
39555                        Ok(DatagramSocketRequest::Clone { request: req.request, control_handle })
39556                    }
39557                    0x5ac5d459ad7f657e => {
39558                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39559                        let mut req = fidl::new_empty!(
39560                            fidl::encoding::EmptyPayload,
39561                            fidl::encoding::DefaultFuchsiaResourceDialect
39562                        );
39563                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39564                        let control_handle =
39565                            DatagramSocketControlHandle { inner: this.inner.clone() };
39566                        Ok(DatagramSocketRequest::Close {
39567                            responder: DatagramSocketCloseResponder {
39568                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39569                                tx_id: header.tx_id,
39570                            },
39571                        })
39572                    }
39573                    0x2658edee9decfc06 => {
39574                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39575                        let mut req = fidl::new_empty!(
39576                            fidl::encoding::EmptyPayload,
39577                            fidl::encoding::DefaultFuchsiaResourceDialect
39578                        );
39579                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39580                        let control_handle =
39581                            DatagramSocketControlHandle { inner: this.inner.clone() };
39582                        Ok(DatagramSocketRequest::Query {
39583                            responder: DatagramSocketQueryResponder {
39584                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39585                                tx_id: header.tx_id,
39586                            },
39587                        })
39588                    }
39589                    0x1fd74ee8b9a4a876 => {
39590                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39591                        let mut req = fidl::new_empty!(
39592                            BaseSocketSetReuseAddressRequest,
39593                            fidl::encoding::DefaultFuchsiaResourceDialect
39594                        );
39595                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReuseAddressRequest>(&header, _body_bytes, handles, &mut req)?;
39596                        let control_handle =
39597                            DatagramSocketControlHandle { inner: this.inner.clone() };
39598                        Ok(DatagramSocketRequest::SetReuseAddress {
39599                            value: req.value,
39600
39601                            responder: DatagramSocketSetReuseAddressResponder {
39602                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39603                                tx_id: header.tx_id,
39604                            },
39605                        })
39606                    }
39607                    0x67b7206b8d1bc0a5 => {
39608                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39609                        let mut req = fidl::new_empty!(
39610                            fidl::encoding::EmptyPayload,
39611                            fidl::encoding::DefaultFuchsiaResourceDialect
39612                        );
39613                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39614                        let control_handle =
39615                            DatagramSocketControlHandle { inner: this.inner.clone() };
39616                        Ok(DatagramSocketRequest::GetReuseAddress {
39617                            responder: DatagramSocketGetReuseAddressResponder {
39618                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39619                                tx_id: header.tx_id,
39620                            },
39621                        })
39622                    }
39623                    0x5aad39b33e5f6ebb => {
39624                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39625                        let mut req = fidl::new_empty!(
39626                            fidl::encoding::EmptyPayload,
39627                            fidl::encoding::DefaultFuchsiaResourceDialect
39628                        );
39629                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39630                        let control_handle =
39631                            DatagramSocketControlHandle { inner: this.inner.clone() };
39632                        Ok(DatagramSocketRequest::GetError {
39633                            responder: DatagramSocketGetErrorResponder {
39634                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39635                                tx_id: header.tx_id,
39636                            },
39637                        })
39638                    }
39639                    0x6023e081ce3cd947 => {
39640                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39641                        let mut req = fidl::new_empty!(
39642                            BaseSocketSetBroadcastRequest,
39643                            fidl::encoding::DefaultFuchsiaResourceDialect
39644                        );
39645                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBroadcastRequest>(&header, _body_bytes, handles, &mut req)?;
39646                        let control_handle =
39647                            DatagramSocketControlHandle { inner: this.inner.clone() };
39648                        Ok(DatagramSocketRequest::SetBroadcast {
39649                            value: req.value,
39650
39651                            responder: DatagramSocketSetBroadcastResponder {
39652                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39653                                tx_id: header.tx_id,
39654                            },
39655                        })
39656                    }
39657                    0x68796fc556f9780d => {
39658                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39659                        let mut req = fidl::new_empty!(
39660                            fidl::encoding::EmptyPayload,
39661                            fidl::encoding::DefaultFuchsiaResourceDialect
39662                        );
39663                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39664                        let control_handle =
39665                            DatagramSocketControlHandle { inner: this.inner.clone() };
39666                        Ok(DatagramSocketRequest::GetBroadcast {
39667                            responder: DatagramSocketGetBroadcastResponder {
39668                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39669                                tx_id: header.tx_id,
39670                            },
39671                        })
39672                    }
39673                    0x756eac32d73a7a70 => {
39674                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39675                        let mut req = fidl::new_empty!(
39676                            BaseSocketSetSendBufferRequest,
39677                            fidl::encoding::DefaultFuchsiaResourceDialect
39678                        );
39679                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetSendBufferRequest>(&header, _body_bytes, handles, &mut req)?;
39680                        let control_handle =
39681                            DatagramSocketControlHandle { inner: this.inner.clone() };
39682                        Ok(DatagramSocketRequest::SetSendBuffer {
39683                            value_bytes: req.value_bytes,
39684
39685                            responder: DatagramSocketSetSendBufferResponder {
39686                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39687                                tx_id: header.tx_id,
39688                            },
39689                        })
39690                    }
39691                    0x78a52fd9c7b2410b => {
39692                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39693                        let mut req = fidl::new_empty!(
39694                            fidl::encoding::EmptyPayload,
39695                            fidl::encoding::DefaultFuchsiaResourceDialect
39696                        );
39697                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39698                        let control_handle =
39699                            DatagramSocketControlHandle { inner: this.inner.clone() };
39700                        Ok(DatagramSocketRequest::GetSendBuffer {
39701                            responder: DatagramSocketGetSendBufferResponder {
39702                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39703                                tx_id: header.tx_id,
39704                            },
39705                        })
39706                    }
39707                    0x6b0cf2f1919c7001 => {
39708                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39709                        let mut req = fidl::new_empty!(
39710                            BaseSocketSetReceiveBufferRequest,
39711                            fidl::encoding::DefaultFuchsiaResourceDialect
39712                        );
39713                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReceiveBufferRequest>(&header, _body_bytes, handles, &mut req)?;
39714                        let control_handle =
39715                            DatagramSocketControlHandle { inner: this.inner.clone() };
39716                        Ok(DatagramSocketRequest::SetReceiveBuffer {
39717                            value_bytes: req.value_bytes,
39718
39719                            responder: DatagramSocketSetReceiveBufferResponder {
39720                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39721                                tx_id: header.tx_id,
39722                            },
39723                        })
39724                    }
39725                    0x14c1a4b64f709e5c => {
39726                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39727                        let mut req = fidl::new_empty!(
39728                            fidl::encoding::EmptyPayload,
39729                            fidl::encoding::DefaultFuchsiaResourceDialect
39730                        );
39731                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39732                        let control_handle =
39733                            DatagramSocketControlHandle { inner: this.inner.clone() };
39734                        Ok(DatagramSocketRequest::GetReceiveBuffer {
39735                            responder: DatagramSocketGetReceiveBufferResponder {
39736                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39737                                tx_id: header.tx_id,
39738                            },
39739                        })
39740                    }
39741                    0x572df8f0b920d2c7 => {
39742                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39743                        let mut req = fidl::new_empty!(
39744                            BaseSocketSetKeepAliveRequest,
39745                            fidl::encoding::DefaultFuchsiaResourceDialect
39746                        );
39747                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetKeepAliveRequest>(&header, _body_bytes, handles, &mut req)?;
39748                        let control_handle =
39749                            DatagramSocketControlHandle { inner: this.inner.clone() };
39750                        Ok(DatagramSocketRequest::SetKeepAlive {
39751                            value: req.value,
39752
39753                            responder: DatagramSocketSetKeepAliveResponder {
39754                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39755                                tx_id: header.tx_id,
39756                            },
39757                        })
39758                    }
39759                    0x2dd29d3215f2c9d2 => {
39760                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39761                        let mut req = fidl::new_empty!(
39762                            fidl::encoding::EmptyPayload,
39763                            fidl::encoding::DefaultFuchsiaResourceDialect
39764                        );
39765                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39766                        let control_handle =
39767                            DatagramSocketControlHandle { inner: this.inner.clone() };
39768                        Ok(DatagramSocketRequest::GetKeepAlive {
39769                            responder: DatagramSocketGetKeepAliveResponder {
39770                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39771                                tx_id: header.tx_id,
39772                            },
39773                        })
39774                    }
39775                    0x3ecb49968bee439 => {
39776                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39777                        let mut req = fidl::new_empty!(
39778                            BaseSocketSetOutOfBandInlineRequest,
39779                            fidl::encoding::DefaultFuchsiaResourceDialect
39780                        );
39781                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetOutOfBandInlineRequest>(&header, _body_bytes, handles, &mut req)?;
39782                        let control_handle =
39783                            DatagramSocketControlHandle { inner: this.inner.clone() };
39784                        Ok(DatagramSocketRequest::SetOutOfBandInline {
39785                            value: req.value,
39786
39787                            responder: DatagramSocketSetOutOfBandInlineResponder {
39788                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39789                                tx_id: header.tx_id,
39790                            },
39791                        })
39792                    }
39793                    0x348c1ab3aeca1745 => {
39794                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39795                        let mut req = fidl::new_empty!(
39796                            fidl::encoding::EmptyPayload,
39797                            fidl::encoding::DefaultFuchsiaResourceDialect
39798                        );
39799                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39800                        let control_handle =
39801                            DatagramSocketControlHandle { inner: this.inner.clone() };
39802                        Ok(DatagramSocketRequest::GetOutOfBandInline {
39803                            responder: DatagramSocketGetOutOfBandInlineResponder {
39804                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39805                                tx_id: header.tx_id,
39806                            },
39807                        })
39808                    }
39809                    0x6bbf00c53a4c78c2 => {
39810                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39811                        let mut req = fidl::new_empty!(
39812                            BaseSocketSetNoCheckRequest,
39813                            fidl::encoding::DefaultFuchsiaResourceDialect
39814                        );
39815                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetNoCheckRequest>(&header, _body_bytes, handles, &mut req)?;
39816                        let control_handle =
39817                            DatagramSocketControlHandle { inner: this.inner.clone() };
39818                        Ok(DatagramSocketRequest::SetNoCheck {
39819                            value: req.value,
39820
39821                            responder: DatagramSocketSetNoCheckResponder {
39822                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39823                                tx_id: header.tx_id,
39824                            },
39825                        })
39826                    }
39827                    0x2cd4249286417694 => {
39828                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39829                        let mut req = fidl::new_empty!(
39830                            fidl::encoding::EmptyPayload,
39831                            fidl::encoding::DefaultFuchsiaResourceDialect
39832                        );
39833                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39834                        let control_handle =
39835                            DatagramSocketControlHandle { inner: this.inner.clone() };
39836                        Ok(DatagramSocketRequest::GetNoCheck {
39837                            responder: DatagramSocketGetNoCheckResponder {
39838                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39839                                tx_id: header.tx_id,
39840                            },
39841                        })
39842                    }
39843                    0x45386351246e998e => {
39844                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39845                        let mut req = fidl::new_empty!(
39846                            BaseSocketSetLingerRequest,
39847                            fidl::encoding::DefaultFuchsiaResourceDialect
39848                        );
39849                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetLingerRequest>(&header, _body_bytes, handles, &mut req)?;
39850                        let control_handle =
39851                            DatagramSocketControlHandle { inner: this.inner.clone() };
39852                        Ok(DatagramSocketRequest::SetLinger {
39853                            linger: req.linger,
39854                            length_secs: req.length_secs,
39855
39856                            responder: DatagramSocketSetLingerResponder {
39857                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39858                                tx_id: header.tx_id,
39859                            },
39860                        })
39861                    }
39862                    0x48eb20fc5ccb0e45 => {
39863                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39864                        let mut req = fidl::new_empty!(
39865                            fidl::encoding::EmptyPayload,
39866                            fidl::encoding::DefaultFuchsiaResourceDialect
39867                        );
39868                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39869                        let control_handle =
39870                            DatagramSocketControlHandle { inner: this.inner.clone() };
39871                        Ok(DatagramSocketRequest::GetLinger {
39872                            responder: DatagramSocketGetLingerResponder {
39873                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39874                                tx_id: header.tx_id,
39875                            },
39876                        })
39877                    }
39878                    0x547dc9cc0455189e => {
39879                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39880                        let mut req = fidl::new_empty!(
39881                            BaseSocketSetReusePortRequest,
39882                            fidl::encoding::DefaultFuchsiaResourceDialect
39883                        );
39884                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReusePortRequest>(&header, _body_bytes, handles, &mut req)?;
39885                        let control_handle =
39886                            DatagramSocketControlHandle { inner: this.inner.clone() };
39887                        Ok(DatagramSocketRequest::SetReusePort {
39888                            value: req.value,
39889
39890                            responder: DatagramSocketSetReusePortResponder {
39891                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39892                                tx_id: header.tx_id,
39893                            },
39894                        })
39895                    }
39896                    0x24dd3e5cb36d9ccb => {
39897                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39898                        let mut req = fidl::new_empty!(
39899                            BaseSocketSetReusePortDeprecatedRequest,
39900                            fidl::encoding::DefaultFuchsiaResourceDialect
39901                        );
39902                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReusePortDeprecatedRequest>(&header, _body_bytes, handles, &mut req)?;
39903                        let control_handle =
39904                            DatagramSocketControlHandle { inner: this.inner.clone() };
39905                        Ok(DatagramSocketRequest::SetReusePortDeprecated {
39906                            value: req.value,
39907
39908                            responder: DatagramSocketSetReusePortDeprecatedResponder {
39909                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39910                                tx_id: header.tx_id,
39911                            },
39912                        })
39913                    }
39914                    0x7a112c1ab54ff828 => {
39915                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39916                        let mut req = fidl::new_empty!(
39917                            fidl::encoding::EmptyPayload,
39918                            fidl::encoding::DefaultFuchsiaResourceDialect
39919                        );
39920                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39921                        let control_handle =
39922                            DatagramSocketControlHandle { inner: this.inner.clone() };
39923                        Ok(DatagramSocketRequest::GetReusePort {
39924                            responder: DatagramSocketGetReusePortResponder {
39925                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39926                                tx_id: header.tx_id,
39927                            },
39928                        })
39929                    }
39930                    0x67ce6db6c2ec8966 => {
39931                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39932                        let mut req = fidl::new_empty!(
39933                            fidl::encoding::EmptyPayload,
39934                            fidl::encoding::DefaultFuchsiaResourceDialect
39935                        );
39936                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39937                        let control_handle =
39938                            DatagramSocketControlHandle { inner: this.inner.clone() };
39939                        Ok(DatagramSocketRequest::GetAcceptConn {
39940                            responder: DatagramSocketGetAcceptConnResponder {
39941                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39942                                tx_id: header.tx_id,
39943                            },
39944                        })
39945                    }
39946                    0x2118b483f28aafc4 => {
39947                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39948                        let mut req = fidl::new_empty!(
39949                            BaseSocketSetBindToDeviceRequest,
39950                            fidl::encoding::DefaultFuchsiaResourceDialect
39951                        );
39952                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToDeviceRequest>(&header, _body_bytes, handles, &mut req)?;
39953                        let control_handle =
39954                            DatagramSocketControlHandle { inner: this.inner.clone() };
39955                        Ok(DatagramSocketRequest::SetBindToDevice {
39956                            value: req.value,
39957
39958                            responder: DatagramSocketSetBindToDeviceResponder {
39959                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39960                                tx_id: header.tx_id,
39961                            },
39962                        })
39963                    }
39964                    0x1ab1fbf0ef7906c8 => {
39965                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39966                        let mut req = fidl::new_empty!(
39967                            fidl::encoding::EmptyPayload,
39968                            fidl::encoding::DefaultFuchsiaResourceDialect
39969                        );
39970                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39971                        let control_handle =
39972                            DatagramSocketControlHandle { inner: this.inner.clone() };
39973                        Ok(DatagramSocketRequest::GetBindToDevice {
39974                            responder: DatagramSocketGetBindToDeviceResponder {
39975                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39976                                tx_id: header.tx_id,
39977                            },
39978                        })
39979                    }
39980                    0x6e387a0def00821 => {
39981                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39982                        let mut req = fidl::new_empty!(
39983                            BaseSocketSetBindToInterfaceIndexRequest,
39984                            fidl::encoding::DefaultFuchsiaResourceDialect
39985                        );
39986                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToInterfaceIndexRequest>(&header, _body_bytes, handles, &mut req)?;
39987                        let control_handle =
39988                            DatagramSocketControlHandle { inner: this.inner.clone() };
39989                        Ok(DatagramSocketRequest::SetBindToInterfaceIndex {
39990                            value: req.value,
39991
39992                            responder: DatagramSocketSetBindToInterfaceIndexResponder {
39993                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39994                                tx_id: header.tx_id,
39995                            },
39996                        })
39997                    }
39998                    0x59c31dd3e3078295 => {
39999                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40000                        let mut req = fidl::new_empty!(
40001                            fidl::encoding::EmptyPayload,
40002                            fidl::encoding::DefaultFuchsiaResourceDialect
40003                        );
40004                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
40005                        let control_handle =
40006                            DatagramSocketControlHandle { inner: this.inner.clone() };
40007                        Ok(DatagramSocketRequest::GetBindToInterfaceIndex {
40008                            responder: DatagramSocketGetBindToInterfaceIndexResponder {
40009                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40010                                tx_id: header.tx_id,
40011                            },
40012                        })
40013                    }
40014                    0x285d6516c263d839 => {
40015                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40016                        let mut req = fidl::new_empty!(
40017                            BaseSocketSetTimestampRequest,
40018                            fidl::encoding::DefaultFuchsiaResourceDialect
40019                        );
40020                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetTimestampRequest>(&header, _body_bytes, handles, &mut req)?;
40021                        let control_handle =
40022                            DatagramSocketControlHandle { inner: this.inner.clone() };
40023                        Ok(DatagramSocketRequest::SetTimestamp {
40024                            value: req.value,
40025
40026                            responder: DatagramSocketSetTimestampResponder {
40027                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40028                                tx_id: header.tx_id,
40029                            },
40030                        })
40031                    }
40032                    0x49f2fffbbcc2bd27 => {
40033                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40034                        let mut req = fidl::new_empty!(
40035                            fidl::encoding::EmptyPayload,
40036                            fidl::encoding::DefaultFuchsiaResourceDialect
40037                        );
40038                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
40039                        let control_handle =
40040                            DatagramSocketControlHandle { inner: this.inner.clone() };
40041                        Ok(DatagramSocketRequest::GetTimestamp {
40042                            responder: DatagramSocketGetTimestampResponder {
40043                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40044                                tx_id: header.tx_id,
40045                            },
40046                        })
40047                    }
40048                    0x6ead6de09f653236 => {
40049                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40050                        let mut req = fidl::new_empty!(
40051                            BaseSocketSetMarkRequest,
40052                            fidl::encoding::DefaultFuchsiaResourceDialect
40053                        );
40054                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
40055                        let control_handle =
40056                            DatagramSocketControlHandle { inner: this.inner.clone() };
40057                        Ok(DatagramSocketRequest::SetMark {
40058                            domain: req.domain,
40059                            mark: req.mark,
40060
40061                            responder: DatagramSocketSetMarkResponder {
40062                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40063                                tx_id: header.tx_id,
40064                            },
40065                        })
40066                    }
40067                    0x57a2752c61d93d47 => {
40068                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40069                        let mut req = fidl::new_empty!(
40070                            BaseSocketGetMarkRequest,
40071                            fidl::encoding::DefaultFuchsiaResourceDialect
40072                        );
40073                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketGetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
40074                        let control_handle =
40075                            DatagramSocketControlHandle { inner: this.inner.clone() };
40076                        Ok(DatagramSocketRequest::GetMark {
40077                            domain: req.domain,
40078
40079                            responder: DatagramSocketGetMarkResponder {
40080                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40081                                tx_id: header.tx_id,
40082                            },
40083                        })
40084                    }
40085                    0x2c2f47fd8f924e52 => {
40086                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40087                        let mut req = fidl::new_empty!(
40088                            fidl::encoding::EmptyPayload,
40089                            fidl::encoding::DefaultFuchsiaResourceDialect
40090                        );
40091                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
40092                        let control_handle =
40093                            DatagramSocketControlHandle { inner: this.inner.clone() };
40094                        Ok(DatagramSocketRequest::GetCookie {
40095                            responder: DatagramSocketGetCookieResponder {
40096                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40097                                tx_id: header.tx_id,
40098                            },
40099                        })
40100                    }
40101                    0x4bc6400ae92125d => {
40102                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40103                        let mut req = fidl::new_empty!(
40104                            BaseNetworkSocketBindRequest,
40105                            fidl::encoding::DefaultFuchsiaResourceDialect
40106                        );
40107                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketBindRequest>(&header, _body_bytes, handles, &mut req)?;
40108                        let control_handle =
40109                            DatagramSocketControlHandle { inner: this.inner.clone() };
40110                        Ok(DatagramSocketRequest::Bind {
40111                            addr: req.addr,
40112
40113                            responder: DatagramSocketBindResponder {
40114                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40115                                tx_id: header.tx_id,
40116                            },
40117                        })
40118                    }
40119                    0x5f05f19bfdd38871 => {
40120                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40121                        let mut req = fidl::new_empty!(
40122                            BaseNetworkSocketConnectRequest,
40123                            fidl::encoding::DefaultFuchsiaResourceDialect
40124                        );
40125                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketConnectRequest>(&header, _body_bytes, handles, &mut req)?;
40126                        let control_handle =
40127                            DatagramSocketControlHandle { inner: this.inner.clone() };
40128                        Ok(DatagramSocketRequest::Connect {
40129                            addr: req.addr,
40130
40131                            responder: DatagramSocketConnectResponder {
40132                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40133                                tx_id: header.tx_id,
40134                            },
40135                        })
40136                    }
40137                    0x74e63b91f7b29b2 => {
40138                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40139                        let mut req = fidl::new_empty!(
40140                            fidl::encoding::EmptyPayload,
40141                            fidl::encoding::DefaultFuchsiaResourceDialect
40142                        );
40143                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
40144                        let control_handle =
40145                            DatagramSocketControlHandle { inner: this.inner.clone() };
40146                        Ok(DatagramSocketRequest::Disconnect {
40147                            responder: DatagramSocketDisconnectResponder {
40148                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40149                                tx_id: header.tx_id,
40150                            },
40151                        })
40152                    }
40153                    0x475f23f84a1a4f85 => {
40154                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40155                        let mut req = fidl::new_empty!(
40156                            fidl::encoding::EmptyPayload,
40157                            fidl::encoding::DefaultFuchsiaResourceDialect
40158                        );
40159                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
40160                        let control_handle =
40161                            DatagramSocketControlHandle { inner: this.inner.clone() };
40162                        Ok(DatagramSocketRequest::GetSockName {
40163                            responder: DatagramSocketGetSockNameResponder {
40164                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40165                                tx_id: header.tx_id,
40166                            },
40167                        })
40168                    }
40169                    0x1ffecf4bd5b6432e => {
40170                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40171                        let mut req = fidl::new_empty!(
40172                            fidl::encoding::EmptyPayload,
40173                            fidl::encoding::DefaultFuchsiaResourceDialect
40174                        );
40175                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
40176                        let control_handle =
40177                            DatagramSocketControlHandle { inner: this.inner.clone() };
40178                        Ok(DatagramSocketRequest::GetPeerName {
40179                            responder: DatagramSocketGetPeerNameResponder {
40180                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40181                                tx_id: header.tx_id,
40182                            },
40183                        })
40184                    }
40185                    0x247f38b6db68c336 => {
40186                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40187                        let mut req = fidl::new_empty!(
40188                            BaseNetworkSocketShutdownRequest,
40189                            fidl::encoding::DefaultFuchsiaResourceDialect
40190                        );
40191                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketShutdownRequest>(&header, _body_bytes, handles, &mut req)?;
40192                        let control_handle =
40193                            DatagramSocketControlHandle { inner: this.inner.clone() };
40194                        Ok(DatagramSocketRequest::Shutdown {
40195                            mode: req.mode,
40196
40197                            responder: DatagramSocketShutdownResponder {
40198                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40199                                tx_id: header.tx_id,
40200                            },
40201                        })
40202                    }
40203                    0x995c600475b6d46 => {
40204                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40205                        let mut req = fidl::new_empty!(
40206                            BaseNetworkSocketSetIpTypeOfServiceRequest,
40207                            fidl::encoding::DefaultFuchsiaResourceDialect
40208                        );
40209                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTypeOfServiceRequest>(&header, _body_bytes, handles, &mut req)?;
40210                        let control_handle =
40211                            DatagramSocketControlHandle { inner: this.inner.clone() };
40212                        Ok(DatagramSocketRequest::SetIpTypeOfService {
40213                            value: req.value,
40214
40215                            responder: DatagramSocketSetIpTypeOfServiceResponder {
40216                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40217                                tx_id: header.tx_id,
40218                            },
40219                        })
40220                    }
40221                    0x3814a04259f75fcb => {
40222                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40223                        let mut req = fidl::new_empty!(
40224                            fidl::encoding::EmptyPayload,
40225                            fidl::encoding::DefaultFuchsiaResourceDialect
40226                        );
40227                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
40228                        let control_handle =
40229                            DatagramSocketControlHandle { inner: this.inner.clone() };
40230                        Ok(DatagramSocketRequest::GetIpTypeOfService {
40231                            responder: DatagramSocketGetIpTypeOfServiceResponder {
40232                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40233                                tx_id: header.tx_id,
40234                            },
40235                        })
40236                    }
40237                    0x29e2424b433ae1ef => {
40238                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40239                        let mut req = fidl::new_empty!(
40240                            BaseNetworkSocketSetIpTtlRequest,
40241                            fidl::encoding::DefaultFuchsiaResourceDialect
40242                        );
40243                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTtlRequest>(&header, _body_bytes, handles, &mut req)?;
40244                        let control_handle =
40245                            DatagramSocketControlHandle { inner: this.inner.clone() };
40246                        Ok(DatagramSocketRequest::SetIpTtl {
40247                            value: req.value,
40248
40249                            responder: DatagramSocketSetIpTtlResponder {
40250                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40251                                tx_id: header.tx_id,
40252                            },
40253                        })
40254                    }
40255                    0x47e47fa1f24da471 => {
40256                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40257                        let mut req = fidl::new_empty!(
40258                            fidl::encoding::EmptyPayload,
40259                            fidl::encoding::DefaultFuchsiaResourceDialect
40260                        );
40261                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
40262                        let control_handle =
40263                            DatagramSocketControlHandle { inner: this.inner.clone() };
40264                        Ok(DatagramSocketRequest::GetIpTtl {
40265                            responder: DatagramSocketGetIpTtlResponder {
40266                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40267                                tx_id: header.tx_id,
40268                            },
40269                        })
40270                    }
40271                    0x392d16bee20c0e16 => {
40272                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40273                        let mut req = fidl::new_empty!(
40274                            BaseNetworkSocketSetIpPacketInfoRequest,
40275                            fidl::encoding::DefaultFuchsiaResourceDialect
40276                        );
40277                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpPacketInfoRequest>(&header, _body_bytes, handles, &mut req)?;
40278                        let control_handle =
40279                            DatagramSocketControlHandle { inner: this.inner.clone() };
40280                        Ok(DatagramSocketRequest::SetIpPacketInfo {
40281                            value: req.value,
40282
40283                            responder: DatagramSocketSetIpPacketInfoResponder {
40284                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40285                                tx_id: header.tx_id,
40286                            },
40287                        })
40288                    }
40289                    0x54b505f242280740 => {
40290                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40291                        let mut req = fidl::new_empty!(
40292                            fidl::encoding::EmptyPayload,
40293                            fidl::encoding::DefaultFuchsiaResourceDialect
40294                        );
40295                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
40296                        let control_handle =
40297                            DatagramSocketControlHandle { inner: this.inner.clone() };
40298                        Ok(DatagramSocketRequest::GetIpPacketInfo {
40299                            responder: DatagramSocketGetIpPacketInfoResponder {
40300                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40301                                tx_id: header.tx_id,
40302                            },
40303                        })
40304                    }
40305                    0x6c4f6714995f84ef => {
40306                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40307                        let mut req = fidl::new_empty!(
40308                            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
40309                            fidl::encoding::DefaultFuchsiaResourceDialect
40310                        );
40311                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveTypeOfServiceRequest>(&header, _body_bytes, handles, &mut req)?;
40312                        let control_handle =
40313                            DatagramSocketControlHandle { inner: this.inner.clone() };
40314                        Ok(DatagramSocketRequest::SetIpReceiveTypeOfService {
40315                            value: req.value,
40316
40317                            responder: DatagramSocketSetIpReceiveTypeOfServiceResponder {
40318                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40319                                tx_id: header.tx_id,
40320                            },
40321                        })
40322                    }
40323                    0x4158ba7dc2795960 => {
40324                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40325                        let mut req = fidl::new_empty!(
40326                            fidl::encoding::EmptyPayload,
40327                            fidl::encoding::DefaultFuchsiaResourceDialect
40328                        );
40329                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
40330                        let control_handle =
40331                            DatagramSocketControlHandle { inner: this.inner.clone() };
40332                        Ok(DatagramSocketRequest::GetIpReceiveTypeOfService {
40333                            responder: DatagramSocketGetIpReceiveTypeOfServiceResponder {
40334                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40335                                tx_id: header.tx_id,
40336                            },
40337                        })
40338                    }
40339                    0x46f15be0ce0ab82b => {
40340                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40341                        let mut req = fidl::new_empty!(
40342                            BaseNetworkSocketSetIpReceiveTtlRequest,
40343                            fidl::encoding::DefaultFuchsiaResourceDialect
40344                        );
40345                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveTtlRequest>(&header, _body_bytes, handles, &mut req)?;
40346                        let control_handle =
40347                            DatagramSocketControlHandle { inner: this.inner.clone() };
40348                        Ok(DatagramSocketRequest::SetIpReceiveTtl {
40349                            value: req.value,
40350
40351                            responder: DatagramSocketSetIpReceiveTtlResponder {
40352                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40353                                tx_id: header.tx_id,
40354                            },
40355                        })
40356                    }
40357                    0x678ddd5a5dfa2eb5 => {
40358                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40359                        let mut req = fidl::new_empty!(
40360                            fidl::encoding::EmptyPayload,
40361                            fidl::encoding::DefaultFuchsiaResourceDialect
40362                        );
40363                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
40364                        let control_handle =
40365                            DatagramSocketControlHandle { inner: this.inner.clone() };
40366                        Ok(DatagramSocketRequest::GetIpReceiveTtl {
40367                            responder: DatagramSocketGetIpReceiveTtlResponder {
40368                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40369                                tx_id: header.tx_id,
40370                            },
40371                        })
40372                    }
40373                    0x752fbfa9b12befe => {
40374                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40375                        let mut req = fidl::new_empty!(
40376                            BaseNetworkSocketSetIpMulticastInterfaceRequest,
40377                            fidl::encoding::DefaultFuchsiaResourceDialect
40378                        );
40379                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastInterfaceRequest>(&header, _body_bytes, handles, &mut req)?;
40380                        let control_handle =
40381                            DatagramSocketControlHandle { inner: this.inner.clone() };
40382                        Ok(DatagramSocketRequest::SetIpMulticastInterface {
40383                            iface: req.iface,
40384                            address: req.address,
40385
40386                            responder: DatagramSocketSetIpMulticastInterfaceResponder {
40387                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40388                                tx_id: header.tx_id,
40389                            },
40390                        })
40391                    }
40392                    0x320bd14c4df046c4 => {
40393                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40394                        let mut req = fidl::new_empty!(
40395                            fidl::encoding::EmptyPayload,
40396                            fidl::encoding::DefaultFuchsiaResourceDialect
40397                        );
40398                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
40399                        let control_handle =
40400                            DatagramSocketControlHandle { inner: this.inner.clone() };
40401                        Ok(DatagramSocketRequest::GetIpMulticastInterface {
40402                            responder: DatagramSocketGetIpMulticastInterfaceResponder {
40403                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40404                                tx_id: header.tx_id,
40405                            },
40406                        })
40407                    }
40408                    0x63134d53772916a1 => {
40409                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40410                        let mut req = fidl::new_empty!(
40411                            BaseNetworkSocketSetIpMulticastTtlRequest,
40412                            fidl::encoding::DefaultFuchsiaResourceDialect
40413                        );
40414                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastTtlRequest>(&header, _body_bytes, handles, &mut req)?;
40415                        let control_handle =
40416                            DatagramSocketControlHandle { inner: this.inner.clone() };
40417                        Ok(DatagramSocketRequest::SetIpMulticastTtl {
40418                            value: req.value,
40419
40420                            responder: DatagramSocketSetIpMulticastTtlResponder {
40421                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40422                                tx_id: header.tx_id,
40423                            },
40424                        })
40425                    }
40426                    0x4665cd378f39e1a => {
40427                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40428                        let mut req = fidl::new_empty!(
40429                            fidl::encoding::EmptyPayload,
40430                            fidl::encoding::DefaultFuchsiaResourceDialect
40431                        );
40432                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
40433                        let control_handle =
40434                            DatagramSocketControlHandle { inner: this.inner.clone() };
40435                        Ok(DatagramSocketRequest::GetIpMulticastTtl {
40436                            responder: DatagramSocketGetIpMulticastTtlResponder {
40437                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40438                                tx_id: header.tx_id,
40439                            },
40440                        })
40441                    }
40442                    0x20c55c11f00943ea => {
40443                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40444                        let mut req = fidl::new_empty!(
40445                            BaseNetworkSocketSetIpMulticastLoopbackRequest,
40446                            fidl::encoding::DefaultFuchsiaResourceDialect
40447                        );
40448                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastLoopbackRequest>(&header, _body_bytes, handles, &mut req)?;
40449                        let control_handle =
40450                            DatagramSocketControlHandle { inner: this.inner.clone() };
40451                        Ok(DatagramSocketRequest::SetIpMulticastLoopback {
40452                            value: req.value,
40453
40454                            responder: DatagramSocketSetIpMulticastLoopbackResponder {
40455                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40456                                tx_id: header.tx_id,
40457                            },
40458                        })
40459                    }
40460                    0x3b6b26ff558298f2 => {
40461                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40462                        let mut req = fidl::new_empty!(
40463                            fidl::encoding::EmptyPayload,
40464                            fidl::encoding::DefaultFuchsiaResourceDialect
40465                        );
40466                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
40467                        let control_handle =
40468                            DatagramSocketControlHandle { inner: this.inner.clone() };
40469                        Ok(DatagramSocketRequest::GetIpMulticastLoopback {
40470                            responder: DatagramSocketGetIpMulticastLoopbackResponder {
40471                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40472                                tx_id: header.tx_id,
40473                            },
40474                        })
40475                    }
40476                    0x76bc7df115a3b4d0 => {
40477                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40478                        let mut req = fidl::new_empty!(
40479                            BaseNetworkSocketAddIpMembershipRequest,
40480                            fidl::encoding::DefaultFuchsiaResourceDialect
40481                        );
40482                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketAddIpMembershipRequest>(&header, _body_bytes, handles, &mut req)?;
40483                        let control_handle =
40484                            DatagramSocketControlHandle { inner: this.inner.clone() };
40485                        Ok(DatagramSocketRequest::AddIpMembership {
40486                            membership: req.membership,
40487
40488                            responder: DatagramSocketAddIpMembershipResponder {
40489                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40490                                tx_id: header.tx_id,
40491                            },
40492                        })
40493                    }
40494                    0x2888f3099188d03 => {
40495                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40496                        let mut req = fidl::new_empty!(
40497                            BaseNetworkSocketDropIpMembershipRequest,
40498                            fidl::encoding::DefaultFuchsiaResourceDialect
40499                        );
40500                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketDropIpMembershipRequest>(&header, _body_bytes, handles, &mut req)?;
40501                        let control_handle =
40502                            DatagramSocketControlHandle { inner: this.inner.clone() };
40503                        Ok(DatagramSocketRequest::DropIpMembership {
40504                            membership: req.membership,
40505
40506                            responder: DatagramSocketDropIpMembershipResponder {
40507                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40508                                tx_id: header.tx_id,
40509                            },
40510                        })
40511                    }
40512                    0x1ae532b0c066e3a0 => {
40513                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40514                        let mut req = fidl::new_empty!(
40515                            BaseNetworkSocketSetIpTransparentRequest,
40516                            fidl::encoding::DefaultFuchsiaResourceDialect
40517                        );
40518                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTransparentRequest>(&header, _body_bytes, handles, &mut req)?;
40519                        let control_handle =
40520                            DatagramSocketControlHandle { inner: this.inner.clone() };
40521                        Ok(DatagramSocketRequest::SetIpTransparent {
40522                            value: req.value,
40523
40524                            responder: DatagramSocketSetIpTransparentResponder {
40525                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40526                                tx_id: header.tx_id,
40527                            },
40528                        })
40529                    }
40530                    0x51d43695962ebfb5 => {
40531                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40532                        let mut req = fidl::new_empty!(
40533                            fidl::encoding::EmptyPayload,
40534                            fidl::encoding::DefaultFuchsiaResourceDialect
40535                        );
40536                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
40537                        let control_handle =
40538                            DatagramSocketControlHandle { inner: this.inner.clone() };
40539                        Ok(DatagramSocketRequest::GetIpTransparent {
40540                            responder: DatagramSocketGetIpTransparentResponder {
40541                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40542                                tx_id: header.tx_id,
40543                            },
40544                        })
40545                    }
40546                    0x4722b4ce52f7840 => {
40547                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40548                        let mut req = fidl::new_empty!(
40549                            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
40550                            fidl::encoding::DefaultFuchsiaResourceDialect
40551                        );
40552                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest>(&header, _body_bytes, handles, &mut req)?;
40553                        let control_handle =
40554                            DatagramSocketControlHandle { inner: this.inner.clone() };
40555                        Ok(DatagramSocketRequest::SetIpReceiveOriginalDestinationAddress {
40556                            value: req.value,
40557
40558                            responder:
40559                                DatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
40560                                    control_handle: std::mem::ManuallyDrop::new(control_handle),
40561                                    tx_id: header.tx_id,
40562                                },
40563                        })
40564                    }
40565                    0x2a0e7dc5d6bfdfe9 => {
40566                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40567                        let mut req = fidl::new_empty!(
40568                            fidl::encoding::EmptyPayload,
40569                            fidl::encoding::DefaultFuchsiaResourceDialect
40570                        );
40571                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
40572                        let control_handle =
40573                            DatagramSocketControlHandle { inner: this.inner.clone() };
40574                        Ok(DatagramSocketRequest::GetIpReceiveOriginalDestinationAddress {
40575                            responder:
40576                                DatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
40577                                    control_handle: std::mem::ManuallyDrop::new(control_handle),
40578                                    tx_id: header.tx_id,
40579                                },
40580                        })
40581                    }
40582                    0x7c94727acb4ea4b3 => {
40583                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40584                        let mut req = fidl::new_empty!(
40585                            BaseNetworkSocketAddIpv6MembershipRequest,
40586                            fidl::encoding::DefaultFuchsiaResourceDialect
40587                        );
40588                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketAddIpv6MembershipRequest>(&header, _body_bytes, handles, &mut req)?;
40589                        let control_handle =
40590                            DatagramSocketControlHandle { inner: this.inner.clone() };
40591                        Ok(DatagramSocketRequest::AddIpv6Membership {
40592                            membership: req.membership,
40593
40594                            responder: DatagramSocketAddIpv6MembershipResponder {
40595                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40596                                tx_id: header.tx_id,
40597                            },
40598                        })
40599                    }
40600                    0x42104c70ccaba304 => {
40601                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40602                        let mut req = fidl::new_empty!(
40603                            BaseNetworkSocketDropIpv6MembershipRequest,
40604                            fidl::encoding::DefaultFuchsiaResourceDialect
40605                        );
40606                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketDropIpv6MembershipRequest>(&header, _body_bytes, handles, &mut req)?;
40607                        let control_handle =
40608                            DatagramSocketControlHandle { inner: this.inner.clone() };
40609                        Ok(DatagramSocketRequest::DropIpv6Membership {
40610                            membership: req.membership,
40611
40612                            responder: DatagramSocketDropIpv6MembershipResponder {
40613                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40614                                tx_id: header.tx_id,
40615                            },
40616                        })
40617                    }
40618                    0x135f76db3774ab3b => {
40619                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40620                        let mut req = fidl::new_empty!(
40621                            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
40622                            fidl::encoding::DefaultFuchsiaResourceDialect
40623                        );
40624                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastInterfaceRequest>(&header, _body_bytes, handles, &mut req)?;
40625                        let control_handle =
40626                            DatagramSocketControlHandle { inner: this.inner.clone() };
40627                        Ok(DatagramSocketRequest::SetIpv6MulticastInterface {
40628                            value: req.value,
40629
40630                            responder: DatagramSocketSetIpv6MulticastInterfaceResponder {
40631                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40632                                tx_id: header.tx_id,
40633                            },
40634                        })
40635                    }
40636                    0x1f26fcdd348f1882 => {
40637                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40638                        let mut req = fidl::new_empty!(
40639                            fidl::encoding::EmptyPayload,
40640                            fidl::encoding::DefaultFuchsiaResourceDialect
40641                        );
40642                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
40643                        let control_handle =
40644                            DatagramSocketControlHandle { inner: this.inner.clone() };
40645                        Ok(DatagramSocketRequest::GetIpv6MulticastInterface {
40646                            responder: DatagramSocketGetIpv6MulticastInterfaceResponder {
40647                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40648                                tx_id: header.tx_id,
40649                            },
40650                        })
40651                    }
40652                    0x157d51e98f462859 => {
40653                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40654                        let mut req = fidl::new_empty!(
40655                            BaseNetworkSocketSetIpv6UnicastHopsRequest,
40656                            fidl::encoding::DefaultFuchsiaResourceDialect
40657                        );
40658                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6UnicastHopsRequest>(&header, _body_bytes, handles, &mut req)?;
40659                        let control_handle =
40660                            DatagramSocketControlHandle { inner: this.inner.clone() };
40661                        Ok(DatagramSocketRequest::SetIpv6UnicastHops {
40662                            value: req.value,
40663
40664                            responder: DatagramSocketSetIpv6UnicastHopsResponder {
40665                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40666                                tx_id: header.tx_id,
40667                            },
40668                        })
40669                    }
40670                    0x21f4641cad8bd8d2 => {
40671                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40672                        let mut req = fidl::new_empty!(
40673                            fidl::encoding::EmptyPayload,
40674                            fidl::encoding::DefaultFuchsiaResourceDialect
40675                        );
40676                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
40677                        let control_handle =
40678                            DatagramSocketControlHandle { inner: this.inner.clone() };
40679                        Ok(DatagramSocketRequest::GetIpv6UnicastHops {
40680                            responder: DatagramSocketGetIpv6UnicastHopsResponder {
40681                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40682                                tx_id: header.tx_id,
40683                            },
40684                        })
40685                    }
40686                    0x5c24808ed2e84a1e => {
40687                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40688                        let mut req = fidl::new_empty!(
40689                            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
40690                            fidl::encoding::DefaultFuchsiaResourceDialect
40691                        );
40692                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceiveHopLimitRequest>(&header, _body_bytes, handles, &mut req)?;
40693                        let control_handle =
40694                            DatagramSocketControlHandle { inner: this.inner.clone() };
40695                        Ok(DatagramSocketRequest::SetIpv6ReceiveHopLimit {
40696                            value: req.value,
40697
40698                            responder: DatagramSocketSetIpv6ReceiveHopLimitResponder {
40699                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40700                                tx_id: header.tx_id,
40701                            },
40702                        })
40703                    }
40704                    0x341e06689885b4c0 => {
40705                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40706                        let mut req = fidl::new_empty!(
40707                            fidl::encoding::EmptyPayload,
40708                            fidl::encoding::DefaultFuchsiaResourceDialect
40709                        );
40710                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
40711                        let control_handle =
40712                            DatagramSocketControlHandle { inner: this.inner.clone() };
40713                        Ok(DatagramSocketRequest::GetIpv6ReceiveHopLimit {
40714                            responder: DatagramSocketGetIpv6ReceiveHopLimitResponder {
40715                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40716                                tx_id: header.tx_id,
40717                            },
40718                        })
40719                    }
40720                    0x25b9cd4d181f82c1 => {
40721                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40722                        let mut req = fidl::new_empty!(
40723                            BaseNetworkSocketSetIpv6MulticastHopsRequest,
40724                            fidl::encoding::DefaultFuchsiaResourceDialect
40725                        );
40726                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastHopsRequest>(&header, _body_bytes, handles, &mut req)?;
40727                        let control_handle =
40728                            DatagramSocketControlHandle { inner: this.inner.clone() };
40729                        Ok(DatagramSocketRequest::SetIpv6MulticastHops {
40730                            value: req.value,
40731
40732                            responder: DatagramSocketSetIpv6MulticastHopsResponder {
40733                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40734                                tx_id: header.tx_id,
40735                            },
40736                        })
40737                    }
40738                    0x52916948a365012a => {
40739                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40740                        let mut req = fidl::new_empty!(
40741                            fidl::encoding::EmptyPayload,
40742                            fidl::encoding::DefaultFuchsiaResourceDialect
40743                        );
40744                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
40745                        let control_handle =
40746                            DatagramSocketControlHandle { inner: this.inner.clone() };
40747                        Ok(DatagramSocketRequest::GetIpv6MulticastHops {
40748                            responder: DatagramSocketGetIpv6MulticastHopsResponder {
40749                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40750                                tx_id: header.tx_id,
40751                            },
40752                        })
40753                    }
40754                    0x55701c409ff41b40 => {
40755                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40756                        let mut req = fidl::new_empty!(
40757                            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
40758                            fidl::encoding::DefaultFuchsiaResourceDialect
40759                        );
40760                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastLoopbackRequest>(&header, _body_bytes, handles, &mut req)?;
40761                        let control_handle =
40762                            DatagramSocketControlHandle { inner: this.inner.clone() };
40763                        Ok(DatagramSocketRequest::SetIpv6MulticastLoopback {
40764                            value: req.value,
40765
40766                            responder: DatagramSocketSetIpv6MulticastLoopbackResponder {
40767                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40768                                tx_id: header.tx_id,
40769                            },
40770                        })
40771                    }
40772                    0x4415b701fde319c3 => {
40773                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40774                        let mut req = fidl::new_empty!(
40775                            fidl::encoding::EmptyPayload,
40776                            fidl::encoding::DefaultFuchsiaResourceDialect
40777                        );
40778                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
40779                        let control_handle =
40780                            DatagramSocketControlHandle { inner: this.inner.clone() };
40781                        Ok(DatagramSocketRequest::GetIpv6MulticastLoopback {
40782                            responder: DatagramSocketGetIpv6MulticastLoopbackResponder {
40783                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40784                                tx_id: header.tx_id,
40785                            },
40786                        })
40787                    }
40788                    0x4873f1364758cbba => {
40789                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40790                        let mut req = fidl::new_empty!(
40791                            BaseNetworkSocketSetIpv6OnlyRequest,
40792                            fidl::encoding::DefaultFuchsiaResourceDialect
40793                        );
40794                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6OnlyRequest>(&header, _body_bytes, handles, &mut req)?;
40795                        let control_handle =
40796                            DatagramSocketControlHandle { inner: this.inner.clone() };
40797                        Ok(DatagramSocketRequest::SetIpv6Only {
40798                            value: req.value,
40799
40800                            responder: DatagramSocketSetIpv6OnlyResponder {
40801                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40802                                tx_id: header.tx_id,
40803                            },
40804                        })
40805                    }
40806                    0x4aa3340a1a26b89c => {
40807                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40808                        let mut req = fidl::new_empty!(
40809                            fidl::encoding::EmptyPayload,
40810                            fidl::encoding::DefaultFuchsiaResourceDialect
40811                        );
40812                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
40813                        let control_handle =
40814                            DatagramSocketControlHandle { inner: this.inner.clone() };
40815                        Ok(DatagramSocketRequest::GetIpv6Only {
40816                            responder: DatagramSocketGetIpv6OnlyResponder {
40817                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40818                                tx_id: header.tx_id,
40819                            },
40820                        })
40821                    }
40822                    0x58f07c8788d099a0 => {
40823                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40824                        let mut req = fidl::new_empty!(
40825                            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
40826                            fidl::encoding::DefaultFuchsiaResourceDialect
40827                        );
40828                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest>(&header, _body_bytes, handles, &mut req)?;
40829                        let control_handle =
40830                            DatagramSocketControlHandle { inner: this.inner.clone() };
40831                        Ok(DatagramSocketRequest::SetIpv6ReceiveTrafficClass {
40832                            value: req.value,
40833
40834                            responder: DatagramSocketSetIpv6ReceiveTrafficClassResponder {
40835                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40836                                tx_id: header.tx_id,
40837                            },
40838                        })
40839                    }
40840                    0x2e334df1da553ffa => {
40841                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40842                        let mut req = fidl::new_empty!(
40843                            fidl::encoding::EmptyPayload,
40844                            fidl::encoding::DefaultFuchsiaResourceDialect
40845                        );
40846                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
40847                        let control_handle =
40848                            DatagramSocketControlHandle { inner: this.inner.clone() };
40849                        Ok(DatagramSocketRequest::GetIpv6ReceiveTrafficClass {
40850                            responder: DatagramSocketGetIpv6ReceiveTrafficClassResponder {
40851                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40852                                tx_id: header.tx_id,
40853                            },
40854                        })
40855                    }
40856                    0x6af077800c5a0b4f => {
40857                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40858                        let mut req = fidl::new_empty!(
40859                            BaseNetworkSocketSetIpv6TrafficClassRequest,
40860                            fidl::encoding::DefaultFuchsiaResourceDialect
40861                        );
40862                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6TrafficClassRequest>(&header, _body_bytes, handles, &mut req)?;
40863                        let control_handle =
40864                            DatagramSocketControlHandle { inner: this.inner.clone() };
40865                        Ok(DatagramSocketRequest::SetIpv6TrafficClass {
40866                            value: req.value,
40867
40868                            responder: DatagramSocketSetIpv6TrafficClassResponder {
40869                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40870                                tx_id: header.tx_id,
40871                            },
40872                        })
40873                    }
40874                    0x6baf6eed8fc2f04 => {
40875                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40876                        let mut req = fidl::new_empty!(
40877                            fidl::encoding::EmptyPayload,
40878                            fidl::encoding::DefaultFuchsiaResourceDialect
40879                        );
40880                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
40881                        let control_handle =
40882                            DatagramSocketControlHandle { inner: this.inner.clone() };
40883                        Ok(DatagramSocketRequest::GetIpv6TrafficClass {
40884                            responder: DatagramSocketGetIpv6TrafficClassResponder {
40885                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40886                                tx_id: header.tx_id,
40887                            },
40888                        })
40889                    }
40890                    0x19259775b1a92768 => {
40891                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40892                        let mut req = fidl::new_empty!(
40893                            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
40894                            fidl::encoding::DefaultFuchsiaResourceDialect
40895                        );
40896                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceivePacketInfoRequest>(&header, _body_bytes, handles, &mut req)?;
40897                        let control_handle =
40898                            DatagramSocketControlHandle { inner: this.inner.clone() };
40899                        Ok(DatagramSocketRequest::SetIpv6ReceivePacketInfo {
40900                            value: req.value,
40901
40902                            responder: DatagramSocketSetIpv6ReceivePacketInfoResponder {
40903                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40904                                tx_id: header.tx_id,
40905                            },
40906                        })
40907                    }
40908                    0x7acd4a2775baec75 => {
40909                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40910                        let mut req = fidl::new_empty!(
40911                            fidl::encoding::EmptyPayload,
40912                            fidl::encoding::DefaultFuchsiaResourceDialect
40913                        );
40914                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
40915                        let control_handle =
40916                            DatagramSocketControlHandle { inner: this.inner.clone() };
40917                        Ok(DatagramSocketRequest::GetIpv6ReceivePacketInfo {
40918                            responder: DatagramSocketGetIpv6ReceivePacketInfoResponder {
40919                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40920                                tx_id: header.tx_id,
40921                            },
40922                        })
40923                    }
40924                    0x38bf28f0dafdbac0 => {
40925                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40926                        let mut req = fidl::new_empty!(
40927                            fidl::encoding::EmptyPayload,
40928                            fidl::encoding::DefaultFuchsiaResourceDialect
40929                        );
40930                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
40931                        let control_handle =
40932                            DatagramSocketControlHandle { inner: this.inner.clone() };
40933                        Ok(DatagramSocketRequest::GetOriginalDestination {
40934                            responder: DatagramSocketGetOriginalDestinationResponder {
40935                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40936                                tx_id: header.tx_id,
40937                            },
40938                        })
40939                    }
40940                    0x48aa0a1f6a32d2ed => {
40941                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40942                        let mut req = fidl::new_empty!(
40943                            fidl::encoding::EmptyPayload,
40944                            fidl::encoding::DefaultFuchsiaResourceDialect
40945                        );
40946                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
40947                        let control_handle =
40948                            DatagramSocketControlHandle { inner: this.inner.clone() };
40949                        Ok(DatagramSocketRequest::GetInfo {
40950                            responder: DatagramSocketGetInfoResponder {
40951                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40952                                tx_id: header.tx_id,
40953                            },
40954                        })
40955                    }
40956                    0xbf1e2f0a86601f3 => {
40957                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40958                        let mut req = fidl::new_empty!(
40959                            fidl::encoding::EmptyPayload,
40960                            fidl::encoding::DefaultFuchsiaResourceDialect
40961                        );
40962                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
40963                        let control_handle =
40964                            DatagramSocketControlHandle { inner: this.inner.clone() };
40965                        Ok(DatagramSocketRequest::Describe {
40966                            responder: DatagramSocketDescribeResponder {
40967                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40968                                tx_id: header.tx_id,
40969                            },
40970                        })
40971                    }
40972                    0x5362e668e777248a => {
40973                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40974                        let mut req = fidl::new_empty!(
40975                            DatagramSocketSendMsgPreflightRequest,
40976                            fidl::encoding::DefaultFuchsiaResourceDialect
40977                        );
40978                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<DatagramSocketSendMsgPreflightRequest>(&header, _body_bytes, handles, &mut req)?;
40979                        let control_handle =
40980                            DatagramSocketControlHandle { inner: this.inner.clone() };
40981                        Ok(DatagramSocketRequest::SendMsgPreflight {
40982                            payload: req,
40983                            responder: DatagramSocketSendMsgPreflightResponder {
40984                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40985                                tx_id: header.tx_id,
40986                            },
40987                        })
40988                    }
40989                    0x1a7cdeca5f3eb8e2 => {
40990                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40991                        let mut req = fidl::new_empty!(
40992                            fidl::encoding::EmptyPayload,
40993                            fidl::encoding::DefaultFuchsiaResourceDialect
40994                        );
40995                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
40996                        let control_handle =
40997                            DatagramSocketControlHandle { inner: this.inner.clone() };
40998                        Ok(DatagramSocketRequest::RecvMsgPostflight {
40999                            responder: DatagramSocketRecvMsgPostflightResponder {
41000                                control_handle: std::mem::ManuallyDrop::new(control_handle),
41001                                tx_id: header.tx_id,
41002                            },
41003                        })
41004                    }
41005                    _ => Err(fidl::Error::UnknownOrdinal {
41006                        ordinal: header.ordinal,
41007                        protocol_name:
41008                            <DatagramSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
41009                    }),
41010                }))
41011            },
41012        )
41013    }
41014}
41015
41016/// A datagram socket.
41017#[derive(Debug)]
41018pub enum DatagramSocketRequest {
41019    Clone {
41020        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
41021        control_handle: DatagramSocketControlHandle,
41022    },
41023    /// Terminates the connection.
41024    ///
41025    /// After calling `Close`, the client must not send any other requests.
41026    ///
41027    /// Servers, after sending the status response, should close the connection
41028    /// regardless of status and without sending an epitaph.
41029    ///
41030    /// Closing the client end of the channel should be semantically equivalent
41031    /// to calling `Close` without knowing when the close has completed or its
41032    /// status.
41033    Close {
41034        responder: DatagramSocketCloseResponder,
41035    },
41036    Query {
41037        responder: DatagramSocketQueryResponder,
41038    },
41039    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
41040    SetReuseAddress {
41041        value: bool,
41042        responder: DatagramSocketSetReuseAddressResponder,
41043    },
41044    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
41045    GetReuseAddress {
41046        responder: DatagramSocketGetReuseAddressResponder,
41047    },
41048    /// Get `SOL_SOCKET` -> `SO_ERROR`.
41049    /// Returns the last error if there is an error set on the socket.
41050    GetError {
41051        responder: DatagramSocketGetErrorResponder,
41052    },
41053    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
41054    SetBroadcast {
41055        value: bool,
41056        responder: DatagramSocketSetBroadcastResponder,
41057    },
41058    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
41059    GetBroadcast {
41060        responder: DatagramSocketGetBroadcastResponder,
41061    },
41062    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
41063    SetSendBuffer {
41064        value_bytes: u64,
41065        responder: DatagramSocketSetSendBufferResponder,
41066    },
41067    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
41068    GetSendBuffer {
41069        responder: DatagramSocketGetSendBufferResponder,
41070    },
41071    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
41072    SetReceiveBuffer {
41073        value_bytes: u64,
41074        responder: DatagramSocketSetReceiveBufferResponder,
41075    },
41076    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
41077    GetReceiveBuffer {
41078        responder: DatagramSocketGetReceiveBufferResponder,
41079    },
41080    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
41081    SetKeepAlive {
41082        value: bool,
41083        responder: DatagramSocketSetKeepAliveResponder,
41084    },
41085    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
41086    GetKeepAlive {
41087        responder: DatagramSocketGetKeepAliveResponder,
41088    },
41089    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
41090    SetOutOfBandInline {
41091        value: bool,
41092        responder: DatagramSocketSetOutOfBandInlineResponder,
41093    },
41094    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
41095    GetOutOfBandInline {
41096        responder: DatagramSocketGetOutOfBandInlineResponder,
41097    },
41098    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
41099    SetNoCheck {
41100        value: bool,
41101        responder: DatagramSocketSetNoCheckResponder,
41102    },
41103    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
41104    GetNoCheck {
41105        responder: DatagramSocketGetNoCheckResponder,
41106    },
41107    /// Set `SOL_SOCKET` -> `SO_LINGER`.
41108    SetLinger {
41109        linger: bool,
41110        length_secs: u32,
41111        responder: DatagramSocketSetLingerResponder,
41112    },
41113    /// Get `SOL_SOCKET` -> `SO_LINGER`.
41114    GetLinger {
41115        responder: DatagramSocketGetLingerResponder,
41116    },
41117    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
41118    SetReusePort {
41119        value: ReusePortOption,
41120        responder: DatagramSocketSetReusePortResponder,
41121    },
41122    SetReusePortDeprecated {
41123        value: bool,
41124        responder: DatagramSocketSetReusePortDeprecatedResponder,
41125    },
41126    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
41127    GetReusePort {
41128        responder: DatagramSocketGetReusePortResponder,
41129    },
41130    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
41131    GetAcceptConn {
41132        responder: DatagramSocketGetAcceptConnResponder,
41133    },
41134    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
41135    SetBindToDevice {
41136        value: String,
41137        responder: DatagramSocketSetBindToDeviceResponder,
41138    },
41139    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
41140    GetBindToDevice {
41141        responder: DatagramSocketGetBindToDeviceResponder,
41142    },
41143    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
41144    /// If `value` is 0, this clears the bound interface.
41145    SetBindToInterfaceIndex {
41146        value: u64,
41147        responder: DatagramSocketSetBindToInterfaceIndexResponder,
41148    },
41149    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
41150    GetBindToInterfaceIndex {
41151        responder: DatagramSocketGetBindToInterfaceIndexResponder,
41152    },
41153    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
41154    SetTimestamp {
41155        value: TimestampOption,
41156        responder: DatagramSocketSetTimestampResponder,
41157    },
41158    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
41159    GetTimestamp {
41160        responder: DatagramSocketGetTimestampResponder,
41161    },
41162    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
41163    /// unlike the standard SO_MARK, this API has multiple mark domains and each
41164    /// mark can be set independently in each domain.
41165    SetMark {
41166        domain: fidl_fuchsia_net::MarkDomain,
41167        mark: OptionalUint32,
41168        responder: DatagramSocketSetMarkResponder,
41169    },
41170    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
41171    /// unlike the standard SO_MARK, this API has multiple mark domains and each
41172    /// mark can be retrieved independently in each domain.
41173    GetMark {
41174        domain: fidl_fuchsia_net::MarkDomain,
41175        responder: DatagramSocketGetMarkResponder,
41176    },
41177    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
41178    GetCookie {
41179        responder: DatagramSocketGetCookieResponder,
41180    },
41181    /// Sets the local address used for the socket.
41182    Bind {
41183        addr: fidl_fuchsia_net::SocketAddress,
41184        responder: DatagramSocketBindResponder,
41185    },
41186    /// Initiates a connection to a remote address.
41187    Connect {
41188        addr: fidl_fuchsia_net::SocketAddress,
41189        responder: DatagramSocketConnectResponder,
41190    },
41191    /// Clears connection information from this socket.
41192    Disconnect {
41193        responder: DatagramSocketDisconnectResponder,
41194    },
41195    /// Retrieves the local socket address.
41196    GetSockName {
41197        responder: DatagramSocketGetSockNameResponder,
41198    },
41199    /// Retrieves the remote socket address.
41200    GetPeerName {
41201        responder: DatagramSocketGetPeerNameResponder,
41202    },
41203    /// Shuts down part of the socket.
41204    Shutdown {
41205        mode: ShutdownMode,
41206        responder: DatagramSocketShutdownResponder,
41207    },
41208    /// Set `SOL_IP` -> `IP_TOS`.
41209    SetIpTypeOfService {
41210        value: u8,
41211        responder: DatagramSocketSetIpTypeOfServiceResponder,
41212    },
41213    /// Get `SOL_IP` -> `IP_TOS`.
41214    GetIpTypeOfService {
41215        responder: DatagramSocketGetIpTypeOfServiceResponder,
41216    },
41217    /// Set `SOL_IP` -> `IP_TTL`.
41218    SetIpTtl {
41219        value: OptionalUint8,
41220        responder: DatagramSocketSetIpTtlResponder,
41221    },
41222    /// Get `SOL_IP` -> `IP_TTL`.
41223    GetIpTtl {
41224        responder: DatagramSocketGetIpTtlResponder,
41225    },
41226    /// Set `SOL_IP` -> `IP_PKTINFO`.
41227    SetIpPacketInfo {
41228        value: bool,
41229        responder: DatagramSocketSetIpPacketInfoResponder,
41230    },
41231    /// Get `SOL_IP` -> `IP_PKTINFO`.
41232    GetIpPacketInfo {
41233        responder: DatagramSocketGetIpPacketInfoResponder,
41234    },
41235    /// Set `SOL_IP` -> `IP_RECVTOS`.
41236    SetIpReceiveTypeOfService {
41237        value: bool,
41238        responder: DatagramSocketSetIpReceiveTypeOfServiceResponder,
41239    },
41240    /// Get `SOL_IP` -> `IP_RECVTOS`.
41241    GetIpReceiveTypeOfService {
41242        responder: DatagramSocketGetIpReceiveTypeOfServiceResponder,
41243    },
41244    /// Set `SOL_IP` -> `IP_RECVTTL`.
41245    SetIpReceiveTtl {
41246        value: bool,
41247        responder: DatagramSocketSetIpReceiveTtlResponder,
41248    },
41249    /// Get `SOL_IP` -> `IP_RECVTTL`.
41250    GetIpReceiveTtl {
41251        responder: DatagramSocketGetIpReceiveTtlResponder,
41252    },
41253    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
41254    SetIpMulticastInterface {
41255        iface: u64,
41256        address: fidl_fuchsia_net::Ipv4Address,
41257        responder: DatagramSocketSetIpMulticastInterfaceResponder,
41258    },
41259    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
41260    GetIpMulticastInterface {
41261        responder: DatagramSocketGetIpMulticastInterfaceResponder,
41262    },
41263    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
41264    SetIpMulticastTtl {
41265        value: OptionalUint8,
41266        responder: DatagramSocketSetIpMulticastTtlResponder,
41267    },
41268    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
41269    GetIpMulticastTtl {
41270        responder: DatagramSocketGetIpMulticastTtlResponder,
41271    },
41272    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
41273    SetIpMulticastLoopback {
41274        value: bool,
41275        responder: DatagramSocketSetIpMulticastLoopbackResponder,
41276    },
41277    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
41278    GetIpMulticastLoopback {
41279        responder: DatagramSocketGetIpMulticastLoopbackResponder,
41280    },
41281    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
41282    AddIpMembership {
41283        membership: IpMulticastMembership,
41284        responder: DatagramSocketAddIpMembershipResponder,
41285    },
41286    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
41287    DropIpMembership {
41288        membership: IpMulticastMembership,
41289        responder: DatagramSocketDropIpMembershipResponder,
41290    },
41291    /// Set `SOL_IP` -> `IP_TRANSPARENT`
41292    SetIpTransparent {
41293        value: bool,
41294        responder: DatagramSocketSetIpTransparentResponder,
41295    },
41296    /// Get `SOL_IP` -> `IP_TRANSPARENT`
41297    GetIpTransparent {
41298        responder: DatagramSocketGetIpTransparentResponder,
41299    },
41300    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
41301    SetIpReceiveOriginalDestinationAddress {
41302        value: bool,
41303        responder: DatagramSocketSetIpReceiveOriginalDestinationAddressResponder,
41304    },
41305    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
41306    GetIpReceiveOriginalDestinationAddress {
41307        responder: DatagramSocketGetIpReceiveOriginalDestinationAddressResponder,
41308    },
41309    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
41310    AddIpv6Membership {
41311        membership: Ipv6MulticastMembership,
41312        responder: DatagramSocketAddIpv6MembershipResponder,
41313    },
41314    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
41315    DropIpv6Membership {
41316        membership: Ipv6MulticastMembership,
41317        responder: DatagramSocketDropIpv6MembershipResponder,
41318    },
41319    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
41320    SetIpv6MulticastInterface {
41321        value: u64,
41322        responder: DatagramSocketSetIpv6MulticastInterfaceResponder,
41323    },
41324    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
41325    GetIpv6MulticastInterface {
41326        responder: DatagramSocketGetIpv6MulticastInterfaceResponder,
41327    },
41328    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
41329    SetIpv6UnicastHops {
41330        value: OptionalUint8,
41331        responder: DatagramSocketSetIpv6UnicastHopsResponder,
41332    },
41333    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
41334    GetIpv6UnicastHops {
41335        responder: DatagramSocketGetIpv6UnicastHopsResponder,
41336    },
41337    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
41338    SetIpv6ReceiveHopLimit {
41339        value: bool,
41340        responder: DatagramSocketSetIpv6ReceiveHopLimitResponder,
41341    },
41342    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
41343    GetIpv6ReceiveHopLimit {
41344        responder: DatagramSocketGetIpv6ReceiveHopLimitResponder,
41345    },
41346    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
41347    SetIpv6MulticastHops {
41348        value: OptionalUint8,
41349        responder: DatagramSocketSetIpv6MulticastHopsResponder,
41350    },
41351    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
41352    GetIpv6MulticastHops {
41353        responder: DatagramSocketGetIpv6MulticastHopsResponder,
41354    },
41355    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
41356    SetIpv6MulticastLoopback {
41357        value: bool,
41358        responder: DatagramSocketSetIpv6MulticastLoopbackResponder,
41359    },
41360    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
41361    GetIpv6MulticastLoopback {
41362        responder: DatagramSocketGetIpv6MulticastLoopbackResponder,
41363    },
41364    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
41365    SetIpv6Only {
41366        value: bool,
41367        responder: DatagramSocketSetIpv6OnlyResponder,
41368    },
41369    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
41370    GetIpv6Only {
41371        responder: DatagramSocketGetIpv6OnlyResponder,
41372    },
41373    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
41374    SetIpv6ReceiveTrafficClass {
41375        value: bool,
41376        responder: DatagramSocketSetIpv6ReceiveTrafficClassResponder,
41377    },
41378    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
41379    GetIpv6ReceiveTrafficClass {
41380        responder: DatagramSocketGetIpv6ReceiveTrafficClassResponder,
41381    },
41382    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
41383    SetIpv6TrafficClass {
41384        value: OptionalUint8,
41385        responder: DatagramSocketSetIpv6TrafficClassResponder,
41386    },
41387    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
41388    GetIpv6TrafficClass {
41389        responder: DatagramSocketGetIpv6TrafficClassResponder,
41390    },
41391    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
41392    SetIpv6ReceivePacketInfo {
41393        value: bool,
41394        responder: DatagramSocketSetIpv6ReceivePacketInfoResponder,
41395    },
41396    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
41397    GetIpv6ReceivePacketInfo {
41398        responder: DatagramSocketGetIpv6ReceivePacketInfoResponder,
41399    },
41400    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
41401    GetOriginalDestination {
41402        responder: DatagramSocketGetOriginalDestinationResponder,
41403    },
41404    /// Retrieves creation information from the socket.
41405    ///
41406    /// - response `domain` the socket's associated domain.
41407    /// - response `proto` the socket's associated protocol.
41408    GetInfo {
41409        responder: DatagramSocketGetInfoResponder,
41410    },
41411    Describe {
41412        responder: DatagramSocketDescribeResponder,
41413    },
41414    /// Validates that data can be sent.
41415    ///
41416    /// + request `args` the requested disposition of data to be sent.
41417    /// - response the constraints sent data must satisfy.
41418    /// * error the error code indicating the reason for validation failure.
41419    SendMsgPreflight {
41420        payload: DatagramSocketSendMsgPreflightRequest,
41421        responder: DatagramSocketSendMsgPreflightResponder,
41422    },
41423    /// Returns the set of requested control messages.
41424    ///
41425    /// - response the set of currently requested control messages.
41426    RecvMsgPostflight {
41427        responder: DatagramSocketRecvMsgPostflightResponder,
41428    },
41429}
41430
41431impl DatagramSocketRequest {
41432    #[allow(irrefutable_let_patterns)]
41433    pub fn into_clone(
41434        self,
41435    ) -> Option<(
41436        fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
41437        DatagramSocketControlHandle,
41438    )> {
41439        if let DatagramSocketRequest::Clone { request, control_handle } = self {
41440            Some((request, control_handle))
41441        } else {
41442            None
41443        }
41444    }
41445
41446    #[allow(irrefutable_let_patterns)]
41447    pub fn into_close(self) -> Option<(DatagramSocketCloseResponder)> {
41448        if let DatagramSocketRequest::Close { responder } = self { Some((responder)) } else { None }
41449    }
41450
41451    #[allow(irrefutable_let_patterns)]
41452    pub fn into_query(self) -> Option<(DatagramSocketQueryResponder)> {
41453        if let DatagramSocketRequest::Query { responder } = self { Some((responder)) } else { None }
41454    }
41455
41456    #[allow(irrefutable_let_patterns)]
41457    pub fn into_set_reuse_address(self) -> Option<(bool, DatagramSocketSetReuseAddressResponder)> {
41458        if let DatagramSocketRequest::SetReuseAddress { value, responder } = self {
41459            Some((value, responder))
41460        } else {
41461            None
41462        }
41463    }
41464
41465    #[allow(irrefutable_let_patterns)]
41466    pub fn into_get_reuse_address(self) -> Option<(DatagramSocketGetReuseAddressResponder)> {
41467        if let DatagramSocketRequest::GetReuseAddress { responder } = self {
41468            Some((responder))
41469        } else {
41470            None
41471        }
41472    }
41473
41474    #[allow(irrefutable_let_patterns)]
41475    pub fn into_get_error(self) -> Option<(DatagramSocketGetErrorResponder)> {
41476        if let DatagramSocketRequest::GetError { responder } = self {
41477            Some((responder))
41478        } else {
41479            None
41480        }
41481    }
41482
41483    #[allow(irrefutable_let_patterns)]
41484    pub fn into_set_broadcast(self) -> Option<(bool, DatagramSocketSetBroadcastResponder)> {
41485        if let DatagramSocketRequest::SetBroadcast { value, responder } = self {
41486            Some((value, responder))
41487        } else {
41488            None
41489        }
41490    }
41491
41492    #[allow(irrefutable_let_patterns)]
41493    pub fn into_get_broadcast(self) -> Option<(DatagramSocketGetBroadcastResponder)> {
41494        if let DatagramSocketRequest::GetBroadcast { responder } = self {
41495            Some((responder))
41496        } else {
41497            None
41498        }
41499    }
41500
41501    #[allow(irrefutable_let_patterns)]
41502    pub fn into_set_send_buffer(self) -> Option<(u64, DatagramSocketSetSendBufferResponder)> {
41503        if let DatagramSocketRequest::SetSendBuffer { value_bytes, responder } = self {
41504            Some((value_bytes, responder))
41505        } else {
41506            None
41507        }
41508    }
41509
41510    #[allow(irrefutable_let_patterns)]
41511    pub fn into_get_send_buffer(self) -> Option<(DatagramSocketGetSendBufferResponder)> {
41512        if let DatagramSocketRequest::GetSendBuffer { responder } = self {
41513            Some((responder))
41514        } else {
41515            None
41516        }
41517    }
41518
41519    #[allow(irrefutable_let_patterns)]
41520    pub fn into_set_receive_buffer(self) -> Option<(u64, DatagramSocketSetReceiveBufferResponder)> {
41521        if let DatagramSocketRequest::SetReceiveBuffer { value_bytes, responder } = self {
41522            Some((value_bytes, responder))
41523        } else {
41524            None
41525        }
41526    }
41527
41528    #[allow(irrefutable_let_patterns)]
41529    pub fn into_get_receive_buffer(self) -> Option<(DatagramSocketGetReceiveBufferResponder)> {
41530        if let DatagramSocketRequest::GetReceiveBuffer { responder } = self {
41531            Some((responder))
41532        } else {
41533            None
41534        }
41535    }
41536
41537    #[allow(irrefutable_let_patterns)]
41538    pub fn into_set_keep_alive(self) -> Option<(bool, DatagramSocketSetKeepAliveResponder)> {
41539        if let DatagramSocketRequest::SetKeepAlive { value, responder } = self {
41540            Some((value, responder))
41541        } else {
41542            None
41543        }
41544    }
41545
41546    #[allow(irrefutable_let_patterns)]
41547    pub fn into_get_keep_alive(self) -> Option<(DatagramSocketGetKeepAliveResponder)> {
41548        if let DatagramSocketRequest::GetKeepAlive { responder } = self {
41549            Some((responder))
41550        } else {
41551            None
41552        }
41553    }
41554
41555    #[allow(irrefutable_let_patterns)]
41556    pub fn into_set_out_of_band_inline(
41557        self,
41558    ) -> Option<(bool, DatagramSocketSetOutOfBandInlineResponder)> {
41559        if let DatagramSocketRequest::SetOutOfBandInline { value, responder } = self {
41560            Some((value, responder))
41561        } else {
41562            None
41563        }
41564    }
41565
41566    #[allow(irrefutable_let_patterns)]
41567    pub fn into_get_out_of_band_inline(
41568        self,
41569    ) -> Option<(DatagramSocketGetOutOfBandInlineResponder)> {
41570        if let DatagramSocketRequest::GetOutOfBandInline { responder } = self {
41571            Some((responder))
41572        } else {
41573            None
41574        }
41575    }
41576
41577    #[allow(irrefutable_let_patterns)]
41578    pub fn into_set_no_check(self) -> Option<(bool, DatagramSocketSetNoCheckResponder)> {
41579        if let DatagramSocketRequest::SetNoCheck { value, responder } = self {
41580            Some((value, responder))
41581        } else {
41582            None
41583        }
41584    }
41585
41586    #[allow(irrefutable_let_patterns)]
41587    pub fn into_get_no_check(self) -> Option<(DatagramSocketGetNoCheckResponder)> {
41588        if let DatagramSocketRequest::GetNoCheck { responder } = self {
41589            Some((responder))
41590        } else {
41591            None
41592        }
41593    }
41594
41595    #[allow(irrefutable_let_patterns)]
41596    pub fn into_set_linger(self) -> Option<(bool, u32, DatagramSocketSetLingerResponder)> {
41597        if let DatagramSocketRequest::SetLinger { linger, length_secs, responder } = self {
41598            Some((linger, length_secs, responder))
41599        } else {
41600            None
41601        }
41602    }
41603
41604    #[allow(irrefutable_let_patterns)]
41605    pub fn into_get_linger(self) -> Option<(DatagramSocketGetLingerResponder)> {
41606        if let DatagramSocketRequest::GetLinger { responder } = self {
41607            Some((responder))
41608        } else {
41609            None
41610        }
41611    }
41612
41613    #[allow(irrefutable_let_patterns)]
41614    pub fn into_set_reuse_port(
41615        self,
41616    ) -> Option<(ReusePortOption, DatagramSocketSetReusePortResponder)> {
41617        if let DatagramSocketRequest::SetReusePort { value, responder } = self {
41618            Some((value, responder))
41619        } else {
41620            None
41621        }
41622    }
41623
41624    #[allow(irrefutable_let_patterns)]
41625    pub fn into_set_reuse_port_deprecated(
41626        self,
41627    ) -> Option<(bool, DatagramSocketSetReusePortDeprecatedResponder)> {
41628        if let DatagramSocketRequest::SetReusePortDeprecated { value, responder } = self {
41629            Some((value, responder))
41630        } else {
41631            None
41632        }
41633    }
41634
41635    #[allow(irrefutable_let_patterns)]
41636    pub fn into_get_reuse_port(self) -> Option<(DatagramSocketGetReusePortResponder)> {
41637        if let DatagramSocketRequest::GetReusePort { responder } = self {
41638            Some((responder))
41639        } else {
41640            None
41641        }
41642    }
41643
41644    #[allow(irrefutable_let_patterns)]
41645    pub fn into_get_accept_conn(self) -> Option<(DatagramSocketGetAcceptConnResponder)> {
41646        if let DatagramSocketRequest::GetAcceptConn { responder } = self {
41647            Some((responder))
41648        } else {
41649            None
41650        }
41651    }
41652
41653    #[allow(irrefutable_let_patterns)]
41654    pub fn into_set_bind_to_device(
41655        self,
41656    ) -> Option<(String, DatagramSocketSetBindToDeviceResponder)> {
41657        if let DatagramSocketRequest::SetBindToDevice { value, responder } = self {
41658            Some((value, responder))
41659        } else {
41660            None
41661        }
41662    }
41663
41664    #[allow(irrefutable_let_patterns)]
41665    pub fn into_get_bind_to_device(self) -> Option<(DatagramSocketGetBindToDeviceResponder)> {
41666        if let DatagramSocketRequest::GetBindToDevice { responder } = self {
41667            Some((responder))
41668        } else {
41669            None
41670        }
41671    }
41672
41673    #[allow(irrefutable_let_patterns)]
41674    pub fn into_set_bind_to_interface_index(
41675        self,
41676    ) -> Option<(u64, DatagramSocketSetBindToInterfaceIndexResponder)> {
41677        if let DatagramSocketRequest::SetBindToInterfaceIndex { value, responder } = self {
41678            Some((value, responder))
41679        } else {
41680            None
41681        }
41682    }
41683
41684    #[allow(irrefutable_let_patterns)]
41685    pub fn into_get_bind_to_interface_index(
41686        self,
41687    ) -> Option<(DatagramSocketGetBindToInterfaceIndexResponder)> {
41688        if let DatagramSocketRequest::GetBindToInterfaceIndex { responder } = self {
41689            Some((responder))
41690        } else {
41691            None
41692        }
41693    }
41694
41695    #[allow(irrefutable_let_patterns)]
41696    pub fn into_set_timestamp(
41697        self,
41698    ) -> Option<(TimestampOption, DatagramSocketSetTimestampResponder)> {
41699        if let DatagramSocketRequest::SetTimestamp { value, responder } = self {
41700            Some((value, responder))
41701        } else {
41702            None
41703        }
41704    }
41705
41706    #[allow(irrefutable_let_patterns)]
41707    pub fn into_get_timestamp(self) -> Option<(DatagramSocketGetTimestampResponder)> {
41708        if let DatagramSocketRequest::GetTimestamp { responder } = self {
41709            Some((responder))
41710        } else {
41711            None
41712        }
41713    }
41714
41715    #[allow(irrefutable_let_patterns)]
41716    pub fn into_set_mark(
41717        self,
41718    ) -> Option<(fidl_fuchsia_net::MarkDomain, OptionalUint32, DatagramSocketSetMarkResponder)>
41719    {
41720        if let DatagramSocketRequest::SetMark { domain, mark, responder } = self {
41721            Some((domain, mark, responder))
41722        } else {
41723            None
41724        }
41725    }
41726
41727    #[allow(irrefutable_let_patterns)]
41728    pub fn into_get_mark(
41729        self,
41730    ) -> Option<(fidl_fuchsia_net::MarkDomain, DatagramSocketGetMarkResponder)> {
41731        if let DatagramSocketRequest::GetMark { domain, responder } = self {
41732            Some((domain, responder))
41733        } else {
41734            None
41735        }
41736    }
41737
41738    #[allow(irrefutable_let_patterns)]
41739    pub fn into_get_cookie(self) -> Option<(DatagramSocketGetCookieResponder)> {
41740        if let DatagramSocketRequest::GetCookie { responder } = self {
41741            Some((responder))
41742        } else {
41743            None
41744        }
41745    }
41746
41747    #[allow(irrefutable_let_patterns)]
41748    pub fn into_bind(
41749        self,
41750    ) -> Option<(fidl_fuchsia_net::SocketAddress, DatagramSocketBindResponder)> {
41751        if let DatagramSocketRequest::Bind { addr, responder } = self {
41752            Some((addr, responder))
41753        } else {
41754            None
41755        }
41756    }
41757
41758    #[allow(irrefutable_let_patterns)]
41759    pub fn into_connect(
41760        self,
41761    ) -> Option<(fidl_fuchsia_net::SocketAddress, DatagramSocketConnectResponder)> {
41762        if let DatagramSocketRequest::Connect { addr, responder } = self {
41763            Some((addr, responder))
41764        } else {
41765            None
41766        }
41767    }
41768
41769    #[allow(irrefutable_let_patterns)]
41770    pub fn into_disconnect(self) -> Option<(DatagramSocketDisconnectResponder)> {
41771        if let DatagramSocketRequest::Disconnect { responder } = self {
41772            Some((responder))
41773        } else {
41774            None
41775        }
41776    }
41777
41778    #[allow(irrefutable_let_patterns)]
41779    pub fn into_get_sock_name(self) -> Option<(DatagramSocketGetSockNameResponder)> {
41780        if let DatagramSocketRequest::GetSockName { responder } = self {
41781            Some((responder))
41782        } else {
41783            None
41784        }
41785    }
41786
41787    #[allow(irrefutable_let_patterns)]
41788    pub fn into_get_peer_name(self) -> Option<(DatagramSocketGetPeerNameResponder)> {
41789        if let DatagramSocketRequest::GetPeerName { responder } = self {
41790            Some((responder))
41791        } else {
41792            None
41793        }
41794    }
41795
41796    #[allow(irrefutable_let_patterns)]
41797    pub fn into_shutdown(self) -> Option<(ShutdownMode, DatagramSocketShutdownResponder)> {
41798        if let DatagramSocketRequest::Shutdown { mode, responder } = self {
41799            Some((mode, responder))
41800        } else {
41801            None
41802        }
41803    }
41804
41805    #[allow(irrefutable_let_patterns)]
41806    pub fn into_set_ip_type_of_service(
41807        self,
41808    ) -> Option<(u8, DatagramSocketSetIpTypeOfServiceResponder)> {
41809        if let DatagramSocketRequest::SetIpTypeOfService { value, responder } = self {
41810            Some((value, responder))
41811        } else {
41812            None
41813        }
41814    }
41815
41816    #[allow(irrefutable_let_patterns)]
41817    pub fn into_get_ip_type_of_service(
41818        self,
41819    ) -> Option<(DatagramSocketGetIpTypeOfServiceResponder)> {
41820        if let DatagramSocketRequest::GetIpTypeOfService { responder } = self {
41821            Some((responder))
41822        } else {
41823            None
41824        }
41825    }
41826
41827    #[allow(irrefutable_let_patterns)]
41828    pub fn into_set_ip_ttl(self) -> Option<(OptionalUint8, DatagramSocketSetIpTtlResponder)> {
41829        if let DatagramSocketRequest::SetIpTtl { value, responder } = self {
41830            Some((value, responder))
41831        } else {
41832            None
41833        }
41834    }
41835
41836    #[allow(irrefutable_let_patterns)]
41837    pub fn into_get_ip_ttl(self) -> Option<(DatagramSocketGetIpTtlResponder)> {
41838        if let DatagramSocketRequest::GetIpTtl { responder } = self {
41839            Some((responder))
41840        } else {
41841            None
41842        }
41843    }
41844
41845    #[allow(irrefutable_let_patterns)]
41846    pub fn into_set_ip_packet_info(self) -> Option<(bool, DatagramSocketSetIpPacketInfoResponder)> {
41847        if let DatagramSocketRequest::SetIpPacketInfo { value, responder } = self {
41848            Some((value, responder))
41849        } else {
41850            None
41851        }
41852    }
41853
41854    #[allow(irrefutable_let_patterns)]
41855    pub fn into_get_ip_packet_info(self) -> Option<(DatagramSocketGetIpPacketInfoResponder)> {
41856        if let DatagramSocketRequest::GetIpPacketInfo { responder } = self {
41857            Some((responder))
41858        } else {
41859            None
41860        }
41861    }
41862
41863    #[allow(irrefutable_let_patterns)]
41864    pub fn into_set_ip_receive_type_of_service(
41865        self,
41866    ) -> Option<(bool, DatagramSocketSetIpReceiveTypeOfServiceResponder)> {
41867        if let DatagramSocketRequest::SetIpReceiveTypeOfService { value, responder } = self {
41868            Some((value, responder))
41869        } else {
41870            None
41871        }
41872    }
41873
41874    #[allow(irrefutable_let_patterns)]
41875    pub fn into_get_ip_receive_type_of_service(
41876        self,
41877    ) -> Option<(DatagramSocketGetIpReceiveTypeOfServiceResponder)> {
41878        if let DatagramSocketRequest::GetIpReceiveTypeOfService { responder } = self {
41879            Some((responder))
41880        } else {
41881            None
41882        }
41883    }
41884
41885    #[allow(irrefutable_let_patterns)]
41886    pub fn into_set_ip_receive_ttl(self) -> Option<(bool, DatagramSocketSetIpReceiveTtlResponder)> {
41887        if let DatagramSocketRequest::SetIpReceiveTtl { value, responder } = self {
41888            Some((value, responder))
41889        } else {
41890            None
41891        }
41892    }
41893
41894    #[allow(irrefutable_let_patterns)]
41895    pub fn into_get_ip_receive_ttl(self) -> Option<(DatagramSocketGetIpReceiveTtlResponder)> {
41896        if let DatagramSocketRequest::GetIpReceiveTtl { responder } = self {
41897            Some((responder))
41898        } else {
41899            None
41900        }
41901    }
41902
41903    #[allow(irrefutable_let_patterns)]
41904    pub fn into_set_ip_multicast_interface(
41905        self,
41906    ) -> Option<(u64, fidl_fuchsia_net::Ipv4Address, DatagramSocketSetIpMulticastInterfaceResponder)>
41907    {
41908        if let DatagramSocketRequest::SetIpMulticastInterface { iface, address, responder } = self {
41909            Some((iface, address, responder))
41910        } else {
41911            None
41912        }
41913    }
41914
41915    #[allow(irrefutable_let_patterns)]
41916    pub fn into_get_ip_multicast_interface(
41917        self,
41918    ) -> Option<(DatagramSocketGetIpMulticastInterfaceResponder)> {
41919        if let DatagramSocketRequest::GetIpMulticastInterface { responder } = self {
41920            Some((responder))
41921        } else {
41922            None
41923        }
41924    }
41925
41926    #[allow(irrefutable_let_patterns)]
41927    pub fn into_set_ip_multicast_ttl(
41928        self,
41929    ) -> Option<(OptionalUint8, DatagramSocketSetIpMulticastTtlResponder)> {
41930        if let DatagramSocketRequest::SetIpMulticastTtl { value, responder } = self {
41931            Some((value, responder))
41932        } else {
41933            None
41934        }
41935    }
41936
41937    #[allow(irrefutable_let_patterns)]
41938    pub fn into_get_ip_multicast_ttl(self) -> Option<(DatagramSocketGetIpMulticastTtlResponder)> {
41939        if let DatagramSocketRequest::GetIpMulticastTtl { responder } = self {
41940            Some((responder))
41941        } else {
41942            None
41943        }
41944    }
41945
41946    #[allow(irrefutable_let_patterns)]
41947    pub fn into_set_ip_multicast_loopback(
41948        self,
41949    ) -> Option<(bool, DatagramSocketSetIpMulticastLoopbackResponder)> {
41950        if let DatagramSocketRequest::SetIpMulticastLoopback { value, responder } = self {
41951            Some((value, responder))
41952        } else {
41953            None
41954        }
41955    }
41956
41957    #[allow(irrefutable_let_patterns)]
41958    pub fn into_get_ip_multicast_loopback(
41959        self,
41960    ) -> Option<(DatagramSocketGetIpMulticastLoopbackResponder)> {
41961        if let DatagramSocketRequest::GetIpMulticastLoopback { responder } = self {
41962            Some((responder))
41963        } else {
41964            None
41965        }
41966    }
41967
41968    #[allow(irrefutable_let_patterns)]
41969    pub fn into_add_ip_membership(
41970        self,
41971    ) -> Option<(IpMulticastMembership, DatagramSocketAddIpMembershipResponder)> {
41972        if let DatagramSocketRequest::AddIpMembership { membership, responder } = self {
41973            Some((membership, responder))
41974        } else {
41975            None
41976        }
41977    }
41978
41979    #[allow(irrefutable_let_patterns)]
41980    pub fn into_drop_ip_membership(
41981        self,
41982    ) -> Option<(IpMulticastMembership, DatagramSocketDropIpMembershipResponder)> {
41983        if let DatagramSocketRequest::DropIpMembership { membership, responder } = self {
41984            Some((membership, responder))
41985        } else {
41986            None
41987        }
41988    }
41989
41990    #[allow(irrefutable_let_patterns)]
41991    pub fn into_set_ip_transparent(
41992        self,
41993    ) -> Option<(bool, DatagramSocketSetIpTransparentResponder)> {
41994        if let DatagramSocketRequest::SetIpTransparent { value, responder } = self {
41995            Some((value, responder))
41996        } else {
41997            None
41998        }
41999    }
42000
42001    #[allow(irrefutable_let_patterns)]
42002    pub fn into_get_ip_transparent(self) -> Option<(DatagramSocketGetIpTransparentResponder)> {
42003        if let DatagramSocketRequest::GetIpTransparent { responder } = self {
42004            Some((responder))
42005        } else {
42006            None
42007        }
42008    }
42009
42010    #[allow(irrefutable_let_patterns)]
42011    pub fn into_set_ip_receive_original_destination_address(
42012        self,
42013    ) -> Option<(bool, DatagramSocketSetIpReceiveOriginalDestinationAddressResponder)> {
42014        if let DatagramSocketRequest::SetIpReceiveOriginalDestinationAddress { value, responder } =
42015            self
42016        {
42017            Some((value, responder))
42018        } else {
42019            None
42020        }
42021    }
42022
42023    #[allow(irrefutable_let_patterns)]
42024    pub fn into_get_ip_receive_original_destination_address(
42025        self,
42026    ) -> Option<(DatagramSocketGetIpReceiveOriginalDestinationAddressResponder)> {
42027        if let DatagramSocketRequest::GetIpReceiveOriginalDestinationAddress { responder } = self {
42028            Some((responder))
42029        } else {
42030            None
42031        }
42032    }
42033
42034    #[allow(irrefutable_let_patterns)]
42035    pub fn into_add_ipv6_membership(
42036        self,
42037    ) -> Option<(Ipv6MulticastMembership, DatagramSocketAddIpv6MembershipResponder)> {
42038        if let DatagramSocketRequest::AddIpv6Membership { membership, responder } = self {
42039            Some((membership, responder))
42040        } else {
42041            None
42042        }
42043    }
42044
42045    #[allow(irrefutable_let_patterns)]
42046    pub fn into_drop_ipv6_membership(
42047        self,
42048    ) -> Option<(Ipv6MulticastMembership, DatagramSocketDropIpv6MembershipResponder)> {
42049        if let DatagramSocketRequest::DropIpv6Membership { membership, responder } = self {
42050            Some((membership, responder))
42051        } else {
42052            None
42053        }
42054    }
42055
42056    #[allow(irrefutable_let_patterns)]
42057    pub fn into_set_ipv6_multicast_interface(
42058        self,
42059    ) -> Option<(u64, DatagramSocketSetIpv6MulticastInterfaceResponder)> {
42060        if let DatagramSocketRequest::SetIpv6MulticastInterface { value, responder } = self {
42061            Some((value, responder))
42062        } else {
42063            None
42064        }
42065    }
42066
42067    #[allow(irrefutable_let_patterns)]
42068    pub fn into_get_ipv6_multicast_interface(
42069        self,
42070    ) -> Option<(DatagramSocketGetIpv6MulticastInterfaceResponder)> {
42071        if let DatagramSocketRequest::GetIpv6MulticastInterface { responder } = self {
42072            Some((responder))
42073        } else {
42074            None
42075        }
42076    }
42077
42078    #[allow(irrefutable_let_patterns)]
42079    pub fn into_set_ipv6_unicast_hops(
42080        self,
42081    ) -> Option<(OptionalUint8, DatagramSocketSetIpv6UnicastHopsResponder)> {
42082        if let DatagramSocketRequest::SetIpv6UnicastHops { value, responder } = self {
42083            Some((value, responder))
42084        } else {
42085            None
42086        }
42087    }
42088
42089    #[allow(irrefutable_let_patterns)]
42090    pub fn into_get_ipv6_unicast_hops(self) -> Option<(DatagramSocketGetIpv6UnicastHopsResponder)> {
42091        if let DatagramSocketRequest::GetIpv6UnicastHops { responder } = self {
42092            Some((responder))
42093        } else {
42094            None
42095        }
42096    }
42097
42098    #[allow(irrefutable_let_patterns)]
42099    pub fn into_set_ipv6_receive_hop_limit(
42100        self,
42101    ) -> Option<(bool, DatagramSocketSetIpv6ReceiveHopLimitResponder)> {
42102        if let DatagramSocketRequest::SetIpv6ReceiveHopLimit { value, responder } = self {
42103            Some((value, responder))
42104        } else {
42105            None
42106        }
42107    }
42108
42109    #[allow(irrefutable_let_patterns)]
42110    pub fn into_get_ipv6_receive_hop_limit(
42111        self,
42112    ) -> Option<(DatagramSocketGetIpv6ReceiveHopLimitResponder)> {
42113        if let DatagramSocketRequest::GetIpv6ReceiveHopLimit { responder } = self {
42114            Some((responder))
42115        } else {
42116            None
42117        }
42118    }
42119
42120    #[allow(irrefutable_let_patterns)]
42121    pub fn into_set_ipv6_multicast_hops(
42122        self,
42123    ) -> Option<(OptionalUint8, DatagramSocketSetIpv6MulticastHopsResponder)> {
42124        if let DatagramSocketRequest::SetIpv6MulticastHops { value, responder } = self {
42125            Some((value, responder))
42126        } else {
42127            None
42128        }
42129    }
42130
42131    #[allow(irrefutable_let_patterns)]
42132    pub fn into_get_ipv6_multicast_hops(
42133        self,
42134    ) -> Option<(DatagramSocketGetIpv6MulticastHopsResponder)> {
42135        if let DatagramSocketRequest::GetIpv6MulticastHops { responder } = self {
42136            Some((responder))
42137        } else {
42138            None
42139        }
42140    }
42141
42142    #[allow(irrefutable_let_patterns)]
42143    pub fn into_set_ipv6_multicast_loopback(
42144        self,
42145    ) -> Option<(bool, DatagramSocketSetIpv6MulticastLoopbackResponder)> {
42146        if let DatagramSocketRequest::SetIpv6MulticastLoopback { value, responder } = self {
42147            Some((value, responder))
42148        } else {
42149            None
42150        }
42151    }
42152
42153    #[allow(irrefutable_let_patterns)]
42154    pub fn into_get_ipv6_multicast_loopback(
42155        self,
42156    ) -> Option<(DatagramSocketGetIpv6MulticastLoopbackResponder)> {
42157        if let DatagramSocketRequest::GetIpv6MulticastLoopback { responder } = self {
42158            Some((responder))
42159        } else {
42160            None
42161        }
42162    }
42163
42164    #[allow(irrefutable_let_patterns)]
42165    pub fn into_set_ipv6_only(self) -> Option<(bool, DatagramSocketSetIpv6OnlyResponder)> {
42166        if let DatagramSocketRequest::SetIpv6Only { value, responder } = self {
42167            Some((value, responder))
42168        } else {
42169            None
42170        }
42171    }
42172
42173    #[allow(irrefutable_let_patterns)]
42174    pub fn into_get_ipv6_only(self) -> Option<(DatagramSocketGetIpv6OnlyResponder)> {
42175        if let DatagramSocketRequest::GetIpv6Only { responder } = self {
42176            Some((responder))
42177        } else {
42178            None
42179        }
42180    }
42181
42182    #[allow(irrefutable_let_patterns)]
42183    pub fn into_set_ipv6_receive_traffic_class(
42184        self,
42185    ) -> Option<(bool, DatagramSocketSetIpv6ReceiveTrafficClassResponder)> {
42186        if let DatagramSocketRequest::SetIpv6ReceiveTrafficClass { value, responder } = self {
42187            Some((value, responder))
42188        } else {
42189            None
42190        }
42191    }
42192
42193    #[allow(irrefutable_let_patterns)]
42194    pub fn into_get_ipv6_receive_traffic_class(
42195        self,
42196    ) -> Option<(DatagramSocketGetIpv6ReceiveTrafficClassResponder)> {
42197        if let DatagramSocketRequest::GetIpv6ReceiveTrafficClass { responder } = self {
42198            Some((responder))
42199        } else {
42200            None
42201        }
42202    }
42203
42204    #[allow(irrefutable_let_patterns)]
42205    pub fn into_set_ipv6_traffic_class(
42206        self,
42207    ) -> Option<(OptionalUint8, DatagramSocketSetIpv6TrafficClassResponder)> {
42208        if let DatagramSocketRequest::SetIpv6TrafficClass { value, responder } = self {
42209            Some((value, responder))
42210        } else {
42211            None
42212        }
42213    }
42214
42215    #[allow(irrefutable_let_patterns)]
42216    pub fn into_get_ipv6_traffic_class(
42217        self,
42218    ) -> Option<(DatagramSocketGetIpv6TrafficClassResponder)> {
42219        if let DatagramSocketRequest::GetIpv6TrafficClass { responder } = self {
42220            Some((responder))
42221        } else {
42222            None
42223        }
42224    }
42225
42226    #[allow(irrefutable_let_patterns)]
42227    pub fn into_set_ipv6_receive_packet_info(
42228        self,
42229    ) -> Option<(bool, DatagramSocketSetIpv6ReceivePacketInfoResponder)> {
42230        if let DatagramSocketRequest::SetIpv6ReceivePacketInfo { value, responder } = self {
42231            Some((value, responder))
42232        } else {
42233            None
42234        }
42235    }
42236
42237    #[allow(irrefutable_let_patterns)]
42238    pub fn into_get_ipv6_receive_packet_info(
42239        self,
42240    ) -> Option<(DatagramSocketGetIpv6ReceivePacketInfoResponder)> {
42241        if let DatagramSocketRequest::GetIpv6ReceivePacketInfo { responder } = self {
42242            Some((responder))
42243        } else {
42244            None
42245        }
42246    }
42247
42248    #[allow(irrefutable_let_patterns)]
42249    pub fn into_get_original_destination(
42250        self,
42251    ) -> Option<(DatagramSocketGetOriginalDestinationResponder)> {
42252        if let DatagramSocketRequest::GetOriginalDestination { responder } = self {
42253            Some((responder))
42254        } else {
42255            None
42256        }
42257    }
42258
42259    #[allow(irrefutable_let_patterns)]
42260    pub fn into_get_info(self) -> Option<(DatagramSocketGetInfoResponder)> {
42261        if let DatagramSocketRequest::GetInfo { responder } = self {
42262            Some((responder))
42263        } else {
42264            None
42265        }
42266    }
42267
42268    #[allow(irrefutable_let_patterns)]
42269    pub fn into_describe(self) -> Option<(DatagramSocketDescribeResponder)> {
42270        if let DatagramSocketRequest::Describe { responder } = self {
42271            Some((responder))
42272        } else {
42273            None
42274        }
42275    }
42276
42277    #[allow(irrefutable_let_patterns)]
42278    pub fn into_send_msg_preflight(
42279        self,
42280    ) -> Option<(DatagramSocketSendMsgPreflightRequest, DatagramSocketSendMsgPreflightResponder)>
42281    {
42282        if let DatagramSocketRequest::SendMsgPreflight { payload, responder } = self {
42283            Some((payload, responder))
42284        } else {
42285            None
42286        }
42287    }
42288
42289    #[allow(irrefutable_let_patterns)]
42290    pub fn into_recv_msg_postflight(self) -> Option<(DatagramSocketRecvMsgPostflightResponder)> {
42291        if let DatagramSocketRequest::RecvMsgPostflight { responder } = self {
42292            Some((responder))
42293        } else {
42294            None
42295        }
42296    }
42297
42298    /// Name of the method defined in FIDL
42299    pub fn method_name(&self) -> &'static str {
42300        match *self {
42301            DatagramSocketRequest::Clone { .. } => "clone",
42302            DatagramSocketRequest::Close { .. } => "close",
42303            DatagramSocketRequest::Query { .. } => "query",
42304            DatagramSocketRequest::SetReuseAddress { .. } => "set_reuse_address",
42305            DatagramSocketRequest::GetReuseAddress { .. } => "get_reuse_address",
42306            DatagramSocketRequest::GetError { .. } => "get_error",
42307            DatagramSocketRequest::SetBroadcast { .. } => "set_broadcast",
42308            DatagramSocketRequest::GetBroadcast { .. } => "get_broadcast",
42309            DatagramSocketRequest::SetSendBuffer { .. } => "set_send_buffer",
42310            DatagramSocketRequest::GetSendBuffer { .. } => "get_send_buffer",
42311            DatagramSocketRequest::SetReceiveBuffer { .. } => "set_receive_buffer",
42312            DatagramSocketRequest::GetReceiveBuffer { .. } => "get_receive_buffer",
42313            DatagramSocketRequest::SetKeepAlive { .. } => "set_keep_alive",
42314            DatagramSocketRequest::GetKeepAlive { .. } => "get_keep_alive",
42315            DatagramSocketRequest::SetOutOfBandInline { .. } => "set_out_of_band_inline",
42316            DatagramSocketRequest::GetOutOfBandInline { .. } => "get_out_of_band_inline",
42317            DatagramSocketRequest::SetNoCheck { .. } => "set_no_check",
42318            DatagramSocketRequest::GetNoCheck { .. } => "get_no_check",
42319            DatagramSocketRequest::SetLinger { .. } => "set_linger",
42320            DatagramSocketRequest::GetLinger { .. } => "get_linger",
42321            DatagramSocketRequest::SetReusePort { .. } => "set_reuse_port",
42322            DatagramSocketRequest::SetReusePortDeprecated { .. } => "set_reuse_port_deprecated",
42323            DatagramSocketRequest::GetReusePort { .. } => "get_reuse_port",
42324            DatagramSocketRequest::GetAcceptConn { .. } => "get_accept_conn",
42325            DatagramSocketRequest::SetBindToDevice { .. } => "set_bind_to_device",
42326            DatagramSocketRequest::GetBindToDevice { .. } => "get_bind_to_device",
42327            DatagramSocketRequest::SetBindToInterfaceIndex { .. } => "set_bind_to_interface_index",
42328            DatagramSocketRequest::GetBindToInterfaceIndex { .. } => "get_bind_to_interface_index",
42329            DatagramSocketRequest::SetTimestamp { .. } => "set_timestamp",
42330            DatagramSocketRequest::GetTimestamp { .. } => "get_timestamp",
42331            DatagramSocketRequest::SetMark { .. } => "set_mark",
42332            DatagramSocketRequest::GetMark { .. } => "get_mark",
42333            DatagramSocketRequest::GetCookie { .. } => "get_cookie",
42334            DatagramSocketRequest::Bind { .. } => "bind",
42335            DatagramSocketRequest::Connect { .. } => "connect",
42336            DatagramSocketRequest::Disconnect { .. } => "disconnect",
42337            DatagramSocketRequest::GetSockName { .. } => "get_sock_name",
42338            DatagramSocketRequest::GetPeerName { .. } => "get_peer_name",
42339            DatagramSocketRequest::Shutdown { .. } => "shutdown",
42340            DatagramSocketRequest::SetIpTypeOfService { .. } => "set_ip_type_of_service",
42341            DatagramSocketRequest::GetIpTypeOfService { .. } => "get_ip_type_of_service",
42342            DatagramSocketRequest::SetIpTtl { .. } => "set_ip_ttl",
42343            DatagramSocketRequest::GetIpTtl { .. } => "get_ip_ttl",
42344            DatagramSocketRequest::SetIpPacketInfo { .. } => "set_ip_packet_info",
42345            DatagramSocketRequest::GetIpPacketInfo { .. } => "get_ip_packet_info",
42346            DatagramSocketRequest::SetIpReceiveTypeOfService { .. } => {
42347                "set_ip_receive_type_of_service"
42348            }
42349            DatagramSocketRequest::GetIpReceiveTypeOfService { .. } => {
42350                "get_ip_receive_type_of_service"
42351            }
42352            DatagramSocketRequest::SetIpReceiveTtl { .. } => "set_ip_receive_ttl",
42353            DatagramSocketRequest::GetIpReceiveTtl { .. } => "get_ip_receive_ttl",
42354            DatagramSocketRequest::SetIpMulticastInterface { .. } => "set_ip_multicast_interface",
42355            DatagramSocketRequest::GetIpMulticastInterface { .. } => "get_ip_multicast_interface",
42356            DatagramSocketRequest::SetIpMulticastTtl { .. } => "set_ip_multicast_ttl",
42357            DatagramSocketRequest::GetIpMulticastTtl { .. } => "get_ip_multicast_ttl",
42358            DatagramSocketRequest::SetIpMulticastLoopback { .. } => "set_ip_multicast_loopback",
42359            DatagramSocketRequest::GetIpMulticastLoopback { .. } => "get_ip_multicast_loopback",
42360            DatagramSocketRequest::AddIpMembership { .. } => "add_ip_membership",
42361            DatagramSocketRequest::DropIpMembership { .. } => "drop_ip_membership",
42362            DatagramSocketRequest::SetIpTransparent { .. } => "set_ip_transparent",
42363            DatagramSocketRequest::GetIpTransparent { .. } => "get_ip_transparent",
42364            DatagramSocketRequest::SetIpReceiveOriginalDestinationAddress { .. } => {
42365                "set_ip_receive_original_destination_address"
42366            }
42367            DatagramSocketRequest::GetIpReceiveOriginalDestinationAddress { .. } => {
42368                "get_ip_receive_original_destination_address"
42369            }
42370            DatagramSocketRequest::AddIpv6Membership { .. } => "add_ipv6_membership",
42371            DatagramSocketRequest::DropIpv6Membership { .. } => "drop_ipv6_membership",
42372            DatagramSocketRequest::SetIpv6MulticastInterface { .. } => {
42373                "set_ipv6_multicast_interface"
42374            }
42375            DatagramSocketRequest::GetIpv6MulticastInterface { .. } => {
42376                "get_ipv6_multicast_interface"
42377            }
42378            DatagramSocketRequest::SetIpv6UnicastHops { .. } => "set_ipv6_unicast_hops",
42379            DatagramSocketRequest::GetIpv6UnicastHops { .. } => "get_ipv6_unicast_hops",
42380            DatagramSocketRequest::SetIpv6ReceiveHopLimit { .. } => "set_ipv6_receive_hop_limit",
42381            DatagramSocketRequest::GetIpv6ReceiveHopLimit { .. } => "get_ipv6_receive_hop_limit",
42382            DatagramSocketRequest::SetIpv6MulticastHops { .. } => "set_ipv6_multicast_hops",
42383            DatagramSocketRequest::GetIpv6MulticastHops { .. } => "get_ipv6_multicast_hops",
42384            DatagramSocketRequest::SetIpv6MulticastLoopback { .. } => "set_ipv6_multicast_loopback",
42385            DatagramSocketRequest::GetIpv6MulticastLoopback { .. } => "get_ipv6_multicast_loopback",
42386            DatagramSocketRequest::SetIpv6Only { .. } => "set_ipv6_only",
42387            DatagramSocketRequest::GetIpv6Only { .. } => "get_ipv6_only",
42388            DatagramSocketRequest::SetIpv6ReceiveTrafficClass { .. } => {
42389                "set_ipv6_receive_traffic_class"
42390            }
42391            DatagramSocketRequest::GetIpv6ReceiveTrafficClass { .. } => {
42392                "get_ipv6_receive_traffic_class"
42393            }
42394            DatagramSocketRequest::SetIpv6TrafficClass { .. } => "set_ipv6_traffic_class",
42395            DatagramSocketRequest::GetIpv6TrafficClass { .. } => "get_ipv6_traffic_class",
42396            DatagramSocketRequest::SetIpv6ReceivePacketInfo { .. } => {
42397                "set_ipv6_receive_packet_info"
42398            }
42399            DatagramSocketRequest::GetIpv6ReceivePacketInfo { .. } => {
42400                "get_ipv6_receive_packet_info"
42401            }
42402            DatagramSocketRequest::GetOriginalDestination { .. } => "get_original_destination",
42403            DatagramSocketRequest::GetInfo { .. } => "get_info",
42404            DatagramSocketRequest::Describe { .. } => "describe",
42405            DatagramSocketRequest::SendMsgPreflight { .. } => "send_msg_preflight",
42406            DatagramSocketRequest::RecvMsgPostflight { .. } => "recv_msg_postflight",
42407        }
42408    }
42409}
42410
42411#[derive(Debug, Clone)]
42412pub struct DatagramSocketControlHandle {
42413    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
42414}
42415
42416impl fidl::endpoints::ControlHandle for DatagramSocketControlHandle {
42417    fn shutdown(&self) {
42418        self.inner.shutdown()
42419    }
42420
42421    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
42422        self.inner.shutdown_with_epitaph(status)
42423    }
42424
42425    fn is_closed(&self) -> bool {
42426        self.inner.channel().is_closed()
42427    }
42428    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
42429        self.inner.channel().on_closed()
42430    }
42431
42432    #[cfg(target_os = "fuchsia")]
42433    fn signal_peer(
42434        &self,
42435        clear_mask: zx::Signals,
42436        set_mask: zx::Signals,
42437    ) -> Result<(), zx_status::Status> {
42438        use fidl::Peered;
42439        self.inner.channel().signal_peer(clear_mask, set_mask)
42440    }
42441}
42442
42443impl DatagramSocketControlHandle {}
42444
42445#[must_use = "FIDL methods require a response to be sent"]
42446#[derive(Debug)]
42447pub struct DatagramSocketCloseResponder {
42448    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42449    tx_id: u32,
42450}
42451
42452/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42453/// if the responder is dropped without sending a response, so that the client
42454/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42455impl std::ops::Drop for DatagramSocketCloseResponder {
42456    fn drop(&mut self) {
42457        self.control_handle.shutdown();
42458        // Safety: drops once, never accessed again
42459        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42460    }
42461}
42462
42463impl fidl::endpoints::Responder for DatagramSocketCloseResponder {
42464    type ControlHandle = DatagramSocketControlHandle;
42465
42466    fn control_handle(&self) -> &DatagramSocketControlHandle {
42467        &self.control_handle
42468    }
42469
42470    fn drop_without_shutdown(mut self) {
42471        // Safety: drops once, never accessed again due to mem::forget
42472        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42473        // Prevent Drop from running (which would shut down the channel)
42474        std::mem::forget(self);
42475    }
42476}
42477
42478impl DatagramSocketCloseResponder {
42479    /// Sends a response to the FIDL transaction.
42480    ///
42481    /// Sets the channel to shutdown if an error occurs.
42482    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
42483        let _result = self.send_raw(result);
42484        if _result.is_err() {
42485            self.control_handle.shutdown();
42486        }
42487        self.drop_without_shutdown();
42488        _result
42489    }
42490
42491    /// Similar to "send" but does not shutdown the channel if an error occurs.
42492    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
42493        let _result = self.send_raw(result);
42494        self.drop_without_shutdown();
42495        _result
42496    }
42497
42498    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
42499        self.control_handle
42500            .inner
42501            .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>>(
42502                result,
42503                self.tx_id,
42504                0x5ac5d459ad7f657e,
42505                fidl::encoding::DynamicFlags::empty(),
42506            )
42507    }
42508}
42509
42510#[must_use = "FIDL methods require a response to be sent"]
42511#[derive(Debug)]
42512pub struct DatagramSocketQueryResponder {
42513    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42514    tx_id: u32,
42515}
42516
42517/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42518/// if the responder is dropped without sending a response, so that the client
42519/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42520impl std::ops::Drop for DatagramSocketQueryResponder {
42521    fn drop(&mut self) {
42522        self.control_handle.shutdown();
42523        // Safety: drops once, never accessed again
42524        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42525    }
42526}
42527
42528impl fidl::endpoints::Responder for DatagramSocketQueryResponder {
42529    type ControlHandle = DatagramSocketControlHandle;
42530
42531    fn control_handle(&self) -> &DatagramSocketControlHandle {
42532        &self.control_handle
42533    }
42534
42535    fn drop_without_shutdown(mut self) {
42536        // Safety: drops once, never accessed again due to mem::forget
42537        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42538        // Prevent Drop from running (which would shut down the channel)
42539        std::mem::forget(self);
42540    }
42541}
42542
42543impl DatagramSocketQueryResponder {
42544    /// Sends a response to the FIDL transaction.
42545    ///
42546    /// Sets the channel to shutdown if an error occurs.
42547    pub fn send(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
42548        let _result = self.send_raw(protocol);
42549        if _result.is_err() {
42550            self.control_handle.shutdown();
42551        }
42552        self.drop_without_shutdown();
42553        _result
42554    }
42555
42556    /// Similar to "send" but does not shutdown the channel if an error occurs.
42557    pub fn send_no_shutdown_on_err(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
42558        let _result = self.send_raw(protocol);
42559        self.drop_without_shutdown();
42560        _result
42561    }
42562
42563    fn send_raw(&self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
42564        self.control_handle.inner.send::<fidl_fuchsia_unknown::QueryableQueryResponse>(
42565            (protocol,),
42566            self.tx_id,
42567            0x2658edee9decfc06,
42568            fidl::encoding::DynamicFlags::empty(),
42569        )
42570    }
42571}
42572
42573#[must_use = "FIDL methods require a response to be sent"]
42574#[derive(Debug)]
42575pub struct DatagramSocketSetReuseAddressResponder {
42576    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42577    tx_id: u32,
42578}
42579
42580/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42581/// if the responder is dropped without sending a response, so that the client
42582/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42583impl std::ops::Drop for DatagramSocketSetReuseAddressResponder {
42584    fn drop(&mut self) {
42585        self.control_handle.shutdown();
42586        // Safety: drops once, never accessed again
42587        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42588    }
42589}
42590
42591impl fidl::endpoints::Responder for DatagramSocketSetReuseAddressResponder {
42592    type ControlHandle = DatagramSocketControlHandle;
42593
42594    fn control_handle(&self) -> &DatagramSocketControlHandle {
42595        &self.control_handle
42596    }
42597
42598    fn drop_without_shutdown(mut self) {
42599        // Safety: drops once, never accessed again due to mem::forget
42600        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42601        // Prevent Drop from running (which would shut down the channel)
42602        std::mem::forget(self);
42603    }
42604}
42605
42606impl DatagramSocketSetReuseAddressResponder {
42607    /// Sends a response to the FIDL transaction.
42608    ///
42609    /// Sets the channel to shutdown if an error occurs.
42610    pub fn send(
42611        self,
42612        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42613    ) -> Result<(), fidl::Error> {
42614        let _result = self.send_raw(result);
42615        if _result.is_err() {
42616            self.control_handle.shutdown();
42617        }
42618        self.drop_without_shutdown();
42619        _result
42620    }
42621
42622    /// Similar to "send" but does not shutdown the channel if an error occurs.
42623    pub fn send_no_shutdown_on_err(
42624        self,
42625        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42626    ) -> Result<(), fidl::Error> {
42627        let _result = self.send_raw(result);
42628        self.drop_without_shutdown();
42629        _result
42630    }
42631
42632    fn send_raw(
42633        &self,
42634        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42635    ) -> Result<(), fidl::Error> {
42636        self.control_handle.inner.send::<fidl::encoding::ResultType<
42637            fidl::encoding::EmptyStruct,
42638            fidl_fuchsia_posix::Errno,
42639        >>(
42640            result,
42641            self.tx_id,
42642            0x1fd74ee8b9a4a876,
42643            fidl::encoding::DynamicFlags::empty(),
42644        )
42645    }
42646}
42647
42648#[must_use = "FIDL methods require a response to be sent"]
42649#[derive(Debug)]
42650pub struct DatagramSocketGetReuseAddressResponder {
42651    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42652    tx_id: u32,
42653}
42654
42655/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42656/// if the responder is dropped without sending a response, so that the client
42657/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42658impl std::ops::Drop for DatagramSocketGetReuseAddressResponder {
42659    fn drop(&mut self) {
42660        self.control_handle.shutdown();
42661        // Safety: drops once, never accessed again
42662        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42663    }
42664}
42665
42666impl fidl::endpoints::Responder for DatagramSocketGetReuseAddressResponder {
42667    type ControlHandle = DatagramSocketControlHandle;
42668
42669    fn control_handle(&self) -> &DatagramSocketControlHandle {
42670        &self.control_handle
42671    }
42672
42673    fn drop_without_shutdown(mut self) {
42674        // Safety: drops once, never accessed again due to mem::forget
42675        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42676        // Prevent Drop from running (which would shut down the channel)
42677        std::mem::forget(self);
42678    }
42679}
42680
42681impl DatagramSocketGetReuseAddressResponder {
42682    /// Sends a response to the FIDL transaction.
42683    ///
42684    /// Sets the channel to shutdown if an error occurs.
42685    pub fn send(
42686        self,
42687        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
42688    ) -> Result<(), fidl::Error> {
42689        let _result = self.send_raw(result);
42690        if _result.is_err() {
42691            self.control_handle.shutdown();
42692        }
42693        self.drop_without_shutdown();
42694        _result
42695    }
42696
42697    /// Similar to "send" but does not shutdown the channel if an error occurs.
42698    pub fn send_no_shutdown_on_err(
42699        self,
42700        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
42701    ) -> Result<(), fidl::Error> {
42702        let _result = self.send_raw(result);
42703        self.drop_without_shutdown();
42704        _result
42705    }
42706
42707    fn send_raw(
42708        &self,
42709        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
42710    ) -> Result<(), fidl::Error> {
42711        self.control_handle.inner.send::<fidl::encoding::ResultType<
42712            BaseSocketGetReuseAddressResponse,
42713            fidl_fuchsia_posix::Errno,
42714        >>(
42715            result.map(|value| (value,)),
42716            self.tx_id,
42717            0x67b7206b8d1bc0a5,
42718            fidl::encoding::DynamicFlags::empty(),
42719        )
42720    }
42721}
42722
42723#[must_use = "FIDL methods require a response to be sent"]
42724#[derive(Debug)]
42725pub struct DatagramSocketGetErrorResponder {
42726    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42727    tx_id: u32,
42728}
42729
42730/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42731/// if the responder is dropped without sending a response, so that the client
42732/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42733impl std::ops::Drop for DatagramSocketGetErrorResponder {
42734    fn drop(&mut self) {
42735        self.control_handle.shutdown();
42736        // Safety: drops once, never accessed again
42737        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42738    }
42739}
42740
42741impl fidl::endpoints::Responder for DatagramSocketGetErrorResponder {
42742    type ControlHandle = DatagramSocketControlHandle;
42743
42744    fn control_handle(&self) -> &DatagramSocketControlHandle {
42745        &self.control_handle
42746    }
42747
42748    fn drop_without_shutdown(mut self) {
42749        // Safety: drops once, never accessed again due to mem::forget
42750        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42751        // Prevent Drop from running (which would shut down the channel)
42752        std::mem::forget(self);
42753    }
42754}
42755
42756impl DatagramSocketGetErrorResponder {
42757    /// Sends a response to the FIDL transaction.
42758    ///
42759    /// Sets the channel to shutdown if an error occurs.
42760    pub fn send(
42761        self,
42762        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42763    ) -> Result<(), fidl::Error> {
42764        let _result = self.send_raw(result);
42765        if _result.is_err() {
42766            self.control_handle.shutdown();
42767        }
42768        self.drop_without_shutdown();
42769        _result
42770    }
42771
42772    /// Similar to "send" but does not shutdown the channel if an error occurs.
42773    pub fn send_no_shutdown_on_err(
42774        self,
42775        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42776    ) -> Result<(), fidl::Error> {
42777        let _result = self.send_raw(result);
42778        self.drop_without_shutdown();
42779        _result
42780    }
42781
42782    fn send_raw(
42783        &self,
42784        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42785    ) -> Result<(), fidl::Error> {
42786        self.control_handle.inner.send::<fidl::encoding::ResultType<
42787            fidl::encoding::EmptyStruct,
42788            fidl_fuchsia_posix::Errno,
42789        >>(
42790            result,
42791            self.tx_id,
42792            0x5aad39b33e5f6ebb,
42793            fidl::encoding::DynamicFlags::empty(),
42794        )
42795    }
42796}
42797
42798#[must_use = "FIDL methods require a response to be sent"]
42799#[derive(Debug)]
42800pub struct DatagramSocketSetBroadcastResponder {
42801    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42802    tx_id: u32,
42803}
42804
42805/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42806/// if the responder is dropped without sending a response, so that the client
42807/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42808impl std::ops::Drop for DatagramSocketSetBroadcastResponder {
42809    fn drop(&mut self) {
42810        self.control_handle.shutdown();
42811        // Safety: drops once, never accessed again
42812        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42813    }
42814}
42815
42816impl fidl::endpoints::Responder for DatagramSocketSetBroadcastResponder {
42817    type ControlHandle = DatagramSocketControlHandle;
42818
42819    fn control_handle(&self) -> &DatagramSocketControlHandle {
42820        &self.control_handle
42821    }
42822
42823    fn drop_without_shutdown(mut self) {
42824        // Safety: drops once, never accessed again due to mem::forget
42825        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42826        // Prevent Drop from running (which would shut down the channel)
42827        std::mem::forget(self);
42828    }
42829}
42830
42831impl DatagramSocketSetBroadcastResponder {
42832    /// Sends a response to the FIDL transaction.
42833    ///
42834    /// Sets the channel to shutdown if an error occurs.
42835    pub fn send(
42836        self,
42837        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42838    ) -> Result<(), fidl::Error> {
42839        let _result = self.send_raw(result);
42840        if _result.is_err() {
42841            self.control_handle.shutdown();
42842        }
42843        self.drop_without_shutdown();
42844        _result
42845    }
42846
42847    /// Similar to "send" but does not shutdown the channel if an error occurs.
42848    pub fn send_no_shutdown_on_err(
42849        self,
42850        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42851    ) -> Result<(), fidl::Error> {
42852        let _result = self.send_raw(result);
42853        self.drop_without_shutdown();
42854        _result
42855    }
42856
42857    fn send_raw(
42858        &self,
42859        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42860    ) -> Result<(), fidl::Error> {
42861        self.control_handle.inner.send::<fidl::encoding::ResultType<
42862            fidl::encoding::EmptyStruct,
42863            fidl_fuchsia_posix::Errno,
42864        >>(
42865            result,
42866            self.tx_id,
42867            0x6023e081ce3cd947,
42868            fidl::encoding::DynamicFlags::empty(),
42869        )
42870    }
42871}
42872
42873#[must_use = "FIDL methods require a response to be sent"]
42874#[derive(Debug)]
42875pub struct DatagramSocketGetBroadcastResponder {
42876    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42877    tx_id: u32,
42878}
42879
42880/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42881/// if the responder is dropped without sending a response, so that the client
42882/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42883impl std::ops::Drop for DatagramSocketGetBroadcastResponder {
42884    fn drop(&mut self) {
42885        self.control_handle.shutdown();
42886        // Safety: drops once, never accessed again
42887        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42888    }
42889}
42890
42891impl fidl::endpoints::Responder for DatagramSocketGetBroadcastResponder {
42892    type ControlHandle = DatagramSocketControlHandle;
42893
42894    fn control_handle(&self) -> &DatagramSocketControlHandle {
42895        &self.control_handle
42896    }
42897
42898    fn drop_without_shutdown(mut self) {
42899        // Safety: drops once, never accessed again due to mem::forget
42900        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42901        // Prevent Drop from running (which would shut down the channel)
42902        std::mem::forget(self);
42903    }
42904}
42905
42906impl DatagramSocketGetBroadcastResponder {
42907    /// Sends a response to the FIDL transaction.
42908    ///
42909    /// Sets the channel to shutdown if an error occurs.
42910    pub fn send(
42911        self,
42912        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
42913    ) -> Result<(), fidl::Error> {
42914        let _result = self.send_raw(result);
42915        if _result.is_err() {
42916            self.control_handle.shutdown();
42917        }
42918        self.drop_without_shutdown();
42919        _result
42920    }
42921
42922    /// Similar to "send" but does not shutdown the channel if an error occurs.
42923    pub fn send_no_shutdown_on_err(
42924        self,
42925        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
42926    ) -> Result<(), fidl::Error> {
42927        let _result = self.send_raw(result);
42928        self.drop_without_shutdown();
42929        _result
42930    }
42931
42932    fn send_raw(
42933        &self,
42934        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
42935    ) -> Result<(), fidl::Error> {
42936        self.control_handle.inner.send::<fidl::encoding::ResultType<
42937            BaseSocketGetBroadcastResponse,
42938            fidl_fuchsia_posix::Errno,
42939        >>(
42940            result.map(|value| (value,)),
42941            self.tx_id,
42942            0x68796fc556f9780d,
42943            fidl::encoding::DynamicFlags::empty(),
42944        )
42945    }
42946}
42947
42948#[must_use = "FIDL methods require a response to be sent"]
42949#[derive(Debug)]
42950pub struct DatagramSocketSetSendBufferResponder {
42951    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42952    tx_id: u32,
42953}
42954
42955/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42956/// if the responder is dropped without sending a response, so that the client
42957/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42958impl std::ops::Drop for DatagramSocketSetSendBufferResponder {
42959    fn drop(&mut self) {
42960        self.control_handle.shutdown();
42961        // Safety: drops once, never accessed again
42962        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42963    }
42964}
42965
42966impl fidl::endpoints::Responder for DatagramSocketSetSendBufferResponder {
42967    type ControlHandle = DatagramSocketControlHandle;
42968
42969    fn control_handle(&self) -> &DatagramSocketControlHandle {
42970        &self.control_handle
42971    }
42972
42973    fn drop_without_shutdown(mut self) {
42974        // Safety: drops once, never accessed again due to mem::forget
42975        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42976        // Prevent Drop from running (which would shut down the channel)
42977        std::mem::forget(self);
42978    }
42979}
42980
42981impl DatagramSocketSetSendBufferResponder {
42982    /// Sends a response to the FIDL transaction.
42983    ///
42984    /// Sets the channel to shutdown if an error occurs.
42985    pub fn send(
42986        self,
42987        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42988    ) -> Result<(), fidl::Error> {
42989        let _result = self.send_raw(result);
42990        if _result.is_err() {
42991            self.control_handle.shutdown();
42992        }
42993        self.drop_without_shutdown();
42994        _result
42995    }
42996
42997    /// Similar to "send" but does not shutdown the channel if an error occurs.
42998    pub fn send_no_shutdown_on_err(
42999        self,
43000        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43001    ) -> Result<(), fidl::Error> {
43002        let _result = self.send_raw(result);
43003        self.drop_without_shutdown();
43004        _result
43005    }
43006
43007    fn send_raw(
43008        &self,
43009        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43010    ) -> Result<(), fidl::Error> {
43011        self.control_handle.inner.send::<fidl::encoding::ResultType<
43012            fidl::encoding::EmptyStruct,
43013            fidl_fuchsia_posix::Errno,
43014        >>(
43015            result,
43016            self.tx_id,
43017            0x756eac32d73a7a70,
43018            fidl::encoding::DynamicFlags::empty(),
43019        )
43020    }
43021}
43022
43023#[must_use = "FIDL methods require a response to be sent"]
43024#[derive(Debug)]
43025pub struct DatagramSocketGetSendBufferResponder {
43026    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43027    tx_id: u32,
43028}
43029
43030/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43031/// if the responder is dropped without sending a response, so that the client
43032/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43033impl std::ops::Drop for DatagramSocketGetSendBufferResponder {
43034    fn drop(&mut self) {
43035        self.control_handle.shutdown();
43036        // Safety: drops once, never accessed again
43037        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43038    }
43039}
43040
43041impl fidl::endpoints::Responder for DatagramSocketGetSendBufferResponder {
43042    type ControlHandle = DatagramSocketControlHandle;
43043
43044    fn control_handle(&self) -> &DatagramSocketControlHandle {
43045        &self.control_handle
43046    }
43047
43048    fn drop_without_shutdown(mut self) {
43049        // Safety: drops once, never accessed again due to mem::forget
43050        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43051        // Prevent Drop from running (which would shut down the channel)
43052        std::mem::forget(self);
43053    }
43054}
43055
43056impl DatagramSocketGetSendBufferResponder {
43057    /// Sends a response to the FIDL transaction.
43058    ///
43059    /// Sets the channel to shutdown if an error occurs.
43060    pub fn send(
43061        self,
43062        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
43063    ) -> Result<(), fidl::Error> {
43064        let _result = self.send_raw(result);
43065        if _result.is_err() {
43066            self.control_handle.shutdown();
43067        }
43068        self.drop_without_shutdown();
43069        _result
43070    }
43071
43072    /// Similar to "send" but does not shutdown the channel if an error occurs.
43073    pub fn send_no_shutdown_on_err(
43074        self,
43075        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
43076    ) -> Result<(), fidl::Error> {
43077        let _result = self.send_raw(result);
43078        self.drop_without_shutdown();
43079        _result
43080    }
43081
43082    fn send_raw(
43083        &self,
43084        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
43085    ) -> Result<(), fidl::Error> {
43086        self.control_handle.inner.send::<fidl::encoding::ResultType<
43087            BaseSocketGetSendBufferResponse,
43088            fidl_fuchsia_posix::Errno,
43089        >>(
43090            result.map(|value_bytes| (value_bytes,)),
43091            self.tx_id,
43092            0x78a52fd9c7b2410b,
43093            fidl::encoding::DynamicFlags::empty(),
43094        )
43095    }
43096}
43097
43098#[must_use = "FIDL methods require a response to be sent"]
43099#[derive(Debug)]
43100pub struct DatagramSocketSetReceiveBufferResponder {
43101    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43102    tx_id: u32,
43103}
43104
43105/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43106/// if the responder is dropped without sending a response, so that the client
43107/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43108impl std::ops::Drop for DatagramSocketSetReceiveBufferResponder {
43109    fn drop(&mut self) {
43110        self.control_handle.shutdown();
43111        // Safety: drops once, never accessed again
43112        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43113    }
43114}
43115
43116impl fidl::endpoints::Responder for DatagramSocketSetReceiveBufferResponder {
43117    type ControlHandle = DatagramSocketControlHandle;
43118
43119    fn control_handle(&self) -> &DatagramSocketControlHandle {
43120        &self.control_handle
43121    }
43122
43123    fn drop_without_shutdown(mut self) {
43124        // Safety: drops once, never accessed again due to mem::forget
43125        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43126        // Prevent Drop from running (which would shut down the channel)
43127        std::mem::forget(self);
43128    }
43129}
43130
43131impl DatagramSocketSetReceiveBufferResponder {
43132    /// Sends a response to the FIDL transaction.
43133    ///
43134    /// Sets the channel to shutdown if an error occurs.
43135    pub fn send(
43136        self,
43137        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43138    ) -> Result<(), fidl::Error> {
43139        let _result = self.send_raw(result);
43140        if _result.is_err() {
43141            self.control_handle.shutdown();
43142        }
43143        self.drop_without_shutdown();
43144        _result
43145    }
43146
43147    /// Similar to "send" but does not shutdown the channel if an error occurs.
43148    pub fn send_no_shutdown_on_err(
43149        self,
43150        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43151    ) -> Result<(), fidl::Error> {
43152        let _result = self.send_raw(result);
43153        self.drop_without_shutdown();
43154        _result
43155    }
43156
43157    fn send_raw(
43158        &self,
43159        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43160    ) -> Result<(), fidl::Error> {
43161        self.control_handle.inner.send::<fidl::encoding::ResultType<
43162            fidl::encoding::EmptyStruct,
43163            fidl_fuchsia_posix::Errno,
43164        >>(
43165            result,
43166            self.tx_id,
43167            0x6b0cf2f1919c7001,
43168            fidl::encoding::DynamicFlags::empty(),
43169        )
43170    }
43171}
43172
43173#[must_use = "FIDL methods require a response to be sent"]
43174#[derive(Debug)]
43175pub struct DatagramSocketGetReceiveBufferResponder {
43176    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43177    tx_id: u32,
43178}
43179
43180/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43181/// if the responder is dropped without sending a response, so that the client
43182/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43183impl std::ops::Drop for DatagramSocketGetReceiveBufferResponder {
43184    fn drop(&mut self) {
43185        self.control_handle.shutdown();
43186        // Safety: drops once, never accessed again
43187        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43188    }
43189}
43190
43191impl fidl::endpoints::Responder for DatagramSocketGetReceiveBufferResponder {
43192    type ControlHandle = DatagramSocketControlHandle;
43193
43194    fn control_handle(&self) -> &DatagramSocketControlHandle {
43195        &self.control_handle
43196    }
43197
43198    fn drop_without_shutdown(mut self) {
43199        // Safety: drops once, never accessed again due to mem::forget
43200        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43201        // Prevent Drop from running (which would shut down the channel)
43202        std::mem::forget(self);
43203    }
43204}
43205
43206impl DatagramSocketGetReceiveBufferResponder {
43207    /// Sends a response to the FIDL transaction.
43208    ///
43209    /// Sets the channel to shutdown if an error occurs.
43210    pub fn send(
43211        self,
43212        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
43213    ) -> Result<(), fidl::Error> {
43214        let _result = self.send_raw(result);
43215        if _result.is_err() {
43216            self.control_handle.shutdown();
43217        }
43218        self.drop_without_shutdown();
43219        _result
43220    }
43221
43222    /// Similar to "send" but does not shutdown the channel if an error occurs.
43223    pub fn send_no_shutdown_on_err(
43224        self,
43225        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
43226    ) -> Result<(), fidl::Error> {
43227        let _result = self.send_raw(result);
43228        self.drop_without_shutdown();
43229        _result
43230    }
43231
43232    fn send_raw(
43233        &self,
43234        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
43235    ) -> Result<(), fidl::Error> {
43236        self.control_handle.inner.send::<fidl::encoding::ResultType<
43237            BaseSocketGetReceiveBufferResponse,
43238            fidl_fuchsia_posix::Errno,
43239        >>(
43240            result.map(|value_bytes| (value_bytes,)),
43241            self.tx_id,
43242            0x14c1a4b64f709e5c,
43243            fidl::encoding::DynamicFlags::empty(),
43244        )
43245    }
43246}
43247
43248#[must_use = "FIDL methods require a response to be sent"]
43249#[derive(Debug)]
43250pub struct DatagramSocketSetKeepAliveResponder {
43251    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43252    tx_id: u32,
43253}
43254
43255/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43256/// if the responder is dropped without sending a response, so that the client
43257/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43258impl std::ops::Drop for DatagramSocketSetKeepAliveResponder {
43259    fn drop(&mut self) {
43260        self.control_handle.shutdown();
43261        // Safety: drops once, never accessed again
43262        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43263    }
43264}
43265
43266impl fidl::endpoints::Responder for DatagramSocketSetKeepAliveResponder {
43267    type ControlHandle = DatagramSocketControlHandle;
43268
43269    fn control_handle(&self) -> &DatagramSocketControlHandle {
43270        &self.control_handle
43271    }
43272
43273    fn drop_without_shutdown(mut self) {
43274        // Safety: drops once, never accessed again due to mem::forget
43275        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43276        // Prevent Drop from running (which would shut down the channel)
43277        std::mem::forget(self);
43278    }
43279}
43280
43281impl DatagramSocketSetKeepAliveResponder {
43282    /// Sends a response to the FIDL transaction.
43283    ///
43284    /// Sets the channel to shutdown if an error occurs.
43285    pub fn send(
43286        self,
43287        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43288    ) -> Result<(), fidl::Error> {
43289        let _result = self.send_raw(result);
43290        if _result.is_err() {
43291            self.control_handle.shutdown();
43292        }
43293        self.drop_without_shutdown();
43294        _result
43295    }
43296
43297    /// Similar to "send" but does not shutdown the channel if an error occurs.
43298    pub fn send_no_shutdown_on_err(
43299        self,
43300        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43301    ) -> Result<(), fidl::Error> {
43302        let _result = self.send_raw(result);
43303        self.drop_without_shutdown();
43304        _result
43305    }
43306
43307    fn send_raw(
43308        &self,
43309        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43310    ) -> Result<(), fidl::Error> {
43311        self.control_handle.inner.send::<fidl::encoding::ResultType<
43312            fidl::encoding::EmptyStruct,
43313            fidl_fuchsia_posix::Errno,
43314        >>(
43315            result,
43316            self.tx_id,
43317            0x572df8f0b920d2c7,
43318            fidl::encoding::DynamicFlags::empty(),
43319        )
43320    }
43321}
43322
43323#[must_use = "FIDL methods require a response to be sent"]
43324#[derive(Debug)]
43325pub struct DatagramSocketGetKeepAliveResponder {
43326    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43327    tx_id: u32,
43328}
43329
43330/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43331/// if the responder is dropped without sending a response, so that the client
43332/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43333impl std::ops::Drop for DatagramSocketGetKeepAliveResponder {
43334    fn drop(&mut self) {
43335        self.control_handle.shutdown();
43336        // Safety: drops once, never accessed again
43337        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43338    }
43339}
43340
43341impl fidl::endpoints::Responder for DatagramSocketGetKeepAliveResponder {
43342    type ControlHandle = DatagramSocketControlHandle;
43343
43344    fn control_handle(&self) -> &DatagramSocketControlHandle {
43345        &self.control_handle
43346    }
43347
43348    fn drop_without_shutdown(mut self) {
43349        // Safety: drops once, never accessed again due to mem::forget
43350        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43351        // Prevent Drop from running (which would shut down the channel)
43352        std::mem::forget(self);
43353    }
43354}
43355
43356impl DatagramSocketGetKeepAliveResponder {
43357    /// Sends a response to the FIDL transaction.
43358    ///
43359    /// Sets the channel to shutdown if an error occurs.
43360    pub fn send(
43361        self,
43362        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
43363    ) -> Result<(), fidl::Error> {
43364        let _result = self.send_raw(result);
43365        if _result.is_err() {
43366            self.control_handle.shutdown();
43367        }
43368        self.drop_without_shutdown();
43369        _result
43370    }
43371
43372    /// Similar to "send" but does not shutdown the channel if an error occurs.
43373    pub fn send_no_shutdown_on_err(
43374        self,
43375        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
43376    ) -> Result<(), fidl::Error> {
43377        let _result = self.send_raw(result);
43378        self.drop_without_shutdown();
43379        _result
43380    }
43381
43382    fn send_raw(
43383        &self,
43384        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
43385    ) -> Result<(), fidl::Error> {
43386        self.control_handle.inner.send::<fidl::encoding::ResultType<
43387            BaseSocketGetKeepAliveResponse,
43388            fidl_fuchsia_posix::Errno,
43389        >>(
43390            result.map(|value| (value,)),
43391            self.tx_id,
43392            0x2dd29d3215f2c9d2,
43393            fidl::encoding::DynamicFlags::empty(),
43394        )
43395    }
43396}
43397
43398#[must_use = "FIDL methods require a response to be sent"]
43399#[derive(Debug)]
43400pub struct DatagramSocketSetOutOfBandInlineResponder {
43401    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43402    tx_id: u32,
43403}
43404
43405/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43406/// if the responder is dropped without sending a response, so that the client
43407/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43408impl std::ops::Drop for DatagramSocketSetOutOfBandInlineResponder {
43409    fn drop(&mut self) {
43410        self.control_handle.shutdown();
43411        // Safety: drops once, never accessed again
43412        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43413    }
43414}
43415
43416impl fidl::endpoints::Responder for DatagramSocketSetOutOfBandInlineResponder {
43417    type ControlHandle = DatagramSocketControlHandle;
43418
43419    fn control_handle(&self) -> &DatagramSocketControlHandle {
43420        &self.control_handle
43421    }
43422
43423    fn drop_without_shutdown(mut self) {
43424        // Safety: drops once, never accessed again due to mem::forget
43425        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43426        // Prevent Drop from running (which would shut down the channel)
43427        std::mem::forget(self);
43428    }
43429}
43430
43431impl DatagramSocketSetOutOfBandInlineResponder {
43432    /// Sends a response to the FIDL transaction.
43433    ///
43434    /// Sets the channel to shutdown if an error occurs.
43435    pub fn send(
43436        self,
43437        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43438    ) -> Result<(), fidl::Error> {
43439        let _result = self.send_raw(result);
43440        if _result.is_err() {
43441            self.control_handle.shutdown();
43442        }
43443        self.drop_without_shutdown();
43444        _result
43445    }
43446
43447    /// Similar to "send" but does not shutdown the channel if an error occurs.
43448    pub fn send_no_shutdown_on_err(
43449        self,
43450        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43451    ) -> Result<(), fidl::Error> {
43452        let _result = self.send_raw(result);
43453        self.drop_without_shutdown();
43454        _result
43455    }
43456
43457    fn send_raw(
43458        &self,
43459        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43460    ) -> Result<(), fidl::Error> {
43461        self.control_handle.inner.send::<fidl::encoding::ResultType<
43462            fidl::encoding::EmptyStruct,
43463            fidl_fuchsia_posix::Errno,
43464        >>(
43465            result,
43466            self.tx_id,
43467            0x3ecb49968bee439,
43468            fidl::encoding::DynamicFlags::empty(),
43469        )
43470    }
43471}
43472
43473#[must_use = "FIDL methods require a response to be sent"]
43474#[derive(Debug)]
43475pub struct DatagramSocketGetOutOfBandInlineResponder {
43476    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43477    tx_id: u32,
43478}
43479
43480/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43481/// if the responder is dropped without sending a response, so that the client
43482/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43483impl std::ops::Drop for DatagramSocketGetOutOfBandInlineResponder {
43484    fn drop(&mut self) {
43485        self.control_handle.shutdown();
43486        // Safety: drops once, never accessed again
43487        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43488    }
43489}
43490
43491impl fidl::endpoints::Responder for DatagramSocketGetOutOfBandInlineResponder {
43492    type ControlHandle = DatagramSocketControlHandle;
43493
43494    fn control_handle(&self) -> &DatagramSocketControlHandle {
43495        &self.control_handle
43496    }
43497
43498    fn drop_without_shutdown(mut self) {
43499        // Safety: drops once, never accessed again due to mem::forget
43500        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43501        // Prevent Drop from running (which would shut down the channel)
43502        std::mem::forget(self);
43503    }
43504}
43505
43506impl DatagramSocketGetOutOfBandInlineResponder {
43507    /// Sends a response to the FIDL transaction.
43508    ///
43509    /// Sets the channel to shutdown if an error occurs.
43510    pub fn send(
43511        self,
43512        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
43513    ) -> Result<(), fidl::Error> {
43514        let _result = self.send_raw(result);
43515        if _result.is_err() {
43516            self.control_handle.shutdown();
43517        }
43518        self.drop_without_shutdown();
43519        _result
43520    }
43521
43522    /// Similar to "send" but does not shutdown the channel if an error occurs.
43523    pub fn send_no_shutdown_on_err(
43524        self,
43525        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
43526    ) -> Result<(), fidl::Error> {
43527        let _result = self.send_raw(result);
43528        self.drop_without_shutdown();
43529        _result
43530    }
43531
43532    fn send_raw(
43533        &self,
43534        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
43535    ) -> Result<(), fidl::Error> {
43536        self.control_handle.inner.send::<fidl::encoding::ResultType<
43537            BaseSocketGetOutOfBandInlineResponse,
43538            fidl_fuchsia_posix::Errno,
43539        >>(
43540            result.map(|value| (value,)),
43541            self.tx_id,
43542            0x348c1ab3aeca1745,
43543            fidl::encoding::DynamicFlags::empty(),
43544        )
43545    }
43546}
43547
43548#[must_use = "FIDL methods require a response to be sent"]
43549#[derive(Debug)]
43550pub struct DatagramSocketSetNoCheckResponder {
43551    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43552    tx_id: u32,
43553}
43554
43555/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43556/// if the responder is dropped without sending a response, so that the client
43557/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43558impl std::ops::Drop for DatagramSocketSetNoCheckResponder {
43559    fn drop(&mut self) {
43560        self.control_handle.shutdown();
43561        // Safety: drops once, never accessed again
43562        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43563    }
43564}
43565
43566impl fidl::endpoints::Responder for DatagramSocketSetNoCheckResponder {
43567    type ControlHandle = DatagramSocketControlHandle;
43568
43569    fn control_handle(&self) -> &DatagramSocketControlHandle {
43570        &self.control_handle
43571    }
43572
43573    fn drop_without_shutdown(mut self) {
43574        // Safety: drops once, never accessed again due to mem::forget
43575        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43576        // Prevent Drop from running (which would shut down the channel)
43577        std::mem::forget(self);
43578    }
43579}
43580
43581impl DatagramSocketSetNoCheckResponder {
43582    /// Sends a response to the FIDL transaction.
43583    ///
43584    /// Sets the channel to shutdown if an error occurs.
43585    pub fn send(
43586        self,
43587        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43588    ) -> Result<(), fidl::Error> {
43589        let _result = self.send_raw(result);
43590        if _result.is_err() {
43591            self.control_handle.shutdown();
43592        }
43593        self.drop_without_shutdown();
43594        _result
43595    }
43596
43597    /// Similar to "send" but does not shutdown the channel if an error occurs.
43598    pub fn send_no_shutdown_on_err(
43599        self,
43600        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43601    ) -> Result<(), fidl::Error> {
43602        let _result = self.send_raw(result);
43603        self.drop_without_shutdown();
43604        _result
43605    }
43606
43607    fn send_raw(
43608        &self,
43609        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43610    ) -> Result<(), fidl::Error> {
43611        self.control_handle.inner.send::<fidl::encoding::ResultType<
43612            fidl::encoding::EmptyStruct,
43613            fidl_fuchsia_posix::Errno,
43614        >>(
43615            result,
43616            self.tx_id,
43617            0x6bbf00c53a4c78c2,
43618            fidl::encoding::DynamicFlags::empty(),
43619        )
43620    }
43621}
43622
43623#[must_use = "FIDL methods require a response to be sent"]
43624#[derive(Debug)]
43625pub struct DatagramSocketGetNoCheckResponder {
43626    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43627    tx_id: u32,
43628}
43629
43630/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43631/// if the responder is dropped without sending a response, so that the client
43632/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43633impl std::ops::Drop for DatagramSocketGetNoCheckResponder {
43634    fn drop(&mut self) {
43635        self.control_handle.shutdown();
43636        // Safety: drops once, never accessed again
43637        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43638    }
43639}
43640
43641impl fidl::endpoints::Responder for DatagramSocketGetNoCheckResponder {
43642    type ControlHandle = DatagramSocketControlHandle;
43643
43644    fn control_handle(&self) -> &DatagramSocketControlHandle {
43645        &self.control_handle
43646    }
43647
43648    fn drop_without_shutdown(mut self) {
43649        // Safety: drops once, never accessed again due to mem::forget
43650        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43651        // Prevent Drop from running (which would shut down the channel)
43652        std::mem::forget(self);
43653    }
43654}
43655
43656impl DatagramSocketGetNoCheckResponder {
43657    /// Sends a response to the FIDL transaction.
43658    ///
43659    /// Sets the channel to shutdown if an error occurs.
43660    pub fn send(
43661        self,
43662        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
43663    ) -> Result<(), fidl::Error> {
43664        let _result = self.send_raw(result);
43665        if _result.is_err() {
43666            self.control_handle.shutdown();
43667        }
43668        self.drop_without_shutdown();
43669        _result
43670    }
43671
43672    /// Similar to "send" but does not shutdown the channel if an error occurs.
43673    pub fn send_no_shutdown_on_err(
43674        self,
43675        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
43676    ) -> Result<(), fidl::Error> {
43677        let _result = self.send_raw(result);
43678        self.drop_without_shutdown();
43679        _result
43680    }
43681
43682    fn send_raw(
43683        &self,
43684        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
43685    ) -> Result<(), fidl::Error> {
43686        self.control_handle.inner.send::<fidl::encoding::ResultType<
43687            BaseSocketGetNoCheckResponse,
43688            fidl_fuchsia_posix::Errno,
43689        >>(
43690            result.map(|value| (value,)),
43691            self.tx_id,
43692            0x2cd4249286417694,
43693            fidl::encoding::DynamicFlags::empty(),
43694        )
43695    }
43696}
43697
43698#[must_use = "FIDL methods require a response to be sent"]
43699#[derive(Debug)]
43700pub struct DatagramSocketSetLingerResponder {
43701    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43702    tx_id: u32,
43703}
43704
43705/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43706/// if the responder is dropped without sending a response, so that the client
43707/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43708impl std::ops::Drop for DatagramSocketSetLingerResponder {
43709    fn drop(&mut self) {
43710        self.control_handle.shutdown();
43711        // Safety: drops once, never accessed again
43712        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43713    }
43714}
43715
43716impl fidl::endpoints::Responder for DatagramSocketSetLingerResponder {
43717    type ControlHandle = DatagramSocketControlHandle;
43718
43719    fn control_handle(&self) -> &DatagramSocketControlHandle {
43720        &self.control_handle
43721    }
43722
43723    fn drop_without_shutdown(mut self) {
43724        // Safety: drops once, never accessed again due to mem::forget
43725        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43726        // Prevent Drop from running (which would shut down the channel)
43727        std::mem::forget(self);
43728    }
43729}
43730
43731impl DatagramSocketSetLingerResponder {
43732    /// Sends a response to the FIDL transaction.
43733    ///
43734    /// Sets the channel to shutdown if an error occurs.
43735    pub fn send(
43736        self,
43737        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43738    ) -> Result<(), fidl::Error> {
43739        let _result = self.send_raw(result);
43740        if _result.is_err() {
43741            self.control_handle.shutdown();
43742        }
43743        self.drop_without_shutdown();
43744        _result
43745    }
43746
43747    /// Similar to "send" but does not shutdown the channel if an error occurs.
43748    pub fn send_no_shutdown_on_err(
43749        self,
43750        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43751    ) -> Result<(), fidl::Error> {
43752        let _result = self.send_raw(result);
43753        self.drop_without_shutdown();
43754        _result
43755    }
43756
43757    fn send_raw(
43758        &self,
43759        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43760    ) -> Result<(), fidl::Error> {
43761        self.control_handle.inner.send::<fidl::encoding::ResultType<
43762            fidl::encoding::EmptyStruct,
43763            fidl_fuchsia_posix::Errno,
43764        >>(
43765            result,
43766            self.tx_id,
43767            0x45386351246e998e,
43768            fidl::encoding::DynamicFlags::empty(),
43769        )
43770    }
43771}
43772
43773#[must_use = "FIDL methods require a response to be sent"]
43774#[derive(Debug)]
43775pub struct DatagramSocketGetLingerResponder {
43776    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43777    tx_id: u32,
43778}
43779
43780/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43781/// if the responder is dropped without sending a response, so that the client
43782/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43783impl std::ops::Drop for DatagramSocketGetLingerResponder {
43784    fn drop(&mut self) {
43785        self.control_handle.shutdown();
43786        // Safety: drops once, never accessed again
43787        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43788    }
43789}
43790
43791impl fidl::endpoints::Responder for DatagramSocketGetLingerResponder {
43792    type ControlHandle = DatagramSocketControlHandle;
43793
43794    fn control_handle(&self) -> &DatagramSocketControlHandle {
43795        &self.control_handle
43796    }
43797
43798    fn drop_without_shutdown(mut self) {
43799        // Safety: drops once, never accessed again due to mem::forget
43800        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43801        // Prevent Drop from running (which would shut down the channel)
43802        std::mem::forget(self);
43803    }
43804}
43805
43806impl DatagramSocketGetLingerResponder {
43807    /// Sends a response to the FIDL transaction.
43808    ///
43809    /// Sets the channel to shutdown if an error occurs.
43810    pub fn send(
43811        self,
43812        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
43813    ) -> Result<(), fidl::Error> {
43814        let _result = self.send_raw(result);
43815        if _result.is_err() {
43816            self.control_handle.shutdown();
43817        }
43818        self.drop_without_shutdown();
43819        _result
43820    }
43821
43822    /// Similar to "send" but does not shutdown the channel if an error occurs.
43823    pub fn send_no_shutdown_on_err(
43824        self,
43825        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
43826    ) -> Result<(), fidl::Error> {
43827        let _result = self.send_raw(result);
43828        self.drop_without_shutdown();
43829        _result
43830    }
43831
43832    fn send_raw(
43833        &self,
43834        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
43835    ) -> Result<(), fidl::Error> {
43836        self.control_handle.inner.send::<fidl::encoding::ResultType<
43837            BaseSocketGetLingerResponse,
43838            fidl_fuchsia_posix::Errno,
43839        >>(
43840            result,
43841            self.tx_id,
43842            0x48eb20fc5ccb0e45,
43843            fidl::encoding::DynamicFlags::empty(),
43844        )
43845    }
43846}
43847
43848#[must_use = "FIDL methods require a response to be sent"]
43849#[derive(Debug)]
43850pub struct DatagramSocketSetReusePortResponder {
43851    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43852    tx_id: u32,
43853}
43854
43855/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43856/// if the responder is dropped without sending a response, so that the client
43857/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43858impl std::ops::Drop for DatagramSocketSetReusePortResponder {
43859    fn drop(&mut self) {
43860        self.control_handle.shutdown();
43861        // Safety: drops once, never accessed again
43862        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43863    }
43864}
43865
43866impl fidl::endpoints::Responder for DatagramSocketSetReusePortResponder {
43867    type ControlHandle = DatagramSocketControlHandle;
43868
43869    fn control_handle(&self) -> &DatagramSocketControlHandle {
43870        &self.control_handle
43871    }
43872
43873    fn drop_without_shutdown(mut self) {
43874        // Safety: drops once, never accessed again due to mem::forget
43875        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43876        // Prevent Drop from running (which would shut down the channel)
43877        std::mem::forget(self);
43878    }
43879}
43880
43881impl DatagramSocketSetReusePortResponder {
43882    /// Sends a response to the FIDL transaction.
43883    ///
43884    /// Sets the channel to shutdown if an error occurs.
43885    pub fn send(
43886        self,
43887        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43888    ) -> Result<(), fidl::Error> {
43889        let _result = self.send_raw(result);
43890        if _result.is_err() {
43891            self.control_handle.shutdown();
43892        }
43893        self.drop_without_shutdown();
43894        _result
43895    }
43896
43897    /// Similar to "send" but does not shutdown the channel if an error occurs.
43898    pub fn send_no_shutdown_on_err(
43899        self,
43900        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43901    ) -> Result<(), fidl::Error> {
43902        let _result = self.send_raw(result);
43903        self.drop_without_shutdown();
43904        _result
43905    }
43906
43907    fn send_raw(
43908        &self,
43909        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43910    ) -> Result<(), fidl::Error> {
43911        self.control_handle.inner.send::<fidl::encoding::ResultType<
43912            fidl::encoding::EmptyStruct,
43913            fidl_fuchsia_posix::Errno,
43914        >>(
43915            result,
43916            self.tx_id,
43917            0x547dc9cc0455189e,
43918            fidl::encoding::DynamicFlags::empty(),
43919        )
43920    }
43921}
43922
43923#[must_use = "FIDL methods require a response to be sent"]
43924#[derive(Debug)]
43925pub struct DatagramSocketSetReusePortDeprecatedResponder {
43926    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43927    tx_id: u32,
43928}
43929
43930/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43931/// if the responder is dropped without sending a response, so that the client
43932/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43933impl std::ops::Drop for DatagramSocketSetReusePortDeprecatedResponder {
43934    fn drop(&mut self) {
43935        self.control_handle.shutdown();
43936        // Safety: drops once, never accessed again
43937        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43938    }
43939}
43940
43941impl fidl::endpoints::Responder for DatagramSocketSetReusePortDeprecatedResponder {
43942    type ControlHandle = DatagramSocketControlHandle;
43943
43944    fn control_handle(&self) -> &DatagramSocketControlHandle {
43945        &self.control_handle
43946    }
43947
43948    fn drop_without_shutdown(mut self) {
43949        // Safety: drops once, never accessed again due to mem::forget
43950        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43951        // Prevent Drop from running (which would shut down the channel)
43952        std::mem::forget(self);
43953    }
43954}
43955
43956impl DatagramSocketSetReusePortDeprecatedResponder {
43957    /// Sends a response to the FIDL transaction.
43958    ///
43959    /// Sets the channel to shutdown if an error occurs.
43960    pub fn send(
43961        self,
43962        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43963    ) -> Result<(), fidl::Error> {
43964        let _result = self.send_raw(result);
43965        if _result.is_err() {
43966            self.control_handle.shutdown();
43967        }
43968        self.drop_without_shutdown();
43969        _result
43970    }
43971
43972    /// Similar to "send" but does not shutdown the channel if an error occurs.
43973    pub fn send_no_shutdown_on_err(
43974        self,
43975        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43976    ) -> Result<(), fidl::Error> {
43977        let _result = self.send_raw(result);
43978        self.drop_without_shutdown();
43979        _result
43980    }
43981
43982    fn send_raw(
43983        &self,
43984        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43985    ) -> Result<(), fidl::Error> {
43986        self.control_handle.inner.send::<fidl::encoding::ResultType<
43987            fidl::encoding::EmptyStruct,
43988            fidl_fuchsia_posix::Errno,
43989        >>(
43990            result,
43991            self.tx_id,
43992            0x24dd3e5cb36d9ccb,
43993            fidl::encoding::DynamicFlags::empty(),
43994        )
43995    }
43996}
43997
43998#[must_use = "FIDL methods require a response to be sent"]
43999#[derive(Debug)]
44000pub struct DatagramSocketGetReusePortResponder {
44001    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44002    tx_id: u32,
44003}
44004
44005/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44006/// if the responder is dropped without sending a response, so that the client
44007/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44008impl std::ops::Drop for DatagramSocketGetReusePortResponder {
44009    fn drop(&mut self) {
44010        self.control_handle.shutdown();
44011        // Safety: drops once, never accessed again
44012        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44013    }
44014}
44015
44016impl fidl::endpoints::Responder for DatagramSocketGetReusePortResponder {
44017    type ControlHandle = DatagramSocketControlHandle;
44018
44019    fn control_handle(&self) -> &DatagramSocketControlHandle {
44020        &self.control_handle
44021    }
44022
44023    fn drop_without_shutdown(mut self) {
44024        // Safety: drops once, never accessed again due to mem::forget
44025        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44026        // Prevent Drop from running (which would shut down the channel)
44027        std::mem::forget(self);
44028    }
44029}
44030
44031impl DatagramSocketGetReusePortResponder {
44032    /// Sends a response to the FIDL transaction.
44033    ///
44034    /// Sets the channel to shutdown if an error occurs.
44035    pub fn send(
44036        self,
44037        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
44038    ) -> Result<(), fidl::Error> {
44039        let _result = self.send_raw(result);
44040        if _result.is_err() {
44041            self.control_handle.shutdown();
44042        }
44043        self.drop_without_shutdown();
44044        _result
44045    }
44046
44047    /// Similar to "send" but does not shutdown the channel if an error occurs.
44048    pub fn send_no_shutdown_on_err(
44049        self,
44050        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
44051    ) -> Result<(), fidl::Error> {
44052        let _result = self.send_raw(result);
44053        self.drop_without_shutdown();
44054        _result
44055    }
44056
44057    fn send_raw(
44058        &self,
44059        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
44060    ) -> Result<(), fidl::Error> {
44061        self.control_handle.inner.send::<fidl::encoding::ResultType<
44062            BaseSocketGetReusePortResponse,
44063            fidl_fuchsia_posix::Errno,
44064        >>(
44065            result.map(|value| (value,)),
44066            self.tx_id,
44067            0x7a112c1ab54ff828,
44068            fidl::encoding::DynamicFlags::empty(),
44069        )
44070    }
44071}
44072
44073#[must_use = "FIDL methods require a response to be sent"]
44074#[derive(Debug)]
44075pub struct DatagramSocketGetAcceptConnResponder {
44076    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44077    tx_id: u32,
44078}
44079
44080/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44081/// if the responder is dropped without sending a response, so that the client
44082/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44083impl std::ops::Drop for DatagramSocketGetAcceptConnResponder {
44084    fn drop(&mut self) {
44085        self.control_handle.shutdown();
44086        // Safety: drops once, never accessed again
44087        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44088    }
44089}
44090
44091impl fidl::endpoints::Responder for DatagramSocketGetAcceptConnResponder {
44092    type ControlHandle = DatagramSocketControlHandle;
44093
44094    fn control_handle(&self) -> &DatagramSocketControlHandle {
44095        &self.control_handle
44096    }
44097
44098    fn drop_without_shutdown(mut self) {
44099        // Safety: drops once, never accessed again due to mem::forget
44100        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44101        // Prevent Drop from running (which would shut down the channel)
44102        std::mem::forget(self);
44103    }
44104}
44105
44106impl DatagramSocketGetAcceptConnResponder {
44107    /// Sends a response to the FIDL transaction.
44108    ///
44109    /// Sets the channel to shutdown if an error occurs.
44110    pub fn send(
44111        self,
44112        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
44113    ) -> Result<(), fidl::Error> {
44114        let _result = self.send_raw(result);
44115        if _result.is_err() {
44116            self.control_handle.shutdown();
44117        }
44118        self.drop_without_shutdown();
44119        _result
44120    }
44121
44122    /// Similar to "send" but does not shutdown the channel if an error occurs.
44123    pub fn send_no_shutdown_on_err(
44124        self,
44125        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
44126    ) -> Result<(), fidl::Error> {
44127        let _result = self.send_raw(result);
44128        self.drop_without_shutdown();
44129        _result
44130    }
44131
44132    fn send_raw(
44133        &self,
44134        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
44135    ) -> Result<(), fidl::Error> {
44136        self.control_handle.inner.send::<fidl::encoding::ResultType<
44137            BaseSocketGetAcceptConnResponse,
44138            fidl_fuchsia_posix::Errno,
44139        >>(
44140            result.map(|value| (value,)),
44141            self.tx_id,
44142            0x67ce6db6c2ec8966,
44143            fidl::encoding::DynamicFlags::empty(),
44144        )
44145    }
44146}
44147
44148#[must_use = "FIDL methods require a response to be sent"]
44149#[derive(Debug)]
44150pub struct DatagramSocketSetBindToDeviceResponder {
44151    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44152    tx_id: u32,
44153}
44154
44155/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44156/// if the responder is dropped without sending a response, so that the client
44157/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44158impl std::ops::Drop for DatagramSocketSetBindToDeviceResponder {
44159    fn drop(&mut self) {
44160        self.control_handle.shutdown();
44161        // Safety: drops once, never accessed again
44162        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44163    }
44164}
44165
44166impl fidl::endpoints::Responder for DatagramSocketSetBindToDeviceResponder {
44167    type ControlHandle = DatagramSocketControlHandle;
44168
44169    fn control_handle(&self) -> &DatagramSocketControlHandle {
44170        &self.control_handle
44171    }
44172
44173    fn drop_without_shutdown(mut self) {
44174        // Safety: drops once, never accessed again due to mem::forget
44175        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44176        // Prevent Drop from running (which would shut down the channel)
44177        std::mem::forget(self);
44178    }
44179}
44180
44181impl DatagramSocketSetBindToDeviceResponder {
44182    /// Sends a response to the FIDL transaction.
44183    ///
44184    /// Sets the channel to shutdown if an error occurs.
44185    pub fn send(
44186        self,
44187        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44188    ) -> Result<(), fidl::Error> {
44189        let _result = self.send_raw(result);
44190        if _result.is_err() {
44191            self.control_handle.shutdown();
44192        }
44193        self.drop_without_shutdown();
44194        _result
44195    }
44196
44197    /// Similar to "send" but does not shutdown the channel if an error occurs.
44198    pub fn send_no_shutdown_on_err(
44199        self,
44200        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44201    ) -> Result<(), fidl::Error> {
44202        let _result = self.send_raw(result);
44203        self.drop_without_shutdown();
44204        _result
44205    }
44206
44207    fn send_raw(
44208        &self,
44209        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44210    ) -> Result<(), fidl::Error> {
44211        self.control_handle.inner.send::<fidl::encoding::ResultType<
44212            fidl::encoding::EmptyStruct,
44213            fidl_fuchsia_posix::Errno,
44214        >>(
44215            result,
44216            self.tx_id,
44217            0x2118b483f28aafc4,
44218            fidl::encoding::DynamicFlags::empty(),
44219        )
44220    }
44221}
44222
44223#[must_use = "FIDL methods require a response to be sent"]
44224#[derive(Debug)]
44225pub struct DatagramSocketGetBindToDeviceResponder {
44226    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44227    tx_id: u32,
44228}
44229
44230/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44231/// if the responder is dropped without sending a response, so that the client
44232/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44233impl std::ops::Drop for DatagramSocketGetBindToDeviceResponder {
44234    fn drop(&mut self) {
44235        self.control_handle.shutdown();
44236        // Safety: drops once, never accessed again
44237        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44238    }
44239}
44240
44241impl fidl::endpoints::Responder for DatagramSocketGetBindToDeviceResponder {
44242    type ControlHandle = DatagramSocketControlHandle;
44243
44244    fn control_handle(&self) -> &DatagramSocketControlHandle {
44245        &self.control_handle
44246    }
44247
44248    fn drop_without_shutdown(mut self) {
44249        // Safety: drops once, never accessed again due to mem::forget
44250        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44251        // Prevent Drop from running (which would shut down the channel)
44252        std::mem::forget(self);
44253    }
44254}
44255
44256impl DatagramSocketGetBindToDeviceResponder {
44257    /// Sends a response to the FIDL transaction.
44258    ///
44259    /// Sets the channel to shutdown if an error occurs.
44260    pub fn send(
44261        self,
44262        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
44263    ) -> Result<(), fidl::Error> {
44264        let _result = self.send_raw(result);
44265        if _result.is_err() {
44266            self.control_handle.shutdown();
44267        }
44268        self.drop_without_shutdown();
44269        _result
44270    }
44271
44272    /// Similar to "send" but does not shutdown the channel if an error occurs.
44273    pub fn send_no_shutdown_on_err(
44274        self,
44275        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
44276    ) -> Result<(), fidl::Error> {
44277        let _result = self.send_raw(result);
44278        self.drop_without_shutdown();
44279        _result
44280    }
44281
44282    fn send_raw(
44283        &self,
44284        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
44285    ) -> Result<(), fidl::Error> {
44286        self.control_handle.inner.send::<fidl::encoding::ResultType<
44287            BaseSocketGetBindToDeviceResponse,
44288            fidl_fuchsia_posix::Errno,
44289        >>(
44290            result.map(|value| (value,)),
44291            self.tx_id,
44292            0x1ab1fbf0ef7906c8,
44293            fidl::encoding::DynamicFlags::empty(),
44294        )
44295    }
44296}
44297
44298#[must_use = "FIDL methods require a response to be sent"]
44299#[derive(Debug)]
44300pub struct DatagramSocketSetBindToInterfaceIndexResponder {
44301    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44302    tx_id: u32,
44303}
44304
44305/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44306/// if the responder is dropped without sending a response, so that the client
44307/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44308impl std::ops::Drop for DatagramSocketSetBindToInterfaceIndexResponder {
44309    fn drop(&mut self) {
44310        self.control_handle.shutdown();
44311        // Safety: drops once, never accessed again
44312        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44313    }
44314}
44315
44316impl fidl::endpoints::Responder for DatagramSocketSetBindToInterfaceIndexResponder {
44317    type ControlHandle = DatagramSocketControlHandle;
44318
44319    fn control_handle(&self) -> &DatagramSocketControlHandle {
44320        &self.control_handle
44321    }
44322
44323    fn drop_without_shutdown(mut self) {
44324        // Safety: drops once, never accessed again due to mem::forget
44325        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44326        // Prevent Drop from running (which would shut down the channel)
44327        std::mem::forget(self);
44328    }
44329}
44330
44331impl DatagramSocketSetBindToInterfaceIndexResponder {
44332    /// Sends a response to the FIDL transaction.
44333    ///
44334    /// Sets the channel to shutdown if an error occurs.
44335    pub fn send(
44336        self,
44337        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44338    ) -> Result<(), fidl::Error> {
44339        let _result = self.send_raw(result);
44340        if _result.is_err() {
44341            self.control_handle.shutdown();
44342        }
44343        self.drop_without_shutdown();
44344        _result
44345    }
44346
44347    /// Similar to "send" but does not shutdown the channel if an error occurs.
44348    pub fn send_no_shutdown_on_err(
44349        self,
44350        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44351    ) -> Result<(), fidl::Error> {
44352        let _result = self.send_raw(result);
44353        self.drop_without_shutdown();
44354        _result
44355    }
44356
44357    fn send_raw(
44358        &self,
44359        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44360    ) -> Result<(), fidl::Error> {
44361        self.control_handle.inner.send::<fidl::encoding::ResultType<
44362            fidl::encoding::EmptyStruct,
44363            fidl_fuchsia_posix::Errno,
44364        >>(
44365            result,
44366            self.tx_id,
44367            0x6e387a0def00821,
44368            fidl::encoding::DynamicFlags::empty(),
44369        )
44370    }
44371}
44372
44373#[must_use = "FIDL methods require a response to be sent"]
44374#[derive(Debug)]
44375pub struct DatagramSocketGetBindToInterfaceIndexResponder {
44376    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44377    tx_id: u32,
44378}
44379
44380/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44381/// if the responder is dropped without sending a response, so that the client
44382/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44383impl std::ops::Drop for DatagramSocketGetBindToInterfaceIndexResponder {
44384    fn drop(&mut self) {
44385        self.control_handle.shutdown();
44386        // Safety: drops once, never accessed again
44387        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44388    }
44389}
44390
44391impl fidl::endpoints::Responder for DatagramSocketGetBindToInterfaceIndexResponder {
44392    type ControlHandle = DatagramSocketControlHandle;
44393
44394    fn control_handle(&self) -> &DatagramSocketControlHandle {
44395        &self.control_handle
44396    }
44397
44398    fn drop_without_shutdown(mut self) {
44399        // Safety: drops once, never accessed again due to mem::forget
44400        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44401        // Prevent Drop from running (which would shut down the channel)
44402        std::mem::forget(self);
44403    }
44404}
44405
44406impl DatagramSocketGetBindToInterfaceIndexResponder {
44407    /// Sends a response to the FIDL transaction.
44408    ///
44409    /// Sets the channel to shutdown if an error occurs.
44410    pub fn send(
44411        self,
44412        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
44413    ) -> Result<(), fidl::Error> {
44414        let _result = self.send_raw(result);
44415        if _result.is_err() {
44416            self.control_handle.shutdown();
44417        }
44418        self.drop_without_shutdown();
44419        _result
44420    }
44421
44422    /// Similar to "send" but does not shutdown the channel if an error occurs.
44423    pub fn send_no_shutdown_on_err(
44424        self,
44425        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
44426    ) -> Result<(), fidl::Error> {
44427        let _result = self.send_raw(result);
44428        self.drop_without_shutdown();
44429        _result
44430    }
44431
44432    fn send_raw(
44433        &self,
44434        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
44435    ) -> Result<(), fidl::Error> {
44436        self.control_handle.inner.send::<fidl::encoding::ResultType<
44437            BaseSocketGetBindToInterfaceIndexResponse,
44438            fidl_fuchsia_posix::Errno,
44439        >>(
44440            result.map(|value| (value,)),
44441            self.tx_id,
44442            0x59c31dd3e3078295,
44443            fidl::encoding::DynamicFlags::empty(),
44444        )
44445    }
44446}
44447
44448#[must_use = "FIDL methods require a response to be sent"]
44449#[derive(Debug)]
44450pub struct DatagramSocketSetTimestampResponder {
44451    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44452    tx_id: u32,
44453}
44454
44455/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44456/// if the responder is dropped without sending a response, so that the client
44457/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44458impl std::ops::Drop for DatagramSocketSetTimestampResponder {
44459    fn drop(&mut self) {
44460        self.control_handle.shutdown();
44461        // Safety: drops once, never accessed again
44462        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44463    }
44464}
44465
44466impl fidl::endpoints::Responder for DatagramSocketSetTimestampResponder {
44467    type ControlHandle = DatagramSocketControlHandle;
44468
44469    fn control_handle(&self) -> &DatagramSocketControlHandle {
44470        &self.control_handle
44471    }
44472
44473    fn drop_without_shutdown(mut self) {
44474        // Safety: drops once, never accessed again due to mem::forget
44475        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44476        // Prevent Drop from running (which would shut down the channel)
44477        std::mem::forget(self);
44478    }
44479}
44480
44481impl DatagramSocketSetTimestampResponder {
44482    /// Sends a response to the FIDL transaction.
44483    ///
44484    /// Sets the channel to shutdown if an error occurs.
44485    pub fn send(
44486        self,
44487        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44488    ) -> Result<(), fidl::Error> {
44489        let _result = self.send_raw(result);
44490        if _result.is_err() {
44491            self.control_handle.shutdown();
44492        }
44493        self.drop_without_shutdown();
44494        _result
44495    }
44496
44497    /// Similar to "send" but does not shutdown the channel if an error occurs.
44498    pub fn send_no_shutdown_on_err(
44499        self,
44500        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44501    ) -> Result<(), fidl::Error> {
44502        let _result = self.send_raw(result);
44503        self.drop_without_shutdown();
44504        _result
44505    }
44506
44507    fn send_raw(
44508        &self,
44509        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44510    ) -> Result<(), fidl::Error> {
44511        self.control_handle.inner.send::<fidl::encoding::ResultType<
44512            fidl::encoding::EmptyStruct,
44513            fidl_fuchsia_posix::Errno,
44514        >>(
44515            result,
44516            self.tx_id,
44517            0x285d6516c263d839,
44518            fidl::encoding::DynamicFlags::empty(),
44519        )
44520    }
44521}
44522
44523#[must_use = "FIDL methods require a response to be sent"]
44524#[derive(Debug)]
44525pub struct DatagramSocketGetTimestampResponder {
44526    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44527    tx_id: u32,
44528}
44529
44530/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44531/// if the responder is dropped without sending a response, so that the client
44532/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44533impl std::ops::Drop for DatagramSocketGetTimestampResponder {
44534    fn drop(&mut self) {
44535        self.control_handle.shutdown();
44536        // Safety: drops once, never accessed again
44537        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44538    }
44539}
44540
44541impl fidl::endpoints::Responder for DatagramSocketGetTimestampResponder {
44542    type ControlHandle = DatagramSocketControlHandle;
44543
44544    fn control_handle(&self) -> &DatagramSocketControlHandle {
44545        &self.control_handle
44546    }
44547
44548    fn drop_without_shutdown(mut self) {
44549        // Safety: drops once, never accessed again due to mem::forget
44550        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44551        // Prevent Drop from running (which would shut down the channel)
44552        std::mem::forget(self);
44553    }
44554}
44555
44556impl DatagramSocketGetTimestampResponder {
44557    /// Sends a response to the FIDL transaction.
44558    ///
44559    /// Sets the channel to shutdown if an error occurs.
44560    pub fn send(
44561        self,
44562        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
44563    ) -> Result<(), fidl::Error> {
44564        let _result = self.send_raw(result);
44565        if _result.is_err() {
44566            self.control_handle.shutdown();
44567        }
44568        self.drop_without_shutdown();
44569        _result
44570    }
44571
44572    /// Similar to "send" but does not shutdown the channel if an error occurs.
44573    pub fn send_no_shutdown_on_err(
44574        self,
44575        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
44576    ) -> Result<(), fidl::Error> {
44577        let _result = self.send_raw(result);
44578        self.drop_without_shutdown();
44579        _result
44580    }
44581
44582    fn send_raw(
44583        &self,
44584        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
44585    ) -> Result<(), fidl::Error> {
44586        self.control_handle.inner.send::<fidl::encoding::ResultType<
44587            BaseSocketGetTimestampResponse,
44588            fidl_fuchsia_posix::Errno,
44589        >>(
44590            result.map(|value| (value,)),
44591            self.tx_id,
44592            0x49f2fffbbcc2bd27,
44593            fidl::encoding::DynamicFlags::empty(),
44594        )
44595    }
44596}
44597
44598#[must_use = "FIDL methods require a response to be sent"]
44599#[derive(Debug)]
44600pub struct DatagramSocketSetMarkResponder {
44601    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44602    tx_id: u32,
44603}
44604
44605/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44606/// if the responder is dropped without sending a response, so that the client
44607/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44608impl std::ops::Drop for DatagramSocketSetMarkResponder {
44609    fn drop(&mut self) {
44610        self.control_handle.shutdown();
44611        // Safety: drops once, never accessed again
44612        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44613    }
44614}
44615
44616impl fidl::endpoints::Responder for DatagramSocketSetMarkResponder {
44617    type ControlHandle = DatagramSocketControlHandle;
44618
44619    fn control_handle(&self) -> &DatagramSocketControlHandle {
44620        &self.control_handle
44621    }
44622
44623    fn drop_without_shutdown(mut self) {
44624        // Safety: drops once, never accessed again due to mem::forget
44625        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44626        // Prevent Drop from running (which would shut down the channel)
44627        std::mem::forget(self);
44628    }
44629}
44630
44631impl DatagramSocketSetMarkResponder {
44632    /// Sends a response to the FIDL transaction.
44633    ///
44634    /// Sets the channel to shutdown if an error occurs.
44635    pub fn send(
44636        self,
44637        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44638    ) -> Result<(), fidl::Error> {
44639        let _result = self.send_raw(result);
44640        if _result.is_err() {
44641            self.control_handle.shutdown();
44642        }
44643        self.drop_without_shutdown();
44644        _result
44645    }
44646
44647    /// Similar to "send" but does not shutdown the channel if an error occurs.
44648    pub fn send_no_shutdown_on_err(
44649        self,
44650        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44651    ) -> Result<(), fidl::Error> {
44652        let _result = self.send_raw(result);
44653        self.drop_without_shutdown();
44654        _result
44655    }
44656
44657    fn send_raw(
44658        &self,
44659        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44660    ) -> Result<(), fidl::Error> {
44661        self.control_handle.inner.send::<fidl::encoding::ResultType<
44662            fidl::encoding::EmptyStruct,
44663            fidl_fuchsia_posix::Errno,
44664        >>(
44665            result,
44666            self.tx_id,
44667            0x6ead6de09f653236,
44668            fidl::encoding::DynamicFlags::empty(),
44669        )
44670    }
44671}
44672
44673#[must_use = "FIDL methods require a response to be sent"]
44674#[derive(Debug)]
44675pub struct DatagramSocketGetMarkResponder {
44676    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44677    tx_id: u32,
44678}
44679
44680/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44681/// if the responder is dropped without sending a response, so that the client
44682/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44683impl std::ops::Drop for DatagramSocketGetMarkResponder {
44684    fn drop(&mut self) {
44685        self.control_handle.shutdown();
44686        // Safety: drops once, never accessed again
44687        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44688    }
44689}
44690
44691impl fidl::endpoints::Responder for DatagramSocketGetMarkResponder {
44692    type ControlHandle = DatagramSocketControlHandle;
44693
44694    fn control_handle(&self) -> &DatagramSocketControlHandle {
44695        &self.control_handle
44696    }
44697
44698    fn drop_without_shutdown(mut self) {
44699        // Safety: drops once, never accessed again due to mem::forget
44700        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44701        // Prevent Drop from running (which would shut down the channel)
44702        std::mem::forget(self);
44703    }
44704}
44705
44706impl DatagramSocketGetMarkResponder {
44707    /// Sends a response to the FIDL transaction.
44708    ///
44709    /// Sets the channel to shutdown if an error occurs.
44710    pub fn send(
44711        self,
44712        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
44713    ) -> Result<(), fidl::Error> {
44714        let _result = self.send_raw(result);
44715        if _result.is_err() {
44716            self.control_handle.shutdown();
44717        }
44718        self.drop_without_shutdown();
44719        _result
44720    }
44721
44722    /// Similar to "send" but does not shutdown the channel if an error occurs.
44723    pub fn send_no_shutdown_on_err(
44724        self,
44725        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
44726    ) -> Result<(), fidl::Error> {
44727        let _result = self.send_raw(result);
44728        self.drop_without_shutdown();
44729        _result
44730    }
44731
44732    fn send_raw(
44733        &self,
44734        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
44735    ) -> Result<(), fidl::Error> {
44736        self.control_handle.inner.send::<fidl::encoding::ResultType<
44737            BaseSocketGetMarkResponse,
44738            fidl_fuchsia_posix::Errno,
44739        >>(
44740            result.map(|mark| (mark,)),
44741            self.tx_id,
44742            0x57a2752c61d93d47,
44743            fidl::encoding::DynamicFlags::empty(),
44744        )
44745    }
44746}
44747
44748#[must_use = "FIDL methods require a response to be sent"]
44749#[derive(Debug)]
44750pub struct DatagramSocketGetCookieResponder {
44751    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44752    tx_id: u32,
44753}
44754
44755/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44756/// if the responder is dropped without sending a response, so that the client
44757/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44758impl std::ops::Drop for DatagramSocketGetCookieResponder {
44759    fn drop(&mut self) {
44760        self.control_handle.shutdown();
44761        // Safety: drops once, never accessed again
44762        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44763    }
44764}
44765
44766impl fidl::endpoints::Responder for DatagramSocketGetCookieResponder {
44767    type ControlHandle = DatagramSocketControlHandle;
44768
44769    fn control_handle(&self) -> &DatagramSocketControlHandle {
44770        &self.control_handle
44771    }
44772
44773    fn drop_without_shutdown(mut self) {
44774        // Safety: drops once, never accessed again due to mem::forget
44775        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44776        // Prevent Drop from running (which would shut down the channel)
44777        std::mem::forget(self);
44778    }
44779}
44780
44781impl DatagramSocketGetCookieResponder {
44782    /// Sends a response to the FIDL transaction.
44783    ///
44784    /// Sets the channel to shutdown if an error occurs.
44785    pub fn send(
44786        self,
44787        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
44788    ) -> Result<(), fidl::Error> {
44789        let _result = self.send_raw(result);
44790        if _result.is_err() {
44791            self.control_handle.shutdown();
44792        }
44793        self.drop_without_shutdown();
44794        _result
44795    }
44796
44797    /// Similar to "send" but does not shutdown the channel if an error occurs.
44798    pub fn send_no_shutdown_on_err(
44799        self,
44800        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
44801    ) -> Result<(), fidl::Error> {
44802        let _result = self.send_raw(result);
44803        self.drop_without_shutdown();
44804        _result
44805    }
44806
44807    fn send_raw(
44808        &self,
44809        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
44810    ) -> Result<(), fidl::Error> {
44811        self.control_handle.inner.send::<fidl::encoding::ResultType<
44812            BaseSocketGetCookieResponse,
44813            fidl_fuchsia_posix::Errno,
44814        >>(
44815            result.map(|value| (value,)),
44816            self.tx_id,
44817            0x2c2f47fd8f924e52,
44818            fidl::encoding::DynamicFlags::empty(),
44819        )
44820    }
44821}
44822
44823#[must_use = "FIDL methods require a response to be sent"]
44824#[derive(Debug)]
44825pub struct DatagramSocketBindResponder {
44826    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44827    tx_id: u32,
44828}
44829
44830/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44831/// if the responder is dropped without sending a response, so that the client
44832/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44833impl std::ops::Drop for DatagramSocketBindResponder {
44834    fn drop(&mut self) {
44835        self.control_handle.shutdown();
44836        // Safety: drops once, never accessed again
44837        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44838    }
44839}
44840
44841impl fidl::endpoints::Responder for DatagramSocketBindResponder {
44842    type ControlHandle = DatagramSocketControlHandle;
44843
44844    fn control_handle(&self) -> &DatagramSocketControlHandle {
44845        &self.control_handle
44846    }
44847
44848    fn drop_without_shutdown(mut self) {
44849        // Safety: drops once, never accessed again due to mem::forget
44850        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44851        // Prevent Drop from running (which would shut down the channel)
44852        std::mem::forget(self);
44853    }
44854}
44855
44856impl DatagramSocketBindResponder {
44857    /// Sends a response to the FIDL transaction.
44858    ///
44859    /// Sets the channel to shutdown if an error occurs.
44860    pub fn send(
44861        self,
44862        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44863    ) -> Result<(), fidl::Error> {
44864        let _result = self.send_raw(result);
44865        if _result.is_err() {
44866            self.control_handle.shutdown();
44867        }
44868        self.drop_without_shutdown();
44869        _result
44870    }
44871
44872    /// Similar to "send" but does not shutdown the channel if an error occurs.
44873    pub fn send_no_shutdown_on_err(
44874        self,
44875        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44876    ) -> Result<(), fidl::Error> {
44877        let _result = self.send_raw(result);
44878        self.drop_without_shutdown();
44879        _result
44880    }
44881
44882    fn send_raw(
44883        &self,
44884        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44885    ) -> Result<(), fidl::Error> {
44886        self.control_handle.inner.send::<fidl::encoding::ResultType<
44887            fidl::encoding::EmptyStruct,
44888            fidl_fuchsia_posix::Errno,
44889        >>(
44890            result,
44891            self.tx_id,
44892            0x4bc6400ae92125d,
44893            fidl::encoding::DynamicFlags::empty(),
44894        )
44895    }
44896}
44897
44898#[must_use = "FIDL methods require a response to be sent"]
44899#[derive(Debug)]
44900pub struct DatagramSocketConnectResponder {
44901    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44902    tx_id: u32,
44903}
44904
44905/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44906/// if the responder is dropped without sending a response, so that the client
44907/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44908impl std::ops::Drop for DatagramSocketConnectResponder {
44909    fn drop(&mut self) {
44910        self.control_handle.shutdown();
44911        // Safety: drops once, never accessed again
44912        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44913    }
44914}
44915
44916impl fidl::endpoints::Responder for DatagramSocketConnectResponder {
44917    type ControlHandle = DatagramSocketControlHandle;
44918
44919    fn control_handle(&self) -> &DatagramSocketControlHandle {
44920        &self.control_handle
44921    }
44922
44923    fn drop_without_shutdown(mut self) {
44924        // Safety: drops once, never accessed again due to mem::forget
44925        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44926        // Prevent Drop from running (which would shut down the channel)
44927        std::mem::forget(self);
44928    }
44929}
44930
44931impl DatagramSocketConnectResponder {
44932    /// Sends a response to the FIDL transaction.
44933    ///
44934    /// Sets the channel to shutdown if an error occurs.
44935    pub fn send(
44936        self,
44937        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44938    ) -> Result<(), fidl::Error> {
44939        let _result = self.send_raw(result);
44940        if _result.is_err() {
44941            self.control_handle.shutdown();
44942        }
44943        self.drop_without_shutdown();
44944        _result
44945    }
44946
44947    /// Similar to "send" but does not shutdown the channel if an error occurs.
44948    pub fn send_no_shutdown_on_err(
44949        self,
44950        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44951    ) -> Result<(), fidl::Error> {
44952        let _result = self.send_raw(result);
44953        self.drop_without_shutdown();
44954        _result
44955    }
44956
44957    fn send_raw(
44958        &self,
44959        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44960    ) -> Result<(), fidl::Error> {
44961        self.control_handle.inner.send::<fidl::encoding::ResultType<
44962            fidl::encoding::EmptyStruct,
44963            fidl_fuchsia_posix::Errno,
44964        >>(
44965            result,
44966            self.tx_id,
44967            0x5f05f19bfdd38871,
44968            fidl::encoding::DynamicFlags::empty(),
44969        )
44970    }
44971}
44972
44973#[must_use = "FIDL methods require a response to be sent"]
44974#[derive(Debug)]
44975pub struct DatagramSocketDisconnectResponder {
44976    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44977    tx_id: u32,
44978}
44979
44980/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44981/// if the responder is dropped without sending a response, so that the client
44982/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44983impl std::ops::Drop for DatagramSocketDisconnectResponder {
44984    fn drop(&mut self) {
44985        self.control_handle.shutdown();
44986        // Safety: drops once, never accessed again
44987        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44988    }
44989}
44990
44991impl fidl::endpoints::Responder for DatagramSocketDisconnectResponder {
44992    type ControlHandle = DatagramSocketControlHandle;
44993
44994    fn control_handle(&self) -> &DatagramSocketControlHandle {
44995        &self.control_handle
44996    }
44997
44998    fn drop_without_shutdown(mut self) {
44999        // Safety: drops once, never accessed again due to mem::forget
45000        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45001        // Prevent Drop from running (which would shut down the channel)
45002        std::mem::forget(self);
45003    }
45004}
45005
45006impl DatagramSocketDisconnectResponder {
45007    /// Sends a response to the FIDL transaction.
45008    ///
45009    /// Sets the channel to shutdown if an error occurs.
45010    pub fn send(
45011        self,
45012        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45013    ) -> Result<(), fidl::Error> {
45014        let _result = self.send_raw(result);
45015        if _result.is_err() {
45016            self.control_handle.shutdown();
45017        }
45018        self.drop_without_shutdown();
45019        _result
45020    }
45021
45022    /// Similar to "send" but does not shutdown the channel if an error occurs.
45023    pub fn send_no_shutdown_on_err(
45024        self,
45025        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45026    ) -> Result<(), fidl::Error> {
45027        let _result = self.send_raw(result);
45028        self.drop_without_shutdown();
45029        _result
45030    }
45031
45032    fn send_raw(
45033        &self,
45034        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45035    ) -> Result<(), fidl::Error> {
45036        self.control_handle.inner.send::<fidl::encoding::ResultType<
45037            fidl::encoding::EmptyStruct,
45038            fidl_fuchsia_posix::Errno,
45039        >>(
45040            result,
45041            self.tx_id,
45042            0x74e63b91f7b29b2,
45043            fidl::encoding::DynamicFlags::empty(),
45044        )
45045    }
45046}
45047
45048#[must_use = "FIDL methods require a response to be sent"]
45049#[derive(Debug)]
45050pub struct DatagramSocketGetSockNameResponder {
45051    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45052    tx_id: u32,
45053}
45054
45055/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45056/// if the responder is dropped without sending a response, so that the client
45057/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45058impl std::ops::Drop for DatagramSocketGetSockNameResponder {
45059    fn drop(&mut self) {
45060        self.control_handle.shutdown();
45061        // Safety: drops once, never accessed again
45062        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45063    }
45064}
45065
45066impl fidl::endpoints::Responder for DatagramSocketGetSockNameResponder {
45067    type ControlHandle = DatagramSocketControlHandle;
45068
45069    fn control_handle(&self) -> &DatagramSocketControlHandle {
45070        &self.control_handle
45071    }
45072
45073    fn drop_without_shutdown(mut self) {
45074        // Safety: drops once, never accessed again due to mem::forget
45075        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45076        // Prevent Drop from running (which would shut down the channel)
45077        std::mem::forget(self);
45078    }
45079}
45080
45081impl DatagramSocketGetSockNameResponder {
45082    /// Sends a response to the FIDL transaction.
45083    ///
45084    /// Sets the channel to shutdown if an error occurs.
45085    pub fn send(
45086        self,
45087        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
45088    ) -> Result<(), fidl::Error> {
45089        let _result = self.send_raw(result);
45090        if _result.is_err() {
45091            self.control_handle.shutdown();
45092        }
45093        self.drop_without_shutdown();
45094        _result
45095    }
45096
45097    /// Similar to "send" but does not shutdown the channel if an error occurs.
45098    pub fn send_no_shutdown_on_err(
45099        self,
45100        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
45101    ) -> Result<(), fidl::Error> {
45102        let _result = self.send_raw(result);
45103        self.drop_without_shutdown();
45104        _result
45105    }
45106
45107    fn send_raw(
45108        &self,
45109        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
45110    ) -> Result<(), fidl::Error> {
45111        self.control_handle.inner.send::<fidl::encoding::ResultType<
45112            BaseNetworkSocketGetSockNameResponse,
45113            fidl_fuchsia_posix::Errno,
45114        >>(
45115            result.map(|addr| (addr,)),
45116            self.tx_id,
45117            0x475f23f84a1a4f85,
45118            fidl::encoding::DynamicFlags::empty(),
45119        )
45120    }
45121}
45122
45123#[must_use = "FIDL methods require a response to be sent"]
45124#[derive(Debug)]
45125pub struct DatagramSocketGetPeerNameResponder {
45126    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45127    tx_id: u32,
45128}
45129
45130/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45131/// if the responder is dropped without sending a response, so that the client
45132/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45133impl std::ops::Drop for DatagramSocketGetPeerNameResponder {
45134    fn drop(&mut self) {
45135        self.control_handle.shutdown();
45136        // Safety: drops once, never accessed again
45137        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45138    }
45139}
45140
45141impl fidl::endpoints::Responder for DatagramSocketGetPeerNameResponder {
45142    type ControlHandle = DatagramSocketControlHandle;
45143
45144    fn control_handle(&self) -> &DatagramSocketControlHandle {
45145        &self.control_handle
45146    }
45147
45148    fn drop_without_shutdown(mut self) {
45149        // Safety: drops once, never accessed again due to mem::forget
45150        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45151        // Prevent Drop from running (which would shut down the channel)
45152        std::mem::forget(self);
45153    }
45154}
45155
45156impl DatagramSocketGetPeerNameResponder {
45157    /// Sends a response to the FIDL transaction.
45158    ///
45159    /// Sets the channel to shutdown if an error occurs.
45160    pub fn send(
45161        self,
45162        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
45163    ) -> Result<(), fidl::Error> {
45164        let _result = self.send_raw(result);
45165        if _result.is_err() {
45166            self.control_handle.shutdown();
45167        }
45168        self.drop_without_shutdown();
45169        _result
45170    }
45171
45172    /// Similar to "send" but does not shutdown the channel if an error occurs.
45173    pub fn send_no_shutdown_on_err(
45174        self,
45175        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
45176    ) -> Result<(), fidl::Error> {
45177        let _result = self.send_raw(result);
45178        self.drop_without_shutdown();
45179        _result
45180    }
45181
45182    fn send_raw(
45183        &self,
45184        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
45185    ) -> Result<(), fidl::Error> {
45186        self.control_handle.inner.send::<fidl::encoding::ResultType<
45187            BaseNetworkSocketGetPeerNameResponse,
45188            fidl_fuchsia_posix::Errno,
45189        >>(
45190            result.map(|addr| (addr,)),
45191            self.tx_id,
45192            0x1ffecf4bd5b6432e,
45193            fidl::encoding::DynamicFlags::empty(),
45194        )
45195    }
45196}
45197
45198#[must_use = "FIDL methods require a response to be sent"]
45199#[derive(Debug)]
45200pub struct DatagramSocketShutdownResponder {
45201    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45202    tx_id: u32,
45203}
45204
45205/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45206/// if the responder is dropped without sending a response, so that the client
45207/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45208impl std::ops::Drop for DatagramSocketShutdownResponder {
45209    fn drop(&mut self) {
45210        self.control_handle.shutdown();
45211        // Safety: drops once, never accessed again
45212        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45213    }
45214}
45215
45216impl fidl::endpoints::Responder for DatagramSocketShutdownResponder {
45217    type ControlHandle = DatagramSocketControlHandle;
45218
45219    fn control_handle(&self) -> &DatagramSocketControlHandle {
45220        &self.control_handle
45221    }
45222
45223    fn drop_without_shutdown(mut self) {
45224        // Safety: drops once, never accessed again due to mem::forget
45225        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45226        // Prevent Drop from running (which would shut down the channel)
45227        std::mem::forget(self);
45228    }
45229}
45230
45231impl DatagramSocketShutdownResponder {
45232    /// Sends a response to the FIDL transaction.
45233    ///
45234    /// Sets the channel to shutdown if an error occurs.
45235    pub fn send(
45236        self,
45237        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45238    ) -> Result<(), fidl::Error> {
45239        let _result = self.send_raw(result);
45240        if _result.is_err() {
45241            self.control_handle.shutdown();
45242        }
45243        self.drop_without_shutdown();
45244        _result
45245    }
45246
45247    /// Similar to "send" but does not shutdown the channel if an error occurs.
45248    pub fn send_no_shutdown_on_err(
45249        self,
45250        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45251    ) -> Result<(), fidl::Error> {
45252        let _result = self.send_raw(result);
45253        self.drop_without_shutdown();
45254        _result
45255    }
45256
45257    fn send_raw(
45258        &self,
45259        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45260    ) -> Result<(), fidl::Error> {
45261        self.control_handle.inner.send::<fidl::encoding::ResultType<
45262            fidl::encoding::EmptyStruct,
45263            fidl_fuchsia_posix::Errno,
45264        >>(
45265            result,
45266            self.tx_id,
45267            0x247f38b6db68c336,
45268            fidl::encoding::DynamicFlags::empty(),
45269        )
45270    }
45271}
45272
45273#[must_use = "FIDL methods require a response to be sent"]
45274#[derive(Debug)]
45275pub struct DatagramSocketSetIpTypeOfServiceResponder {
45276    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45277    tx_id: u32,
45278}
45279
45280/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45281/// if the responder is dropped without sending a response, so that the client
45282/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45283impl std::ops::Drop for DatagramSocketSetIpTypeOfServiceResponder {
45284    fn drop(&mut self) {
45285        self.control_handle.shutdown();
45286        // Safety: drops once, never accessed again
45287        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45288    }
45289}
45290
45291impl fidl::endpoints::Responder for DatagramSocketSetIpTypeOfServiceResponder {
45292    type ControlHandle = DatagramSocketControlHandle;
45293
45294    fn control_handle(&self) -> &DatagramSocketControlHandle {
45295        &self.control_handle
45296    }
45297
45298    fn drop_without_shutdown(mut self) {
45299        // Safety: drops once, never accessed again due to mem::forget
45300        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45301        // Prevent Drop from running (which would shut down the channel)
45302        std::mem::forget(self);
45303    }
45304}
45305
45306impl DatagramSocketSetIpTypeOfServiceResponder {
45307    /// Sends a response to the FIDL transaction.
45308    ///
45309    /// Sets the channel to shutdown if an error occurs.
45310    pub fn send(
45311        self,
45312        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45313    ) -> Result<(), fidl::Error> {
45314        let _result = self.send_raw(result);
45315        if _result.is_err() {
45316            self.control_handle.shutdown();
45317        }
45318        self.drop_without_shutdown();
45319        _result
45320    }
45321
45322    /// Similar to "send" but does not shutdown the channel if an error occurs.
45323    pub fn send_no_shutdown_on_err(
45324        self,
45325        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45326    ) -> Result<(), fidl::Error> {
45327        let _result = self.send_raw(result);
45328        self.drop_without_shutdown();
45329        _result
45330    }
45331
45332    fn send_raw(
45333        &self,
45334        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45335    ) -> Result<(), fidl::Error> {
45336        self.control_handle.inner.send::<fidl::encoding::ResultType<
45337            fidl::encoding::EmptyStruct,
45338            fidl_fuchsia_posix::Errno,
45339        >>(
45340            result,
45341            self.tx_id,
45342            0x995c600475b6d46,
45343            fidl::encoding::DynamicFlags::empty(),
45344        )
45345    }
45346}
45347
45348#[must_use = "FIDL methods require a response to be sent"]
45349#[derive(Debug)]
45350pub struct DatagramSocketGetIpTypeOfServiceResponder {
45351    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45352    tx_id: u32,
45353}
45354
45355/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45356/// if the responder is dropped without sending a response, so that the client
45357/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45358impl std::ops::Drop for DatagramSocketGetIpTypeOfServiceResponder {
45359    fn drop(&mut self) {
45360        self.control_handle.shutdown();
45361        // Safety: drops once, never accessed again
45362        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45363    }
45364}
45365
45366impl fidl::endpoints::Responder for DatagramSocketGetIpTypeOfServiceResponder {
45367    type ControlHandle = DatagramSocketControlHandle;
45368
45369    fn control_handle(&self) -> &DatagramSocketControlHandle {
45370        &self.control_handle
45371    }
45372
45373    fn drop_without_shutdown(mut self) {
45374        // Safety: drops once, never accessed again due to mem::forget
45375        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45376        // Prevent Drop from running (which would shut down the channel)
45377        std::mem::forget(self);
45378    }
45379}
45380
45381impl DatagramSocketGetIpTypeOfServiceResponder {
45382    /// Sends a response to the FIDL transaction.
45383    ///
45384    /// Sets the channel to shutdown if an error occurs.
45385    pub fn send(
45386        self,
45387        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
45388    ) -> Result<(), fidl::Error> {
45389        let _result = self.send_raw(result);
45390        if _result.is_err() {
45391            self.control_handle.shutdown();
45392        }
45393        self.drop_without_shutdown();
45394        _result
45395    }
45396
45397    /// Similar to "send" but does not shutdown the channel if an error occurs.
45398    pub fn send_no_shutdown_on_err(
45399        self,
45400        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
45401    ) -> Result<(), fidl::Error> {
45402        let _result = self.send_raw(result);
45403        self.drop_without_shutdown();
45404        _result
45405    }
45406
45407    fn send_raw(
45408        &self,
45409        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
45410    ) -> Result<(), fidl::Error> {
45411        self.control_handle.inner.send::<fidl::encoding::ResultType<
45412            BaseNetworkSocketGetIpTypeOfServiceResponse,
45413            fidl_fuchsia_posix::Errno,
45414        >>(
45415            result.map(|value| (value,)),
45416            self.tx_id,
45417            0x3814a04259f75fcb,
45418            fidl::encoding::DynamicFlags::empty(),
45419        )
45420    }
45421}
45422
45423#[must_use = "FIDL methods require a response to be sent"]
45424#[derive(Debug)]
45425pub struct DatagramSocketSetIpTtlResponder {
45426    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45427    tx_id: u32,
45428}
45429
45430/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45431/// if the responder is dropped without sending a response, so that the client
45432/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45433impl std::ops::Drop for DatagramSocketSetIpTtlResponder {
45434    fn drop(&mut self) {
45435        self.control_handle.shutdown();
45436        // Safety: drops once, never accessed again
45437        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45438    }
45439}
45440
45441impl fidl::endpoints::Responder for DatagramSocketSetIpTtlResponder {
45442    type ControlHandle = DatagramSocketControlHandle;
45443
45444    fn control_handle(&self) -> &DatagramSocketControlHandle {
45445        &self.control_handle
45446    }
45447
45448    fn drop_without_shutdown(mut self) {
45449        // Safety: drops once, never accessed again due to mem::forget
45450        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45451        // Prevent Drop from running (which would shut down the channel)
45452        std::mem::forget(self);
45453    }
45454}
45455
45456impl DatagramSocketSetIpTtlResponder {
45457    /// Sends a response to the FIDL transaction.
45458    ///
45459    /// Sets the channel to shutdown if an error occurs.
45460    pub fn send(
45461        self,
45462        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45463    ) -> Result<(), fidl::Error> {
45464        let _result = self.send_raw(result);
45465        if _result.is_err() {
45466            self.control_handle.shutdown();
45467        }
45468        self.drop_without_shutdown();
45469        _result
45470    }
45471
45472    /// Similar to "send" but does not shutdown the channel if an error occurs.
45473    pub fn send_no_shutdown_on_err(
45474        self,
45475        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45476    ) -> Result<(), fidl::Error> {
45477        let _result = self.send_raw(result);
45478        self.drop_without_shutdown();
45479        _result
45480    }
45481
45482    fn send_raw(
45483        &self,
45484        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45485    ) -> Result<(), fidl::Error> {
45486        self.control_handle.inner.send::<fidl::encoding::ResultType<
45487            fidl::encoding::EmptyStruct,
45488            fidl_fuchsia_posix::Errno,
45489        >>(
45490            result,
45491            self.tx_id,
45492            0x29e2424b433ae1ef,
45493            fidl::encoding::DynamicFlags::empty(),
45494        )
45495    }
45496}
45497
45498#[must_use = "FIDL methods require a response to be sent"]
45499#[derive(Debug)]
45500pub struct DatagramSocketGetIpTtlResponder {
45501    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45502    tx_id: u32,
45503}
45504
45505/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45506/// if the responder is dropped without sending a response, so that the client
45507/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45508impl std::ops::Drop for DatagramSocketGetIpTtlResponder {
45509    fn drop(&mut self) {
45510        self.control_handle.shutdown();
45511        // Safety: drops once, never accessed again
45512        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45513    }
45514}
45515
45516impl fidl::endpoints::Responder for DatagramSocketGetIpTtlResponder {
45517    type ControlHandle = DatagramSocketControlHandle;
45518
45519    fn control_handle(&self) -> &DatagramSocketControlHandle {
45520        &self.control_handle
45521    }
45522
45523    fn drop_without_shutdown(mut self) {
45524        // Safety: drops once, never accessed again due to mem::forget
45525        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45526        // Prevent Drop from running (which would shut down the channel)
45527        std::mem::forget(self);
45528    }
45529}
45530
45531impl DatagramSocketGetIpTtlResponder {
45532    /// Sends a response to the FIDL transaction.
45533    ///
45534    /// Sets the channel to shutdown if an error occurs.
45535    pub fn send(
45536        self,
45537        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
45538    ) -> Result<(), fidl::Error> {
45539        let _result = self.send_raw(result);
45540        if _result.is_err() {
45541            self.control_handle.shutdown();
45542        }
45543        self.drop_without_shutdown();
45544        _result
45545    }
45546
45547    /// Similar to "send" but does not shutdown the channel if an error occurs.
45548    pub fn send_no_shutdown_on_err(
45549        self,
45550        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
45551    ) -> Result<(), fidl::Error> {
45552        let _result = self.send_raw(result);
45553        self.drop_without_shutdown();
45554        _result
45555    }
45556
45557    fn send_raw(
45558        &self,
45559        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
45560    ) -> Result<(), fidl::Error> {
45561        self.control_handle.inner.send::<fidl::encoding::ResultType<
45562            BaseNetworkSocketGetIpTtlResponse,
45563            fidl_fuchsia_posix::Errno,
45564        >>(
45565            result.map(|value| (value,)),
45566            self.tx_id,
45567            0x47e47fa1f24da471,
45568            fidl::encoding::DynamicFlags::empty(),
45569        )
45570    }
45571}
45572
45573#[must_use = "FIDL methods require a response to be sent"]
45574#[derive(Debug)]
45575pub struct DatagramSocketSetIpPacketInfoResponder {
45576    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45577    tx_id: u32,
45578}
45579
45580/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45581/// if the responder is dropped without sending a response, so that the client
45582/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45583impl std::ops::Drop for DatagramSocketSetIpPacketInfoResponder {
45584    fn drop(&mut self) {
45585        self.control_handle.shutdown();
45586        // Safety: drops once, never accessed again
45587        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45588    }
45589}
45590
45591impl fidl::endpoints::Responder for DatagramSocketSetIpPacketInfoResponder {
45592    type ControlHandle = DatagramSocketControlHandle;
45593
45594    fn control_handle(&self) -> &DatagramSocketControlHandle {
45595        &self.control_handle
45596    }
45597
45598    fn drop_without_shutdown(mut self) {
45599        // Safety: drops once, never accessed again due to mem::forget
45600        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45601        // Prevent Drop from running (which would shut down the channel)
45602        std::mem::forget(self);
45603    }
45604}
45605
45606impl DatagramSocketSetIpPacketInfoResponder {
45607    /// Sends a response to the FIDL transaction.
45608    ///
45609    /// Sets the channel to shutdown if an error occurs.
45610    pub fn send(
45611        self,
45612        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45613    ) -> Result<(), fidl::Error> {
45614        let _result = self.send_raw(result);
45615        if _result.is_err() {
45616            self.control_handle.shutdown();
45617        }
45618        self.drop_without_shutdown();
45619        _result
45620    }
45621
45622    /// Similar to "send" but does not shutdown the channel if an error occurs.
45623    pub fn send_no_shutdown_on_err(
45624        self,
45625        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45626    ) -> Result<(), fidl::Error> {
45627        let _result = self.send_raw(result);
45628        self.drop_without_shutdown();
45629        _result
45630    }
45631
45632    fn send_raw(
45633        &self,
45634        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45635    ) -> Result<(), fidl::Error> {
45636        self.control_handle.inner.send::<fidl::encoding::ResultType<
45637            fidl::encoding::EmptyStruct,
45638            fidl_fuchsia_posix::Errno,
45639        >>(
45640            result,
45641            self.tx_id,
45642            0x392d16bee20c0e16,
45643            fidl::encoding::DynamicFlags::empty(),
45644        )
45645    }
45646}
45647
45648#[must_use = "FIDL methods require a response to be sent"]
45649#[derive(Debug)]
45650pub struct DatagramSocketGetIpPacketInfoResponder {
45651    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45652    tx_id: u32,
45653}
45654
45655/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45656/// if the responder is dropped without sending a response, so that the client
45657/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45658impl std::ops::Drop for DatagramSocketGetIpPacketInfoResponder {
45659    fn drop(&mut self) {
45660        self.control_handle.shutdown();
45661        // Safety: drops once, never accessed again
45662        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45663    }
45664}
45665
45666impl fidl::endpoints::Responder for DatagramSocketGetIpPacketInfoResponder {
45667    type ControlHandle = DatagramSocketControlHandle;
45668
45669    fn control_handle(&self) -> &DatagramSocketControlHandle {
45670        &self.control_handle
45671    }
45672
45673    fn drop_without_shutdown(mut self) {
45674        // Safety: drops once, never accessed again due to mem::forget
45675        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45676        // Prevent Drop from running (which would shut down the channel)
45677        std::mem::forget(self);
45678    }
45679}
45680
45681impl DatagramSocketGetIpPacketInfoResponder {
45682    /// Sends a response to the FIDL transaction.
45683    ///
45684    /// Sets the channel to shutdown if an error occurs.
45685    pub fn send(
45686        self,
45687        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
45688    ) -> Result<(), fidl::Error> {
45689        let _result = self.send_raw(result);
45690        if _result.is_err() {
45691            self.control_handle.shutdown();
45692        }
45693        self.drop_without_shutdown();
45694        _result
45695    }
45696
45697    /// Similar to "send" but does not shutdown the channel if an error occurs.
45698    pub fn send_no_shutdown_on_err(
45699        self,
45700        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
45701    ) -> Result<(), fidl::Error> {
45702        let _result = self.send_raw(result);
45703        self.drop_without_shutdown();
45704        _result
45705    }
45706
45707    fn send_raw(
45708        &self,
45709        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
45710    ) -> Result<(), fidl::Error> {
45711        self.control_handle.inner.send::<fidl::encoding::ResultType<
45712            BaseNetworkSocketGetIpPacketInfoResponse,
45713            fidl_fuchsia_posix::Errno,
45714        >>(
45715            result.map(|value| (value,)),
45716            self.tx_id,
45717            0x54b505f242280740,
45718            fidl::encoding::DynamicFlags::empty(),
45719        )
45720    }
45721}
45722
45723#[must_use = "FIDL methods require a response to be sent"]
45724#[derive(Debug)]
45725pub struct DatagramSocketSetIpReceiveTypeOfServiceResponder {
45726    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45727    tx_id: u32,
45728}
45729
45730/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45731/// if the responder is dropped without sending a response, so that the client
45732/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45733impl std::ops::Drop for DatagramSocketSetIpReceiveTypeOfServiceResponder {
45734    fn drop(&mut self) {
45735        self.control_handle.shutdown();
45736        // Safety: drops once, never accessed again
45737        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45738    }
45739}
45740
45741impl fidl::endpoints::Responder for DatagramSocketSetIpReceiveTypeOfServiceResponder {
45742    type ControlHandle = DatagramSocketControlHandle;
45743
45744    fn control_handle(&self) -> &DatagramSocketControlHandle {
45745        &self.control_handle
45746    }
45747
45748    fn drop_without_shutdown(mut self) {
45749        // Safety: drops once, never accessed again due to mem::forget
45750        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45751        // Prevent Drop from running (which would shut down the channel)
45752        std::mem::forget(self);
45753    }
45754}
45755
45756impl DatagramSocketSetIpReceiveTypeOfServiceResponder {
45757    /// Sends a response to the FIDL transaction.
45758    ///
45759    /// Sets the channel to shutdown if an error occurs.
45760    pub fn send(
45761        self,
45762        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45763    ) -> Result<(), fidl::Error> {
45764        let _result = self.send_raw(result);
45765        if _result.is_err() {
45766            self.control_handle.shutdown();
45767        }
45768        self.drop_without_shutdown();
45769        _result
45770    }
45771
45772    /// Similar to "send" but does not shutdown the channel if an error occurs.
45773    pub fn send_no_shutdown_on_err(
45774        self,
45775        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45776    ) -> Result<(), fidl::Error> {
45777        let _result = self.send_raw(result);
45778        self.drop_without_shutdown();
45779        _result
45780    }
45781
45782    fn send_raw(
45783        &self,
45784        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45785    ) -> Result<(), fidl::Error> {
45786        self.control_handle.inner.send::<fidl::encoding::ResultType<
45787            fidl::encoding::EmptyStruct,
45788            fidl_fuchsia_posix::Errno,
45789        >>(
45790            result,
45791            self.tx_id,
45792            0x6c4f6714995f84ef,
45793            fidl::encoding::DynamicFlags::empty(),
45794        )
45795    }
45796}
45797
45798#[must_use = "FIDL methods require a response to be sent"]
45799#[derive(Debug)]
45800pub struct DatagramSocketGetIpReceiveTypeOfServiceResponder {
45801    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45802    tx_id: u32,
45803}
45804
45805/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45806/// if the responder is dropped without sending a response, so that the client
45807/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45808impl std::ops::Drop for DatagramSocketGetIpReceiveTypeOfServiceResponder {
45809    fn drop(&mut self) {
45810        self.control_handle.shutdown();
45811        // Safety: drops once, never accessed again
45812        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45813    }
45814}
45815
45816impl fidl::endpoints::Responder for DatagramSocketGetIpReceiveTypeOfServiceResponder {
45817    type ControlHandle = DatagramSocketControlHandle;
45818
45819    fn control_handle(&self) -> &DatagramSocketControlHandle {
45820        &self.control_handle
45821    }
45822
45823    fn drop_without_shutdown(mut self) {
45824        // Safety: drops once, never accessed again due to mem::forget
45825        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45826        // Prevent Drop from running (which would shut down the channel)
45827        std::mem::forget(self);
45828    }
45829}
45830
45831impl DatagramSocketGetIpReceiveTypeOfServiceResponder {
45832    /// Sends a response to the FIDL transaction.
45833    ///
45834    /// Sets the channel to shutdown if an error occurs.
45835    pub fn send(
45836        self,
45837        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
45838    ) -> Result<(), fidl::Error> {
45839        let _result = self.send_raw(result);
45840        if _result.is_err() {
45841            self.control_handle.shutdown();
45842        }
45843        self.drop_without_shutdown();
45844        _result
45845    }
45846
45847    /// Similar to "send" but does not shutdown the channel if an error occurs.
45848    pub fn send_no_shutdown_on_err(
45849        self,
45850        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
45851    ) -> Result<(), fidl::Error> {
45852        let _result = self.send_raw(result);
45853        self.drop_without_shutdown();
45854        _result
45855    }
45856
45857    fn send_raw(
45858        &self,
45859        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
45860    ) -> Result<(), fidl::Error> {
45861        self.control_handle.inner.send::<fidl::encoding::ResultType<
45862            BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
45863            fidl_fuchsia_posix::Errno,
45864        >>(
45865            result.map(|value| (value,)),
45866            self.tx_id,
45867            0x4158ba7dc2795960,
45868            fidl::encoding::DynamicFlags::empty(),
45869        )
45870    }
45871}
45872
45873#[must_use = "FIDL methods require a response to be sent"]
45874#[derive(Debug)]
45875pub struct DatagramSocketSetIpReceiveTtlResponder {
45876    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45877    tx_id: u32,
45878}
45879
45880/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45881/// if the responder is dropped without sending a response, so that the client
45882/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45883impl std::ops::Drop for DatagramSocketSetIpReceiveTtlResponder {
45884    fn drop(&mut self) {
45885        self.control_handle.shutdown();
45886        // Safety: drops once, never accessed again
45887        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45888    }
45889}
45890
45891impl fidl::endpoints::Responder for DatagramSocketSetIpReceiveTtlResponder {
45892    type ControlHandle = DatagramSocketControlHandle;
45893
45894    fn control_handle(&self) -> &DatagramSocketControlHandle {
45895        &self.control_handle
45896    }
45897
45898    fn drop_without_shutdown(mut self) {
45899        // Safety: drops once, never accessed again due to mem::forget
45900        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45901        // Prevent Drop from running (which would shut down the channel)
45902        std::mem::forget(self);
45903    }
45904}
45905
45906impl DatagramSocketSetIpReceiveTtlResponder {
45907    /// Sends a response to the FIDL transaction.
45908    ///
45909    /// Sets the channel to shutdown if an error occurs.
45910    pub fn send(
45911        self,
45912        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45913    ) -> Result<(), fidl::Error> {
45914        let _result = self.send_raw(result);
45915        if _result.is_err() {
45916            self.control_handle.shutdown();
45917        }
45918        self.drop_without_shutdown();
45919        _result
45920    }
45921
45922    /// Similar to "send" but does not shutdown the channel if an error occurs.
45923    pub fn send_no_shutdown_on_err(
45924        self,
45925        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45926    ) -> Result<(), fidl::Error> {
45927        let _result = self.send_raw(result);
45928        self.drop_without_shutdown();
45929        _result
45930    }
45931
45932    fn send_raw(
45933        &self,
45934        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45935    ) -> Result<(), fidl::Error> {
45936        self.control_handle.inner.send::<fidl::encoding::ResultType<
45937            fidl::encoding::EmptyStruct,
45938            fidl_fuchsia_posix::Errno,
45939        >>(
45940            result,
45941            self.tx_id,
45942            0x46f15be0ce0ab82b,
45943            fidl::encoding::DynamicFlags::empty(),
45944        )
45945    }
45946}
45947
45948#[must_use = "FIDL methods require a response to be sent"]
45949#[derive(Debug)]
45950pub struct DatagramSocketGetIpReceiveTtlResponder {
45951    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45952    tx_id: u32,
45953}
45954
45955/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45956/// if the responder is dropped without sending a response, so that the client
45957/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45958impl std::ops::Drop for DatagramSocketGetIpReceiveTtlResponder {
45959    fn drop(&mut self) {
45960        self.control_handle.shutdown();
45961        // Safety: drops once, never accessed again
45962        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45963    }
45964}
45965
45966impl fidl::endpoints::Responder for DatagramSocketGetIpReceiveTtlResponder {
45967    type ControlHandle = DatagramSocketControlHandle;
45968
45969    fn control_handle(&self) -> &DatagramSocketControlHandle {
45970        &self.control_handle
45971    }
45972
45973    fn drop_without_shutdown(mut self) {
45974        // Safety: drops once, never accessed again due to mem::forget
45975        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45976        // Prevent Drop from running (which would shut down the channel)
45977        std::mem::forget(self);
45978    }
45979}
45980
45981impl DatagramSocketGetIpReceiveTtlResponder {
45982    /// Sends a response to the FIDL transaction.
45983    ///
45984    /// Sets the channel to shutdown if an error occurs.
45985    pub fn send(
45986        self,
45987        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
45988    ) -> Result<(), fidl::Error> {
45989        let _result = self.send_raw(result);
45990        if _result.is_err() {
45991            self.control_handle.shutdown();
45992        }
45993        self.drop_without_shutdown();
45994        _result
45995    }
45996
45997    /// Similar to "send" but does not shutdown the channel if an error occurs.
45998    pub fn send_no_shutdown_on_err(
45999        self,
46000        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
46001    ) -> Result<(), fidl::Error> {
46002        let _result = self.send_raw(result);
46003        self.drop_without_shutdown();
46004        _result
46005    }
46006
46007    fn send_raw(
46008        &self,
46009        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
46010    ) -> Result<(), fidl::Error> {
46011        self.control_handle.inner.send::<fidl::encoding::ResultType<
46012            BaseNetworkSocketGetIpReceiveTtlResponse,
46013            fidl_fuchsia_posix::Errno,
46014        >>(
46015            result.map(|value| (value,)),
46016            self.tx_id,
46017            0x678ddd5a5dfa2eb5,
46018            fidl::encoding::DynamicFlags::empty(),
46019        )
46020    }
46021}
46022
46023#[must_use = "FIDL methods require a response to be sent"]
46024#[derive(Debug)]
46025pub struct DatagramSocketSetIpMulticastInterfaceResponder {
46026    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46027    tx_id: u32,
46028}
46029
46030/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46031/// if the responder is dropped without sending a response, so that the client
46032/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46033impl std::ops::Drop for DatagramSocketSetIpMulticastInterfaceResponder {
46034    fn drop(&mut self) {
46035        self.control_handle.shutdown();
46036        // Safety: drops once, never accessed again
46037        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46038    }
46039}
46040
46041impl fidl::endpoints::Responder for DatagramSocketSetIpMulticastInterfaceResponder {
46042    type ControlHandle = DatagramSocketControlHandle;
46043
46044    fn control_handle(&self) -> &DatagramSocketControlHandle {
46045        &self.control_handle
46046    }
46047
46048    fn drop_without_shutdown(mut self) {
46049        // Safety: drops once, never accessed again due to mem::forget
46050        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46051        // Prevent Drop from running (which would shut down the channel)
46052        std::mem::forget(self);
46053    }
46054}
46055
46056impl DatagramSocketSetIpMulticastInterfaceResponder {
46057    /// Sends a response to the FIDL transaction.
46058    ///
46059    /// Sets the channel to shutdown if an error occurs.
46060    pub fn send(
46061        self,
46062        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46063    ) -> Result<(), fidl::Error> {
46064        let _result = self.send_raw(result);
46065        if _result.is_err() {
46066            self.control_handle.shutdown();
46067        }
46068        self.drop_without_shutdown();
46069        _result
46070    }
46071
46072    /// Similar to "send" but does not shutdown the channel if an error occurs.
46073    pub fn send_no_shutdown_on_err(
46074        self,
46075        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46076    ) -> Result<(), fidl::Error> {
46077        let _result = self.send_raw(result);
46078        self.drop_without_shutdown();
46079        _result
46080    }
46081
46082    fn send_raw(
46083        &self,
46084        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46085    ) -> Result<(), fidl::Error> {
46086        self.control_handle.inner.send::<fidl::encoding::ResultType<
46087            fidl::encoding::EmptyStruct,
46088            fidl_fuchsia_posix::Errno,
46089        >>(
46090            result,
46091            self.tx_id,
46092            0x752fbfa9b12befe,
46093            fidl::encoding::DynamicFlags::empty(),
46094        )
46095    }
46096}
46097
46098#[must_use = "FIDL methods require a response to be sent"]
46099#[derive(Debug)]
46100pub struct DatagramSocketGetIpMulticastInterfaceResponder {
46101    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46102    tx_id: u32,
46103}
46104
46105/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46106/// if the responder is dropped without sending a response, so that the client
46107/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46108impl std::ops::Drop for DatagramSocketGetIpMulticastInterfaceResponder {
46109    fn drop(&mut self) {
46110        self.control_handle.shutdown();
46111        // Safety: drops once, never accessed again
46112        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46113    }
46114}
46115
46116impl fidl::endpoints::Responder for DatagramSocketGetIpMulticastInterfaceResponder {
46117    type ControlHandle = DatagramSocketControlHandle;
46118
46119    fn control_handle(&self) -> &DatagramSocketControlHandle {
46120        &self.control_handle
46121    }
46122
46123    fn drop_without_shutdown(mut self) {
46124        // Safety: drops once, never accessed again due to mem::forget
46125        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46126        // Prevent Drop from running (which would shut down the channel)
46127        std::mem::forget(self);
46128    }
46129}
46130
46131impl DatagramSocketGetIpMulticastInterfaceResponder {
46132    /// Sends a response to the FIDL transaction.
46133    ///
46134    /// Sets the channel to shutdown if an error occurs.
46135    pub fn send(
46136        self,
46137        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
46138    ) -> Result<(), fidl::Error> {
46139        let _result = self.send_raw(result);
46140        if _result.is_err() {
46141            self.control_handle.shutdown();
46142        }
46143        self.drop_without_shutdown();
46144        _result
46145    }
46146
46147    /// Similar to "send" but does not shutdown the channel if an error occurs.
46148    pub fn send_no_shutdown_on_err(
46149        self,
46150        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
46151    ) -> Result<(), fidl::Error> {
46152        let _result = self.send_raw(result);
46153        self.drop_without_shutdown();
46154        _result
46155    }
46156
46157    fn send_raw(
46158        &self,
46159        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
46160    ) -> Result<(), fidl::Error> {
46161        self.control_handle.inner.send::<fidl::encoding::ResultType<
46162            BaseNetworkSocketGetIpMulticastInterfaceResponse,
46163            fidl_fuchsia_posix::Errno,
46164        >>(
46165            result.map(|value| (value,)),
46166            self.tx_id,
46167            0x320bd14c4df046c4,
46168            fidl::encoding::DynamicFlags::empty(),
46169        )
46170    }
46171}
46172
46173#[must_use = "FIDL methods require a response to be sent"]
46174#[derive(Debug)]
46175pub struct DatagramSocketSetIpMulticastTtlResponder {
46176    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46177    tx_id: u32,
46178}
46179
46180/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46181/// if the responder is dropped without sending a response, so that the client
46182/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46183impl std::ops::Drop for DatagramSocketSetIpMulticastTtlResponder {
46184    fn drop(&mut self) {
46185        self.control_handle.shutdown();
46186        // Safety: drops once, never accessed again
46187        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46188    }
46189}
46190
46191impl fidl::endpoints::Responder for DatagramSocketSetIpMulticastTtlResponder {
46192    type ControlHandle = DatagramSocketControlHandle;
46193
46194    fn control_handle(&self) -> &DatagramSocketControlHandle {
46195        &self.control_handle
46196    }
46197
46198    fn drop_without_shutdown(mut self) {
46199        // Safety: drops once, never accessed again due to mem::forget
46200        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46201        // Prevent Drop from running (which would shut down the channel)
46202        std::mem::forget(self);
46203    }
46204}
46205
46206impl DatagramSocketSetIpMulticastTtlResponder {
46207    /// Sends a response to the FIDL transaction.
46208    ///
46209    /// Sets the channel to shutdown if an error occurs.
46210    pub fn send(
46211        self,
46212        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46213    ) -> Result<(), fidl::Error> {
46214        let _result = self.send_raw(result);
46215        if _result.is_err() {
46216            self.control_handle.shutdown();
46217        }
46218        self.drop_without_shutdown();
46219        _result
46220    }
46221
46222    /// Similar to "send" but does not shutdown the channel if an error occurs.
46223    pub fn send_no_shutdown_on_err(
46224        self,
46225        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46226    ) -> Result<(), fidl::Error> {
46227        let _result = self.send_raw(result);
46228        self.drop_without_shutdown();
46229        _result
46230    }
46231
46232    fn send_raw(
46233        &self,
46234        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46235    ) -> Result<(), fidl::Error> {
46236        self.control_handle.inner.send::<fidl::encoding::ResultType<
46237            fidl::encoding::EmptyStruct,
46238            fidl_fuchsia_posix::Errno,
46239        >>(
46240            result,
46241            self.tx_id,
46242            0x63134d53772916a1,
46243            fidl::encoding::DynamicFlags::empty(),
46244        )
46245    }
46246}
46247
46248#[must_use = "FIDL methods require a response to be sent"]
46249#[derive(Debug)]
46250pub struct DatagramSocketGetIpMulticastTtlResponder {
46251    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46252    tx_id: u32,
46253}
46254
46255/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46256/// if the responder is dropped without sending a response, so that the client
46257/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46258impl std::ops::Drop for DatagramSocketGetIpMulticastTtlResponder {
46259    fn drop(&mut self) {
46260        self.control_handle.shutdown();
46261        // Safety: drops once, never accessed again
46262        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46263    }
46264}
46265
46266impl fidl::endpoints::Responder for DatagramSocketGetIpMulticastTtlResponder {
46267    type ControlHandle = DatagramSocketControlHandle;
46268
46269    fn control_handle(&self) -> &DatagramSocketControlHandle {
46270        &self.control_handle
46271    }
46272
46273    fn drop_without_shutdown(mut self) {
46274        // Safety: drops once, never accessed again due to mem::forget
46275        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46276        // Prevent Drop from running (which would shut down the channel)
46277        std::mem::forget(self);
46278    }
46279}
46280
46281impl DatagramSocketGetIpMulticastTtlResponder {
46282    /// Sends a response to the FIDL transaction.
46283    ///
46284    /// Sets the channel to shutdown if an error occurs.
46285    pub fn send(
46286        self,
46287        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
46288    ) -> Result<(), fidl::Error> {
46289        let _result = self.send_raw(result);
46290        if _result.is_err() {
46291            self.control_handle.shutdown();
46292        }
46293        self.drop_without_shutdown();
46294        _result
46295    }
46296
46297    /// Similar to "send" but does not shutdown the channel if an error occurs.
46298    pub fn send_no_shutdown_on_err(
46299        self,
46300        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
46301    ) -> Result<(), fidl::Error> {
46302        let _result = self.send_raw(result);
46303        self.drop_without_shutdown();
46304        _result
46305    }
46306
46307    fn send_raw(
46308        &self,
46309        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
46310    ) -> Result<(), fidl::Error> {
46311        self.control_handle.inner.send::<fidl::encoding::ResultType<
46312            BaseNetworkSocketGetIpMulticastTtlResponse,
46313            fidl_fuchsia_posix::Errno,
46314        >>(
46315            result.map(|value| (value,)),
46316            self.tx_id,
46317            0x4665cd378f39e1a,
46318            fidl::encoding::DynamicFlags::empty(),
46319        )
46320    }
46321}
46322
46323#[must_use = "FIDL methods require a response to be sent"]
46324#[derive(Debug)]
46325pub struct DatagramSocketSetIpMulticastLoopbackResponder {
46326    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46327    tx_id: u32,
46328}
46329
46330/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46331/// if the responder is dropped without sending a response, so that the client
46332/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46333impl std::ops::Drop for DatagramSocketSetIpMulticastLoopbackResponder {
46334    fn drop(&mut self) {
46335        self.control_handle.shutdown();
46336        // Safety: drops once, never accessed again
46337        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46338    }
46339}
46340
46341impl fidl::endpoints::Responder for DatagramSocketSetIpMulticastLoopbackResponder {
46342    type ControlHandle = DatagramSocketControlHandle;
46343
46344    fn control_handle(&self) -> &DatagramSocketControlHandle {
46345        &self.control_handle
46346    }
46347
46348    fn drop_without_shutdown(mut self) {
46349        // Safety: drops once, never accessed again due to mem::forget
46350        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46351        // Prevent Drop from running (which would shut down the channel)
46352        std::mem::forget(self);
46353    }
46354}
46355
46356impl DatagramSocketSetIpMulticastLoopbackResponder {
46357    /// Sends a response to the FIDL transaction.
46358    ///
46359    /// Sets the channel to shutdown if an error occurs.
46360    pub fn send(
46361        self,
46362        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46363    ) -> Result<(), fidl::Error> {
46364        let _result = self.send_raw(result);
46365        if _result.is_err() {
46366            self.control_handle.shutdown();
46367        }
46368        self.drop_without_shutdown();
46369        _result
46370    }
46371
46372    /// Similar to "send" but does not shutdown the channel if an error occurs.
46373    pub fn send_no_shutdown_on_err(
46374        self,
46375        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46376    ) -> Result<(), fidl::Error> {
46377        let _result = self.send_raw(result);
46378        self.drop_without_shutdown();
46379        _result
46380    }
46381
46382    fn send_raw(
46383        &self,
46384        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46385    ) -> Result<(), fidl::Error> {
46386        self.control_handle.inner.send::<fidl::encoding::ResultType<
46387            fidl::encoding::EmptyStruct,
46388            fidl_fuchsia_posix::Errno,
46389        >>(
46390            result,
46391            self.tx_id,
46392            0x20c55c11f00943ea,
46393            fidl::encoding::DynamicFlags::empty(),
46394        )
46395    }
46396}
46397
46398#[must_use = "FIDL methods require a response to be sent"]
46399#[derive(Debug)]
46400pub struct DatagramSocketGetIpMulticastLoopbackResponder {
46401    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46402    tx_id: u32,
46403}
46404
46405/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46406/// if the responder is dropped without sending a response, so that the client
46407/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46408impl std::ops::Drop for DatagramSocketGetIpMulticastLoopbackResponder {
46409    fn drop(&mut self) {
46410        self.control_handle.shutdown();
46411        // Safety: drops once, never accessed again
46412        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46413    }
46414}
46415
46416impl fidl::endpoints::Responder for DatagramSocketGetIpMulticastLoopbackResponder {
46417    type ControlHandle = DatagramSocketControlHandle;
46418
46419    fn control_handle(&self) -> &DatagramSocketControlHandle {
46420        &self.control_handle
46421    }
46422
46423    fn drop_without_shutdown(mut self) {
46424        // Safety: drops once, never accessed again due to mem::forget
46425        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46426        // Prevent Drop from running (which would shut down the channel)
46427        std::mem::forget(self);
46428    }
46429}
46430
46431impl DatagramSocketGetIpMulticastLoopbackResponder {
46432    /// Sends a response to the FIDL transaction.
46433    ///
46434    /// Sets the channel to shutdown if an error occurs.
46435    pub fn send(
46436        self,
46437        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
46438    ) -> Result<(), fidl::Error> {
46439        let _result = self.send_raw(result);
46440        if _result.is_err() {
46441            self.control_handle.shutdown();
46442        }
46443        self.drop_without_shutdown();
46444        _result
46445    }
46446
46447    /// Similar to "send" but does not shutdown the channel if an error occurs.
46448    pub fn send_no_shutdown_on_err(
46449        self,
46450        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
46451    ) -> Result<(), fidl::Error> {
46452        let _result = self.send_raw(result);
46453        self.drop_without_shutdown();
46454        _result
46455    }
46456
46457    fn send_raw(
46458        &self,
46459        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
46460    ) -> Result<(), fidl::Error> {
46461        self.control_handle.inner.send::<fidl::encoding::ResultType<
46462            BaseNetworkSocketGetIpMulticastLoopbackResponse,
46463            fidl_fuchsia_posix::Errno,
46464        >>(
46465            result.map(|value| (value,)),
46466            self.tx_id,
46467            0x3b6b26ff558298f2,
46468            fidl::encoding::DynamicFlags::empty(),
46469        )
46470    }
46471}
46472
46473#[must_use = "FIDL methods require a response to be sent"]
46474#[derive(Debug)]
46475pub struct DatagramSocketAddIpMembershipResponder {
46476    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46477    tx_id: u32,
46478}
46479
46480/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46481/// if the responder is dropped without sending a response, so that the client
46482/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46483impl std::ops::Drop for DatagramSocketAddIpMembershipResponder {
46484    fn drop(&mut self) {
46485        self.control_handle.shutdown();
46486        // Safety: drops once, never accessed again
46487        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46488    }
46489}
46490
46491impl fidl::endpoints::Responder for DatagramSocketAddIpMembershipResponder {
46492    type ControlHandle = DatagramSocketControlHandle;
46493
46494    fn control_handle(&self) -> &DatagramSocketControlHandle {
46495        &self.control_handle
46496    }
46497
46498    fn drop_without_shutdown(mut self) {
46499        // Safety: drops once, never accessed again due to mem::forget
46500        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46501        // Prevent Drop from running (which would shut down the channel)
46502        std::mem::forget(self);
46503    }
46504}
46505
46506impl DatagramSocketAddIpMembershipResponder {
46507    /// Sends a response to the FIDL transaction.
46508    ///
46509    /// Sets the channel to shutdown if an error occurs.
46510    pub fn send(
46511        self,
46512        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46513    ) -> Result<(), fidl::Error> {
46514        let _result = self.send_raw(result);
46515        if _result.is_err() {
46516            self.control_handle.shutdown();
46517        }
46518        self.drop_without_shutdown();
46519        _result
46520    }
46521
46522    /// Similar to "send" but does not shutdown the channel if an error occurs.
46523    pub fn send_no_shutdown_on_err(
46524        self,
46525        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46526    ) -> Result<(), fidl::Error> {
46527        let _result = self.send_raw(result);
46528        self.drop_without_shutdown();
46529        _result
46530    }
46531
46532    fn send_raw(
46533        &self,
46534        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46535    ) -> Result<(), fidl::Error> {
46536        self.control_handle.inner.send::<fidl::encoding::ResultType<
46537            fidl::encoding::EmptyStruct,
46538            fidl_fuchsia_posix::Errno,
46539        >>(
46540            result,
46541            self.tx_id,
46542            0x76bc7df115a3b4d0,
46543            fidl::encoding::DynamicFlags::empty(),
46544        )
46545    }
46546}
46547
46548#[must_use = "FIDL methods require a response to be sent"]
46549#[derive(Debug)]
46550pub struct DatagramSocketDropIpMembershipResponder {
46551    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46552    tx_id: u32,
46553}
46554
46555/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46556/// if the responder is dropped without sending a response, so that the client
46557/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46558impl std::ops::Drop for DatagramSocketDropIpMembershipResponder {
46559    fn drop(&mut self) {
46560        self.control_handle.shutdown();
46561        // Safety: drops once, never accessed again
46562        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46563    }
46564}
46565
46566impl fidl::endpoints::Responder for DatagramSocketDropIpMembershipResponder {
46567    type ControlHandle = DatagramSocketControlHandle;
46568
46569    fn control_handle(&self) -> &DatagramSocketControlHandle {
46570        &self.control_handle
46571    }
46572
46573    fn drop_without_shutdown(mut self) {
46574        // Safety: drops once, never accessed again due to mem::forget
46575        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46576        // Prevent Drop from running (which would shut down the channel)
46577        std::mem::forget(self);
46578    }
46579}
46580
46581impl DatagramSocketDropIpMembershipResponder {
46582    /// Sends a response to the FIDL transaction.
46583    ///
46584    /// Sets the channel to shutdown if an error occurs.
46585    pub fn send(
46586        self,
46587        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46588    ) -> Result<(), fidl::Error> {
46589        let _result = self.send_raw(result);
46590        if _result.is_err() {
46591            self.control_handle.shutdown();
46592        }
46593        self.drop_without_shutdown();
46594        _result
46595    }
46596
46597    /// Similar to "send" but does not shutdown the channel if an error occurs.
46598    pub fn send_no_shutdown_on_err(
46599        self,
46600        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46601    ) -> Result<(), fidl::Error> {
46602        let _result = self.send_raw(result);
46603        self.drop_without_shutdown();
46604        _result
46605    }
46606
46607    fn send_raw(
46608        &self,
46609        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46610    ) -> Result<(), fidl::Error> {
46611        self.control_handle.inner.send::<fidl::encoding::ResultType<
46612            fidl::encoding::EmptyStruct,
46613            fidl_fuchsia_posix::Errno,
46614        >>(
46615            result,
46616            self.tx_id,
46617            0x2888f3099188d03,
46618            fidl::encoding::DynamicFlags::empty(),
46619        )
46620    }
46621}
46622
46623#[must_use = "FIDL methods require a response to be sent"]
46624#[derive(Debug)]
46625pub struct DatagramSocketSetIpTransparentResponder {
46626    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46627    tx_id: u32,
46628}
46629
46630/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46631/// if the responder is dropped without sending a response, so that the client
46632/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46633impl std::ops::Drop for DatagramSocketSetIpTransparentResponder {
46634    fn drop(&mut self) {
46635        self.control_handle.shutdown();
46636        // Safety: drops once, never accessed again
46637        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46638    }
46639}
46640
46641impl fidl::endpoints::Responder for DatagramSocketSetIpTransparentResponder {
46642    type ControlHandle = DatagramSocketControlHandle;
46643
46644    fn control_handle(&self) -> &DatagramSocketControlHandle {
46645        &self.control_handle
46646    }
46647
46648    fn drop_without_shutdown(mut self) {
46649        // Safety: drops once, never accessed again due to mem::forget
46650        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46651        // Prevent Drop from running (which would shut down the channel)
46652        std::mem::forget(self);
46653    }
46654}
46655
46656impl DatagramSocketSetIpTransparentResponder {
46657    /// Sends a response to the FIDL transaction.
46658    ///
46659    /// Sets the channel to shutdown if an error occurs.
46660    pub fn send(
46661        self,
46662        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46663    ) -> Result<(), fidl::Error> {
46664        let _result = self.send_raw(result);
46665        if _result.is_err() {
46666            self.control_handle.shutdown();
46667        }
46668        self.drop_without_shutdown();
46669        _result
46670    }
46671
46672    /// Similar to "send" but does not shutdown the channel if an error occurs.
46673    pub fn send_no_shutdown_on_err(
46674        self,
46675        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46676    ) -> Result<(), fidl::Error> {
46677        let _result = self.send_raw(result);
46678        self.drop_without_shutdown();
46679        _result
46680    }
46681
46682    fn send_raw(
46683        &self,
46684        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46685    ) -> Result<(), fidl::Error> {
46686        self.control_handle.inner.send::<fidl::encoding::ResultType<
46687            fidl::encoding::EmptyStruct,
46688            fidl_fuchsia_posix::Errno,
46689        >>(
46690            result,
46691            self.tx_id,
46692            0x1ae532b0c066e3a0,
46693            fidl::encoding::DynamicFlags::empty(),
46694        )
46695    }
46696}
46697
46698#[must_use = "FIDL methods require a response to be sent"]
46699#[derive(Debug)]
46700pub struct DatagramSocketGetIpTransparentResponder {
46701    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46702    tx_id: u32,
46703}
46704
46705/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46706/// if the responder is dropped without sending a response, so that the client
46707/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46708impl std::ops::Drop for DatagramSocketGetIpTransparentResponder {
46709    fn drop(&mut self) {
46710        self.control_handle.shutdown();
46711        // Safety: drops once, never accessed again
46712        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46713    }
46714}
46715
46716impl fidl::endpoints::Responder for DatagramSocketGetIpTransparentResponder {
46717    type ControlHandle = DatagramSocketControlHandle;
46718
46719    fn control_handle(&self) -> &DatagramSocketControlHandle {
46720        &self.control_handle
46721    }
46722
46723    fn drop_without_shutdown(mut self) {
46724        // Safety: drops once, never accessed again due to mem::forget
46725        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46726        // Prevent Drop from running (which would shut down the channel)
46727        std::mem::forget(self);
46728    }
46729}
46730
46731impl DatagramSocketGetIpTransparentResponder {
46732    /// Sends a response to the FIDL transaction.
46733    ///
46734    /// Sets the channel to shutdown if an error occurs.
46735    pub fn send(
46736        self,
46737        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
46738    ) -> Result<(), fidl::Error> {
46739        let _result = self.send_raw(result);
46740        if _result.is_err() {
46741            self.control_handle.shutdown();
46742        }
46743        self.drop_without_shutdown();
46744        _result
46745    }
46746
46747    /// Similar to "send" but does not shutdown the channel if an error occurs.
46748    pub fn send_no_shutdown_on_err(
46749        self,
46750        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
46751    ) -> Result<(), fidl::Error> {
46752        let _result = self.send_raw(result);
46753        self.drop_without_shutdown();
46754        _result
46755    }
46756
46757    fn send_raw(
46758        &self,
46759        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
46760    ) -> Result<(), fidl::Error> {
46761        self.control_handle.inner.send::<fidl::encoding::ResultType<
46762            BaseNetworkSocketGetIpTransparentResponse,
46763            fidl_fuchsia_posix::Errno,
46764        >>(
46765            result.map(|value| (value,)),
46766            self.tx_id,
46767            0x51d43695962ebfb5,
46768            fidl::encoding::DynamicFlags::empty(),
46769        )
46770    }
46771}
46772
46773#[must_use = "FIDL methods require a response to be sent"]
46774#[derive(Debug)]
46775pub struct DatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
46776    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46777    tx_id: u32,
46778}
46779
46780/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46781/// if the responder is dropped without sending a response, so that the client
46782/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46783impl std::ops::Drop for DatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
46784    fn drop(&mut self) {
46785        self.control_handle.shutdown();
46786        // Safety: drops once, never accessed again
46787        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46788    }
46789}
46790
46791impl fidl::endpoints::Responder for DatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
46792    type ControlHandle = DatagramSocketControlHandle;
46793
46794    fn control_handle(&self) -> &DatagramSocketControlHandle {
46795        &self.control_handle
46796    }
46797
46798    fn drop_without_shutdown(mut self) {
46799        // Safety: drops once, never accessed again due to mem::forget
46800        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46801        // Prevent Drop from running (which would shut down the channel)
46802        std::mem::forget(self);
46803    }
46804}
46805
46806impl DatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
46807    /// Sends a response to the FIDL transaction.
46808    ///
46809    /// Sets the channel to shutdown if an error occurs.
46810    pub fn send(
46811        self,
46812        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46813    ) -> Result<(), fidl::Error> {
46814        let _result = self.send_raw(result);
46815        if _result.is_err() {
46816            self.control_handle.shutdown();
46817        }
46818        self.drop_without_shutdown();
46819        _result
46820    }
46821
46822    /// Similar to "send" but does not shutdown the channel if an error occurs.
46823    pub fn send_no_shutdown_on_err(
46824        self,
46825        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46826    ) -> Result<(), fidl::Error> {
46827        let _result = self.send_raw(result);
46828        self.drop_without_shutdown();
46829        _result
46830    }
46831
46832    fn send_raw(
46833        &self,
46834        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46835    ) -> Result<(), fidl::Error> {
46836        self.control_handle.inner.send::<fidl::encoding::ResultType<
46837            fidl::encoding::EmptyStruct,
46838            fidl_fuchsia_posix::Errno,
46839        >>(
46840            result,
46841            self.tx_id,
46842            0x4722b4ce52f7840,
46843            fidl::encoding::DynamicFlags::empty(),
46844        )
46845    }
46846}
46847
46848#[must_use = "FIDL methods require a response to be sent"]
46849#[derive(Debug)]
46850pub struct DatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
46851    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46852    tx_id: u32,
46853}
46854
46855/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46856/// if the responder is dropped without sending a response, so that the client
46857/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46858impl std::ops::Drop for DatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
46859    fn drop(&mut self) {
46860        self.control_handle.shutdown();
46861        // Safety: drops once, never accessed again
46862        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46863    }
46864}
46865
46866impl fidl::endpoints::Responder for DatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
46867    type ControlHandle = DatagramSocketControlHandle;
46868
46869    fn control_handle(&self) -> &DatagramSocketControlHandle {
46870        &self.control_handle
46871    }
46872
46873    fn drop_without_shutdown(mut self) {
46874        // Safety: drops once, never accessed again due to mem::forget
46875        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46876        // Prevent Drop from running (which would shut down the channel)
46877        std::mem::forget(self);
46878    }
46879}
46880
46881impl DatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
46882    /// Sends a response to the FIDL transaction.
46883    ///
46884    /// Sets the channel to shutdown if an error occurs.
46885    pub fn send(
46886        self,
46887        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
46888    ) -> Result<(), fidl::Error> {
46889        let _result = self.send_raw(result);
46890        if _result.is_err() {
46891            self.control_handle.shutdown();
46892        }
46893        self.drop_without_shutdown();
46894        _result
46895    }
46896
46897    /// Similar to "send" but does not shutdown the channel if an error occurs.
46898    pub fn send_no_shutdown_on_err(
46899        self,
46900        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
46901    ) -> Result<(), fidl::Error> {
46902        let _result = self.send_raw(result);
46903        self.drop_without_shutdown();
46904        _result
46905    }
46906
46907    fn send_raw(
46908        &self,
46909        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
46910    ) -> Result<(), fidl::Error> {
46911        self.control_handle.inner.send::<fidl::encoding::ResultType<
46912            BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
46913            fidl_fuchsia_posix::Errno,
46914        >>(
46915            result.map(|value| (value,)),
46916            self.tx_id,
46917            0x2a0e7dc5d6bfdfe9,
46918            fidl::encoding::DynamicFlags::empty(),
46919        )
46920    }
46921}
46922
46923#[must_use = "FIDL methods require a response to be sent"]
46924#[derive(Debug)]
46925pub struct DatagramSocketAddIpv6MembershipResponder {
46926    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46927    tx_id: u32,
46928}
46929
46930/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46931/// if the responder is dropped without sending a response, so that the client
46932/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46933impl std::ops::Drop for DatagramSocketAddIpv6MembershipResponder {
46934    fn drop(&mut self) {
46935        self.control_handle.shutdown();
46936        // Safety: drops once, never accessed again
46937        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46938    }
46939}
46940
46941impl fidl::endpoints::Responder for DatagramSocketAddIpv6MembershipResponder {
46942    type ControlHandle = DatagramSocketControlHandle;
46943
46944    fn control_handle(&self) -> &DatagramSocketControlHandle {
46945        &self.control_handle
46946    }
46947
46948    fn drop_without_shutdown(mut self) {
46949        // Safety: drops once, never accessed again due to mem::forget
46950        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46951        // Prevent Drop from running (which would shut down the channel)
46952        std::mem::forget(self);
46953    }
46954}
46955
46956impl DatagramSocketAddIpv6MembershipResponder {
46957    /// Sends a response to the FIDL transaction.
46958    ///
46959    /// Sets the channel to shutdown if an error occurs.
46960    pub fn send(
46961        self,
46962        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46963    ) -> Result<(), fidl::Error> {
46964        let _result = self.send_raw(result);
46965        if _result.is_err() {
46966            self.control_handle.shutdown();
46967        }
46968        self.drop_without_shutdown();
46969        _result
46970    }
46971
46972    /// Similar to "send" but does not shutdown the channel if an error occurs.
46973    pub fn send_no_shutdown_on_err(
46974        self,
46975        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46976    ) -> Result<(), fidl::Error> {
46977        let _result = self.send_raw(result);
46978        self.drop_without_shutdown();
46979        _result
46980    }
46981
46982    fn send_raw(
46983        &self,
46984        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46985    ) -> Result<(), fidl::Error> {
46986        self.control_handle.inner.send::<fidl::encoding::ResultType<
46987            fidl::encoding::EmptyStruct,
46988            fidl_fuchsia_posix::Errno,
46989        >>(
46990            result,
46991            self.tx_id,
46992            0x7c94727acb4ea4b3,
46993            fidl::encoding::DynamicFlags::empty(),
46994        )
46995    }
46996}
46997
46998#[must_use = "FIDL methods require a response to be sent"]
46999#[derive(Debug)]
47000pub struct DatagramSocketDropIpv6MembershipResponder {
47001    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47002    tx_id: u32,
47003}
47004
47005/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47006/// if the responder is dropped without sending a response, so that the client
47007/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47008impl std::ops::Drop for DatagramSocketDropIpv6MembershipResponder {
47009    fn drop(&mut self) {
47010        self.control_handle.shutdown();
47011        // Safety: drops once, never accessed again
47012        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47013    }
47014}
47015
47016impl fidl::endpoints::Responder for DatagramSocketDropIpv6MembershipResponder {
47017    type ControlHandle = DatagramSocketControlHandle;
47018
47019    fn control_handle(&self) -> &DatagramSocketControlHandle {
47020        &self.control_handle
47021    }
47022
47023    fn drop_without_shutdown(mut self) {
47024        // Safety: drops once, never accessed again due to mem::forget
47025        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47026        // Prevent Drop from running (which would shut down the channel)
47027        std::mem::forget(self);
47028    }
47029}
47030
47031impl DatagramSocketDropIpv6MembershipResponder {
47032    /// Sends a response to the FIDL transaction.
47033    ///
47034    /// Sets the channel to shutdown if an error occurs.
47035    pub fn send(
47036        self,
47037        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47038    ) -> Result<(), fidl::Error> {
47039        let _result = self.send_raw(result);
47040        if _result.is_err() {
47041            self.control_handle.shutdown();
47042        }
47043        self.drop_without_shutdown();
47044        _result
47045    }
47046
47047    /// Similar to "send" but does not shutdown the channel if an error occurs.
47048    pub fn send_no_shutdown_on_err(
47049        self,
47050        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47051    ) -> Result<(), fidl::Error> {
47052        let _result = self.send_raw(result);
47053        self.drop_without_shutdown();
47054        _result
47055    }
47056
47057    fn send_raw(
47058        &self,
47059        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47060    ) -> Result<(), fidl::Error> {
47061        self.control_handle.inner.send::<fidl::encoding::ResultType<
47062            fidl::encoding::EmptyStruct,
47063            fidl_fuchsia_posix::Errno,
47064        >>(
47065            result,
47066            self.tx_id,
47067            0x42104c70ccaba304,
47068            fidl::encoding::DynamicFlags::empty(),
47069        )
47070    }
47071}
47072
47073#[must_use = "FIDL methods require a response to be sent"]
47074#[derive(Debug)]
47075pub struct DatagramSocketSetIpv6MulticastInterfaceResponder {
47076    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47077    tx_id: u32,
47078}
47079
47080/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47081/// if the responder is dropped without sending a response, so that the client
47082/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47083impl std::ops::Drop for DatagramSocketSetIpv6MulticastInterfaceResponder {
47084    fn drop(&mut self) {
47085        self.control_handle.shutdown();
47086        // Safety: drops once, never accessed again
47087        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47088    }
47089}
47090
47091impl fidl::endpoints::Responder for DatagramSocketSetIpv6MulticastInterfaceResponder {
47092    type ControlHandle = DatagramSocketControlHandle;
47093
47094    fn control_handle(&self) -> &DatagramSocketControlHandle {
47095        &self.control_handle
47096    }
47097
47098    fn drop_without_shutdown(mut self) {
47099        // Safety: drops once, never accessed again due to mem::forget
47100        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47101        // Prevent Drop from running (which would shut down the channel)
47102        std::mem::forget(self);
47103    }
47104}
47105
47106impl DatagramSocketSetIpv6MulticastInterfaceResponder {
47107    /// Sends a response to the FIDL transaction.
47108    ///
47109    /// Sets the channel to shutdown if an error occurs.
47110    pub fn send(
47111        self,
47112        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47113    ) -> Result<(), fidl::Error> {
47114        let _result = self.send_raw(result);
47115        if _result.is_err() {
47116            self.control_handle.shutdown();
47117        }
47118        self.drop_without_shutdown();
47119        _result
47120    }
47121
47122    /// Similar to "send" but does not shutdown the channel if an error occurs.
47123    pub fn send_no_shutdown_on_err(
47124        self,
47125        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47126    ) -> Result<(), fidl::Error> {
47127        let _result = self.send_raw(result);
47128        self.drop_without_shutdown();
47129        _result
47130    }
47131
47132    fn send_raw(
47133        &self,
47134        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47135    ) -> Result<(), fidl::Error> {
47136        self.control_handle.inner.send::<fidl::encoding::ResultType<
47137            fidl::encoding::EmptyStruct,
47138            fidl_fuchsia_posix::Errno,
47139        >>(
47140            result,
47141            self.tx_id,
47142            0x135f76db3774ab3b,
47143            fidl::encoding::DynamicFlags::empty(),
47144        )
47145    }
47146}
47147
47148#[must_use = "FIDL methods require a response to be sent"]
47149#[derive(Debug)]
47150pub struct DatagramSocketGetIpv6MulticastInterfaceResponder {
47151    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47152    tx_id: u32,
47153}
47154
47155/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47156/// if the responder is dropped without sending a response, so that the client
47157/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47158impl std::ops::Drop for DatagramSocketGetIpv6MulticastInterfaceResponder {
47159    fn drop(&mut self) {
47160        self.control_handle.shutdown();
47161        // Safety: drops once, never accessed again
47162        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47163    }
47164}
47165
47166impl fidl::endpoints::Responder for DatagramSocketGetIpv6MulticastInterfaceResponder {
47167    type ControlHandle = DatagramSocketControlHandle;
47168
47169    fn control_handle(&self) -> &DatagramSocketControlHandle {
47170        &self.control_handle
47171    }
47172
47173    fn drop_without_shutdown(mut self) {
47174        // Safety: drops once, never accessed again due to mem::forget
47175        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47176        // Prevent Drop from running (which would shut down the channel)
47177        std::mem::forget(self);
47178    }
47179}
47180
47181impl DatagramSocketGetIpv6MulticastInterfaceResponder {
47182    /// Sends a response to the FIDL transaction.
47183    ///
47184    /// Sets the channel to shutdown if an error occurs.
47185    pub fn send(
47186        self,
47187        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
47188    ) -> Result<(), fidl::Error> {
47189        let _result = self.send_raw(result);
47190        if _result.is_err() {
47191            self.control_handle.shutdown();
47192        }
47193        self.drop_without_shutdown();
47194        _result
47195    }
47196
47197    /// Similar to "send" but does not shutdown the channel if an error occurs.
47198    pub fn send_no_shutdown_on_err(
47199        self,
47200        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
47201    ) -> Result<(), fidl::Error> {
47202        let _result = self.send_raw(result);
47203        self.drop_without_shutdown();
47204        _result
47205    }
47206
47207    fn send_raw(
47208        &self,
47209        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
47210    ) -> Result<(), fidl::Error> {
47211        self.control_handle.inner.send::<fidl::encoding::ResultType<
47212            BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
47213            fidl_fuchsia_posix::Errno,
47214        >>(
47215            result.map(|value| (value,)),
47216            self.tx_id,
47217            0x1f26fcdd348f1882,
47218            fidl::encoding::DynamicFlags::empty(),
47219        )
47220    }
47221}
47222
47223#[must_use = "FIDL methods require a response to be sent"]
47224#[derive(Debug)]
47225pub struct DatagramSocketSetIpv6UnicastHopsResponder {
47226    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47227    tx_id: u32,
47228}
47229
47230/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47231/// if the responder is dropped without sending a response, so that the client
47232/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47233impl std::ops::Drop for DatagramSocketSetIpv6UnicastHopsResponder {
47234    fn drop(&mut self) {
47235        self.control_handle.shutdown();
47236        // Safety: drops once, never accessed again
47237        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47238    }
47239}
47240
47241impl fidl::endpoints::Responder for DatagramSocketSetIpv6UnicastHopsResponder {
47242    type ControlHandle = DatagramSocketControlHandle;
47243
47244    fn control_handle(&self) -> &DatagramSocketControlHandle {
47245        &self.control_handle
47246    }
47247
47248    fn drop_without_shutdown(mut self) {
47249        // Safety: drops once, never accessed again due to mem::forget
47250        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47251        // Prevent Drop from running (which would shut down the channel)
47252        std::mem::forget(self);
47253    }
47254}
47255
47256impl DatagramSocketSetIpv6UnicastHopsResponder {
47257    /// Sends a response to the FIDL transaction.
47258    ///
47259    /// Sets the channel to shutdown if an error occurs.
47260    pub fn send(
47261        self,
47262        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47263    ) -> Result<(), fidl::Error> {
47264        let _result = self.send_raw(result);
47265        if _result.is_err() {
47266            self.control_handle.shutdown();
47267        }
47268        self.drop_without_shutdown();
47269        _result
47270    }
47271
47272    /// Similar to "send" but does not shutdown the channel if an error occurs.
47273    pub fn send_no_shutdown_on_err(
47274        self,
47275        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47276    ) -> Result<(), fidl::Error> {
47277        let _result = self.send_raw(result);
47278        self.drop_without_shutdown();
47279        _result
47280    }
47281
47282    fn send_raw(
47283        &self,
47284        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47285    ) -> Result<(), fidl::Error> {
47286        self.control_handle.inner.send::<fidl::encoding::ResultType<
47287            fidl::encoding::EmptyStruct,
47288            fidl_fuchsia_posix::Errno,
47289        >>(
47290            result,
47291            self.tx_id,
47292            0x157d51e98f462859,
47293            fidl::encoding::DynamicFlags::empty(),
47294        )
47295    }
47296}
47297
47298#[must_use = "FIDL methods require a response to be sent"]
47299#[derive(Debug)]
47300pub struct DatagramSocketGetIpv6UnicastHopsResponder {
47301    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47302    tx_id: u32,
47303}
47304
47305/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47306/// if the responder is dropped without sending a response, so that the client
47307/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47308impl std::ops::Drop for DatagramSocketGetIpv6UnicastHopsResponder {
47309    fn drop(&mut self) {
47310        self.control_handle.shutdown();
47311        // Safety: drops once, never accessed again
47312        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47313    }
47314}
47315
47316impl fidl::endpoints::Responder for DatagramSocketGetIpv6UnicastHopsResponder {
47317    type ControlHandle = DatagramSocketControlHandle;
47318
47319    fn control_handle(&self) -> &DatagramSocketControlHandle {
47320        &self.control_handle
47321    }
47322
47323    fn drop_without_shutdown(mut self) {
47324        // Safety: drops once, never accessed again due to mem::forget
47325        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47326        // Prevent Drop from running (which would shut down the channel)
47327        std::mem::forget(self);
47328    }
47329}
47330
47331impl DatagramSocketGetIpv6UnicastHopsResponder {
47332    /// Sends a response to the FIDL transaction.
47333    ///
47334    /// Sets the channel to shutdown if an error occurs.
47335    pub fn send(
47336        self,
47337        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
47338    ) -> Result<(), fidl::Error> {
47339        let _result = self.send_raw(result);
47340        if _result.is_err() {
47341            self.control_handle.shutdown();
47342        }
47343        self.drop_without_shutdown();
47344        _result
47345    }
47346
47347    /// Similar to "send" but does not shutdown the channel if an error occurs.
47348    pub fn send_no_shutdown_on_err(
47349        self,
47350        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
47351    ) -> Result<(), fidl::Error> {
47352        let _result = self.send_raw(result);
47353        self.drop_without_shutdown();
47354        _result
47355    }
47356
47357    fn send_raw(
47358        &self,
47359        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
47360    ) -> Result<(), fidl::Error> {
47361        self.control_handle.inner.send::<fidl::encoding::ResultType<
47362            BaseNetworkSocketGetIpv6UnicastHopsResponse,
47363            fidl_fuchsia_posix::Errno,
47364        >>(
47365            result.map(|value| (value,)),
47366            self.tx_id,
47367            0x21f4641cad8bd8d2,
47368            fidl::encoding::DynamicFlags::empty(),
47369        )
47370    }
47371}
47372
47373#[must_use = "FIDL methods require a response to be sent"]
47374#[derive(Debug)]
47375pub struct DatagramSocketSetIpv6ReceiveHopLimitResponder {
47376    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47377    tx_id: u32,
47378}
47379
47380/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47381/// if the responder is dropped without sending a response, so that the client
47382/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47383impl std::ops::Drop for DatagramSocketSetIpv6ReceiveHopLimitResponder {
47384    fn drop(&mut self) {
47385        self.control_handle.shutdown();
47386        // Safety: drops once, never accessed again
47387        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47388    }
47389}
47390
47391impl fidl::endpoints::Responder for DatagramSocketSetIpv6ReceiveHopLimitResponder {
47392    type ControlHandle = DatagramSocketControlHandle;
47393
47394    fn control_handle(&self) -> &DatagramSocketControlHandle {
47395        &self.control_handle
47396    }
47397
47398    fn drop_without_shutdown(mut self) {
47399        // Safety: drops once, never accessed again due to mem::forget
47400        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47401        // Prevent Drop from running (which would shut down the channel)
47402        std::mem::forget(self);
47403    }
47404}
47405
47406impl DatagramSocketSetIpv6ReceiveHopLimitResponder {
47407    /// Sends a response to the FIDL transaction.
47408    ///
47409    /// Sets the channel to shutdown if an error occurs.
47410    pub fn send(
47411        self,
47412        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47413    ) -> Result<(), fidl::Error> {
47414        let _result = self.send_raw(result);
47415        if _result.is_err() {
47416            self.control_handle.shutdown();
47417        }
47418        self.drop_without_shutdown();
47419        _result
47420    }
47421
47422    /// Similar to "send" but does not shutdown the channel if an error occurs.
47423    pub fn send_no_shutdown_on_err(
47424        self,
47425        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47426    ) -> Result<(), fidl::Error> {
47427        let _result = self.send_raw(result);
47428        self.drop_without_shutdown();
47429        _result
47430    }
47431
47432    fn send_raw(
47433        &self,
47434        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47435    ) -> Result<(), fidl::Error> {
47436        self.control_handle.inner.send::<fidl::encoding::ResultType<
47437            fidl::encoding::EmptyStruct,
47438            fidl_fuchsia_posix::Errno,
47439        >>(
47440            result,
47441            self.tx_id,
47442            0x5c24808ed2e84a1e,
47443            fidl::encoding::DynamicFlags::empty(),
47444        )
47445    }
47446}
47447
47448#[must_use = "FIDL methods require a response to be sent"]
47449#[derive(Debug)]
47450pub struct DatagramSocketGetIpv6ReceiveHopLimitResponder {
47451    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47452    tx_id: u32,
47453}
47454
47455/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47456/// if the responder is dropped without sending a response, so that the client
47457/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47458impl std::ops::Drop for DatagramSocketGetIpv6ReceiveHopLimitResponder {
47459    fn drop(&mut self) {
47460        self.control_handle.shutdown();
47461        // Safety: drops once, never accessed again
47462        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47463    }
47464}
47465
47466impl fidl::endpoints::Responder for DatagramSocketGetIpv6ReceiveHopLimitResponder {
47467    type ControlHandle = DatagramSocketControlHandle;
47468
47469    fn control_handle(&self) -> &DatagramSocketControlHandle {
47470        &self.control_handle
47471    }
47472
47473    fn drop_without_shutdown(mut self) {
47474        // Safety: drops once, never accessed again due to mem::forget
47475        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47476        // Prevent Drop from running (which would shut down the channel)
47477        std::mem::forget(self);
47478    }
47479}
47480
47481impl DatagramSocketGetIpv6ReceiveHopLimitResponder {
47482    /// Sends a response to the FIDL transaction.
47483    ///
47484    /// Sets the channel to shutdown if an error occurs.
47485    pub fn send(
47486        self,
47487        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
47488    ) -> Result<(), fidl::Error> {
47489        let _result = self.send_raw(result);
47490        if _result.is_err() {
47491            self.control_handle.shutdown();
47492        }
47493        self.drop_without_shutdown();
47494        _result
47495    }
47496
47497    /// Similar to "send" but does not shutdown the channel if an error occurs.
47498    pub fn send_no_shutdown_on_err(
47499        self,
47500        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
47501    ) -> Result<(), fidl::Error> {
47502        let _result = self.send_raw(result);
47503        self.drop_without_shutdown();
47504        _result
47505    }
47506
47507    fn send_raw(
47508        &self,
47509        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
47510    ) -> Result<(), fidl::Error> {
47511        self.control_handle.inner.send::<fidl::encoding::ResultType<
47512            BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
47513            fidl_fuchsia_posix::Errno,
47514        >>(
47515            result.map(|value| (value,)),
47516            self.tx_id,
47517            0x341e06689885b4c0,
47518            fidl::encoding::DynamicFlags::empty(),
47519        )
47520    }
47521}
47522
47523#[must_use = "FIDL methods require a response to be sent"]
47524#[derive(Debug)]
47525pub struct DatagramSocketSetIpv6MulticastHopsResponder {
47526    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47527    tx_id: u32,
47528}
47529
47530/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47531/// if the responder is dropped without sending a response, so that the client
47532/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47533impl std::ops::Drop for DatagramSocketSetIpv6MulticastHopsResponder {
47534    fn drop(&mut self) {
47535        self.control_handle.shutdown();
47536        // Safety: drops once, never accessed again
47537        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47538    }
47539}
47540
47541impl fidl::endpoints::Responder for DatagramSocketSetIpv6MulticastHopsResponder {
47542    type ControlHandle = DatagramSocketControlHandle;
47543
47544    fn control_handle(&self) -> &DatagramSocketControlHandle {
47545        &self.control_handle
47546    }
47547
47548    fn drop_without_shutdown(mut self) {
47549        // Safety: drops once, never accessed again due to mem::forget
47550        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47551        // Prevent Drop from running (which would shut down the channel)
47552        std::mem::forget(self);
47553    }
47554}
47555
47556impl DatagramSocketSetIpv6MulticastHopsResponder {
47557    /// Sends a response to the FIDL transaction.
47558    ///
47559    /// Sets the channel to shutdown if an error occurs.
47560    pub fn send(
47561        self,
47562        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47563    ) -> Result<(), fidl::Error> {
47564        let _result = self.send_raw(result);
47565        if _result.is_err() {
47566            self.control_handle.shutdown();
47567        }
47568        self.drop_without_shutdown();
47569        _result
47570    }
47571
47572    /// Similar to "send" but does not shutdown the channel if an error occurs.
47573    pub fn send_no_shutdown_on_err(
47574        self,
47575        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47576    ) -> Result<(), fidl::Error> {
47577        let _result = self.send_raw(result);
47578        self.drop_without_shutdown();
47579        _result
47580    }
47581
47582    fn send_raw(
47583        &self,
47584        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47585    ) -> Result<(), fidl::Error> {
47586        self.control_handle.inner.send::<fidl::encoding::ResultType<
47587            fidl::encoding::EmptyStruct,
47588            fidl_fuchsia_posix::Errno,
47589        >>(
47590            result,
47591            self.tx_id,
47592            0x25b9cd4d181f82c1,
47593            fidl::encoding::DynamicFlags::empty(),
47594        )
47595    }
47596}
47597
47598#[must_use = "FIDL methods require a response to be sent"]
47599#[derive(Debug)]
47600pub struct DatagramSocketGetIpv6MulticastHopsResponder {
47601    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47602    tx_id: u32,
47603}
47604
47605/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47606/// if the responder is dropped without sending a response, so that the client
47607/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47608impl std::ops::Drop for DatagramSocketGetIpv6MulticastHopsResponder {
47609    fn drop(&mut self) {
47610        self.control_handle.shutdown();
47611        // Safety: drops once, never accessed again
47612        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47613    }
47614}
47615
47616impl fidl::endpoints::Responder for DatagramSocketGetIpv6MulticastHopsResponder {
47617    type ControlHandle = DatagramSocketControlHandle;
47618
47619    fn control_handle(&self) -> &DatagramSocketControlHandle {
47620        &self.control_handle
47621    }
47622
47623    fn drop_without_shutdown(mut self) {
47624        // Safety: drops once, never accessed again due to mem::forget
47625        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47626        // Prevent Drop from running (which would shut down the channel)
47627        std::mem::forget(self);
47628    }
47629}
47630
47631impl DatagramSocketGetIpv6MulticastHopsResponder {
47632    /// Sends a response to the FIDL transaction.
47633    ///
47634    /// Sets the channel to shutdown if an error occurs.
47635    pub fn send(
47636        self,
47637        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
47638    ) -> Result<(), fidl::Error> {
47639        let _result = self.send_raw(result);
47640        if _result.is_err() {
47641            self.control_handle.shutdown();
47642        }
47643        self.drop_without_shutdown();
47644        _result
47645    }
47646
47647    /// Similar to "send" but does not shutdown the channel if an error occurs.
47648    pub fn send_no_shutdown_on_err(
47649        self,
47650        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
47651    ) -> Result<(), fidl::Error> {
47652        let _result = self.send_raw(result);
47653        self.drop_without_shutdown();
47654        _result
47655    }
47656
47657    fn send_raw(
47658        &self,
47659        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
47660    ) -> Result<(), fidl::Error> {
47661        self.control_handle.inner.send::<fidl::encoding::ResultType<
47662            BaseNetworkSocketGetIpv6MulticastHopsResponse,
47663            fidl_fuchsia_posix::Errno,
47664        >>(
47665            result.map(|value| (value,)),
47666            self.tx_id,
47667            0x52916948a365012a,
47668            fidl::encoding::DynamicFlags::empty(),
47669        )
47670    }
47671}
47672
47673#[must_use = "FIDL methods require a response to be sent"]
47674#[derive(Debug)]
47675pub struct DatagramSocketSetIpv6MulticastLoopbackResponder {
47676    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47677    tx_id: u32,
47678}
47679
47680/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47681/// if the responder is dropped without sending a response, so that the client
47682/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47683impl std::ops::Drop for DatagramSocketSetIpv6MulticastLoopbackResponder {
47684    fn drop(&mut self) {
47685        self.control_handle.shutdown();
47686        // Safety: drops once, never accessed again
47687        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47688    }
47689}
47690
47691impl fidl::endpoints::Responder for DatagramSocketSetIpv6MulticastLoopbackResponder {
47692    type ControlHandle = DatagramSocketControlHandle;
47693
47694    fn control_handle(&self) -> &DatagramSocketControlHandle {
47695        &self.control_handle
47696    }
47697
47698    fn drop_without_shutdown(mut self) {
47699        // Safety: drops once, never accessed again due to mem::forget
47700        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47701        // Prevent Drop from running (which would shut down the channel)
47702        std::mem::forget(self);
47703    }
47704}
47705
47706impl DatagramSocketSetIpv6MulticastLoopbackResponder {
47707    /// Sends a response to the FIDL transaction.
47708    ///
47709    /// Sets the channel to shutdown if an error occurs.
47710    pub fn send(
47711        self,
47712        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47713    ) -> Result<(), fidl::Error> {
47714        let _result = self.send_raw(result);
47715        if _result.is_err() {
47716            self.control_handle.shutdown();
47717        }
47718        self.drop_without_shutdown();
47719        _result
47720    }
47721
47722    /// Similar to "send" but does not shutdown the channel if an error occurs.
47723    pub fn send_no_shutdown_on_err(
47724        self,
47725        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47726    ) -> Result<(), fidl::Error> {
47727        let _result = self.send_raw(result);
47728        self.drop_without_shutdown();
47729        _result
47730    }
47731
47732    fn send_raw(
47733        &self,
47734        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47735    ) -> Result<(), fidl::Error> {
47736        self.control_handle.inner.send::<fidl::encoding::ResultType<
47737            fidl::encoding::EmptyStruct,
47738            fidl_fuchsia_posix::Errno,
47739        >>(
47740            result,
47741            self.tx_id,
47742            0x55701c409ff41b40,
47743            fidl::encoding::DynamicFlags::empty(),
47744        )
47745    }
47746}
47747
47748#[must_use = "FIDL methods require a response to be sent"]
47749#[derive(Debug)]
47750pub struct DatagramSocketGetIpv6MulticastLoopbackResponder {
47751    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47752    tx_id: u32,
47753}
47754
47755/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47756/// if the responder is dropped without sending a response, so that the client
47757/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47758impl std::ops::Drop for DatagramSocketGetIpv6MulticastLoopbackResponder {
47759    fn drop(&mut self) {
47760        self.control_handle.shutdown();
47761        // Safety: drops once, never accessed again
47762        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47763    }
47764}
47765
47766impl fidl::endpoints::Responder for DatagramSocketGetIpv6MulticastLoopbackResponder {
47767    type ControlHandle = DatagramSocketControlHandle;
47768
47769    fn control_handle(&self) -> &DatagramSocketControlHandle {
47770        &self.control_handle
47771    }
47772
47773    fn drop_without_shutdown(mut self) {
47774        // Safety: drops once, never accessed again due to mem::forget
47775        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47776        // Prevent Drop from running (which would shut down the channel)
47777        std::mem::forget(self);
47778    }
47779}
47780
47781impl DatagramSocketGetIpv6MulticastLoopbackResponder {
47782    /// Sends a response to the FIDL transaction.
47783    ///
47784    /// Sets the channel to shutdown if an error occurs.
47785    pub fn send(
47786        self,
47787        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
47788    ) -> Result<(), fidl::Error> {
47789        let _result = self.send_raw(result);
47790        if _result.is_err() {
47791            self.control_handle.shutdown();
47792        }
47793        self.drop_without_shutdown();
47794        _result
47795    }
47796
47797    /// Similar to "send" but does not shutdown the channel if an error occurs.
47798    pub fn send_no_shutdown_on_err(
47799        self,
47800        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
47801    ) -> Result<(), fidl::Error> {
47802        let _result = self.send_raw(result);
47803        self.drop_without_shutdown();
47804        _result
47805    }
47806
47807    fn send_raw(
47808        &self,
47809        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
47810    ) -> Result<(), fidl::Error> {
47811        self.control_handle.inner.send::<fidl::encoding::ResultType<
47812            BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
47813            fidl_fuchsia_posix::Errno,
47814        >>(
47815            result.map(|value| (value,)),
47816            self.tx_id,
47817            0x4415b701fde319c3,
47818            fidl::encoding::DynamicFlags::empty(),
47819        )
47820    }
47821}
47822
47823#[must_use = "FIDL methods require a response to be sent"]
47824#[derive(Debug)]
47825pub struct DatagramSocketSetIpv6OnlyResponder {
47826    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47827    tx_id: u32,
47828}
47829
47830/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47831/// if the responder is dropped without sending a response, so that the client
47832/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47833impl std::ops::Drop for DatagramSocketSetIpv6OnlyResponder {
47834    fn drop(&mut self) {
47835        self.control_handle.shutdown();
47836        // Safety: drops once, never accessed again
47837        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47838    }
47839}
47840
47841impl fidl::endpoints::Responder for DatagramSocketSetIpv6OnlyResponder {
47842    type ControlHandle = DatagramSocketControlHandle;
47843
47844    fn control_handle(&self) -> &DatagramSocketControlHandle {
47845        &self.control_handle
47846    }
47847
47848    fn drop_without_shutdown(mut self) {
47849        // Safety: drops once, never accessed again due to mem::forget
47850        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47851        // Prevent Drop from running (which would shut down the channel)
47852        std::mem::forget(self);
47853    }
47854}
47855
47856impl DatagramSocketSetIpv6OnlyResponder {
47857    /// Sends a response to the FIDL transaction.
47858    ///
47859    /// Sets the channel to shutdown if an error occurs.
47860    pub fn send(
47861        self,
47862        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47863    ) -> Result<(), fidl::Error> {
47864        let _result = self.send_raw(result);
47865        if _result.is_err() {
47866            self.control_handle.shutdown();
47867        }
47868        self.drop_without_shutdown();
47869        _result
47870    }
47871
47872    /// Similar to "send" but does not shutdown the channel if an error occurs.
47873    pub fn send_no_shutdown_on_err(
47874        self,
47875        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47876    ) -> Result<(), fidl::Error> {
47877        let _result = self.send_raw(result);
47878        self.drop_without_shutdown();
47879        _result
47880    }
47881
47882    fn send_raw(
47883        &self,
47884        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47885    ) -> Result<(), fidl::Error> {
47886        self.control_handle.inner.send::<fidl::encoding::ResultType<
47887            fidl::encoding::EmptyStruct,
47888            fidl_fuchsia_posix::Errno,
47889        >>(
47890            result,
47891            self.tx_id,
47892            0x4873f1364758cbba,
47893            fidl::encoding::DynamicFlags::empty(),
47894        )
47895    }
47896}
47897
47898#[must_use = "FIDL methods require a response to be sent"]
47899#[derive(Debug)]
47900pub struct DatagramSocketGetIpv6OnlyResponder {
47901    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47902    tx_id: u32,
47903}
47904
47905/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47906/// if the responder is dropped without sending a response, so that the client
47907/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47908impl std::ops::Drop for DatagramSocketGetIpv6OnlyResponder {
47909    fn drop(&mut self) {
47910        self.control_handle.shutdown();
47911        // Safety: drops once, never accessed again
47912        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47913    }
47914}
47915
47916impl fidl::endpoints::Responder for DatagramSocketGetIpv6OnlyResponder {
47917    type ControlHandle = DatagramSocketControlHandle;
47918
47919    fn control_handle(&self) -> &DatagramSocketControlHandle {
47920        &self.control_handle
47921    }
47922
47923    fn drop_without_shutdown(mut self) {
47924        // Safety: drops once, never accessed again due to mem::forget
47925        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47926        // Prevent Drop from running (which would shut down the channel)
47927        std::mem::forget(self);
47928    }
47929}
47930
47931impl DatagramSocketGetIpv6OnlyResponder {
47932    /// Sends a response to the FIDL transaction.
47933    ///
47934    /// Sets the channel to shutdown if an error occurs.
47935    pub fn send(
47936        self,
47937        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
47938    ) -> Result<(), fidl::Error> {
47939        let _result = self.send_raw(result);
47940        if _result.is_err() {
47941            self.control_handle.shutdown();
47942        }
47943        self.drop_without_shutdown();
47944        _result
47945    }
47946
47947    /// Similar to "send" but does not shutdown the channel if an error occurs.
47948    pub fn send_no_shutdown_on_err(
47949        self,
47950        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
47951    ) -> Result<(), fidl::Error> {
47952        let _result = self.send_raw(result);
47953        self.drop_without_shutdown();
47954        _result
47955    }
47956
47957    fn send_raw(
47958        &self,
47959        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
47960    ) -> Result<(), fidl::Error> {
47961        self.control_handle.inner.send::<fidl::encoding::ResultType<
47962            BaseNetworkSocketGetIpv6OnlyResponse,
47963            fidl_fuchsia_posix::Errno,
47964        >>(
47965            result.map(|value| (value,)),
47966            self.tx_id,
47967            0x4aa3340a1a26b89c,
47968            fidl::encoding::DynamicFlags::empty(),
47969        )
47970    }
47971}
47972
47973#[must_use = "FIDL methods require a response to be sent"]
47974#[derive(Debug)]
47975pub struct DatagramSocketSetIpv6ReceiveTrafficClassResponder {
47976    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47977    tx_id: u32,
47978}
47979
47980/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47981/// if the responder is dropped without sending a response, so that the client
47982/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47983impl std::ops::Drop for DatagramSocketSetIpv6ReceiveTrafficClassResponder {
47984    fn drop(&mut self) {
47985        self.control_handle.shutdown();
47986        // Safety: drops once, never accessed again
47987        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47988    }
47989}
47990
47991impl fidl::endpoints::Responder for DatagramSocketSetIpv6ReceiveTrafficClassResponder {
47992    type ControlHandle = DatagramSocketControlHandle;
47993
47994    fn control_handle(&self) -> &DatagramSocketControlHandle {
47995        &self.control_handle
47996    }
47997
47998    fn drop_without_shutdown(mut self) {
47999        // Safety: drops once, never accessed again due to mem::forget
48000        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
48001        // Prevent Drop from running (which would shut down the channel)
48002        std::mem::forget(self);
48003    }
48004}
48005
48006impl DatagramSocketSetIpv6ReceiveTrafficClassResponder {
48007    /// Sends a response to the FIDL transaction.
48008    ///
48009    /// Sets the channel to shutdown if an error occurs.
48010    pub fn send(
48011        self,
48012        mut result: Result<(), fidl_fuchsia_posix::Errno>,
48013    ) -> Result<(), fidl::Error> {
48014        let _result = self.send_raw(result);
48015        if _result.is_err() {
48016            self.control_handle.shutdown();
48017        }
48018        self.drop_without_shutdown();
48019        _result
48020    }
48021
48022    /// Similar to "send" but does not shutdown the channel if an error occurs.
48023    pub fn send_no_shutdown_on_err(
48024        self,
48025        mut result: Result<(), fidl_fuchsia_posix::Errno>,
48026    ) -> Result<(), fidl::Error> {
48027        let _result = self.send_raw(result);
48028        self.drop_without_shutdown();
48029        _result
48030    }
48031
48032    fn send_raw(
48033        &self,
48034        mut result: Result<(), fidl_fuchsia_posix::Errno>,
48035    ) -> Result<(), fidl::Error> {
48036        self.control_handle.inner.send::<fidl::encoding::ResultType<
48037            fidl::encoding::EmptyStruct,
48038            fidl_fuchsia_posix::Errno,
48039        >>(
48040            result,
48041            self.tx_id,
48042            0x58f07c8788d099a0,
48043            fidl::encoding::DynamicFlags::empty(),
48044        )
48045    }
48046}
48047
48048#[must_use = "FIDL methods require a response to be sent"]
48049#[derive(Debug)]
48050pub struct DatagramSocketGetIpv6ReceiveTrafficClassResponder {
48051    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
48052    tx_id: u32,
48053}
48054
48055/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
48056/// if the responder is dropped without sending a response, so that the client
48057/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
48058impl std::ops::Drop for DatagramSocketGetIpv6ReceiveTrafficClassResponder {
48059    fn drop(&mut self) {
48060        self.control_handle.shutdown();
48061        // Safety: drops once, never accessed again
48062        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
48063    }
48064}
48065
48066impl fidl::endpoints::Responder for DatagramSocketGetIpv6ReceiveTrafficClassResponder {
48067    type ControlHandle = DatagramSocketControlHandle;
48068
48069    fn control_handle(&self) -> &DatagramSocketControlHandle {
48070        &self.control_handle
48071    }
48072
48073    fn drop_without_shutdown(mut self) {
48074        // Safety: drops once, never accessed again due to mem::forget
48075        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
48076        // Prevent Drop from running (which would shut down the channel)
48077        std::mem::forget(self);
48078    }
48079}
48080
48081impl DatagramSocketGetIpv6ReceiveTrafficClassResponder {
48082    /// Sends a response to the FIDL transaction.
48083    ///
48084    /// Sets the channel to shutdown if an error occurs.
48085    pub fn send(
48086        self,
48087        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
48088    ) -> Result<(), fidl::Error> {
48089        let _result = self.send_raw(result);
48090        if _result.is_err() {
48091            self.control_handle.shutdown();
48092        }
48093        self.drop_without_shutdown();
48094        _result
48095    }
48096
48097    /// Similar to "send" but does not shutdown the channel if an error occurs.
48098    pub fn send_no_shutdown_on_err(
48099        self,
48100        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
48101    ) -> Result<(), fidl::Error> {
48102        let _result = self.send_raw(result);
48103        self.drop_without_shutdown();
48104        _result
48105    }
48106
48107    fn send_raw(
48108        &self,
48109        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
48110    ) -> Result<(), fidl::Error> {
48111        self.control_handle.inner.send::<fidl::encoding::ResultType<
48112            BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
48113            fidl_fuchsia_posix::Errno,
48114        >>(
48115            result.map(|value| (value,)),
48116            self.tx_id,
48117            0x2e334df1da553ffa,
48118            fidl::encoding::DynamicFlags::empty(),
48119        )
48120    }
48121}
48122
48123#[must_use = "FIDL methods require a response to be sent"]
48124#[derive(Debug)]
48125pub struct DatagramSocketSetIpv6TrafficClassResponder {
48126    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
48127    tx_id: u32,
48128}
48129
48130/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
48131/// if the responder is dropped without sending a response, so that the client
48132/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
48133impl std::ops::Drop for DatagramSocketSetIpv6TrafficClassResponder {
48134    fn drop(&mut self) {
48135        self.control_handle.shutdown();
48136        // Safety: drops once, never accessed again
48137        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
48138    }
48139}
48140
48141impl fidl::endpoints::Responder for DatagramSocketSetIpv6TrafficClassResponder {
48142    type ControlHandle = DatagramSocketControlHandle;
48143
48144    fn control_handle(&self) -> &DatagramSocketControlHandle {
48145        &self.control_handle
48146    }
48147
48148    fn drop_without_shutdown(mut self) {
48149        // Safety: drops once, never accessed again due to mem::forget
48150        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
48151        // Prevent Drop from running (which would shut down the channel)
48152        std::mem::forget(self);
48153    }
48154}
48155
48156impl DatagramSocketSetIpv6TrafficClassResponder {
48157    /// Sends a response to the FIDL transaction.
48158    ///
48159    /// Sets the channel to shutdown if an error occurs.
48160    pub fn send(
48161        self,
48162        mut result: Result<(), fidl_fuchsia_posix::Errno>,
48163    ) -> Result<(), fidl::Error> {
48164        let _result = self.send_raw(result);
48165        if _result.is_err() {
48166            self.control_handle.shutdown();
48167        }
48168        self.drop_without_shutdown();
48169        _result
48170    }
48171
48172    /// Similar to "send" but does not shutdown the channel if an error occurs.
48173    pub fn send_no_shutdown_on_err(
48174        self,
48175        mut result: Result<(), fidl_fuchsia_posix::Errno>,
48176    ) -> Result<(), fidl::Error> {
48177        let _result = self.send_raw(result);
48178        self.drop_without_shutdown();
48179        _result
48180    }
48181
48182    fn send_raw(
48183        &self,
48184        mut result: Result<(), fidl_fuchsia_posix::Errno>,
48185    ) -> Result<(), fidl::Error> {
48186        self.control_handle.inner.send::<fidl::encoding::ResultType<
48187            fidl::encoding::EmptyStruct,
48188            fidl_fuchsia_posix::Errno,
48189        >>(
48190            result,
48191            self.tx_id,
48192            0x6af077800c5a0b4f,
48193            fidl::encoding::DynamicFlags::empty(),
48194        )
48195    }
48196}
48197
48198#[must_use = "FIDL methods require a response to be sent"]
48199#[derive(Debug)]
48200pub struct DatagramSocketGetIpv6TrafficClassResponder {
48201    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
48202    tx_id: u32,
48203}
48204
48205/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
48206/// if the responder is dropped without sending a response, so that the client
48207/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
48208impl std::ops::Drop for DatagramSocketGetIpv6TrafficClassResponder {
48209    fn drop(&mut self) {
48210        self.control_handle.shutdown();
48211        // Safety: drops once, never accessed again
48212        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
48213    }
48214}
48215
48216impl fidl::endpoints::Responder for DatagramSocketGetIpv6TrafficClassResponder {
48217    type ControlHandle = DatagramSocketControlHandle;
48218
48219    fn control_handle(&self) -> &DatagramSocketControlHandle {
48220        &self.control_handle
48221    }
48222
48223    fn drop_without_shutdown(mut self) {
48224        // Safety: drops once, never accessed again due to mem::forget
48225        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
48226        // Prevent Drop from running (which would shut down the channel)
48227        std::mem::forget(self);
48228    }
48229}
48230
48231impl DatagramSocketGetIpv6TrafficClassResponder {
48232    /// Sends a response to the FIDL transaction.
48233    ///
48234    /// Sets the channel to shutdown if an error occurs.
48235    pub fn send(
48236        self,
48237        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
48238    ) -> Result<(), fidl::Error> {
48239        let _result = self.send_raw(result);
48240        if _result.is_err() {
48241            self.control_handle.shutdown();
48242        }
48243        self.drop_without_shutdown();
48244        _result
48245    }
48246
48247    /// Similar to "send" but does not shutdown the channel if an error occurs.
48248    pub fn send_no_shutdown_on_err(
48249        self,
48250        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
48251    ) -> Result<(), fidl::Error> {
48252        let _result = self.send_raw(result);
48253        self.drop_without_shutdown();
48254        _result
48255    }
48256
48257    fn send_raw(
48258        &self,
48259        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
48260    ) -> Result<(), fidl::Error> {
48261        self.control_handle.inner.send::<fidl::encoding::ResultType<
48262            BaseNetworkSocketGetIpv6TrafficClassResponse,
48263            fidl_fuchsia_posix::Errno,
48264        >>(
48265            result.map(|value| (value,)),
48266            self.tx_id,
48267            0x6baf6eed8fc2f04,
48268            fidl::encoding::DynamicFlags::empty(),
48269        )
48270    }
48271}
48272
48273#[must_use = "FIDL methods require a response to be sent"]
48274#[derive(Debug)]
48275pub struct DatagramSocketSetIpv6ReceivePacketInfoResponder {
48276    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
48277    tx_id: u32,
48278}
48279
48280/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
48281/// if the responder is dropped without sending a response, so that the client
48282/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
48283impl std::ops::Drop for DatagramSocketSetIpv6ReceivePacketInfoResponder {
48284    fn drop(&mut self) {
48285        self.control_handle.shutdown();
48286        // Safety: drops once, never accessed again
48287        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
48288    }
48289}
48290
48291impl fidl::endpoints::Responder for DatagramSocketSetIpv6ReceivePacketInfoResponder {
48292    type ControlHandle = DatagramSocketControlHandle;
48293
48294    fn control_handle(&self) -> &DatagramSocketControlHandle {
48295        &self.control_handle
48296    }
48297
48298    fn drop_without_shutdown(mut self) {
48299        // Safety: drops once, never accessed again due to mem::forget
48300        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
48301        // Prevent Drop from running (which would shut down the channel)
48302        std::mem::forget(self);
48303    }
48304}
48305
48306impl DatagramSocketSetIpv6ReceivePacketInfoResponder {
48307    /// Sends a response to the FIDL transaction.
48308    ///
48309    /// Sets the channel to shutdown if an error occurs.
48310    pub fn send(
48311        self,
48312        mut result: Result<(), fidl_fuchsia_posix::Errno>,
48313    ) -> Result<(), fidl::Error> {
48314        let _result = self.send_raw(result);
48315        if _result.is_err() {
48316            self.control_handle.shutdown();
48317        }
48318        self.drop_without_shutdown();
48319        _result
48320    }
48321
48322    /// Similar to "send" but does not shutdown the channel if an error occurs.
48323    pub fn send_no_shutdown_on_err(
48324        self,
48325        mut result: Result<(), fidl_fuchsia_posix::Errno>,
48326    ) -> Result<(), fidl::Error> {
48327        let _result = self.send_raw(result);
48328        self.drop_without_shutdown();
48329        _result
48330    }
48331
48332    fn send_raw(
48333        &self,
48334        mut result: Result<(), fidl_fuchsia_posix::Errno>,
48335    ) -> Result<(), fidl::Error> {
48336        self.control_handle.inner.send::<fidl::encoding::ResultType<
48337            fidl::encoding::EmptyStruct,
48338            fidl_fuchsia_posix::Errno,
48339        >>(
48340            result,
48341            self.tx_id,
48342            0x19259775b1a92768,
48343            fidl::encoding::DynamicFlags::empty(),
48344        )
48345    }
48346}
48347
48348#[must_use = "FIDL methods require a response to be sent"]
48349#[derive(Debug)]
48350pub struct DatagramSocketGetIpv6ReceivePacketInfoResponder {
48351    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
48352    tx_id: u32,
48353}
48354
48355/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
48356/// if the responder is dropped without sending a response, so that the client
48357/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
48358impl std::ops::Drop for DatagramSocketGetIpv6ReceivePacketInfoResponder {
48359    fn drop(&mut self) {
48360        self.control_handle.shutdown();
48361        // Safety: drops once, never accessed again
48362        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
48363    }
48364}
48365
48366impl fidl::endpoints::Responder for DatagramSocketGetIpv6ReceivePacketInfoResponder {
48367    type ControlHandle = DatagramSocketControlHandle;
48368
48369    fn control_handle(&self) -> &DatagramSocketControlHandle {
48370        &self.control_handle
48371    }
48372
48373    fn drop_without_shutdown(mut self) {
48374        // Safety: drops once, never accessed again due to mem::forget
48375        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
48376        // Prevent Drop from running (which would shut down the channel)
48377        std::mem::forget(self);
48378    }
48379}
48380
48381impl DatagramSocketGetIpv6ReceivePacketInfoResponder {
48382    /// Sends a response to the FIDL transaction.
48383    ///
48384    /// Sets the channel to shutdown if an error occurs.
48385    pub fn send(
48386        self,
48387        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
48388    ) -> Result<(), fidl::Error> {
48389        let _result = self.send_raw(result);
48390        if _result.is_err() {
48391            self.control_handle.shutdown();
48392        }
48393        self.drop_without_shutdown();
48394        _result
48395    }
48396
48397    /// Similar to "send" but does not shutdown the channel if an error occurs.
48398    pub fn send_no_shutdown_on_err(
48399        self,
48400        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
48401    ) -> Result<(), fidl::Error> {
48402        let _result = self.send_raw(result);
48403        self.drop_without_shutdown();
48404        _result
48405    }
48406
48407    fn send_raw(
48408        &self,
48409        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
48410    ) -> Result<(), fidl::Error> {
48411        self.control_handle.inner.send::<fidl::encoding::ResultType<
48412            BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
48413            fidl_fuchsia_posix::Errno,
48414        >>(
48415            result.map(|value| (value,)),
48416            self.tx_id,
48417            0x7acd4a2775baec75,
48418            fidl::encoding::DynamicFlags::empty(),
48419        )
48420    }
48421}
48422
48423#[must_use = "FIDL methods require a response to be sent"]
48424#[derive(Debug)]
48425pub struct DatagramSocketGetOriginalDestinationResponder {
48426    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
48427    tx_id: u32,
48428}
48429
48430/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
48431/// if the responder is dropped without sending a response, so that the client
48432/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
48433impl std::ops::Drop for DatagramSocketGetOriginalDestinationResponder {
48434    fn drop(&mut self) {
48435        self.control_handle.shutdown();
48436        // Safety: drops once, never accessed again
48437        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
48438    }
48439}
48440
48441impl fidl::endpoints::Responder for DatagramSocketGetOriginalDestinationResponder {
48442    type ControlHandle = DatagramSocketControlHandle;
48443
48444    fn control_handle(&self) -> &DatagramSocketControlHandle {
48445        &self.control_handle
48446    }
48447
48448    fn drop_without_shutdown(mut self) {
48449        // Safety: drops once, never accessed again due to mem::forget
48450        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
48451        // Prevent Drop from running (which would shut down the channel)
48452        std::mem::forget(self);
48453    }
48454}
48455
48456impl DatagramSocketGetOriginalDestinationResponder {
48457    /// Sends a response to the FIDL transaction.
48458    ///
48459    /// Sets the channel to shutdown if an error occurs.
48460    pub fn send(
48461        self,
48462        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
48463    ) -> Result<(), fidl::Error> {
48464        let _result = self.send_raw(result);
48465        if _result.is_err() {
48466            self.control_handle.shutdown();
48467        }
48468        self.drop_without_shutdown();
48469        _result
48470    }
48471
48472    /// Similar to "send" but does not shutdown the channel if an error occurs.
48473    pub fn send_no_shutdown_on_err(
48474        self,
48475        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
48476    ) -> Result<(), fidl::Error> {
48477        let _result = self.send_raw(result);
48478        self.drop_without_shutdown();
48479        _result
48480    }
48481
48482    fn send_raw(
48483        &self,
48484        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
48485    ) -> Result<(), fidl::Error> {
48486        self.control_handle.inner.send::<fidl::encoding::ResultType<
48487            BaseNetworkSocketGetOriginalDestinationResponse,
48488            fidl_fuchsia_posix::Errno,
48489        >>(
48490            result.map(|value| (value,)),
48491            self.tx_id,
48492            0x38bf28f0dafdbac0,
48493            fidl::encoding::DynamicFlags::empty(),
48494        )
48495    }
48496}
48497
48498#[must_use = "FIDL methods require a response to be sent"]
48499#[derive(Debug)]
48500pub struct DatagramSocketGetInfoResponder {
48501    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
48502    tx_id: u32,
48503}
48504
48505/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
48506/// if the responder is dropped without sending a response, so that the client
48507/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
48508impl std::ops::Drop for DatagramSocketGetInfoResponder {
48509    fn drop(&mut self) {
48510        self.control_handle.shutdown();
48511        // Safety: drops once, never accessed again
48512        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
48513    }
48514}
48515
48516impl fidl::endpoints::Responder for DatagramSocketGetInfoResponder {
48517    type ControlHandle = DatagramSocketControlHandle;
48518
48519    fn control_handle(&self) -> &DatagramSocketControlHandle {
48520        &self.control_handle
48521    }
48522
48523    fn drop_without_shutdown(mut self) {
48524        // Safety: drops once, never accessed again due to mem::forget
48525        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
48526        // Prevent Drop from running (which would shut down the channel)
48527        std::mem::forget(self);
48528    }
48529}
48530
48531impl DatagramSocketGetInfoResponder {
48532    /// Sends a response to the FIDL transaction.
48533    ///
48534    /// Sets the channel to shutdown if an error occurs.
48535    pub fn send(
48536        self,
48537        mut result: Result<(Domain, DatagramSocketProtocol), fidl_fuchsia_posix::Errno>,
48538    ) -> Result<(), fidl::Error> {
48539        let _result = self.send_raw(result);
48540        if _result.is_err() {
48541            self.control_handle.shutdown();
48542        }
48543        self.drop_without_shutdown();
48544        _result
48545    }
48546
48547    /// Similar to "send" but does not shutdown the channel if an error occurs.
48548    pub fn send_no_shutdown_on_err(
48549        self,
48550        mut result: Result<(Domain, DatagramSocketProtocol), fidl_fuchsia_posix::Errno>,
48551    ) -> Result<(), fidl::Error> {
48552        let _result = self.send_raw(result);
48553        self.drop_without_shutdown();
48554        _result
48555    }
48556
48557    fn send_raw(
48558        &self,
48559        mut result: Result<(Domain, DatagramSocketProtocol), fidl_fuchsia_posix::Errno>,
48560    ) -> Result<(), fidl::Error> {
48561        self.control_handle.inner.send::<fidl::encoding::ResultType<
48562            BaseDatagramSocketGetInfoResponse,
48563            fidl_fuchsia_posix::Errno,
48564        >>(
48565            result,
48566            self.tx_id,
48567            0x48aa0a1f6a32d2ed,
48568            fidl::encoding::DynamicFlags::empty(),
48569        )
48570    }
48571}
48572
48573#[must_use = "FIDL methods require a response to be sent"]
48574#[derive(Debug)]
48575pub struct DatagramSocketDescribeResponder {
48576    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
48577    tx_id: u32,
48578}
48579
48580/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
48581/// if the responder is dropped without sending a response, so that the client
48582/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
48583impl std::ops::Drop for DatagramSocketDescribeResponder {
48584    fn drop(&mut self) {
48585        self.control_handle.shutdown();
48586        // Safety: drops once, never accessed again
48587        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
48588    }
48589}
48590
48591impl fidl::endpoints::Responder for DatagramSocketDescribeResponder {
48592    type ControlHandle = DatagramSocketControlHandle;
48593
48594    fn control_handle(&self) -> &DatagramSocketControlHandle {
48595        &self.control_handle
48596    }
48597
48598    fn drop_without_shutdown(mut self) {
48599        // Safety: drops once, never accessed again due to mem::forget
48600        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
48601        // Prevent Drop from running (which would shut down the channel)
48602        std::mem::forget(self);
48603    }
48604}
48605
48606impl DatagramSocketDescribeResponder {
48607    /// Sends a response to the FIDL transaction.
48608    ///
48609    /// Sets the channel to shutdown if an error occurs.
48610    pub fn send(self, mut payload: DatagramSocketDescribeResponse) -> Result<(), fidl::Error> {
48611        let _result = self.send_raw(payload);
48612        if _result.is_err() {
48613            self.control_handle.shutdown();
48614        }
48615        self.drop_without_shutdown();
48616        _result
48617    }
48618
48619    /// Similar to "send" but does not shutdown the channel if an error occurs.
48620    pub fn send_no_shutdown_on_err(
48621        self,
48622        mut payload: DatagramSocketDescribeResponse,
48623    ) -> Result<(), fidl::Error> {
48624        let _result = self.send_raw(payload);
48625        self.drop_without_shutdown();
48626        _result
48627    }
48628
48629    fn send_raw(&self, mut payload: DatagramSocketDescribeResponse) -> Result<(), fidl::Error> {
48630        self.control_handle.inner.send::<DatagramSocketDescribeResponse>(
48631            &mut payload,
48632            self.tx_id,
48633            0xbf1e2f0a86601f3,
48634            fidl::encoding::DynamicFlags::empty(),
48635        )
48636    }
48637}
48638
48639#[must_use = "FIDL methods require a response to be sent"]
48640#[derive(Debug)]
48641pub struct DatagramSocketSendMsgPreflightResponder {
48642    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
48643    tx_id: u32,
48644}
48645
48646/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
48647/// if the responder is dropped without sending a response, so that the client
48648/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
48649impl std::ops::Drop for DatagramSocketSendMsgPreflightResponder {
48650    fn drop(&mut self) {
48651        self.control_handle.shutdown();
48652        // Safety: drops once, never accessed again
48653        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
48654    }
48655}
48656
48657impl fidl::endpoints::Responder for DatagramSocketSendMsgPreflightResponder {
48658    type ControlHandle = DatagramSocketControlHandle;
48659
48660    fn control_handle(&self) -> &DatagramSocketControlHandle {
48661        &self.control_handle
48662    }
48663
48664    fn drop_without_shutdown(mut self) {
48665        // Safety: drops once, never accessed again due to mem::forget
48666        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
48667        // Prevent Drop from running (which would shut down the channel)
48668        std::mem::forget(self);
48669    }
48670}
48671
48672impl DatagramSocketSendMsgPreflightResponder {
48673    /// Sends a response to the FIDL transaction.
48674    ///
48675    /// Sets the channel to shutdown if an error occurs.
48676    pub fn send(
48677        self,
48678        mut result: Result<DatagramSocketSendMsgPreflightResponse, fidl_fuchsia_posix::Errno>,
48679    ) -> Result<(), fidl::Error> {
48680        let _result = self.send_raw(result);
48681        if _result.is_err() {
48682            self.control_handle.shutdown();
48683        }
48684        self.drop_without_shutdown();
48685        _result
48686    }
48687
48688    /// Similar to "send" but does not shutdown the channel if an error occurs.
48689    pub fn send_no_shutdown_on_err(
48690        self,
48691        mut result: Result<DatagramSocketSendMsgPreflightResponse, fidl_fuchsia_posix::Errno>,
48692    ) -> Result<(), fidl::Error> {
48693        let _result = self.send_raw(result);
48694        self.drop_without_shutdown();
48695        _result
48696    }
48697
48698    fn send_raw(
48699        &self,
48700        mut result: Result<DatagramSocketSendMsgPreflightResponse, fidl_fuchsia_posix::Errno>,
48701    ) -> Result<(), fidl::Error> {
48702        self.control_handle.inner.send::<fidl::encoding::ResultType<
48703            DatagramSocketSendMsgPreflightResponse,
48704            fidl_fuchsia_posix::Errno,
48705        >>(
48706            result.as_mut().map_err(|e| *e),
48707            self.tx_id,
48708            0x5362e668e777248a,
48709            fidl::encoding::DynamicFlags::empty(),
48710        )
48711    }
48712}
48713
48714#[must_use = "FIDL methods require a response to be sent"]
48715#[derive(Debug)]
48716pub struct DatagramSocketRecvMsgPostflightResponder {
48717    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
48718    tx_id: u32,
48719}
48720
48721/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
48722/// if the responder is dropped without sending a response, so that the client
48723/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
48724impl std::ops::Drop for DatagramSocketRecvMsgPostflightResponder {
48725    fn drop(&mut self) {
48726        self.control_handle.shutdown();
48727        // Safety: drops once, never accessed again
48728        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
48729    }
48730}
48731
48732impl fidl::endpoints::Responder for DatagramSocketRecvMsgPostflightResponder {
48733    type ControlHandle = DatagramSocketControlHandle;
48734
48735    fn control_handle(&self) -> &DatagramSocketControlHandle {
48736        &self.control_handle
48737    }
48738
48739    fn drop_without_shutdown(mut self) {
48740        // Safety: drops once, never accessed again due to mem::forget
48741        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
48742        // Prevent Drop from running (which would shut down the channel)
48743        std::mem::forget(self);
48744    }
48745}
48746
48747impl DatagramSocketRecvMsgPostflightResponder {
48748    /// Sends a response to the FIDL transaction.
48749    ///
48750    /// Sets the channel to shutdown if an error occurs.
48751    pub fn send(
48752        self,
48753        mut result: Result<DatagramSocketRecvMsgPostflightResponse, fidl_fuchsia_posix::Errno>,
48754    ) -> Result<(), fidl::Error> {
48755        let _result = self.send_raw(result);
48756        if _result.is_err() {
48757            self.control_handle.shutdown();
48758        }
48759        self.drop_without_shutdown();
48760        _result
48761    }
48762
48763    /// Similar to "send" but does not shutdown the channel if an error occurs.
48764    pub fn send_no_shutdown_on_err(
48765        self,
48766        mut result: Result<DatagramSocketRecvMsgPostflightResponse, fidl_fuchsia_posix::Errno>,
48767    ) -> Result<(), fidl::Error> {
48768        let _result = self.send_raw(result);
48769        self.drop_without_shutdown();
48770        _result
48771    }
48772
48773    fn send_raw(
48774        &self,
48775        mut result: Result<DatagramSocketRecvMsgPostflightResponse, fidl_fuchsia_posix::Errno>,
48776    ) -> Result<(), fidl::Error> {
48777        self.control_handle.inner.send::<fidl::encoding::ResultType<
48778            DatagramSocketRecvMsgPostflightResponse,
48779            fidl_fuchsia_posix::Errno,
48780        >>(
48781            result.as_mut().map_err(|e| *e),
48782            self.tx_id,
48783            0x1a7cdeca5f3eb8e2,
48784            fidl::encoding::DynamicFlags::empty(),
48785        )
48786    }
48787}
48788
48789#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
48790pub struct ProviderMarker;
48791
48792impl fidl::endpoints::ProtocolMarker for ProviderMarker {
48793    type Proxy = ProviderProxy;
48794    type RequestStream = ProviderRequestStream;
48795    #[cfg(target_os = "fuchsia")]
48796    type SynchronousProxy = ProviderSynchronousProxy;
48797
48798    const DEBUG_NAME: &'static str = "fuchsia.posix.socket.Provider";
48799}
48800impl fidl::endpoints::DiscoverableProtocolMarker for ProviderMarker {}
48801pub type ProviderStreamSocketWithOptionsResult =
48802    Result<fidl::endpoints::ClientEnd<StreamSocketMarker>, fidl_fuchsia_posix::Errno>;
48803pub type ProviderStreamSocketResult =
48804    Result<fidl::endpoints::ClientEnd<StreamSocketMarker>, fidl_fuchsia_posix::Errno>;
48805pub type ProviderDatagramSocketDeprecatedResult =
48806    Result<fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>, fidl_fuchsia_posix::Errno>;
48807pub type ProviderDatagramSocketResult =
48808    Result<ProviderDatagramSocketResponse, fidl_fuchsia_posix::Errno>;
48809pub type ProviderDatagramSocketWithOptionsResult =
48810    Result<ProviderDatagramSocketWithOptionsResponse, fidl_fuchsia_posix::Errno>;
48811pub type ProviderInterfaceIndexToNameResult = Result<String, i32>;
48812pub type ProviderInterfaceNameToIndexResult = Result<u64, i32>;
48813pub type ProviderInterfaceNameToFlagsResult = Result<InterfaceFlags, i32>;
48814
48815pub trait ProviderProxyInterface: Send + Sync {
48816    type StreamSocketWithOptionsResponseFut: std::future::Future<Output = Result<ProviderStreamSocketWithOptionsResult, fidl::Error>>
48817        + Send;
48818    fn r#stream_socket_with_options(
48819        &self,
48820        domain: Domain,
48821        proto: StreamSocketProtocol,
48822        opts: SocketCreationOptions,
48823    ) -> Self::StreamSocketWithOptionsResponseFut;
48824    type StreamSocketResponseFut: std::future::Future<Output = Result<ProviderStreamSocketResult, fidl::Error>>
48825        + Send;
48826    fn r#stream_socket(
48827        &self,
48828        domain: Domain,
48829        proto: StreamSocketProtocol,
48830    ) -> Self::StreamSocketResponseFut;
48831    type DatagramSocketDeprecatedResponseFut: std::future::Future<Output = Result<ProviderDatagramSocketDeprecatedResult, fidl::Error>>
48832        + Send;
48833    fn r#datagram_socket_deprecated(
48834        &self,
48835        domain: Domain,
48836        proto: DatagramSocketProtocol,
48837    ) -> Self::DatagramSocketDeprecatedResponseFut;
48838    type DatagramSocketResponseFut: std::future::Future<Output = Result<ProviderDatagramSocketResult, fidl::Error>>
48839        + Send;
48840    fn r#datagram_socket(
48841        &self,
48842        domain: Domain,
48843        proto: DatagramSocketProtocol,
48844    ) -> Self::DatagramSocketResponseFut;
48845    type DatagramSocketWithOptionsResponseFut: std::future::Future<Output = Result<ProviderDatagramSocketWithOptionsResult, fidl::Error>>
48846        + Send;
48847    fn r#datagram_socket_with_options(
48848        &self,
48849        domain: Domain,
48850        proto: DatagramSocketProtocol,
48851        opts: SocketCreationOptions,
48852    ) -> Self::DatagramSocketWithOptionsResponseFut;
48853    type InterfaceIndexToNameResponseFut: std::future::Future<Output = Result<ProviderInterfaceIndexToNameResult, fidl::Error>>
48854        + Send;
48855    fn r#interface_index_to_name(&self, index: u64) -> Self::InterfaceIndexToNameResponseFut;
48856    type InterfaceNameToIndexResponseFut: std::future::Future<Output = Result<ProviderInterfaceNameToIndexResult, fidl::Error>>
48857        + Send;
48858    fn r#interface_name_to_index(&self, name: &str) -> Self::InterfaceNameToIndexResponseFut;
48859    type InterfaceNameToFlagsResponseFut: std::future::Future<Output = Result<ProviderInterfaceNameToFlagsResult, fidl::Error>>
48860        + Send;
48861    fn r#interface_name_to_flags(&self, name: &str) -> Self::InterfaceNameToFlagsResponseFut;
48862    type GetInterfaceAddressesResponseFut: std::future::Future<Output = Result<Vec<InterfaceAddresses>, fidl::Error>>
48863        + Send;
48864    fn r#get_interface_addresses(&self) -> Self::GetInterfaceAddressesResponseFut;
48865}
48866#[derive(Debug)]
48867#[cfg(target_os = "fuchsia")]
48868pub struct ProviderSynchronousProxy {
48869    client: fidl::client::sync::Client,
48870}
48871
48872#[cfg(target_os = "fuchsia")]
48873impl fidl::endpoints::SynchronousProxy for ProviderSynchronousProxy {
48874    type Proxy = ProviderProxy;
48875    type Protocol = ProviderMarker;
48876
48877    fn from_channel(inner: fidl::Channel) -> Self {
48878        Self::new(inner)
48879    }
48880
48881    fn into_channel(self) -> fidl::Channel {
48882        self.client.into_channel()
48883    }
48884
48885    fn as_channel(&self) -> &fidl::Channel {
48886        self.client.as_channel()
48887    }
48888}
48889
48890#[cfg(target_os = "fuchsia")]
48891impl ProviderSynchronousProxy {
48892    pub fn new(channel: fidl::Channel) -> Self {
48893        Self { client: fidl::client::sync::Client::new(channel) }
48894    }
48895
48896    pub fn into_channel(self) -> fidl::Channel {
48897        self.client.into_channel()
48898    }
48899
48900    /// Waits until an event arrives and returns it. It is safe for other
48901    /// threads to make concurrent requests while waiting for an event.
48902    pub fn wait_for_event(
48903        &self,
48904        deadline: zx::MonotonicInstant,
48905    ) -> Result<ProviderEvent, fidl::Error> {
48906        ProviderEvent::decode(self.client.wait_for_event::<ProviderMarker>(deadline)?)
48907    }
48908
48909    /// Requests a stream socket with the specified parameters and the creation
48910    /// options.
48911    pub fn r#stream_socket_with_options(
48912        &self,
48913        mut domain: Domain,
48914        mut proto: StreamSocketProtocol,
48915        mut opts: SocketCreationOptions,
48916        ___deadline: zx::MonotonicInstant,
48917    ) -> Result<ProviderStreamSocketWithOptionsResult, fidl::Error> {
48918        let _response = self
48919            .client
48920            .send_query::<ProviderStreamSocketWithOptionsRequest, fidl::encoding::ResultType<
48921                ProviderStreamSocketWithOptionsResponse,
48922                fidl_fuchsia_posix::Errno,
48923            >, ProviderMarker>(
48924                (domain, proto, &mut opts),
48925                0x3969bf7eb78386e0,
48926                fidl::encoding::DynamicFlags::empty(),
48927                ___deadline,
48928            )?;
48929        Ok(_response.map(|x| x.s))
48930    }
48931
48932    /// Requests a stream socket with the specified parameters.
48933    pub fn r#stream_socket(
48934        &self,
48935        mut domain: Domain,
48936        mut proto: StreamSocketProtocol,
48937        ___deadline: zx::MonotonicInstant,
48938    ) -> Result<ProviderStreamSocketResult, fidl::Error> {
48939        let _response =
48940            self.client.send_query::<ProviderStreamSocketRequest, fidl::encoding::ResultType<
48941                ProviderStreamSocketResponse,
48942                fidl_fuchsia_posix::Errno,
48943            >, ProviderMarker>(
48944                (domain, proto),
48945                0x27c3581da2155545,
48946                fidl::encoding::DynamicFlags::empty(),
48947                ___deadline,
48948            )?;
48949        Ok(_response.map(|x| x.s))
48950    }
48951
48952    /// Requests a datagram socket with the specified parameters.
48953    /// TODO(https://fxbug.dev/42165881): Remove this method once no more callers rely on it.
48954    pub fn r#datagram_socket_deprecated(
48955        &self,
48956        mut domain: Domain,
48957        mut proto: DatagramSocketProtocol,
48958        ___deadline: zx::MonotonicInstant,
48959    ) -> Result<ProviderDatagramSocketDeprecatedResult, fidl::Error> {
48960        let _response = self
48961            .client
48962            .send_query::<ProviderDatagramSocketDeprecatedRequest, fidl::encoding::ResultType<
48963                ProviderDatagramSocketDeprecatedResponse,
48964                fidl_fuchsia_posix::Errno,
48965            >, ProviderMarker>(
48966                (domain, proto),
48967                0x38876c87cf031cb1,
48968                fidl::encoding::DynamicFlags::empty(),
48969                ___deadline,
48970            )?;
48971        Ok(_response.map(|x| x.s))
48972    }
48973
48974    /// Requests a datagram socket with the specified parameters.
48975    pub fn r#datagram_socket(
48976        &self,
48977        mut domain: Domain,
48978        mut proto: DatagramSocketProtocol,
48979        ___deadline: zx::MonotonicInstant,
48980    ) -> Result<ProviderDatagramSocketResult, fidl::Error> {
48981        let _response =
48982            self.client.send_query::<ProviderDatagramSocketRequest, fidl::encoding::ResultType<
48983                ProviderDatagramSocketResponse,
48984                fidl_fuchsia_posix::Errno,
48985            >, ProviderMarker>(
48986                (domain, proto),
48987                0x4021b4fa1b6452f2,
48988                fidl::encoding::DynamicFlags::empty(),
48989                ___deadline,
48990            )?;
48991        Ok(_response.map(|x| x))
48992    }
48993
48994    /// Requests a datagram socket with the specified parameters and the creation
48995    /// options.
48996    pub fn r#datagram_socket_with_options(
48997        &self,
48998        mut domain: Domain,
48999        mut proto: DatagramSocketProtocol,
49000        mut opts: SocketCreationOptions,
49001        ___deadline: zx::MonotonicInstant,
49002    ) -> Result<ProviderDatagramSocketWithOptionsResult, fidl::Error> {
49003        let _response = self
49004            .client
49005            .send_query::<ProviderDatagramSocketWithOptionsRequest, fidl::encoding::ResultType<
49006                ProviderDatagramSocketWithOptionsResponse,
49007                fidl_fuchsia_posix::Errno,
49008            >, ProviderMarker>(
49009                (domain, proto, &mut opts),
49010                0x4cd0cffbffa39eb1,
49011                fidl::encoding::DynamicFlags::empty(),
49012                ___deadline,
49013            )?;
49014        Ok(_response.map(|x| x))
49015    }
49016
49017    /// Looks up an interface by its index and returns its name. Returns
49018    /// `ZX_ERR_NOT_FOUND` if the specified index doesn't exist.
49019    pub fn r#interface_index_to_name(
49020        &self,
49021        mut index: u64,
49022        ___deadline: zx::MonotonicInstant,
49023    ) -> Result<ProviderInterfaceIndexToNameResult, fidl::Error> {
49024        let _response = self.client.send_query::<
49025            ProviderInterfaceIndexToNameRequest,
49026            fidl::encoding::ResultType<ProviderInterfaceIndexToNameResponse, i32>,
49027            ProviderMarker,
49028        >(
49029            (index,),
49030            0x4d59a64fce98272f,
49031            fidl::encoding::DynamicFlags::empty(),
49032            ___deadline,
49033        )?;
49034        Ok(_response.map(|x| x.name))
49035    }
49036
49037    /// Looks up an interface by its name and returns its index. Returns
49038    /// `ZX_ERR_NOT_FOUND` if the specified name doesn't exist.
49039    pub fn r#interface_name_to_index(
49040        &self,
49041        mut name: &str,
49042        ___deadline: zx::MonotonicInstant,
49043    ) -> Result<ProviderInterfaceNameToIndexResult, fidl::Error> {
49044        let _response = self.client.send_query::<
49045            ProviderInterfaceNameToIndexRequest,
49046            fidl::encoding::ResultType<ProviderInterfaceNameToIndexResponse, i32>,
49047            ProviderMarker,
49048        >(
49049            (name,),
49050            0x690cd8d2f2d650f8,
49051            fidl::encoding::DynamicFlags::empty(),
49052            ___deadline,
49053        )?;
49054        Ok(_response.map(|x| x.index))
49055    }
49056
49057    /// Looks up an interface by its name and returns its flags. Returns
49058    /// `ZX_ERR_NOT_FOUND` if the specified name doesn't exist.
49059    pub fn r#interface_name_to_flags(
49060        &self,
49061        mut name: &str,
49062        ___deadline: zx::MonotonicInstant,
49063    ) -> Result<ProviderInterfaceNameToFlagsResult, fidl::Error> {
49064        let _response = self.client.send_query::<
49065            ProviderInterfaceNameToFlagsRequest,
49066            fidl::encoding::ResultType<ProviderInterfaceNameToFlagsResponse, i32>,
49067            ProviderMarker,
49068        >(
49069            (name,),
49070            0x25d0efcdb6671a0b,
49071            fidl::encoding::DynamicFlags::empty(),
49072            ___deadline,
49073        )?;
49074        Ok(_response.map(|x| x.flags))
49075    }
49076
49077    /// Requests a list of [`fuchsia.posix.socket.InterfaceAddresses`]
49078    /// describing the network interfaces on the system.
49079    pub fn r#get_interface_addresses(
49080        &self,
49081        ___deadline: zx::MonotonicInstant,
49082    ) -> Result<Vec<InterfaceAddresses>, fidl::Error> {
49083        let _response = self.client.send_query::<
49084            fidl::encoding::EmptyPayload,
49085            ProviderGetInterfaceAddressesResponse,
49086            ProviderMarker,
49087        >(
49088            (),
49089            0x2e7b9aaf327c870,
49090            fidl::encoding::DynamicFlags::empty(),
49091            ___deadline,
49092        )?;
49093        Ok(_response.interfaces)
49094    }
49095}
49096
49097#[cfg(target_os = "fuchsia")]
49098impl From<ProviderSynchronousProxy> for zx::NullableHandle {
49099    fn from(value: ProviderSynchronousProxy) -> Self {
49100        value.into_channel().into()
49101    }
49102}
49103
49104#[cfg(target_os = "fuchsia")]
49105impl From<fidl::Channel> for ProviderSynchronousProxy {
49106    fn from(value: fidl::Channel) -> Self {
49107        Self::new(value)
49108    }
49109}
49110
49111#[cfg(target_os = "fuchsia")]
49112impl fidl::endpoints::FromClient for ProviderSynchronousProxy {
49113    type Protocol = ProviderMarker;
49114
49115    fn from_client(value: fidl::endpoints::ClientEnd<ProviderMarker>) -> Self {
49116        Self::new(value.into_channel())
49117    }
49118}
49119
49120#[derive(Debug, Clone)]
49121pub struct ProviderProxy {
49122    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
49123}
49124
49125impl fidl::endpoints::Proxy for ProviderProxy {
49126    type Protocol = ProviderMarker;
49127
49128    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
49129        Self::new(inner)
49130    }
49131
49132    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
49133        self.client.into_channel().map_err(|client| Self { client })
49134    }
49135
49136    fn as_channel(&self) -> &::fidl::AsyncChannel {
49137        self.client.as_channel()
49138    }
49139}
49140
49141impl ProviderProxy {
49142    /// Create a new Proxy for fuchsia.posix.socket/Provider.
49143    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
49144        let protocol_name = <ProviderMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
49145        Self { client: fidl::client::Client::new(channel, protocol_name) }
49146    }
49147
49148    /// Get a Stream of events from the remote end of the protocol.
49149    ///
49150    /// # Panics
49151    ///
49152    /// Panics if the event stream was already taken.
49153    pub fn take_event_stream(&self) -> ProviderEventStream {
49154        ProviderEventStream { event_receiver: self.client.take_event_receiver() }
49155    }
49156
49157    /// Requests a stream socket with the specified parameters and the creation
49158    /// options.
49159    pub fn r#stream_socket_with_options(
49160        &self,
49161        mut domain: Domain,
49162        mut proto: StreamSocketProtocol,
49163        mut opts: SocketCreationOptions,
49164    ) -> fidl::client::QueryResponseFut<
49165        ProviderStreamSocketWithOptionsResult,
49166        fidl::encoding::DefaultFuchsiaResourceDialect,
49167    > {
49168        ProviderProxyInterface::r#stream_socket_with_options(self, domain, proto, opts)
49169    }
49170
49171    /// Requests a stream socket with the specified parameters.
49172    pub fn r#stream_socket(
49173        &self,
49174        mut domain: Domain,
49175        mut proto: StreamSocketProtocol,
49176    ) -> fidl::client::QueryResponseFut<
49177        ProviderStreamSocketResult,
49178        fidl::encoding::DefaultFuchsiaResourceDialect,
49179    > {
49180        ProviderProxyInterface::r#stream_socket(self, domain, proto)
49181    }
49182
49183    /// Requests a datagram socket with the specified parameters.
49184    /// TODO(https://fxbug.dev/42165881): Remove this method once no more callers rely on it.
49185    pub fn r#datagram_socket_deprecated(
49186        &self,
49187        mut domain: Domain,
49188        mut proto: DatagramSocketProtocol,
49189    ) -> fidl::client::QueryResponseFut<
49190        ProviderDatagramSocketDeprecatedResult,
49191        fidl::encoding::DefaultFuchsiaResourceDialect,
49192    > {
49193        ProviderProxyInterface::r#datagram_socket_deprecated(self, domain, proto)
49194    }
49195
49196    /// Requests a datagram socket with the specified parameters.
49197    pub fn r#datagram_socket(
49198        &self,
49199        mut domain: Domain,
49200        mut proto: DatagramSocketProtocol,
49201    ) -> fidl::client::QueryResponseFut<
49202        ProviderDatagramSocketResult,
49203        fidl::encoding::DefaultFuchsiaResourceDialect,
49204    > {
49205        ProviderProxyInterface::r#datagram_socket(self, domain, proto)
49206    }
49207
49208    /// Requests a datagram socket with the specified parameters and the creation
49209    /// options.
49210    pub fn r#datagram_socket_with_options(
49211        &self,
49212        mut domain: Domain,
49213        mut proto: DatagramSocketProtocol,
49214        mut opts: SocketCreationOptions,
49215    ) -> fidl::client::QueryResponseFut<
49216        ProviderDatagramSocketWithOptionsResult,
49217        fidl::encoding::DefaultFuchsiaResourceDialect,
49218    > {
49219        ProviderProxyInterface::r#datagram_socket_with_options(self, domain, proto, opts)
49220    }
49221
49222    /// Looks up an interface by its index and returns its name. Returns
49223    /// `ZX_ERR_NOT_FOUND` if the specified index doesn't exist.
49224    pub fn r#interface_index_to_name(
49225        &self,
49226        mut index: u64,
49227    ) -> fidl::client::QueryResponseFut<
49228        ProviderInterfaceIndexToNameResult,
49229        fidl::encoding::DefaultFuchsiaResourceDialect,
49230    > {
49231        ProviderProxyInterface::r#interface_index_to_name(self, index)
49232    }
49233
49234    /// Looks up an interface by its name and returns its index. Returns
49235    /// `ZX_ERR_NOT_FOUND` if the specified name doesn't exist.
49236    pub fn r#interface_name_to_index(
49237        &self,
49238        mut name: &str,
49239    ) -> fidl::client::QueryResponseFut<
49240        ProviderInterfaceNameToIndexResult,
49241        fidl::encoding::DefaultFuchsiaResourceDialect,
49242    > {
49243        ProviderProxyInterface::r#interface_name_to_index(self, name)
49244    }
49245
49246    /// Looks up an interface by its name and returns its flags. Returns
49247    /// `ZX_ERR_NOT_FOUND` if the specified name doesn't exist.
49248    pub fn r#interface_name_to_flags(
49249        &self,
49250        mut name: &str,
49251    ) -> fidl::client::QueryResponseFut<
49252        ProviderInterfaceNameToFlagsResult,
49253        fidl::encoding::DefaultFuchsiaResourceDialect,
49254    > {
49255        ProviderProxyInterface::r#interface_name_to_flags(self, name)
49256    }
49257
49258    /// Requests a list of [`fuchsia.posix.socket.InterfaceAddresses`]
49259    /// describing the network interfaces on the system.
49260    pub fn r#get_interface_addresses(
49261        &self,
49262    ) -> fidl::client::QueryResponseFut<
49263        Vec<InterfaceAddresses>,
49264        fidl::encoding::DefaultFuchsiaResourceDialect,
49265    > {
49266        ProviderProxyInterface::r#get_interface_addresses(self)
49267    }
49268}
49269
49270impl ProviderProxyInterface for ProviderProxy {
49271    type StreamSocketWithOptionsResponseFut = fidl::client::QueryResponseFut<
49272        ProviderStreamSocketWithOptionsResult,
49273        fidl::encoding::DefaultFuchsiaResourceDialect,
49274    >;
49275    fn r#stream_socket_with_options(
49276        &self,
49277        mut domain: Domain,
49278        mut proto: StreamSocketProtocol,
49279        mut opts: SocketCreationOptions,
49280    ) -> Self::StreamSocketWithOptionsResponseFut {
49281        fn _decode(
49282            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
49283        ) -> Result<ProviderStreamSocketWithOptionsResult, fidl::Error> {
49284            let _response = fidl::client::decode_transaction_body::<
49285                fidl::encoding::ResultType<
49286                    ProviderStreamSocketWithOptionsResponse,
49287                    fidl_fuchsia_posix::Errno,
49288                >,
49289                fidl::encoding::DefaultFuchsiaResourceDialect,
49290                0x3969bf7eb78386e0,
49291            >(_buf?)?;
49292            Ok(_response.map(|x| x.s))
49293        }
49294        self.client.send_query_and_decode::<
49295            ProviderStreamSocketWithOptionsRequest,
49296            ProviderStreamSocketWithOptionsResult,
49297        >(
49298            (domain, proto, &mut opts,),
49299            0x3969bf7eb78386e0,
49300            fidl::encoding::DynamicFlags::empty(),
49301            _decode,
49302        )
49303    }
49304
49305    type StreamSocketResponseFut = fidl::client::QueryResponseFut<
49306        ProviderStreamSocketResult,
49307        fidl::encoding::DefaultFuchsiaResourceDialect,
49308    >;
49309    fn r#stream_socket(
49310        &self,
49311        mut domain: Domain,
49312        mut proto: StreamSocketProtocol,
49313    ) -> Self::StreamSocketResponseFut {
49314        fn _decode(
49315            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
49316        ) -> Result<ProviderStreamSocketResult, fidl::Error> {
49317            let _response = fidl::client::decode_transaction_body::<
49318                fidl::encoding::ResultType<ProviderStreamSocketResponse, fidl_fuchsia_posix::Errno>,
49319                fidl::encoding::DefaultFuchsiaResourceDialect,
49320                0x27c3581da2155545,
49321            >(_buf?)?;
49322            Ok(_response.map(|x| x.s))
49323        }
49324        self.client
49325            .send_query_and_decode::<ProviderStreamSocketRequest, ProviderStreamSocketResult>(
49326                (domain, proto),
49327                0x27c3581da2155545,
49328                fidl::encoding::DynamicFlags::empty(),
49329                _decode,
49330            )
49331    }
49332
49333    type DatagramSocketDeprecatedResponseFut = fidl::client::QueryResponseFut<
49334        ProviderDatagramSocketDeprecatedResult,
49335        fidl::encoding::DefaultFuchsiaResourceDialect,
49336    >;
49337    fn r#datagram_socket_deprecated(
49338        &self,
49339        mut domain: Domain,
49340        mut proto: DatagramSocketProtocol,
49341    ) -> Self::DatagramSocketDeprecatedResponseFut {
49342        fn _decode(
49343            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
49344        ) -> Result<ProviderDatagramSocketDeprecatedResult, fidl::Error> {
49345            let _response = fidl::client::decode_transaction_body::<
49346                fidl::encoding::ResultType<
49347                    ProviderDatagramSocketDeprecatedResponse,
49348                    fidl_fuchsia_posix::Errno,
49349                >,
49350                fidl::encoding::DefaultFuchsiaResourceDialect,
49351                0x38876c87cf031cb1,
49352            >(_buf?)?;
49353            Ok(_response.map(|x| x.s))
49354        }
49355        self.client.send_query_and_decode::<
49356            ProviderDatagramSocketDeprecatedRequest,
49357            ProviderDatagramSocketDeprecatedResult,
49358        >(
49359            (domain, proto,),
49360            0x38876c87cf031cb1,
49361            fidl::encoding::DynamicFlags::empty(),
49362            _decode,
49363        )
49364    }
49365
49366    type DatagramSocketResponseFut = fidl::client::QueryResponseFut<
49367        ProviderDatagramSocketResult,
49368        fidl::encoding::DefaultFuchsiaResourceDialect,
49369    >;
49370    fn r#datagram_socket(
49371        &self,
49372        mut domain: Domain,
49373        mut proto: DatagramSocketProtocol,
49374    ) -> Self::DatagramSocketResponseFut {
49375        fn _decode(
49376            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
49377        ) -> Result<ProviderDatagramSocketResult, fidl::Error> {
49378            let _response = fidl::client::decode_transaction_body::<
49379                fidl::encoding::ResultType<
49380                    ProviderDatagramSocketResponse,
49381                    fidl_fuchsia_posix::Errno,
49382                >,
49383                fidl::encoding::DefaultFuchsiaResourceDialect,
49384                0x4021b4fa1b6452f2,
49385            >(_buf?)?;
49386            Ok(_response.map(|x| x))
49387        }
49388        self.client
49389            .send_query_and_decode::<ProviderDatagramSocketRequest, ProviderDatagramSocketResult>(
49390                (domain, proto),
49391                0x4021b4fa1b6452f2,
49392                fidl::encoding::DynamicFlags::empty(),
49393                _decode,
49394            )
49395    }
49396
49397    type DatagramSocketWithOptionsResponseFut = fidl::client::QueryResponseFut<
49398        ProviderDatagramSocketWithOptionsResult,
49399        fidl::encoding::DefaultFuchsiaResourceDialect,
49400    >;
49401    fn r#datagram_socket_with_options(
49402        &self,
49403        mut domain: Domain,
49404        mut proto: DatagramSocketProtocol,
49405        mut opts: SocketCreationOptions,
49406    ) -> Self::DatagramSocketWithOptionsResponseFut {
49407        fn _decode(
49408            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
49409        ) -> Result<ProviderDatagramSocketWithOptionsResult, fidl::Error> {
49410            let _response = fidl::client::decode_transaction_body::<
49411                fidl::encoding::ResultType<
49412                    ProviderDatagramSocketWithOptionsResponse,
49413                    fidl_fuchsia_posix::Errno,
49414                >,
49415                fidl::encoding::DefaultFuchsiaResourceDialect,
49416                0x4cd0cffbffa39eb1,
49417            >(_buf?)?;
49418            Ok(_response.map(|x| x))
49419        }
49420        self.client.send_query_and_decode::<
49421            ProviderDatagramSocketWithOptionsRequest,
49422            ProviderDatagramSocketWithOptionsResult,
49423        >(
49424            (domain, proto, &mut opts,),
49425            0x4cd0cffbffa39eb1,
49426            fidl::encoding::DynamicFlags::empty(),
49427            _decode,
49428        )
49429    }
49430
49431    type InterfaceIndexToNameResponseFut = fidl::client::QueryResponseFut<
49432        ProviderInterfaceIndexToNameResult,
49433        fidl::encoding::DefaultFuchsiaResourceDialect,
49434    >;
49435    fn r#interface_index_to_name(&self, mut index: u64) -> Self::InterfaceIndexToNameResponseFut {
49436        fn _decode(
49437            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
49438        ) -> Result<ProviderInterfaceIndexToNameResult, fidl::Error> {
49439            let _response = fidl::client::decode_transaction_body::<
49440                fidl::encoding::ResultType<ProviderInterfaceIndexToNameResponse, i32>,
49441                fidl::encoding::DefaultFuchsiaResourceDialect,
49442                0x4d59a64fce98272f,
49443            >(_buf?)?;
49444            Ok(_response.map(|x| x.name))
49445        }
49446        self.client.send_query_and_decode::<
49447            ProviderInterfaceIndexToNameRequest,
49448            ProviderInterfaceIndexToNameResult,
49449        >(
49450            (index,),
49451            0x4d59a64fce98272f,
49452            fidl::encoding::DynamicFlags::empty(),
49453            _decode,
49454        )
49455    }
49456
49457    type InterfaceNameToIndexResponseFut = fidl::client::QueryResponseFut<
49458        ProviderInterfaceNameToIndexResult,
49459        fidl::encoding::DefaultFuchsiaResourceDialect,
49460    >;
49461    fn r#interface_name_to_index(&self, mut name: &str) -> Self::InterfaceNameToIndexResponseFut {
49462        fn _decode(
49463            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
49464        ) -> Result<ProviderInterfaceNameToIndexResult, fidl::Error> {
49465            let _response = fidl::client::decode_transaction_body::<
49466                fidl::encoding::ResultType<ProviderInterfaceNameToIndexResponse, i32>,
49467                fidl::encoding::DefaultFuchsiaResourceDialect,
49468                0x690cd8d2f2d650f8,
49469            >(_buf?)?;
49470            Ok(_response.map(|x| x.index))
49471        }
49472        self.client.send_query_and_decode::<
49473            ProviderInterfaceNameToIndexRequest,
49474            ProviderInterfaceNameToIndexResult,
49475        >(
49476            (name,),
49477            0x690cd8d2f2d650f8,
49478            fidl::encoding::DynamicFlags::empty(),
49479            _decode,
49480        )
49481    }
49482
49483    type InterfaceNameToFlagsResponseFut = fidl::client::QueryResponseFut<
49484        ProviderInterfaceNameToFlagsResult,
49485        fidl::encoding::DefaultFuchsiaResourceDialect,
49486    >;
49487    fn r#interface_name_to_flags(&self, mut name: &str) -> Self::InterfaceNameToFlagsResponseFut {
49488        fn _decode(
49489            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
49490        ) -> Result<ProviderInterfaceNameToFlagsResult, fidl::Error> {
49491            let _response = fidl::client::decode_transaction_body::<
49492                fidl::encoding::ResultType<ProviderInterfaceNameToFlagsResponse, i32>,
49493                fidl::encoding::DefaultFuchsiaResourceDialect,
49494                0x25d0efcdb6671a0b,
49495            >(_buf?)?;
49496            Ok(_response.map(|x| x.flags))
49497        }
49498        self.client.send_query_and_decode::<
49499            ProviderInterfaceNameToFlagsRequest,
49500            ProviderInterfaceNameToFlagsResult,
49501        >(
49502            (name,),
49503            0x25d0efcdb6671a0b,
49504            fidl::encoding::DynamicFlags::empty(),
49505            _decode,
49506        )
49507    }
49508
49509    type GetInterfaceAddressesResponseFut = fidl::client::QueryResponseFut<
49510        Vec<InterfaceAddresses>,
49511        fidl::encoding::DefaultFuchsiaResourceDialect,
49512    >;
49513    fn r#get_interface_addresses(&self) -> Self::GetInterfaceAddressesResponseFut {
49514        fn _decode(
49515            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
49516        ) -> Result<Vec<InterfaceAddresses>, fidl::Error> {
49517            let _response = fidl::client::decode_transaction_body::<
49518                ProviderGetInterfaceAddressesResponse,
49519                fidl::encoding::DefaultFuchsiaResourceDialect,
49520                0x2e7b9aaf327c870,
49521            >(_buf?)?;
49522            Ok(_response.interfaces)
49523        }
49524        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, Vec<InterfaceAddresses>>(
49525            (),
49526            0x2e7b9aaf327c870,
49527            fidl::encoding::DynamicFlags::empty(),
49528            _decode,
49529        )
49530    }
49531}
49532
49533pub struct ProviderEventStream {
49534    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
49535}
49536
49537impl std::marker::Unpin for ProviderEventStream {}
49538
49539impl futures::stream::FusedStream for ProviderEventStream {
49540    fn is_terminated(&self) -> bool {
49541        self.event_receiver.is_terminated()
49542    }
49543}
49544
49545impl futures::Stream for ProviderEventStream {
49546    type Item = Result<ProviderEvent, fidl::Error>;
49547
49548    fn poll_next(
49549        mut self: std::pin::Pin<&mut Self>,
49550        cx: &mut std::task::Context<'_>,
49551    ) -> std::task::Poll<Option<Self::Item>> {
49552        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
49553            &mut self.event_receiver,
49554            cx
49555        )?) {
49556            Some(buf) => std::task::Poll::Ready(Some(ProviderEvent::decode(buf))),
49557            None => std::task::Poll::Ready(None),
49558        }
49559    }
49560}
49561
49562#[derive(Debug)]
49563pub enum ProviderEvent {}
49564
49565impl ProviderEvent {
49566    /// Decodes a message buffer as a [`ProviderEvent`].
49567    fn decode(
49568        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
49569    ) -> Result<ProviderEvent, fidl::Error> {
49570        let (bytes, _handles) = buf.split_mut();
49571        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
49572        debug_assert_eq!(tx_header.tx_id, 0);
49573        match tx_header.ordinal {
49574            _ => Err(fidl::Error::UnknownOrdinal {
49575                ordinal: tx_header.ordinal,
49576                protocol_name: <ProviderMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
49577            }),
49578        }
49579    }
49580}
49581
49582/// A Stream of incoming requests for fuchsia.posix.socket/Provider.
49583pub struct ProviderRequestStream {
49584    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
49585    is_terminated: bool,
49586}
49587
49588impl std::marker::Unpin for ProviderRequestStream {}
49589
49590impl futures::stream::FusedStream for ProviderRequestStream {
49591    fn is_terminated(&self) -> bool {
49592        self.is_terminated
49593    }
49594}
49595
49596impl fidl::endpoints::RequestStream for ProviderRequestStream {
49597    type Protocol = ProviderMarker;
49598    type ControlHandle = ProviderControlHandle;
49599
49600    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
49601        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
49602    }
49603
49604    fn control_handle(&self) -> Self::ControlHandle {
49605        ProviderControlHandle { inner: self.inner.clone() }
49606    }
49607
49608    fn into_inner(
49609        self,
49610    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
49611    {
49612        (self.inner, self.is_terminated)
49613    }
49614
49615    fn from_inner(
49616        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
49617        is_terminated: bool,
49618    ) -> Self {
49619        Self { inner, is_terminated }
49620    }
49621}
49622
49623impl futures::Stream for ProviderRequestStream {
49624    type Item = Result<ProviderRequest, fidl::Error>;
49625
49626    fn poll_next(
49627        mut self: std::pin::Pin<&mut Self>,
49628        cx: &mut std::task::Context<'_>,
49629    ) -> std::task::Poll<Option<Self::Item>> {
49630        let this = &mut *self;
49631        if this.inner.check_shutdown(cx) {
49632            this.is_terminated = true;
49633            return std::task::Poll::Ready(None);
49634        }
49635        if this.is_terminated {
49636            panic!("polled ProviderRequestStream after completion");
49637        }
49638        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
49639            |bytes, handles| {
49640                match this.inner.channel().read_etc(cx, bytes, handles) {
49641                    std::task::Poll::Ready(Ok(())) => {}
49642                    std::task::Poll::Pending => return std::task::Poll::Pending,
49643                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
49644                        this.is_terminated = true;
49645                        return std::task::Poll::Ready(None);
49646                    }
49647                    std::task::Poll::Ready(Err(e)) => {
49648                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
49649                            e.into(),
49650                        ))));
49651                    }
49652                }
49653
49654                // A message has been received from the channel
49655                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
49656
49657                std::task::Poll::Ready(Some(match header.ordinal {
49658                    0x3969bf7eb78386e0 => {
49659                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
49660                        let mut req = fidl::new_empty!(
49661                            ProviderStreamSocketWithOptionsRequest,
49662                            fidl::encoding::DefaultFuchsiaResourceDialect
49663                        );
49664                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ProviderStreamSocketWithOptionsRequest>(&header, _body_bytes, handles, &mut req)?;
49665                        let control_handle = ProviderControlHandle { inner: this.inner.clone() };
49666                        Ok(ProviderRequest::StreamSocketWithOptions {
49667                            domain: req.domain,
49668                            proto: req.proto,
49669                            opts: req.opts,
49670
49671                            responder: ProviderStreamSocketWithOptionsResponder {
49672                                control_handle: std::mem::ManuallyDrop::new(control_handle),
49673                                tx_id: header.tx_id,
49674                            },
49675                        })
49676                    }
49677                    0x27c3581da2155545 => {
49678                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
49679                        let mut req = fidl::new_empty!(
49680                            ProviderStreamSocketRequest,
49681                            fidl::encoding::DefaultFuchsiaResourceDialect
49682                        );
49683                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ProviderStreamSocketRequest>(&header, _body_bytes, handles, &mut req)?;
49684                        let control_handle = ProviderControlHandle { inner: this.inner.clone() };
49685                        Ok(ProviderRequest::StreamSocket {
49686                            domain: req.domain,
49687                            proto: req.proto,
49688
49689                            responder: ProviderStreamSocketResponder {
49690                                control_handle: std::mem::ManuallyDrop::new(control_handle),
49691                                tx_id: header.tx_id,
49692                            },
49693                        })
49694                    }
49695                    0x38876c87cf031cb1 => {
49696                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
49697                        let mut req = fidl::new_empty!(
49698                            ProviderDatagramSocketDeprecatedRequest,
49699                            fidl::encoding::DefaultFuchsiaResourceDialect
49700                        );
49701                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ProviderDatagramSocketDeprecatedRequest>(&header, _body_bytes, handles, &mut req)?;
49702                        let control_handle = ProviderControlHandle { inner: this.inner.clone() };
49703                        Ok(ProviderRequest::DatagramSocketDeprecated {
49704                            domain: req.domain,
49705                            proto: req.proto,
49706
49707                            responder: ProviderDatagramSocketDeprecatedResponder {
49708                                control_handle: std::mem::ManuallyDrop::new(control_handle),
49709                                tx_id: header.tx_id,
49710                            },
49711                        })
49712                    }
49713                    0x4021b4fa1b6452f2 => {
49714                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
49715                        let mut req = fidl::new_empty!(
49716                            ProviderDatagramSocketRequest,
49717                            fidl::encoding::DefaultFuchsiaResourceDialect
49718                        );
49719                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ProviderDatagramSocketRequest>(&header, _body_bytes, handles, &mut req)?;
49720                        let control_handle = ProviderControlHandle { inner: this.inner.clone() };
49721                        Ok(ProviderRequest::DatagramSocket {
49722                            domain: req.domain,
49723                            proto: req.proto,
49724
49725                            responder: ProviderDatagramSocketResponder {
49726                                control_handle: std::mem::ManuallyDrop::new(control_handle),
49727                                tx_id: header.tx_id,
49728                            },
49729                        })
49730                    }
49731                    0x4cd0cffbffa39eb1 => {
49732                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
49733                        let mut req = fidl::new_empty!(
49734                            ProviderDatagramSocketWithOptionsRequest,
49735                            fidl::encoding::DefaultFuchsiaResourceDialect
49736                        );
49737                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ProviderDatagramSocketWithOptionsRequest>(&header, _body_bytes, handles, &mut req)?;
49738                        let control_handle = ProviderControlHandle { inner: this.inner.clone() };
49739                        Ok(ProviderRequest::DatagramSocketWithOptions {
49740                            domain: req.domain,
49741                            proto: req.proto,
49742                            opts: req.opts,
49743
49744                            responder: ProviderDatagramSocketWithOptionsResponder {
49745                                control_handle: std::mem::ManuallyDrop::new(control_handle),
49746                                tx_id: header.tx_id,
49747                            },
49748                        })
49749                    }
49750                    0x4d59a64fce98272f => {
49751                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
49752                        let mut req = fidl::new_empty!(
49753                            ProviderInterfaceIndexToNameRequest,
49754                            fidl::encoding::DefaultFuchsiaResourceDialect
49755                        );
49756                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ProviderInterfaceIndexToNameRequest>(&header, _body_bytes, handles, &mut req)?;
49757                        let control_handle = ProviderControlHandle { inner: this.inner.clone() };
49758                        Ok(ProviderRequest::InterfaceIndexToName {
49759                            index: req.index,
49760
49761                            responder: ProviderInterfaceIndexToNameResponder {
49762                                control_handle: std::mem::ManuallyDrop::new(control_handle),
49763                                tx_id: header.tx_id,
49764                            },
49765                        })
49766                    }
49767                    0x690cd8d2f2d650f8 => {
49768                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
49769                        let mut req = fidl::new_empty!(
49770                            ProviderInterfaceNameToIndexRequest,
49771                            fidl::encoding::DefaultFuchsiaResourceDialect
49772                        );
49773                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ProviderInterfaceNameToIndexRequest>(&header, _body_bytes, handles, &mut req)?;
49774                        let control_handle = ProviderControlHandle { inner: this.inner.clone() };
49775                        Ok(ProviderRequest::InterfaceNameToIndex {
49776                            name: req.name,
49777
49778                            responder: ProviderInterfaceNameToIndexResponder {
49779                                control_handle: std::mem::ManuallyDrop::new(control_handle),
49780                                tx_id: header.tx_id,
49781                            },
49782                        })
49783                    }
49784                    0x25d0efcdb6671a0b => {
49785                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
49786                        let mut req = fidl::new_empty!(
49787                            ProviderInterfaceNameToFlagsRequest,
49788                            fidl::encoding::DefaultFuchsiaResourceDialect
49789                        );
49790                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ProviderInterfaceNameToFlagsRequest>(&header, _body_bytes, handles, &mut req)?;
49791                        let control_handle = ProviderControlHandle { inner: this.inner.clone() };
49792                        Ok(ProviderRequest::InterfaceNameToFlags {
49793                            name: req.name,
49794
49795                            responder: ProviderInterfaceNameToFlagsResponder {
49796                                control_handle: std::mem::ManuallyDrop::new(control_handle),
49797                                tx_id: header.tx_id,
49798                            },
49799                        })
49800                    }
49801                    0x2e7b9aaf327c870 => {
49802                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
49803                        let mut req = fidl::new_empty!(
49804                            fidl::encoding::EmptyPayload,
49805                            fidl::encoding::DefaultFuchsiaResourceDialect
49806                        );
49807                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
49808                        let control_handle = ProviderControlHandle { inner: this.inner.clone() };
49809                        Ok(ProviderRequest::GetInterfaceAddresses {
49810                            responder: ProviderGetInterfaceAddressesResponder {
49811                                control_handle: std::mem::ManuallyDrop::new(control_handle),
49812                                tx_id: header.tx_id,
49813                            },
49814                        })
49815                    }
49816                    _ => Err(fidl::Error::UnknownOrdinal {
49817                        ordinal: header.ordinal,
49818                        protocol_name:
49819                            <ProviderMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
49820                    }),
49821                }))
49822            },
49823        )
49824    }
49825}
49826
49827/// Provider implements the POSIX sockets API.
49828///
49829/// *Warning:* This protocol is not yet ready for direct use by clients.
49830/// Instead, clients should use the BSD sockets API to interact with sockets.
49831/// We plan to change this protocol substantially and clients that couple
49832/// directly to this protocol will make those changes more difficult.
49833#[derive(Debug)]
49834pub enum ProviderRequest {
49835    /// Requests a stream socket with the specified parameters and the creation
49836    /// options.
49837    StreamSocketWithOptions {
49838        domain: Domain,
49839        proto: StreamSocketProtocol,
49840        opts: SocketCreationOptions,
49841        responder: ProviderStreamSocketWithOptionsResponder,
49842    },
49843    /// Requests a stream socket with the specified parameters.
49844    StreamSocket {
49845        domain: Domain,
49846        proto: StreamSocketProtocol,
49847        responder: ProviderStreamSocketResponder,
49848    },
49849    /// Requests a datagram socket with the specified parameters.
49850    /// TODO(https://fxbug.dev/42165881): Remove this method once no more callers rely on it.
49851    DatagramSocketDeprecated {
49852        domain: Domain,
49853        proto: DatagramSocketProtocol,
49854        responder: ProviderDatagramSocketDeprecatedResponder,
49855    },
49856    /// Requests a datagram socket with the specified parameters.
49857    DatagramSocket {
49858        domain: Domain,
49859        proto: DatagramSocketProtocol,
49860        responder: ProviderDatagramSocketResponder,
49861    },
49862    /// Requests a datagram socket with the specified parameters and the creation
49863    /// options.
49864    DatagramSocketWithOptions {
49865        domain: Domain,
49866        proto: DatagramSocketProtocol,
49867        opts: SocketCreationOptions,
49868        responder: ProviderDatagramSocketWithOptionsResponder,
49869    },
49870    /// Looks up an interface by its index and returns its name. Returns
49871    /// `ZX_ERR_NOT_FOUND` if the specified index doesn't exist.
49872    InterfaceIndexToName { index: u64, responder: ProviderInterfaceIndexToNameResponder },
49873    /// Looks up an interface by its name and returns its index. Returns
49874    /// `ZX_ERR_NOT_FOUND` if the specified name doesn't exist.
49875    InterfaceNameToIndex { name: String, responder: ProviderInterfaceNameToIndexResponder },
49876    /// Looks up an interface by its name and returns its flags. Returns
49877    /// `ZX_ERR_NOT_FOUND` if the specified name doesn't exist.
49878    InterfaceNameToFlags { name: String, responder: ProviderInterfaceNameToFlagsResponder },
49879    /// Requests a list of [`fuchsia.posix.socket.InterfaceAddresses`]
49880    /// describing the network interfaces on the system.
49881    GetInterfaceAddresses { responder: ProviderGetInterfaceAddressesResponder },
49882}
49883
49884impl ProviderRequest {
49885    #[allow(irrefutable_let_patterns)]
49886    pub fn into_stream_socket_with_options(
49887        self,
49888    ) -> Option<(
49889        Domain,
49890        StreamSocketProtocol,
49891        SocketCreationOptions,
49892        ProviderStreamSocketWithOptionsResponder,
49893    )> {
49894        if let ProviderRequest::StreamSocketWithOptions { domain, proto, opts, responder } = self {
49895            Some((domain, proto, opts, responder))
49896        } else {
49897            None
49898        }
49899    }
49900
49901    #[allow(irrefutable_let_patterns)]
49902    pub fn into_stream_socket(
49903        self,
49904    ) -> Option<(Domain, StreamSocketProtocol, ProviderStreamSocketResponder)> {
49905        if let ProviderRequest::StreamSocket { domain, proto, responder } = self {
49906            Some((domain, proto, responder))
49907        } else {
49908            None
49909        }
49910    }
49911
49912    #[allow(irrefutable_let_patterns)]
49913    pub fn into_datagram_socket_deprecated(
49914        self,
49915    ) -> Option<(Domain, DatagramSocketProtocol, ProviderDatagramSocketDeprecatedResponder)> {
49916        if let ProviderRequest::DatagramSocketDeprecated { domain, proto, responder } = self {
49917            Some((domain, proto, responder))
49918        } else {
49919            None
49920        }
49921    }
49922
49923    #[allow(irrefutable_let_patterns)]
49924    pub fn into_datagram_socket(
49925        self,
49926    ) -> Option<(Domain, DatagramSocketProtocol, ProviderDatagramSocketResponder)> {
49927        if let ProviderRequest::DatagramSocket { domain, proto, responder } = self {
49928            Some((domain, proto, responder))
49929        } else {
49930            None
49931        }
49932    }
49933
49934    #[allow(irrefutable_let_patterns)]
49935    pub fn into_datagram_socket_with_options(
49936        self,
49937    ) -> Option<(
49938        Domain,
49939        DatagramSocketProtocol,
49940        SocketCreationOptions,
49941        ProviderDatagramSocketWithOptionsResponder,
49942    )> {
49943        if let ProviderRequest::DatagramSocketWithOptions { domain, proto, opts, responder } = self
49944        {
49945            Some((domain, proto, opts, responder))
49946        } else {
49947            None
49948        }
49949    }
49950
49951    #[allow(irrefutable_let_patterns)]
49952    pub fn into_interface_index_to_name(
49953        self,
49954    ) -> Option<(u64, ProviderInterfaceIndexToNameResponder)> {
49955        if let ProviderRequest::InterfaceIndexToName { index, responder } = self {
49956            Some((index, responder))
49957        } else {
49958            None
49959        }
49960    }
49961
49962    #[allow(irrefutable_let_patterns)]
49963    pub fn into_interface_name_to_index(
49964        self,
49965    ) -> Option<(String, ProviderInterfaceNameToIndexResponder)> {
49966        if let ProviderRequest::InterfaceNameToIndex { name, responder } = self {
49967            Some((name, responder))
49968        } else {
49969            None
49970        }
49971    }
49972
49973    #[allow(irrefutable_let_patterns)]
49974    pub fn into_interface_name_to_flags(
49975        self,
49976    ) -> Option<(String, ProviderInterfaceNameToFlagsResponder)> {
49977        if let ProviderRequest::InterfaceNameToFlags { name, responder } = self {
49978            Some((name, responder))
49979        } else {
49980            None
49981        }
49982    }
49983
49984    #[allow(irrefutable_let_patterns)]
49985    pub fn into_get_interface_addresses(self) -> Option<(ProviderGetInterfaceAddressesResponder)> {
49986        if let ProviderRequest::GetInterfaceAddresses { responder } = self {
49987            Some((responder))
49988        } else {
49989            None
49990        }
49991    }
49992
49993    /// Name of the method defined in FIDL
49994    pub fn method_name(&self) -> &'static str {
49995        match *self {
49996            ProviderRequest::StreamSocketWithOptions { .. } => "stream_socket_with_options",
49997            ProviderRequest::StreamSocket { .. } => "stream_socket",
49998            ProviderRequest::DatagramSocketDeprecated { .. } => "datagram_socket_deprecated",
49999            ProviderRequest::DatagramSocket { .. } => "datagram_socket",
50000            ProviderRequest::DatagramSocketWithOptions { .. } => "datagram_socket_with_options",
50001            ProviderRequest::InterfaceIndexToName { .. } => "interface_index_to_name",
50002            ProviderRequest::InterfaceNameToIndex { .. } => "interface_name_to_index",
50003            ProviderRequest::InterfaceNameToFlags { .. } => "interface_name_to_flags",
50004            ProviderRequest::GetInterfaceAddresses { .. } => "get_interface_addresses",
50005        }
50006    }
50007}
50008
50009#[derive(Debug, Clone)]
50010pub struct ProviderControlHandle {
50011    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
50012}
50013
50014impl fidl::endpoints::ControlHandle for ProviderControlHandle {
50015    fn shutdown(&self) {
50016        self.inner.shutdown()
50017    }
50018
50019    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
50020        self.inner.shutdown_with_epitaph(status)
50021    }
50022
50023    fn is_closed(&self) -> bool {
50024        self.inner.channel().is_closed()
50025    }
50026    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
50027        self.inner.channel().on_closed()
50028    }
50029
50030    #[cfg(target_os = "fuchsia")]
50031    fn signal_peer(
50032        &self,
50033        clear_mask: zx::Signals,
50034        set_mask: zx::Signals,
50035    ) -> Result<(), zx_status::Status> {
50036        use fidl::Peered;
50037        self.inner.channel().signal_peer(clear_mask, set_mask)
50038    }
50039}
50040
50041impl ProviderControlHandle {}
50042
50043#[must_use = "FIDL methods require a response to be sent"]
50044#[derive(Debug)]
50045pub struct ProviderStreamSocketWithOptionsResponder {
50046    control_handle: std::mem::ManuallyDrop<ProviderControlHandle>,
50047    tx_id: u32,
50048}
50049
50050/// Set the the channel to be shutdown (see [`ProviderControlHandle::shutdown`])
50051/// if the responder is dropped without sending a response, so that the client
50052/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
50053impl std::ops::Drop for ProviderStreamSocketWithOptionsResponder {
50054    fn drop(&mut self) {
50055        self.control_handle.shutdown();
50056        // Safety: drops once, never accessed again
50057        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
50058    }
50059}
50060
50061impl fidl::endpoints::Responder for ProviderStreamSocketWithOptionsResponder {
50062    type ControlHandle = ProviderControlHandle;
50063
50064    fn control_handle(&self) -> &ProviderControlHandle {
50065        &self.control_handle
50066    }
50067
50068    fn drop_without_shutdown(mut self) {
50069        // Safety: drops once, never accessed again due to mem::forget
50070        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
50071        // Prevent Drop from running (which would shut down the channel)
50072        std::mem::forget(self);
50073    }
50074}
50075
50076impl ProviderStreamSocketWithOptionsResponder {
50077    /// Sends a response to the FIDL transaction.
50078    ///
50079    /// Sets the channel to shutdown if an error occurs.
50080    pub fn send(
50081        self,
50082        mut result: Result<
50083            fidl::endpoints::ClientEnd<StreamSocketMarker>,
50084            fidl_fuchsia_posix::Errno,
50085        >,
50086    ) -> Result<(), fidl::Error> {
50087        let _result = self.send_raw(result);
50088        if _result.is_err() {
50089            self.control_handle.shutdown();
50090        }
50091        self.drop_without_shutdown();
50092        _result
50093    }
50094
50095    /// Similar to "send" but does not shutdown the channel if an error occurs.
50096    pub fn send_no_shutdown_on_err(
50097        self,
50098        mut result: Result<
50099            fidl::endpoints::ClientEnd<StreamSocketMarker>,
50100            fidl_fuchsia_posix::Errno,
50101        >,
50102    ) -> Result<(), fidl::Error> {
50103        let _result = self.send_raw(result);
50104        self.drop_without_shutdown();
50105        _result
50106    }
50107
50108    fn send_raw(
50109        &self,
50110        mut result: Result<
50111            fidl::endpoints::ClientEnd<StreamSocketMarker>,
50112            fidl_fuchsia_posix::Errno,
50113        >,
50114    ) -> Result<(), fidl::Error> {
50115        self.control_handle.inner.send::<fidl::encoding::ResultType<
50116            ProviderStreamSocketWithOptionsResponse,
50117            fidl_fuchsia_posix::Errno,
50118        >>(
50119            result.map(|s| (s,)),
50120            self.tx_id,
50121            0x3969bf7eb78386e0,
50122            fidl::encoding::DynamicFlags::empty(),
50123        )
50124    }
50125}
50126
50127#[must_use = "FIDL methods require a response to be sent"]
50128#[derive(Debug)]
50129pub struct ProviderStreamSocketResponder {
50130    control_handle: std::mem::ManuallyDrop<ProviderControlHandle>,
50131    tx_id: u32,
50132}
50133
50134/// Set the the channel to be shutdown (see [`ProviderControlHandle::shutdown`])
50135/// if the responder is dropped without sending a response, so that the client
50136/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
50137impl std::ops::Drop for ProviderStreamSocketResponder {
50138    fn drop(&mut self) {
50139        self.control_handle.shutdown();
50140        // Safety: drops once, never accessed again
50141        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
50142    }
50143}
50144
50145impl fidl::endpoints::Responder for ProviderStreamSocketResponder {
50146    type ControlHandle = ProviderControlHandle;
50147
50148    fn control_handle(&self) -> &ProviderControlHandle {
50149        &self.control_handle
50150    }
50151
50152    fn drop_without_shutdown(mut self) {
50153        // Safety: drops once, never accessed again due to mem::forget
50154        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
50155        // Prevent Drop from running (which would shut down the channel)
50156        std::mem::forget(self);
50157    }
50158}
50159
50160impl ProviderStreamSocketResponder {
50161    /// Sends a response to the FIDL transaction.
50162    ///
50163    /// Sets the channel to shutdown if an error occurs.
50164    pub fn send(
50165        self,
50166        mut result: Result<
50167            fidl::endpoints::ClientEnd<StreamSocketMarker>,
50168            fidl_fuchsia_posix::Errno,
50169        >,
50170    ) -> Result<(), fidl::Error> {
50171        let _result = self.send_raw(result);
50172        if _result.is_err() {
50173            self.control_handle.shutdown();
50174        }
50175        self.drop_without_shutdown();
50176        _result
50177    }
50178
50179    /// Similar to "send" but does not shutdown the channel if an error occurs.
50180    pub fn send_no_shutdown_on_err(
50181        self,
50182        mut result: Result<
50183            fidl::endpoints::ClientEnd<StreamSocketMarker>,
50184            fidl_fuchsia_posix::Errno,
50185        >,
50186    ) -> Result<(), fidl::Error> {
50187        let _result = self.send_raw(result);
50188        self.drop_without_shutdown();
50189        _result
50190    }
50191
50192    fn send_raw(
50193        &self,
50194        mut result: Result<
50195            fidl::endpoints::ClientEnd<StreamSocketMarker>,
50196            fidl_fuchsia_posix::Errno,
50197        >,
50198    ) -> Result<(), fidl::Error> {
50199        self.control_handle.inner.send::<fidl::encoding::ResultType<
50200            ProviderStreamSocketResponse,
50201            fidl_fuchsia_posix::Errno,
50202        >>(
50203            result.map(|s| (s,)),
50204            self.tx_id,
50205            0x27c3581da2155545,
50206            fidl::encoding::DynamicFlags::empty(),
50207        )
50208    }
50209}
50210
50211#[must_use = "FIDL methods require a response to be sent"]
50212#[derive(Debug)]
50213pub struct ProviderDatagramSocketDeprecatedResponder {
50214    control_handle: std::mem::ManuallyDrop<ProviderControlHandle>,
50215    tx_id: u32,
50216}
50217
50218/// Set the the channel to be shutdown (see [`ProviderControlHandle::shutdown`])
50219/// if the responder is dropped without sending a response, so that the client
50220/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
50221impl std::ops::Drop for ProviderDatagramSocketDeprecatedResponder {
50222    fn drop(&mut self) {
50223        self.control_handle.shutdown();
50224        // Safety: drops once, never accessed again
50225        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
50226    }
50227}
50228
50229impl fidl::endpoints::Responder for ProviderDatagramSocketDeprecatedResponder {
50230    type ControlHandle = ProviderControlHandle;
50231
50232    fn control_handle(&self) -> &ProviderControlHandle {
50233        &self.control_handle
50234    }
50235
50236    fn drop_without_shutdown(mut self) {
50237        // Safety: drops once, never accessed again due to mem::forget
50238        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
50239        // Prevent Drop from running (which would shut down the channel)
50240        std::mem::forget(self);
50241    }
50242}
50243
50244impl ProviderDatagramSocketDeprecatedResponder {
50245    /// Sends a response to the FIDL transaction.
50246    ///
50247    /// Sets the channel to shutdown if an error occurs.
50248    pub fn send(
50249        self,
50250        mut result: Result<
50251            fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
50252            fidl_fuchsia_posix::Errno,
50253        >,
50254    ) -> Result<(), fidl::Error> {
50255        let _result = self.send_raw(result);
50256        if _result.is_err() {
50257            self.control_handle.shutdown();
50258        }
50259        self.drop_without_shutdown();
50260        _result
50261    }
50262
50263    /// Similar to "send" but does not shutdown the channel if an error occurs.
50264    pub fn send_no_shutdown_on_err(
50265        self,
50266        mut result: Result<
50267            fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
50268            fidl_fuchsia_posix::Errno,
50269        >,
50270    ) -> Result<(), fidl::Error> {
50271        let _result = self.send_raw(result);
50272        self.drop_without_shutdown();
50273        _result
50274    }
50275
50276    fn send_raw(
50277        &self,
50278        mut result: Result<
50279            fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
50280            fidl_fuchsia_posix::Errno,
50281        >,
50282    ) -> Result<(), fidl::Error> {
50283        self.control_handle.inner.send::<fidl::encoding::ResultType<
50284            ProviderDatagramSocketDeprecatedResponse,
50285            fidl_fuchsia_posix::Errno,
50286        >>(
50287            result.map(|s| (s,)),
50288            self.tx_id,
50289            0x38876c87cf031cb1,
50290            fidl::encoding::DynamicFlags::empty(),
50291        )
50292    }
50293}
50294
50295#[must_use = "FIDL methods require a response to be sent"]
50296#[derive(Debug)]
50297pub struct ProviderDatagramSocketResponder {
50298    control_handle: std::mem::ManuallyDrop<ProviderControlHandle>,
50299    tx_id: u32,
50300}
50301
50302/// Set the the channel to be shutdown (see [`ProviderControlHandle::shutdown`])
50303/// if the responder is dropped without sending a response, so that the client
50304/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
50305impl std::ops::Drop for ProviderDatagramSocketResponder {
50306    fn drop(&mut self) {
50307        self.control_handle.shutdown();
50308        // Safety: drops once, never accessed again
50309        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
50310    }
50311}
50312
50313impl fidl::endpoints::Responder for ProviderDatagramSocketResponder {
50314    type ControlHandle = ProviderControlHandle;
50315
50316    fn control_handle(&self) -> &ProviderControlHandle {
50317        &self.control_handle
50318    }
50319
50320    fn drop_without_shutdown(mut self) {
50321        // Safety: drops once, never accessed again due to mem::forget
50322        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
50323        // Prevent Drop from running (which would shut down the channel)
50324        std::mem::forget(self);
50325    }
50326}
50327
50328impl ProviderDatagramSocketResponder {
50329    /// Sends a response to the FIDL transaction.
50330    ///
50331    /// Sets the channel to shutdown if an error occurs.
50332    pub fn send(
50333        self,
50334        mut result: Result<ProviderDatagramSocketResponse, fidl_fuchsia_posix::Errno>,
50335    ) -> Result<(), fidl::Error> {
50336        let _result = self.send_raw(result);
50337        if _result.is_err() {
50338            self.control_handle.shutdown();
50339        }
50340        self.drop_without_shutdown();
50341        _result
50342    }
50343
50344    /// Similar to "send" but does not shutdown the channel if an error occurs.
50345    pub fn send_no_shutdown_on_err(
50346        self,
50347        mut result: Result<ProviderDatagramSocketResponse, fidl_fuchsia_posix::Errno>,
50348    ) -> Result<(), fidl::Error> {
50349        let _result = self.send_raw(result);
50350        self.drop_without_shutdown();
50351        _result
50352    }
50353
50354    fn send_raw(
50355        &self,
50356        mut result: Result<ProviderDatagramSocketResponse, fidl_fuchsia_posix::Errno>,
50357    ) -> Result<(), fidl::Error> {
50358        self.control_handle.inner.send::<fidl::encoding::ResultType<
50359            ProviderDatagramSocketResponse,
50360            fidl_fuchsia_posix::Errno,
50361        >>(
50362            result.as_mut().map_err(|e| *e),
50363            self.tx_id,
50364            0x4021b4fa1b6452f2,
50365            fidl::encoding::DynamicFlags::empty(),
50366        )
50367    }
50368}
50369
50370#[must_use = "FIDL methods require a response to be sent"]
50371#[derive(Debug)]
50372pub struct ProviderDatagramSocketWithOptionsResponder {
50373    control_handle: std::mem::ManuallyDrop<ProviderControlHandle>,
50374    tx_id: u32,
50375}
50376
50377/// Set the the channel to be shutdown (see [`ProviderControlHandle::shutdown`])
50378/// if the responder is dropped without sending a response, so that the client
50379/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
50380impl std::ops::Drop for ProviderDatagramSocketWithOptionsResponder {
50381    fn drop(&mut self) {
50382        self.control_handle.shutdown();
50383        // Safety: drops once, never accessed again
50384        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
50385    }
50386}
50387
50388impl fidl::endpoints::Responder for ProviderDatagramSocketWithOptionsResponder {
50389    type ControlHandle = ProviderControlHandle;
50390
50391    fn control_handle(&self) -> &ProviderControlHandle {
50392        &self.control_handle
50393    }
50394
50395    fn drop_without_shutdown(mut self) {
50396        // Safety: drops once, never accessed again due to mem::forget
50397        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
50398        // Prevent Drop from running (which would shut down the channel)
50399        std::mem::forget(self);
50400    }
50401}
50402
50403impl ProviderDatagramSocketWithOptionsResponder {
50404    /// Sends a response to the FIDL transaction.
50405    ///
50406    /// Sets the channel to shutdown if an error occurs.
50407    pub fn send(
50408        self,
50409        mut result: Result<ProviderDatagramSocketWithOptionsResponse, fidl_fuchsia_posix::Errno>,
50410    ) -> Result<(), fidl::Error> {
50411        let _result = self.send_raw(result);
50412        if _result.is_err() {
50413            self.control_handle.shutdown();
50414        }
50415        self.drop_without_shutdown();
50416        _result
50417    }
50418
50419    /// Similar to "send" but does not shutdown the channel if an error occurs.
50420    pub fn send_no_shutdown_on_err(
50421        self,
50422        mut result: Result<ProviderDatagramSocketWithOptionsResponse, fidl_fuchsia_posix::Errno>,
50423    ) -> Result<(), fidl::Error> {
50424        let _result = self.send_raw(result);
50425        self.drop_without_shutdown();
50426        _result
50427    }
50428
50429    fn send_raw(
50430        &self,
50431        mut result: Result<ProviderDatagramSocketWithOptionsResponse, fidl_fuchsia_posix::Errno>,
50432    ) -> Result<(), fidl::Error> {
50433        self.control_handle.inner.send::<fidl::encoding::ResultType<
50434            ProviderDatagramSocketWithOptionsResponse,
50435            fidl_fuchsia_posix::Errno,
50436        >>(
50437            result.as_mut().map_err(|e| *e),
50438            self.tx_id,
50439            0x4cd0cffbffa39eb1,
50440            fidl::encoding::DynamicFlags::empty(),
50441        )
50442    }
50443}
50444
50445#[must_use = "FIDL methods require a response to be sent"]
50446#[derive(Debug)]
50447pub struct ProviderInterfaceIndexToNameResponder {
50448    control_handle: std::mem::ManuallyDrop<ProviderControlHandle>,
50449    tx_id: u32,
50450}
50451
50452/// Set the the channel to be shutdown (see [`ProviderControlHandle::shutdown`])
50453/// if the responder is dropped without sending a response, so that the client
50454/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
50455impl std::ops::Drop for ProviderInterfaceIndexToNameResponder {
50456    fn drop(&mut self) {
50457        self.control_handle.shutdown();
50458        // Safety: drops once, never accessed again
50459        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
50460    }
50461}
50462
50463impl fidl::endpoints::Responder for ProviderInterfaceIndexToNameResponder {
50464    type ControlHandle = ProviderControlHandle;
50465
50466    fn control_handle(&self) -> &ProviderControlHandle {
50467        &self.control_handle
50468    }
50469
50470    fn drop_without_shutdown(mut self) {
50471        // Safety: drops once, never accessed again due to mem::forget
50472        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
50473        // Prevent Drop from running (which would shut down the channel)
50474        std::mem::forget(self);
50475    }
50476}
50477
50478impl ProviderInterfaceIndexToNameResponder {
50479    /// Sends a response to the FIDL transaction.
50480    ///
50481    /// Sets the channel to shutdown if an error occurs.
50482    pub fn send(self, mut result: Result<&str, i32>) -> Result<(), fidl::Error> {
50483        let _result = self.send_raw(result);
50484        if _result.is_err() {
50485            self.control_handle.shutdown();
50486        }
50487        self.drop_without_shutdown();
50488        _result
50489    }
50490
50491    /// Similar to "send" but does not shutdown the channel if an error occurs.
50492    pub fn send_no_shutdown_on_err(self, mut result: Result<&str, i32>) -> Result<(), fidl::Error> {
50493        let _result = self.send_raw(result);
50494        self.drop_without_shutdown();
50495        _result
50496    }
50497
50498    fn send_raw(&self, mut result: Result<&str, i32>) -> Result<(), fidl::Error> {
50499        self.control_handle.inner.send::<fidl::encoding::ResultType<
50500            ProviderInterfaceIndexToNameResponse,
50501            i32,
50502        >>(
50503            result.map(|name| (name,)),
50504            self.tx_id,
50505            0x4d59a64fce98272f,
50506            fidl::encoding::DynamicFlags::empty(),
50507        )
50508    }
50509}
50510
50511#[must_use = "FIDL methods require a response to be sent"]
50512#[derive(Debug)]
50513pub struct ProviderInterfaceNameToIndexResponder {
50514    control_handle: std::mem::ManuallyDrop<ProviderControlHandle>,
50515    tx_id: u32,
50516}
50517
50518/// Set the the channel to be shutdown (see [`ProviderControlHandle::shutdown`])
50519/// if the responder is dropped without sending a response, so that the client
50520/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
50521impl std::ops::Drop for ProviderInterfaceNameToIndexResponder {
50522    fn drop(&mut self) {
50523        self.control_handle.shutdown();
50524        // Safety: drops once, never accessed again
50525        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
50526    }
50527}
50528
50529impl fidl::endpoints::Responder for ProviderInterfaceNameToIndexResponder {
50530    type ControlHandle = ProviderControlHandle;
50531
50532    fn control_handle(&self) -> &ProviderControlHandle {
50533        &self.control_handle
50534    }
50535
50536    fn drop_without_shutdown(mut self) {
50537        // Safety: drops once, never accessed again due to mem::forget
50538        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
50539        // Prevent Drop from running (which would shut down the channel)
50540        std::mem::forget(self);
50541    }
50542}
50543
50544impl ProviderInterfaceNameToIndexResponder {
50545    /// Sends a response to the FIDL transaction.
50546    ///
50547    /// Sets the channel to shutdown if an error occurs.
50548    pub fn send(self, mut result: Result<u64, i32>) -> Result<(), fidl::Error> {
50549        let _result = self.send_raw(result);
50550        if _result.is_err() {
50551            self.control_handle.shutdown();
50552        }
50553        self.drop_without_shutdown();
50554        _result
50555    }
50556
50557    /// Similar to "send" but does not shutdown the channel if an error occurs.
50558    pub fn send_no_shutdown_on_err(self, mut result: Result<u64, i32>) -> Result<(), fidl::Error> {
50559        let _result = self.send_raw(result);
50560        self.drop_without_shutdown();
50561        _result
50562    }
50563
50564    fn send_raw(&self, mut result: Result<u64, i32>) -> Result<(), fidl::Error> {
50565        self.control_handle.inner.send::<fidl::encoding::ResultType<
50566            ProviderInterfaceNameToIndexResponse,
50567            i32,
50568        >>(
50569            result.map(|index| (index,)),
50570            self.tx_id,
50571            0x690cd8d2f2d650f8,
50572            fidl::encoding::DynamicFlags::empty(),
50573        )
50574    }
50575}
50576
50577#[must_use = "FIDL methods require a response to be sent"]
50578#[derive(Debug)]
50579pub struct ProviderInterfaceNameToFlagsResponder {
50580    control_handle: std::mem::ManuallyDrop<ProviderControlHandle>,
50581    tx_id: u32,
50582}
50583
50584/// Set the the channel to be shutdown (see [`ProviderControlHandle::shutdown`])
50585/// if the responder is dropped without sending a response, so that the client
50586/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
50587impl std::ops::Drop for ProviderInterfaceNameToFlagsResponder {
50588    fn drop(&mut self) {
50589        self.control_handle.shutdown();
50590        // Safety: drops once, never accessed again
50591        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
50592    }
50593}
50594
50595impl fidl::endpoints::Responder for ProviderInterfaceNameToFlagsResponder {
50596    type ControlHandle = ProviderControlHandle;
50597
50598    fn control_handle(&self) -> &ProviderControlHandle {
50599        &self.control_handle
50600    }
50601
50602    fn drop_without_shutdown(mut self) {
50603        // Safety: drops once, never accessed again due to mem::forget
50604        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
50605        // Prevent Drop from running (which would shut down the channel)
50606        std::mem::forget(self);
50607    }
50608}
50609
50610impl ProviderInterfaceNameToFlagsResponder {
50611    /// Sends a response to the FIDL transaction.
50612    ///
50613    /// Sets the channel to shutdown if an error occurs.
50614    pub fn send(self, mut result: Result<InterfaceFlags, i32>) -> Result<(), fidl::Error> {
50615        let _result = self.send_raw(result);
50616        if _result.is_err() {
50617            self.control_handle.shutdown();
50618        }
50619        self.drop_without_shutdown();
50620        _result
50621    }
50622
50623    /// Similar to "send" but does not shutdown the channel if an error occurs.
50624    pub fn send_no_shutdown_on_err(
50625        self,
50626        mut result: Result<InterfaceFlags, i32>,
50627    ) -> Result<(), fidl::Error> {
50628        let _result = self.send_raw(result);
50629        self.drop_without_shutdown();
50630        _result
50631    }
50632
50633    fn send_raw(&self, mut result: Result<InterfaceFlags, i32>) -> Result<(), fidl::Error> {
50634        self.control_handle.inner.send::<fidl::encoding::ResultType<
50635            ProviderInterfaceNameToFlagsResponse,
50636            i32,
50637        >>(
50638            result.map(|flags| (flags,)),
50639            self.tx_id,
50640            0x25d0efcdb6671a0b,
50641            fidl::encoding::DynamicFlags::empty(),
50642        )
50643    }
50644}
50645
50646#[must_use = "FIDL methods require a response to be sent"]
50647#[derive(Debug)]
50648pub struct ProviderGetInterfaceAddressesResponder {
50649    control_handle: std::mem::ManuallyDrop<ProviderControlHandle>,
50650    tx_id: u32,
50651}
50652
50653/// Set the the channel to be shutdown (see [`ProviderControlHandle::shutdown`])
50654/// if the responder is dropped without sending a response, so that the client
50655/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
50656impl std::ops::Drop for ProviderGetInterfaceAddressesResponder {
50657    fn drop(&mut self) {
50658        self.control_handle.shutdown();
50659        // Safety: drops once, never accessed again
50660        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
50661    }
50662}
50663
50664impl fidl::endpoints::Responder for ProviderGetInterfaceAddressesResponder {
50665    type ControlHandle = ProviderControlHandle;
50666
50667    fn control_handle(&self) -> &ProviderControlHandle {
50668        &self.control_handle
50669    }
50670
50671    fn drop_without_shutdown(mut self) {
50672        // Safety: drops once, never accessed again due to mem::forget
50673        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
50674        // Prevent Drop from running (which would shut down the channel)
50675        std::mem::forget(self);
50676    }
50677}
50678
50679impl ProviderGetInterfaceAddressesResponder {
50680    /// Sends a response to the FIDL transaction.
50681    ///
50682    /// Sets the channel to shutdown if an error occurs.
50683    pub fn send(self, mut interfaces: &[InterfaceAddresses]) -> Result<(), fidl::Error> {
50684        let _result = self.send_raw(interfaces);
50685        if _result.is_err() {
50686            self.control_handle.shutdown();
50687        }
50688        self.drop_without_shutdown();
50689        _result
50690    }
50691
50692    /// Similar to "send" but does not shutdown the channel if an error occurs.
50693    pub fn send_no_shutdown_on_err(
50694        self,
50695        mut interfaces: &[InterfaceAddresses],
50696    ) -> Result<(), fidl::Error> {
50697        let _result = self.send_raw(interfaces);
50698        self.drop_without_shutdown();
50699        _result
50700    }
50701
50702    fn send_raw(&self, mut interfaces: &[InterfaceAddresses]) -> Result<(), fidl::Error> {
50703        self.control_handle.inner.send::<ProviderGetInterfaceAddressesResponse>(
50704            (interfaces,),
50705            self.tx_id,
50706            0x2e7b9aaf327c870,
50707            fidl::encoding::DynamicFlags::empty(),
50708        )
50709    }
50710}
50711
50712#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
50713pub struct StreamSocketMarker;
50714
50715impl fidl::endpoints::ProtocolMarker for StreamSocketMarker {
50716    type Proxy = StreamSocketProxy;
50717    type RequestStream = StreamSocketRequestStream;
50718    #[cfg(target_os = "fuchsia")]
50719    type SynchronousProxy = StreamSocketSynchronousProxy;
50720
50721    const DEBUG_NAME: &'static str = "fuchsia.posix.socket.StreamSocket";
50722}
50723impl fidl::endpoints::DiscoverableProtocolMarker for StreamSocketMarker {}
50724pub type StreamSocketListenResult = Result<(), fidl_fuchsia_posix::Errno>;
50725pub type StreamSocketAcceptResult = Result<
50726    (Option<Box<fidl_fuchsia_net::SocketAddress>>, fidl::endpoints::ClientEnd<StreamSocketMarker>),
50727    fidl_fuchsia_posix::Errno,
50728>;
50729pub type StreamSocketGetInfoResult =
50730    Result<(Domain, StreamSocketProtocol), fidl_fuchsia_posix::Errno>;
50731pub type StreamSocketSetTcpNoDelayResult = Result<(), fidl_fuchsia_posix::Errno>;
50732pub type StreamSocketGetTcpNoDelayResult = Result<bool, fidl_fuchsia_posix::Errno>;
50733pub type StreamSocketSetTcpMaxSegmentResult = Result<(), fidl_fuchsia_posix::Errno>;
50734pub type StreamSocketGetTcpMaxSegmentResult = Result<u32, fidl_fuchsia_posix::Errno>;
50735pub type StreamSocketSetTcpCorkResult = Result<(), fidl_fuchsia_posix::Errno>;
50736pub type StreamSocketGetTcpCorkResult = Result<bool, fidl_fuchsia_posix::Errno>;
50737pub type StreamSocketSetTcpKeepAliveIdleResult = Result<(), fidl_fuchsia_posix::Errno>;
50738pub type StreamSocketGetTcpKeepAliveIdleResult = Result<u32, fidl_fuchsia_posix::Errno>;
50739pub type StreamSocketSetTcpKeepAliveIntervalResult = Result<(), fidl_fuchsia_posix::Errno>;
50740pub type StreamSocketGetTcpKeepAliveIntervalResult = Result<u32, fidl_fuchsia_posix::Errno>;
50741pub type StreamSocketSetTcpKeepAliveCountResult = Result<(), fidl_fuchsia_posix::Errno>;
50742pub type StreamSocketGetTcpKeepAliveCountResult = Result<u32, fidl_fuchsia_posix::Errno>;
50743pub type StreamSocketSetTcpSynCountResult = Result<(), fidl_fuchsia_posix::Errno>;
50744pub type StreamSocketGetTcpSynCountResult = Result<u32, fidl_fuchsia_posix::Errno>;
50745pub type StreamSocketSetTcpLingerResult = Result<(), fidl_fuchsia_posix::Errno>;
50746pub type StreamSocketGetTcpLingerResult = Result<OptionalUint32, fidl_fuchsia_posix::Errno>;
50747pub type StreamSocketSetTcpDeferAcceptResult = Result<(), fidl_fuchsia_posix::Errno>;
50748pub type StreamSocketGetTcpDeferAcceptResult = Result<u32, fidl_fuchsia_posix::Errno>;
50749pub type StreamSocketSetTcpWindowClampResult = Result<(), fidl_fuchsia_posix::Errno>;
50750pub type StreamSocketGetTcpWindowClampResult = Result<u32, fidl_fuchsia_posix::Errno>;
50751pub type StreamSocketGetTcpInfoResult =
50752    Result<fidl_fuchsia_net_tcp::Info, fidl_fuchsia_posix::Errno>;
50753pub type StreamSocketSetTcpQuickAckResult = Result<(), fidl_fuchsia_posix::Errno>;
50754pub type StreamSocketGetTcpQuickAckResult = Result<bool, fidl_fuchsia_posix::Errno>;
50755pub type StreamSocketSetTcpCongestionResult = Result<(), fidl_fuchsia_posix::Errno>;
50756pub type StreamSocketGetTcpCongestionResult =
50757    Result<TcpCongestionControl, fidl_fuchsia_posix::Errno>;
50758pub type StreamSocketSetTcpUserTimeoutResult = Result<(), fidl_fuchsia_posix::Errno>;
50759pub type StreamSocketGetTcpUserTimeoutResult = Result<u32, fidl_fuchsia_posix::Errno>;
50760
50761pub trait StreamSocketProxyInterface: Send + Sync {
50762    fn r#clone(
50763        &self,
50764        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
50765    ) -> Result<(), fidl::Error>;
50766    type CloseResponseFut: std::future::Future<
50767            Output = Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error>,
50768        > + Send;
50769    fn r#close(&self) -> Self::CloseResponseFut;
50770    type QueryResponseFut: std::future::Future<Output = Result<Vec<u8>, fidl::Error>> + Send;
50771    fn r#query(&self) -> Self::QueryResponseFut;
50772    type SetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketSetReuseAddressResult, fidl::Error>>
50773        + Send;
50774    fn r#set_reuse_address(&self, value: bool) -> Self::SetReuseAddressResponseFut;
50775    type GetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketGetReuseAddressResult, fidl::Error>>
50776        + Send;
50777    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut;
50778    type GetErrorResponseFut: std::future::Future<Output = Result<BaseSocketGetErrorResult, fidl::Error>>
50779        + Send;
50780    fn r#get_error(&self) -> Self::GetErrorResponseFut;
50781    type SetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketSetBroadcastResult, fidl::Error>>
50782        + Send;
50783    fn r#set_broadcast(&self, value: bool) -> Self::SetBroadcastResponseFut;
50784    type GetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketGetBroadcastResult, fidl::Error>>
50785        + Send;
50786    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut;
50787    type SetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetSendBufferResult, fidl::Error>>
50788        + Send;
50789    fn r#set_send_buffer(&self, value_bytes: u64) -> Self::SetSendBufferResponseFut;
50790    type GetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetSendBufferResult, fidl::Error>>
50791        + Send;
50792    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut;
50793    type SetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetReceiveBufferResult, fidl::Error>>
50794        + Send;
50795    fn r#set_receive_buffer(&self, value_bytes: u64) -> Self::SetReceiveBufferResponseFut;
50796    type GetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetReceiveBufferResult, fidl::Error>>
50797        + Send;
50798    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut;
50799    type SetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketSetKeepAliveResult, fidl::Error>>
50800        + Send;
50801    fn r#set_keep_alive(&self, value: bool) -> Self::SetKeepAliveResponseFut;
50802    type GetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketGetKeepAliveResult, fidl::Error>>
50803        + Send;
50804    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut;
50805    type SetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketSetOutOfBandInlineResult, fidl::Error>>
50806        + Send;
50807    fn r#set_out_of_band_inline(&self, value: bool) -> Self::SetOutOfBandInlineResponseFut;
50808    type GetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketGetOutOfBandInlineResult, fidl::Error>>
50809        + Send;
50810    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut;
50811    type SetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketSetNoCheckResult, fidl::Error>>
50812        + Send;
50813    fn r#set_no_check(&self, value: bool) -> Self::SetNoCheckResponseFut;
50814    type GetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketGetNoCheckResult, fidl::Error>>
50815        + Send;
50816    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut;
50817    type SetLingerResponseFut: std::future::Future<Output = Result<BaseSocketSetLingerResult, fidl::Error>>
50818        + Send;
50819    fn r#set_linger(&self, linger: bool, length_secs: u32) -> Self::SetLingerResponseFut;
50820    type GetLingerResponseFut: std::future::Future<Output = Result<BaseSocketGetLingerResult, fidl::Error>>
50821        + Send;
50822    fn r#get_linger(&self) -> Self::GetLingerResponseFut;
50823    type SetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketSetReusePortResult, fidl::Error>>
50824        + Send;
50825    fn r#set_reuse_port(&self, value: ReusePortOption) -> Self::SetReusePortResponseFut;
50826    type SetReusePortDeprecatedResponseFut: std::future::Future<Output = Result<BaseSocketSetReusePortDeprecatedResult, fidl::Error>>
50827        + Send;
50828    fn r#set_reuse_port_deprecated(&self, value: bool) -> Self::SetReusePortDeprecatedResponseFut;
50829    type GetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketGetReusePortResult, fidl::Error>>
50830        + Send;
50831    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut;
50832    type GetAcceptConnResponseFut: std::future::Future<Output = Result<BaseSocketGetAcceptConnResult, fidl::Error>>
50833        + Send;
50834    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut;
50835    type SetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToDeviceResult, fidl::Error>>
50836        + Send;
50837    fn r#set_bind_to_device(&self, value: &str) -> Self::SetBindToDeviceResponseFut;
50838    type GetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToDeviceResult, fidl::Error>>
50839        + Send;
50840    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut;
50841    type SetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error>>
50842        + Send;
50843    fn r#set_bind_to_interface_index(&self, value: u64)
50844    -> Self::SetBindToInterfaceIndexResponseFut;
50845    type GetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error>>
50846        + Send;
50847    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut;
50848    type SetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketSetTimestampResult, fidl::Error>>
50849        + Send;
50850    fn r#set_timestamp(&self, value: TimestampOption) -> Self::SetTimestampResponseFut;
50851    type GetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketGetTimestampResult, fidl::Error>>
50852        + Send;
50853    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut;
50854    type SetMarkResponseFut: std::future::Future<Output = Result<BaseSocketSetMarkResult, fidl::Error>>
50855        + Send;
50856    fn r#set_mark(
50857        &self,
50858        domain: fidl_fuchsia_net::MarkDomain,
50859        mark: &OptionalUint32,
50860    ) -> Self::SetMarkResponseFut;
50861    type GetMarkResponseFut: std::future::Future<Output = Result<BaseSocketGetMarkResult, fidl::Error>>
50862        + Send;
50863    fn r#get_mark(&self, domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut;
50864    type GetCookieResponseFut: std::future::Future<Output = Result<BaseSocketGetCookieResult, fidl::Error>>
50865        + Send;
50866    fn r#get_cookie(&self) -> Self::GetCookieResponseFut;
50867    type BindResponseFut: std::future::Future<Output = Result<BaseNetworkSocketBindResult, fidl::Error>>
50868        + Send;
50869    fn r#bind(&self, addr: &fidl_fuchsia_net::SocketAddress) -> Self::BindResponseFut;
50870    type ConnectResponseFut: std::future::Future<Output = Result<BaseNetworkSocketConnectResult, fidl::Error>>
50871        + Send;
50872    fn r#connect(&self, addr: &fidl_fuchsia_net::SocketAddress) -> Self::ConnectResponseFut;
50873    type DisconnectResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDisconnectResult, fidl::Error>>
50874        + Send;
50875    fn r#disconnect(&self) -> Self::DisconnectResponseFut;
50876    type GetSockNameResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetSockNameResult, fidl::Error>>
50877        + Send;
50878    fn r#get_sock_name(&self) -> Self::GetSockNameResponseFut;
50879    type GetPeerNameResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetPeerNameResult, fidl::Error>>
50880        + Send;
50881    fn r#get_peer_name(&self) -> Self::GetPeerNameResponseFut;
50882    type ShutdownResponseFut: std::future::Future<Output = Result<BaseNetworkSocketShutdownResult, fidl::Error>>
50883        + Send;
50884    fn r#shutdown(&self, mode: ShutdownMode) -> Self::ShutdownResponseFut;
50885    type SetIpTypeOfServiceResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error>>
50886        + Send;
50887    fn r#set_ip_type_of_service(&self, value: u8) -> Self::SetIpTypeOfServiceResponseFut;
50888    type GetIpTypeOfServiceResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error>>
50889        + Send;
50890    fn r#get_ip_type_of_service(&self) -> Self::GetIpTypeOfServiceResponseFut;
50891    type SetIpTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTtlResult, fidl::Error>>
50892        + Send;
50893    fn r#set_ip_ttl(&self, value: &OptionalUint8) -> Self::SetIpTtlResponseFut;
50894    type GetIpTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTtlResult, fidl::Error>>
50895        + Send;
50896    fn r#get_ip_ttl(&self) -> Self::GetIpTtlResponseFut;
50897    type SetIpPacketInfoResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error>>
50898        + Send;
50899    fn r#set_ip_packet_info(&self, value: bool) -> Self::SetIpPacketInfoResponseFut;
50900    type GetIpPacketInfoResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error>>
50901        + Send;
50902    fn r#get_ip_packet_info(&self) -> Self::GetIpPacketInfoResponseFut;
50903    type SetIpReceiveTypeOfServiceResponseFut: std::future::Future<
50904            Output = Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error>,
50905        > + Send;
50906    fn r#set_ip_receive_type_of_service(
50907        &self,
50908        value: bool,
50909    ) -> Self::SetIpReceiveTypeOfServiceResponseFut;
50910    type GetIpReceiveTypeOfServiceResponseFut: std::future::Future<
50911            Output = Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error>,
50912        > + Send;
50913    fn r#get_ip_receive_type_of_service(&self) -> Self::GetIpReceiveTypeOfServiceResponseFut;
50914    type SetIpReceiveTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error>>
50915        + Send;
50916    fn r#set_ip_receive_ttl(&self, value: bool) -> Self::SetIpReceiveTtlResponseFut;
50917    type GetIpReceiveTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error>>
50918        + Send;
50919    fn r#get_ip_receive_ttl(&self) -> Self::GetIpReceiveTtlResponseFut;
50920    type SetIpMulticastInterfaceResponseFut: std::future::Future<
50921            Output = Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error>,
50922        > + Send;
50923    fn r#set_ip_multicast_interface(
50924        &self,
50925        iface: u64,
50926        address: &fidl_fuchsia_net::Ipv4Address,
50927    ) -> Self::SetIpMulticastInterfaceResponseFut;
50928    type GetIpMulticastInterfaceResponseFut: std::future::Future<
50929            Output = Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error>,
50930        > + Send;
50931    fn r#get_ip_multicast_interface(&self) -> Self::GetIpMulticastInterfaceResponseFut;
50932    type SetIpMulticastTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error>>
50933        + Send;
50934    fn r#set_ip_multicast_ttl(&self, value: &OptionalUint8) -> Self::SetIpMulticastTtlResponseFut;
50935    type GetIpMulticastTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error>>
50936        + Send;
50937    fn r#get_ip_multicast_ttl(&self) -> Self::GetIpMulticastTtlResponseFut;
50938    type SetIpMulticastLoopbackResponseFut: std::future::Future<
50939            Output = Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error>,
50940        > + Send;
50941    fn r#set_ip_multicast_loopback(&self, value: bool) -> Self::SetIpMulticastLoopbackResponseFut;
50942    type GetIpMulticastLoopbackResponseFut: std::future::Future<
50943            Output = Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error>,
50944        > + Send;
50945    fn r#get_ip_multicast_loopback(&self) -> Self::GetIpMulticastLoopbackResponseFut;
50946    type AddIpMembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error>>
50947        + Send;
50948    fn r#add_ip_membership(
50949        &self,
50950        membership: &IpMulticastMembership,
50951    ) -> Self::AddIpMembershipResponseFut;
50952    type DropIpMembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error>>
50953        + Send;
50954    fn r#drop_ip_membership(
50955        &self,
50956        membership: &IpMulticastMembership,
50957    ) -> Self::DropIpMembershipResponseFut;
50958    type SetIpTransparentResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error>>
50959        + Send;
50960    fn r#set_ip_transparent(&self, value: bool) -> Self::SetIpTransparentResponseFut;
50961    type GetIpTransparentResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error>>
50962        + Send;
50963    fn r#get_ip_transparent(&self) -> Self::GetIpTransparentResponseFut;
50964    type SetIpReceiveOriginalDestinationAddressResponseFut: std::future::Future<
50965            Output = Result<
50966                BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
50967                fidl::Error,
50968            >,
50969        > + Send;
50970    fn r#set_ip_receive_original_destination_address(
50971        &self,
50972        value: bool,
50973    ) -> Self::SetIpReceiveOriginalDestinationAddressResponseFut;
50974    type GetIpReceiveOriginalDestinationAddressResponseFut: std::future::Future<
50975            Output = Result<
50976                BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
50977                fidl::Error,
50978            >,
50979        > + Send;
50980    fn r#get_ip_receive_original_destination_address(
50981        &self,
50982    ) -> Self::GetIpReceiveOriginalDestinationAddressResponseFut;
50983    type AddIpv6MembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error>>
50984        + Send;
50985    fn r#add_ipv6_membership(
50986        &self,
50987        membership: &Ipv6MulticastMembership,
50988    ) -> Self::AddIpv6MembershipResponseFut;
50989    type DropIpv6MembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error>>
50990        + Send;
50991    fn r#drop_ipv6_membership(
50992        &self,
50993        membership: &Ipv6MulticastMembership,
50994    ) -> Self::DropIpv6MembershipResponseFut;
50995    type SetIpv6MulticastInterfaceResponseFut: std::future::Future<
50996            Output = Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error>,
50997        > + Send;
50998    fn r#set_ipv6_multicast_interface(
50999        &self,
51000        value: u64,
51001    ) -> Self::SetIpv6MulticastInterfaceResponseFut;
51002    type GetIpv6MulticastInterfaceResponseFut: std::future::Future<
51003            Output = Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error>,
51004        > + Send;
51005    fn r#get_ipv6_multicast_interface(&self) -> Self::GetIpv6MulticastInterfaceResponseFut;
51006    type SetIpv6UnicastHopsResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error>>
51007        + Send;
51008    fn r#set_ipv6_unicast_hops(&self, value: &OptionalUint8)
51009    -> Self::SetIpv6UnicastHopsResponseFut;
51010    type GetIpv6UnicastHopsResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error>>
51011        + Send;
51012    fn r#get_ipv6_unicast_hops(&self) -> Self::GetIpv6UnicastHopsResponseFut;
51013    type SetIpv6ReceiveHopLimitResponseFut: std::future::Future<
51014            Output = Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error>,
51015        > + Send;
51016    fn r#set_ipv6_receive_hop_limit(&self, value: bool) -> Self::SetIpv6ReceiveHopLimitResponseFut;
51017    type GetIpv6ReceiveHopLimitResponseFut: std::future::Future<
51018            Output = Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error>,
51019        > + Send;
51020    fn r#get_ipv6_receive_hop_limit(&self) -> Self::GetIpv6ReceiveHopLimitResponseFut;
51021    type SetIpv6MulticastHopsResponseFut: std::future::Future<
51022            Output = Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error>,
51023        > + Send;
51024    fn r#set_ipv6_multicast_hops(
51025        &self,
51026        value: &OptionalUint8,
51027    ) -> Self::SetIpv6MulticastHopsResponseFut;
51028    type GetIpv6MulticastHopsResponseFut: std::future::Future<
51029            Output = Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error>,
51030        > + Send;
51031    fn r#get_ipv6_multicast_hops(&self) -> Self::GetIpv6MulticastHopsResponseFut;
51032    type SetIpv6MulticastLoopbackResponseFut: std::future::Future<
51033            Output = Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error>,
51034        > + Send;
51035    fn r#set_ipv6_multicast_loopback(
51036        &self,
51037        value: bool,
51038    ) -> Self::SetIpv6MulticastLoopbackResponseFut;
51039    type GetIpv6MulticastLoopbackResponseFut: std::future::Future<
51040            Output = Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error>,
51041        > + Send;
51042    fn r#get_ipv6_multicast_loopback(&self) -> Self::GetIpv6MulticastLoopbackResponseFut;
51043    type SetIpv6OnlyResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error>>
51044        + Send;
51045    fn r#set_ipv6_only(&self, value: bool) -> Self::SetIpv6OnlyResponseFut;
51046    type GetIpv6OnlyResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error>>
51047        + Send;
51048    fn r#get_ipv6_only(&self) -> Self::GetIpv6OnlyResponseFut;
51049    type SetIpv6ReceiveTrafficClassResponseFut: std::future::Future<
51050            Output = Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error>,
51051        > + Send;
51052    fn r#set_ipv6_receive_traffic_class(
51053        &self,
51054        value: bool,
51055    ) -> Self::SetIpv6ReceiveTrafficClassResponseFut;
51056    type GetIpv6ReceiveTrafficClassResponseFut: std::future::Future<
51057            Output = Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error>,
51058        > + Send;
51059    fn r#get_ipv6_receive_traffic_class(&self) -> Self::GetIpv6ReceiveTrafficClassResponseFut;
51060    type SetIpv6TrafficClassResponseFut: std::future::Future<
51061            Output = Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error>,
51062        > + Send;
51063    fn r#set_ipv6_traffic_class(
51064        &self,
51065        value: &OptionalUint8,
51066    ) -> Self::SetIpv6TrafficClassResponseFut;
51067    type GetIpv6TrafficClassResponseFut: std::future::Future<
51068            Output = Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error>,
51069        > + Send;
51070    fn r#get_ipv6_traffic_class(&self) -> Self::GetIpv6TrafficClassResponseFut;
51071    type SetIpv6ReceivePacketInfoResponseFut: std::future::Future<
51072            Output = Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error>,
51073        > + Send;
51074    fn r#set_ipv6_receive_packet_info(
51075        &self,
51076        value: bool,
51077    ) -> Self::SetIpv6ReceivePacketInfoResponseFut;
51078    type GetIpv6ReceivePacketInfoResponseFut: std::future::Future<
51079            Output = Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error>,
51080        > + Send;
51081    fn r#get_ipv6_receive_packet_info(&self) -> Self::GetIpv6ReceivePacketInfoResponseFut;
51082    type GetOriginalDestinationResponseFut: std::future::Future<
51083            Output = Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error>,
51084        > + Send;
51085    fn r#get_original_destination(&self) -> Self::GetOriginalDestinationResponseFut;
51086    type DescribeResponseFut: std::future::Future<Output = Result<StreamSocketDescribeResponse, fidl::Error>>
51087        + Send;
51088    fn r#describe(&self) -> Self::DescribeResponseFut;
51089    type ListenResponseFut: std::future::Future<Output = Result<StreamSocketListenResult, fidl::Error>>
51090        + Send;
51091    fn r#listen(&self, backlog: i16) -> Self::ListenResponseFut;
51092    type AcceptResponseFut: std::future::Future<Output = Result<StreamSocketAcceptResult, fidl::Error>>
51093        + Send;
51094    fn r#accept(&self, want_addr: bool) -> Self::AcceptResponseFut;
51095    type GetInfoResponseFut: std::future::Future<Output = Result<StreamSocketGetInfoResult, fidl::Error>>
51096        + Send;
51097    fn r#get_info(&self) -> Self::GetInfoResponseFut;
51098    type SetTcpNoDelayResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpNoDelayResult, fidl::Error>>
51099        + Send;
51100    fn r#set_tcp_no_delay(&self, value: bool) -> Self::SetTcpNoDelayResponseFut;
51101    type GetTcpNoDelayResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpNoDelayResult, fidl::Error>>
51102        + Send;
51103    fn r#get_tcp_no_delay(&self) -> Self::GetTcpNoDelayResponseFut;
51104    type SetTcpMaxSegmentResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpMaxSegmentResult, fidl::Error>>
51105        + Send;
51106    fn r#set_tcp_max_segment(&self, value_bytes: u32) -> Self::SetTcpMaxSegmentResponseFut;
51107    type GetTcpMaxSegmentResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpMaxSegmentResult, fidl::Error>>
51108        + Send;
51109    fn r#get_tcp_max_segment(&self) -> Self::GetTcpMaxSegmentResponseFut;
51110    type SetTcpCorkResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpCorkResult, fidl::Error>>
51111        + Send;
51112    fn r#set_tcp_cork(&self, value: bool) -> Self::SetTcpCorkResponseFut;
51113    type GetTcpCorkResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpCorkResult, fidl::Error>>
51114        + Send;
51115    fn r#get_tcp_cork(&self) -> Self::GetTcpCorkResponseFut;
51116    type SetTcpKeepAliveIdleResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpKeepAliveIdleResult, fidl::Error>>
51117        + Send;
51118    fn r#set_tcp_keep_alive_idle(&self, value_secs: u32) -> Self::SetTcpKeepAliveIdleResponseFut;
51119    type GetTcpKeepAliveIdleResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpKeepAliveIdleResult, fidl::Error>>
51120        + Send;
51121    fn r#get_tcp_keep_alive_idle(&self) -> Self::GetTcpKeepAliveIdleResponseFut;
51122    type SetTcpKeepAliveIntervalResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpKeepAliveIntervalResult, fidl::Error>>
51123        + Send;
51124    fn r#set_tcp_keep_alive_interval(
51125        &self,
51126        value_secs: u32,
51127    ) -> Self::SetTcpKeepAliveIntervalResponseFut;
51128    type GetTcpKeepAliveIntervalResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpKeepAliveIntervalResult, fidl::Error>>
51129        + Send;
51130    fn r#get_tcp_keep_alive_interval(&self) -> Self::GetTcpKeepAliveIntervalResponseFut;
51131    type SetTcpKeepAliveCountResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpKeepAliveCountResult, fidl::Error>>
51132        + Send;
51133    fn r#set_tcp_keep_alive_count(&self, value: u32) -> Self::SetTcpKeepAliveCountResponseFut;
51134    type GetTcpKeepAliveCountResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpKeepAliveCountResult, fidl::Error>>
51135        + Send;
51136    fn r#get_tcp_keep_alive_count(&self) -> Self::GetTcpKeepAliveCountResponseFut;
51137    type SetTcpSynCountResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpSynCountResult, fidl::Error>>
51138        + Send;
51139    fn r#set_tcp_syn_count(&self, value: u32) -> Self::SetTcpSynCountResponseFut;
51140    type GetTcpSynCountResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpSynCountResult, fidl::Error>>
51141        + Send;
51142    fn r#get_tcp_syn_count(&self) -> Self::GetTcpSynCountResponseFut;
51143    type SetTcpLingerResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpLingerResult, fidl::Error>>
51144        + Send;
51145    fn r#set_tcp_linger(&self, value_secs: &OptionalUint32) -> Self::SetTcpLingerResponseFut;
51146    type GetTcpLingerResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpLingerResult, fidl::Error>>
51147        + Send;
51148    fn r#get_tcp_linger(&self) -> Self::GetTcpLingerResponseFut;
51149    type SetTcpDeferAcceptResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpDeferAcceptResult, fidl::Error>>
51150        + Send;
51151    fn r#set_tcp_defer_accept(&self, value_secs: u32) -> Self::SetTcpDeferAcceptResponseFut;
51152    type GetTcpDeferAcceptResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpDeferAcceptResult, fidl::Error>>
51153        + Send;
51154    fn r#get_tcp_defer_accept(&self) -> Self::GetTcpDeferAcceptResponseFut;
51155    type SetTcpWindowClampResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpWindowClampResult, fidl::Error>>
51156        + Send;
51157    fn r#set_tcp_window_clamp(&self, value: u32) -> Self::SetTcpWindowClampResponseFut;
51158    type GetTcpWindowClampResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpWindowClampResult, fidl::Error>>
51159        + Send;
51160    fn r#get_tcp_window_clamp(&self) -> Self::GetTcpWindowClampResponseFut;
51161    type GetTcpInfoResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpInfoResult, fidl::Error>>
51162        + Send;
51163    fn r#get_tcp_info(&self) -> Self::GetTcpInfoResponseFut;
51164    type SetTcpQuickAckResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpQuickAckResult, fidl::Error>>
51165        + Send;
51166    fn r#set_tcp_quick_ack(&self, value: bool) -> Self::SetTcpQuickAckResponseFut;
51167    type GetTcpQuickAckResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpQuickAckResult, fidl::Error>>
51168        + Send;
51169    fn r#get_tcp_quick_ack(&self) -> Self::GetTcpQuickAckResponseFut;
51170    type SetTcpCongestionResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpCongestionResult, fidl::Error>>
51171        + Send;
51172    fn r#set_tcp_congestion(
51173        &self,
51174        value: TcpCongestionControl,
51175    ) -> Self::SetTcpCongestionResponseFut;
51176    type GetTcpCongestionResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpCongestionResult, fidl::Error>>
51177        + Send;
51178    fn r#get_tcp_congestion(&self) -> Self::GetTcpCongestionResponseFut;
51179    type SetTcpUserTimeoutResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpUserTimeoutResult, fidl::Error>>
51180        + Send;
51181    fn r#set_tcp_user_timeout(&self, value_millis: u32) -> Self::SetTcpUserTimeoutResponseFut;
51182    type GetTcpUserTimeoutResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpUserTimeoutResult, fidl::Error>>
51183        + Send;
51184    fn r#get_tcp_user_timeout(&self) -> Self::GetTcpUserTimeoutResponseFut;
51185}
51186#[derive(Debug)]
51187#[cfg(target_os = "fuchsia")]
51188pub struct StreamSocketSynchronousProxy {
51189    client: fidl::client::sync::Client,
51190}
51191
51192#[cfg(target_os = "fuchsia")]
51193impl fidl::endpoints::SynchronousProxy for StreamSocketSynchronousProxy {
51194    type Proxy = StreamSocketProxy;
51195    type Protocol = StreamSocketMarker;
51196
51197    fn from_channel(inner: fidl::Channel) -> Self {
51198        Self::new(inner)
51199    }
51200
51201    fn into_channel(self) -> fidl::Channel {
51202        self.client.into_channel()
51203    }
51204
51205    fn as_channel(&self) -> &fidl::Channel {
51206        self.client.as_channel()
51207    }
51208}
51209
51210#[cfg(target_os = "fuchsia")]
51211impl StreamSocketSynchronousProxy {
51212    pub fn new(channel: fidl::Channel) -> Self {
51213        Self { client: fidl::client::sync::Client::new(channel) }
51214    }
51215
51216    pub fn into_channel(self) -> fidl::Channel {
51217        self.client.into_channel()
51218    }
51219
51220    /// Waits until an event arrives and returns it. It is safe for other
51221    /// threads to make concurrent requests while waiting for an event.
51222    pub fn wait_for_event(
51223        &self,
51224        deadline: zx::MonotonicInstant,
51225    ) -> Result<StreamSocketEvent, fidl::Error> {
51226        StreamSocketEvent::decode(self.client.wait_for_event::<StreamSocketMarker>(deadline)?)
51227    }
51228
51229    pub fn r#clone(
51230        &self,
51231        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
51232    ) -> Result<(), fidl::Error> {
51233        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
51234            (request,),
51235            0x20d8a7aba2168a79,
51236            fidl::encoding::DynamicFlags::empty(),
51237        )
51238    }
51239
51240    /// Terminates the connection.
51241    ///
51242    /// After calling `Close`, the client must not send any other requests.
51243    ///
51244    /// Servers, after sending the status response, should close the connection
51245    /// regardless of status and without sending an epitaph.
51246    ///
51247    /// Closing the client end of the channel should be semantically equivalent
51248    /// to calling `Close` without knowing when the close has completed or its
51249    /// status.
51250    pub fn r#close(
51251        &self,
51252        ___deadline: zx::MonotonicInstant,
51253    ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
51254        let _response = self.client.send_query::<
51255            fidl::encoding::EmptyPayload,
51256            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
51257            StreamSocketMarker,
51258        >(
51259            (),
51260            0x5ac5d459ad7f657e,
51261            fidl::encoding::DynamicFlags::empty(),
51262            ___deadline,
51263        )?;
51264        Ok(_response.map(|x| x))
51265    }
51266
51267    pub fn r#query(&self, ___deadline: zx::MonotonicInstant) -> Result<Vec<u8>, fidl::Error> {
51268        let _response = self.client.send_query::<
51269            fidl::encoding::EmptyPayload,
51270            fidl_fuchsia_unknown::QueryableQueryResponse,
51271            StreamSocketMarker,
51272        >(
51273            (),
51274            0x2658edee9decfc06,
51275            fidl::encoding::DynamicFlags::empty(),
51276            ___deadline,
51277        )?;
51278        Ok(_response.protocol)
51279    }
51280
51281    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
51282    pub fn r#set_reuse_address(
51283        &self,
51284        mut value: bool,
51285        ___deadline: zx::MonotonicInstant,
51286    ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
51287        let _response =
51288            self.client.send_query::<BaseSocketSetReuseAddressRequest, fidl::encoding::ResultType<
51289                fidl::encoding::EmptyStruct,
51290                fidl_fuchsia_posix::Errno,
51291            >, StreamSocketMarker>(
51292                (value,),
51293                0x1fd74ee8b9a4a876,
51294                fidl::encoding::DynamicFlags::empty(),
51295                ___deadline,
51296            )?;
51297        Ok(_response.map(|x| x))
51298    }
51299
51300    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
51301    pub fn r#get_reuse_address(
51302        &self,
51303        ___deadline: zx::MonotonicInstant,
51304    ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
51305        let _response =
51306            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51307                BaseSocketGetReuseAddressResponse,
51308                fidl_fuchsia_posix::Errno,
51309            >, StreamSocketMarker>(
51310                (),
51311                0x67b7206b8d1bc0a5,
51312                fidl::encoding::DynamicFlags::empty(),
51313                ___deadline,
51314            )?;
51315        Ok(_response.map(|x| x.value))
51316    }
51317
51318    /// Get `SOL_SOCKET` -> `SO_ERROR`.
51319    /// Returns the last error if there is an error set on the socket.
51320    pub fn r#get_error(
51321        &self,
51322        ___deadline: zx::MonotonicInstant,
51323    ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
51324        let _response =
51325            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51326                fidl::encoding::EmptyStruct,
51327                fidl_fuchsia_posix::Errno,
51328            >, StreamSocketMarker>(
51329                (),
51330                0x5aad39b33e5f6ebb,
51331                fidl::encoding::DynamicFlags::empty(),
51332                ___deadline,
51333            )?;
51334        Ok(_response.map(|x| x))
51335    }
51336
51337    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
51338    pub fn r#set_broadcast(
51339        &self,
51340        mut value: bool,
51341        ___deadline: zx::MonotonicInstant,
51342    ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
51343        let _response =
51344            self.client.send_query::<BaseSocketSetBroadcastRequest, fidl::encoding::ResultType<
51345                fidl::encoding::EmptyStruct,
51346                fidl_fuchsia_posix::Errno,
51347            >, StreamSocketMarker>(
51348                (value,),
51349                0x6023e081ce3cd947,
51350                fidl::encoding::DynamicFlags::empty(),
51351                ___deadline,
51352            )?;
51353        Ok(_response.map(|x| x))
51354    }
51355
51356    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
51357    pub fn r#get_broadcast(
51358        &self,
51359        ___deadline: zx::MonotonicInstant,
51360    ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
51361        let _response =
51362            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51363                BaseSocketGetBroadcastResponse,
51364                fidl_fuchsia_posix::Errno,
51365            >, StreamSocketMarker>(
51366                (),
51367                0x68796fc556f9780d,
51368                fidl::encoding::DynamicFlags::empty(),
51369                ___deadline,
51370            )?;
51371        Ok(_response.map(|x| x.value))
51372    }
51373
51374    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
51375    pub fn r#set_send_buffer(
51376        &self,
51377        mut value_bytes: u64,
51378        ___deadline: zx::MonotonicInstant,
51379    ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
51380        let _response =
51381            self.client.send_query::<BaseSocketSetSendBufferRequest, fidl::encoding::ResultType<
51382                fidl::encoding::EmptyStruct,
51383                fidl_fuchsia_posix::Errno,
51384            >, StreamSocketMarker>(
51385                (value_bytes,),
51386                0x756eac32d73a7a70,
51387                fidl::encoding::DynamicFlags::empty(),
51388                ___deadline,
51389            )?;
51390        Ok(_response.map(|x| x))
51391    }
51392
51393    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
51394    pub fn r#get_send_buffer(
51395        &self,
51396        ___deadline: zx::MonotonicInstant,
51397    ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
51398        let _response =
51399            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51400                BaseSocketGetSendBufferResponse,
51401                fidl_fuchsia_posix::Errno,
51402            >, StreamSocketMarker>(
51403                (),
51404                0x78a52fd9c7b2410b,
51405                fidl::encoding::DynamicFlags::empty(),
51406                ___deadline,
51407            )?;
51408        Ok(_response.map(|x| x.value_bytes))
51409    }
51410
51411    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
51412    pub fn r#set_receive_buffer(
51413        &self,
51414        mut value_bytes: u64,
51415        ___deadline: zx::MonotonicInstant,
51416    ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
51417        let _response =
51418            self.client
51419                .send_query::<BaseSocketSetReceiveBufferRequest, fidl::encoding::ResultType<
51420                    fidl::encoding::EmptyStruct,
51421                    fidl_fuchsia_posix::Errno,
51422                >, StreamSocketMarker>(
51423                    (value_bytes,),
51424                    0x6b0cf2f1919c7001,
51425                    fidl::encoding::DynamicFlags::empty(),
51426                    ___deadline,
51427                )?;
51428        Ok(_response.map(|x| x))
51429    }
51430
51431    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
51432    pub fn r#get_receive_buffer(
51433        &self,
51434        ___deadline: zx::MonotonicInstant,
51435    ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
51436        let _response =
51437            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51438                BaseSocketGetReceiveBufferResponse,
51439                fidl_fuchsia_posix::Errno,
51440            >, StreamSocketMarker>(
51441                (),
51442                0x14c1a4b64f709e5c,
51443                fidl::encoding::DynamicFlags::empty(),
51444                ___deadline,
51445            )?;
51446        Ok(_response.map(|x| x.value_bytes))
51447    }
51448
51449    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
51450    pub fn r#set_keep_alive(
51451        &self,
51452        mut value: bool,
51453        ___deadline: zx::MonotonicInstant,
51454    ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
51455        let _response =
51456            self.client.send_query::<BaseSocketSetKeepAliveRequest, fidl::encoding::ResultType<
51457                fidl::encoding::EmptyStruct,
51458                fidl_fuchsia_posix::Errno,
51459            >, StreamSocketMarker>(
51460                (value,),
51461                0x572df8f0b920d2c7,
51462                fidl::encoding::DynamicFlags::empty(),
51463                ___deadline,
51464            )?;
51465        Ok(_response.map(|x| x))
51466    }
51467
51468    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
51469    pub fn r#get_keep_alive(
51470        &self,
51471        ___deadline: zx::MonotonicInstant,
51472    ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
51473        let _response =
51474            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51475                BaseSocketGetKeepAliveResponse,
51476                fidl_fuchsia_posix::Errno,
51477            >, StreamSocketMarker>(
51478                (),
51479                0x2dd29d3215f2c9d2,
51480                fidl::encoding::DynamicFlags::empty(),
51481                ___deadline,
51482            )?;
51483        Ok(_response.map(|x| x.value))
51484    }
51485
51486    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
51487    pub fn r#set_out_of_band_inline(
51488        &self,
51489        mut value: bool,
51490        ___deadline: zx::MonotonicInstant,
51491    ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
51492        let _response =
51493            self.client
51494                .send_query::<BaseSocketSetOutOfBandInlineRequest, fidl::encoding::ResultType<
51495                    fidl::encoding::EmptyStruct,
51496                    fidl_fuchsia_posix::Errno,
51497                >, StreamSocketMarker>(
51498                    (value,),
51499                    0x3ecb49968bee439,
51500                    fidl::encoding::DynamicFlags::empty(),
51501                    ___deadline,
51502                )?;
51503        Ok(_response.map(|x| x))
51504    }
51505
51506    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
51507    pub fn r#get_out_of_band_inline(
51508        &self,
51509        ___deadline: zx::MonotonicInstant,
51510    ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
51511        let _response =
51512            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51513                BaseSocketGetOutOfBandInlineResponse,
51514                fidl_fuchsia_posix::Errno,
51515            >, StreamSocketMarker>(
51516                (),
51517                0x348c1ab3aeca1745,
51518                fidl::encoding::DynamicFlags::empty(),
51519                ___deadline,
51520            )?;
51521        Ok(_response.map(|x| x.value))
51522    }
51523
51524    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
51525    pub fn r#set_no_check(
51526        &self,
51527        mut value: bool,
51528        ___deadline: zx::MonotonicInstant,
51529    ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
51530        let _response =
51531            self.client.send_query::<BaseSocketSetNoCheckRequest, fidl::encoding::ResultType<
51532                fidl::encoding::EmptyStruct,
51533                fidl_fuchsia_posix::Errno,
51534            >, StreamSocketMarker>(
51535                (value,),
51536                0x6bbf00c53a4c78c2,
51537                fidl::encoding::DynamicFlags::empty(),
51538                ___deadline,
51539            )?;
51540        Ok(_response.map(|x| x))
51541    }
51542
51543    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
51544    pub fn r#get_no_check(
51545        &self,
51546        ___deadline: zx::MonotonicInstant,
51547    ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
51548        let _response =
51549            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51550                BaseSocketGetNoCheckResponse,
51551                fidl_fuchsia_posix::Errno,
51552            >, StreamSocketMarker>(
51553                (),
51554                0x2cd4249286417694,
51555                fidl::encoding::DynamicFlags::empty(),
51556                ___deadline,
51557            )?;
51558        Ok(_response.map(|x| x.value))
51559    }
51560
51561    /// Set `SOL_SOCKET` -> `SO_LINGER`.
51562    pub fn r#set_linger(
51563        &self,
51564        mut linger: bool,
51565        mut length_secs: u32,
51566        ___deadline: zx::MonotonicInstant,
51567    ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
51568        let _response =
51569            self.client.send_query::<BaseSocketSetLingerRequest, fidl::encoding::ResultType<
51570                fidl::encoding::EmptyStruct,
51571                fidl_fuchsia_posix::Errno,
51572            >, StreamSocketMarker>(
51573                (linger, length_secs),
51574                0x45386351246e998e,
51575                fidl::encoding::DynamicFlags::empty(),
51576                ___deadline,
51577            )?;
51578        Ok(_response.map(|x| x))
51579    }
51580
51581    /// Get `SOL_SOCKET` -> `SO_LINGER`.
51582    pub fn r#get_linger(
51583        &self,
51584        ___deadline: zx::MonotonicInstant,
51585    ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
51586        let _response =
51587            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51588                BaseSocketGetLingerResponse,
51589                fidl_fuchsia_posix::Errno,
51590            >, StreamSocketMarker>(
51591                (),
51592                0x48eb20fc5ccb0e45,
51593                fidl::encoding::DynamicFlags::empty(),
51594                ___deadline,
51595            )?;
51596        Ok(_response.map(|x| (x.linger, x.length_secs)))
51597    }
51598
51599    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
51600    pub fn r#set_reuse_port(
51601        &self,
51602        mut value: ReusePortOption,
51603        ___deadline: zx::MonotonicInstant,
51604    ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
51605        let _response =
51606            self.client.send_query::<BaseSocketSetReusePortRequest, fidl::encoding::ResultType<
51607                fidl::encoding::EmptyStruct,
51608                fidl_fuchsia_posix::Errno,
51609            >, StreamSocketMarker>(
51610                (&mut value,),
51611                0x547dc9cc0455189e,
51612                fidl::encoding::DynamicFlags::empty(),
51613                ___deadline,
51614            )?;
51615        Ok(_response.map(|x| x))
51616    }
51617
51618    pub fn r#set_reuse_port_deprecated(
51619        &self,
51620        mut value: bool,
51621        ___deadline: zx::MonotonicInstant,
51622    ) -> Result<BaseSocketSetReusePortDeprecatedResult, fidl::Error> {
51623        let _response =
51624            self.client
51625                .send_query::<BaseSocketSetReusePortDeprecatedRequest, fidl::encoding::ResultType<
51626                    fidl::encoding::EmptyStruct,
51627                    fidl_fuchsia_posix::Errno,
51628                >, StreamSocketMarker>(
51629                    (value,),
51630                    0x24dd3e5cb36d9ccb,
51631                    fidl::encoding::DynamicFlags::empty(),
51632                    ___deadline,
51633                )?;
51634        Ok(_response.map(|x| x))
51635    }
51636
51637    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
51638    pub fn r#get_reuse_port(
51639        &self,
51640        ___deadline: zx::MonotonicInstant,
51641    ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
51642        let _response =
51643            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51644                BaseSocketGetReusePortResponse,
51645                fidl_fuchsia_posix::Errno,
51646            >, StreamSocketMarker>(
51647                (),
51648                0x7a112c1ab54ff828,
51649                fidl::encoding::DynamicFlags::empty(),
51650                ___deadline,
51651            )?;
51652        Ok(_response.map(|x| x.value))
51653    }
51654
51655    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
51656    pub fn r#get_accept_conn(
51657        &self,
51658        ___deadline: zx::MonotonicInstant,
51659    ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
51660        let _response =
51661            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51662                BaseSocketGetAcceptConnResponse,
51663                fidl_fuchsia_posix::Errno,
51664            >, StreamSocketMarker>(
51665                (),
51666                0x67ce6db6c2ec8966,
51667                fidl::encoding::DynamicFlags::empty(),
51668                ___deadline,
51669            )?;
51670        Ok(_response.map(|x| x.value))
51671    }
51672
51673    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
51674    pub fn r#set_bind_to_device(
51675        &self,
51676        mut value: &str,
51677        ___deadline: zx::MonotonicInstant,
51678    ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
51679        let _response =
51680            self.client.send_query::<BaseSocketSetBindToDeviceRequest, fidl::encoding::ResultType<
51681                fidl::encoding::EmptyStruct,
51682                fidl_fuchsia_posix::Errno,
51683            >, StreamSocketMarker>(
51684                (value,),
51685                0x2118b483f28aafc4,
51686                fidl::encoding::DynamicFlags::empty(),
51687                ___deadline,
51688            )?;
51689        Ok(_response.map(|x| x))
51690    }
51691
51692    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
51693    pub fn r#get_bind_to_device(
51694        &self,
51695        ___deadline: zx::MonotonicInstant,
51696    ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
51697        let _response =
51698            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51699                BaseSocketGetBindToDeviceResponse,
51700                fidl_fuchsia_posix::Errno,
51701            >, StreamSocketMarker>(
51702                (),
51703                0x1ab1fbf0ef7906c8,
51704                fidl::encoding::DynamicFlags::empty(),
51705                ___deadline,
51706            )?;
51707        Ok(_response.map(|x| x.value))
51708    }
51709
51710    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
51711    /// If `value` is 0, this clears the bound interface.
51712    pub fn r#set_bind_to_interface_index(
51713        &self,
51714        mut value: u64,
51715        ___deadline: zx::MonotonicInstant,
51716    ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
51717        let _response =
51718            self.client
51719                .send_query::<BaseSocketSetBindToInterfaceIndexRequest, fidl::encoding::ResultType<
51720                    fidl::encoding::EmptyStruct,
51721                    fidl_fuchsia_posix::Errno,
51722                >, StreamSocketMarker>(
51723                    (value,),
51724                    0x6e387a0def00821,
51725                    fidl::encoding::DynamicFlags::empty(),
51726                    ___deadline,
51727                )?;
51728        Ok(_response.map(|x| x))
51729    }
51730
51731    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
51732    pub fn r#get_bind_to_interface_index(
51733        &self,
51734        ___deadline: zx::MonotonicInstant,
51735    ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
51736        let _response =
51737            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51738                BaseSocketGetBindToInterfaceIndexResponse,
51739                fidl_fuchsia_posix::Errno,
51740            >, StreamSocketMarker>(
51741                (),
51742                0x59c31dd3e3078295,
51743                fidl::encoding::DynamicFlags::empty(),
51744                ___deadline,
51745            )?;
51746        Ok(_response.map(|x| x.value))
51747    }
51748
51749    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
51750    pub fn r#set_timestamp(
51751        &self,
51752        mut value: TimestampOption,
51753        ___deadline: zx::MonotonicInstant,
51754    ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
51755        let _response =
51756            self.client.send_query::<BaseSocketSetTimestampRequest, fidl::encoding::ResultType<
51757                fidl::encoding::EmptyStruct,
51758                fidl_fuchsia_posix::Errno,
51759            >, StreamSocketMarker>(
51760                (value,),
51761                0x285d6516c263d839,
51762                fidl::encoding::DynamicFlags::empty(),
51763                ___deadline,
51764            )?;
51765        Ok(_response.map(|x| x))
51766    }
51767
51768    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
51769    pub fn r#get_timestamp(
51770        &self,
51771        ___deadline: zx::MonotonicInstant,
51772    ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
51773        let _response =
51774            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51775                BaseSocketGetTimestampResponse,
51776                fidl_fuchsia_posix::Errno,
51777            >, StreamSocketMarker>(
51778                (),
51779                0x49f2fffbbcc2bd27,
51780                fidl::encoding::DynamicFlags::empty(),
51781                ___deadline,
51782            )?;
51783        Ok(_response.map(|x| x.value))
51784    }
51785
51786    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
51787    /// unlike the standard SO_MARK, this API has multiple mark domains and each
51788    /// mark can be set independently in each domain.
51789    pub fn r#set_mark(
51790        &self,
51791        mut domain: fidl_fuchsia_net::MarkDomain,
51792        mut mark: &OptionalUint32,
51793        ___deadline: zx::MonotonicInstant,
51794    ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
51795        let _response =
51796            self.client.send_query::<BaseSocketSetMarkRequest, fidl::encoding::ResultType<
51797                fidl::encoding::EmptyStruct,
51798                fidl_fuchsia_posix::Errno,
51799            >, StreamSocketMarker>(
51800                (domain, mark),
51801                0x6ead6de09f653236,
51802                fidl::encoding::DynamicFlags::empty(),
51803                ___deadline,
51804            )?;
51805        Ok(_response.map(|x| x))
51806    }
51807
51808    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
51809    /// unlike the standard SO_MARK, this API has multiple mark domains and each
51810    /// mark can be retrieved independently in each domain.
51811    pub fn r#get_mark(
51812        &self,
51813        mut domain: fidl_fuchsia_net::MarkDomain,
51814        ___deadline: zx::MonotonicInstant,
51815    ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
51816        let _response =
51817            self.client.send_query::<BaseSocketGetMarkRequest, fidl::encoding::ResultType<
51818                BaseSocketGetMarkResponse,
51819                fidl_fuchsia_posix::Errno,
51820            >, StreamSocketMarker>(
51821                (domain,),
51822                0x57a2752c61d93d47,
51823                fidl::encoding::DynamicFlags::empty(),
51824                ___deadline,
51825            )?;
51826        Ok(_response.map(|x| x.mark))
51827    }
51828
51829    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
51830    pub fn r#get_cookie(
51831        &self,
51832        ___deadline: zx::MonotonicInstant,
51833    ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
51834        let _response =
51835            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51836                BaseSocketGetCookieResponse,
51837                fidl_fuchsia_posix::Errno,
51838            >, StreamSocketMarker>(
51839                (),
51840                0x2c2f47fd8f924e52,
51841                fidl::encoding::DynamicFlags::empty(),
51842                ___deadline,
51843            )?;
51844        Ok(_response.map(|x| x.value))
51845    }
51846
51847    /// Sets the local address used for the socket.
51848    pub fn r#bind(
51849        &self,
51850        mut addr: &fidl_fuchsia_net::SocketAddress,
51851        ___deadline: zx::MonotonicInstant,
51852    ) -> Result<BaseNetworkSocketBindResult, fidl::Error> {
51853        let _response =
51854            self.client.send_query::<BaseNetworkSocketBindRequest, fidl::encoding::ResultType<
51855                fidl::encoding::EmptyStruct,
51856                fidl_fuchsia_posix::Errno,
51857            >, StreamSocketMarker>(
51858                (addr,),
51859                0x4bc6400ae92125d,
51860                fidl::encoding::DynamicFlags::empty(),
51861                ___deadline,
51862            )?;
51863        Ok(_response.map(|x| x))
51864    }
51865
51866    /// Initiates a connection to a remote address.
51867    pub fn r#connect(
51868        &self,
51869        mut addr: &fidl_fuchsia_net::SocketAddress,
51870        ___deadline: zx::MonotonicInstant,
51871    ) -> Result<BaseNetworkSocketConnectResult, fidl::Error> {
51872        let _response =
51873            self.client.send_query::<BaseNetworkSocketConnectRequest, fidl::encoding::ResultType<
51874                fidl::encoding::EmptyStruct,
51875                fidl_fuchsia_posix::Errno,
51876            >, StreamSocketMarker>(
51877                (addr,),
51878                0x5f05f19bfdd38871,
51879                fidl::encoding::DynamicFlags::empty(),
51880                ___deadline,
51881            )?;
51882        Ok(_response.map(|x| x))
51883    }
51884
51885    /// Clears connection information from this socket.
51886    pub fn r#disconnect(
51887        &self,
51888        ___deadline: zx::MonotonicInstant,
51889    ) -> Result<BaseNetworkSocketDisconnectResult, fidl::Error> {
51890        let _response =
51891            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51892                fidl::encoding::EmptyStruct,
51893                fidl_fuchsia_posix::Errno,
51894            >, StreamSocketMarker>(
51895                (),
51896                0x74e63b91f7b29b2,
51897                fidl::encoding::DynamicFlags::empty(),
51898                ___deadline,
51899            )?;
51900        Ok(_response.map(|x| x))
51901    }
51902
51903    /// Retrieves the local socket address.
51904    pub fn r#get_sock_name(
51905        &self,
51906        ___deadline: zx::MonotonicInstant,
51907    ) -> Result<BaseNetworkSocketGetSockNameResult, fidl::Error> {
51908        let _response =
51909            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51910                BaseNetworkSocketGetSockNameResponse,
51911                fidl_fuchsia_posix::Errno,
51912            >, StreamSocketMarker>(
51913                (),
51914                0x475f23f84a1a4f85,
51915                fidl::encoding::DynamicFlags::empty(),
51916                ___deadline,
51917            )?;
51918        Ok(_response.map(|x| x.addr))
51919    }
51920
51921    /// Retrieves the remote socket address.
51922    pub fn r#get_peer_name(
51923        &self,
51924        ___deadline: zx::MonotonicInstant,
51925    ) -> Result<BaseNetworkSocketGetPeerNameResult, fidl::Error> {
51926        let _response =
51927            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51928                BaseNetworkSocketGetPeerNameResponse,
51929                fidl_fuchsia_posix::Errno,
51930            >, StreamSocketMarker>(
51931                (),
51932                0x1ffecf4bd5b6432e,
51933                fidl::encoding::DynamicFlags::empty(),
51934                ___deadline,
51935            )?;
51936        Ok(_response.map(|x| x.addr))
51937    }
51938
51939    /// Shuts down part of the socket.
51940    pub fn r#shutdown(
51941        &self,
51942        mut mode: ShutdownMode,
51943        ___deadline: zx::MonotonicInstant,
51944    ) -> Result<BaseNetworkSocketShutdownResult, fidl::Error> {
51945        let _response =
51946            self.client.send_query::<BaseNetworkSocketShutdownRequest, fidl::encoding::ResultType<
51947                fidl::encoding::EmptyStruct,
51948                fidl_fuchsia_posix::Errno,
51949            >, StreamSocketMarker>(
51950                (mode,),
51951                0x247f38b6db68c336,
51952                fidl::encoding::DynamicFlags::empty(),
51953                ___deadline,
51954            )?;
51955        Ok(_response.map(|x| x))
51956    }
51957
51958    /// Set `SOL_IP` -> `IP_TOS`.
51959    pub fn r#set_ip_type_of_service(
51960        &self,
51961        mut value: u8,
51962        ___deadline: zx::MonotonicInstant,
51963    ) -> Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error> {
51964        let _response = self.client.send_query::<
51965            BaseNetworkSocketSetIpTypeOfServiceRequest,
51966            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
51967            StreamSocketMarker,
51968        >(
51969            (value,),
51970            0x995c600475b6d46,
51971            fidl::encoding::DynamicFlags::empty(),
51972            ___deadline,
51973        )?;
51974        Ok(_response.map(|x| x))
51975    }
51976
51977    /// Get `SOL_IP` -> `IP_TOS`.
51978    pub fn r#get_ip_type_of_service(
51979        &self,
51980        ___deadline: zx::MonotonicInstant,
51981    ) -> Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error> {
51982        let _response =
51983            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51984                BaseNetworkSocketGetIpTypeOfServiceResponse,
51985                fidl_fuchsia_posix::Errno,
51986            >, StreamSocketMarker>(
51987                (),
51988                0x3814a04259f75fcb,
51989                fidl::encoding::DynamicFlags::empty(),
51990                ___deadline,
51991            )?;
51992        Ok(_response.map(|x| x.value))
51993    }
51994
51995    /// Set `SOL_IP` -> `IP_TTL`.
51996    pub fn r#set_ip_ttl(
51997        &self,
51998        mut value: &OptionalUint8,
51999        ___deadline: zx::MonotonicInstant,
52000    ) -> Result<BaseNetworkSocketSetIpTtlResult, fidl::Error> {
52001        let _response =
52002            self.client.send_query::<BaseNetworkSocketSetIpTtlRequest, fidl::encoding::ResultType<
52003                fidl::encoding::EmptyStruct,
52004                fidl_fuchsia_posix::Errno,
52005            >, StreamSocketMarker>(
52006                (value,),
52007                0x29e2424b433ae1ef,
52008                fidl::encoding::DynamicFlags::empty(),
52009                ___deadline,
52010            )?;
52011        Ok(_response.map(|x| x))
52012    }
52013
52014    /// Get `SOL_IP` -> `IP_TTL`.
52015    pub fn r#get_ip_ttl(
52016        &self,
52017        ___deadline: zx::MonotonicInstant,
52018    ) -> Result<BaseNetworkSocketGetIpTtlResult, fidl::Error> {
52019        let _response =
52020            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52021                BaseNetworkSocketGetIpTtlResponse,
52022                fidl_fuchsia_posix::Errno,
52023            >, StreamSocketMarker>(
52024                (),
52025                0x47e47fa1f24da471,
52026                fidl::encoding::DynamicFlags::empty(),
52027                ___deadline,
52028            )?;
52029        Ok(_response.map(|x| x.value))
52030    }
52031
52032    /// Set `SOL_IP` -> `IP_PKTINFO`.
52033    pub fn r#set_ip_packet_info(
52034        &self,
52035        mut value: bool,
52036        ___deadline: zx::MonotonicInstant,
52037    ) -> Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error> {
52038        let _response =
52039            self.client
52040                .send_query::<BaseNetworkSocketSetIpPacketInfoRequest, fidl::encoding::ResultType<
52041                    fidl::encoding::EmptyStruct,
52042                    fidl_fuchsia_posix::Errno,
52043                >, StreamSocketMarker>(
52044                    (value,),
52045                    0x392d16bee20c0e16,
52046                    fidl::encoding::DynamicFlags::empty(),
52047                    ___deadline,
52048                )?;
52049        Ok(_response.map(|x| x))
52050    }
52051
52052    /// Get `SOL_IP` -> `IP_PKTINFO`.
52053    pub fn r#get_ip_packet_info(
52054        &self,
52055        ___deadline: zx::MonotonicInstant,
52056    ) -> Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error> {
52057        let _response =
52058            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52059                BaseNetworkSocketGetIpPacketInfoResponse,
52060                fidl_fuchsia_posix::Errno,
52061            >, StreamSocketMarker>(
52062                (),
52063                0x54b505f242280740,
52064                fidl::encoding::DynamicFlags::empty(),
52065                ___deadline,
52066            )?;
52067        Ok(_response.map(|x| x.value))
52068    }
52069
52070    /// Set `SOL_IP` -> `IP_RECVTOS`.
52071    pub fn r#set_ip_receive_type_of_service(
52072        &self,
52073        mut value: bool,
52074        ___deadline: zx::MonotonicInstant,
52075    ) -> Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error> {
52076        let _response = self.client.send_query::<
52077            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
52078            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
52079            StreamSocketMarker,
52080        >(
52081            (value,),
52082            0x6c4f6714995f84ef,
52083            fidl::encoding::DynamicFlags::empty(),
52084            ___deadline,
52085        )?;
52086        Ok(_response.map(|x| x))
52087    }
52088
52089    /// Get `SOL_IP` -> `IP_RECVTOS`.
52090    pub fn r#get_ip_receive_type_of_service(
52091        &self,
52092        ___deadline: zx::MonotonicInstant,
52093    ) -> Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error> {
52094        let _response =
52095            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52096                BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
52097                fidl_fuchsia_posix::Errno,
52098            >, StreamSocketMarker>(
52099                (),
52100                0x4158ba7dc2795960,
52101                fidl::encoding::DynamicFlags::empty(),
52102                ___deadline,
52103            )?;
52104        Ok(_response.map(|x| x.value))
52105    }
52106
52107    /// Set `SOL_IP` -> `IP_RECVTTL`.
52108    pub fn r#set_ip_receive_ttl(
52109        &self,
52110        mut value: bool,
52111        ___deadline: zx::MonotonicInstant,
52112    ) -> Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error> {
52113        let _response =
52114            self.client
52115                .send_query::<BaseNetworkSocketSetIpReceiveTtlRequest, fidl::encoding::ResultType<
52116                    fidl::encoding::EmptyStruct,
52117                    fidl_fuchsia_posix::Errno,
52118                >, StreamSocketMarker>(
52119                    (value,),
52120                    0x46f15be0ce0ab82b,
52121                    fidl::encoding::DynamicFlags::empty(),
52122                    ___deadline,
52123                )?;
52124        Ok(_response.map(|x| x))
52125    }
52126
52127    /// Get `SOL_IP` -> `IP_RECVTTL`.
52128    pub fn r#get_ip_receive_ttl(
52129        &self,
52130        ___deadline: zx::MonotonicInstant,
52131    ) -> Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error> {
52132        let _response =
52133            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52134                BaseNetworkSocketGetIpReceiveTtlResponse,
52135                fidl_fuchsia_posix::Errno,
52136            >, StreamSocketMarker>(
52137                (),
52138                0x678ddd5a5dfa2eb5,
52139                fidl::encoding::DynamicFlags::empty(),
52140                ___deadline,
52141            )?;
52142        Ok(_response.map(|x| x.value))
52143    }
52144
52145    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
52146    pub fn r#set_ip_multicast_interface(
52147        &self,
52148        mut iface: u64,
52149        mut address: &fidl_fuchsia_net::Ipv4Address,
52150        ___deadline: zx::MonotonicInstant,
52151    ) -> Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error> {
52152        let _response = self.client.send_query::<
52153            BaseNetworkSocketSetIpMulticastInterfaceRequest,
52154            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
52155            StreamSocketMarker,
52156        >(
52157            (iface, address,),
52158            0x752fbfa9b12befe,
52159            fidl::encoding::DynamicFlags::empty(),
52160            ___deadline,
52161        )?;
52162        Ok(_response.map(|x| x))
52163    }
52164
52165    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
52166    pub fn r#get_ip_multicast_interface(
52167        &self,
52168        ___deadline: zx::MonotonicInstant,
52169    ) -> Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error> {
52170        let _response =
52171            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52172                BaseNetworkSocketGetIpMulticastInterfaceResponse,
52173                fidl_fuchsia_posix::Errno,
52174            >, StreamSocketMarker>(
52175                (),
52176                0x320bd14c4df046c4,
52177                fidl::encoding::DynamicFlags::empty(),
52178                ___deadline,
52179            )?;
52180        Ok(_response.map(|x| x.value))
52181    }
52182
52183    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
52184    pub fn r#set_ip_multicast_ttl(
52185        &self,
52186        mut value: &OptionalUint8,
52187        ___deadline: zx::MonotonicInstant,
52188    ) -> Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error> {
52189        let _response =
52190            self.client
52191                .send_query::<BaseNetworkSocketSetIpMulticastTtlRequest, fidl::encoding::ResultType<
52192                    fidl::encoding::EmptyStruct,
52193                    fidl_fuchsia_posix::Errno,
52194                >, StreamSocketMarker>(
52195                    (value,),
52196                    0x63134d53772916a1,
52197                    fidl::encoding::DynamicFlags::empty(),
52198                    ___deadline,
52199                )?;
52200        Ok(_response.map(|x| x))
52201    }
52202
52203    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
52204    pub fn r#get_ip_multicast_ttl(
52205        &self,
52206        ___deadline: zx::MonotonicInstant,
52207    ) -> Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error> {
52208        let _response =
52209            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52210                BaseNetworkSocketGetIpMulticastTtlResponse,
52211                fidl_fuchsia_posix::Errno,
52212            >, StreamSocketMarker>(
52213                (),
52214                0x4665cd378f39e1a,
52215                fidl::encoding::DynamicFlags::empty(),
52216                ___deadline,
52217            )?;
52218        Ok(_response.map(|x| x.value))
52219    }
52220
52221    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
52222    pub fn r#set_ip_multicast_loopback(
52223        &self,
52224        mut value: bool,
52225        ___deadline: zx::MonotonicInstant,
52226    ) -> Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error> {
52227        let _response = self.client.send_query::<
52228            BaseNetworkSocketSetIpMulticastLoopbackRequest,
52229            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
52230            StreamSocketMarker,
52231        >(
52232            (value,),
52233            0x20c55c11f00943ea,
52234            fidl::encoding::DynamicFlags::empty(),
52235            ___deadline,
52236        )?;
52237        Ok(_response.map(|x| x))
52238    }
52239
52240    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
52241    pub fn r#get_ip_multicast_loopback(
52242        &self,
52243        ___deadline: zx::MonotonicInstant,
52244    ) -> Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error> {
52245        let _response =
52246            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52247                BaseNetworkSocketGetIpMulticastLoopbackResponse,
52248                fidl_fuchsia_posix::Errno,
52249            >, StreamSocketMarker>(
52250                (),
52251                0x3b6b26ff558298f2,
52252                fidl::encoding::DynamicFlags::empty(),
52253                ___deadline,
52254            )?;
52255        Ok(_response.map(|x| x.value))
52256    }
52257
52258    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
52259    pub fn r#add_ip_membership(
52260        &self,
52261        mut membership: &IpMulticastMembership,
52262        ___deadline: zx::MonotonicInstant,
52263    ) -> Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error> {
52264        let _response =
52265            self.client
52266                .send_query::<BaseNetworkSocketAddIpMembershipRequest, fidl::encoding::ResultType<
52267                    fidl::encoding::EmptyStruct,
52268                    fidl_fuchsia_posix::Errno,
52269                >, StreamSocketMarker>(
52270                    (membership,),
52271                    0x76bc7df115a3b4d0,
52272                    fidl::encoding::DynamicFlags::empty(),
52273                    ___deadline,
52274                )?;
52275        Ok(_response.map(|x| x))
52276    }
52277
52278    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
52279    pub fn r#drop_ip_membership(
52280        &self,
52281        mut membership: &IpMulticastMembership,
52282        ___deadline: zx::MonotonicInstant,
52283    ) -> Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error> {
52284        let _response =
52285            self.client
52286                .send_query::<BaseNetworkSocketDropIpMembershipRequest, fidl::encoding::ResultType<
52287                    fidl::encoding::EmptyStruct,
52288                    fidl_fuchsia_posix::Errno,
52289                >, StreamSocketMarker>(
52290                    (membership,),
52291                    0x2888f3099188d03,
52292                    fidl::encoding::DynamicFlags::empty(),
52293                    ___deadline,
52294                )?;
52295        Ok(_response.map(|x| x))
52296    }
52297
52298    /// Set `SOL_IP` -> `IP_TRANSPARENT`
52299    pub fn r#set_ip_transparent(
52300        &self,
52301        mut value: bool,
52302        ___deadline: zx::MonotonicInstant,
52303    ) -> Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error> {
52304        let _response =
52305            self.client
52306                .send_query::<BaseNetworkSocketSetIpTransparentRequest, fidl::encoding::ResultType<
52307                    fidl::encoding::EmptyStruct,
52308                    fidl_fuchsia_posix::Errno,
52309                >, StreamSocketMarker>(
52310                    (value,),
52311                    0x1ae532b0c066e3a0,
52312                    fidl::encoding::DynamicFlags::empty(),
52313                    ___deadline,
52314                )?;
52315        Ok(_response.map(|x| x))
52316    }
52317
52318    /// Get `SOL_IP` -> `IP_TRANSPARENT`
52319    pub fn r#get_ip_transparent(
52320        &self,
52321        ___deadline: zx::MonotonicInstant,
52322    ) -> Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error> {
52323        let _response =
52324            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52325                BaseNetworkSocketGetIpTransparentResponse,
52326                fidl_fuchsia_posix::Errno,
52327            >, StreamSocketMarker>(
52328                (),
52329                0x51d43695962ebfb5,
52330                fidl::encoding::DynamicFlags::empty(),
52331                ___deadline,
52332            )?;
52333        Ok(_response.map(|x| x.value))
52334    }
52335
52336    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
52337    pub fn r#set_ip_receive_original_destination_address(
52338        &self,
52339        mut value: bool,
52340        ___deadline: zx::MonotonicInstant,
52341    ) -> Result<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult, fidl::Error> {
52342        let _response = self.client.send_query::<
52343            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
52344            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
52345            StreamSocketMarker,
52346        >(
52347            (value,),
52348            0x4722b4ce52f7840,
52349            fidl::encoding::DynamicFlags::empty(),
52350            ___deadline,
52351        )?;
52352        Ok(_response.map(|x| x))
52353    }
52354
52355    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
52356    pub fn r#get_ip_receive_original_destination_address(
52357        &self,
52358        ___deadline: zx::MonotonicInstant,
52359    ) -> Result<BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult, fidl::Error> {
52360        let _response =
52361            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52362                BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
52363                fidl_fuchsia_posix::Errno,
52364            >, StreamSocketMarker>(
52365                (),
52366                0x2a0e7dc5d6bfdfe9,
52367                fidl::encoding::DynamicFlags::empty(),
52368                ___deadline,
52369            )?;
52370        Ok(_response.map(|x| x.value))
52371    }
52372
52373    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
52374    pub fn r#add_ipv6_membership(
52375        &self,
52376        mut membership: &Ipv6MulticastMembership,
52377        ___deadline: zx::MonotonicInstant,
52378    ) -> Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error> {
52379        let _response =
52380            self.client
52381                .send_query::<BaseNetworkSocketAddIpv6MembershipRequest, fidl::encoding::ResultType<
52382                    fidl::encoding::EmptyStruct,
52383                    fidl_fuchsia_posix::Errno,
52384                >, StreamSocketMarker>(
52385                    (membership,),
52386                    0x7c94727acb4ea4b3,
52387                    fidl::encoding::DynamicFlags::empty(),
52388                    ___deadline,
52389                )?;
52390        Ok(_response.map(|x| x))
52391    }
52392
52393    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
52394    pub fn r#drop_ipv6_membership(
52395        &self,
52396        mut membership: &Ipv6MulticastMembership,
52397        ___deadline: zx::MonotonicInstant,
52398    ) -> Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error> {
52399        let _response = self.client.send_query::<
52400            BaseNetworkSocketDropIpv6MembershipRequest,
52401            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
52402            StreamSocketMarker,
52403        >(
52404            (membership,),
52405            0x42104c70ccaba304,
52406            fidl::encoding::DynamicFlags::empty(),
52407            ___deadline,
52408        )?;
52409        Ok(_response.map(|x| x))
52410    }
52411
52412    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
52413    pub fn r#set_ipv6_multicast_interface(
52414        &self,
52415        mut value: u64,
52416        ___deadline: zx::MonotonicInstant,
52417    ) -> Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error> {
52418        let _response = self.client.send_query::<
52419            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
52420            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
52421            StreamSocketMarker,
52422        >(
52423            (value,),
52424            0x135f76db3774ab3b,
52425            fidl::encoding::DynamicFlags::empty(),
52426            ___deadline,
52427        )?;
52428        Ok(_response.map(|x| x))
52429    }
52430
52431    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
52432    pub fn r#get_ipv6_multicast_interface(
52433        &self,
52434        ___deadline: zx::MonotonicInstant,
52435    ) -> Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error> {
52436        let _response =
52437            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52438                BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
52439                fidl_fuchsia_posix::Errno,
52440            >, StreamSocketMarker>(
52441                (),
52442                0x1f26fcdd348f1882,
52443                fidl::encoding::DynamicFlags::empty(),
52444                ___deadline,
52445            )?;
52446        Ok(_response.map(|x| x.value))
52447    }
52448
52449    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
52450    pub fn r#set_ipv6_unicast_hops(
52451        &self,
52452        mut value: &OptionalUint8,
52453        ___deadline: zx::MonotonicInstant,
52454    ) -> Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error> {
52455        let _response = self.client.send_query::<
52456            BaseNetworkSocketSetIpv6UnicastHopsRequest,
52457            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
52458            StreamSocketMarker,
52459        >(
52460            (value,),
52461            0x157d51e98f462859,
52462            fidl::encoding::DynamicFlags::empty(),
52463            ___deadline,
52464        )?;
52465        Ok(_response.map(|x| x))
52466    }
52467
52468    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
52469    pub fn r#get_ipv6_unicast_hops(
52470        &self,
52471        ___deadline: zx::MonotonicInstant,
52472    ) -> Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error> {
52473        let _response =
52474            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52475                BaseNetworkSocketGetIpv6UnicastHopsResponse,
52476                fidl_fuchsia_posix::Errno,
52477            >, StreamSocketMarker>(
52478                (),
52479                0x21f4641cad8bd8d2,
52480                fidl::encoding::DynamicFlags::empty(),
52481                ___deadline,
52482            )?;
52483        Ok(_response.map(|x| x.value))
52484    }
52485
52486    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
52487    pub fn r#set_ipv6_receive_hop_limit(
52488        &self,
52489        mut value: bool,
52490        ___deadline: zx::MonotonicInstant,
52491    ) -> Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error> {
52492        let _response = self.client.send_query::<
52493            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
52494            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
52495            StreamSocketMarker,
52496        >(
52497            (value,),
52498            0x5c24808ed2e84a1e,
52499            fidl::encoding::DynamicFlags::empty(),
52500            ___deadline,
52501        )?;
52502        Ok(_response.map(|x| x))
52503    }
52504
52505    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
52506    pub fn r#get_ipv6_receive_hop_limit(
52507        &self,
52508        ___deadline: zx::MonotonicInstant,
52509    ) -> Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error> {
52510        let _response =
52511            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52512                BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
52513                fidl_fuchsia_posix::Errno,
52514            >, StreamSocketMarker>(
52515                (),
52516                0x341e06689885b4c0,
52517                fidl::encoding::DynamicFlags::empty(),
52518                ___deadline,
52519            )?;
52520        Ok(_response.map(|x| x.value))
52521    }
52522
52523    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
52524    pub fn r#set_ipv6_multicast_hops(
52525        &self,
52526        mut value: &OptionalUint8,
52527        ___deadline: zx::MonotonicInstant,
52528    ) -> Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error> {
52529        let _response = self.client.send_query::<
52530            BaseNetworkSocketSetIpv6MulticastHopsRequest,
52531            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
52532            StreamSocketMarker,
52533        >(
52534            (value,),
52535            0x25b9cd4d181f82c1,
52536            fidl::encoding::DynamicFlags::empty(),
52537            ___deadline,
52538        )?;
52539        Ok(_response.map(|x| x))
52540    }
52541
52542    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
52543    pub fn r#get_ipv6_multicast_hops(
52544        &self,
52545        ___deadline: zx::MonotonicInstant,
52546    ) -> Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error> {
52547        let _response =
52548            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52549                BaseNetworkSocketGetIpv6MulticastHopsResponse,
52550                fidl_fuchsia_posix::Errno,
52551            >, StreamSocketMarker>(
52552                (),
52553                0x52916948a365012a,
52554                fidl::encoding::DynamicFlags::empty(),
52555                ___deadline,
52556            )?;
52557        Ok(_response.map(|x| x.value))
52558    }
52559
52560    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
52561    pub fn r#set_ipv6_multicast_loopback(
52562        &self,
52563        mut value: bool,
52564        ___deadline: zx::MonotonicInstant,
52565    ) -> Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error> {
52566        let _response = self.client.send_query::<
52567            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
52568            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
52569            StreamSocketMarker,
52570        >(
52571            (value,),
52572            0x55701c409ff41b40,
52573            fidl::encoding::DynamicFlags::empty(),
52574            ___deadline,
52575        )?;
52576        Ok(_response.map(|x| x))
52577    }
52578
52579    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
52580    pub fn r#get_ipv6_multicast_loopback(
52581        &self,
52582        ___deadline: zx::MonotonicInstant,
52583    ) -> Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error> {
52584        let _response =
52585            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52586                BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
52587                fidl_fuchsia_posix::Errno,
52588            >, StreamSocketMarker>(
52589                (),
52590                0x4415b701fde319c3,
52591                fidl::encoding::DynamicFlags::empty(),
52592                ___deadline,
52593            )?;
52594        Ok(_response.map(|x| x.value))
52595    }
52596
52597    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
52598    pub fn r#set_ipv6_only(
52599        &self,
52600        mut value: bool,
52601        ___deadline: zx::MonotonicInstant,
52602    ) -> Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error> {
52603        let _response =
52604            self.client
52605                .send_query::<BaseNetworkSocketSetIpv6OnlyRequest, fidl::encoding::ResultType<
52606                    fidl::encoding::EmptyStruct,
52607                    fidl_fuchsia_posix::Errno,
52608                >, StreamSocketMarker>(
52609                    (value,),
52610                    0x4873f1364758cbba,
52611                    fidl::encoding::DynamicFlags::empty(),
52612                    ___deadline,
52613                )?;
52614        Ok(_response.map(|x| x))
52615    }
52616
52617    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
52618    pub fn r#get_ipv6_only(
52619        &self,
52620        ___deadline: zx::MonotonicInstant,
52621    ) -> Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error> {
52622        let _response =
52623            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52624                BaseNetworkSocketGetIpv6OnlyResponse,
52625                fidl_fuchsia_posix::Errno,
52626            >, StreamSocketMarker>(
52627                (),
52628                0x4aa3340a1a26b89c,
52629                fidl::encoding::DynamicFlags::empty(),
52630                ___deadline,
52631            )?;
52632        Ok(_response.map(|x| x.value))
52633    }
52634
52635    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
52636    pub fn r#set_ipv6_receive_traffic_class(
52637        &self,
52638        mut value: bool,
52639        ___deadline: zx::MonotonicInstant,
52640    ) -> Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error> {
52641        let _response = self.client.send_query::<
52642            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
52643            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
52644            StreamSocketMarker,
52645        >(
52646            (value,),
52647            0x58f07c8788d099a0,
52648            fidl::encoding::DynamicFlags::empty(),
52649            ___deadline,
52650        )?;
52651        Ok(_response.map(|x| x))
52652    }
52653
52654    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
52655    pub fn r#get_ipv6_receive_traffic_class(
52656        &self,
52657        ___deadline: zx::MonotonicInstant,
52658    ) -> Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error> {
52659        let _response =
52660            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52661                BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
52662                fidl_fuchsia_posix::Errno,
52663            >, StreamSocketMarker>(
52664                (),
52665                0x2e334df1da553ffa,
52666                fidl::encoding::DynamicFlags::empty(),
52667                ___deadline,
52668            )?;
52669        Ok(_response.map(|x| x.value))
52670    }
52671
52672    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
52673    pub fn r#set_ipv6_traffic_class(
52674        &self,
52675        mut value: &OptionalUint8,
52676        ___deadline: zx::MonotonicInstant,
52677    ) -> Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error> {
52678        let _response = self.client.send_query::<
52679            BaseNetworkSocketSetIpv6TrafficClassRequest,
52680            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
52681            StreamSocketMarker,
52682        >(
52683            (value,),
52684            0x6af077800c5a0b4f,
52685            fidl::encoding::DynamicFlags::empty(),
52686            ___deadline,
52687        )?;
52688        Ok(_response.map(|x| x))
52689    }
52690
52691    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
52692    pub fn r#get_ipv6_traffic_class(
52693        &self,
52694        ___deadline: zx::MonotonicInstant,
52695    ) -> Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error> {
52696        let _response =
52697            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52698                BaseNetworkSocketGetIpv6TrafficClassResponse,
52699                fidl_fuchsia_posix::Errno,
52700            >, StreamSocketMarker>(
52701                (),
52702                0x6baf6eed8fc2f04,
52703                fidl::encoding::DynamicFlags::empty(),
52704                ___deadline,
52705            )?;
52706        Ok(_response.map(|x| x.value))
52707    }
52708
52709    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
52710    pub fn r#set_ipv6_receive_packet_info(
52711        &self,
52712        mut value: bool,
52713        ___deadline: zx::MonotonicInstant,
52714    ) -> Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error> {
52715        let _response = self.client.send_query::<
52716            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
52717            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
52718            StreamSocketMarker,
52719        >(
52720            (value,),
52721            0x19259775b1a92768,
52722            fidl::encoding::DynamicFlags::empty(),
52723            ___deadline,
52724        )?;
52725        Ok(_response.map(|x| x))
52726    }
52727
52728    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
52729    pub fn r#get_ipv6_receive_packet_info(
52730        &self,
52731        ___deadline: zx::MonotonicInstant,
52732    ) -> Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error> {
52733        let _response =
52734            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52735                BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
52736                fidl_fuchsia_posix::Errno,
52737            >, StreamSocketMarker>(
52738                (),
52739                0x7acd4a2775baec75,
52740                fidl::encoding::DynamicFlags::empty(),
52741                ___deadline,
52742            )?;
52743        Ok(_response.map(|x| x.value))
52744    }
52745
52746    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
52747    pub fn r#get_original_destination(
52748        &self,
52749        ___deadline: zx::MonotonicInstant,
52750    ) -> Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error> {
52751        let _response =
52752            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52753                BaseNetworkSocketGetOriginalDestinationResponse,
52754                fidl_fuchsia_posix::Errno,
52755            >, StreamSocketMarker>(
52756                (),
52757                0x38bf28f0dafdbac0,
52758                fidl::encoding::DynamicFlags::empty(),
52759                ___deadline,
52760            )?;
52761        Ok(_response.map(|x| x.value))
52762    }
52763
52764    pub fn r#describe(
52765        &self,
52766        ___deadline: zx::MonotonicInstant,
52767    ) -> Result<StreamSocketDescribeResponse, fidl::Error> {
52768        let _response = self.client.send_query::<
52769            fidl::encoding::EmptyPayload,
52770            StreamSocketDescribeResponse,
52771            StreamSocketMarker,
52772        >(
52773            (),
52774            0x29e22969a7dadc32,
52775            fidl::encoding::DynamicFlags::empty(),
52776            ___deadline,
52777        )?;
52778        Ok(_response)
52779    }
52780
52781    /// Begins listening for new incoming connections. At most `backlog`
52782    /// connections will be buffered.
52783    pub fn r#listen(
52784        &self,
52785        mut backlog: i16,
52786        ___deadline: zx::MonotonicInstant,
52787    ) -> Result<StreamSocketListenResult, fidl::Error> {
52788        let _response =
52789            self.client.send_query::<StreamSocketListenRequest, fidl::encoding::ResultType<
52790                fidl::encoding::EmptyStruct,
52791                fidl_fuchsia_posix::Errno,
52792            >, StreamSocketMarker>(
52793                (backlog,),
52794                0x3d0a65ced3d10108,
52795                fidl::encoding::DynamicFlags::empty(),
52796                ___deadline,
52797            )?;
52798        Ok(_response.map(|x| x))
52799    }
52800
52801    /// Accepts a buffered incoming connection.
52802    pub fn r#accept(
52803        &self,
52804        mut want_addr: bool,
52805        ___deadline: zx::MonotonicInstant,
52806    ) -> Result<StreamSocketAcceptResult, fidl::Error> {
52807        let _response =
52808            self.client.send_query::<StreamSocketAcceptRequest, fidl::encoding::ResultType<
52809                StreamSocketAcceptResponse,
52810                fidl_fuchsia_posix::Errno,
52811            >, StreamSocketMarker>(
52812                (want_addr,),
52813                0x5ab7ad620424c163,
52814                fidl::encoding::DynamicFlags::empty(),
52815                ___deadline,
52816            )?;
52817        Ok(_response.map(|x| (x.addr, x.s)))
52818    }
52819
52820    /// Retrieves creation information from the socket.
52821    pub fn r#get_info(
52822        &self,
52823        ___deadline: zx::MonotonicInstant,
52824    ) -> Result<StreamSocketGetInfoResult, fidl::Error> {
52825        let _response =
52826            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52827                StreamSocketGetInfoResponse,
52828                fidl_fuchsia_posix::Errno,
52829            >, StreamSocketMarker>(
52830                (),
52831                0x87cfa55d19f878f,
52832                fidl::encoding::DynamicFlags::empty(),
52833                ___deadline,
52834            )?;
52835        Ok(_response.map(|x| (x.domain, x.proto)))
52836    }
52837
52838    /// Set `SOL_TCP` -> `TCP_NODELAY`.
52839    pub fn r#set_tcp_no_delay(
52840        &self,
52841        mut value: bool,
52842        ___deadline: zx::MonotonicInstant,
52843    ) -> Result<StreamSocketSetTcpNoDelayResult, fidl::Error> {
52844        let _response =
52845            self.client.send_query::<StreamSocketSetTcpNoDelayRequest, fidl::encoding::ResultType<
52846                fidl::encoding::EmptyStruct,
52847                fidl_fuchsia_posix::Errno,
52848            >, StreamSocketMarker>(
52849                (value,),
52850                0x5a59b778f7333ada,
52851                fidl::encoding::DynamicFlags::empty(),
52852                ___deadline,
52853            )?;
52854        Ok(_response.map(|x| x))
52855    }
52856
52857    /// Get `SOL_TCP` -> `TCP_NODELAY`.
52858    pub fn r#get_tcp_no_delay(
52859        &self,
52860        ___deadline: zx::MonotonicInstant,
52861    ) -> Result<StreamSocketGetTcpNoDelayResult, fidl::Error> {
52862        let _response =
52863            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52864                StreamSocketGetTcpNoDelayResponse,
52865                fidl_fuchsia_posix::Errno,
52866            >, StreamSocketMarker>(
52867                (),
52868                0xac219a3218b0799,
52869                fidl::encoding::DynamicFlags::empty(),
52870                ___deadline,
52871            )?;
52872        Ok(_response.map(|x| x.value))
52873    }
52874
52875    /// Set `SOL_TCP` -> `TCP_MAXSEG`.
52876    pub fn r#set_tcp_max_segment(
52877        &self,
52878        mut value_bytes: u32,
52879        ___deadline: zx::MonotonicInstant,
52880    ) -> Result<StreamSocketSetTcpMaxSegmentResult, fidl::Error> {
52881        let _response =
52882            self.client
52883                .send_query::<StreamSocketSetTcpMaxSegmentRequest, fidl::encoding::ResultType<
52884                    fidl::encoding::EmptyStruct,
52885                    fidl_fuchsia_posix::Errno,
52886                >, StreamSocketMarker>(
52887                    (value_bytes,),
52888                    0xb3d30c498266d18,
52889                    fidl::encoding::DynamicFlags::empty(),
52890                    ___deadline,
52891                )?;
52892        Ok(_response.map(|x| x))
52893    }
52894
52895    /// Get `SOL_TCP` -> `TCP_MAXSEG`.
52896    pub fn r#get_tcp_max_segment(
52897        &self,
52898        ___deadline: zx::MonotonicInstant,
52899    ) -> Result<StreamSocketGetTcpMaxSegmentResult, fidl::Error> {
52900        let _response =
52901            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52902                StreamSocketGetTcpMaxSegmentResponse,
52903                fidl_fuchsia_posix::Errno,
52904            >, StreamSocketMarker>(
52905                (),
52906                0x637404d1b4b9982c,
52907                fidl::encoding::DynamicFlags::empty(),
52908                ___deadline,
52909            )?;
52910        Ok(_response.map(|x| x.value_bytes))
52911    }
52912
52913    /// Set `SOL_TCP` -> `TCP_CORK`.
52914    pub fn r#set_tcp_cork(
52915        &self,
52916        mut value: bool,
52917        ___deadline: zx::MonotonicInstant,
52918    ) -> Result<StreamSocketSetTcpCorkResult, fidl::Error> {
52919        let _response =
52920            self.client.send_query::<StreamSocketSetTcpCorkRequest, fidl::encoding::ResultType<
52921                fidl::encoding::EmptyStruct,
52922                fidl_fuchsia_posix::Errno,
52923            >, StreamSocketMarker>(
52924                (value,),
52925                0x62e26891541143a0,
52926                fidl::encoding::DynamicFlags::empty(),
52927                ___deadline,
52928            )?;
52929        Ok(_response.map(|x| x))
52930    }
52931
52932    /// Get `SOL_TCP` -> `TCP_CORK`.
52933    pub fn r#get_tcp_cork(
52934        &self,
52935        ___deadline: zx::MonotonicInstant,
52936    ) -> Result<StreamSocketGetTcpCorkResult, fidl::Error> {
52937        let _response =
52938            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52939                StreamSocketGetTcpCorkResponse,
52940                fidl_fuchsia_posix::Errno,
52941            >, StreamSocketMarker>(
52942                (),
52943                0x435bb232e0e74f32,
52944                fidl::encoding::DynamicFlags::empty(),
52945                ___deadline,
52946            )?;
52947        Ok(_response.map(|x| x.value))
52948    }
52949
52950    /// Set `SOL_TCP` -> `TCP_KEEPIDLE`.
52951    pub fn r#set_tcp_keep_alive_idle(
52952        &self,
52953        mut value_secs: u32,
52954        ___deadline: zx::MonotonicInstant,
52955    ) -> Result<StreamSocketSetTcpKeepAliveIdleResult, fidl::Error> {
52956        let _response =
52957            self.client
52958                .send_query::<StreamSocketSetTcpKeepAliveIdleRequest, fidl::encoding::ResultType<
52959                    fidl::encoding::EmptyStruct,
52960                    fidl_fuchsia_posix::Errno,
52961                >, StreamSocketMarker>(
52962                    (value_secs,),
52963                    0x196d053d8363c42,
52964                    fidl::encoding::DynamicFlags::empty(),
52965                    ___deadline,
52966                )?;
52967        Ok(_response.map(|x| x))
52968    }
52969
52970    /// Get `SOL_TCP` -> `TCP_KEEPIDLE`.
52971    pub fn r#get_tcp_keep_alive_idle(
52972        &self,
52973        ___deadline: zx::MonotonicInstant,
52974    ) -> Result<StreamSocketGetTcpKeepAliveIdleResult, fidl::Error> {
52975        let _response =
52976            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52977                StreamSocketGetTcpKeepAliveIdleResponse,
52978                fidl_fuchsia_posix::Errno,
52979            >, StreamSocketMarker>(
52980                (),
52981                0x35ec58564879dac,
52982                fidl::encoding::DynamicFlags::empty(),
52983                ___deadline,
52984            )?;
52985        Ok(_response.map(|x| x.value_secs))
52986    }
52987
52988    /// Set `SOL_TCP` -> `TCP_KEEPINTVL`.
52989    pub fn r#set_tcp_keep_alive_interval(
52990        &self,
52991        mut value_secs: u32,
52992        ___deadline: zx::MonotonicInstant,
52993    ) -> Result<StreamSocketSetTcpKeepAliveIntervalResult, fidl::Error> {
52994        let _response = self.client.send_query::<
52995            StreamSocketSetTcpKeepAliveIntervalRequest,
52996            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
52997            StreamSocketMarker,
52998        >(
52999            (value_secs,),
53000            0x485ffbc2da1243f2,
53001            fidl::encoding::DynamicFlags::empty(),
53002            ___deadline,
53003        )?;
53004        Ok(_response.map(|x| x))
53005    }
53006
53007    /// Get `SOL_TCP` -> `TCP_KEEPINTVL`.
53008    pub fn r#get_tcp_keep_alive_interval(
53009        &self,
53010        ___deadline: zx::MonotonicInstant,
53011    ) -> Result<StreamSocketGetTcpKeepAliveIntervalResult, fidl::Error> {
53012        let _response =
53013            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
53014                StreamSocketGetTcpKeepAliveIntervalResponse,
53015                fidl_fuchsia_posix::Errno,
53016            >, StreamSocketMarker>(
53017                (),
53018                0x264eaf46306b284,
53019                fidl::encoding::DynamicFlags::empty(),
53020                ___deadline,
53021            )?;
53022        Ok(_response.map(|x| x.value_secs))
53023    }
53024
53025    /// Set `SOL_TCP` -> `TCP_KEEPCNT`.
53026    pub fn r#set_tcp_keep_alive_count(
53027        &self,
53028        mut value: u32,
53029        ___deadline: zx::MonotonicInstant,
53030    ) -> Result<StreamSocketSetTcpKeepAliveCountResult, fidl::Error> {
53031        let _response =
53032            self.client
53033                .send_query::<StreamSocketSetTcpKeepAliveCountRequest, fidl::encoding::ResultType<
53034                    fidl::encoding::EmptyStruct,
53035                    fidl_fuchsia_posix::Errno,
53036                >, StreamSocketMarker>(
53037                    (value,),
53038                    0x2ab2e8c111708421,
53039                    fidl::encoding::DynamicFlags::empty(),
53040                    ___deadline,
53041                )?;
53042        Ok(_response.map(|x| x))
53043    }
53044
53045    /// Get `SOL_TCP` -> `TCP_KEEPCNT`.
53046    pub fn r#get_tcp_keep_alive_count(
53047        &self,
53048        ___deadline: zx::MonotonicInstant,
53049    ) -> Result<StreamSocketGetTcpKeepAliveCountResult, fidl::Error> {
53050        let _response =
53051            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
53052                StreamSocketGetTcpKeepAliveCountResponse,
53053                fidl_fuchsia_posix::Errno,
53054            >, StreamSocketMarker>(
53055                (),
53056                0x2f176ae271fe7a09,
53057                fidl::encoding::DynamicFlags::empty(),
53058                ___deadline,
53059            )?;
53060        Ok(_response.map(|x| x.value))
53061    }
53062
53063    /// Set `SOL_TCP` -> `TCP_SYNCNT`.
53064    pub fn r#set_tcp_syn_count(
53065        &self,
53066        mut value: u32,
53067        ___deadline: zx::MonotonicInstant,
53068    ) -> Result<StreamSocketSetTcpSynCountResult, fidl::Error> {
53069        let _response =
53070            self.client
53071                .send_query::<StreamSocketSetTcpSynCountRequest, fidl::encoding::ResultType<
53072                    fidl::encoding::EmptyStruct,
53073                    fidl_fuchsia_posix::Errno,
53074                >, StreamSocketMarker>(
53075                    (value,),
53076                    0x4dcd6ab5573c1eb3,
53077                    fidl::encoding::DynamicFlags::empty(),
53078                    ___deadline,
53079                )?;
53080        Ok(_response.map(|x| x))
53081    }
53082
53083    /// Get `SOL_TCP` -> `TCP_SYNCNT`.
53084    pub fn r#get_tcp_syn_count(
53085        &self,
53086        ___deadline: zx::MonotonicInstant,
53087    ) -> Result<StreamSocketGetTcpSynCountResult, fidl::Error> {
53088        let _response =
53089            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
53090                StreamSocketGetTcpSynCountResponse,
53091                fidl_fuchsia_posix::Errno,
53092            >, StreamSocketMarker>(
53093                (),
53094                0x7d457cba8f5f3ee6,
53095                fidl::encoding::DynamicFlags::empty(),
53096                ___deadline,
53097            )?;
53098        Ok(_response.map(|x| x.value))
53099    }
53100
53101    /// Set `SOL_TCP` -> `TCP_LINGER2`.
53102    pub fn r#set_tcp_linger(
53103        &self,
53104        mut value_secs: &OptionalUint32,
53105        ___deadline: zx::MonotonicInstant,
53106    ) -> Result<StreamSocketSetTcpLingerResult, fidl::Error> {
53107        let _response =
53108            self.client.send_query::<StreamSocketSetTcpLingerRequest, fidl::encoding::ResultType<
53109                fidl::encoding::EmptyStruct,
53110                fidl_fuchsia_posix::Errno,
53111            >, StreamSocketMarker>(
53112                (value_secs,),
53113                0xd5cc1e8654d36e4,
53114                fidl::encoding::DynamicFlags::empty(),
53115                ___deadline,
53116            )?;
53117        Ok(_response.map(|x| x))
53118    }
53119
53120    /// Get `SOL_TCP` -> `TCP_LINGER2`.
53121    pub fn r#get_tcp_linger(
53122        &self,
53123        ___deadline: zx::MonotonicInstant,
53124    ) -> Result<StreamSocketGetTcpLingerResult, fidl::Error> {
53125        let _response =
53126            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
53127                StreamSocketGetTcpLingerResponse,
53128                fidl_fuchsia_posix::Errno,
53129            >, StreamSocketMarker>(
53130                (),
53131                0xad870d311cf30eb,
53132                fidl::encoding::DynamicFlags::empty(),
53133                ___deadline,
53134            )?;
53135        Ok(_response.map(|x| x.value_secs))
53136    }
53137
53138    /// Set `SOL_TCP` -> `TCP_DEFER_ACCEPT`.
53139    pub fn r#set_tcp_defer_accept(
53140        &self,
53141        mut value_secs: u32,
53142        ___deadline: zx::MonotonicInstant,
53143    ) -> Result<StreamSocketSetTcpDeferAcceptResult, fidl::Error> {
53144        let _response =
53145            self.client
53146                .send_query::<StreamSocketSetTcpDeferAcceptRequest, fidl::encoding::ResultType<
53147                    fidl::encoding::EmptyStruct,
53148                    fidl_fuchsia_posix::Errno,
53149                >, StreamSocketMarker>(
53150                    (value_secs,),
53151                    0x15092f181e57c404,
53152                    fidl::encoding::DynamicFlags::empty(),
53153                    ___deadline,
53154                )?;
53155        Ok(_response.map(|x| x))
53156    }
53157
53158    /// Get `SOL_TCP` -> `TCP_DEFER_ACCEPT`.
53159    pub fn r#get_tcp_defer_accept(
53160        &self,
53161        ___deadline: zx::MonotonicInstant,
53162    ) -> Result<StreamSocketGetTcpDeferAcceptResult, fidl::Error> {
53163        let _response =
53164            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
53165                StreamSocketGetTcpDeferAcceptResponse,
53166                fidl_fuchsia_posix::Errno,
53167            >, StreamSocketMarker>(
53168                (),
53169                0x64589790842cb7c6,
53170                fidl::encoding::DynamicFlags::empty(),
53171                ___deadline,
53172            )?;
53173        Ok(_response.map(|x| x.value_secs))
53174    }
53175
53176    /// Set `SOL_TCP` -> `TCP_WINDOW_CLAMP`.
53177    pub fn r#set_tcp_window_clamp(
53178        &self,
53179        mut value: u32,
53180        ___deadline: zx::MonotonicInstant,
53181    ) -> Result<StreamSocketSetTcpWindowClampResult, fidl::Error> {
53182        let _response =
53183            self.client
53184                .send_query::<StreamSocketSetTcpWindowClampRequest, fidl::encoding::ResultType<
53185                    fidl::encoding::EmptyStruct,
53186                    fidl_fuchsia_posix::Errno,
53187                >, StreamSocketMarker>(
53188                    (value,),
53189                    0x4a26ce07d847f1c6,
53190                    fidl::encoding::DynamicFlags::empty(),
53191                    ___deadline,
53192                )?;
53193        Ok(_response.map(|x| x))
53194    }
53195
53196    /// Get `SOL_TCP` -> `TCP_WINDOW_CLAMP`.
53197    pub fn r#get_tcp_window_clamp(
53198        &self,
53199        ___deadline: zx::MonotonicInstant,
53200    ) -> Result<StreamSocketGetTcpWindowClampResult, fidl::Error> {
53201        let _response =
53202            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
53203                StreamSocketGetTcpWindowClampResponse,
53204                fidl_fuchsia_posix::Errno,
53205            >, StreamSocketMarker>(
53206                (),
53207                0x2df6b636bf0a6a4e,
53208                fidl::encoding::DynamicFlags::empty(),
53209                ___deadline,
53210            )?;
53211        Ok(_response.map(|x| x.value))
53212    }
53213
53214    /// Get `SOL_TCP` -> `TCP_INFO`.
53215    pub fn r#get_tcp_info(
53216        &self,
53217        ___deadline: zx::MonotonicInstant,
53218    ) -> Result<StreamSocketGetTcpInfoResult, fidl::Error> {
53219        let _response =
53220            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
53221                StreamSocketGetTcpInfoResponse,
53222                fidl_fuchsia_posix::Errno,
53223            >, StreamSocketMarker>(
53224                (),
53225                0x1ffb123d9f03ead2,
53226                fidl::encoding::DynamicFlags::empty(),
53227                ___deadline,
53228            )?;
53229        Ok(_response.map(|x| x.info))
53230    }
53231
53232    /// Set `SOL_TCP` -> `TCP_QUICKACK`.
53233    pub fn r#set_tcp_quick_ack(
53234        &self,
53235        mut value: bool,
53236        ___deadline: zx::MonotonicInstant,
53237    ) -> Result<StreamSocketSetTcpQuickAckResult, fidl::Error> {
53238        let _response =
53239            self.client
53240                .send_query::<StreamSocketSetTcpQuickAckRequest, fidl::encoding::ResultType<
53241                    fidl::encoding::EmptyStruct,
53242                    fidl_fuchsia_posix::Errno,
53243                >, StreamSocketMarker>(
53244                    (value,),
53245                    0x6fa811be8fde7457,
53246                    fidl::encoding::DynamicFlags::empty(),
53247                    ___deadline,
53248                )?;
53249        Ok(_response.map(|x| x))
53250    }
53251
53252    /// Get `SOL_TCP` -> `TCP_QUICKACK`.
53253    pub fn r#get_tcp_quick_ack(
53254        &self,
53255        ___deadline: zx::MonotonicInstant,
53256    ) -> Result<StreamSocketGetTcpQuickAckResult, fidl::Error> {
53257        let _response =
53258            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
53259                StreamSocketGetTcpQuickAckResponse,
53260                fidl_fuchsia_posix::Errno,
53261            >, StreamSocketMarker>(
53262                (),
53263                0x7356a949bef2df32,
53264                fidl::encoding::DynamicFlags::empty(),
53265                ___deadline,
53266            )?;
53267        Ok(_response.map(|x| x.value))
53268    }
53269
53270    /// Set `SOL_TCP` -> `TCP_CONGESTION`.
53271    pub fn r#set_tcp_congestion(
53272        &self,
53273        mut value: TcpCongestionControl,
53274        ___deadline: zx::MonotonicInstant,
53275    ) -> Result<StreamSocketSetTcpCongestionResult, fidl::Error> {
53276        let _response =
53277            self.client
53278                .send_query::<StreamSocketSetTcpCongestionRequest, fidl::encoding::ResultType<
53279                    fidl::encoding::EmptyStruct,
53280                    fidl_fuchsia_posix::Errno,
53281                >, StreamSocketMarker>(
53282                    (value,),
53283                    0x7924c6eabde7819e,
53284                    fidl::encoding::DynamicFlags::empty(),
53285                    ___deadline,
53286                )?;
53287        Ok(_response.map(|x| x))
53288    }
53289
53290    /// Get `SOL_TCP` -> `TCP_CONGESTION`.
53291    pub fn r#get_tcp_congestion(
53292        &self,
53293        ___deadline: zx::MonotonicInstant,
53294    ) -> Result<StreamSocketGetTcpCongestionResult, fidl::Error> {
53295        let _response =
53296            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
53297                StreamSocketGetTcpCongestionResponse,
53298                fidl_fuchsia_posix::Errno,
53299            >, StreamSocketMarker>(
53300                (),
53301                0x11e16397e1b72a47,
53302                fidl::encoding::DynamicFlags::empty(),
53303                ___deadline,
53304            )?;
53305        Ok(_response.map(|x| x.value))
53306    }
53307
53308    /// Set `SOL_TCP` -> `TCP_USER_TIMEOUT`.
53309    pub fn r#set_tcp_user_timeout(
53310        &self,
53311        mut value_millis: u32,
53312        ___deadline: zx::MonotonicInstant,
53313    ) -> Result<StreamSocketSetTcpUserTimeoutResult, fidl::Error> {
53314        let _response =
53315            self.client
53316                .send_query::<StreamSocketSetTcpUserTimeoutRequest, fidl::encoding::ResultType<
53317                    fidl::encoding::EmptyStruct,
53318                    fidl_fuchsia_posix::Errno,
53319                >, StreamSocketMarker>(
53320                    (value_millis,),
53321                    0x6b459e81c3741a60,
53322                    fidl::encoding::DynamicFlags::empty(),
53323                    ___deadline,
53324                )?;
53325        Ok(_response.map(|x| x))
53326    }
53327
53328    /// Get `SOL_TCP` -> `TCP_USER_TIMEOUT`.
53329    pub fn r#get_tcp_user_timeout(
53330        &self,
53331        ___deadline: zx::MonotonicInstant,
53332    ) -> Result<StreamSocketGetTcpUserTimeoutResult, fidl::Error> {
53333        let _response =
53334            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
53335                StreamSocketGetTcpUserTimeoutResponse,
53336                fidl_fuchsia_posix::Errno,
53337            >, StreamSocketMarker>(
53338                (),
53339                0x24bbd5858ad8c380,
53340                fidl::encoding::DynamicFlags::empty(),
53341                ___deadline,
53342            )?;
53343        Ok(_response.map(|x| x.value_millis))
53344    }
53345}
53346
53347#[cfg(target_os = "fuchsia")]
53348impl From<StreamSocketSynchronousProxy> for zx::NullableHandle {
53349    fn from(value: StreamSocketSynchronousProxy) -> Self {
53350        value.into_channel().into()
53351    }
53352}
53353
53354#[cfg(target_os = "fuchsia")]
53355impl From<fidl::Channel> for StreamSocketSynchronousProxy {
53356    fn from(value: fidl::Channel) -> Self {
53357        Self::new(value)
53358    }
53359}
53360
53361#[cfg(target_os = "fuchsia")]
53362impl fidl::endpoints::FromClient for StreamSocketSynchronousProxy {
53363    type Protocol = StreamSocketMarker;
53364
53365    fn from_client(value: fidl::endpoints::ClientEnd<StreamSocketMarker>) -> Self {
53366        Self::new(value.into_channel())
53367    }
53368}
53369
53370#[derive(Debug, Clone)]
53371pub struct StreamSocketProxy {
53372    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
53373}
53374
53375impl fidl::endpoints::Proxy for StreamSocketProxy {
53376    type Protocol = StreamSocketMarker;
53377
53378    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
53379        Self::new(inner)
53380    }
53381
53382    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
53383        self.client.into_channel().map_err(|client| Self { client })
53384    }
53385
53386    fn as_channel(&self) -> &::fidl::AsyncChannel {
53387        self.client.as_channel()
53388    }
53389}
53390
53391impl StreamSocketProxy {
53392    /// Create a new Proxy for fuchsia.posix.socket/StreamSocket.
53393    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
53394        let protocol_name = <StreamSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
53395        Self { client: fidl::client::Client::new(channel, protocol_name) }
53396    }
53397
53398    /// Get a Stream of events from the remote end of the protocol.
53399    ///
53400    /// # Panics
53401    ///
53402    /// Panics if the event stream was already taken.
53403    pub fn take_event_stream(&self) -> StreamSocketEventStream {
53404        StreamSocketEventStream { event_receiver: self.client.take_event_receiver() }
53405    }
53406
53407    pub fn r#clone(
53408        &self,
53409        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
53410    ) -> Result<(), fidl::Error> {
53411        StreamSocketProxyInterface::r#clone(self, request)
53412    }
53413
53414    /// Terminates the connection.
53415    ///
53416    /// After calling `Close`, the client must not send any other requests.
53417    ///
53418    /// Servers, after sending the status response, should close the connection
53419    /// regardless of status and without sending an epitaph.
53420    ///
53421    /// Closing the client end of the channel should be semantically equivalent
53422    /// to calling `Close` without knowing when the close has completed or its
53423    /// status.
53424    pub fn r#close(
53425        &self,
53426    ) -> fidl::client::QueryResponseFut<
53427        fidl_fuchsia_unknown::CloseableCloseResult,
53428        fidl::encoding::DefaultFuchsiaResourceDialect,
53429    > {
53430        StreamSocketProxyInterface::r#close(self)
53431    }
53432
53433    pub fn r#query(
53434        &self,
53435    ) -> fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>
53436    {
53437        StreamSocketProxyInterface::r#query(self)
53438    }
53439
53440    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
53441    pub fn r#set_reuse_address(
53442        &self,
53443        mut value: bool,
53444    ) -> fidl::client::QueryResponseFut<
53445        BaseSocketSetReuseAddressResult,
53446        fidl::encoding::DefaultFuchsiaResourceDialect,
53447    > {
53448        StreamSocketProxyInterface::r#set_reuse_address(self, value)
53449    }
53450
53451    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
53452    pub fn r#get_reuse_address(
53453        &self,
53454    ) -> fidl::client::QueryResponseFut<
53455        BaseSocketGetReuseAddressResult,
53456        fidl::encoding::DefaultFuchsiaResourceDialect,
53457    > {
53458        StreamSocketProxyInterface::r#get_reuse_address(self)
53459    }
53460
53461    /// Get `SOL_SOCKET` -> `SO_ERROR`.
53462    /// Returns the last error if there is an error set on the socket.
53463    pub fn r#get_error(
53464        &self,
53465    ) -> fidl::client::QueryResponseFut<
53466        BaseSocketGetErrorResult,
53467        fidl::encoding::DefaultFuchsiaResourceDialect,
53468    > {
53469        StreamSocketProxyInterface::r#get_error(self)
53470    }
53471
53472    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
53473    pub fn r#set_broadcast(
53474        &self,
53475        mut value: bool,
53476    ) -> fidl::client::QueryResponseFut<
53477        BaseSocketSetBroadcastResult,
53478        fidl::encoding::DefaultFuchsiaResourceDialect,
53479    > {
53480        StreamSocketProxyInterface::r#set_broadcast(self, value)
53481    }
53482
53483    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
53484    pub fn r#get_broadcast(
53485        &self,
53486    ) -> fidl::client::QueryResponseFut<
53487        BaseSocketGetBroadcastResult,
53488        fidl::encoding::DefaultFuchsiaResourceDialect,
53489    > {
53490        StreamSocketProxyInterface::r#get_broadcast(self)
53491    }
53492
53493    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
53494    pub fn r#set_send_buffer(
53495        &self,
53496        mut value_bytes: u64,
53497    ) -> fidl::client::QueryResponseFut<
53498        BaseSocketSetSendBufferResult,
53499        fidl::encoding::DefaultFuchsiaResourceDialect,
53500    > {
53501        StreamSocketProxyInterface::r#set_send_buffer(self, value_bytes)
53502    }
53503
53504    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
53505    pub fn r#get_send_buffer(
53506        &self,
53507    ) -> fidl::client::QueryResponseFut<
53508        BaseSocketGetSendBufferResult,
53509        fidl::encoding::DefaultFuchsiaResourceDialect,
53510    > {
53511        StreamSocketProxyInterface::r#get_send_buffer(self)
53512    }
53513
53514    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
53515    pub fn r#set_receive_buffer(
53516        &self,
53517        mut value_bytes: u64,
53518    ) -> fidl::client::QueryResponseFut<
53519        BaseSocketSetReceiveBufferResult,
53520        fidl::encoding::DefaultFuchsiaResourceDialect,
53521    > {
53522        StreamSocketProxyInterface::r#set_receive_buffer(self, value_bytes)
53523    }
53524
53525    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
53526    pub fn r#get_receive_buffer(
53527        &self,
53528    ) -> fidl::client::QueryResponseFut<
53529        BaseSocketGetReceiveBufferResult,
53530        fidl::encoding::DefaultFuchsiaResourceDialect,
53531    > {
53532        StreamSocketProxyInterface::r#get_receive_buffer(self)
53533    }
53534
53535    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
53536    pub fn r#set_keep_alive(
53537        &self,
53538        mut value: bool,
53539    ) -> fidl::client::QueryResponseFut<
53540        BaseSocketSetKeepAliveResult,
53541        fidl::encoding::DefaultFuchsiaResourceDialect,
53542    > {
53543        StreamSocketProxyInterface::r#set_keep_alive(self, value)
53544    }
53545
53546    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
53547    pub fn r#get_keep_alive(
53548        &self,
53549    ) -> fidl::client::QueryResponseFut<
53550        BaseSocketGetKeepAliveResult,
53551        fidl::encoding::DefaultFuchsiaResourceDialect,
53552    > {
53553        StreamSocketProxyInterface::r#get_keep_alive(self)
53554    }
53555
53556    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
53557    pub fn r#set_out_of_band_inline(
53558        &self,
53559        mut value: bool,
53560    ) -> fidl::client::QueryResponseFut<
53561        BaseSocketSetOutOfBandInlineResult,
53562        fidl::encoding::DefaultFuchsiaResourceDialect,
53563    > {
53564        StreamSocketProxyInterface::r#set_out_of_band_inline(self, value)
53565    }
53566
53567    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
53568    pub fn r#get_out_of_band_inline(
53569        &self,
53570    ) -> fidl::client::QueryResponseFut<
53571        BaseSocketGetOutOfBandInlineResult,
53572        fidl::encoding::DefaultFuchsiaResourceDialect,
53573    > {
53574        StreamSocketProxyInterface::r#get_out_of_band_inline(self)
53575    }
53576
53577    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
53578    pub fn r#set_no_check(
53579        &self,
53580        mut value: bool,
53581    ) -> fidl::client::QueryResponseFut<
53582        BaseSocketSetNoCheckResult,
53583        fidl::encoding::DefaultFuchsiaResourceDialect,
53584    > {
53585        StreamSocketProxyInterface::r#set_no_check(self, value)
53586    }
53587
53588    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
53589    pub fn r#get_no_check(
53590        &self,
53591    ) -> fidl::client::QueryResponseFut<
53592        BaseSocketGetNoCheckResult,
53593        fidl::encoding::DefaultFuchsiaResourceDialect,
53594    > {
53595        StreamSocketProxyInterface::r#get_no_check(self)
53596    }
53597
53598    /// Set `SOL_SOCKET` -> `SO_LINGER`.
53599    pub fn r#set_linger(
53600        &self,
53601        mut linger: bool,
53602        mut length_secs: u32,
53603    ) -> fidl::client::QueryResponseFut<
53604        BaseSocketSetLingerResult,
53605        fidl::encoding::DefaultFuchsiaResourceDialect,
53606    > {
53607        StreamSocketProxyInterface::r#set_linger(self, linger, length_secs)
53608    }
53609
53610    /// Get `SOL_SOCKET` -> `SO_LINGER`.
53611    pub fn r#get_linger(
53612        &self,
53613    ) -> fidl::client::QueryResponseFut<
53614        BaseSocketGetLingerResult,
53615        fidl::encoding::DefaultFuchsiaResourceDialect,
53616    > {
53617        StreamSocketProxyInterface::r#get_linger(self)
53618    }
53619
53620    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
53621    pub fn r#set_reuse_port(
53622        &self,
53623        mut value: ReusePortOption,
53624    ) -> fidl::client::QueryResponseFut<
53625        BaseSocketSetReusePortResult,
53626        fidl::encoding::DefaultFuchsiaResourceDialect,
53627    > {
53628        StreamSocketProxyInterface::r#set_reuse_port(self, value)
53629    }
53630
53631    pub fn r#set_reuse_port_deprecated(
53632        &self,
53633        mut value: bool,
53634    ) -> fidl::client::QueryResponseFut<
53635        BaseSocketSetReusePortDeprecatedResult,
53636        fidl::encoding::DefaultFuchsiaResourceDialect,
53637    > {
53638        StreamSocketProxyInterface::r#set_reuse_port_deprecated(self, value)
53639    }
53640
53641    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
53642    pub fn r#get_reuse_port(
53643        &self,
53644    ) -> fidl::client::QueryResponseFut<
53645        BaseSocketGetReusePortResult,
53646        fidl::encoding::DefaultFuchsiaResourceDialect,
53647    > {
53648        StreamSocketProxyInterface::r#get_reuse_port(self)
53649    }
53650
53651    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
53652    pub fn r#get_accept_conn(
53653        &self,
53654    ) -> fidl::client::QueryResponseFut<
53655        BaseSocketGetAcceptConnResult,
53656        fidl::encoding::DefaultFuchsiaResourceDialect,
53657    > {
53658        StreamSocketProxyInterface::r#get_accept_conn(self)
53659    }
53660
53661    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
53662    pub fn r#set_bind_to_device(
53663        &self,
53664        mut value: &str,
53665    ) -> fidl::client::QueryResponseFut<
53666        BaseSocketSetBindToDeviceResult,
53667        fidl::encoding::DefaultFuchsiaResourceDialect,
53668    > {
53669        StreamSocketProxyInterface::r#set_bind_to_device(self, value)
53670    }
53671
53672    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
53673    pub fn r#get_bind_to_device(
53674        &self,
53675    ) -> fidl::client::QueryResponseFut<
53676        BaseSocketGetBindToDeviceResult,
53677        fidl::encoding::DefaultFuchsiaResourceDialect,
53678    > {
53679        StreamSocketProxyInterface::r#get_bind_to_device(self)
53680    }
53681
53682    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
53683    /// If `value` is 0, this clears the bound interface.
53684    pub fn r#set_bind_to_interface_index(
53685        &self,
53686        mut value: u64,
53687    ) -> fidl::client::QueryResponseFut<
53688        BaseSocketSetBindToInterfaceIndexResult,
53689        fidl::encoding::DefaultFuchsiaResourceDialect,
53690    > {
53691        StreamSocketProxyInterface::r#set_bind_to_interface_index(self, value)
53692    }
53693
53694    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
53695    pub fn r#get_bind_to_interface_index(
53696        &self,
53697    ) -> fidl::client::QueryResponseFut<
53698        BaseSocketGetBindToInterfaceIndexResult,
53699        fidl::encoding::DefaultFuchsiaResourceDialect,
53700    > {
53701        StreamSocketProxyInterface::r#get_bind_to_interface_index(self)
53702    }
53703
53704    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
53705    pub fn r#set_timestamp(
53706        &self,
53707        mut value: TimestampOption,
53708    ) -> fidl::client::QueryResponseFut<
53709        BaseSocketSetTimestampResult,
53710        fidl::encoding::DefaultFuchsiaResourceDialect,
53711    > {
53712        StreamSocketProxyInterface::r#set_timestamp(self, value)
53713    }
53714
53715    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
53716    pub fn r#get_timestamp(
53717        &self,
53718    ) -> fidl::client::QueryResponseFut<
53719        BaseSocketGetTimestampResult,
53720        fidl::encoding::DefaultFuchsiaResourceDialect,
53721    > {
53722        StreamSocketProxyInterface::r#get_timestamp(self)
53723    }
53724
53725    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
53726    /// unlike the standard SO_MARK, this API has multiple mark domains and each
53727    /// mark can be set independently in each domain.
53728    pub fn r#set_mark(
53729        &self,
53730        mut domain: fidl_fuchsia_net::MarkDomain,
53731        mut mark: &OptionalUint32,
53732    ) -> fidl::client::QueryResponseFut<
53733        BaseSocketSetMarkResult,
53734        fidl::encoding::DefaultFuchsiaResourceDialect,
53735    > {
53736        StreamSocketProxyInterface::r#set_mark(self, domain, mark)
53737    }
53738
53739    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
53740    /// unlike the standard SO_MARK, this API has multiple mark domains and each
53741    /// mark can be retrieved independently in each domain.
53742    pub fn r#get_mark(
53743        &self,
53744        mut domain: fidl_fuchsia_net::MarkDomain,
53745    ) -> fidl::client::QueryResponseFut<
53746        BaseSocketGetMarkResult,
53747        fidl::encoding::DefaultFuchsiaResourceDialect,
53748    > {
53749        StreamSocketProxyInterface::r#get_mark(self, domain)
53750    }
53751
53752    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
53753    pub fn r#get_cookie(
53754        &self,
53755    ) -> fidl::client::QueryResponseFut<
53756        BaseSocketGetCookieResult,
53757        fidl::encoding::DefaultFuchsiaResourceDialect,
53758    > {
53759        StreamSocketProxyInterface::r#get_cookie(self)
53760    }
53761
53762    /// Sets the local address used for the socket.
53763    pub fn r#bind(
53764        &self,
53765        mut addr: &fidl_fuchsia_net::SocketAddress,
53766    ) -> fidl::client::QueryResponseFut<
53767        BaseNetworkSocketBindResult,
53768        fidl::encoding::DefaultFuchsiaResourceDialect,
53769    > {
53770        StreamSocketProxyInterface::r#bind(self, addr)
53771    }
53772
53773    /// Initiates a connection to a remote address.
53774    pub fn r#connect(
53775        &self,
53776        mut addr: &fidl_fuchsia_net::SocketAddress,
53777    ) -> fidl::client::QueryResponseFut<
53778        BaseNetworkSocketConnectResult,
53779        fidl::encoding::DefaultFuchsiaResourceDialect,
53780    > {
53781        StreamSocketProxyInterface::r#connect(self, addr)
53782    }
53783
53784    /// Clears connection information from this socket.
53785    pub fn r#disconnect(
53786        &self,
53787    ) -> fidl::client::QueryResponseFut<
53788        BaseNetworkSocketDisconnectResult,
53789        fidl::encoding::DefaultFuchsiaResourceDialect,
53790    > {
53791        StreamSocketProxyInterface::r#disconnect(self)
53792    }
53793
53794    /// Retrieves the local socket address.
53795    pub fn r#get_sock_name(
53796        &self,
53797    ) -> fidl::client::QueryResponseFut<
53798        BaseNetworkSocketGetSockNameResult,
53799        fidl::encoding::DefaultFuchsiaResourceDialect,
53800    > {
53801        StreamSocketProxyInterface::r#get_sock_name(self)
53802    }
53803
53804    /// Retrieves the remote socket address.
53805    pub fn r#get_peer_name(
53806        &self,
53807    ) -> fidl::client::QueryResponseFut<
53808        BaseNetworkSocketGetPeerNameResult,
53809        fidl::encoding::DefaultFuchsiaResourceDialect,
53810    > {
53811        StreamSocketProxyInterface::r#get_peer_name(self)
53812    }
53813
53814    /// Shuts down part of the socket.
53815    pub fn r#shutdown(
53816        &self,
53817        mut mode: ShutdownMode,
53818    ) -> fidl::client::QueryResponseFut<
53819        BaseNetworkSocketShutdownResult,
53820        fidl::encoding::DefaultFuchsiaResourceDialect,
53821    > {
53822        StreamSocketProxyInterface::r#shutdown(self, mode)
53823    }
53824
53825    /// Set `SOL_IP` -> `IP_TOS`.
53826    pub fn r#set_ip_type_of_service(
53827        &self,
53828        mut value: u8,
53829    ) -> fidl::client::QueryResponseFut<
53830        BaseNetworkSocketSetIpTypeOfServiceResult,
53831        fidl::encoding::DefaultFuchsiaResourceDialect,
53832    > {
53833        StreamSocketProxyInterface::r#set_ip_type_of_service(self, value)
53834    }
53835
53836    /// Get `SOL_IP` -> `IP_TOS`.
53837    pub fn r#get_ip_type_of_service(
53838        &self,
53839    ) -> fidl::client::QueryResponseFut<
53840        BaseNetworkSocketGetIpTypeOfServiceResult,
53841        fidl::encoding::DefaultFuchsiaResourceDialect,
53842    > {
53843        StreamSocketProxyInterface::r#get_ip_type_of_service(self)
53844    }
53845
53846    /// Set `SOL_IP` -> `IP_TTL`.
53847    pub fn r#set_ip_ttl(
53848        &self,
53849        mut value: &OptionalUint8,
53850    ) -> fidl::client::QueryResponseFut<
53851        BaseNetworkSocketSetIpTtlResult,
53852        fidl::encoding::DefaultFuchsiaResourceDialect,
53853    > {
53854        StreamSocketProxyInterface::r#set_ip_ttl(self, value)
53855    }
53856
53857    /// Get `SOL_IP` -> `IP_TTL`.
53858    pub fn r#get_ip_ttl(
53859        &self,
53860    ) -> fidl::client::QueryResponseFut<
53861        BaseNetworkSocketGetIpTtlResult,
53862        fidl::encoding::DefaultFuchsiaResourceDialect,
53863    > {
53864        StreamSocketProxyInterface::r#get_ip_ttl(self)
53865    }
53866
53867    /// Set `SOL_IP` -> `IP_PKTINFO`.
53868    pub fn r#set_ip_packet_info(
53869        &self,
53870        mut value: bool,
53871    ) -> fidl::client::QueryResponseFut<
53872        BaseNetworkSocketSetIpPacketInfoResult,
53873        fidl::encoding::DefaultFuchsiaResourceDialect,
53874    > {
53875        StreamSocketProxyInterface::r#set_ip_packet_info(self, value)
53876    }
53877
53878    /// Get `SOL_IP` -> `IP_PKTINFO`.
53879    pub fn r#get_ip_packet_info(
53880        &self,
53881    ) -> fidl::client::QueryResponseFut<
53882        BaseNetworkSocketGetIpPacketInfoResult,
53883        fidl::encoding::DefaultFuchsiaResourceDialect,
53884    > {
53885        StreamSocketProxyInterface::r#get_ip_packet_info(self)
53886    }
53887
53888    /// Set `SOL_IP` -> `IP_RECVTOS`.
53889    pub fn r#set_ip_receive_type_of_service(
53890        &self,
53891        mut value: bool,
53892    ) -> fidl::client::QueryResponseFut<
53893        BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
53894        fidl::encoding::DefaultFuchsiaResourceDialect,
53895    > {
53896        StreamSocketProxyInterface::r#set_ip_receive_type_of_service(self, value)
53897    }
53898
53899    /// Get `SOL_IP` -> `IP_RECVTOS`.
53900    pub fn r#get_ip_receive_type_of_service(
53901        &self,
53902    ) -> fidl::client::QueryResponseFut<
53903        BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
53904        fidl::encoding::DefaultFuchsiaResourceDialect,
53905    > {
53906        StreamSocketProxyInterface::r#get_ip_receive_type_of_service(self)
53907    }
53908
53909    /// Set `SOL_IP` -> `IP_RECVTTL`.
53910    pub fn r#set_ip_receive_ttl(
53911        &self,
53912        mut value: bool,
53913    ) -> fidl::client::QueryResponseFut<
53914        BaseNetworkSocketSetIpReceiveTtlResult,
53915        fidl::encoding::DefaultFuchsiaResourceDialect,
53916    > {
53917        StreamSocketProxyInterface::r#set_ip_receive_ttl(self, value)
53918    }
53919
53920    /// Get `SOL_IP` -> `IP_RECVTTL`.
53921    pub fn r#get_ip_receive_ttl(
53922        &self,
53923    ) -> fidl::client::QueryResponseFut<
53924        BaseNetworkSocketGetIpReceiveTtlResult,
53925        fidl::encoding::DefaultFuchsiaResourceDialect,
53926    > {
53927        StreamSocketProxyInterface::r#get_ip_receive_ttl(self)
53928    }
53929
53930    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
53931    pub fn r#set_ip_multicast_interface(
53932        &self,
53933        mut iface: u64,
53934        mut address: &fidl_fuchsia_net::Ipv4Address,
53935    ) -> fidl::client::QueryResponseFut<
53936        BaseNetworkSocketSetIpMulticastInterfaceResult,
53937        fidl::encoding::DefaultFuchsiaResourceDialect,
53938    > {
53939        StreamSocketProxyInterface::r#set_ip_multicast_interface(self, iface, address)
53940    }
53941
53942    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
53943    pub fn r#get_ip_multicast_interface(
53944        &self,
53945    ) -> fidl::client::QueryResponseFut<
53946        BaseNetworkSocketGetIpMulticastInterfaceResult,
53947        fidl::encoding::DefaultFuchsiaResourceDialect,
53948    > {
53949        StreamSocketProxyInterface::r#get_ip_multicast_interface(self)
53950    }
53951
53952    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
53953    pub fn r#set_ip_multicast_ttl(
53954        &self,
53955        mut value: &OptionalUint8,
53956    ) -> fidl::client::QueryResponseFut<
53957        BaseNetworkSocketSetIpMulticastTtlResult,
53958        fidl::encoding::DefaultFuchsiaResourceDialect,
53959    > {
53960        StreamSocketProxyInterface::r#set_ip_multicast_ttl(self, value)
53961    }
53962
53963    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
53964    pub fn r#get_ip_multicast_ttl(
53965        &self,
53966    ) -> fidl::client::QueryResponseFut<
53967        BaseNetworkSocketGetIpMulticastTtlResult,
53968        fidl::encoding::DefaultFuchsiaResourceDialect,
53969    > {
53970        StreamSocketProxyInterface::r#get_ip_multicast_ttl(self)
53971    }
53972
53973    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
53974    pub fn r#set_ip_multicast_loopback(
53975        &self,
53976        mut value: bool,
53977    ) -> fidl::client::QueryResponseFut<
53978        BaseNetworkSocketSetIpMulticastLoopbackResult,
53979        fidl::encoding::DefaultFuchsiaResourceDialect,
53980    > {
53981        StreamSocketProxyInterface::r#set_ip_multicast_loopback(self, value)
53982    }
53983
53984    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
53985    pub fn r#get_ip_multicast_loopback(
53986        &self,
53987    ) -> fidl::client::QueryResponseFut<
53988        BaseNetworkSocketGetIpMulticastLoopbackResult,
53989        fidl::encoding::DefaultFuchsiaResourceDialect,
53990    > {
53991        StreamSocketProxyInterface::r#get_ip_multicast_loopback(self)
53992    }
53993
53994    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
53995    pub fn r#add_ip_membership(
53996        &self,
53997        mut membership: &IpMulticastMembership,
53998    ) -> fidl::client::QueryResponseFut<
53999        BaseNetworkSocketAddIpMembershipResult,
54000        fidl::encoding::DefaultFuchsiaResourceDialect,
54001    > {
54002        StreamSocketProxyInterface::r#add_ip_membership(self, membership)
54003    }
54004
54005    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
54006    pub fn r#drop_ip_membership(
54007        &self,
54008        mut membership: &IpMulticastMembership,
54009    ) -> fidl::client::QueryResponseFut<
54010        BaseNetworkSocketDropIpMembershipResult,
54011        fidl::encoding::DefaultFuchsiaResourceDialect,
54012    > {
54013        StreamSocketProxyInterface::r#drop_ip_membership(self, membership)
54014    }
54015
54016    /// Set `SOL_IP` -> `IP_TRANSPARENT`
54017    pub fn r#set_ip_transparent(
54018        &self,
54019        mut value: bool,
54020    ) -> fidl::client::QueryResponseFut<
54021        BaseNetworkSocketSetIpTransparentResult,
54022        fidl::encoding::DefaultFuchsiaResourceDialect,
54023    > {
54024        StreamSocketProxyInterface::r#set_ip_transparent(self, value)
54025    }
54026
54027    /// Get `SOL_IP` -> `IP_TRANSPARENT`
54028    pub fn r#get_ip_transparent(
54029        &self,
54030    ) -> fidl::client::QueryResponseFut<
54031        BaseNetworkSocketGetIpTransparentResult,
54032        fidl::encoding::DefaultFuchsiaResourceDialect,
54033    > {
54034        StreamSocketProxyInterface::r#get_ip_transparent(self)
54035    }
54036
54037    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
54038    pub fn r#set_ip_receive_original_destination_address(
54039        &self,
54040        mut value: bool,
54041    ) -> fidl::client::QueryResponseFut<
54042        BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
54043        fidl::encoding::DefaultFuchsiaResourceDialect,
54044    > {
54045        StreamSocketProxyInterface::r#set_ip_receive_original_destination_address(self, value)
54046    }
54047
54048    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
54049    pub fn r#get_ip_receive_original_destination_address(
54050        &self,
54051    ) -> fidl::client::QueryResponseFut<
54052        BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
54053        fidl::encoding::DefaultFuchsiaResourceDialect,
54054    > {
54055        StreamSocketProxyInterface::r#get_ip_receive_original_destination_address(self)
54056    }
54057
54058    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
54059    pub fn r#add_ipv6_membership(
54060        &self,
54061        mut membership: &Ipv6MulticastMembership,
54062    ) -> fidl::client::QueryResponseFut<
54063        BaseNetworkSocketAddIpv6MembershipResult,
54064        fidl::encoding::DefaultFuchsiaResourceDialect,
54065    > {
54066        StreamSocketProxyInterface::r#add_ipv6_membership(self, membership)
54067    }
54068
54069    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
54070    pub fn r#drop_ipv6_membership(
54071        &self,
54072        mut membership: &Ipv6MulticastMembership,
54073    ) -> fidl::client::QueryResponseFut<
54074        BaseNetworkSocketDropIpv6MembershipResult,
54075        fidl::encoding::DefaultFuchsiaResourceDialect,
54076    > {
54077        StreamSocketProxyInterface::r#drop_ipv6_membership(self, membership)
54078    }
54079
54080    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
54081    pub fn r#set_ipv6_multicast_interface(
54082        &self,
54083        mut value: u64,
54084    ) -> fidl::client::QueryResponseFut<
54085        BaseNetworkSocketSetIpv6MulticastInterfaceResult,
54086        fidl::encoding::DefaultFuchsiaResourceDialect,
54087    > {
54088        StreamSocketProxyInterface::r#set_ipv6_multicast_interface(self, value)
54089    }
54090
54091    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
54092    pub fn r#get_ipv6_multicast_interface(
54093        &self,
54094    ) -> fidl::client::QueryResponseFut<
54095        BaseNetworkSocketGetIpv6MulticastInterfaceResult,
54096        fidl::encoding::DefaultFuchsiaResourceDialect,
54097    > {
54098        StreamSocketProxyInterface::r#get_ipv6_multicast_interface(self)
54099    }
54100
54101    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
54102    pub fn r#set_ipv6_unicast_hops(
54103        &self,
54104        mut value: &OptionalUint8,
54105    ) -> fidl::client::QueryResponseFut<
54106        BaseNetworkSocketSetIpv6UnicastHopsResult,
54107        fidl::encoding::DefaultFuchsiaResourceDialect,
54108    > {
54109        StreamSocketProxyInterface::r#set_ipv6_unicast_hops(self, value)
54110    }
54111
54112    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
54113    pub fn r#get_ipv6_unicast_hops(
54114        &self,
54115    ) -> fidl::client::QueryResponseFut<
54116        BaseNetworkSocketGetIpv6UnicastHopsResult,
54117        fidl::encoding::DefaultFuchsiaResourceDialect,
54118    > {
54119        StreamSocketProxyInterface::r#get_ipv6_unicast_hops(self)
54120    }
54121
54122    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
54123    pub fn r#set_ipv6_receive_hop_limit(
54124        &self,
54125        mut value: bool,
54126    ) -> fidl::client::QueryResponseFut<
54127        BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
54128        fidl::encoding::DefaultFuchsiaResourceDialect,
54129    > {
54130        StreamSocketProxyInterface::r#set_ipv6_receive_hop_limit(self, value)
54131    }
54132
54133    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
54134    pub fn r#get_ipv6_receive_hop_limit(
54135        &self,
54136    ) -> fidl::client::QueryResponseFut<
54137        BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
54138        fidl::encoding::DefaultFuchsiaResourceDialect,
54139    > {
54140        StreamSocketProxyInterface::r#get_ipv6_receive_hop_limit(self)
54141    }
54142
54143    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
54144    pub fn r#set_ipv6_multicast_hops(
54145        &self,
54146        mut value: &OptionalUint8,
54147    ) -> fidl::client::QueryResponseFut<
54148        BaseNetworkSocketSetIpv6MulticastHopsResult,
54149        fidl::encoding::DefaultFuchsiaResourceDialect,
54150    > {
54151        StreamSocketProxyInterface::r#set_ipv6_multicast_hops(self, value)
54152    }
54153
54154    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
54155    pub fn r#get_ipv6_multicast_hops(
54156        &self,
54157    ) -> fidl::client::QueryResponseFut<
54158        BaseNetworkSocketGetIpv6MulticastHopsResult,
54159        fidl::encoding::DefaultFuchsiaResourceDialect,
54160    > {
54161        StreamSocketProxyInterface::r#get_ipv6_multicast_hops(self)
54162    }
54163
54164    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
54165    pub fn r#set_ipv6_multicast_loopback(
54166        &self,
54167        mut value: bool,
54168    ) -> fidl::client::QueryResponseFut<
54169        BaseNetworkSocketSetIpv6MulticastLoopbackResult,
54170        fidl::encoding::DefaultFuchsiaResourceDialect,
54171    > {
54172        StreamSocketProxyInterface::r#set_ipv6_multicast_loopback(self, value)
54173    }
54174
54175    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
54176    pub fn r#get_ipv6_multicast_loopback(
54177        &self,
54178    ) -> fidl::client::QueryResponseFut<
54179        BaseNetworkSocketGetIpv6MulticastLoopbackResult,
54180        fidl::encoding::DefaultFuchsiaResourceDialect,
54181    > {
54182        StreamSocketProxyInterface::r#get_ipv6_multicast_loopback(self)
54183    }
54184
54185    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
54186    pub fn r#set_ipv6_only(
54187        &self,
54188        mut value: bool,
54189    ) -> fidl::client::QueryResponseFut<
54190        BaseNetworkSocketSetIpv6OnlyResult,
54191        fidl::encoding::DefaultFuchsiaResourceDialect,
54192    > {
54193        StreamSocketProxyInterface::r#set_ipv6_only(self, value)
54194    }
54195
54196    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
54197    pub fn r#get_ipv6_only(
54198        &self,
54199    ) -> fidl::client::QueryResponseFut<
54200        BaseNetworkSocketGetIpv6OnlyResult,
54201        fidl::encoding::DefaultFuchsiaResourceDialect,
54202    > {
54203        StreamSocketProxyInterface::r#get_ipv6_only(self)
54204    }
54205
54206    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
54207    pub fn r#set_ipv6_receive_traffic_class(
54208        &self,
54209        mut value: bool,
54210    ) -> fidl::client::QueryResponseFut<
54211        BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
54212        fidl::encoding::DefaultFuchsiaResourceDialect,
54213    > {
54214        StreamSocketProxyInterface::r#set_ipv6_receive_traffic_class(self, value)
54215    }
54216
54217    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
54218    pub fn r#get_ipv6_receive_traffic_class(
54219        &self,
54220    ) -> fidl::client::QueryResponseFut<
54221        BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
54222        fidl::encoding::DefaultFuchsiaResourceDialect,
54223    > {
54224        StreamSocketProxyInterface::r#get_ipv6_receive_traffic_class(self)
54225    }
54226
54227    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
54228    pub fn r#set_ipv6_traffic_class(
54229        &self,
54230        mut value: &OptionalUint8,
54231    ) -> fidl::client::QueryResponseFut<
54232        BaseNetworkSocketSetIpv6TrafficClassResult,
54233        fidl::encoding::DefaultFuchsiaResourceDialect,
54234    > {
54235        StreamSocketProxyInterface::r#set_ipv6_traffic_class(self, value)
54236    }
54237
54238    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
54239    pub fn r#get_ipv6_traffic_class(
54240        &self,
54241    ) -> fidl::client::QueryResponseFut<
54242        BaseNetworkSocketGetIpv6TrafficClassResult,
54243        fidl::encoding::DefaultFuchsiaResourceDialect,
54244    > {
54245        StreamSocketProxyInterface::r#get_ipv6_traffic_class(self)
54246    }
54247
54248    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
54249    pub fn r#set_ipv6_receive_packet_info(
54250        &self,
54251        mut value: bool,
54252    ) -> fidl::client::QueryResponseFut<
54253        BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
54254        fidl::encoding::DefaultFuchsiaResourceDialect,
54255    > {
54256        StreamSocketProxyInterface::r#set_ipv6_receive_packet_info(self, value)
54257    }
54258
54259    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
54260    pub fn r#get_ipv6_receive_packet_info(
54261        &self,
54262    ) -> fidl::client::QueryResponseFut<
54263        BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
54264        fidl::encoding::DefaultFuchsiaResourceDialect,
54265    > {
54266        StreamSocketProxyInterface::r#get_ipv6_receive_packet_info(self)
54267    }
54268
54269    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
54270    pub fn r#get_original_destination(
54271        &self,
54272    ) -> fidl::client::QueryResponseFut<
54273        BaseNetworkSocketGetOriginalDestinationResult,
54274        fidl::encoding::DefaultFuchsiaResourceDialect,
54275    > {
54276        StreamSocketProxyInterface::r#get_original_destination(self)
54277    }
54278
54279    pub fn r#describe(
54280        &self,
54281    ) -> fidl::client::QueryResponseFut<
54282        StreamSocketDescribeResponse,
54283        fidl::encoding::DefaultFuchsiaResourceDialect,
54284    > {
54285        StreamSocketProxyInterface::r#describe(self)
54286    }
54287
54288    /// Begins listening for new incoming connections. At most `backlog`
54289    /// connections will be buffered.
54290    pub fn r#listen(
54291        &self,
54292        mut backlog: i16,
54293    ) -> fidl::client::QueryResponseFut<
54294        StreamSocketListenResult,
54295        fidl::encoding::DefaultFuchsiaResourceDialect,
54296    > {
54297        StreamSocketProxyInterface::r#listen(self, backlog)
54298    }
54299
54300    /// Accepts a buffered incoming connection.
54301    pub fn r#accept(
54302        &self,
54303        mut want_addr: bool,
54304    ) -> fidl::client::QueryResponseFut<
54305        StreamSocketAcceptResult,
54306        fidl::encoding::DefaultFuchsiaResourceDialect,
54307    > {
54308        StreamSocketProxyInterface::r#accept(self, want_addr)
54309    }
54310
54311    /// Retrieves creation information from the socket.
54312    pub fn r#get_info(
54313        &self,
54314    ) -> fidl::client::QueryResponseFut<
54315        StreamSocketGetInfoResult,
54316        fidl::encoding::DefaultFuchsiaResourceDialect,
54317    > {
54318        StreamSocketProxyInterface::r#get_info(self)
54319    }
54320
54321    /// Set `SOL_TCP` -> `TCP_NODELAY`.
54322    pub fn r#set_tcp_no_delay(
54323        &self,
54324        mut value: bool,
54325    ) -> fidl::client::QueryResponseFut<
54326        StreamSocketSetTcpNoDelayResult,
54327        fidl::encoding::DefaultFuchsiaResourceDialect,
54328    > {
54329        StreamSocketProxyInterface::r#set_tcp_no_delay(self, value)
54330    }
54331
54332    /// Get `SOL_TCP` -> `TCP_NODELAY`.
54333    pub fn r#get_tcp_no_delay(
54334        &self,
54335    ) -> fidl::client::QueryResponseFut<
54336        StreamSocketGetTcpNoDelayResult,
54337        fidl::encoding::DefaultFuchsiaResourceDialect,
54338    > {
54339        StreamSocketProxyInterface::r#get_tcp_no_delay(self)
54340    }
54341
54342    /// Set `SOL_TCP` -> `TCP_MAXSEG`.
54343    pub fn r#set_tcp_max_segment(
54344        &self,
54345        mut value_bytes: u32,
54346    ) -> fidl::client::QueryResponseFut<
54347        StreamSocketSetTcpMaxSegmentResult,
54348        fidl::encoding::DefaultFuchsiaResourceDialect,
54349    > {
54350        StreamSocketProxyInterface::r#set_tcp_max_segment(self, value_bytes)
54351    }
54352
54353    /// Get `SOL_TCP` -> `TCP_MAXSEG`.
54354    pub fn r#get_tcp_max_segment(
54355        &self,
54356    ) -> fidl::client::QueryResponseFut<
54357        StreamSocketGetTcpMaxSegmentResult,
54358        fidl::encoding::DefaultFuchsiaResourceDialect,
54359    > {
54360        StreamSocketProxyInterface::r#get_tcp_max_segment(self)
54361    }
54362
54363    /// Set `SOL_TCP` -> `TCP_CORK`.
54364    pub fn r#set_tcp_cork(
54365        &self,
54366        mut value: bool,
54367    ) -> fidl::client::QueryResponseFut<
54368        StreamSocketSetTcpCorkResult,
54369        fidl::encoding::DefaultFuchsiaResourceDialect,
54370    > {
54371        StreamSocketProxyInterface::r#set_tcp_cork(self, value)
54372    }
54373
54374    /// Get `SOL_TCP` -> `TCP_CORK`.
54375    pub fn r#get_tcp_cork(
54376        &self,
54377    ) -> fidl::client::QueryResponseFut<
54378        StreamSocketGetTcpCorkResult,
54379        fidl::encoding::DefaultFuchsiaResourceDialect,
54380    > {
54381        StreamSocketProxyInterface::r#get_tcp_cork(self)
54382    }
54383
54384    /// Set `SOL_TCP` -> `TCP_KEEPIDLE`.
54385    pub fn r#set_tcp_keep_alive_idle(
54386        &self,
54387        mut value_secs: u32,
54388    ) -> fidl::client::QueryResponseFut<
54389        StreamSocketSetTcpKeepAliveIdleResult,
54390        fidl::encoding::DefaultFuchsiaResourceDialect,
54391    > {
54392        StreamSocketProxyInterface::r#set_tcp_keep_alive_idle(self, value_secs)
54393    }
54394
54395    /// Get `SOL_TCP` -> `TCP_KEEPIDLE`.
54396    pub fn r#get_tcp_keep_alive_idle(
54397        &self,
54398    ) -> fidl::client::QueryResponseFut<
54399        StreamSocketGetTcpKeepAliveIdleResult,
54400        fidl::encoding::DefaultFuchsiaResourceDialect,
54401    > {
54402        StreamSocketProxyInterface::r#get_tcp_keep_alive_idle(self)
54403    }
54404
54405    /// Set `SOL_TCP` -> `TCP_KEEPINTVL`.
54406    pub fn r#set_tcp_keep_alive_interval(
54407        &self,
54408        mut value_secs: u32,
54409    ) -> fidl::client::QueryResponseFut<
54410        StreamSocketSetTcpKeepAliveIntervalResult,
54411        fidl::encoding::DefaultFuchsiaResourceDialect,
54412    > {
54413        StreamSocketProxyInterface::r#set_tcp_keep_alive_interval(self, value_secs)
54414    }
54415
54416    /// Get `SOL_TCP` -> `TCP_KEEPINTVL`.
54417    pub fn r#get_tcp_keep_alive_interval(
54418        &self,
54419    ) -> fidl::client::QueryResponseFut<
54420        StreamSocketGetTcpKeepAliveIntervalResult,
54421        fidl::encoding::DefaultFuchsiaResourceDialect,
54422    > {
54423        StreamSocketProxyInterface::r#get_tcp_keep_alive_interval(self)
54424    }
54425
54426    /// Set `SOL_TCP` -> `TCP_KEEPCNT`.
54427    pub fn r#set_tcp_keep_alive_count(
54428        &self,
54429        mut value: u32,
54430    ) -> fidl::client::QueryResponseFut<
54431        StreamSocketSetTcpKeepAliveCountResult,
54432        fidl::encoding::DefaultFuchsiaResourceDialect,
54433    > {
54434        StreamSocketProxyInterface::r#set_tcp_keep_alive_count(self, value)
54435    }
54436
54437    /// Get `SOL_TCP` -> `TCP_KEEPCNT`.
54438    pub fn r#get_tcp_keep_alive_count(
54439        &self,
54440    ) -> fidl::client::QueryResponseFut<
54441        StreamSocketGetTcpKeepAliveCountResult,
54442        fidl::encoding::DefaultFuchsiaResourceDialect,
54443    > {
54444        StreamSocketProxyInterface::r#get_tcp_keep_alive_count(self)
54445    }
54446
54447    /// Set `SOL_TCP` -> `TCP_SYNCNT`.
54448    pub fn r#set_tcp_syn_count(
54449        &self,
54450        mut value: u32,
54451    ) -> fidl::client::QueryResponseFut<
54452        StreamSocketSetTcpSynCountResult,
54453        fidl::encoding::DefaultFuchsiaResourceDialect,
54454    > {
54455        StreamSocketProxyInterface::r#set_tcp_syn_count(self, value)
54456    }
54457
54458    /// Get `SOL_TCP` -> `TCP_SYNCNT`.
54459    pub fn r#get_tcp_syn_count(
54460        &self,
54461    ) -> fidl::client::QueryResponseFut<
54462        StreamSocketGetTcpSynCountResult,
54463        fidl::encoding::DefaultFuchsiaResourceDialect,
54464    > {
54465        StreamSocketProxyInterface::r#get_tcp_syn_count(self)
54466    }
54467
54468    /// Set `SOL_TCP` -> `TCP_LINGER2`.
54469    pub fn r#set_tcp_linger(
54470        &self,
54471        mut value_secs: &OptionalUint32,
54472    ) -> fidl::client::QueryResponseFut<
54473        StreamSocketSetTcpLingerResult,
54474        fidl::encoding::DefaultFuchsiaResourceDialect,
54475    > {
54476        StreamSocketProxyInterface::r#set_tcp_linger(self, value_secs)
54477    }
54478
54479    /// Get `SOL_TCP` -> `TCP_LINGER2`.
54480    pub fn r#get_tcp_linger(
54481        &self,
54482    ) -> fidl::client::QueryResponseFut<
54483        StreamSocketGetTcpLingerResult,
54484        fidl::encoding::DefaultFuchsiaResourceDialect,
54485    > {
54486        StreamSocketProxyInterface::r#get_tcp_linger(self)
54487    }
54488
54489    /// Set `SOL_TCP` -> `TCP_DEFER_ACCEPT`.
54490    pub fn r#set_tcp_defer_accept(
54491        &self,
54492        mut value_secs: u32,
54493    ) -> fidl::client::QueryResponseFut<
54494        StreamSocketSetTcpDeferAcceptResult,
54495        fidl::encoding::DefaultFuchsiaResourceDialect,
54496    > {
54497        StreamSocketProxyInterface::r#set_tcp_defer_accept(self, value_secs)
54498    }
54499
54500    /// Get `SOL_TCP` -> `TCP_DEFER_ACCEPT`.
54501    pub fn r#get_tcp_defer_accept(
54502        &self,
54503    ) -> fidl::client::QueryResponseFut<
54504        StreamSocketGetTcpDeferAcceptResult,
54505        fidl::encoding::DefaultFuchsiaResourceDialect,
54506    > {
54507        StreamSocketProxyInterface::r#get_tcp_defer_accept(self)
54508    }
54509
54510    /// Set `SOL_TCP` -> `TCP_WINDOW_CLAMP`.
54511    pub fn r#set_tcp_window_clamp(
54512        &self,
54513        mut value: u32,
54514    ) -> fidl::client::QueryResponseFut<
54515        StreamSocketSetTcpWindowClampResult,
54516        fidl::encoding::DefaultFuchsiaResourceDialect,
54517    > {
54518        StreamSocketProxyInterface::r#set_tcp_window_clamp(self, value)
54519    }
54520
54521    /// Get `SOL_TCP` -> `TCP_WINDOW_CLAMP`.
54522    pub fn r#get_tcp_window_clamp(
54523        &self,
54524    ) -> fidl::client::QueryResponseFut<
54525        StreamSocketGetTcpWindowClampResult,
54526        fidl::encoding::DefaultFuchsiaResourceDialect,
54527    > {
54528        StreamSocketProxyInterface::r#get_tcp_window_clamp(self)
54529    }
54530
54531    /// Get `SOL_TCP` -> `TCP_INFO`.
54532    pub fn r#get_tcp_info(
54533        &self,
54534    ) -> fidl::client::QueryResponseFut<
54535        StreamSocketGetTcpInfoResult,
54536        fidl::encoding::DefaultFuchsiaResourceDialect,
54537    > {
54538        StreamSocketProxyInterface::r#get_tcp_info(self)
54539    }
54540
54541    /// Set `SOL_TCP` -> `TCP_QUICKACK`.
54542    pub fn r#set_tcp_quick_ack(
54543        &self,
54544        mut value: bool,
54545    ) -> fidl::client::QueryResponseFut<
54546        StreamSocketSetTcpQuickAckResult,
54547        fidl::encoding::DefaultFuchsiaResourceDialect,
54548    > {
54549        StreamSocketProxyInterface::r#set_tcp_quick_ack(self, value)
54550    }
54551
54552    /// Get `SOL_TCP` -> `TCP_QUICKACK`.
54553    pub fn r#get_tcp_quick_ack(
54554        &self,
54555    ) -> fidl::client::QueryResponseFut<
54556        StreamSocketGetTcpQuickAckResult,
54557        fidl::encoding::DefaultFuchsiaResourceDialect,
54558    > {
54559        StreamSocketProxyInterface::r#get_tcp_quick_ack(self)
54560    }
54561
54562    /// Set `SOL_TCP` -> `TCP_CONGESTION`.
54563    pub fn r#set_tcp_congestion(
54564        &self,
54565        mut value: TcpCongestionControl,
54566    ) -> fidl::client::QueryResponseFut<
54567        StreamSocketSetTcpCongestionResult,
54568        fidl::encoding::DefaultFuchsiaResourceDialect,
54569    > {
54570        StreamSocketProxyInterface::r#set_tcp_congestion(self, value)
54571    }
54572
54573    /// Get `SOL_TCP` -> `TCP_CONGESTION`.
54574    pub fn r#get_tcp_congestion(
54575        &self,
54576    ) -> fidl::client::QueryResponseFut<
54577        StreamSocketGetTcpCongestionResult,
54578        fidl::encoding::DefaultFuchsiaResourceDialect,
54579    > {
54580        StreamSocketProxyInterface::r#get_tcp_congestion(self)
54581    }
54582
54583    /// Set `SOL_TCP` -> `TCP_USER_TIMEOUT`.
54584    pub fn r#set_tcp_user_timeout(
54585        &self,
54586        mut value_millis: u32,
54587    ) -> fidl::client::QueryResponseFut<
54588        StreamSocketSetTcpUserTimeoutResult,
54589        fidl::encoding::DefaultFuchsiaResourceDialect,
54590    > {
54591        StreamSocketProxyInterface::r#set_tcp_user_timeout(self, value_millis)
54592    }
54593
54594    /// Get `SOL_TCP` -> `TCP_USER_TIMEOUT`.
54595    pub fn r#get_tcp_user_timeout(
54596        &self,
54597    ) -> fidl::client::QueryResponseFut<
54598        StreamSocketGetTcpUserTimeoutResult,
54599        fidl::encoding::DefaultFuchsiaResourceDialect,
54600    > {
54601        StreamSocketProxyInterface::r#get_tcp_user_timeout(self)
54602    }
54603}
54604
54605impl StreamSocketProxyInterface for StreamSocketProxy {
54606    fn r#clone(
54607        &self,
54608        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
54609    ) -> Result<(), fidl::Error> {
54610        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
54611            (request,),
54612            0x20d8a7aba2168a79,
54613            fidl::encoding::DynamicFlags::empty(),
54614        )
54615    }
54616
54617    type CloseResponseFut = fidl::client::QueryResponseFut<
54618        fidl_fuchsia_unknown::CloseableCloseResult,
54619        fidl::encoding::DefaultFuchsiaResourceDialect,
54620    >;
54621    fn r#close(&self) -> Self::CloseResponseFut {
54622        fn _decode(
54623            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54624        ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
54625            let _response = fidl::client::decode_transaction_body::<
54626                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
54627                fidl::encoding::DefaultFuchsiaResourceDialect,
54628                0x5ac5d459ad7f657e,
54629            >(_buf?)?;
54630            Ok(_response.map(|x| x))
54631        }
54632        self.client.send_query_and_decode::<
54633            fidl::encoding::EmptyPayload,
54634            fidl_fuchsia_unknown::CloseableCloseResult,
54635        >(
54636            (),
54637            0x5ac5d459ad7f657e,
54638            fidl::encoding::DynamicFlags::empty(),
54639            _decode,
54640        )
54641    }
54642
54643    type QueryResponseFut =
54644        fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>;
54645    fn r#query(&self) -> Self::QueryResponseFut {
54646        fn _decode(
54647            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54648        ) -> Result<Vec<u8>, fidl::Error> {
54649            let _response = fidl::client::decode_transaction_body::<
54650                fidl_fuchsia_unknown::QueryableQueryResponse,
54651                fidl::encoding::DefaultFuchsiaResourceDialect,
54652                0x2658edee9decfc06,
54653            >(_buf?)?;
54654            Ok(_response.protocol)
54655        }
54656        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, Vec<u8>>(
54657            (),
54658            0x2658edee9decfc06,
54659            fidl::encoding::DynamicFlags::empty(),
54660            _decode,
54661        )
54662    }
54663
54664    type SetReuseAddressResponseFut = fidl::client::QueryResponseFut<
54665        BaseSocketSetReuseAddressResult,
54666        fidl::encoding::DefaultFuchsiaResourceDialect,
54667    >;
54668    fn r#set_reuse_address(&self, mut value: bool) -> Self::SetReuseAddressResponseFut {
54669        fn _decode(
54670            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54671        ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
54672            let _response = fidl::client::decode_transaction_body::<
54673                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54674                fidl::encoding::DefaultFuchsiaResourceDialect,
54675                0x1fd74ee8b9a4a876,
54676            >(_buf?)?;
54677            Ok(_response.map(|x| x))
54678        }
54679        self.client.send_query_and_decode::<
54680            BaseSocketSetReuseAddressRequest,
54681            BaseSocketSetReuseAddressResult,
54682        >(
54683            (value,),
54684            0x1fd74ee8b9a4a876,
54685            fidl::encoding::DynamicFlags::empty(),
54686            _decode,
54687        )
54688    }
54689
54690    type GetReuseAddressResponseFut = fidl::client::QueryResponseFut<
54691        BaseSocketGetReuseAddressResult,
54692        fidl::encoding::DefaultFuchsiaResourceDialect,
54693    >;
54694    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut {
54695        fn _decode(
54696            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54697        ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
54698            let _response = fidl::client::decode_transaction_body::<
54699                fidl::encoding::ResultType<
54700                    BaseSocketGetReuseAddressResponse,
54701                    fidl_fuchsia_posix::Errno,
54702                >,
54703                fidl::encoding::DefaultFuchsiaResourceDialect,
54704                0x67b7206b8d1bc0a5,
54705            >(_buf?)?;
54706            Ok(_response.map(|x| x.value))
54707        }
54708        self.client
54709            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReuseAddressResult>(
54710                (),
54711                0x67b7206b8d1bc0a5,
54712                fidl::encoding::DynamicFlags::empty(),
54713                _decode,
54714            )
54715    }
54716
54717    type GetErrorResponseFut = fidl::client::QueryResponseFut<
54718        BaseSocketGetErrorResult,
54719        fidl::encoding::DefaultFuchsiaResourceDialect,
54720    >;
54721    fn r#get_error(&self) -> Self::GetErrorResponseFut {
54722        fn _decode(
54723            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54724        ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
54725            let _response = fidl::client::decode_transaction_body::<
54726                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54727                fidl::encoding::DefaultFuchsiaResourceDialect,
54728                0x5aad39b33e5f6ebb,
54729            >(_buf?)?;
54730            Ok(_response.map(|x| x))
54731        }
54732        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetErrorResult>(
54733            (),
54734            0x5aad39b33e5f6ebb,
54735            fidl::encoding::DynamicFlags::empty(),
54736            _decode,
54737        )
54738    }
54739
54740    type SetBroadcastResponseFut = fidl::client::QueryResponseFut<
54741        BaseSocketSetBroadcastResult,
54742        fidl::encoding::DefaultFuchsiaResourceDialect,
54743    >;
54744    fn r#set_broadcast(&self, mut value: bool) -> Self::SetBroadcastResponseFut {
54745        fn _decode(
54746            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54747        ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
54748            let _response = fidl::client::decode_transaction_body::<
54749                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54750                fidl::encoding::DefaultFuchsiaResourceDialect,
54751                0x6023e081ce3cd947,
54752            >(_buf?)?;
54753            Ok(_response.map(|x| x))
54754        }
54755        self.client
54756            .send_query_and_decode::<BaseSocketSetBroadcastRequest, BaseSocketSetBroadcastResult>(
54757                (value,),
54758                0x6023e081ce3cd947,
54759                fidl::encoding::DynamicFlags::empty(),
54760                _decode,
54761            )
54762    }
54763
54764    type GetBroadcastResponseFut = fidl::client::QueryResponseFut<
54765        BaseSocketGetBroadcastResult,
54766        fidl::encoding::DefaultFuchsiaResourceDialect,
54767    >;
54768    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut {
54769        fn _decode(
54770            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54771        ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
54772            let _response = fidl::client::decode_transaction_body::<
54773                fidl::encoding::ResultType<
54774                    BaseSocketGetBroadcastResponse,
54775                    fidl_fuchsia_posix::Errno,
54776                >,
54777                fidl::encoding::DefaultFuchsiaResourceDialect,
54778                0x68796fc556f9780d,
54779            >(_buf?)?;
54780            Ok(_response.map(|x| x.value))
54781        }
54782        self.client
54783            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBroadcastResult>(
54784                (),
54785                0x68796fc556f9780d,
54786                fidl::encoding::DynamicFlags::empty(),
54787                _decode,
54788            )
54789    }
54790
54791    type SetSendBufferResponseFut = fidl::client::QueryResponseFut<
54792        BaseSocketSetSendBufferResult,
54793        fidl::encoding::DefaultFuchsiaResourceDialect,
54794    >;
54795    fn r#set_send_buffer(&self, mut value_bytes: u64) -> Self::SetSendBufferResponseFut {
54796        fn _decode(
54797            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54798        ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
54799            let _response = fidl::client::decode_transaction_body::<
54800                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54801                fidl::encoding::DefaultFuchsiaResourceDialect,
54802                0x756eac32d73a7a70,
54803            >(_buf?)?;
54804            Ok(_response.map(|x| x))
54805        }
54806        self.client
54807            .send_query_and_decode::<BaseSocketSetSendBufferRequest, BaseSocketSetSendBufferResult>(
54808                (value_bytes,),
54809                0x756eac32d73a7a70,
54810                fidl::encoding::DynamicFlags::empty(),
54811                _decode,
54812            )
54813    }
54814
54815    type GetSendBufferResponseFut = fidl::client::QueryResponseFut<
54816        BaseSocketGetSendBufferResult,
54817        fidl::encoding::DefaultFuchsiaResourceDialect,
54818    >;
54819    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut {
54820        fn _decode(
54821            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54822        ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
54823            let _response = fidl::client::decode_transaction_body::<
54824                fidl::encoding::ResultType<
54825                    BaseSocketGetSendBufferResponse,
54826                    fidl_fuchsia_posix::Errno,
54827                >,
54828                fidl::encoding::DefaultFuchsiaResourceDialect,
54829                0x78a52fd9c7b2410b,
54830            >(_buf?)?;
54831            Ok(_response.map(|x| x.value_bytes))
54832        }
54833        self.client
54834            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetSendBufferResult>(
54835                (),
54836                0x78a52fd9c7b2410b,
54837                fidl::encoding::DynamicFlags::empty(),
54838                _decode,
54839            )
54840    }
54841
54842    type SetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
54843        BaseSocketSetReceiveBufferResult,
54844        fidl::encoding::DefaultFuchsiaResourceDialect,
54845    >;
54846    fn r#set_receive_buffer(&self, mut value_bytes: u64) -> Self::SetReceiveBufferResponseFut {
54847        fn _decode(
54848            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54849        ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
54850            let _response = fidl::client::decode_transaction_body::<
54851                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54852                fidl::encoding::DefaultFuchsiaResourceDialect,
54853                0x6b0cf2f1919c7001,
54854            >(_buf?)?;
54855            Ok(_response.map(|x| x))
54856        }
54857        self.client.send_query_and_decode::<
54858            BaseSocketSetReceiveBufferRequest,
54859            BaseSocketSetReceiveBufferResult,
54860        >(
54861            (value_bytes,),
54862            0x6b0cf2f1919c7001,
54863            fidl::encoding::DynamicFlags::empty(),
54864            _decode,
54865        )
54866    }
54867
54868    type GetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
54869        BaseSocketGetReceiveBufferResult,
54870        fidl::encoding::DefaultFuchsiaResourceDialect,
54871    >;
54872    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut {
54873        fn _decode(
54874            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54875        ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
54876            let _response = fidl::client::decode_transaction_body::<
54877                fidl::encoding::ResultType<
54878                    BaseSocketGetReceiveBufferResponse,
54879                    fidl_fuchsia_posix::Errno,
54880                >,
54881                fidl::encoding::DefaultFuchsiaResourceDialect,
54882                0x14c1a4b64f709e5c,
54883            >(_buf?)?;
54884            Ok(_response.map(|x| x.value_bytes))
54885        }
54886        self.client.send_query_and_decode::<
54887            fidl::encoding::EmptyPayload,
54888            BaseSocketGetReceiveBufferResult,
54889        >(
54890            (),
54891            0x14c1a4b64f709e5c,
54892            fidl::encoding::DynamicFlags::empty(),
54893            _decode,
54894        )
54895    }
54896
54897    type SetKeepAliveResponseFut = fidl::client::QueryResponseFut<
54898        BaseSocketSetKeepAliveResult,
54899        fidl::encoding::DefaultFuchsiaResourceDialect,
54900    >;
54901    fn r#set_keep_alive(&self, mut value: bool) -> Self::SetKeepAliveResponseFut {
54902        fn _decode(
54903            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54904        ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
54905            let _response = fidl::client::decode_transaction_body::<
54906                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54907                fidl::encoding::DefaultFuchsiaResourceDialect,
54908                0x572df8f0b920d2c7,
54909            >(_buf?)?;
54910            Ok(_response.map(|x| x))
54911        }
54912        self.client
54913            .send_query_and_decode::<BaseSocketSetKeepAliveRequest, BaseSocketSetKeepAliveResult>(
54914                (value,),
54915                0x572df8f0b920d2c7,
54916                fidl::encoding::DynamicFlags::empty(),
54917                _decode,
54918            )
54919    }
54920
54921    type GetKeepAliveResponseFut = fidl::client::QueryResponseFut<
54922        BaseSocketGetKeepAliveResult,
54923        fidl::encoding::DefaultFuchsiaResourceDialect,
54924    >;
54925    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut {
54926        fn _decode(
54927            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54928        ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
54929            let _response = fidl::client::decode_transaction_body::<
54930                fidl::encoding::ResultType<
54931                    BaseSocketGetKeepAliveResponse,
54932                    fidl_fuchsia_posix::Errno,
54933                >,
54934                fidl::encoding::DefaultFuchsiaResourceDialect,
54935                0x2dd29d3215f2c9d2,
54936            >(_buf?)?;
54937            Ok(_response.map(|x| x.value))
54938        }
54939        self.client
54940            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetKeepAliveResult>(
54941                (),
54942                0x2dd29d3215f2c9d2,
54943                fidl::encoding::DynamicFlags::empty(),
54944                _decode,
54945            )
54946    }
54947
54948    type SetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
54949        BaseSocketSetOutOfBandInlineResult,
54950        fidl::encoding::DefaultFuchsiaResourceDialect,
54951    >;
54952    fn r#set_out_of_band_inline(&self, mut value: bool) -> Self::SetOutOfBandInlineResponseFut {
54953        fn _decode(
54954            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54955        ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
54956            let _response = fidl::client::decode_transaction_body::<
54957                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54958                fidl::encoding::DefaultFuchsiaResourceDialect,
54959                0x3ecb49968bee439,
54960            >(_buf?)?;
54961            Ok(_response.map(|x| x))
54962        }
54963        self.client.send_query_and_decode::<
54964            BaseSocketSetOutOfBandInlineRequest,
54965            BaseSocketSetOutOfBandInlineResult,
54966        >(
54967            (value,),
54968            0x3ecb49968bee439,
54969            fidl::encoding::DynamicFlags::empty(),
54970            _decode,
54971        )
54972    }
54973
54974    type GetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
54975        BaseSocketGetOutOfBandInlineResult,
54976        fidl::encoding::DefaultFuchsiaResourceDialect,
54977    >;
54978    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut {
54979        fn _decode(
54980            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54981        ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
54982            let _response = fidl::client::decode_transaction_body::<
54983                fidl::encoding::ResultType<
54984                    BaseSocketGetOutOfBandInlineResponse,
54985                    fidl_fuchsia_posix::Errno,
54986                >,
54987                fidl::encoding::DefaultFuchsiaResourceDialect,
54988                0x348c1ab3aeca1745,
54989            >(_buf?)?;
54990            Ok(_response.map(|x| x.value))
54991        }
54992        self.client.send_query_and_decode::<
54993            fidl::encoding::EmptyPayload,
54994            BaseSocketGetOutOfBandInlineResult,
54995        >(
54996            (),
54997            0x348c1ab3aeca1745,
54998            fidl::encoding::DynamicFlags::empty(),
54999            _decode,
55000        )
55001    }
55002
55003    type SetNoCheckResponseFut = fidl::client::QueryResponseFut<
55004        BaseSocketSetNoCheckResult,
55005        fidl::encoding::DefaultFuchsiaResourceDialect,
55006    >;
55007    fn r#set_no_check(&self, mut value: bool) -> Self::SetNoCheckResponseFut {
55008        fn _decode(
55009            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55010        ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
55011            let _response = fidl::client::decode_transaction_body::<
55012                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55013                fidl::encoding::DefaultFuchsiaResourceDialect,
55014                0x6bbf00c53a4c78c2,
55015            >(_buf?)?;
55016            Ok(_response.map(|x| x))
55017        }
55018        self.client
55019            .send_query_and_decode::<BaseSocketSetNoCheckRequest, BaseSocketSetNoCheckResult>(
55020                (value,),
55021                0x6bbf00c53a4c78c2,
55022                fidl::encoding::DynamicFlags::empty(),
55023                _decode,
55024            )
55025    }
55026
55027    type GetNoCheckResponseFut = fidl::client::QueryResponseFut<
55028        BaseSocketGetNoCheckResult,
55029        fidl::encoding::DefaultFuchsiaResourceDialect,
55030    >;
55031    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut {
55032        fn _decode(
55033            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55034        ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
55035            let _response = fidl::client::decode_transaction_body::<
55036                fidl::encoding::ResultType<BaseSocketGetNoCheckResponse, fidl_fuchsia_posix::Errno>,
55037                fidl::encoding::DefaultFuchsiaResourceDialect,
55038                0x2cd4249286417694,
55039            >(_buf?)?;
55040            Ok(_response.map(|x| x.value))
55041        }
55042        self.client
55043            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetNoCheckResult>(
55044                (),
55045                0x2cd4249286417694,
55046                fidl::encoding::DynamicFlags::empty(),
55047                _decode,
55048            )
55049    }
55050
55051    type SetLingerResponseFut = fidl::client::QueryResponseFut<
55052        BaseSocketSetLingerResult,
55053        fidl::encoding::DefaultFuchsiaResourceDialect,
55054    >;
55055    fn r#set_linger(&self, mut linger: bool, mut length_secs: u32) -> Self::SetLingerResponseFut {
55056        fn _decode(
55057            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55058        ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
55059            let _response = fidl::client::decode_transaction_body::<
55060                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55061                fidl::encoding::DefaultFuchsiaResourceDialect,
55062                0x45386351246e998e,
55063            >(_buf?)?;
55064            Ok(_response.map(|x| x))
55065        }
55066        self.client.send_query_and_decode::<BaseSocketSetLingerRequest, BaseSocketSetLingerResult>(
55067            (linger, length_secs),
55068            0x45386351246e998e,
55069            fidl::encoding::DynamicFlags::empty(),
55070            _decode,
55071        )
55072    }
55073
55074    type GetLingerResponseFut = fidl::client::QueryResponseFut<
55075        BaseSocketGetLingerResult,
55076        fidl::encoding::DefaultFuchsiaResourceDialect,
55077    >;
55078    fn r#get_linger(&self) -> Self::GetLingerResponseFut {
55079        fn _decode(
55080            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55081        ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
55082            let _response = fidl::client::decode_transaction_body::<
55083                fidl::encoding::ResultType<BaseSocketGetLingerResponse, fidl_fuchsia_posix::Errno>,
55084                fidl::encoding::DefaultFuchsiaResourceDialect,
55085                0x48eb20fc5ccb0e45,
55086            >(_buf?)?;
55087            Ok(_response.map(|x| (x.linger, x.length_secs)))
55088        }
55089        self.client
55090            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetLingerResult>(
55091                (),
55092                0x48eb20fc5ccb0e45,
55093                fidl::encoding::DynamicFlags::empty(),
55094                _decode,
55095            )
55096    }
55097
55098    type SetReusePortResponseFut = fidl::client::QueryResponseFut<
55099        BaseSocketSetReusePortResult,
55100        fidl::encoding::DefaultFuchsiaResourceDialect,
55101    >;
55102    fn r#set_reuse_port(&self, mut value: ReusePortOption) -> Self::SetReusePortResponseFut {
55103        fn _decode(
55104            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55105        ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
55106            let _response = fidl::client::decode_transaction_body::<
55107                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55108                fidl::encoding::DefaultFuchsiaResourceDialect,
55109                0x547dc9cc0455189e,
55110            >(_buf?)?;
55111            Ok(_response.map(|x| x))
55112        }
55113        self.client
55114            .send_query_and_decode::<BaseSocketSetReusePortRequest, BaseSocketSetReusePortResult>(
55115                (&mut value,),
55116                0x547dc9cc0455189e,
55117                fidl::encoding::DynamicFlags::empty(),
55118                _decode,
55119            )
55120    }
55121
55122    type SetReusePortDeprecatedResponseFut = fidl::client::QueryResponseFut<
55123        BaseSocketSetReusePortDeprecatedResult,
55124        fidl::encoding::DefaultFuchsiaResourceDialect,
55125    >;
55126    fn r#set_reuse_port_deprecated(
55127        &self,
55128        mut value: bool,
55129    ) -> Self::SetReusePortDeprecatedResponseFut {
55130        fn _decode(
55131            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55132        ) -> Result<BaseSocketSetReusePortDeprecatedResult, fidl::Error> {
55133            let _response = fidl::client::decode_transaction_body::<
55134                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55135                fidl::encoding::DefaultFuchsiaResourceDialect,
55136                0x24dd3e5cb36d9ccb,
55137            >(_buf?)?;
55138            Ok(_response.map(|x| x))
55139        }
55140        self.client.send_query_and_decode::<
55141            BaseSocketSetReusePortDeprecatedRequest,
55142            BaseSocketSetReusePortDeprecatedResult,
55143        >(
55144            (value,),
55145            0x24dd3e5cb36d9ccb,
55146            fidl::encoding::DynamicFlags::empty(),
55147            _decode,
55148        )
55149    }
55150
55151    type GetReusePortResponseFut = fidl::client::QueryResponseFut<
55152        BaseSocketGetReusePortResult,
55153        fidl::encoding::DefaultFuchsiaResourceDialect,
55154    >;
55155    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut {
55156        fn _decode(
55157            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55158        ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
55159            let _response = fidl::client::decode_transaction_body::<
55160                fidl::encoding::ResultType<
55161                    BaseSocketGetReusePortResponse,
55162                    fidl_fuchsia_posix::Errno,
55163                >,
55164                fidl::encoding::DefaultFuchsiaResourceDialect,
55165                0x7a112c1ab54ff828,
55166            >(_buf?)?;
55167            Ok(_response.map(|x| x.value))
55168        }
55169        self.client
55170            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReusePortResult>(
55171                (),
55172                0x7a112c1ab54ff828,
55173                fidl::encoding::DynamicFlags::empty(),
55174                _decode,
55175            )
55176    }
55177
55178    type GetAcceptConnResponseFut = fidl::client::QueryResponseFut<
55179        BaseSocketGetAcceptConnResult,
55180        fidl::encoding::DefaultFuchsiaResourceDialect,
55181    >;
55182    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut {
55183        fn _decode(
55184            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55185        ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
55186            let _response = fidl::client::decode_transaction_body::<
55187                fidl::encoding::ResultType<
55188                    BaseSocketGetAcceptConnResponse,
55189                    fidl_fuchsia_posix::Errno,
55190                >,
55191                fidl::encoding::DefaultFuchsiaResourceDialect,
55192                0x67ce6db6c2ec8966,
55193            >(_buf?)?;
55194            Ok(_response.map(|x| x.value))
55195        }
55196        self.client
55197            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetAcceptConnResult>(
55198                (),
55199                0x67ce6db6c2ec8966,
55200                fidl::encoding::DynamicFlags::empty(),
55201                _decode,
55202            )
55203    }
55204
55205    type SetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
55206        BaseSocketSetBindToDeviceResult,
55207        fidl::encoding::DefaultFuchsiaResourceDialect,
55208    >;
55209    fn r#set_bind_to_device(&self, mut value: &str) -> Self::SetBindToDeviceResponseFut {
55210        fn _decode(
55211            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55212        ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
55213            let _response = fidl::client::decode_transaction_body::<
55214                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55215                fidl::encoding::DefaultFuchsiaResourceDialect,
55216                0x2118b483f28aafc4,
55217            >(_buf?)?;
55218            Ok(_response.map(|x| x))
55219        }
55220        self.client.send_query_and_decode::<
55221            BaseSocketSetBindToDeviceRequest,
55222            BaseSocketSetBindToDeviceResult,
55223        >(
55224            (value,),
55225            0x2118b483f28aafc4,
55226            fidl::encoding::DynamicFlags::empty(),
55227            _decode,
55228        )
55229    }
55230
55231    type GetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
55232        BaseSocketGetBindToDeviceResult,
55233        fidl::encoding::DefaultFuchsiaResourceDialect,
55234    >;
55235    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut {
55236        fn _decode(
55237            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55238        ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
55239            let _response = fidl::client::decode_transaction_body::<
55240                fidl::encoding::ResultType<
55241                    BaseSocketGetBindToDeviceResponse,
55242                    fidl_fuchsia_posix::Errno,
55243                >,
55244                fidl::encoding::DefaultFuchsiaResourceDialect,
55245                0x1ab1fbf0ef7906c8,
55246            >(_buf?)?;
55247            Ok(_response.map(|x| x.value))
55248        }
55249        self.client
55250            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBindToDeviceResult>(
55251                (),
55252                0x1ab1fbf0ef7906c8,
55253                fidl::encoding::DynamicFlags::empty(),
55254                _decode,
55255            )
55256    }
55257
55258    type SetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
55259        BaseSocketSetBindToInterfaceIndexResult,
55260        fidl::encoding::DefaultFuchsiaResourceDialect,
55261    >;
55262    fn r#set_bind_to_interface_index(
55263        &self,
55264        mut value: u64,
55265    ) -> Self::SetBindToInterfaceIndexResponseFut {
55266        fn _decode(
55267            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55268        ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
55269            let _response = fidl::client::decode_transaction_body::<
55270                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55271                fidl::encoding::DefaultFuchsiaResourceDialect,
55272                0x6e387a0def00821,
55273            >(_buf?)?;
55274            Ok(_response.map(|x| x))
55275        }
55276        self.client.send_query_and_decode::<
55277            BaseSocketSetBindToInterfaceIndexRequest,
55278            BaseSocketSetBindToInterfaceIndexResult,
55279        >(
55280            (value,),
55281            0x6e387a0def00821,
55282            fidl::encoding::DynamicFlags::empty(),
55283            _decode,
55284        )
55285    }
55286
55287    type GetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
55288        BaseSocketGetBindToInterfaceIndexResult,
55289        fidl::encoding::DefaultFuchsiaResourceDialect,
55290    >;
55291    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut {
55292        fn _decode(
55293            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55294        ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
55295            let _response = fidl::client::decode_transaction_body::<
55296                fidl::encoding::ResultType<
55297                    BaseSocketGetBindToInterfaceIndexResponse,
55298                    fidl_fuchsia_posix::Errno,
55299                >,
55300                fidl::encoding::DefaultFuchsiaResourceDialect,
55301                0x59c31dd3e3078295,
55302            >(_buf?)?;
55303            Ok(_response.map(|x| x.value))
55304        }
55305        self.client.send_query_and_decode::<
55306            fidl::encoding::EmptyPayload,
55307            BaseSocketGetBindToInterfaceIndexResult,
55308        >(
55309            (),
55310            0x59c31dd3e3078295,
55311            fidl::encoding::DynamicFlags::empty(),
55312            _decode,
55313        )
55314    }
55315
55316    type SetTimestampResponseFut = fidl::client::QueryResponseFut<
55317        BaseSocketSetTimestampResult,
55318        fidl::encoding::DefaultFuchsiaResourceDialect,
55319    >;
55320    fn r#set_timestamp(&self, mut value: TimestampOption) -> Self::SetTimestampResponseFut {
55321        fn _decode(
55322            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55323        ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
55324            let _response = fidl::client::decode_transaction_body::<
55325                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55326                fidl::encoding::DefaultFuchsiaResourceDialect,
55327                0x285d6516c263d839,
55328            >(_buf?)?;
55329            Ok(_response.map(|x| x))
55330        }
55331        self.client
55332            .send_query_and_decode::<BaseSocketSetTimestampRequest, BaseSocketSetTimestampResult>(
55333                (value,),
55334                0x285d6516c263d839,
55335                fidl::encoding::DynamicFlags::empty(),
55336                _decode,
55337            )
55338    }
55339
55340    type GetTimestampResponseFut = fidl::client::QueryResponseFut<
55341        BaseSocketGetTimestampResult,
55342        fidl::encoding::DefaultFuchsiaResourceDialect,
55343    >;
55344    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut {
55345        fn _decode(
55346            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55347        ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
55348            let _response = fidl::client::decode_transaction_body::<
55349                fidl::encoding::ResultType<
55350                    BaseSocketGetTimestampResponse,
55351                    fidl_fuchsia_posix::Errno,
55352                >,
55353                fidl::encoding::DefaultFuchsiaResourceDialect,
55354                0x49f2fffbbcc2bd27,
55355            >(_buf?)?;
55356            Ok(_response.map(|x| x.value))
55357        }
55358        self.client
55359            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetTimestampResult>(
55360                (),
55361                0x49f2fffbbcc2bd27,
55362                fidl::encoding::DynamicFlags::empty(),
55363                _decode,
55364            )
55365    }
55366
55367    type SetMarkResponseFut = fidl::client::QueryResponseFut<
55368        BaseSocketSetMarkResult,
55369        fidl::encoding::DefaultFuchsiaResourceDialect,
55370    >;
55371    fn r#set_mark(
55372        &self,
55373        mut domain: fidl_fuchsia_net::MarkDomain,
55374        mut mark: &OptionalUint32,
55375    ) -> Self::SetMarkResponseFut {
55376        fn _decode(
55377            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55378        ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
55379            let _response = fidl::client::decode_transaction_body::<
55380                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55381                fidl::encoding::DefaultFuchsiaResourceDialect,
55382                0x6ead6de09f653236,
55383            >(_buf?)?;
55384            Ok(_response.map(|x| x))
55385        }
55386        self.client.send_query_and_decode::<BaseSocketSetMarkRequest, BaseSocketSetMarkResult>(
55387            (domain, mark),
55388            0x6ead6de09f653236,
55389            fidl::encoding::DynamicFlags::empty(),
55390            _decode,
55391        )
55392    }
55393
55394    type GetMarkResponseFut = fidl::client::QueryResponseFut<
55395        BaseSocketGetMarkResult,
55396        fidl::encoding::DefaultFuchsiaResourceDialect,
55397    >;
55398    fn r#get_mark(&self, mut domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut {
55399        fn _decode(
55400            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55401        ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
55402            let _response = fidl::client::decode_transaction_body::<
55403                fidl::encoding::ResultType<BaseSocketGetMarkResponse, fidl_fuchsia_posix::Errno>,
55404                fidl::encoding::DefaultFuchsiaResourceDialect,
55405                0x57a2752c61d93d47,
55406            >(_buf?)?;
55407            Ok(_response.map(|x| x.mark))
55408        }
55409        self.client.send_query_and_decode::<BaseSocketGetMarkRequest, BaseSocketGetMarkResult>(
55410            (domain,),
55411            0x57a2752c61d93d47,
55412            fidl::encoding::DynamicFlags::empty(),
55413            _decode,
55414        )
55415    }
55416
55417    type GetCookieResponseFut = fidl::client::QueryResponseFut<
55418        BaseSocketGetCookieResult,
55419        fidl::encoding::DefaultFuchsiaResourceDialect,
55420    >;
55421    fn r#get_cookie(&self) -> Self::GetCookieResponseFut {
55422        fn _decode(
55423            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55424        ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
55425            let _response = fidl::client::decode_transaction_body::<
55426                fidl::encoding::ResultType<BaseSocketGetCookieResponse, fidl_fuchsia_posix::Errno>,
55427                fidl::encoding::DefaultFuchsiaResourceDialect,
55428                0x2c2f47fd8f924e52,
55429            >(_buf?)?;
55430            Ok(_response.map(|x| x.value))
55431        }
55432        self.client
55433            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetCookieResult>(
55434                (),
55435                0x2c2f47fd8f924e52,
55436                fidl::encoding::DynamicFlags::empty(),
55437                _decode,
55438            )
55439    }
55440
55441    type BindResponseFut = fidl::client::QueryResponseFut<
55442        BaseNetworkSocketBindResult,
55443        fidl::encoding::DefaultFuchsiaResourceDialect,
55444    >;
55445    fn r#bind(&self, mut addr: &fidl_fuchsia_net::SocketAddress) -> Self::BindResponseFut {
55446        fn _decode(
55447            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55448        ) -> Result<BaseNetworkSocketBindResult, fidl::Error> {
55449            let _response = fidl::client::decode_transaction_body::<
55450                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55451                fidl::encoding::DefaultFuchsiaResourceDialect,
55452                0x4bc6400ae92125d,
55453            >(_buf?)?;
55454            Ok(_response.map(|x| x))
55455        }
55456        self.client
55457            .send_query_and_decode::<BaseNetworkSocketBindRequest, BaseNetworkSocketBindResult>(
55458                (addr,),
55459                0x4bc6400ae92125d,
55460                fidl::encoding::DynamicFlags::empty(),
55461                _decode,
55462            )
55463    }
55464
55465    type ConnectResponseFut = fidl::client::QueryResponseFut<
55466        BaseNetworkSocketConnectResult,
55467        fidl::encoding::DefaultFuchsiaResourceDialect,
55468    >;
55469    fn r#connect(&self, mut addr: &fidl_fuchsia_net::SocketAddress) -> Self::ConnectResponseFut {
55470        fn _decode(
55471            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55472        ) -> Result<BaseNetworkSocketConnectResult, fidl::Error> {
55473            let _response = fidl::client::decode_transaction_body::<
55474                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55475                fidl::encoding::DefaultFuchsiaResourceDialect,
55476                0x5f05f19bfdd38871,
55477            >(_buf?)?;
55478            Ok(_response.map(|x| x))
55479        }
55480        self.client.send_query_and_decode::<
55481            BaseNetworkSocketConnectRequest,
55482            BaseNetworkSocketConnectResult,
55483        >(
55484            (addr,),
55485            0x5f05f19bfdd38871,
55486            fidl::encoding::DynamicFlags::empty(),
55487            _decode,
55488        )
55489    }
55490
55491    type DisconnectResponseFut = fidl::client::QueryResponseFut<
55492        BaseNetworkSocketDisconnectResult,
55493        fidl::encoding::DefaultFuchsiaResourceDialect,
55494    >;
55495    fn r#disconnect(&self) -> Self::DisconnectResponseFut {
55496        fn _decode(
55497            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55498        ) -> Result<BaseNetworkSocketDisconnectResult, fidl::Error> {
55499            let _response = fidl::client::decode_transaction_body::<
55500                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55501                fidl::encoding::DefaultFuchsiaResourceDialect,
55502                0x74e63b91f7b29b2,
55503            >(_buf?)?;
55504            Ok(_response.map(|x| x))
55505        }
55506        self.client.send_query_and_decode::<
55507            fidl::encoding::EmptyPayload,
55508            BaseNetworkSocketDisconnectResult,
55509        >(
55510            (),
55511            0x74e63b91f7b29b2,
55512            fidl::encoding::DynamicFlags::empty(),
55513            _decode,
55514        )
55515    }
55516
55517    type GetSockNameResponseFut = fidl::client::QueryResponseFut<
55518        BaseNetworkSocketGetSockNameResult,
55519        fidl::encoding::DefaultFuchsiaResourceDialect,
55520    >;
55521    fn r#get_sock_name(&self) -> Self::GetSockNameResponseFut {
55522        fn _decode(
55523            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55524        ) -> Result<BaseNetworkSocketGetSockNameResult, fidl::Error> {
55525            let _response = fidl::client::decode_transaction_body::<
55526                fidl::encoding::ResultType<
55527                    BaseNetworkSocketGetSockNameResponse,
55528                    fidl_fuchsia_posix::Errno,
55529                >,
55530                fidl::encoding::DefaultFuchsiaResourceDialect,
55531                0x475f23f84a1a4f85,
55532            >(_buf?)?;
55533            Ok(_response.map(|x| x.addr))
55534        }
55535        self.client.send_query_and_decode::<
55536            fidl::encoding::EmptyPayload,
55537            BaseNetworkSocketGetSockNameResult,
55538        >(
55539            (),
55540            0x475f23f84a1a4f85,
55541            fidl::encoding::DynamicFlags::empty(),
55542            _decode,
55543        )
55544    }
55545
55546    type GetPeerNameResponseFut = fidl::client::QueryResponseFut<
55547        BaseNetworkSocketGetPeerNameResult,
55548        fidl::encoding::DefaultFuchsiaResourceDialect,
55549    >;
55550    fn r#get_peer_name(&self) -> Self::GetPeerNameResponseFut {
55551        fn _decode(
55552            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55553        ) -> Result<BaseNetworkSocketGetPeerNameResult, fidl::Error> {
55554            let _response = fidl::client::decode_transaction_body::<
55555                fidl::encoding::ResultType<
55556                    BaseNetworkSocketGetPeerNameResponse,
55557                    fidl_fuchsia_posix::Errno,
55558                >,
55559                fidl::encoding::DefaultFuchsiaResourceDialect,
55560                0x1ffecf4bd5b6432e,
55561            >(_buf?)?;
55562            Ok(_response.map(|x| x.addr))
55563        }
55564        self.client.send_query_and_decode::<
55565            fidl::encoding::EmptyPayload,
55566            BaseNetworkSocketGetPeerNameResult,
55567        >(
55568            (),
55569            0x1ffecf4bd5b6432e,
55570            fidl::encoding::DynamicFlags::empty(),
55571            _decode,
55572        )
55573    }
55574
55575    type ShutdownResponseFut = fidl::client::QueryResponseFut<
55576        BaseNetworkSocketShutdownResult,
55577        fidl::encoding::DefaultFuchsiaResourceDialect,
55578    >;
55579    fn r#shutdown(&self, mut mode: ShutdownMode) -> Self::ShutdownResponseFut {
55580        fn _decode(
55581            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55582        ) -> Result<BaseNetworkSocketShutdownResult, fidl::Error> {
55583            let _response = fidl::client::decode_transaction_body::<
55584                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55585                fidl::encoding::DefaultFuchsiaResourceDialect,
55586                0x247f38b6db68c336,
55587            >(_buf?)?;
55588            Ok(_response.map(|x| x))
55589        }
55590        self.client.send_query_and_decode::<
55591            BaseNetworkSocketShutdownRequest,
55592            BaseNetworkSocketShutdownResult,
55593        >(
55594            (mode,),
55595            0x247f38b6db68c336,
55596            fidl::encoding::DynamicFlags::empty(),
55597            _decode,
55598        )
55599    }
55600
55601    type SetIpTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
55602        BaseNetworkSocketSetIpTypeOfServiceResult,
55603        fidl::encoding::DefaultFuchsiaResourceDialect,
55604    >;
55605    fn r#set_ip_type_of_service(&self, mut value: u8) -> Self::SetIpTypeOfServiceResponseFut {
55606        fn _decode(
55607            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55608        ) -> Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error> {
55609            let _response = fidl::client::decode_transaction_body::<
55610                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55611                fidl::encoding::DefaultFuchsiaResourceDialect,
55612                0x995c600475b6d46,
55613            >(_buf?)?;
55614            Ok(_response.map(|x| x))
55615        }
55616        self.client.send_query_and_decode::<
55617            BaseNetworkSocketSetIpTypeOfServiceRequest,
55618            BaseNetworkSocketSetIpTypeOfServiceResult,
55619        >(
55620            (value,),
55621            0x995c600475b6d46,
55622            fidl::encoding::DynamicFlags::empty(),
55623            _decode,
55624        )
55625    }
55626
55627    type GetIpTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
55628        BaseNetworkSocketGetIpTypeOfServiceResult,
55629        fidl::encoding::DefaultFuchsiaResourceDialect,
55630    >;
55631    fn r#get_ip_type_of_service(&self) -> Self::GetIpTypeOfServiceResponseFut {
55632        fn _decode(
55633            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55634        ) -> Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error> {
55635            let _response = fidl::client::decode_transaction_body::<
55636                fidl::encoding::ResultType<
55637                    BaseNetworkSocketGetIpTypeOfServiceResponse,
55638                    fidl_fuchsia_posix::Errno,
55639                >,
55640                fidl::encoding::DefaultFuchsiaResourceDialect,
55641                0x3814a04259f75fcb,
55642            >(_buf?)?;
55643            Ok(_response.map(|x| x.value))
55644        }
55645        self.client.send_query_and_decode::<
55646            fidl::encoding::EmptyPayload,
55647            BaseNetworkSocketGetIpTypeOfServiceResult,
55648        >(
55649            (),
55650            0x3814a04259f75fcb,
55651            fidl::encoding::DynamicFlags::empty(),
55652            _decode,
55653        )
55654    }
55655
55656    type SetIpTtlResponseFut = fidl::client::QueryResponseFut<
55657        BaseNetworkSocketSetIpTtlResult,
55658        fidl::encoding::DefaultFuchsiaResourceDialect,
55659    >;
55660    fn r#set_ip_ttl(&self, mut value: &OptionalUint8) -> Self::SetIpTtlResponseFut {
55661        fn _decode(
55662            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55663        ) -> Result<BaseNetworkSocketSetIpTtlResult, fidl::Error> {
55664            let _response = fidl::client::decode_transaction_body::<
55665                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55666                fidl::encoding::DefaultFuchsiaResourceDialect,
55667                0x29e2424b433ae1ef,
55668            >(_buf?)?;
55669            Ok(_response.map(|x| x))
55670        }
55671        self.client.send_query_and_decode::<
55672            BaseNetworkSocketSetIpTtlRequest,
55673            BaseNetworkSocketSetIpTtlResult,
55674        >(
55675            (value,),
55676            0x29e2424b433ae1ef,
55677            fidl::encoding::DynamicFlags::empty(),
55678            _decode,
55679        )
55680    }
55681
55682    type GetIpTtlResponseFut = fidl::client::QueryResponseFut<
55683        BaseNetworkSocketGetIpTtlResult,
55684        fidl::encoding::DefaultFuchsiaResourceDialect,
55685    >;
55686    fn r#get_ip_ttl(&self) -> Self::GetIpTtlResponseFut {
55687        fn _decode(
55688            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55689        ) -> Result<BaseNetworkSocketGetIpTtlResult, fidl::Error> {
55690            let _response = fidl::client::decode_transaction_body::<
55691                fidl::encoding::ResultType<
55692                    BaseNetworkSocketGetIpTtlResponse,
55693                    fidl_fuchsia_posix::Errno,
55694                >,
55695                fidl::encoding::DefaultFuchsiaResourceDialect,
55696                0x47e47fa1f24da471,
55697            >(_buf?)?;
55698            Ok(_response.map(|x| x.value))
55699        }
55700        self.client
55701            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseNetworkSocketGetIpTtlResult>(
55702                (),
55703                0x47e47fa1f24da471,
55704                fidl::encoding::DynamicFlags::empty(),
55705                _decode,
55706            )
55707    }
55708
55709    type SetIpPacketInfoResponseFut = fidl::client::QueryResponseFut<
55710        BaseNetworkSocketSetIpPacketInfoResult,
55711        fidl::encoding::DefaultFuchsiaResourceDialect,
55712    >;
55713    fn r#set_ip_packet_info(&self, mut value: bool) -> Self::SetIpPacketInfoResponseFut {
55714        fn _decode(
55715            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55716        ) -> Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error> {
55717            let _response = fidl::client::decode_transaction_body::<
55718                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55719                fidl::encoding::DefaultFuchsiaResourceDialect,
55720                0x392d16bee20c0e16,
55721            >(_buf?)?;
55722            Ok(_response.map(|x| x))
55723        }
55724        self.client.send_query_and_decode::<
55725            BaseNetworkSocketSetIpPacketInfoRequest,
55726            BaseNetworkSocketSetIpPacketInfoResult,
55727        >(
55728            (value,),
55729            0x392d16bee20c0e16,
55730            fidl::encoding::DynamicFlags::empty(),
55731            _decode,
55732        )
55733    }
55734
55735    type GetIpPacketInfoResponseFut = fidl::client::QueryResponseFut<
55736        BaseNetworkSocketGetIpPacketInfoResult,
55737        fidl::encoding::DefaultFuchsiaResourceDialect,
55738    >;
55739    fn r#get_ip_packet_info(&self) -> Self::GetIpPacketInfoResponseFut {
55740        fn _decode(
55741            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55742        ) -> Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error> {
55743            let _response = fidl::client::decode_transaction_body::<
55744                fidl::encoding::ResultType<
55745                    BaseNetworkSocketGetIpPacketInfoResponse,
55746                    fidl_fuchsia_posix::Errno,
55747                >,
55748                fidl::encoding::DefaultFuchsiaResourceDialect,
55749                0x54b505f242280740,
55750            >(_buf?)?;
55751            Ok(_response.map(|x| x.value))
55752        }
55753        self.client.send_query_and_decode::<
55754            fidl::encoding::EmptyPayload,
55755            BaseNetworkSocketGetIpPacketInfoResult,
55756        >(
55757            (),
55758            0x54b505f242280740,
55759            fidl::encoding::DynamicFlags::empty(),
55760            _decode,
55761        )
55762    }
55763
55764    type SetIpReceiveTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
55765        BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
55766        fidl::encoding::DefaultFuchsiaResourceDialect,
55767    >;
55768    fn r#set_ip_receive_type_of_service(
55769        &self,
55770        mut value: bool,
55771    ) -> Self::SetIpReceiveTypeOfServiceResponseFut {
55772        fn _decode(
55773            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55774        ) -> Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error> {
55775            let _response = fidl::client::decode_transaction_body::<
55776                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55777                fidl::encoding::DefaultFuchsiaResourceDialect,
55778                0x6c4f6714995f84ef,
55779            >(_buf?)?;
55780            Ok(_response.map(|x| x))
55781        }
55782        self.client.send_query_and_decode::<
55783            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
55784            BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
55785        >(
55786            (value,),
55787            0x6c4f6714995f84ef,
55788            fidl::encoding::DynamicFlags::empty(),
55789            _decode,
55790        )
55791    }
55792
55793    type GetIpReceiveTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
55794        BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
55795        fidl::encoding::DefaultFuchsiaResourceDialect,
55796    >;
55797    fn r#get_ip_receive_type_of_service(&self) -> Self::GetIpReceiveTypeOfServiceResponseFut {
55798        fn _decode(
55799            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55800        ) -> Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error> {
55801            let _response = fidl::client::decode_transaction_body::<
55802                fidl::encoding::ResultType<
55803                    BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
55804                    fidl_fuchsia_posix::Errno,
55805                >,
55806                fidl::encoding::DefaultFuchsiaResourceDialect,
55807                0x4158ba7dc2795960,
55808            >(_buf?)?;
55809            Ok(_response.map(|x| x.value))
55810        }
55811        self.client.send_query_and_decode::<
55812            fidl::encoding::EmptyPayload,
55813            BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
55814        >(
55815            (),
55816            0x4158ba7dc2795960,
55817            fidl::encoding::DynamicFlags::empty(),
55818            _decode,
55819        )
55820    }
55821
55822    type SetIpReceiveTtlResponseFut = fidl::client::QueryResponseFut<
55823        BaseNetworkSocketSetIpReceiveTtlResult,
55824        fidl::encoding::DefaultFuchsiaResourceDialect,
55825    >;
55826    fn r#set_ip_receive_ttl(&self, mut value: bool) -> Self::SetIpReceiveTtlResponseFut {
55827        fn _decode(
55828            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55829        ) -> Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error> {
55830            let _response = fidl::client::decode_transaction_body::<
55831                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55832                fidl::encoding::DefaultFuchsiaResourceDialect,
55833                0x46f15be0ce0ab82b,
55834            >(_buf?)?;
55835            Ok(_response.map(|x| x))
55836        }
55837        self.client.send_query_and_decode::<
55838            BaseNetworkSocketSetIpReceiveTtlRequest,
55839            BaseNetworkSocketSetIpReceiveTtlResult,
55840        >(
55841            (value,),
55842            0x46f15be0ce0ab82b,
55843            fidl::encoding::DynamicFlags::empty(),
55844            _decode,
55845        )
55846    }
55847
55848    type GetIpReceiveTtlResponseFut = fidl::client::QueryResponseFut<
55849        BaseNetworkSocketGetIpReceiveTtlResult,
55850        fidl::encoding::DefaultFuchsiaResourceDialect,
55851    >;
55852    fn r#get_ip_receive_ttl(&self) -> Self::GetIpReceiveTtlResponseFut {
55853        fn _decode(
55854            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55855        ) -> Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error> {
55856            let _response = fidl::client::decode_transaction_body::<
55857                fidl::encoding::ResultType<
55858                    BaseNetworkSocketGetIpReceiveTtlResponse,
55859                    fidl_fuchsia_posix::Errno,
55860                >,
55861                fidl::encoding::DefaultFuchsiaResourceDialect,
55862                0x678ddd5a5dfa2eb5,
55863            >(_buf?)?;
55864            Ok(_response.map(|x| x.value))
55865        }
55866        self.client.send_query_and_decode::<
55867            fidl::encoding::EmptyPayload,
55868            BaseNetworkSocketGetIpReceiveTtlResult,
55869        >(
55870            (),
55871            0x678ddd5a5dfa2eb5,
55872            fidl::encoding::DynamicFlags::empty(),
55873            _decode,
55874        )
55875    }
55876
55877    type SetIpMulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
55878        BaseNetworkSocketSetIpMulticastInterfaceResult,
55879        fidl::encoding::DefaultFuchsiaResourceDialect,
55880    >;
55881    fn r#set_ip_multicast_interface(
55882        &self,
55883        mut iface: u64,
55884        mut address: &fidl_fuchsia_net::Ipv4Address,
55885    ) -> Self::SetIpMulticastInterfaceResponseFut {
55886        fn _decode(
55887            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55888        ) -> Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error> {
55889            let _response = fidl::client::decode_transaction_body::<
55890                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55891                fidl::encoding::DefaultFuchsiaResourceDialect,
55892                0x752fbfa9b12befe,
55893            >(_buf?)?;
55894            Ok(_response.map(|x| x))
55895        }
55896        self.client.send_query_and_decode::<
55897            BaseNetworkSocketSetIpMulticastInterfaceRequest,
55898            BaseNetworkSocketSetIpMulticastInterfaceResult,
55899        >(
55900            (iface, address,),
55901            0x752fbfa9b12befe,
55902            fidl::encoding::DynamicFlags::empty(),
55903            _decode,
55904        )
55905    }
55906
55907    type GetIpMulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
55908        BaseNetworkSocketGetIpMulticastInterfaceResult,
55909        fidl::encoding::DefaultFuchsiaResourceDialect,
55910    >;
55911    fn r#get_ip_multicast_interface(&self) -> Self::GetIpMulticastInterfaceResponseFut {
55912        fn _decode(
55913            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55914        ) -> Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error> {
55915            let _response = fidl::client::decode_transaction_body::<
55916                fidl::encoding::ResultType<
55917                    BaseNetworkSocketGetIpMulticastInterfaceResponse,
55918                    fidl_fuchsia_posix::Errno,
55919                >,
55920                fidl::encoding::DefaultFuchsiaResourceDialect,
55921                0x320bd14c4df046c4,
55922            >(_buf?)?;
55923            Ok(_response.map(|x| x.value))
55924        }
55925        self.client.send_query_and_decode::<
55926            fidl::encoding::EmptyPayload,
55927            BaseNetworkSocketGetIpMulticastInterfaceResult,
55928        >(
55929            (),
55930            0x320bd14c4df046c4,
55931            fidl::encoding::DynamicFlags::empty(),
55932            _decode,
55933        )
55934    }
55935
55936    type SetIpMulticastTtlResponseFut = fidl::client::QueryResponseFut<
55937        BaseNetworkSocketSetIpMulticastTtlResult,
55938        fidl::encoding::DefaultFuchsiaResourceDialect,
55939    >;
55940    fn r#set_ip_multicast_ttl(
55941        &self,
55942        mut value: &OptionalUint8,
55943    ) -> Self::SetIpMulticastTtlResponseFut {
55944        fn _decode(
55945            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55946        ) -> Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error> {
55947            let _response = fidl::client::decode_transaction_body::<
55948                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55949                fidl::encoding::DefaultFuchsiaResourceDialect,
55950                0x63134d53772916a1,
55951            >(_buf?)?;
55952            Ok(_response.map(|x| x))
55953        }
55954        self.client.send_query_and_decode::<
55955            BaseNetworkSocketSetIpMulticastTtlRequest,
55956            BaseNetworkSocketSetIpMulticastTtlResult,
55957        >(
55958            (value,),
55959            0x63134d53772916a1,
55960            fidl::encoding::DynamicFlags::empty(),
55961            _decode,
55962        )
55963    }
55964
55965    type GetIpMulticastTtlResponseFut = fidl::client::QueryResponseFut<
55966        BaseNetworkSocketGetIpMulticastTtlResult,
55967        fidl::encoding::DefaultFuchsiaResourceDialect,
55968    >;
55969    fn r#get_ip_multicast_ttl(&self) -> Self::GetIpMulticastTtlResponseFut {
55970        fn _decode(
55971            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55972        ) -> Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error> {
55973            let _response = fidl::client::decode_transaction_body::<
55974                fidl::encoding::ResultType<
55975                    BaseNetworkSocketGetIpMulticastTtlResponse,
55976                    fidl_fuchsia_posix::Errno,
55977                >,
55978                fidl::encoding::DefaultFuchsiaResourceDialect,
55979                0x4665cd378f39e1a,
55980            >(_buf?)?;
55981            Ok(_response.map(|x| x.value))
55982        }
55983        self.client.send_query_and_decode::<
55984            fidl::encoding::EmptyPayload,
55985            BaseNetworkSocketGetIpMulticastTtlResult,
55986        >(
55987            (),
55988            0x4665cd378f39e1a,
55989            fidl::encoding::DynamicFlags::empty(),
55990            _decode,
55991        )
55992    }
55993
55994    type SetIpMulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
55995        BaseNetworkSocketSetIpMulticastLoopbackResult,
55996        fidl::encoding::DefaultFuchsiaResourceDialect,
55997    >;
55998    fn r#set_ip_multicast_loopback(
55999        &self,
56000        mut value: bool,
56001    ) -> Self::SetIpMulticastLoopbackResponseFut {
56002        fn _decode(
56003            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56004        ) -> Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error> {
56005            let _response = fidl::client::decode_transaction_body::<
56006                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56007                fidl::encoding::DefaultFuchsiaResourceDialect,
56008                0x20c55c11f00943ea,
56009            >(_buf?)?;
56010            Ok(_response.map(|x| x))
56011        }
56012        self.client.send_query_and_decode::<
56013            BaseNetworkSocketSetIpMulticastLoopbackRequest,
56014            BaseNetworkSocketSetIpMulticastLoopbackResult,
56015        >(
56016            (value,),
56017            0x20c55c11f00943ea,
56018            fidl::encoding::DynamicFlags::empty(),
56019            _decode,
56020        )
56021    }
56022
56023    type GetIpMulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
56024        BaseNetworkSocketGetIpMulticastLoopbackResult,
56025        fidl::encoding::DefaultFuchsiaResourceDialect,
56026    >;
56027    fn r#get_ip_multicast_loopback(&self) -> Self::GetIpMulticastLoopbackResponseFut {
56028        fn _decode(
56029            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56030        ) -> Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error> {
56031            let _response = fidl::client::decode_transaction_body::<
56032                fidl::encoding::ResultType<
56033                    BaseNetworkSocketGetIpMulticastLoopbackResponse,
56034                    fidl_fuchsia_posix::Errno,
56035                >,
56036                fidl::encoding::DefaultFuchsiaResourceDialect,
56037                0x3b6b26ff558298f2,
56038            >(_buf?)?;
56039            Ok(_response.map(|x| x.value))
56040        }
56041        self.client.send_query_and_decode::<
56042            fidl::encoding::EmptyPayload,
56043            BaseNetworkSocketGetIpMulticastLoopbackResult,
56044        >(
56045            (),
56046            0x3b6b26ff558298f2,
56047            fidl::encoding::DynamicFlags::empty(),
56048            _decode,
56049        )
56050    }
56051
56052    type AddIpMembershipResponseFut = fidl::client::QueryResponseFut<
56053        BaseNetworkSocketAddIpMembershipResult,
56054        fidl::encoding::DefaultFuchsiaResourceDialect,
56055    >;
56056    fn r#add_ip_membership(
56057        &self,
56058        mut membership: &IpMulticastMembership,
56059    ) -> Self::AddIpMembershipResponseFut {
56060        fn _decode(
56061            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56062        ) -> Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error> {
56063            let _response = fidl::client::decode_transaction_body::<
56064                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56065                fidl::encoding::DefaultFuchsiaResourceDialect,
56066                0x76bc7df115a3b4d0,
56067            >(_buf?)?;
56068            Ok(_response.map(|x| x))
56069        }
56070        self.client.send_query_and_decode::<
56071            BaseNetworkSocketAddIpMembershipRequest,
56072            BaseNetworkSocketAddIpMembershipResult,
56073        >(
56074            (membership,),
56075            0x76bc7df115a3b4d0,
56076            fidl::encoding::DynamicFlags::empty(),
56077            _decode,
56078        )
56079    }
56080
56081    type DropIpMembershipResponseFut = fidl::client::QueryResponseFut<
56082        BaseNetworkSocketDropIpMembershipResult,
56083        fidl::encoding::DefaultFuchsiaResourceDialect,
56084    >;
56085    fn r#drop_ip_membership(
56086        &self,
56087        mut membership: &IpMulticastMembership,
56088    ) -> Self::DropIpMembershipResponseFut {
56089        fn _decode(
56090            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56091        ) -> Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error> {
56092            let _response = fidl::client::decode_transaction_body::<
56093                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56094                fidl::encoding::DefaultFuchsiaResourceDialect,
56095                0x2888f3099188d03,
56096            >(_buf?)?;
56097            Ok(_response.map(|x| x))
56098        }
56099        self.client.send_query_and_decode::<
56100            BaseNetworkSocketDropIpMembershipRequest,
56101            BaseNetworkSocketDropIpMembershipResult,
56102        >(
56103            (membership,),
56104            0x2888f3099188d03,
56105            fidl::encoding::DynamicFlags::empty(),
56106            _decode,
56107        )
56108    }
56109
56110    type SetIpTransparentResponseFut = fidl::client::QueryResponseFut<
56111        BaseNetworkSocketSetIpTransparentResult,
56112        fidl::encoding::DefaultFuchsiaResourceDialect,
56113    >;
56114    fn r#set_ip_transparent(&self, mut value: bool) -> Self::SetIpTransparentResponseFut {
56115        fn _decode(
56116            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56117        ) -> Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error> {
56118            let _response = fidl::client::decode_transaction_body::<
56119                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56120                fidl::encoding::DefaultFuchsiaResourceDialect,
56121                0x1ae532b0c066e3a0,
56122            >(_buf?)?;
56123            Ok(_response.map(|x| x))
56124        }
56125        self.client.send_query_and_decode::<
56126            BaseNetworkSocketSetIpTransparentRequest,
56127            BaseNetworkSocketSetIpTransparentResult,
56128        >(
56129            (value,),
56130            0x1ae532b0c066e3a0,
56131            fidl::encoding::DynamicFlags::empty(),
56132            _decode,
56133        )
56134    }
56135
56136    type GetIpTransparentResponseFut = fidl::client::QueryResponseFut<
56137        BaseNetworkSocketGetIpTransparentResult,
56138        fidl::encoding::DefaultFuchsiaResourceDialect,
56139    >;
56140    fn r#get_ip_transparent(&self) -> Self::GetIpTransparentResponseFut {
56141        fn _decode(
56142            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56143        ) -> Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error> {
56144            let _response = fidl::client::decode_transaction_body::<
56145                fidl::encoding::ResultType<
56146                    BaseNetworkSocketGetIpTransparentResponse,
56147                    fidl_fuchsia_posix::Errno,
56148                >,
56149                fidl::encoding::DefaultFuchsiaResourceDialect,
56150                0x51d43695962ebfb5,
56151            >(_buf?)?;
56152            Ok(_response.map(|x| x.value))
56153        }
56154        self.client.send_query_and_decode::<
56155            fidl::encoding::EmptyPayload,
56156            BaseNetworkSocketGetIpTransparentResult,
56157        >(
56158            (),
56159            0x51d43695962ebfb5,
56160            fidl::encoding::DynamicFlags::empty(),
56161            _decode,
56162        )
56163    }
56164
56165    type SetIpReceiveOriginalDestinationAddressResponseFut = fidl::client::QueryResponseFut<
56166        BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
56167        fidl::encoding::DefaultFuchsiaResourceDialect,
56168    >;
56169    fn r#set_ip_receive_original_destination_address(
56170        &self,
56171        mut value: bool,
56172    ) -> Self::SetIpReceiveOriginalDestinationAddressResponseFut {
56173        fn _decode(
56174            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56175        ) -> Result<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult, fidl::Error>
56176        {
56177            let _response = fidl::client::decode_transaction_body::<
56178                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56179                fidl::encoding::DefaultFuchsiaResourceDialect,
56180                0x4722b4ce52f7840,
56181            >(_buf?)?;
56182            Ok(_response.map(|x| x))
56183        }
56184        self.client.send_query_and_decode::<
56185            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
56186            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
56187        >(
56188            (value,),
56189            0x4722b4ce52f7840,
56190            fidl::encoding::DynamicFlags::empty(),
56191            _decode,
56192        )
56193    }
56194
56195    type GetIpReceiveOriginalDestinationAddressResponseFut = fidl::client::QueryResponseFut<
56196        BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
56197        fidl::encoding::DefaultFuchsiaResourceDialect,
56198    >;
56199    fn r#get_ip_receive_original_destination_address(
56200        &self,
56201    ) -> Self::GetIpReceiveOriginalDestinationAddressResponseFut {
56202        fn _decode(
56203            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56204        ) -> Result<BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult, fidl::Error>
56205        {
56206            let _response = fidl::client::decode_transaction_body::<
56207                fidl::encoding::ResultType<
56208                    BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
56209                    fidl_fuchsia_posix::Errno,
56210                >,
56211                fidl::encoding::DefaultFuchsiaResourceDialect,
56212                0x2a0e7dc5d6bfdfe9,
56213            >(_buf?)?;
56214            Ok(_response.map(|x| x.value))
56215        }
56216        self.client.send_query_and_decode::<
56217            fidl::encoding::EmptyPayload,
56218            BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
56219        >(
56220            (),
56221            0x2a0e7dc5d6bfdfe9,
56222            fidl::encoding::DynamicFlags::empty(),
56223            _decode,
56224        )
56225    }
56226
56227    type AddIpv6MembershipResponseFut = fidl::client::QueryResponseFut<
56228        BaseNetworkSocketAddIpv6MembershipResult,
56229        fidl::encoding::DefaultFuchsiaResourceDialect,
56230    >;
56231    fn r#add_ipv6_membership(
56232        &self,
56233        mut membership: &Ipv6MulticastMembership,
56234    ) -> Self::AddIpv6MembershipResponseFut {
56235        fn _decode(
56236            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56237        ) -> Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error> {
56238            let _response = fidl::client::decode_transaction_body::<
56239                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56240                fidl::encoding::DefaultFuchsiaResourceDialect,
56241                0x7c94727acb4ea4b3,
56242            >(_buf?)?;
56243            Ok(_response.map(|x| x))
56244        }
56245        self.client.send_query_and_decode::<
56246            BaseNetworkSocketAddIpv6MembershipRequest,
56247            BaseNetworkSocketAddIpv6MembershipResult,
56248        >(
56249            (membership,),
56250            0x7c94727acb4ea4b3,
56251            fidl::encoding::DynamicFlags::empty(),
56252            _decode,
56253        )
56254    }
56255
56256    type DropIpv6MembershipResponseFut = fidl::client::QueryResponseFut<
56257        BaseNetworkSocketDropIpv6MembershipResult,
56258        fidl::encoding::DefaultFuchsiaResourceDialect,
56259    >;
56260    fn r#drop_ipv6_membership(
56261        &self,
56262        mut membership: &Ipv6MulticastMembership,
56263    ) -> Self::DropIpv6MembershipResponseFut {
56264        fn _decode(
56265            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56266        ) -> Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error> {
56267            let _response = fidl::client::decode_transaction_body::<
56268                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56269                fidl::encoding::DefaultFuchsiaResourceDialect,
56270                0x42104c70ccaba304,
56271            >(_buf?)?;
56272            Ok(_response.map(|x| x))
56273        }
56274        self.client.send_query_and_decode::<
56275            BaseNetworkSocketDropIpv6MembershipRequest,
56276            BaseNetworkSocketDropIpv6MembershipResult,
56277        >(
56278            (membership,),
56279            0x42104c70ccaba304,
56280            fidl::encoding::DynamicFlags::empty(),
56281            _decode,
56282        )
56283    }
56284
56285    type SetIpv6MulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
56286        BaseNetworkSocketSetIpv6MulticastInterfaceResult,
56287        fidl::encoding::DefaultFuchsiaResourceDialect,
56288    >;
56289    fn r#set_ipv6_multicast_interface(
56290        &self,
56291        mut value: u64,
56292    ) -> Self::SetIpv6MulticastInterfaceResponseFut {
56293        fn _decode(
56294            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56295        ) -> Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error> {
56296            let _response = fidl::client::decode_transaction_body::<
56297                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56298                fidl::encoding::DefaultFuchsiaResourceDialect,
56299                0x135f76db3774ab3b,
56300            >(_buf?)?;
56301            Ok(_response.map(|x| x))
56302        }
56303        self.client.send_query_and_decode::<
56304            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
56305            BaseNetworkSocketSetIpv6MulticastInterfaceResult,
56306        >(
56307            (value,),
56308            0x135f76db3774ab3b,
56309            fidl::encoding::DynamicFlags::empty(),
56310            _decode,
56311        )
56312    }
56313
56314    type GetIpv6MulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
56315        BaseNetworkSocketGetIpv6MulticastInterfaceResult,
56316        fidl::encoding::DefaultFuchsiaResourceDialect,
56317    >;
56318    fn r#get_ipv6_multicast_interface(&self) -> Self::GetIpv6MulticastInterfaceResponseFut {
56319        fn _decode(
56320            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56321        ) -> Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error> {
56322            let _response = fidl::client::decode_transaction_body::<
56323                fidl::encoding::ResultType<
56324                    BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
56325                    fidl_fuchsia_posix::Errno,
56326                >,
56327                fidl::encoding::DefaultFuchsiaResourceDialect,
56328                0x1f26fcdd348f1882,
56329            >(_buf?)?;
56330            Ok(_response.map(|x| x.value))
56331        }
56332        self.client.send_query_and_decode::<
56333            fidl::encoding::EmptyPayload,
56334            BaseNetworkSocketGetIpv6MulticastInterfaceResult,
56335        >(
56336            (),
56337            0x1f26fcdd348f1882,
56338            fidl::encoding::DynamicFlags::empty(),
56339            _decode,
56340        )
56341    }
56342
56343    type SetIpv6UnicastHopsResponseFut = fidl::client::QueryResponseFut<
56344        BaseNetworkSocketSetIpv6UnicastHopsResult,
56345        fidl::encoding::DefaultFuchsiaResourceDialect,
56346    >;
56347    fn r#set_ipv6_unicast_hops(
56348        &self,
56349        mut value: &OptionalUint8,
56350    ) -> Self::SetIpv6UnicastHopsResponseFut {
56351        fn _decode(
56352            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56353        ) -> Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error> {
56354            let _response = fidl::client::decode_transaction_body::<
56355                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56356                fidl::encoding::DefaultFuchsiaResourceDialect,
56357                0x157d51e98f462859,
56358            >(_buf?)?;
56359            Ok(_response.map(|x| x))
56360        }
56361        self.client.send_query_and_decode::<
56362            BaseNetworkSocketSetIpv6UnicastHopsRequest,
56363            BaseNetworkSocketSetIpv6UnicastHopsResult,
56364        >(
56365            (value,),
56366            0x157d51e98f462859,
56367            fidl::encoding::DynamicFlags::empty(),
56368            _decode,
56369        )
56370    }
56371
56372    type GetIpv6UnicastHopsResponseFut = fidl::client::QueryResponseFut<
56373        BaseNetworkSocketGetIpv6UnicastHopsResult,
56374        fidl::encoding::DefaultFuchsiaResourceDialect,
56375    >;
56376    fn r#get_ipv6_unicast_hops(&self) -> Self::GetIpv6UnicastHopsResponseFut {
56377        fn _decode(
56378            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56379        ) -> Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error> {
56380            let _response = fidl::client::decode_transaction_body::<
56381                fidl::encoding::ResultType<
56382                    BaseNetworkSocketGetIpv6UnicastHopsResponse,
56383                    fidl_fuchsia_posix::Errno,
56384                >,
56385                fidl::encoding::DefaultFuchsiaResourceDialect,
56386                0x21f4641cad8bd8d2,
56387            >(_buf?)?;
56388            Ok(_response.map(|x| x.value))
56389        }
56390        self.client.send_query_and_decode::<
56391            fidl::encoding::EmptyPayload,
56392            BaseNetworkSocketGetIpv6UnicastHopsResult,
56393        >(
56394            (),
56395            0x21f4641cad8bd8d2,
56396            fidl::encoding::DynamicFlags::empty(),
56397            _decode,
56398        )
56399    }
56400
56401    type SetIpv6ReceiveHopLimitResponseFut = fidl::client::QueryResponseFut<
56402        BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
56403        fidl::encoding::DefaultFuchsiaResourceDialect,
56404    >;
56405    fn r#set_ipv6_receive_hop_limit(
56406        &self,
56407        mut value: bool,
56408    ) -> Self::SetIpv6ReceiveHopLimitResponseFut {
56409        fn _decode(
56410            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56411        ) -> Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error> {
56412            let _response = fidl::client::decode_transaction_body::<
56413                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56414                fidl::encoding::DefaultFuchsiaResourceDialect,
56415                0x5c24808ed2e84a1e,
56416            >(_buf?)?;
56417            Ok(_response.map(|x| x))
56418        }
56419        self.client.send_query_and_decode::<
56420            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
56421            BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
56422        >(
56423            (value,),
56424            0x5c24808ed2e84a1e,
56425            fidl::encoding::DynamicFlags::empty(),
56426            _decode,
56427        )
56428    }
56429
56430    type GetIpv6ReceiveHopLimitResponseFut = fidl::client::QueryResponseFut<
56431        BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
56432        fidl::encoding::DefaultFuchsiaResourceDialect,
56433    >;
56434    fn r#get_ipv6_receive_hop_limit(&self) -> Self::GetIpv6ReceiveHopLimitResponseFut {
56435        fn _decode(
56436            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56437        ) -> Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error> {
56438            let _response = fidl::client::decode_transaction_body::<
56439                fidl::encoding::ResultType<
56440                    BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
56441                    fidl_fuchsia_posix::Errno,
56442                >,
56443                fidl::encoding::DefaultFuchsiaResourceDialect,
56444                0x341e06689885b4c0,
56445            >(_buf?)?;
56446            Ok(_response.map(|x| x.value))
56447        }
56448        self.client.send_query_and_decode::<
56449            fidl::encoding::EmptyPayload,
56450            BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
56451        >(
56452            (),
56453            0x341e06689885b4c0,
56454            fidl::encoding::DynamicFlags::empty(),
56455            _decode,
56456        )
56457    }
56458
56459    type SetIpv6MulticastHopsResponseFut = fidl::client::QueryResponseFut<
56460        BaseNetworkSocketSetIpv6MulticastHopsResult,
56461        fidl::encoding::DefaultFuchsiaResourceDialect,
56462    >;
56463    fn r#set_ipv6_multicast_hops(
56464        &self,
56465        mut value: &OptionalUint8,
56466    ) -> Self::SetIpv6MulticastHopsResponseFut {
56467        fn _decode(
56468            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56469        ) -> Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error> {
56470            let _response = fidl::client::decode_transaction_body::<
56471                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56472                fidl::encoding::DefaultFuchsiaResourceDialect,
56473                0x25b9cd4d181f82c1,
56474            >(_buf?)?;
56475            Ok(_response.map(|x| x))
56476        }
56477        self.client.send_query_and_decode::<
56478            BaseNetworkSocketSetIpv6MulticastHopsRequest,
56479            BaseNetworkSocketSetIpv6MulticastHopsResult,
56480        >(
56481            (value,),
56482            0x25b9cd4d181f82c1,
56483            fidl::encoding::DynamicFlags::empty(),
56484            _decode,
56485        )
56486    }
56487
56488    type GetIpv6MulticastHopsResponseFut = fidl::client::QueryResponseFut<
56489        BaseNetworkSocketGetIpv6MulticastHopsResult,
56490        fidl::encoding::DefaultFuchsiaResourceDialect,
56491    >;
56492    fn r#get_ipv6_multicast_hops(&self) -> Self::GetIpv6MulticastHopsResponseFut {
56493        fn _decode(
56494            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56495        ) -> Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error> {
56496            let _response = fidl::client::decode_transaction_body::<
56497                fidl::encoding::ResultType<
56498                    BaseNetworkSocketGetIpv6MulticastHopsResponse,
56499                    fidl_fuchsia_posix::Errno,
56500                >,
56501                fidl::encoding::DefaultFuchsiaResourceDialect,
56502                0x52916948a365012a,
56503            >(_buf?)?;
56504            Ok(_response.map(|x| x.value))
56505        }
56506        self.client.send_query_and_decode::<
56507            fidl::encoding::EmptyPayload,
56508            BaseNetworkSocketGetIpv6MulticastHopsResult,
56509        >(
56510            (),
56511            0x52916948a365012a,
56512            fidl::encoding::DynamicFlags::empty(),
56513            _decode,
56514        )
56515    }
56516
56517    type SetIpv6MulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
56518        BaseNetworkSocketSetIpv6MulticastLoopbackResult,
56519        fidl::encoding::DefaultFuchsiaResourceDialect,
56520    >;
56521    fn r#set_ipv6_multicast_loopback(
56522        &self,
56523        mut value: bool,
56524    ) -> Self::SetIpv6MulticastLoopbackResponseFut {
56525        fn _decode(
56526            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56527        ) -> Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error> {
56528            let _response = fidl::client::decode_transaction_body::<
56529                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56530                fidl::encoding::DefaultFuchsiaResourceDialect,
56531                0x55701c409ff41b40,
56532            >(_buf?)?;
56533            Ok(_response.map(|x| x))
56534        }
56535        self.client.send_query_and_decode::<
56536            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
56537            BaseNetworkSocketSetIpv6MulticastLoopbackResult,
56538        >(
56539            (value,),
56540            0x55701c409ff41b40,
56541            fidl::encoding::DynamicFlags::empty(),
56542            _decode,
56543        )
56544    }
56545
56546    type GetIpv6MulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
56547        BaseNetworkSocketGetIpv6MulticastLoopbackResult,
56548        fidl::encoding::DefaultFuchsiaResourceDialect,
56549    >;
56550    fn r#get_ipv6_multicast_loopback(&self) -> Self::GetIpv6MulticastLoopbackResponseFut {
56551        fn _decode(
56552            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56553        ) -> Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error> {
56554            let _response = fidl::client::decode_transaction_body::<
56555                fidl::encoding::ResultType<
56556                    BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
56557                    fidl_fuchsia_posix::Errno,
56558                >,
56559                fidl::encoding::DefaultFuchsiaResourceDialect,
56560                0x4415b701fde319c3,
56561            >(_buf?)?;
56562            Ok(_response.map(|x| x.value))
56563        }
56564        self.client.send_query_and_decode::<
56565            fidl::encoding::EmptyPayload,
56566            BaseNetworkSocketGetIpv6MulticastLoopbackResult,
56567        >(
56568            (),
56569            0x4415b701fde319c3,
56570            fidl::encoding::DynamicFlags::empty(),
56571            _decode,
56572        )
56573    }
56574
56575    type SetIpv6OnlyResponseFut = fidl::client::QueryResponseFut<
56576        BaseNetworkSocketSetIpv6OnlyResult,
56577        fidl::encoding::DefaultFuchsiaResourceDialect,
56578    >;
56579    fn r#set_ipv6_only(&self, mut value: bool) -> Self::SetIpv6OnlyResponseFut {
56580        fn _decode(
56581            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56582        ) -> Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error> {
56583            let _response = fidl::client::decode_transaction_body::<
56584                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56585                fidl::encoding::DefaultFuchsiaResourceDialect,
56586                0x4873f1364758cbba,
56587            >(_buf?)?;
56588            Ok(_response.map(|x| x))
56589        }
56590        self.client.send_query_and_decode::<
56591            BaseNetworkSocketSetIpv6OnlyRequest,
56592            BaseNetworkSocketSetIpv6OnlyResult,
56593        >(
56594            (value,),
56595            0x4873f1364758cbba,
56596            fidl::encoding::DynamicFlags::empty(),
56597            _decode,
56598        )
56599    }
56600
56601    type GetIpv6OnlyResponseFut = fidl::client::QueryResponseFut<
56602        BaseNetworkSocketGetIpv6OnlyResult,
56603        fidl::encoding::DefaultFuchsiaResourceDialect,
56604    >;
56605    fn r#get_ipv6_only(&self) -> Self::GetIpv6OnlyResponseFut {
56606        fn _decode(
56607            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56608        ) -> Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error> {
56609            let _response = fidl::client::decode_transaction_body::<
56610                fidl::encoding::ResultType<
56611                    BaseNetworkSocketGetIpv6OnlyResponse,
56612                    fidl_fuchsia_posix::Errno,
56613                >,
56614                fidl::encoding::DefaultFuchsiaResourceDialect,
56615                0x4aa3340a1a26b89c,
56616            >(_buf?)?;
56617            Ok(_response.map(|x| x.value))
56618        }
56619        self.client.send_query_and_decode::<
56620            fidl::encoding::EmptyPayload,
56621            BaseNetworkSocketGetIpv6OnlyResult,
56622        >(
56623            (),
56624            0x4aa3340a1a26b89c,
56625            fidl::encoding::DynamicFlags::empty(),
56626            _decode,
56627        )
56628    }
56629
56630    type SetIpv6ReceiveTrafficClassResponseFut = fidl::client::QueryResponseFut<
56631        BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
56632        fidl::encoding::DefaultFuchsiaResourceDialect,
56633    >;
56634    fn r#set_ipv6_receive_traffic_class(
56635        &self,
56636        mut value: bool,
56637    ) -> Self::SetIpv6ReceiveTrafficClassResponseFut {
56638        fn _decode(
56639            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56640        ) -> Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error> {
56641            let _response = fidl::client::decode_transaction_body::<
56642                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56643                fidl::encoding::DefaultFuchsiaResourceDialect,
56644                0x58f07c8788d099a0,
56645            >(_buf?)?;
56646            Ok(_response.map(|x| x))
56647        }
56648        self.client.send_query_and_decode::<
56649            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
56650            BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
56651        >(
56652            (value,),
56653            0x58f07c8788d099a0,
56654            fidl::encoding::DynamicFlags::empty(),
56655            _decode,
56656        )
56657    }
56658
56659    type GetIpv6ReceiveTrafficClassResponseFut = fidl::client::QueryResponseFut<
56660        BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
56661        fidl::encoding::DefaultFuchsiaResourceDialect,
56662    >;
56663    fn r#get_ipv6_receive_traffic_class(&self) -> Self::GetIpv6ReceiveTrafficClassResponseFut {
56664        fn _decode(
56665            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56666        ) -> Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error> {
56667            let _response = fidl::client::decode_transaction_body::<
56668                fidl::encoding::ResultType<
56669                    BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
56670                    fidl_fuchsia_posix::Errno,
56671                >,
56672                fidl::encoding::DefaultFuchsiaResourceDialect,
56673                0x2e334df1da553ffa,
56674            >(_buf?)?;
56675            Ok(_response.map(|x| x.value))
56676        }
56677        self.client.send_query_and_decode::<
56678            fidl::encoding::EmptyPayload,
56679            BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
56680        >(
56681            (),
56682            0x2e334df1da553ffa,
56683            fidl::encoding::DynamicFlags::empty(),
56684            _decode,
56685        )
56686    }
56687
56688    type SetIpv6TrafficClassResponseFut = fidl::client::QueryResponseFut<
56689        BaseNetworkSocketSetIpv6TrafficClassResult,
56690        fidl::encoding::DefaultFuchsiaResourceDialect,
56691    >;
56692    fn r#set_ipv6_traffic_class(
56693        &self,
56694        mut value: &OptionalUint8,
56695    ) -> Self::SetIpv6TrafficClassResponseFut {
56696        fn _decode(
56697            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56698        ) -> Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error> {
56699            let _response = fidl::client::decode_transaction_body::<
56700                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56701                fidl::encoding::DefaultFuchsiaResourceDialect,
56702                0x6af077800c5a0b4f,
56703            >(_buf?)?;
56704            Ok(_response.map(|x| x))
56705        }
56706        self.client.send_query_and_decode::<
56707            BaseNetworkSocketSetIpv6TrafficClassRequest,
56708            BaseNetworkSocketSetIpv6TrafficClassResult,
56709        >(
56710            (value,),
56711            0x6af077800c5a0b4f,
56712            fidl::encoding::DynamicFlags::empty(),
56713            _decode,
56714        )
56715    }
56716
56717    type GetIpv6TrafficClassResponseFut = fidl::client::QueryResponseFut<
56718        BaseNetworkSocketGetIpv6TrafficClassResult,
56719        fidl::encoding::DefaultFuchsiaResourceDialect,
56720    >;
56721    fn r#get_ipv6_traffic_class(&self) -> Self::GetIpv6TrafficClassResponseFut {
56722        fn _decode(
56723            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56724        ) -> Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error> {
56725            let _response = fidl::client::decode_transaction_body::<
56726                fidl::encoding::ResultType<
56727                    BaseNetworkSocketGetIpv6TrafficClassResponse,
56728                    fidl_fuchsia_posix::Errno,
56729                >,
56730                fidl::encoding::DefaultFuchsiaResourceDialect,
56731                0x6baf6eed8fc2f04,
56732            >(_buf?)?;
56733            Ok(_response.map(|x| x.value))
56734        }
56735        self.client.send_query_and_decode::<
56736            fidl::encoding::EmptyPayload,
56737            BaseNetworkSocketGetIpv6TrafficClassResult,
56738        >(
56739            (),
56740            0x6baf6eed8fc2f04,
56741            fidl::encoding::DynamicFlags::empty(),
56742            _decode,
56743        )
56744    }
56745
56746    type SetIpv6ReceivePacketInfoResponseFut = fidl::client::QueryResponseFut<
56747        BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
56748        fidl::encoding::DefaultFuchsiaResourceDialect,
56749    >;
56750    fn r#set_ipv6_receive_packet_info(
56751        &self,
56752        mut value: bool,
56753    ) -> Self::SetIpv6ReceivePacketInfoResponseFut {
56754        fn _decode(
56755            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56756        ) -> Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error> {
56757            let _response = fidl::client::decode_transaction_body::<
56758                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56759                fidl::encoding::DefaultFuchsiaResourceDialect,
56760                0x19259775b1a92768,
56761            >(_buf?)?;
56762            Ok(_response.map(|x| x))
56763        }
56764        self.client.send_query_and_decode::<
56765            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
56766            BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
56767        >(
56768            (value,),
56769            0x19259775b1a92768,
56770            fidl::encoding::DynamicFlags::empty(),
56771            _decode,
56772        )
56773    }
56774
56775    type GetIpv6ReceivePacketInfoResponseFut = fidl::client::QueryResponseFut<
56776        BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
56777        fidl::encoding::DefaultFuchsiaResourceDialect,
56778    >;
56779    fn r#get_ipv6_receive_packet_info(&self) -> Self::GetIpv6ReceivePacketInfoResponseFut {
56780        fn _decode(
56781            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56782        ) -> Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error> {
56783            let _response = fidl::client::decode_transaction_body::<
56784                fidl::encoding::ResultType<
56785                    BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
56786                    fidl_fuchsia_posix::Errno,
56787                >,
56788                fidl::encoding::DefaultFuchsiaResourceDialect,
56789                0x7acd4a2775baec75,
56790            >(_buf?)?;
56791            Ok(_response.map(|x| x.value))
56792        }
56793        self.client.send_query_and_decode::<
56794            fidl::encoding::EmptyPayload,
56795            BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
56796        >(
56797            (),
56798            0x7acd4a2775baec75,
56799            fidl::encoding::DynamicFlags::empty(),
56800            _decode,
56801        )
56802    }
56803
56804    type GetOriginalDestinationResponseFut = fidl::client::QueryResponseFut<
56805        BaseNetworkSocketGetOriginalDestinationResult,
56806        fidl::encoding::DefaultFuchsiaResourceDialect,
56807    >;
56808    fn r#get_original_destination(&self) -> Self::GetOriginalDestinationResponseFut {
56809        fn _decode(
56810            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56811        ) -> Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error> {
56812            let _response = fidl::client::decode_transaction_body::<
56813                fidl::encoding::ResultType<
56814                    BaseNetworkSocketGetOriginalDestinationResponse,
56815                    fidl_fuchsia_posix::Errno,
56816                >,
56817                fidl::encoding::DefaultFuchsiaResourceDialect,
56818                0x38bf28f0dafdbac0,
56819            >(_buf?)?;
56820            Ok(_response.map(|x| x.value))
56821        }
56822        self.client.send_query_and_decode::<
56823            fidl::encoding::EmptyPayload,
56824            BaseNetworkSocketGetOriginalDestinationResult,
56825        >(
56826            (),
56827            0x38bf28f0dafdbac0,
56828            fidl::encoding::DynamicFlags::empty(),
56829            _decode,
56830        )
56831    }
56832
56833    type DescribeResponseFut = fidl::client::QueryResponseFut<
56834        StreamSocketDescribeResponse,
56835        fidl::encoding::DefaultFuchsiaResourceDialect,
56836    >;
56837    fn r#describe(&self) -> Self::DescribeResponseFut {
56838        fn _decode(
56839            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56840        ) -> Result<StreamSocketDescribeResponse, fidl::Error> {
56841            let _response = fidl::client::decode_transaction_body::<
56842                StreamSocketDescribeResponse,
56843                fidl::encoding::DefaultFuchsiaResourceDialect,
56844                0x29e22969a7dadc32,
56845            >(_buf?)?;
56846            Ok(_response)
56847        }
56848        self.client
56849            .send_query_and_decode::<fidl::encoding::EmptyPayload, StreamSocketDescribeResponse>(
56850                (),
56851                0x29e22969a7dadc32,
56852                fidl::encoding::DynamicFlags::empty(),
56853                _decode,
56854            )
56855    }
56856
56857    type ListenResponseFut = fidl::client::QueryResponseFut<
56858        StreamSocketListenResult,
56859        fidl::encoding::DefaultFuchsiaResourceDialect,
56860    >;
56861    fn r#listen(&self, mut backlog: i16) -> Self::ListenResponseFut {
56862        fn _decode(
56863            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56864        ) -> Result<StreamSocketListenResult, fidl::Error> {
56865            let _response = fidl::client::decode_transaction_body::<
56866                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56867                fidl::encoding::DefaultFuchsiaResourceDialect,
56868                0x3d0a65ced3d10108,
56869            >(_buf?)?;
56870            Ok(_response.map(|x| x))
56871        }
56872        self.client.send_query_and_decode::<StreamSocketListenRequest, StreamSocketListenResult>(
56873            (backlog,),
56874            0x3d0a65ced3d10108,
56875            fidl::encoding::DynamicFlags::empty(),
56876            _decode,
56877        )
56878    }
56879
56880    type AcceptResponseFut = fidl::client::QueryResponseFut<
56881        StreamSocketAcceptResult,
56882        fidl::encoding::DefaultFuchsiaResourceDialect,
56883    >;
56884    fn r#accept(&self, mut want_addr: bool) -> Self::AcceptResponseFut {
56885        fn _decode(
56886            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56887        ) -> Result<StreamSocketAcceptResult, fidl::Error> {
56888            let _response = fidl::client::decode_transaction_body::<
56889                fidl::encoding::ResultType<StreamSocketAcceptResponse, fidl_fuchsia_posix::Errno>,
56890                fidl::encoding::DefaultFuchsiaResourceDialect,
56891                0x5ab7ad620424c163,
56892            >(_buf?)?;
56893            Ok(_response.map(|x| (x.addr, x.s)))
56894        }
56895        self.client.send_query_and_decode::<StreamSocketAcceptRequest, StreamSocketAcceptResult>(
56896            (want_addr,),
56897            0x5ab7ad620424c163,
56898            fidl::encoding::DynamicFlags::empty(),
56899            _decode,
56900        )
56901    }
56902
56903    type GetInfoResponseFut = fidl::client::QueryResponseFut<
56904        StreamSocketGetInfoResult,
56905        fidl::encoding::DefaultFuchsiaResourceDialect,
56906    >;
56907    fn r#get_info(&self) -> Self::GetInfoResponseFut {
56908        fn _decode(
56909            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56910        ) -> Result<StreamSocketGetInfoResult, fidl::Error> {
56911            let _response = fidl::client::decode_transaction_body::<
56912                fidl::encoding::ResultType<StreamSocketGetInfoResponse, fidl_fuchsia_posix::Errno>,
56913                fidl::encoding::DefaultFuchsiaResourceDialect,
56914                0x87cfa55d19f878f,
56915            >(_buf?)?;
56916            Ok(_response.map(|x| (x.domain, x.proto)))
56917        }
56918        self.client
56919            .send_query_and_decode::<fidl::encoding::EmptyPayload, StreamSocketGetInfoResult>(
56920                (),
56921                0x87cfa55d19f878f,
56922                fidl::encoding::DynamicFlags::empty(),
56923                _decode,
56924            )
56925    }
56926
56927    type SetTcpNoDelayResponseFut = fidl::client::QueryResponseFut<
56928        StreamSocketSetTcpNoDelayResult,
56929        fidl::encoding::DefaultFuchsiaResourceDialect,
56930    >;
56931    fn r#set_tcp_no_delay(&self, mut value: bool) -> Self::SetTcpNoDelayResponseFut {
56932        fn _decode(
56933            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56934        ) -> Result<StreamSocketSetTcpNoDelayResult, fidl::Error> {
56935            let _response = fidl::client::decode_transaction_body::<
56936                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56937                fidl::encoding::DefaultFuchsiaResourceDialect,
56938                0x5a59b778f7333ada,
56939            >(_buf?)?;
56940            Ok(_response.map(|x| x))
56941        }
56942        self.client.send_query_and_decode::<
56943            StreamSocketSetTcpNoDelayRequest,
56944            StreamSocketSetTcpNoDelayResult,
56945        >(
56946            (value,),
56947            0x5a59b778f7333ada,
56948            fidl::encoding::DynamicFlags::empty(),
56949            _decode,
56950        )
56951    }
56952
56953    type GetTcpNoDelayResponseFut = fidl::client::QueryResponseFut<
56954        StreamSocketGetTcpNoDelayResult,
56955        fidl::encoding::DefaultFuchsiaResourceDialect,
56956    >;
56957    fn r#get_tcp_no_delay(&self) -> Self::GetTcpNoDelayResponseFut {
56958        fn _decode(
56959            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56960        ) -> Result<StreamSocketGetTcpNoDelayResult, fidl::Error> {
56961            let _response = fidl::client::decode_transaction_body::<
56962                fidl::encoding::ResultType<
56963                    StreamSocketGetTcpNoDelayResponse,
56964                    fidl_fuchsia_posix::Errno,
56965                >,
56966                fidl::encoding::DefaultFuchsiaResourceDialect,
56967                0xac219a3218b0799,
56968            >(_buf?)?;
56969            Ok(_response.map(|x| x.value))
56970        }
56971        self.client
56972            .send_query_and_decode::<fidl::encoding::EmptyPayload, StreamSocketGetTcpNoDelayResult>(
56973                (),
56974                0xac219a3218b0799,
56975                fidl::encoding::DynamicFlags::empty(),
56976                _decode,
56977            )
56978    }
56979
56980    type SetTcpMaxSegmentResponseFut = fidl::client::QueryResponseFut<
56981        StreamSocketSetTcpMaxSegmentResult,
56982        fidl::encoding::DefaultFuchsiaResourceDialect,
56983    >;
56984    fn r#set_tcp_max_segment(&self, mut value_bytes: u32) -> Self::SetTcpMaxSegmentResponseFut {
56985        fn _decode(
56986            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56987        ) -> Result<StreamSocketSetTcpMaxSegmentResult, fidl::Error> {
56988            let _response = fidl::client::decode_transaction_body::<
56989                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56990                fidl::encoding::DefaultFuchsiaResourceDialect,
56991                0xb3d30c498266d18,
56992            >(_buf?)?;
56993            Ok(_response.map(|x| x))
56994        }
56995        self.client.send_query_and_decode::<
56996            StreamSocketSetTcpMaxSegmentRequest,
56997            StreamSocketSetTcpMaxSegmentResult,
56998        >(
56999            (value_bytes,),
57000            0xb3d30c498266d18,
57001            fidl::encoding::DynamicFlags::empty(),
57002            _decode,
57003        )
57004    }
57005
57006    type GetTcpMaxSegmentResponseFut = fidl::client::QueryResponseFut<
57007        StreamSocketGetTcpMaxSegmentResult,
57008        fidl::encoding::DefaultFuchsiaResourceDialect,
57009    >;
57010    fn r#get_tcp_max_segment(&self) -> Self::GetTcpMaxSegmentResponseFut {
57011        fn _decode(
57012            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
57013        ) -> Result<StreamSocketGetTcpMaxSegmentResult, fidl::Error> {
57014            let _response = fidl::client::decode_transaction_body::<
57015                fidl::encoding::ResultType<
57016                    StreamSocketGetTcpMaxSegmentResponse,
57017                    fidl_fuchsia_posix::Errno,
57018                >,
57019                fidl::encoding::DefaultFuchsiaResourceDialect,
57020                0x637404d1b4b9982c,
57021            >(_buf?)?;
57022            Ok(_response.map(|x| x.value_bytes))
57023        }
57024        self.client.send_query_and_decode::<
57025            fidl::encoding::EmptyPayload,
57026            StreamSocketGetTcpMaxSegmentResult,
57027        >(
57028            (),
57029            0x637404d1b4b9982c,
57030            fidl::encoding::DynamicFlags::empty(),
57031            _decode,
57032        )
57033    }
57034
57035    type SetTcpCorkResponseFut = fidl::client::QueryResponseFut<
57036        StreamSocketSetTcpCorkResult,
57037        fidl::encoding::DefaultFuchsiaResourceDialect,
57038    >;
57039    fn r#set_tcp_cork(&self, mut value: bool) -> Self::SetTcpCorkResponseFut {
57040        fn _decode(
57041            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
57042        ) -> Result<StreamSocketSetTcpCorkResult, fidl::Error> {
57043            let _response = fidl::client::decode_transaction_body::<
57044                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
57045                fidl::encoding::DefaultFuchsiaResourceDialect,
57046                0x62e26891541143a0,
57047            >(_buf?)?;
57048            Ok(_response.map(|x| x))
57049        }
57050        self.client
57051            .send_query_and_decode::<StreamSocketSetTcpCorkRequest, StreamSocketSetTcpCorkResult>(
57052                (value,),
57053                0x62e26891541143a0,
57054                fidl::encoding::DynamicFlags::empty(),
57055                _decode,
57056            )
57057    }
57058
57059    type GetTcpCorkResponseFut = fidl::client::QueryResponseFut<
57060        StreamSocketGetTcpCorkResult,
57061        fidl::encoding::DefaultFuchsiaResourceDialect,
57062    >;
57063    fn r#get_tcp_cork(&self) -> Self::GetTcpCorkResponseFut {
57064        fn _decode(
57065            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
57066        ) -> Result<StreamSocketGetTcpCorkResult, fidl::Error> {
57067            let _response = fidl::client::decode_transaction_body::<
57068                fidl::encoding::ResultType<
57069                    StreamSocketGetTcpCorkResponse,
57070                    fidl_fuchsia_posix::Errno,
57071                >,
57072                fidl::encoding::DefaultFuchsiaResourceDialect,
57073                0x435bb232e0e74f32,
57074            >(_buf?)?;
57075            Ok(_response.map(|x| x.value))
57076        }
57077        self.client
57078            .send_query_and_decode::<fidl::encoding::EmptyPayload, StreamSocketGetTcpCorkResult>(
57079                (),
57080                0x435bb232e0e74f32,
57081                fidl::encoding::DynamicFlags::empty(),
57082                _decode,
57083            )
57084    }
57085
57086    type SetTcpKeepAliveIdleResponseFut = fidl::client::QueryResponseFut<
57087        StreamSocketSetTcpKeepAliveIdleResult,
57088        fidl::encoding::DefaultFuchsiaResourceDialect,
57089    >;
57090    fn r#set_tcp_keep_alive_idle(
57091        &self,
57092        mut value_secs: u32,
57093    ) -> Self::SetTcpKeepAliveIdleResponseFut {
57094        fn _decode(
57095            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
57096        ) -> Result<StreamSocketSetTcpKeepAliveIdleResult, fidl::Error> {
57097            let _response = fidl::client::decode_transaction_body::<
57098                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
57099                fidl::encoding::DefaultFuchsiaResourceDialect,
57100                0x196d053d8363c42,
57101            >(_buf?)?;
57102            Ok(_response.map(|x| x))
57103        }
57104        self.client.send_query_and_decode::<
57105            StreamSocketSetTcpKeepAliveIdleRequest,
57106            StreamSocketSetTcpKeepAliveIdleResult,
57107        >(
57108            (value_secs,),
57109            0x196d053d8363c42,
57110            fidl::encoding::DynamicFlags::empty(),
57111            _decode,
57112        )
57113    }
57114
57115    type GetTcpKeepAliveIdleResponseFut = fidl::client::QueryResponseFut<
57116        StreamSocketGetTcpKeepAliveIdleResult,
57117        fidl::encoding::DefaultFuchsiaResourceDialect,
57118    >;
57119    fn r#get_tcp_keep_alive_idle(&self) -> Self::GetTcpKeepAliveIdleResponseFut {
57120        fn _decode(
57121            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
57122        ) -> Result<StreamSocketGetTcpKeepAliveIdleResult, fidl::Error> {
57123            let _response = fidl::client::decode_transaction_body::<
57124                fidl::encoding::ResultType<
57125                    StreamSocketGetTcpKeepAliveIdleResponse,
57126                    fidl_fuchsia_posix::Errno,
57127                >,
57128                fidl::encoding::DefaultFuchsiaResourceDialect,
57129                0x35ec58564879dac,
57130            >(_buf?)?;
57131            Ok(_response.map(|x| x.value_secs))
57132        }
57133        self.client.send_query_and_decode::<
57134            fidl::encoding::EmptyPayload,
57135            StreamSocketGetTcpKeepAliveIdleResult,
57136        >(
57137            (),
57138            0x35ec58564879dac,
57139            fidl::encoding::DynamicFlags::empty(),
57140            _decode,
57141        )
57142    }
57143
57144    type SetTcpKeepAliveIntervalResponseFut = fidl::client::QueryResponseFut<
57145        StreamSocketSetTcpKeepAliveIntervalResult,
57146        fidl::encoding::DefaultFuchsiaResourceDialect,
57147    >;
57148    fn r#set_tcp_keep_alive_interval(
57149        &self,
57150        mut value_secs: u32,
57151    ) -> Self::SetTcpKeepAliveIntervalResponseFut {
57152        fn _decode(
57153            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
57154        ) -> Result<StreamSocketSetTcpKeepAliveIntervalResult, fidl::Error> {
57155            let _response = fidl::client::decode_transaction_body::<
57156                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
57157                fidl::encoding::DefaultFuchsiaResourceDialect,
57158                0x485ffbc2da1243f2,
57159            >(_buf?)?;
57160            Ok(_response.map(|x| x))
57161        }
57162        self.client.send_query_and_decode::<
57163            StreamSocketSetTcpKeepAliveIntervalRequest,
57164            StreamSocketSetTcpKeepAliveIntervalResult,
57165        >(
57166            (value_secs,),
57167            0x485ffbc2da1243f2,
57168            fidl::encoding::DynamicFlags::empty(),
57169            _decode,
57170        )
57171    }
57172
57173    type GetTcpKeepAliveIntervalResponseFut = fidl::client::QueryResponseFut<
57174        StreamSocketGetTcpKeepAliveIntervalResult,
57175        fidl::encoding::DefaultFuchsiaResourceDialect,
57176    >;
57177    fn r#get_tcp_keep_alive_interval(&self) -> Self::GetTcpKeepAliveIntervalResponseFut {
57178        fn _decode(
57179            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
57180        ) -> Result<StreamSocketGetTcpKeepAliveIntervalResult, fidl::Error> {
57181            let _response = fidl::client::decode_transaction_body::<
57182                fidl::encoding::ResultType<
57183                    StreamSocketGetTcpKeepAliveIntervalResponse,
57184                    fidl_fuchsia_posix::Errno,
57185                >,
57186                fidl::encoding::DefaultFuchsiaResourceDialect,
57187                0x264eaf46306b284,
57188            >(_buf?)?;
57189            Ok(_response.map(|x| x.value_secs))
57190        }
57191        self.client.send_query_and_decode::<
57192            fidl::encoding::EmptyPayload,
57193            StreamSocketGetTcpKeepAliveIntervalResult,
57194        >(
57195            (),
57196            0x264eaf46306b284,
57197            fidl::encoding::DynamicFlags::empty(),
57198            _decode,
57199        )
57200    }
57201
57202    type SetTcpKeepAliveCountResponseFut = fidl::client::QueryResponseFut<
57203        StreamSocketSetTcpKeepAliveCountResult,
57204        fidl::encoding::DefaultFuchsiaResourceDialect,
57205    >;
57206    fn r#set_tcp_keep_alive_count(&self, mut value: u32) -> Self::SetTcpKeepAliveCountResponseFut {
57207        fn _decode(
57208            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
57209        ) -> Result<StreamSocketSetTcpKeepAliveCountResult, fidl::Error> {
57210            let _response = fidl::client::decode_transaction_body::<
57211                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
57212                fidl::encoding::DefaultFuchsiaResourceDialect,
57213                0x2ab2e8c111708421,
57214            >(_buf?)?;
57215            Ok(_response.map(|x| x))
57216        }
57217        self.client.send_query_and_decode::<
57218            StreamSocketSetTcpKeepAliveCountRequest,
57219            StreamSocketSetTcpKeepAliveCountResult,
57220        >(
57221            (value,),
57222            0x2ab2e8c111708421,
57223            fidl::encoding::DynamicFlags::empty(),
57224            _decode,
57225        )
57226    }
57227
57228    type GetTcpKeepAliveCountResponseFut = fidl::client::QueryResponseFut<
57229        StreamSocketGetTcpKeepAliveCountResult,
57230        fidl::encoding::DefaultFuchsiaResourceDialect,
57231    >;
57232    fn r#get_tcp_keep_alive_count(&self) -> Self::GetTcpKeepAliveCountResponseFut {
57233        fn _decode(
57234            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
57235        ) -> Result<StreamSocketGetTcpKeepAliveCountResult, fidl::Error> {
57236            let _response = fidl::client::decode_transaction_body::<
57237                fidl::encoding::ResultType<
57238                    StreamSocketGetTcpKeepAliveCountResponse,
57239                    fidl_fuchsia_posix::Errno,
57240                >,
57241                fidl::encoding::DefaultFuchsiaResourceDialect,
57242                0x2f176ae271fe7a09,
57243            >(_buf?)?;
57244            Ok(_response.map(|x| x.value))
57245        }
57246        self.client.send_query_and_decode::<
57247            fidl::encoding::EmptyPayload,
57248            StreamSocketGetTcpKeepAliveCountResult,
57249        >(
57250            (),
57251            0x2f176ae271fe7a09,
57252            fidl::encoding::DynamicFlags::empty(),
57253            _decode,
57254        )
57255    }
57256
57257    type SetTcpSynCountResponseFut = fidl::client::QueryResponseFut<
57258        StreamSocketSetTcpSynCountResult,
57259        fidl::encoding::DefaultFuchsiaResourceDialect,
57260    >;
57261    fn r#set_tcp_syn_count(&self, mut value: u32) -> Self::SetTcpSynCountResponseFut {
57262        fn _decode(
57263            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
57264        ) -> Result<StreamSocketSetTcpSynCountResult, fidl::Error> {
57265            let _response = fidl::client::decode_transaction_body::<
57266                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
57267                fidl::encoding::DefaultFuchsiaResourceDialect,
57268                0x4dcd6ab5573c1eb3,
57269            >(_buf?)?;
57270            Ok(_response.map(|x| x))
57271        }
57272        self.client.send_query_and_decode::<
57273            StreamSocketSetTcpSynCountRequest,
57274            StreamSocketSetTcpSynCountResult,
57275        >(
57276            (value,),
57277            0x4dcd6ab5573c1eb3,
57278            fidl::encoding::DynamicFlags::empty(),
57279            _decode,
57280        )
57281    }
57282
57283    type GetTcpSynCountResponseFut = fidl::client::QueryResponseFut<
57284        StreamSocketGetTcpSynCountResult,
57285        fidl::encoding::DefaultFuchsiaResourceDialect,
57286    >;
57287    fn r#get_tcp_syn_count(&self) -> Self::GetTcpSynCountResponseFut {
57288        fn _decode(
57289            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
57290        ) -> Result<StreamSocketGetTcpSynCountResult, fidl::Error> {
57291            let _response = fidl::client::decode_transaction_body::<
57292                fidl::encoding::ResultType<
57293                    StreamSocketGetTcpSynCountResponse,
57294                    fidl_fuchsia_posix::Errno,
57295                >,
57296                fidl::encoding::DefaultFuchsiaResourceDialect,
57297                0x7d457cba8f5f3ee6,
57298            >(_buf?)?;
57299            Ok(_response.map(|x| x.value))
57300        }
57301        self.client.send_query_and_decode::<
57302            fidl::encoding::EmptyPayload,
57303            StreamSocketGetTcpSynCountResult,
57304        >(
57305            (),
57306            0x7d457cba8f5f3ee6,
57307            fidl::encoding::DynamicFlags::empty(),
57308            _decode,
57309        )
57310    }
57311
57312    type SetTcpLingerResponseFut = fidl::client::QueryResponseFut<
57313        StreamSocketSetTcpLingerResult,
57314        fidl::encoding::DefaultFuchsiaResourceDialect,
57315    >;
57316    fn r#set_tcp_linger(&self, mut value_secs: &OptionalUint32) -> Self::SetTcpLingerResponseFut {
57317        fn _decode(
57318            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
57319        ) -> Result<StreamSocketSetTcpLingerResult, fidl::Error> {
57320            let _response = fidl::client::decode_transaction_body::<
57321                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
57322                fidl::encoding::DefaultFuchsiaResourceDialect,
57323                0xd5cc1e8654d36e4,
57324            >(_buf?)?;
57325            Ok(_response.map(|x| x))
57326        }
57327        self.client.send_query_and_decode::<
57328            StreamSocketSetTcpLingerRequest,
57329            StreamSocketSetTcpLingerResult,
57330        >(
57331            (value_secs,),
57332            0xd5cc1e8654d36e4,
57333            fidl::encoding::DynamicFlags::empty(),
57334            _decode,
57335        )
57336    }
57337
57338    type GetTcpLingerResponseFut = fidl::client::QueryResponseFut<
57339        StreamSocketGetTcpLingerResult,
57340        fidl::encoding::DefaultFuchsiaResourceDialect,
57341    >;
57342    fn r#get_tcp_linger(&self) -> Self::GetTcpLingerResponseFut {
57343        fn _decode(
57344            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
57345        ) -> Result<StreamSocketGetTcpLingerResult, fidl::Error> {
57346            let _response = fidl::client::decode_transaction_body::<
57347                fidl::encoding::ResultType<
57348                    StreamSocketGetTcpLingerResponse,
57349                    fidl_fuchsia_posix::Errno,
57350                >,
57351                fidl::encoding::DefaultFuchsiaResourceDialect,
57352                0xad870d311cf30eb,
57353            >(_buf?)?;
57354            Ok(_response.map(|x| x.value_secs))
57355        }
57356        self.client
57357            .send_query_and_decode::<fidl::encoding::EmptyPayload, StreamSocketGetTcpLingerResult>(
57358                (),
57359                0xad870d311cf30eb,
57360                fidl::encoding::DynamicFlags::empty(),
57361                _decode,
57362            )
57363    }
57364
57365    type SetTcpDeferAcceptResponseFut = fidl::client::QueryResponseFut<
57366        StreamSocketSetTcpDeferAcceptResult,
57367        fidl::encoding::DefaultFuchsiaResourceDialect,
57368    >;
57369    fn r#set_tcp_defer_accept(&self, mut value_secs: u32) -> Self::SetTcpDeferAcceptResponseFut {
57370        fn _decode(
57371            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
57372        ) -> Result<StreamSocketSetTcpDeferAcceptResult, fidl::Error> {
57373            let _response = fidl::client::decode_transaction_body::<
57374                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
57375                fidl::encoding::DefaultFuchsiaResourceDialect,
57376                0x15092f181e57c404,
57377            >(_buf?)?;
57378            Ok(_response.map(|x| x))
57379        }
57380        self.client.send_query_and_decode::<
57381            StreamSocketSetTcpDeferAcceptRequest,
57382            StreamSocketSetTcpDeferAcceptResult,
57383        >(
57384            (value_secs,),
57385            0x15092f181e57c404,
57386            fidl::encoding::DynamicFlags::empty(),
57387            _decode,
57388        )
57389    }
57390
57391    type GetTcpDeferAcceptResponseFut = fidl::client::QueryResponseFut<
57392        StreamSocketGetTcpDeferAcceptResult,
57393        fidl::encoding::DefaultFuchsiaResourceDialect,
57394    >;
57395    fn r#get_tcp_defer_accept(&self) -> Self::GetTcpDeferAcceptResponseFut {
57396        fn _decode(
57397            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
57398        ) -> Result<StreamSocketGetTcpDeferAcceptResult, fidl::Error> {
57399            let _response = fidl::client::decode_transaction_body::<
57400                fidl::encoding::ResultType<
57401                    StreamSocketGetTcpDeferAcceptResponse,
57402                    fidl_fuchsia_posix::Errno,
57403                >,
57404                fidl::encoding::DefaultFuchsiaResourceDialect,
57405                0x64589790842cb7c6,
57406            >(_buf?)?;
57407            Ok(_response.map(|x| x.value_secs))
57408        }
57409        self.client.send_query_and_decode::<
57410            fidl::encoding::EmptyPayload,
57411            StreamSocketGetTcpDeferAcceptResult,
57412        >(
57413            (),
57414            0x64589790842cb7c6,
57415            fidl::encoding::DynamicFlags::empty(),
57416            _decode,
57417        )
57418    }
57419
57420    type SetTcpWindowClampResponseFut = fidl::client::QueryResponseFut<
57421        StreamSocketSetTcpWindowClampResult,
57422        fidl::encoding::DefaultFuchsiaResourceDialect,
57423    >;
57424    fn r#set_tcp_window_clamp(&self, mut value: u32) -> Self::SetTcpWindowClampResponseFut {
57425        fn _decode(
57426            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
57427        ) -> Result<StreamSocketSetTcpWindowClampResult, fidl::Error> {
57428            let _response = fidl::client::decode_transaction_body::<
57429                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
57430                fidl::encoding::DefaultFuchsiaResourceDialect,
57431                0x4a26ce07d847f1c6,
57432            >(_buf?)?;
57433            Ok(_response.map(|x| x))
57434        }
57435        self.client.send_query_and_decode::<
57436            StreamSocketSetTcpWindowClampRequest,
57437            StreamSocketSetTcpWindowClampResult,
57438        >(
57439            (value,),
57440            0x4a26ce07d847f1c6,
57441            fidl::encoding::DynamicFlags::empty(),
57442            _decode,
57443        )
57444    }
57445
57446    type GetTcpWindowClampResponseFut = fidl::client::QueryResponseFut<
57447        StreamSocketGetTcpWindowClampResult,
57448        fidl::encoding::DefaultFuchsiaResourceDialect,
57449    >;
57450    fn r#get_tcp_window_clamp(&self) -> Self::GetTcpWindowClampResponseFut {
57451        fn _decode(
57452            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
57453        ) -> Result<StreamSocketGetTcpWindowClampResult, fidl::Error> {
57454            let _response = fidl::client::decode_transaction_body::<
57455                fidl::encoding::ResultType<
57456                    StreamSocketGetTcpWindowClampResponse,
57457                    fidl_fuchsia_posix::Errno,
57458                >,
57459                fidl::encoding::DefaultFuchsiaResourceDialect,
57460                0x2df6b636bf0a6a4e,
57461            >(_buf?)?;
57462            Ok(_response.map(|x| x.value))
57463        }
57464        self.client.send_query_and_decode::<
57465            fidl::encoding::EmptyPayload,
57466            StreamSocketGetTcpWindowClampResult,
57467        >(
57468            (),
57469            0x2df6b636bf0a6a4e,
57470            fidl::encoding::DynamicFlags::empty(),
57471            _decode,
57472        )
57473    }
57474
57475    type GetTcpInfoResponseFut = fidl::client::QueryResponseFut<
57476        StreamSocketGetTcpInfoResult,
57477        fidl::encoding::DefaultFuchsiaResourceDialect,
57478    >;
57479    fn r#get_tcp_info(&self) -> Self::GetTcpInfoResponseFut {
57480        fn _decode(
57481            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
57482        ) -> Result<StreamSocketGetTcpInfoResult, fidl::Error> {
57483            let _response = fidl::client::decode_transaction_body::<
57484                fidl::encoding::ResultType<
57485                    StreamSocketGetTcpInfoResponse,
57486                    fidl_fuchsia_posix::Errno,
57487                >,
57488                fidl::encoding::DefaultFuchsiaResourceDialect,
57489                0x1ffb123d9f03ead2,
57490            >(_buf?)?;
57491            Ok(_response.map(|x| x.info))
57492        }
57493        self.client
57494            .send_query_and_decode::<fidl::encoding::EmptyPayload, StreamSocketGetTcpInfoResult>(
57495                (),
57496                0x1ffb123d9f03ead2,
57497                fidl::encoding::DynamicFlags::empty(),
57498                _decode,
57499            )
57500    }
57501
57502    type SetTcpQuickAckResponseFut = fidl::client::QueryResponseFut<
57503        StreamSocketSetTcpQuickAckResult,
57504        fidl::encoding::DefaultFuchsiaResourceDialect,
57505    >;
57506    fn r#set_tcp_quick_ack(&self, mut value: bool) -> Self::SetTcpQuickAckResponseFut {
57507        fn _decode(
57508            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
57509        ) -> Result<StreamSocketSetTcpQuickAckResult, fidl::Error> {
57510            let _response = fidl::client::decode_transaction_body::<
57511                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
57512                fidl::encoding::DefaultFuchsiaResourceDialect,
57513                0x6fa811be8fde7457,
57514            >(_buf?)?;
57515            Ok(_response.map(|x| x))
57516        }
57517        self.client.send_query_and_decode::<
57518            StreamSocketSetTcpQuickAckRequest,
57519            StreamSocketSetTcpQuickAckResult,
57520        >(
57521            (value,),
57522            0x6fa811be8fde7457,
57523            fidl::encoding::DynamicFlags::empty(),
57524            _decode,
57525        )
57526    }
57527
57528    type GetTcpQuickAckResponseFut = fidl::client::QueryResponseFut<
57529        StreamSocketGetTcpQuickAckResult,
57530        fidl::encoding::DefaultFuchsiaResourceDialect,
57531    >;
57532    fn r#get_tcp_quick_ack(&self) -> Self::GetTcpQuickAckResponseFut {
57533        fn _decode(
57534            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
57535        ) -> Result<StreamSocketGetTcpQuickAckResult, fidl::Error> {
57536            let _response = fidl::client::decode_transaction_body::<
57537                fidl::encoding::ResultType<
57538                    StreamSocketGetTcpQuickAckResponse,
57539                    fidl_fuchsia_posix::Errno,
57540                >,
57541                fidl::encoding::DefaultFuchsiaResourceDialect,
57542                0x7356a949bef2df32,
57543            >(_buf?)?;
57544            Ok(_response.map(|x| x.value))
57545        }
57546        self.client.send_query_and_decode::<
57547            fidl::encoding::EmptyPayload,
57548            StreamSocketGetTcpQuickAckResult,
57549        >(
57550            (),
57551            0x7356a949bef2df32,
57552            fidl::encoding::DynamicFlags::empty(),
57553            _decode,
57554        )
57555    }
57556
57557    type SetTcpCongestionResponseFut = fidl::client::QueryResponseFut<
57558        StreamSocketSetTcpCongestionResult,
57559        fidl::encoding::DefaultFuchsiaResourceDialect,
57560    >;
57561    fn r#set_tcp_congestion(
57562        &self,
57563        mut value: TcpCongestionControl,
57564    ) -> Self::SetTcpCongestionResponseFut {
57565        fn _decode(
57566            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
57567        ) -> Result<StreamSocketSetTcpCongestionResult, fidl::Error> {
57568            let _response = fidl::client::decode_transaction_body::<
57569                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
57570                fidl::encoding::DefaultFuchsiaResourceDialect,
57571                0x7924c6eabde7819e,
57572            >(_buf?)?;
57573            Ok(_response.map(|x| x))
57574        }
57575        self.client.send_query_and_decode::<
57576            StreamSocketSetTcpCongestionRequest,
57577            StreamSocketSetTcpCongestionResult,
57578        >(
57579            (value,),
57580            0x7924c6eabde7819e,
57581            fidl::encoding::DynamicFlags::empty(),
57582            _decode,
57583        )
57584    }
57585
57586    type GetTcpCongestionResponseFut = fidl::client::QueryResponseFut<
57587        StreamSocketGetTcpCongestionResult,
57588        fidl::encoding::DefaultFuchsiaResourceDialect,
57589    >;
57590    fn r#get_tcp_congestion(&self) -> Self::GetTcpCongestionResponseFut {
57591        fn _decode(
57592            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
57593        ) -> Result<StreamSocketGetTcpCongestionResult, fidl::Error> {
57594            let _response = fidl::client::decode_transaction_body::<
57595                fidl::encoding::ResultType<
57596                    StreamSocketGetTcpCongestionResponse,
57597                    fidl_fuchsia_posix::Errno,
57598                >,
57599                fidl::encoding::DefaultFuchsiaResourceDialect,
57600                0x11e16397e1b72a47,
57601            >(_buf?)?;
57602            Ok(_response.map(|x| x.value))
57603        }
57604        self.client.send_query_and_decode::<
57605            fidl::encoding::EmptyPayload,
57606            StreamSocketGetTcpCongestionResult,
57607        >(
57608            (),
57609            0x11e16397e1b72a47,
57610            fidl::encoding::DynamicFlags::empty(),
57611            _decode,
57612        )
57613    }
57614
57615    type SetTcpUserTimeoutResponseFut = fidl::client::QueryResponseFut<
57616        StreamSocketSetTcpUserTimeoutResult,
57617        fidl::encoding::DefaultFuchsiaResourceDialect,
57618    >;
57619    fn r#set_tcp_user_timeout(&self, mut value_millis: u32) -> Self::SetTcpUserTimeoutResponseFut {
57620        fn _decode(
57621            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
57622        ) -> Result<StreamSocketSetTcpUserTimeoutResult, fidl::Error> {
57623            let _response = fidl::client::decode_transaction_body::<
57624                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
57625                fidl::encoding::DefaultFuchsiaResourceDialect,
57626                0x6b459e81c3741a60,
57627            >(_buf?)?;
57628            Ok(_response.map(|x| x))
57629        }
57630        self.client.send_query_and_decode::<
57631            StreamSocketSetTcpUserTimeoutRequest,
57632            StreamSocketSetTcpUserTimeoutResult,
57633        >(
57634            (value_millis,),
57635            0x6b459e81c3741a60,
57636            fidl::encoding::DynamicFlags::empty(),
57637            _decode,
57638        )
57639    }
57640
57641    type GetTcpUserTimeoutResponseFut = fidl::client::QueryResponseFut<
57642        StreamSocketGetTcpUserTimeoutResult,
57643        fidl::encoding::DefaultFuchsiaResourceDialect,
57644    >;
57645    fn r#get_tcp_user_timeout(&self) -> Self::GetTcpUserTimeoutResponseFut {
57646        fn _decode(
57647            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
57648        ) -> Result<StreamSocketGetTcpUserTimeoutResult, fidl::Error> {
57649            let _response = fidl::client::decode_transaction_body::<
57650                fidl::encoding::ResultType<
57651                    StreamSocketGetTcpUserTimeoutResponse,
57652                    fidl_fuchsia_posix::Errno,
57653                >,
57654                fidl::encoding::DefaultFuchsiaResourceDialect,
57655                0x24bbd5858ad8c380,
57656            >(_buf?)?;
57657            Ok(_response.map(|x| x.value_millis))
57658        }
57659        self.client.send_query_and_decode::<
57660            fidl::encoding::EmptyPayload,
57661            StreamSocketGetTcpUserTimeoutResult,
57662        >(
57663            (),
57664            0x24bbd5858ad8c380,
57665            fidl::encoding::DynamicFlags::empty(),
57666            _decode,
57667        )
57668    }
57669}
57670
57671pub struct StreamSocketEventStream {
57672    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
57673}
57674
57675impl std::marker::Unpin for StreamSocketEventStream {}
57676
57677impl futures::stream::FusedStream for StreamSocketEventStream {
57678    fn is_terminated(&self) -> bool {
57679        self.event_receiver.is_terminated()
57680    }
57681}
57682
57683impl futures::Stream for StreamSocketEventStream {
57684    type Item = Result<StreamSocketEvent, fidl::Error>;
57685
57686    fn poll_next(
57687        mut self: std::pin::Pin<&mut Self>,
57688        cx: &mut std::task::Context<'_>,
57689    ) -> std::task::Poll<Option<Self::Item>> {
57690        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
57691            &mut self.event_receiver,
57692            cx
57693        )?) {
57694            Some(buf) => std::task::Poll::Ready(Some(StreamSocketEvent::decode(buf))),
57695            None => std::task::Poll::Ready(None),
57696        }
57697    }
57698}
57699
57700#[derive(Debug)]
57701pub enum StreamSocketEvent {}
57702
57703impl StreamSocketEvent {
57704    /// Decodes a message buffer as a [`StreamSocketEvent`].
57705    fn decode(
57706        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
57707    ) -> Result<StreamSocketEvent, fidl::Error> {
57708        let (bytes, _handles) = buf.split_mut();
57709        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
57710        debug_assert_eq!(tx_header.tx_id, 0);
57711        match tx_header.ordinal {
57712            _ => Err(fidl::Error::UnknownOrdinal {
57713                ordinal: tx_header.ordinal,
57714                protocol_name: <StreamSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
57715            }),
57716        }
57717    }
57718}
57719
57720/// A Stream of incoming requests for fuchsia.posix.socket/StreamSocket.
57721pub struct StreamSocketRequestStream {
57722    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
57723    is_terminated: bool,
57724}
57725
57726impl std::marker::Unpin for StreamSocketRequestStream {}
57727
57728impl futures::stream::FusedStream for StreamSocketRequestStream {
57729    fn is_terminated(&self) -> bool {
57730        self.is_terminated
57731    }
57732}
57733
57734impl fidl::endpoints::RequestStream for StreamSocketRequestStream {
57735    type Protocol = StreamSocketMarker;
57736    type ControlHandle = StreamSocketControlHandle;
57737
57738    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
57739        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
57740    }
57741
57742    fn control_handle(&self) -> Self::ControlHandle {
57743        StreamSocketControlHandle { inner: self.inner.clone() }
57744    }
57745
57746    fn into_inner(
57747        self,
57748    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
57749    {
57750        (self.inner, self.is_terminated)
57751    }
57752
57753    fn from_inner(
57754        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
57755        is_terminated: bool,
57756    ) -> Self {
57757        Self { inner, is_terminated }
57758    }
57759}
57760
57761impl futures::Stream for StreamSocketRequestStream {
57762    type Item = Result<StreamSocketRequest, fidl::Error>;
57763
57764    fn poll_next(
57765        mut self: std::pin::Pin<&mut Self>,
57766        cx: &mut std::task::Context<'_>,
57767    ) -> std::task::Poll<Option<Self::Item>> {
57768        let this = &mut *self;
57769        if this.inner.check_shutdown(cx) {
57770            this.is_terminated = true;
57771            return std::task::Poll::Ready(None);
57772        }
57773        if this.is_terminated {
57774            panic!("polled StreamSocketRequestStream after completion");
57775        }
57776        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
57777            |bytes, handles| {
57778                match this.inner.channel().read_etc(cx, bytes, handles) {
57779                    std::task::Poll::Ready(Ok(())) => {}
57780                    std::task::Poll::Pending => return std::task::Poll::Pending,
57781                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
57782                        this.is_terminated = true;
57783                        return std::task::Poll::Ready(None);
57784                    }
57785                    std::task::Poll::Ready(Err(e)) => {
57786                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
57787                            e.into(),
57788                        ))));
57789                    }
57790                }
57791
57792                // A message has been received from the channel
57793                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
57794
57795                std::task::Poll::Ready(Some(match header.ordinal {
57796                    0x20d8a7aba2168a79 => {
57797                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
57798                        let mut req = fidl::new_empty!(
57799                            fidl_fuchsia_unknown::CloneableCloneRequest,
57800                            fidl::encoding::DefaultFuchsiaResourceDialect
57801                        );
57802                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl_fuchsia_unknown::CloneableCloneRequest>(&header, _body_bytes, handles, &mut req)?;
57803                        let control_handle =
57804                            StreamSocketControlHandle { inner: this.inner.clone() };
57805                        Ok(StreamSocketRequest::Clone { request: req.request, control_handle })
57806                    }
57807                    0x5ac5d459ad7f657e => {
57808                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57809                        let mut req = fidl::new_empty!(
57810                            fidl::encoding::EmptyPayload,
57811                            fidl::encoding::DefaultFuchsiaResourceDialect
57812                        );
57813                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57814                        let control_handle =
57815                            StreamSocketControlHandle { inner: this.inner.clone() };
57816                        Ok(StreamSocketRequest::Close {
57817                            responder: StreamSocketCloseResponder {
57818                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57819                                tx_id: header.tx_id,
57820                            },
57821                        })
57822                    }
57823                    0x2658edee9decfc06 => {
57824                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57825                        let mut req = fidl::new_empty!(
57826                            fidl::encoding::EmptyPayload,
57827                            fidl::encoding::DefaultFuchsiaResourceDialect
57828                        );
57829                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57830                        let control_handle =
57831                            StreamSocketControlHandle { inner: this.inner.clone() };
57832                        Ok(StreamSocketRequest::Query {
57833                            responder: StreamSocketQueryResponder {
57834                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57835                                tx_id: header.tx_id,
57836                            },
57837                        })
57838                    }
57839                    0x1fd74ee8b9a4a876 => {
57840                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57841                        let mut req = fidl::new_empty!(
57842                            BaseSocketSetReuseAddressRequest,
57843                            fidl::encoding::DefaultFuchsiaResourceDialect
57844                        );
57845                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReuseAddressRequest>(&header, _body_bytes, handles, &mut req)?;
57846                        let control_handle =
57847                            StreamSocketControlHandle { inner: this.inner.clone() };
57848                        Ok(StreamSocketRequest::SetReuseAddress {
57849                            value: req.value,
57850
57851                            responder: StreamSocketSetReuseAddressResponder {
57852                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57853                                tx_id: header.tx_id,
57854                            },
57855                        })
57856                    }
57857                    0x67b7206b8d1bc0a5 => {
57858                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57859                        let mut req = fidl::new_empty!(
57860                            fidl::encoding::EmptyPayload,
57861                            fidl::encoding::DefaultFuchsiaResourceDialect
57862                        );
57863                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57864                        let control_handle =
57865                            StreamSocketControlHandle { inner: this.inner.clone() };
57866                        Ok(StreamSocketRequest::GetReuseAddress {
57867                            responder: StreamSocketGetReuseAddressResponder {
57868                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57869                                tx_id: header.tx_id,
57870                            },
57871                        })
57872                    }
57873                    0x5aad39b33e5f6ebb => {
57874                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57875                        let mut req = fidl::new_empty!(
57876                            fidl::encoding::EmptyPayload,
57877                            fidl::encoding::DefaultFuchsiaResourceDialect
57878                        );
57879                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57880                        let control_handle =
57881                            StreamSocketControlHandle { inner: this.inner.clone() };
57882                        Ok(StreamSocketRequest::GetError {
57883                            responder: StreamSocketGetErrorResponder {
57884                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57885                                tx_id: header.tx_id,
57886                            },
57887                        })
57888                    }
57889                    0x6023e081ce3cd947 => {
57890                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57891                        let mut req = fidl::new_empty!(
57892                            BaseSocketSetBroadcastRequest,
57893                            fidl::encoding::DefaultFuchsiaResourceDialect
57894                        );
57895                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBroadcastRequest>(&header, _body_bytes, handles, &mut req)?;
57896                        let control_handle =
57897                            StreamSocketControlHandle { inner: this.inner.clone() };
57898                        Ok(StreamSocketRequest::SetBroadcast {
57899                            value: req.value,
57900
57901                            responder: StreamSocketSetBroadcastResponder {
57902                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57903                                tx_id: header.tx_id,
57904                            },
57905                        })
57906                    }
57907                    0x68796fc556f9780d => {
57908                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57909                        let mut req = fidl::new_empty!(
57910                            fidl::encoding::EmptyPayload,
57911                            fidl::encoding::DefaultFuchsiaResourceDialect
57912                        );
57913                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57914                        let control_handle =
57915                            StreamSocketControlHandle { inner: this.inner.clone() };
57916                        Ok(StreamSocketRequest::GetBroadcast {
57917                            responder: StreamSocketGetBroadcastResponder {
57918                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57919                                tx_id: header.tx_id,
57920                            },
57921                        })
57922                    }
57923                    0x756eac32d73a7a70 => {
57924                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57925                        let mut req = fidl::new_empty!(
57926                            BaseSocketSetSendBufferRequest,
57927                            fidl::encoding::DefaultFuchsiaResourceDialect
57928                        );
57929                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetSendBufferRequest>(&header, _body_bytes, handles, &mut req)?;
57930                        let control_handle =
57931                            StreamSocketControlHandle { inner: this.inner.clone() };
57932                        Ok(StreamSocketRequest::SetSendBuffer {
57933                            value_bytes: req.value_bytes,
57934
57935                            responder: StreamSocketSetSendBufferResponder {
57936                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57937                                tx_id: header.tx_id,
57938                            },
57939                        })
57940                    }
57941                    0x78a52fd9c7b2410b => {
57942                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57943                        let mut req = fidl::new_empty!(
57944                            fidl::encoding::EmptyPayload,
57945                            fidl::encoding::DefaultFuchsiaResourceDialect
57946                        );
57947                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57948                        let control_handle =
57949                            StreamSocketControlHandle { inner: this.inner.clone() };
57950                        Ok(StreamSocketRequest::GetSendBuffer {
57951                            responder: StreamSocketGetSendBufferResponder {
57952                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57953                                tx_id: header.tx_id,
57954                            },
57955                        })
57956                    }
57957                    0x6b0cf2f1919c7001 => {
57958                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57959                        let mut req = fidl::new_empty!(
57960                            BaseSocketSetReceiveBufferRequest,
57961                            fidl::encoding::DefaultFuchsiaResourceDialect
57962                        );
57963                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReceiveBufferRequest>(&header, _body_bytes, handles, &mut req)?;
57964                        let control_handle =
57965                            StreamSocketControlHandle { inner: this.inner.clone() };
57966                        Ok(StreamSocketRequest::SetReceiveBuffer {
57967                            value_bytes: req.value_bytes,
57968
57969                            responder: StreamSocketSetReceiveBufferResponder {
57970                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57971                                tx_id: header.tx_id,
57972                            },
57973                        })
57974                    }
57975                    0x14c1a4b64f709e5c => {
57976                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57977                        let mut req = fidl::new_empty!(
57978                            fidl::encoding::EmptyPayload,
57979                            fidl::encoding::DefaultFuchsiaResourceDialect
57980                        );
57981                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57982                        let control_handle =
57983                            StreamSocketControlHandle { inner: this.inner.clone() };
57984                        Ok(StreamSocketRequest::GetReceiveBuffer {
57985                            responder: StreamSocketGetReceiveBufferResponder {
57986                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57987                                tx_id: header.tx_id,
57988                            },
57989                        })
57990                    }
57991                    0x572df8f0b920d2c7 => {
57992                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57993                        let mut req = fidl::new_empty!(
57994                            BaseSocketSetKeepAliveRequest,
57995                            fidl::encoding::DefaultFuchsiaResourceDialect
57996                        );
57997                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetKeepAliveRequest>(&header, _body_bytes, handles, &mut req)?;
57998                        let control_handle =
57999                            StreamSocketControlHandle { inner: this.inner.clone() };
58000                        Ok(StreamSocketRequest::SetKeepAlive {
58001                            value: req.value,
58002
58003                            responder: StreamSocketSetKeepAliveResponder {
58004                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58005                                tx_id: header.tx_id,
58006                            },
58007                        })
58008                    }
58009                    0x2dd29d3215f2c9d2 => {
58010                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58011                        let mut req = fidl::new_empty!(
58012                            fidl::encoding::EmptyPayload,
58013                            fidl::encoding::DefaultFuchsiaResourceDialect
58014                        );
58015                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58016                        let control_handle =
58017                            StreamSocketControlHandle { inner: this.inner.clone() };
58018                        Ok(StreamSocketRequest::GetKeepAlive {
58019                            responder: StreamSocketGetKeepAliveResponder {
58020                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58021                                tx_id: header.tx_id,
58022                            },
58023                        })
58024                    }
58025                    0x3ecb49968bee439 => {
58026                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58027                        let mut req = fidl::new_empty!(
58028                            BaseSocketSetOutOfBandInlineRequest,
58029                            fidl::encoding::DefaultFuchsiaResourceDialect
58030                        );
58031                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetOutOfBandInlineRequest>(&header, _body_bytes, handles, &mut req)?;
58032                        let control_handle =
58033                            StreamSocketControlHandle { inner: this.inner.clone() };
58034                        Ok(StreamSocketRequest::SetOutOfBandInline {
58035                            value: req.value,
58036
58037                            responder: StreamSocketSetOutOfBandInlineResponder {
58038                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58039                                tx_id: header.tx_id,
58040                            },
58041                        })
58042                    }
58043                    0x348c1ab3aeca1745 => {
58044                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58045                        let mut req = fidl::new_empty!(
58046                            fidl::encoding::EmptyPayload,
58047                            fidl::encoding::DefaultFuchsiaResourceDialect
58048                        );
58049                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58050                        let control_handle =
58051                            StreamSocketControlHandle { inner: this.inner.clone() };
58052                        Ok(StreamSocketRequest::GetOutOfBandInline {
58053                            responder: StreamSocketGetOutOfBandInlineResponder {
58054                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58055                                tx_id: header.tx_id,
58056                            },
58057                        })
58058                    }
58059                    0x6bbf00c53a4c78c2 => {
58060                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58061                        let mut req = fidl::new_empty!(
58062                            BaseSocketSetNoCheckRequest,
58063                            fidl::encoding::DefaultFuchsiaResourceDialect
58064                        );
58065                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetNoCheckRequest>(&header, _body_bytes, handles, &mut req)?;
58066                        let control_handle =
58067                            StreamSocketControlHandle { inner: this.inner.clone() };
58068                        Ok(StreamSocketRequest::SetNoCheck {
58069                            value: req.value,
58070
58071                            responder: StreamSocketSetNoCheckResponder {
58072                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58073                                tx_id: header.tx_id,
58074                            },
58075                        })
58076                    }
58077                    0x2cd4249286417694 => {
58078                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58079                        let mut req = fidl::new_empty!(
58080                            fidl::encoding::EmptyPayload,
58081                            fidl::encoding::DefaultFuchsiaResourceDialect
58082                        );
58083                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58084                        let control_handle =
58085                            StreamSocketControlHandle { inner: this.inner.clone() };
58086                        Ok(StreamSocketRequest::GetNoCheck {
58087                            responder: StreamSocketGetNoCheckResponder {
58088                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58089                                tx_id: header.tx_id,
58090                            },
58091                        })
58092                    }
58093                    0x45386351246e998e => {
58094                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58095                        let mut req = fidl::new_empty!(
58096                            BaseSocketSetLingerRequest,
58097                            fidl::encoding::DefaultFuchsiaResourceDialect
58098                        );
58099                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetLingerRequest>(&header, _body_bytes, handles, &mut req)?;
58100                        let control_handle =
58101                            StreamSocketControlHandle { inner: this.inner.clone() };
58102                        Ok(StreamSocketRequest::SetLinger {
58103                            linger: req.linger,
58104                            length_secs: req.length_secs,
58105
58106                            responder: StreamSocketSetLingerResponder {
58107                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58108                                tx_id: header.tx_id,
58109                            },
58110                        })
58111                    }
58112                    0x48eb20fc5ccb0e45 => {
58113                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58114                        let mut req = fidl::new_empty!(
58115                            fidl::encoding::EmptyPayload,
58116                            fidl::encoding::DefaultFuchsiaResourceDialect
58117                        );
58118                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58119                        let control_handle =
58120                            StreamSocketControlHandle { inner: this.inner.clone() };
58121                        Ok(StreamSocketRequest::GetLinger {
58122                            responder: StreamSocketGetLingerResponder {
58123                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58124                                tx_id: header.tx_id,
58125                            },
58126                        })
58127                    }
58128                    0x547dc9cc0455189e => {
58129                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58130                        let mut req = fidl::new_empty!(
58131                            BaseSocketSetReusePortRequest,
58132                            fidl::encoding::DefaultFuchsiaResourceDialect
58133                        );
58134                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReusePortRequest>(&header, _body_bytes, handles, &mut req)?;
58135                        let control_handle =
58136                            StreamSocketControlHandle { inner: this.inner.clone() };
58137                        Ok(StreamSocketRequest::SetReusePort {
58138                            value: req.value,
58139
58140                            responder: StreamSocketSetReusePortResponder {
58141                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58142                                tx_id: header.tx_id,
58143                            },
58144                        })
58145                    }
58146                    0x24dd3e5cb36d9ccb => {
58147                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58148                        let mut req = fidl::new_empty!(
58149                            BaseSocketSetReusePortDeprecatedRequest,
58150                            fidl::encoding::DefaultFuchsiaResourceDialect
58151                        );
58152                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReusePortDeprecatedRequest>(&header, _body_bytes, handles, &mut req)?;
58153                        let control_handle =
58154                            StreamSocketControlHandle { inner: this.inner.clone() };
58155                        Ok(StreamSocketRequest::SetReusePortDeprecated {
58156                            value: req.value,
58157
58158                            responder: StreamSocketSetReusePortDeprecatedResponder {
58159                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58160                                tx_id: header.tx_id,
58161                            },
58162                        })
58163                    }
58164                    0x7a112c1ab54ff828 => {
58165                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58166                        let mut req = fidl::new_empty!(
58167                            fidl::encoding::EmptyPayload,
58168                            fidl::encoding::DefaultFuchsiaResourceDialect
58169                        );
58170                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58171                        let control_handle =
58172                            StreamSocketControlHandle { inner: this.inner.clone() };
58173                        Ok(StreamSocketRequest::GetReusePort {
58174                            responder: StreamSocketGetReusePortResponder {
58175                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58176                                tx_id: header.tx_id,
58177                            },
58178                        })
58179                    }
58180                    0x67ce6db6c2ec8966 => {
58181                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58182                        let mut req = fidl::new_empty!(
58183                            fidl::encoding::EmptyPayload,
58184                            fidl::encoding::DefaultFuchsiaResourceDialect
58185                        );
58186                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58187                        let control_handle =
58188                            StreamSocketControlHandle { inner: this.inner.clone() };
58189                        Ok(StreamSocketRequest::GetAcceptConn {
58190                            responder: StreamSocketGetAcceptConnResponder {
58191                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58192                                tx_id: header.tx_id,
58193                            },
58194                        })
58195                    }
58196                    0x2118b483f28aafc4 => {
58197                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58198                        let mut req = fidl::new_empty!(
58199                            BaseSocketSetBindToDeviceRequest,
58200                            fidl::encoding::DefaultFuchsiaResourceDialect
58201                        );
58202                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToDeviceRequest>(&header, _body_bytes, handles, &mut req)?;
58203                        let control_handle =
58204                            StreamSocketControlHandle { inner: this.inner.clone() };
58205                        Ok(StreamSocketRequest::SetBindToDevice {
58206                            value: req.value,
58207
58208                            responder: StreamSocketSetBindToDeviceResponder {
58209                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58210                                tx_id: header.tx_id,
58211                            },
58212                        })
58213                    }
58214                    0x1ab1fbf0ef7906c8 => {
58215                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58216                        let mut req = fidl::new_empty!(
58217                            fidl::encoding::EmptyPayload,
58218                            fidl::encoding::DefaultFuchsiaResourceDialect
58219                        );
58220                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58221                        let control_handle =
58222                            StreamSocketControlHandle { inner: this.inner.clone() };
58223                        Ok(StreamSocketRequest::GetBindToDevice {
58224                            responder: StreamSocketGetBindToDeviceResponder {
58225                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58226                                tx_id: header.tx_id,
58227                            },
58228                        })
58229                    }
58230                    0x6e387a0def00821 => {
58231                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58232                        let mut req = fidl::new_empty!(
58233                            BaseSocketSetBindToInterfaceIndexRequest,
58234                            fidl::encoding::DefaultFuchsiaResourceDialect
58235                        );
58236                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToInterfaceIndexRequest>(&header, _body_bytes, handles, &mut req)?;
58237                        let control_handle =
58238                            StreamSocketControlHandle { inner: this.inner.clone() };
58239                        Ok(StreamSocketRequest::SetBindToInterfaceIndex {
58240                            value: req.value,
58241
58242                            responder: StreamSocketSetBindToInterfaceIndexResponder {
58243                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58244                                tx_id: header.tx_id,
58245                            },
58246                        })
58247                    }
58248                    0x59c31dd3e3078295 => {
58249                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58250                        let mut req = fidl::new_empty!(
58251                            fidl::encoding::EmptyPayload,
58252                            fidl::encoding::DefaultFuchsiaResourceDialect
58253                        );
58254                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58255                        let control_handle =
58256                            StreamSocketControlHandle { inner: this.inner.clone() };
58257                        Ok(StreamSocketRequest::GetBindToInterfaceIndex {
58258                            responder: StreamSocketGetBindToInterfaceIndexResponder {
58259                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58260                                tx_id: header.tx_id,
58261                            },
58262                        })
58263                    }
58264                    0x285d6516c263d839 => {
58265                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58266                        let mut req = fidl::new_empty!(
58267                            BaseSocketSetTimestampRequest,
58268                            fidl::encoding::DefaultFuchsiaResourceDialect
58269                        );
58270                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetTimestampRequest>(&header, _body_bytes, handles, &mut req)?;
58271                        let control_handle =
58272                            StreamSocketControlHandle { inner: this.inner.clone() };
58273                        Ok(StreamSocketRequest::SetTimestamp {
58274                            value: req.value,
58275
58276                            responder: StreamSocketSetTimestampResponder {
58277                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58278                                tx_id: header.tx_id,
58279                            },
58280                        })
58281                    }
58282                    0x49f2fffbbcc2bd27 => {
58283                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58284                        let mut req = fidl::new_empty!(
58285                            fidl::encoding::EmptyPayload,
58286                            fidl::encoding::DefaultFuchsiaResourceDialect
58287                        );
58288                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58289                        let control_handle =
58290                            StreamSocketControlHandle { inner: this.inner.clone() };
58291                        Ok(StreamSocketRequest::GetTimestamp {
58292                            responder: StreamSocketGetTimestampResponder {
58293                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58294                                tx_id: header.tx_id,
58295                            },
58296                        })
58297                    }
58298                    0x6ead6de09f653236 => {
58299                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58300                        let mut req = fidl::new_empty!(
58301                            BaseSocketSetMarkRequest,
58302                            fidl::encoding::DefaultFuchsiaResourceDialect
58303                        );
58304                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
58305                        let control_handle =
58306                            StreamSocketControlHandle { inner: this.inner.clone() };
58307                        Ok(StreamSocketRequest::SetMark {
58308                            domain: req.domain,
58309                            mark: req.mark,
58310
58311                            responder: StreamSocketSetMarkResponder {
58312                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58313                                tx_id: header.tx_id,
58314                            },
58315                        })
58316                    }
58317                    0x57a2752c61d93d47 => {
58318                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58319                        let mut req = fidl::new_empty!(
58320                            BaseSocketGetMarkRequest,
58321                            fidl::encoding::DefaultFuchsiaResourceDialect
58322                        );
58323                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketGetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
58324                        let control_handle =
58325                            StreamSocketControlHandle { inner: this.inner.clone() };
58326                        Ok(StreamSocketRequest::GetMark {
58327                            domain: req.domain,
58328
58329                            responder: StreamSocketGetMarkResponder {
58330                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58331                                tx_id: header.tx_id,
58332                            },
58333                        })
58334                    }
58335                    0x2c2f47fd8f924e52 => {
58336                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58337                        let mut req = fidl::new_empty!(
58338                            fidl::encoding::EmptyPayload,
58339                            fidl::encoding::DefaultFuchsiaResourceDialect
58340                        );
58341                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58342                        let control_handle =
58343                            StreamSocketControlHandle { inner: this.inner.clone() };
58344                        Ok(StreamSocketRequest::GetCookie {
58345                            responder: StreamSocketGetCookieResponder {
58346                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58347                                tx_id: header.tx_id,
58348                            },
58349                        })
58350                    }
58351                    0x4bc6400ae92125d => {
58352                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58353                        let mut req = fidl::new_empty!(
58354                            BaseNetworkSocketBindRequest,
58355                            fidl::encoding::DefaultFuchsiaResourceDialect
58356                        );
58357                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketBindRequest>(&header, _body_bytes, handles, &mut req)?;
58358                        let control_handle =
58359                            StreamSocketControlHandle { inner: this.inner.clone() };
58360                        Ok(StreamSocketRequest::Bind {
58361                            addr: req.addr,
58362
58363                            responder: StreamSocketBindResponder {
58364                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58365                                tx_id: header.tx_id,
58366                            },
58367                        })
58368                    }
58369                    0x5f05f19bfdd38871 => {
58370                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58371                        let mut req = fidl::new_empty!(
58372                            BaseNetworkSocketConnectRequest,
58373                            fidl::encoding::DefaultFuchsiaResourceDialect
58374                        );
58375                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketConnectRequest>(&header, _body_bytes, handles, &mut req)?;
58376                        let control_handle =
58377                            StreamSocketControlHandle { inner: this.inner.clone() };
58378                        Ok(StreamSocketRequest::Connect {
58379                            addr: req.addr,
58380
58381                            responder: StreamSocketConnectResponder {
58382                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58383                                tx_id: header.tx_id,
58384                            },
58385                        })
58386                    }
58387                    0x74e63b91f7b29b2 => {
58388                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58389                        let mut req = fidl::new_empty!(
58390                            fidl::encoding::EmptyPayload,
58391                            fidl::encoding::DefaultFuchsiaResourceDialect
58392                        );
58393                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58394                        let control_handle =
58395                            StreamSocketControlHandle { inner: this.inner.clone() };
58396                        Ok(StreamSocketRequest::Disconnect {
58397                            responder: StreamSocketDisconnectResponder {
58398                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58399                                tx_id: header.tx_id,
58400                            },
58401                        })
58402                    }
58403                    0x475f23f84a1a4f85 => {
58404                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58405                        let mut req = fidl::new_empty!(
58406                            fidl::encoding::EmptyPayload,
58407                            fidl::encoding::DefaultFuchsiaResourceDialect
58408                        );
58409                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58410                        let control_handle =
58411                            StreamSocketControlHandle { inner: this.inner.clone() };
58412                        Ok(StreamSocketRequest::GetSockName {
58413                            responder: StreamSocketGetSockNameResponder {
58414                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58415                                tx_id: header.tx_id,
58416                            },
58417                        })
58418                    }
58419                    0x1ffecf4bd5b6432e => {
58420                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58421                        let mut req = fidl::new_empty!(
58422                            fidl::encoding::EmptyPayload,
58423                            fidl::encoding::DefaultFuchsiaResourceDialect
58424                        );
58425                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58426                        let control_handle =
58427                            StreamSocketControlHandle { inner: this.inner.clone() };
58428                        Ok(StreamSocketRequest::GetPeerName {
58429                            responder: StreamSocketGetPeerNameResponder {
58430                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58431                                tx_id: header.tx_id,
58432                            },
58433                        })
58434                    }
58435                    0x247f38b6db68c336 => {
58436                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58437                        let mut req = fidl::new_empty!(
58438                            BaseNetworkSocketShutdownRequest,
58439                            fidl::encoding::DefaultFuchsiaResourceDialect
58440                        );
58441                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketShutdownRequest>(&header, _body_bytes, handles, &mut req)?;
58442                        let control_handle =
58443                            StreamSocketControlHandle { inner: this.inner.clone() };
58444                        Ok(StreamSocketRequest::Shutdown {
58445                            mode: req.mode,
58446
58447                            responder: StreamSocketShutdownResponder {
58448                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58449                                tx_id: header.tx_id,
58450                            },
58451                        })
58452                    }
58453                    0x995c600475b6d46 => {
58454                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58455                        let mut req = fidl::new_empty!(
58456                            BaseNetworkSocketSetIpTypeOfServiceRequest,
58457                            fidl::encoding::DefaultFuchsiaResourceDialect
58458                        );
58459                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTypeOfServiceRequest>(&header, _body_bytes, handles, &mut req)?;
58460                        let control_handle =
58461                            StreamSocketControlHandle { inner: this.inner.clone() };
58462                        Ok(StreamSocketRequest::SetIpTypeOfService {
58463                            value: req.value,
58464
58465                            responder: StreamSocketSetIpTypeOfServiceResponder {
58466                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58467                                tx_id: header.tx_id,
58468                            },
58469                        })
58470                    }
58471                    0x3814a04259f75fcb => {
58472                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58473                        let mut req = fidl::new_empty!(
58474                            fidl::encoding::EmptyPayload,
58475                            fidl::encoding::DefaultFuchsiaResourceDialect
58476                        );
58477                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58478                        let control_handle =
58479                            StreamSocketControlHandle { inner: this.inner.clone() };
58480                        Ok(StreamSocketRequest::GetIpTypeOfService {
58481                            responder: StreamSocketGetIpTypeOfServiceResponder {
58482                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58483                                tx_id: header.tx_id,
58484                            },
58485                        })
58486                    }
58487                    0x29e2424b433ae1ef => {
58488                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58489                        let mut req = fidl::new_empty!(
58490                            BaseNetworkSocketSetIpTtlRequest,
58491                            fidl::encoding::DefaultFuchsiaResourceDialect
58492                        );
58493                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTtlRequest>(&header, _body_bytes, handles, &mut req)?;
58494                        let control_handle =
58495                            StreamSocketControlHandle { inner: this.inner.clone() };
58496                        Ok(StreamSocketRequest::SetIpTtl {
58497                            value: req.value,
58498
58499                            responder: StreamSocketSetIpTtlResponder {
58500                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58501                                tx_id: header.tx_id,
58502                            },
58503                        })
58504                    }
58505                    0x47e47fa1f24da471 => {
58506                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58507                        let mut req = fidl::new_empty!(
58508                            fidl::encoding::EmptyPayload,
58509                            fidl::encoding::DefaultFuchsiaResourceDialect
58510                        );
58511                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58512                        let control_handle =
58513                            StreamSocketControlHandle { inner: this.inner.clone() };
58514                        Ok(StreamSocketRequest::GetIpTtl {
58515                            responder: StreamSocketGetIpTtlResponder {
58516                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58517                                tx_id: header.tx_id,
58518                            },
58519                        })
58520                    }
58521                    0x392d16bee20c0e16 => {
58522                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58523                        let mut req = fidl::new_empty!(
58524                            BaseNetworkSocketSetIpPacketInfoRequest,
58525                            fidl::encoding::DefaultFuchsiaResourceDialect
58526                        );
58527                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpPacketInfoRequest>(&header, _body_bytes, handles, &mut req)?;
58528                        let control_handle =
58529                            StreamSocketControlHandle { inner: this.inner.clone() };
58530                        Ok(StreamSocketRequest::SetIpPacketInfo {
58531                            value: req.value,
58532
58533                            responder: StreamSocketSetIpPacketInfoResponder {
58534                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58535                                tx_id: header.tx_id,
58536                            },
58537                        })
58538                    }
58539                    0x54b505f242280740 => {
58540                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58541                        let mut req = fidl::new_empty!(
58542                            fidl::encoding::EmptyPayload,
58543                            fidl::encoding::DefaultFuchsiaResourceDialect
58544                        );
58545                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58546                        let control_handle =
58547                            StreamSocketControlHandle { inner: this.inner.clone() };
58548                        Ok(StreamSocketRequest::GetIpPacketInfo {
58549                            responder: StreamSocketGetIpPacketInfoResponder {
58550                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58551                                tx_id: header.tx_id,
58552                            },
58553                        })
58554                    }
58555                    0x6c4f6714995f84ef => {
58556                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58557                        let mut req = fidl::new_empty!(
58558                            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
58559                            fidl::encoding::DefaultFuchsiaResourceDialect
58560                        );
58561                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveTypeOfServiceRequest>(&header, _body_bytes, handles, &mut req)?;
58562                        let control_handle =
58563                            StreamSocketControlHandle { inner: this.inner.clone() };
58564                        Ok(StreamSocketRequest::SetIpReceiveTypeOfService {
58565                            value: req.value,
58566
58567                            responder: StreamSocketSetIpReceiveTypeOfServiceResponder {
58568                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58569                                tx_id: header.tx_id,
58570                            },
58571                        })
58572                    }
58573                    0x4158ba7dc2795960 => {
58574                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58575                        let mut req = fidl::new_empty!(
58576                            fidl::encoding::EmptyPayload,
58577                            fidl::encoding::DefaultFuchsiaResourceDialect
58578                        );
58579                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58580                        let control_handle =
58581                            StreamSocketControlHandle { inner: this.inner.clone() };
58582                        Ok(StreamSocketRequest::GetIpReceiveTypeOfService {
58583                            responder: StreamSocketGetIpReceiveTypeOfServiceResponder {
58584                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58585                                tx_id: header.tx_id,
58586                            },
58587                        })
58588                    }
58589                    0x46f15be0ce0ab82b => {
58590                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58591                        let mut req = fidl::new_empty!(
58592                            BaseNetworkSocketSetIpReceiveTtlRequest,
58593                            fidl::encoding::DefaultFuchsiaResourceDialect
58594                        );
58595                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveTtlRequest>(&header, _body_bytes, handles, &mut req)?;
58596                        let control_handle =
58597                            StreamSocketControlHandle { inner: this.inner.clone() };
58598                        Ok(StreamSocketRequest::SetIpReceiveTtl {
58599                            value: req.value,
58600
58601                            responder: StreamSocketSetIpReceiveTtlResponder {
58602                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58603                                tx_id: header.tx_id,
58604                            },
58605                        })
58606                    }
58607                    0x678ddd5a5dfa2eb5 => {
58608                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58609                        let mut req = fidl::new_empty!(
58610                            fidl::encoding::EmptyPayload,
58611                            fidl::encoding::DefaultFuchsiaResourceDialect
58612                        );
58613                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58614                        let control_handle =
58615                            StreamSocketControlHandle { inner: this.inner.clone() };
58616                        Ok(StreamSocketRequest::GetIpReceiveTtl {
58617                            responder: StreamSocketGetIpReceiveTtlResponder {
58618                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58619                                tx_id: header.tx_id,
58620                            },
58621                        })
58622                    }
58623                    0x752fbfa9b12befe => {
58624                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58625                        let mut req = fidl::new_empty!(
58626                            BaseNetworkSocketSetIpMulticastInterfaceRequest,
58627                            fidl::encoding::DefaultFuchsiaResourceDialect
58628                        );
58629                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastInterfaceRequest>(&header, _body_bytes, handles, &mut req)?;
58630                        let control_handle =
58631                            StreamSocketControlHandle { inner: this.inner.clone() };
58632                        Ok(StreamSocketRequest::SetIpMulticastInterface {
58633                            iface: req.iface,
58634                            address: req.address,
58635
58636                            responder: StreamSocketSetIpMulticastInterfaceResponder {
58637                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58638                                tx_id: header.tx_id,
58639                            },
58640                        })
58641                    }
58642                    0x320bd14c4df046c4 => {
58643                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58644                        let mut req = fidl::new_empty!(
58645                            fidl::encoding::EmptyPayload,
58646                            fidl::encoding::DefaultFuchsiaResourceDialect
58647                        );
58648                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58649                        let control_handle =
58650                            StreamSocketControlHandle { inner: this.inner.clone() };
58651                        Ok(StreamSocketRequest::GetIpMulticastInterface {
58652                            responder: StreamSocketGetIpMulticastInterfaceResponder {
58653                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58654                                tx_id: header.tx_id,
58655                            },
58656                        })
58657                    }
58658                    0x63134d53772916a1 => {
58659                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58660                        let mut req = fidl::new_empty!(
58661                            BaseNetworkSocketSetIpMulticastTtlRequest,
58662                            fidl::encoding::DefaultFuchsiaResourceDialect
58663                        );
58664                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastTtlRequest>(&header, _body_bytes, handles, &mut req)?;
58665                        let control_handle =
58666                            StreamSocketControlHandle { inner: this.inner.clone() };
58667                        Ok(StreamSocketRequest::SetIpMulticastTtl {
58668                            value: req.value,
58669
58670                            responder: StreamSocketSetIpMulticastTtlResponder {
58671                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58672                                tx_id: header.tx_id,
58673                            },
58674                        })
58675                    }
58676                    0x4665cd378f39e1a => {
58677                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58678                        let mut req = fidl::new_empty!(
58679                            fidl::encoding::EmptyPayload,
58680                            fidl::encoding::DefaultFuchsiaResourceDialect
58681                        );
58682                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58683                        let control_handle =
58684                            StreamSocketControlHandle { inner: this.inner.clone() };
58685                        Ok(StreamSocketRequest::GetIpMulticastTtl {
58686                            responder: StreamSocketGetIpMulticastTtlResponder {
58687                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58688                                tx_id: header.tx_id,
58689                            },
58690                        })
58691                    }
58692                    0x20c55c11f00943ea => {
58693                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58694                        let mut req = fidl::new_empty!(
58695                            BaseNetworkSocketSetIpMulticastLoopbackRequest,
58696                            fidl::encoding::DefaultFuchsiaResourceDialect
58697                        );
58698                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastLoopbackRequest>(&header, _body_bytes, handles, &mut req)?;
58699                        let control_handle =
58700                            StreamSocketControlHandle { inner: this.inner.clone() };
58701                        Ok(StreamSocketRequest::SetIpMulticastLoopback {
58702                            value: req.value,
58703
58704                            responder: StreamSocketSetIpMulticastLoopbackResponder {
58705                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58706                                tx_id: header.tx_id,
58707                            },
58708                        })
58709                    }
58710                    0x3b6b26ff558298f2 => {
58711                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58712                        let mut req = fidl::new_empty!(
58713                            fidl::encoding::EmptyPayload,
58714                            fidl::encoding::DefaultFuchsiaResourceDialect
58715                        );
58716                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58717                        let control_handle =
58718                            StreamSocketControlHandle { inner: this.inner.clone() };
58719                        Ok(StreamSocketRequest::GetIpMulticastLoopback {
58720                            responder: StreamSocketGetIpMulticastLoopbackResponder {
58721                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58722                                tx_id: header.tx_id,
58723                            },
58724                        })
58725                    }
58726                    0x76bc7df115a3b4d0 => {
58727                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58728                        let mut req = fidl::new_empty!(
58729                            BaseNetworkSocketAddIpMembershipRequest,
58730                            fidl::encoding::DefaultFuchsiaResourceDialect
58731                        );
58732                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketAddIpMembershipRequest>(&header, _body_bytes, handles, &mut req)?;
58733                        let control_handle =
58734                            StreamSocketControlHandle { inner: this.inner.clone() };
58735                        Ok(StreamSocketRequest::AddIpMembership {
58736                            membership: req.membership,
58737
58738                            responder: StreamSocketAddIpMembershipResponder {
58739                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58740                                tx_id: header.tx_id,
58741                            },
58742                        })
58743                    }
58744                    0x2888f3099188d03 => {
58745                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58746                        let mut req = fidl::new_empty!(
58747                            BaseNetworkSocketDropIpMembershipRequest,
58748                            fidl::encoding::DefaultFuchsiaResourceDialect
58749                        );
58750                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketDropIpMembershipRequest>(&header, _body_bytes, handles, &mut req)?;
58751                        let control_handle =
58752                            StreamSocketControlHandle { inner: this.inner.clone() };
58753                        Ok(StreamSocketRequest::DropIpMembership {
58754                            membership: req.membership,
58755
58756                            responder: StreamSocketDropIpMembershipResponder {
58757                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58758                                tx_id: header.tx_id,
58759                            },
58760                        })
58761                    }
58762                    0x1ae532b0c066e3a0 => {
58763                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58764                        let mut req = fidl::new_empty!(
58765                            BaseNetworkSocketSetIpTransparentRequest,
58766                            fidl::encoding::DefaultFuchsiaResourceDialect
58767                        );
58768                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTransparentRequest>(&header, _body_bytes, handles, &mut req)?;
58769                        let control_handle =
58770                            StreamSocketControlHandle { inner: this.inner.clone() };
58771                        Ok(StreamSocketRequest::SetIpTransparent {
58772                            value: req.value,
58773
58774                            responder: StreamSocketSetIpTransparentResponder {
58775                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58776                                tx_id: header.tx_id,
58777                            },
58778                        })
58779                    }
58780                    0x51d43695962ebfb5 => {
58781                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58782                        let mut req = fidl::new_empty!(
58783                            fidl::encoding::EmptyPayload,
58784                            fidl::encoding::DefaultFuchsiaResourceDialect
58785                        );
58786                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58787                        let control_handle =
58788                            StreamSocketControlHandle { inner: this.inner.clone() };
58789                        Ok(StreamSocketRequest::GetIpTransparent {
58790                            responder: StreamSocketGetIpTransparentResponder {
58791                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58792                                tx_id: header.tx_id,
58793                            },
58794                        })
58795                    }
58796                    0x4722b4ce52f7840 => {
58797                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58798                        let mut req = fidl::new_empty!(
58799                            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
58800                            fidl::encoding::DefaultFuchsiaResourceDialect
58801                        );
58802                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest>(&header, _body_bytes, handles, &mut req)?;
58803                        let control_handle =
58804                            StreamSocketControlHandle { inner: this.inner.clone() };
58805                        Ok(StreamSocketRequest::SetIpReceiveOriginalDestinationAddress {
58806                            value: req.value,
58807
58808                            responder:
58809                                StreamSocketSetIpReceiveOriginalDestinationAddressResponder {
58810                                    control_handle: std::mem::ManuallyDrop::new(control_handle),
58811                                    tx_id: header.tx_id,
58812                                },
58813                        })
58814                    }
58815                    0x2a0e7dc5d6bfdfe9 => {
58816                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58817                        let mut req = fidl::new_empty!(
58818                            fidl::encoding::EmptyPayload,
58819                            fidl::encoding::DefaultFuchsiaResourceDialect
58820                        );
58821                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58822                        let control_handle =
58823                            StreamSocketControlHandle { inner: this.inner.clone() };
58824                        Ok(StreamSocketRequest::GetIpReceiveOriginalDestinationAddress {
58825                            responder:
58826                                StreamSocketGetIpReceiveOriginalDestinationAddressResponder {
58827                                    control_handle: std::mem::ManuallyDrop::new(control_handle),
58828                                    tx_id: header.tx_id,
58829                                },
58830                        })
58831                    }
58832                    0x7c94727acb4ea4b3 => {
58833                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58834                        let mut req = fidl::new_empty!(
58835                            BaseNetworkSocketAddIpv6MembershipRequest,
58836                            fidl::encoding::DefaultFuchsiaResourceDialect
58837                        );
58838                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketAddIpv6MembershipRequest>(&header, _body_bytes, handles, &mut req)?;
58839                        let control_handle =
58840                            StreamSocketControlHandle { inner: this.inner.clone() };
58841                        Ok(StreamSocketRequest::AddIpv6Membership {
58842                            membership: req.membership,
58843
58844                            responder: StreamSocketAddIpv6MembershipResponder {
58845                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58846                                tx_id: header.tx_id,
58847                            },
58848                        })
58849                    }
58850                    0x42104c70ccaba304 => {
58851                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58852                        let mut req = fidl::new_empty!(
58853                            BaseNetworkSocketDropIpv6MembershipRequest,
58854                            fidl::encoding::DefaultFuchsiaResourceDialect
58855                        );
58856                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketDropIpv6MembershipRequest>(&header, _body_bytes, handles, &mut req)?;
58857                        let control_handle =
58858                            StreamSocketControlHandle { inner: this.inner.clone() };
58859                        Ok(StreamSocketRequest::DropIpv6Membership {
58860                            membership: req.membership,
58861
58862                            responder: StreamSocketDropIpv6MembershipResponder {
58863                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58864                                tx_id: header.tx_id,
58865                            },
58866                        })
58867                    }
58868                    0x135f76db3774ab3b => {
58869                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58870                        let mut req = fidl::new_empty!(
58871                            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
58872                            fidl::encoding::DefaultFuchsiaResourceDialect
58873                        );
58874                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastInterfaceRequest>(&header, _body_bytes, handles, &mut req)?;
58875                        let control_handle =
58876                            StreamSocketControlHandle { inner: this.inner.clone() };
58877                        Ok(StreamSocketRequest::SetIpv6MulticastInterface {
58878                            value: req.value,
58879
58880                            responder: StreamSocketSetIpv6MulticastInterfaceResponder {
58881                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58882                                tx_id: header.tx_id,
58883                            },
58884                        })
58885                    }
58886                    0x1f26fcdd348f1882 => {
58887                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58888                        let mut req = fidl::new_empty!(
58889                            fidl::encoding::EmptyPayload,
58890                            fidl::encoding::DefaultFuchsiaResourceDialect
58891                        );
58892                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58893                        let control_handle =
58894                            StreamSocketControlHandle { inner: this.inner.clone() };
58895                        Ok(StreamSocketRequest::GetIpv6MulticastInterface {
58896                            responder: StreamSocketGetIpv6MulticastInterfaceResponder {
58897                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58898                                tx_id: header.tx_id,
58899                            },
58900                        })
58901                    }
58902                    0x157d51e98f462859 => {
58903                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58904                        let mut req = fidl::new_empty!(
58905                            BaseNetworkSocketSetIpv6UnicastHopsRequest,
58906                            fidl::encoding::DefaultFuchsiaResourceDialect
58907                        );
58908                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6UnicastHopsRequest>(&header, _body_bytes, handles, &mut req)?;
58909                        let control_handle =
58910                            StreamSocketControlHandle { inner: this.inner.clone() };
58911                        Ok(StreamSocketRequest::SetIpv6UnicastHops {
58912                            value: req.value,
58913
58914                            responder: StreamSocketSetIpv6UnicastHopsResponder {
58915                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58916                                tx_id: header.tx_id,
58917                            },
58918                        })
58919                    }
58920                    0x21f4641cad8bd8d2 => {
58921                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58922                        let mut req = fidl::new_empty!(
58923                            fidl::encoding::EmptyPayload,
58924                            fidl::encoding::DefaultFuchsiaResourceDialect
58925                        );
58926                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58927                        let control_handle =
58928                            StreamSocketControlHandle { inner: this.inner.clone() };
58929                        Ok(StreamSocketRequest::GetIpv6UnicastHops {
58930                            responder: StreamSocketGetIpv6UnicastHopsResponder {
58931                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58932                                tx_id: header.tx_id,
58933                            },
58934                        })
58935                    }
58936                    0x5c24808ed2e84a1e => {
58937                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58938                        let mut req = fidl::new_empty!(
58939                            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
58940                            fidl::encoding::DefaultFuchsiaResourceDialect
58941                        );
58942                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceiveHopLimitRequest>(&header, _body_bytes, handles, &mut req)?;
58943                        let control_handle =
58944                            StreamSocketControlHandle { inner: this.inner.clone() };
58945                        Ok(StreamSocketRequest::SetIpv6ReceiveHopLimit {
58946                            value: req.value,
58947
58948                            responder: StreamSocketSetIpv6ReceiveHopLimitResponder {
58949                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58950                                tx_id: header.tx_id,
58951                            },
58952                        })
58953                    }
58954                    0x341e06689885b4c0 => {
58955                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58956                        let mut req = fidl::new_empty!(
58957                            fidl::encoding::EmptyPayload,
58958                            fidl::encoding::DefaultFuchsiaResourceDialect
58959                        );
58960                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58961                        let control_handle =
58962                            StreamSocketControlHandle { inner: this.inner.clone() };
58963                        Ok(StreamSocketRequest::GetIpv6ReceiveHopLimit {
58964                            responder: StreamSocketGetIpv6ReceiveHopLimitResponder {
58965                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58966                                tx_id: header.tx_id,
58967                            },
58968                        })
58969                    }
58970                    0x25b9cd4d181f82c1 => {
58971                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58972                        let mut req = fidl::new_empty!(
58973                            BaseNetworkSocketSetIpv6MulticastHopsRequest,
58974                            fidl::encoding::DefaultFuchsiaResourceDialect
58975                        );
58976                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastHopsRequest>(&header, _body_bytes, handles, &mut req)?;
58977                        let control_handle =
58978                            StreamSocketControlHandle { inner: this.inner.clone() };
58979                        Ok(StreamSocketRequest::SetIpv6MulticastHops {
58980                            value: req.value,
58981
58982                            responder: StreamSocketSetIpv6MulticastHopsResponder {
58983                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58984                                tx_id: header.tx_id,
58985                            },
58986                        })
58987                    }
58988                    0x52916948a365012a => {
58989                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58990                        let mut req = fidl::new_empty!(
58991                            fidl::encoding::EmptyPayload,
58992                            fidl::encoding::DefaultFuchsiaResourceDialect
58993                        );
58994                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58995                        let control_handle =
58996                            StreamSocketControlHandle { inner: this.inner.clone() };
58997                        Ok(StreamSocketRequest::GetIpv6MulticastHops {
58998                            responder: StreamSocketGetIpv6MulticastHopsResponder {
58999                                control_handle: std::mem::ManuallyDrop::new(control_handle),
59000                                tx_id: header.tx_id,
59001                            },
59002                        })
59003                    }
59004                    0x55701c409ff41b40 => {
59005                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
59006                        let mut req = fidl::new_empty!(
59007                            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
59008                            fidl::encoding::DefaultFuchsiaResourceDialect
59009                        );
59010                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastLoopbackRequest>(&header, _body_bytes, handles, &mut req)?;
59011                        let control_handle =
59012                            StreamSocketControlHandle { inner: this.inner.clone() };
59013                        Ok(StreamSocketRequest::SetIpv6MulticastLoopback {
59014                            value: req.value,
59015
59016                            responder: StreamSocketSetIpv6MulticastLoopbackResponder {
59017                                control_handle: std::mem::ManuallyDrop::new(control_handle),
59018                                tx_id: header.tx_id,
59019                            },
59020                        })
59021                    }
59022                    0x4415b701fde319c3 => {
59023                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
59024                        let mut req = fidl::new_empty!(
59025                            fidl::encoding::EmptyPayload,
59026                            fidl::encoding::DefaultFuchsiaResourceDialect
59027                        );
59028                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
59029                        let control_handle =
59030                            StreamSocketControlHandle { inner: this.inner.clone() };
59031                        Ok(StreamSocketRequest::GetIpv6MulticastLoopback {
59032                            responder: StreamSocketGetIpv6MulticastLoopbackResponder {
59033                                control_handle: std::mem::ManuallyDrop::new(control_handle),
59034                                tx_id: header.tx_id,
59035                            },
59036                        })
59037                    }
59038                    0x4873f1364758cbba => {
59039                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
59040                        let mut req = fidl::new_empty!(
59041                            BaseNetworkSocketSetIpv6OnlyRequest,
59042                            fidl::encoding::DefaultFuchsiaResourceDialect
59043                        );
59044                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6OnlyRequest>(&header, _body_bytes, handles, &mut req)?;
59045                        let control_handle =
59046                            StreamSocketControlHandle { inner: this.inner.clone() };
59047                        Ok(StreamSocketRequest::SetIpv6Only {
59048                            value: req.value,
59049
59050                            responder: StreamSocketSetIpv6OnlyResponder {
59051                                control_handle: std::mem::ManuallyDrop::new(control_handle),
59052                                tx_id: header.tx_id,
59053                            },
59054                        })
59055                    }
59056                    0x4aa3340a1a26b89c => {
59057                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
59058                        let mut req = fidl::new_empty!(
59059                            fidl::encoding::EmptyPayload,
59060                            fidl::encoding::DefaultFuchsiaResourceDialect
59061                        );
59062                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
59063                        let control_handle =
59064                            StreamSocketControlHandle { inner: this.inner.clone() };
59065                        Ok(StreamSocketRequest::GetIpv6Only {
59066                            responder: StreamSocketGetIpv6OnlyResponder {
59067                                control_handle: std::mem::ManuallyDrop::new(control_handle),
59068                                tx_id: header.tx_id,
59069                            },
59070                        })
59071                    }
59072                    0x58f07c8788d099a0 => {
59073                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
59074                        let mut req = fidl::new_empty!(
59075                            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
59076                            fidl::encoding::DefaultFuchsiaResourceDialect
59077                        );
59078                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest>(&header, _body_bytes, handles, &mut req)?;
59079                        let control_handle =
59080                            StreamSocketControlHandle { inner: this.inner.clone() };
59081                        Ok(StreamSocketRequest::SetIpv6ReceiveTrafficClass {
59082                            value: req.value,
59083
59084                            responder: StreamSocketSetIpv6ReceiveTrafficClassResponder {
59085                                control_handle: std::mem::ManuallyDrop::new(control_handle),
59086                                tx_id: header.tx_id,
59087                            },
59088                        })
59089                    }
59090                    0x2e334df1da553ffa => {
59091                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
59092                        let mut req = fidl::new_empty!(
59093                            fidl::encoding::EmptyPayload,
59094                            fidl::encoding::DefaultFuchsiaResourceDialect
59095                        );
59096                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
59097                        let control_handle =
59098                            StreamSocketControlHandle { inner: this.inner.clone() };
59099                        Ok(StreamSocketRequest::GetIpv6ReceiveTrafficClass {
59100                            responder: StreamSocketGetIpv6ReceiveTrafficClassResponder {
59101                                control_handle: std::mem::ManuallyDrop::new(control_handle),
59102                                tx_id: header.tx_id,
59103                            },
59104                        })
59105                    }
59106                    0x6af077800c5a0b4f => {
59107                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
59108                        let mut req = fidl::new_empty!(
59109                            BaseNetworkSocketSetIpv6TrafficClassRequest,
59110                            fidl::encoding::DefaultFuchsiaResourceDialect
59111                        );
59112                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6TrafficClassRequest>(&header, _body_bytes, handles, &mut req)?;
59113                        let control_handle =
59114                            StreamSocketControlHandle { inner: this.inner.clone() };
59115                        Ok(StreamSocketRequest::SetIpv6TrafficClass {
59116                            value: req.value,
59117
59118                            responder: StreamSocketSetIpv6TrafficClassResponder {
59119                                control_handle: std::mem::ManuallyDrop::new(control_handle),
59120                                tx_id: header.tx_id,
59121                            },
59122                        })
59123                    }
59124                    0x6baf6eed8fc2f04 => {
59125                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
59126                        let mut req = fidl::new_empty!(
59127                            fidl::encoding::EmptyPayload,
59128                            fidl::encoding::DefaultFuchsiaResourceDialect
59129                        );
59130                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
59131                        let control_handle =
59132                            StreamSocketControlHandle { inner: this.inner.clone() };
59133                        Ok(StreamSocketRequest::GetIpv6TrafficClass {
59134                            responder: StreamSocketGetIpv6TrafficClassResponder {
59135                                control_handle: std::mem::ManuallyDrop::new(control_handle),
59136                                tx_id: header.tx_id,
59137                            },
59138                        })
59139                    }
59140                    0x19259775b1a92768 => {
59141                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
59142                        let mut req = fidl::new_empty!(
59143                            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
59144                            fidl::encoding::DefaultFuchsiaResourceDialect
59145                        );
59146                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceivePacketInfoRequest>(&header, _body_bytes, handles, &mut req)?;
59147                        let control_handle =
59148                            StreamSocketControlHandle { inner: this.inner.clone() };
59149                        Ok(StreamSocketRequest::SetIpv6ReceivePacketInfo {
59150                            value: req.value,
59151
59152                            responder: StreamSocketSetIpv6ReceivePacketInfoResponder {
59153                                control_handle: std::mem::ManuallyDrop::new(control_handle),
59154                                tx_id: header.tx_id,
59155                            },
59156                        })
59157                    }
59158                    0x7acd4a2775baec75 => {
59159                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
59160                        let mut req = fidl::new_empty!(
59161                            fidl::encoding::EmptyPayload,
59162                            fidl::encoding::DefaultFuchsiaResourceDialect
59163                        );
59164                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
59165                        let control_handle =
59166                            StreamSocketControlHandle { inner: this.inner.clone() };
59167                        Ok(StreamSocketRequest::GetIpv6ReceivePacketInfo {
59168                            responder: StreamSocketGetIpv6ReceivePacketInfoResponder {
59169                                control_handle: std::mem::ManuallyDrop::new(control_handle),
59170                                tx_id: header.tx_id,
59171                            },
59172                        })
59173                    }
59174                    0x38bf28f0dafdbac0 => {
59175                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
59176                        let mut req = fidl::new_empty!(
59177                            fidl::encoding::EmptyPayload,
59178                            fidl::encoding::DefaultFuchsiaResourceDialect
59179                        );
59180                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
59181                        let control_handle =
59182                            StreamSocketControlHandle { inner: this.inner.clone() };
59183                        Ok(StreamSocketRequest::GetOriginalDestination {
59184                            responder: StreamSocketGetOriginalDestinationResponder {
59185                                control_handle: std::mem::ManuallyDrop::new(control_handle),
59186                                tx_id: header.tx_id,
59187                            },
59188                        })
59189                    }
59190                    0x29e22969a7dadc32 => {
59191                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
59192                        let mut req = fidl::new_empty!(
59193                            fidl::encoding::EmptyPayload,
59194                            fidl::encoding::DefaultFuchsiaResourceDialect
59195                        );
59196                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
59197                        let control_handle =
59198                            StreamSocketControlHandle { inner: this.inner.clone() };
59199                        Ok(StreamSocketRequest::Describe {
59200                            responder: StreamSocketDescribeResponder {
59201                                control_handle: std::mem::ManuallyDrop::new(control_handle),
59202                                tx_id: header.tx_id,
59203                            },
59204                        })
59205                    }
59206                    0x3d0a65ced3d10108 => {
59207                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
59208                        let mut req = fidl::new_empty!(
59209                            StreamSocketListenRequest,
59210                            fidl::encoding::DefaultFuchsiaResourceDialect
59211                        );
59212                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketListenRequest>(&header, _body_bytes, handles, &mut req)?;
59213                        let control_handle =
59214                            StreamSocketControlHandle { inner: this.inner.clone() };
59215                        Ok(StreamSocketRequest::Listen {
59216                            backlog: req.backlog,
59217
59218                            responder: StreamSocketListenResponder {
59219                                control_handle: std::mem::ManuallyDrop::new(control_handle),
59220                                tx_id: header.tx_id,
59221                            },
59222                        })
59223                    }
59224                    0x5ab7ad620424c163 => {
59225                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
59226                        let mut req = fidl::new_empty!(
59227                            StreamSocketAcceptRequest,
59228                            fidl::encoding::DefaultFuchsiaResourceDialect
59229                        );
59230                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketAcceptRequest>(&header, _body_bytes, handles, &mut req)?;
59231                        let control_handle =
59232                            StreamSocketControlHandle { inner: this.inner.clone() };
59233                        Ok(StreamSocketRequest::Accept {
59234                            want_addr: req.want_addr,
59235
59236                            responder: StreamSocketAcceptResponder {
59237                                control_handle: std::mem::ManuallyDrop::new(control_handle),
59238                                tx_id: header.tx_id,
59239                            },
59240                        })
59241                    }
59242                    0x87cfa55d19f878f => {
59243                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
59244                        let mut req = fidl::new_empty!(
59245                            fidl::encoding::EmptyPayload,
59246                            fidl::encoding::DefaultFuchsiaResourceDialect
59247                        );
59248                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
59249                        let control_handle =
59250                            StreamSocketControlHandle { inner: this.inner.clone() };
59251                        Ok(StreamSocketRequest::GetInfo {
59252                            responder: StreamSocketGetInfoResponder {
59253                                control_handle: std::mem::ManuallyDrop::new(control_handle),
59254                                tx_id: header.tx_id,
59255                            },
59256                        })
59257                    }
59258                    0x5a59b778f7333ada => {
59259                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
59260                        let mut req = fidl::new_empty!(
59261                            StreamSocketSetTcpNoDelayRequest,
59262                            fidl::encoding::DefaultFuchsiaResourceDialect
59263                        );
59264                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpNoDelayRequest>(&header, _body_bytes, handles, &mut req)?;
59265                        let control_handle =
59266                            StreamSocketControlHandle { inner: this.inner.clone() };
59267                        Ok(StreamSocketRequest::SetTcpNoDelay {
59268                            value: req.value,
59269
59270                            responder: StreamSocketSetTcpNoDelayResponder {
59271                                control_handle: std::mem::ManuallyDrop::new(control_handle),
59272                                tx_id: header.tx_id,
59273                            },
59274                        })
59275                    }
59276                    0xac219a3218b0799 => {
59277                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
59278                        let mut req = fidl::new_empty!(
59279                            fidl::encoding::EmptyPayload,
59280                            fidl::encoding::DefaultFuchsiaResourceDialect
59281                        );
59282                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
59283                        let control_handle =
59284                            StreamSocketControlHandle { inner: this.inner.clone() };
59285                        Ok(StreamSocketRequest::GetTcpNoDelay {
59286                            responder: StreamSocketGetTcpNoDelayResponder {
59287                                control_handle: std::mem::ManuallyDrop::new(control_handle),
59288                                tx_id: header.tx_id,
59289                            },
59290                        })
59291                    }
59292                    0xb3d30c498266d18 => {
59293                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
59294                        let mut req = fidl::new_empty!(
59295                            StreamSocketSetTcpMaxSegmentRequest,
59296                            fidl::encoding::DefaultFuchsiaResourceDialect
59297                        );
59298                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpMaxSegmentRequest>(&header, _body_bytes, handles, &mut req)?;
59299                        let control_handle =
59300                            StreamSocketControlHandle { inner: this.inner.clone() };
59301                        Ok(StreamSocketRequest::SetTcpMaxSegment {
59302                            value_bytes: req.value_bytes,
59303
59304                            responder: StreamSocketSetTcpMaxSegmentResponder {
59305                                control_handle: std::mem::ManuallyDrop::new(control_handle),
59306                                tx_id: header.tx_id,
59307                            },
59308                        })
59309                    }
59310                    0x637404d1b4b9982c => {
59311                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
59312                        let mut req = fidl::new_empty!(
59313                            fidl::encoding::EmptyPayload,
59314                            fidl::encoding::DefaultFuchsiaResourceDialect
59315                        );
59316                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
59317                        let control_handle =
59318                            StreamSocketControlHandle { inner: this.inner.clone() };
59319                        Ok(StreamSocketRequest::GetTcpMaxSegment {
59320                            responder: StreamSocketGetTcpMaxSegmentResponder {
59321                                control_handle: std::mem::ManuallyDrop::new(control_handle),
59322                                tx_id: header.tx_id,
59323                            },
59324                        })
59325                    }
59326                    0x62e26891541143a0 => {
59327                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
59328                        let mut req = fidl::new_empty!(
59329                            StreamSocketSetTcpCorkRequest,
59330                            fidl::encoding::DefaultFuchsiaResourceDialect
59331                        );
59332                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpCorkRequest>(&header, _body_bytes, handles, &mut req)?;
59333                        let control_handle =
59334                            StreamSocketControlHandle { inner: this.inner.clone() };
59335                        Ok(StreamSocketRequest::SetTcpCork {
59336                            value: req.value,
59337
59338                            responder: StreamSocketSetTcpCorkResponder {
59339                                control_handle: std::mem::ManuallyDrop::new(control_handle),
59340                                tx_id: header.tx_id,
59341                            },
59342                        })
59343                    }
59344                    0x435bb232e0e74f32 => {
59345                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
59346                        let mut req = fidl::new_empty!(
59347                            fidl::encoding::EmptyPayload,
59348                            fidl::encoding::DefaultFuchsiaResourceDialect
59349                        );
59350                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
59351                        let control_handle =
59352                            StreamSocketControlHandle { inner: this.inner.clone() };
59353                        Ok(StreamSocketRequest::GetTcpCork {
59354                            responder: StreamSocketGetTcpCorkResponder {
59355                                control_handle: std::mem::ManuallyDrop::new(control_handle),
59356                                tx_id: header.tx_id,
59357                            },
59358                        })
59359                    }
59360                    0x196d053d8363c42 => {
59361                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
59362                        let mut req = fidl::new_empty!(
59363                            StreamSocketSetTcpKeepAliveIdleRequest,
59364                            fidl::encoding::DefaultFuchsiaResourceDialect
59365                        );
59366                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpKeepAliveIdleRequest>(&header, _body_bytes, handles, &mut req)?;
59367                        let control_handle =
59368                            StreamSocketControlHandle { inner: this.inner.clone() };
59369                        Ok(StreamSocketRequest::SetTcpKeepAliveIdle {
59370                            value_secs: req.value_secs,
59371
59372                            responder: StreamSocketSetTcpKeepAliveIdleResponder {
59373                                control_handle: std::mem::ManuallyDrop::new(control_handle),
59374                                tx_id: header.tx_id,
59375                            },
59376                        })
59377                    }
59378                    0x35ec58564879dac => {
59379                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
59380                        let mut req = fidl::new_empty!(
59381                            fidl::encoding::EmptyPayload,
59382                            fidl::encoding::DefaultFuchsiaResourceDialect
59383                        );
59384                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
59385                        let control_handle =
59386                            StreamSocketControlHandle { inner: this.inner.clone() };
59387                        Ok(StreamSocketRequest::GetTcpKeepAliveIdle {
59388                            responder: StreamSocketGetTcpKeepAliveIdleResponder {
59389                                control_handle: std::mem::ManuallyDrop::new(control_handle),
59390                                tx_id: header.tx_id,
59391                            },
59392                        })
59393                    }
59394                    0x485ffbc2da1243f2 => {
59395                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
59396                        let mut req = fidl::new_empty!(
59397                            StreamSocketSetTcpKeepAliveIntervalRequest,
59398                            fidl::encoding::DefaultFuchsiaResourceDialect
59399                        );
59400                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpKeepAliveIntervalRequest>(&header, _body_bytes, handles, &mut req)?;
59401                        let control_handle =
59402                            StreamSocketControlHandle { inner: this.inner.clone() };
59403                        Ok(StreamSocketRequest::SetTcpKeepAliveInterval {
59404                            value_secs: req.value_secs,
59405
59406                            responder: StreamSocketSetTcpKeepAliveIntervalResponder {
59407                                control_handle: std::mem::ManuallyDrop::new(control_handle),
59408                                tx_id: header.tx_id,
59409                            },
59410                        })
59411                    }
59412                    0x264eaf46306b284 => {
59413                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
59414                        let mut req = fidl::new_empty!(
59415                            fidl::encoding::EmptyPayload,
59416                            fidl::encoding::DefaultFuchsiaResourceDialect
59417                        );
59418                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
59419                        let control_handle =
59420                            StreamSocketControlHandle { inner: this.inner.clone() };
59421                        Ok(StreamSocketRequest::GetTcpKeepAliveInterval {
59422                            responder: StreamSocketGetTcpKeepAliveIntervalResponder {
59423                                control_handle: std::mem::ManuallyDrop::new(control_handle),
59424                                tx_id: header.tx_id,
59425                            },
59426                        })
59427                    }
59428                    0x2ab2e8c111708421 => {
59429                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
59430                        let mut req = fidl::new_empty!(
59431                            StreamSocketSetTcpKeepAliveCountRequest,
59432                            fidl::encoding::DefaultFuchsiaResourceDialect
59433                        );
59434                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpKeepAliveCountRequest>(&header, _body_bytes, handles, &mut req)?;
59435                        let control_handle =
59436                            StreamSocketControlHandle { inner: this.inner.clone() };
59437                        Ok(StreamSocketRequest::SetTcpKeepAliveCount {
59438                            value: req.value,
59439
59440                            responder: StreamSocketSetTcpKeepAliveCountResponder {
59441                                control_handle: std::mem::ManuallyDrop::new(control_handle),
59442                                tx_id: header.tx_id,
59443                            },
59444                        })
59445                    }
59446                    0x2f176ae271fe7a09 => {
59447                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
59448                        let mut req = fidl::new_empty!(
59449                            fidl::encoding::EmptyPayload,
59450                            fidl::encoding::DefaultFuchsiaResourceDialect
59451                        );
59452                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
59453                        let control_handle =
59454                            StreamSocketControlHandle { inner: this.inner.clone() };
59455                        Ok(StreamSocketRequest::GetTcpKeepAliveCount {
59456                            responder: StreamSocketGetTcpKeepAliveCountResponder {
59457                                control_handle: std::mem::ManuallyDrop::new(control_handle),
59458                                tx_id: header.tx_id,
59459                            },
59460                        })
59461                    }
59462                    0x4dcd6ab5573c1eb3 => {
59463                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
59464                        let mut req = fidl::new_empty!(
59465                            StreamSocketSetTcpSynCountRequest,
59466                            fidl::encoding::DefaultFuchsiaResourceDialect
59467                        );
59468                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpSynCountRequest>(&header, _body_bytes, handles, &mut req)?;
59469                        let control_handle =
59470                            StreamSocketControlHandle { inner: this.inner.clone() };
59471                        Ok(StreamSocketRequest::SetTcpSynCount {
59472                            value: req.value,
59473
59474                            responder: StreamSocketSetTcpSynCountResponder {
59475                                control_handle: std::mem::ManuallyDrop::new(control_handle),
59476                                tx_id: header.tx_id,
59477                            },
59478                        })
59479                    }
59480                    0x7d457cba8f5f3ee6 => {
59481                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
59482                        let mut req = fidl::new_empty!(
59483                            fidl::encoding::EmptyPayload,
59484                            fidl::encoding::DefaultFuchsiaResourceDialect
59485                        );
59486                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
59487                        let control_handle =
59488                            StreamSocketControlHandle { inner: this.inner.clone() };
59489                        Ok(StreamSocketRequest::GetTcpSynCount {
59490                            responder: StreamSocketGetTcpSynCountResponder {
59491                                control_handle: std::mem::ManuallyDrop::new(control_handle),
59492                                tx_id: header.tx_id,
59493                            },
59494                        })
59495                    }
59496                    0xd5cc1e8654d36e4 => {
59497                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
59498                        let mut req = fidl::new_empty!(
59499                            StreamSocketSetTcpLingerRequest,
59500                            fidl::encoding::DefaultFuchsiaResourceDialect
59501                        );
59502                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpLingerRequest>(&header, _body_bytes, handles, &mut req)?;
59503                        let control_handle =
59504                            StreamSocketControlHandle { inner: this.inner.clone() };
59505                        Ok(StreamSocketRequest::SetTcpLinger {
59506                            value_secs: req.value_secs,
59507
59508                            responder: StreamSocketSetTcpLingerResponder {
59509                                control_handle: std::mem::ManuallyDrop::new(control_handle),
59510                                tx_id: header.tx_id,
59511                            },
59512                        })
59513                    }
59514                    0xad870d311cf30eb => {
59515                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
59516                        let mut req = fidl::new_empty!(
59517                            fidl::encoding::EmptyPayload,
59518                            fidl::encoding::DefaultFuchsiaResourceDialect
59519                        );
59520                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
59521                        let control_handle =
59522                            StreamSocketControlHandle { inner: this.inner.clone() };
59523                        Ok(StreamSocketRequest::GetTcpLinger {
59524                            responder: StreamSocketGetTcpLingerResponder {
59525                                control_handle: std::mem::ManuallyDrop::new(control_handle),
59526                                tx_id: header.tx_id,
59527                            },
59528                        })
59529                    }
59530                    0x15092f181e57c404 => {
59531                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
59532                        let mut req = fidl::new_empty!(
59533                            StreamSocketSetTcpDeferAcceptRequest,
59534                            fidl::encoding::DefaultFuchsiaResourceDialect
59535                        );
59536                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpDeferAcceptRequest>(&header, _body_bytes, handles, &mut req)?;
59537                        let control_handle =
59538                            StreamSocketControlHandle { inner: this.inner.clone() };
59539                        Ok(StreamSocketRequest::SetTcpDeferAccept {
59540                            value_secs: req.value_secs,
59541
59542                            responder: StreamSocketSetTcpDeferAcceptResponder {
59543                                control_handle: std::mem::ManuallyDrop::new(control_handle),
59544                                tx_id: header.tx_id,
59545                            },
59546                        })
59547                    }
59548                    0x64589790842cb7c6 => {
59549                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
59550                        let mut req = fidl::new_empty!(
59551                            fidl::encoding::EmptyPayload,
59552                            fidl::encoding::DefaultFuchsiaResourceDialect
59553                        );
59554                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
59555                        let control_handle =
59556                            StreamSocketControlHandle { inner: this.inner.clone() };
59557                        Ok(StreamSocketRequest::GetTcpDeferAccept {
59558                            responder: StreamSocketGetTcpDeferAcceptResponder {
59559                                control_handle: std::mem::ManuallyDrop::new(control_handle),
59560                                tx_id: header.tx_id,
59561                            },
59562                        })
59563                    }
59564                    0x4a26ce07d847f1c6 => {
59565                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
59566                        let mut req = fidl::new_empty!(
59567                            StreamSocketSetTcpWindowClampRequest,
59568                            fidl::encoding::DefaultFuchsiaResourceDialect
59569                        );
59570                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpWindowClampRequest>(&header, _body_bytes, handles, &mut req)?;
59571                        let control_handle =
59572                            StreamSocketControlHandle { inner: this.inner.clone() };
59573                        Ok(StreamSocketRequest::SetTcpWindowClamp {
59574                            value: req.value,
59575
59576                            responder: StreamSocketSetTcpWindowClampResponder {
59577                                control_handle: std::mem::ManuallyDrop::new(control_handle),
59578                                tx_id: header.tx_id,
59579                            },
59580                        })
59581                    }
59582                    0x2df6b636bf0a6a4e => {
59583                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
59584                        let mut req = fidl::new_empty!(
59585                            fidl::encoding::EmptyPayload,
59586                            fidl::encoding::DefaultFuchsiaResourceDialect
59587                        );
59588                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
59589                        let control_handle =
59590                            StreamSocketControlHandle { inner: this.inner.clone() };
59591                        Ok(StreamSocketRequest::GetTcpWindowClamp {
59592                            responder: StreamSocketGetTcpWindowClampResponder {
59593                                control_handle: std::mem::ManuallyDrop::new(control_handle),
59594                                tx_id: header.tx_id,
59595                            },
59596                        })
59597                    }
59598                    0x1ffb123d9f03ead2 => {
59599                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
59600                        let mut req = fidl::new_empty!(
59601                            fidl::encoding::EmptyPayload,
59602                            fidl::encoding::DefaultFuchsiaResourceDialect
59603                        );
59604                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
59605                        let control_handle =
59606                            StreamSocketControlHandle { inner: this.inner.clone() };
59607                        Ok(StreamSocketRequest::GetTcpInfo {
59608                            responder: StreamSocketGetTcpInfoResponder {
59609                                control_handle: std::mem::ManuallyDrop::new(control_handle),
59610                                tx_id: header.tx_id,
59611                            },
59612                        })
59613                    }
59614                    0x6fa811be8fde7457 => {
59615                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
59616                        let mut req = fidl::new_empty!(
59617                            StreamSocketSetTcpQuickAckRequest,
59618                            fidl::encoding::DefaultFuchsiaResourceDialect
59619                        );
59620                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpQuickAckRequest>(&header, _body_bytes, handles, &mut req)?;
59621                        let control_handle =
59622                            StreamSocketControlHandle { inner: this.inner.clone() };
59623                        Ok(StreamSocketRequest::SetTcpQuickAck {
59624                            value: req.value,
59625
59626                            responder: StreamSocketSetTcpQuickAckResponder {
59627                                control_handle: std::mem::ManuallyDrop::new(control_handle),
59628                                tx_id: header.tx_id,
59629                            },
59630                        })
59631                    }
59632                    0x7356a949bef2df32 => {
59633                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
59634                        let mut req = fidl::new_empty!(
59635                            fidl::encoding::EmptyPayload,
59636                            fidl::encoding::DefaultFuchsiaResourceDialect
59637                        );
59638                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
59639                        let control_handle =
59640                            StreamSocketControlHandle { inner: this.inner.clone() };
59641                        Ok(StreamSocketRequest::GetTcpQuickAck {
59642                            responder: StreamSocketGetTcpQuickAckResponder {
59643                                control_handle: std::mem::ManuallyDrop::new(control_handle),
59644                                tx_id: header.tx_id,
59645                            },
59646                        })
59647                    }
59648                    0x7924c6eabde7819e => {
59649                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
59650                        let mut req = fidl::new_empty!(
59651                            StreamSocketSetTcpCongestionRequest,
59652                            fidl::encoding::DefaultFuchsiaResourceDialect
59653                        );
59654                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpCongestionRequest>(&header, _body_bytes, handles, &mut req)?;
59655                        let control_handle =
59656                            StreamSocketControlHandle { inner: this.inner.clone() };
59657                        Ok(StreamSocketRequest::SetTcpCongestion {
59658                            value: req.value,
59659
59660                            responder: StreamSocketSetTcpCongestionResponder {
59661                                control_handle: std::mem::ManuallyDrop::new(control_handle),
59662                                tx_id: header.tx_id,
59663                            },
59664                        })
59665                    }
59666                    0x11e16397e1b72a47 => {
59667                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
59668                        let mut req = fidl::new_empty!(
59669                            fidl::encoding::EmptyPayload,
59670                            fidl::encoding::DefaultFuchsiaResourceDialect
59671                        );
59672                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
59673                        let control_handle =
59674                            StreamSocketControlHandle { inner: this.inner.clone() };
59675                        Ok(StreamSocketRequest::GetTcpCongestion {
59676                            responder: StreamSocketGetTcpCongestionResponder {
59677                                control_handle: std::mem::ManuallyDrop::new(control_handle),
59678                                tx_id: header.tx_id,
59679                            },
59680                        })
59681                    }
59682                    0x6b459e81c3741a60 => {
59683                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
59684                        let mut req = fidl::new_empty!(
59685                            StreamSocketSetTcpUserTimeoutRequest,
59686                            fidl::encoding::DefaultFuchsiaResourceDialect
59687                        );
59688                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpUserTimeoutRequest>(&header, _body_bytes, handles, &mut req)?;
59689                        let control_handle =
59690                            StreamSocketControlHandle { inner: this.inner.clone() };
59691                        Ok(StreamSocketRequest::SetTcpUserTimeout {
59692                            value_millis: req.value_millis,
59693
59694                            responder: StreamSocketSetTcpUserTimeoutResponder {
59695                                control_handle: std::mem::ManuallyDrop::new(control_handle),
59696                                tx_id: header.tx_id,
59697                            },
59698                        })
59699                    }
59700                    0x24bbd5858ad8c380 => {
59701                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
59702                        let mut req = fidl::new_empty!(
59703                            fidl::encoding::EmptyPayload,
59704                            fidl::encoding::DefaultFuchsiaResourceDialect
59705                        );
59706                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
59707                        let control_handle =
59708                            StreamSocketControlHandle { inner: this.inner.clone() };
59709                        Ok(StreamSocketRequest::GetTcpUserTimeout {
59710                            responder: StreamSocketGetTcpUserTimeoutResponder {
59711                                control_handle: std::mem::ManuallyDrop::new(control_handle),
59712                                tx_id: header.tx_id,
59713                            },
59714                        })
59715                    }
59716                    _ => Err(fidl::Error::UnknownOrdinal {
59717                        ordinal: header.ordinal,
59718                        protocol_name:
59719                            <StreamSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
59720                    }),
59721                }))
59722            },
59723        )
59724    }
59725}
59726
59727/// A stream socket.
59728///
59729/// All methods on this type are nonblocking; their exact behaviors match their
59730/// Linux counterparts.
59731///
59732/// *Warning:* This protocol is not yet ready for direct use by clients.
59733/// Instead, clients should use the BSD sockets API to interact with sockets.
59734/// We plan to change this protocol substantially and clients that couple
59735/// directly to this protocol will make those changes more difficult.
59736#[derive(Debug)]
59737pub enum StreamSocketRequest {
59738    Clone {
59739        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
59740        control_handle: StreamSocketControlHandle,
59741    },
59742    /// Terminates the connection.
59743    ///
59744    /// After calling `Close`, the client must not send any other requests.
59745    ///
59746    /// Servers, after sending the status response, should close the connection
59747    /// regardless of status and without sending an epitaph.
59748    ///
59749    /// Closing the client end of the channel should be semantically equivalent
59750    /// to calling `Close` without knowing when the close has completed or its
59751    /// status.
59752    Close {
59753        responder: StreamSocketCloseResponder,
59754    },
59755    Query {
59756        responder: StreamSocketQueryResponder,
59757    },
59758    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
59759    SetReuseAddress {
59760        value: bool,
59761        responder: StreamSocketSetReuseAddressResponder,
59762    },
59763    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
59764    GetReuseAddress {
59765        responder: StreamSocketGetReuseAddressResponder,
59766    },
59767    /// Get `SOL_SOCKET` -> `SO_ERROR`.
59768    /// Returns the last error if there is an error set on the socket.
59769    GetError {
59770        responder: StreamSocketGetErrorResponder,
59771    },
59772    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
59773    SetBroadcast {
59774        value: bool,
59775        responder: StreamSocketSetBroadcastResponder,
59776    },
59777    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
59778    GetBroadcast {
59779        responder: StreamSocketGetBroadcastResponder,
59780    },
59781    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
59782    SetSendBuffer {
59783        value_bytes: u64,
59784        responder: StreamSocketSetSendBufferResponder,
59785    },
59786    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
59787    GetSendBuffer {
59788        responder: StreamSocketGetSendBufferResponder,
59789    },
59790    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
59791    SetReceiveBuffer {
59792        value_bytes: u64,
59793        responder: StreamSocketSetReceiveBufferResponder,
59794    },
59795    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
59796    GetReceiveBuffer {
59797        responder: StreamSocketGetReceiveBufferResponder,
59798    },
59799    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
59800    SetKeepAlive {
59801        value: bool,
59802        responder: StreamSocketSetKeepAliveResponder,
59803    },
59804    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
59805    GetKeepAlive {
59806        responder: StreamSocketGetKeepAliveResponder,
59807    },
59808    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
59809    SetOutOfBandInline {
59810        value: bool,
59811        responder: StreamSocketSetOutOfBandInlineResponder,
59812    },
59813    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
59814    GetOutOfBandInline {
59815        responder: StreamSocketGetOutOfBandInlineResponder,
59816    },
59817    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
59818    SetNoCheck {
59819        value: bool,
59820        responder: StreamSocketSetNoCheckResponder,
59821    },
59822    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
59823    GetNoCheck {
59824        responder: StreamSocketGetNoCheckResponder,
59825    },
59826    /// Set `SOL_SOCKET` -> `SO_LINGER`.
59827    SetLinger {
59828        linger: bool,
59829        length_secs: u32,
59830        responder: StreamSocketSetLingerResponder,
59831    },
59832    /// Get `SOL_SOCKET` -> `SO_LINGER`.
59833    GetLinger {
59834        responder: StreamSocketGetLingerResponder,
59835    },
59836    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
59837    SetReusePort {
59838        value: ReusePortOption,
59839        responder: StreamSocketSetReusePortResponder,
59840    },
59841    SetReusePortDeprecated {
59842        value: bool,
59843        responder: StreamSocketSetReusePortDeprecatedResponder,
59844    },
59845    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
59846    GetReusePort {
59847        responder: StreamSocketGetReusePortResponder,
59848    },
59849    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
59850    GetAcceptConn {
59851        responder: StreamSocketGetAcceptConnResponder,
59852    },
59853    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
59854    SetBindToDevice {
59855        value: String,
59856        responder: StreamSocketSetBindToDeviceResponder,
59857    },
59858    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
59859    GetBindToDevice {
59860        responder: StreamSocketGetBindToDeviceResponder,
59861    },
59862    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
59863    /// If `value` is 0, this clears the bound interface.
59864    SetBindToInterfaceIndex {
59865        value: u64,
59866        responder: StreamSocketSetBindToInterfaceIndexResponder,
59867    },
59868    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
59869    GetBindToInterfaceIndex {
59870        responder: StreamSocketGetBindToInterfaceIndexResponder,
59871    },
59872    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
59873    SetTimestamp {
59874        value: TimestampOption,
59875        responder: StreamSocketSetTimestampResponder,
59876    },
59877    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
59878    GetTimestamp {
59879        responder: StreamSocketGetTimestampResponder,
59880    },
59881    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
59882    /// unlike the standard SO_MARK, this API has multiple mark domains and each
59883    /// mark can be set independently in each domain.
59884    SetMark {
59885        domain: fidl_fuchsia_net::MarkDomain,
59886        mark: OptionalUint32,
59887        responder: StreamSocketSetMarkResponder,
59888    },
59889    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
59890    /// unlike the standard SO_MARK, this API has multiple mark domains and each
59891    /// mark can be retrieved independently in each domain.
59892    GetMark {
59893        domain: fidl_fuchsia_net::MarkDomain,
59894        responder: StreamSocketGetMarkResponder,
59895    },
59896    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
59897    GetCookie {
59898        responder: StreamSocketGetCookieResponder,
59899    },
59900    /// Sets the local address used for the socket.
59901    Bind {
59902        addr: fidl_fuchsia_net::SocketAddress,
59903        responder: StreamSocketBindResponder,
59904    },
59905    /// Initiates a connection to a remote address.
59906    Connect {
59907        addr: fidl_fuchsia_net::SocketAddress,
59908        responder: StreamSocketConnectResponder,
59909    },
59910    /// Clears connection information from this socket.
59911    Disconnect {
59912        responder: StreamSocketDisconnectResponder,
59913    },
59914    /// Retrieves the local socket address.
59915    GetSockName {
59916        responder: StreamSocketGetSockNameResponder,
59917    },
59918    /// Retrieves the remote socket address.
59919    GetPeerName {
59920        responder: StreamSocketGetPeerNameResponder,
59921    },
59922    /// Shuts down part of the socket.
59923    Shutdown {
59924        mode: ShutdownMode,
59925        responder: StreamSocketShutdownResponder,
59926    },
59927    /// Set `SOL_IP` -> `IP_TOS`.
59928    SetIpTypeOfService {
59929        value: u8,
59930        responder: StreamSocketSetIpTypeOfServiceResponder,
59931    },
59932    /// Get `SOL_IP` -> `IP_TOS`.
59933    GetIpTypeOfService {
59934        responder: StreamSocketGetIpTypeOfServiceResponder,
59935    },
59936    /// Set `SOL_IP` -> `IP_TTL`.
59937    SetIpTtl {
59938        value: OptionalUint8,
59939        responder: StreamSocketSetIpTtlResponder,
59940    },
59941    /// Get `SOL_IP` -> `IP_TTL`.
59942    GetIpTtl {
59943        responder: StreamSocketGetIpTtlResponder,
59944    },
59945    /// Set `SOL_IP` -> `IP_PKTINFO`.
59946    SetIpPacketInfo {
59947        value: bool,
59948        responder: StreamSocketSetIpPacketInfoResponder,
59949    },
59950    /// Get `SOL_IP` -> `IP_PKTINFO`.
59951    GetIpPacketInfo {
59952        responder: StreamSocketGetIpPacketInfoResponder,
59953    },
59954    /// Set `SOL_IP` -> `IP_RECVTOS`.
59955    SetIpReceiveTypeOfService {
59956        value: bool,
59957        responder: StreamSocketSetIpReceiveTypeOfServiceResponder,
59958    },
59959    /// Get `SOL_IP` -> `IP_RECVTOS`.
59960    GetIpReceiveTypeOfService {
59961        responder: StreamSocketGetIpReceiveTypeOfServiceResponder,
59962    },
59963    /// Set `SOL_IP` -> `IP_RECVTTL`.
59964    SetIpReceiveTtl {
59965        value: bool,
59966        responder: StreamSocketSetIpReceiveTtlResponder,
59967    },
59968    /// Get `SOL_IP` -> `IP_RECVTTL`.
59969    GetIpReceiveTtl {
59970        responder: StreamSocketGetIpReceiveTtlResponder,
59971    },
59972    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
59973    SetIpMulticastInterface {
59974        iface: u64,
59975        address: fidl_fuchsia_net::Ipv4Address,
59976        responder: StreamSocketSetIpMulticastInterfaceResponder,
59977    },
59978    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
59979    GetIpMulticastInterface {
59980        responder: StreamSocketGetIpMulticastInterfaceResponder,
59981    },
59982    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
59983    SetIpMulticastTtl {
59984        value: OptionalUint8,
59985        responder: StreamSocketSetIpMulticastTtlResponder,
59986    },
59987    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
59988    GetIpMulticastTtl {
59989        responder: StreamSocketGetIpMulticastTtlResponder,
59990    },
59991    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
59992    SetIpMulticastLoopback {
59993        value: bool,
59994        responder: StreamSocketSetIpMulticastLoopbackResponder,
59995    },
59996    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
59997    GetIpMulticastLoopback {
59998        responder: StreamSocketGetIpMulticastLoopbackResponder,
59999    },
60000    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
60001    AddIpMembership {
60002        membership: IpMulticastMembership,
60003        responder: StreamSocketAddIpMembershipResponder,
60004    },
60005    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
60006    DropIpMembership {
60007        membership: IpMulticastMembership,
60008        responder: StreamSocketDropIpMembershipResponder,
60009    },
60010    /// Set `SOL_IP` -> `IP_TRANSPARENT`
60011    SetIpTransparent {
60012        value: bool,
60013        responder: StreamSocketSetIpTransparentResponder,
60014    },
60015    /// Get `SOL_IP` -> `IP_TRANSPARENT`
60016    GetIpTransparent {
60017        responder: StreamSocketGetIpTransparentResponder,
60018    },
60019    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
60020    SetIpReceiveOriginalDestinationAddress {
60021        value: bool,
60022        responder: StreamSocketSetIpReceiveOriginalDestinationAddressResponder,
60023    },
60024    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
60025    GetIpReceiveOriginalDestinationAddress {
60026        responder: StreamSocketGetIpReceiveOriginalDestinationAddressResponder,
60027    },
60028    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
60029    AddIpv6Membership {
60030        membership: Ipv6MulticastMembership,
60031        responder: StreamSocketAddIpv6MembershipResponder,
60032    },
60033    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
60034    DropIpv6Membership {
60035        membership: Ipv6MulticastMembership,
60036        responder: StreamSocketDropIpv6MembershipResponder,
60037    },
60038    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
60039    SetIpv6MulticastInterface {
60040        value: u64,
60041        responder: StreamSocketSetIpv6MulticastInterfaceResponder,
60042    },
60043    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
60044    GetIpv6MulticastInterface {
60045        responder: StreamSocketGetIpv6MulticastInterfaceResponder,
60046    },
60047    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
60048    SetIpv6UnicastHops {
60049        value: OptionalUint8,
60050        responder: StreamSocketSetIpv6UnicastHopsResponder,
60051    },
60052    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
60053    GetIpv6UnicastHops {
60054        responder: StreamSocketGetIpv6UnicastHopsResponder,
60055    },
60056    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
60057    SetIpv6ReceiveHopLimit {
60058        value: bool,
60059        responder: StreamSocketSetIpv6ReceiveHopLimitResponder,
60060    },
60061    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
60062    GetIpv6ReceiveHopLimit {
60063        responder: StreamSocketGetIpv6ReceiveHopLimitResponder,
60064    },
60065    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
60066    SetIpv6MulticastHops {
60067        value: OptionalUint8,
60068        responder: StreamSocketSetIpv6MulticastHopsResponder,
60069    },
60070    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
60071    GetIpv6MulticastHops {
60072        responder: StreamSocketGetIpv6MulticastHopsResponder,
60073    },
60074    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
60075    SetIpv6MulticastLoopback {
60076        value: bool,
60077        responder: StreamSocketSetIpv6MulticastLoopbackResponder,
60078    },
60079    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
60080    GetIpv6MulticastLoopback {
60081        responder: StreamSocketGetIpv6MulticastLoopbackResponder,
60082    },
60083    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
60084    SetIpv6Only {
60085        value: bool,
60086        responder: StreamSocketSetIpv6OnlyResponder,
60087    },
60088    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
60089    GetIpv6Only {
60090        responder: StreamSocketGetIpv6OnlyResponder,
60091    },
60092    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
60093    SetIpv6ReceiveTrafficClass {
60094        value: bool,
60095        responder: StreamSocketSetIpv6ReceiveTrafficClassResponder,
60096    },
60097    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
60098    GetIpv6ReceiveTrafficClass {
60099        responder: StreamSocketGetIpv6ReceiveTrafficClassResponder,
60100    },
60101    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
60102    SetIpv6TrafficClass {
60103        value: OptionalUint8,
60104        responder: StreamSocketSetIpv6TrafficClassResponder,
60105    },
60106    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
60107    GetIpv6TrafficClass {
60108        responder: StreamSocketGetIpv6TrafficClassResponder,
60109    },
60110    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
60111    SetIpv6ReceivePacketInfo {
60112        value: bool,
60113        responder: StreamSocketSetIpv6ReceivePacketInfoResponder,
60114    },
60115    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
60116    GetIpv6ReceivePacketInfo {
60117        responder: StreamSocketGetIpv6ReceivePacketInfoResponder,
60118    },
60119    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
60120    GetOriginalDestination {
60121        responder: StreamSocketGetOriginalDestinationResponder,
60122    },
60123    Describe {
60124        responder: StreamSocketDescribeResponder,
60125    },
60126    /// Begins listening for new incoming connections. At most `backlog`
60127    /// connections will be buffered.
60128    Listen {
60129        backlog: i16,
60130        responder: StreamSocketListenResponder,
60131    },
60132    /// Accepts a buffered incoming connection.
60133    Accept {
60134        want_addr: bool,
60135        responder: StreamSocketAcceptResponder,
60136    },
60137    /// Retrieves creation information from the socket.
60138    GetInfo {
60139        responder: StreamSocketGetInfoResponder,
60140    },
60141    /// Set `SOL_TCP` -> `TCP_NODELAY`.
60142    SetTcpNoDelay {
60143        value: bool,
60144        responder: StreamSocketSetTcpNoDelayResponder,
60145    },
60146    /// Get `SOL_TCP` -> `TCP_NODELAY`.
60147    GetTcpNoDelay {
60148        responder: StreamSocketGetTcpNoDelayResponder,
60149    },
60150    /// Set `SOL_TCP` -> `TCP_MAXSEG`.
60151    SetTcpMaxSegment {
60152        value_bytes: u32,
60153        responder: StreamSocketSetTcpMaxSegmentResponder,
60154    },
60155    /// Get `SOL_TCP` -> `TCP_MAXSEG`.
60156    GetTcpMaxSegment {
60157        responder: StreamSocketGetTcpMaxSegmentResponder,
60158    },
60159    /// Set `SOL_TCP` -> `TCP_CORK`.
60160    SetTcpCork {
60161        value: bool,
60162        responder: StreamSocketSetTcpCorkResponder,
60163    },
60164    /// Get `SOL_TCP` -> `TCP_CORK`.
60165    GetTcpCork {
60166        responder: StreamSocketGetTcpCorkResponder,
60167    },
60168    /// Set `SOL_TCP` -> `TCP_KEEPIDLE`.
60169    SetTcpKeepAliveIdle {
60170        value_secs: u32,
60171        responder: StreamSocketSetTcpKeepAliveIdleResponder,
60172    },
60173    /// Get `SOL_TCP` -> `TCP_KEEPIDLE`.
60174    GetTcpKeepAliveIdle {
60175        responder: StreamSocketGetTcpKeepAliveIdleResponder,
60176    },
60177    /// Set `SOL_TCP` -> `TCP_KEEPINTVL`.
60178    SetTcpKeepAliveInterval {
60179        value_secs: u32,
60180        responder: StreamSocketSetTcpKeepAliveIntervalResponder,
60181    },
60182    /// Get `SOL_TCP` -> `TCP_KEEPINTVL`.
60183    GetTcpKeepAliveInterval {
60184        responder: StreamSocketGetTcpKeepAliveIntervalResponder,
60185    },
60186    /// Set `SOL_TCP` -> `TCP_KEEPCNT`.
60187    SetTcpKeepAliveCount {
60188        value: u32,
60189        responder: StreamSocketSetTcpKeepAliveCountResponder,
60190    },
60191    /// Get `SOL_TCP` -> `TCP_KEEPCNT`.
60192    GetTcpKeepAliveCount {
60193        responder: StreamSocketGetTcpKeepAliveCountResponder,
60194    },
60195    /// Set `SOL_TCP` -> `TCP_SYNCNT`.
60196    SetTcpSynCount {
60197        value: u32,
60198        responder: StreamSocketSetTcpSynCountResponder,
60199    },
60200    /// Get `SOL_TCP` -> `TCP_SYNCNT`.
60201    GetTcpSynCount {
60202        responder: StreamSocketGetTcpSynCountResponder,
60203    },
60204    /// Set `SOL_TCP` -> `TCP_LINGER2`.
60205    SetTcpLinger {
60206        value_secs: OptionalUint32,
60207        responder: StreamSocketSetTcpLingerResponder,
60208    },
60209    /// Get `SOL_TCP` -> `TCP_LINGER2`.
60210    GetTcpLinger {
60211        responder: StreamSocketGetTcpLingerResponder,
60212    },
60213    /// Set `SOL_TCP` -> `TCP_DEFER_ACCEPT`.
60214    SetTcpDeferAccept {
60215        value_secs: u32,
60216        responder: StreamSocketSetTcpDeferAcceptResponder,
60217    },
60218    /// Get `SOL_TCP` -> `TCP_DEFER_ACCEPT`.
60219    GetTcpDeferAccept {
60220        responder: StreamSocketGetTcpDeferAcceptResponder,
60221    },
60222    /// Set `SOL_TCP` -> `TCP_WINDOW_CLAMP`.
60223    SetTcpWindowClamp {
60224        value: u32,
60225        responder: StreamSocketSetTcpWindowClampResponder,
60226    },
60227    /// Get `SOL_TCP` -> `TCP_WINDOW_CLAMP`.
60228    GetTcpWindowClamp {
60229        responder: StreamSocketGetTcpWindowClampResponder,
60230    },
60231    /// Get `SOL_TCP` -> `TCP_INFO`.
60232    GetTcpInfo {
60233        responder: StreamSocketGetTcpInfoResponder,
60234    },
60235    /// Set `SOL_TCP` -> `TCP_QUICKACK`.
60236    SetTcpQuickAck {
60237        value: bool,
60238        responder: StreamSocketSetTcpQuickAckResponder,
60239    },
60240    /// Get `SOL_TCP` -> `TCP_QUICKACK`.
60241    GetTcpQuickAck {
60242        responder: StreamSocketGetTcpQuickAckResponder,
60243    },
60244    /// Set `SOL_TCP` -> `TCP_CONGESTION`.
60245    SetTcpCongestion {
60246        value: TcpCongestionControl,
60247        responder: StreamSocketSetTcpCongestionResponder,
60248    },
60249    /// Get `SOL_TCP` -> `TCP_CONGESTION`.
60250    GetTcpCongestion {
60251        responder: StreamSocketGetTcpCongestionResponder,
60252    },
60253    /// Set `SOL_TCP` -> `TCP_USER_TIMEOUT`.
60254    SetTcpUserTimeout {
60255        value_millis: u32,
60256        responder: StreamSocketSetTcpUserTimeoutResponder,
60257    },
60258    /// Get `SOL_TCP` -> `TCP_USER_TIMEOUT`.
60259    GetTcpUserTimeout {
60260        responder: StreamSocketGetTcpUserTimeoutResponder,
60261    },
60262}
60263
60264impl StreamSocketRequest {
60265    #[allow(irrefutable_let_patterns)]
60266    pub fn into_clone(
60267        self,
60268    ) -> Option<(
60269        fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
60270        StreamSocketControlHandle,
60271    )> {
60272        if let StreamSocketRequest::Clone { request, control_handle } = self {
60273            Some((request, control_handle))
60274        } else {
60275            None
60276        }
60277    }
60278
60279    #[allow(irrefutable_let_patterns)]
60280    pub fn into_close(self) -> Option<(StreamSocketCloseResponder)> {
60281        if let StreamSocketRequest::Close { responder } = self { Some((responder)) } else { None }
60282    }
60283
60284    #[allow(irrefutable_let_patterns)]
60285    pub fn into_query(self) -> Option<(StreamSocketQueryResponder)> {
60286        if let StreamSocketRequest::Query { responder } = self { Some((responder)) } else { None }
60287    }
60288
60289    #[allow(irrefutable_let_patterns)]
60290    pub fn into_set_reuse_address(self) -> Option<(bool, StreamSocketSetReuseAddressResponder)> {
60291        if let StreamSocketRequest::SetReuseAddress { value, responder } = self {
60292            Some((value, responder))
60293        } else {
60294            None
60295        }
60296    }
60297
60298    #[allow(irrefutable_let_patterns)]
60299    pub fn into_get_reuse_address(self) -> Option<(StreamSocketGetReuseAddressResponder)> {
60300        if let StreamSocketRequest::GetReuseAddress { responder } = self {
60301            Some((responder))
60302        } else {
60303            None
60304        }
60305    }
60306
60307    #[allow(irrefutable_let_patterns)]
60308    pub fn into_get_error(self) -> Option<(StreamSocketGetErrorResponder)> {
60309        if let StreamSocketRequest::GetError { responder } = self {
60310            Some((responder))
60311        } else {
60312            None
60313        }
60314    }
60315
60316    #[allow(irrefutable_let_patterns)]
60317    pub fn into_set_broadcast(self) -> Option<(bool, StreamSocketSetBroadcastResponder)> {
60318        if let StreamSocketRequest::SetBroadcast { value, responder } = self {
60319            Some((value, responder))
60320        } else {
60321            None
60322        }
60323    }
60324
60325    #[allow(irrefutable_let_patterns)]
60326    pub fn into_get_broadcast(self) -> Option<(StreamSocketGetBroadcastResponder)> {
60327        if let StreamSocketRequest::GetBroadcast { responder } = self {
60328            Some((responder))
60329        } else {
60330            None
60331        }
60332    }
60333
60334    #[allow(irrefutable_let_patterns)]
60335    pub fn into_set_send_buffer(self) -> Option<(u64, StreamSocketSetSendBufferResponder)> {
60336        if let StreamSocketRequest::SetSendBuffer { value_bytes, responder } = self {
60337            Some((value_bytes, responder))
60338        } else {
60339            None
60340        }
60341    }
60342
60343    #[allow(irrefutable_let_patterns)]
60344    pub fn into_get_send_buffer(self) -> Option<(StreamSocketGetSendBufferResponder)> {
60345        if let StreamSocketRequest::GetSendBuffer { responder } = self {
60346            Some((responder))
60347        } else {
60348            None
60349        }
60350    }
60351
60352    #[allow(irrefutable_let_patterns)]
60353    pub fn into_set_receive_buffer(self) -> Option<(u64, StreamSocketSetReceiveBufferResponder)> {
60354        if let StreamSocketRequest::SetReceiveBuffer { value_bytes, responder } = self {
60355            Some((value_bytes, responder))
60356        } else {
60357            None
60358        }
60359    }
60360
60361    #[allow(irrefutable_let_patterns)]
60362    pub fn into_get_receive_buffer(self) -> Option<(StreamSocketGetReceiveBufferResponder)> {
60363        if let StreamSocketRequest::GetReceiveBuffer { responder } = self {
60364            Some((responder))
60365        } else {
60366            None
60367        }
60368    }
60369
60370    #[allow(irrefutable_let_patterns)]
60371    pub fn into_set_keep_alive(self) -> Option<(bool, StreamSocketSetKeepAliveResponder)> {
60372        if let StreamSocketRequest::SetKeepAlive { value, responder } = self {
60373            Some((value, responder))
60374        } else {
60375            None
60376        }
60377    }
60378
60379    #[allow(irrefutable_let_patterns)]
60380    pub fn into_get_keep_alive(self) -> Option<(StreamSocketGetKeepAliveResponder)> {
60381        if let StreamSocketRequest::GetKeepAlive { responder } = self {
60382            Some((responder))
60383        } else {
60384            None
60385        }
60386    }
60387
60388    #[allow(irrefutable_let_patterns)]
60389    pub fn into_set_out_of_band_inline(
60390        self,
60391    ) -> Option<(bool, StreamSocketSetOutOfBandInlineResponder)> {
60392        if let StreamSocketRequest::SetOutOfBandInline { value, responder } = self {
60393            Some((value, responder))
60394        } else {
60395            None
60396        }
60397    }
60398
60399    #[allow(irrefutable_let_patterns)]
60400    pub fn into_get_out_of_band_inline(self) -> Option<(StreamSocketGetOutOfBandInlineResponder)> {
60401        if let StreamSocketRequest::GetOutOfBandInline { responder } = self {
60402            Some((responder))
60403        } else {
60404            None
60405        }
60406    }
60407
60408    #[allow(irrefutable_let_patterns)]
60409    pub fn into_set_no_check(self) -> Option<(bool, StreamSocketSetNoCheckResponder)> {
60410        if let StreamSocketRequest::SetNoCheck { value, responder } = self {
60411            Some((value, responder))
60412        } else {
60413            None
60414        }
60415    }
60416
60417    #[allow(irrefutable_let_patterns)]
60418    pub fn into_get_no_check(self) -> Option<(StreamSocketGetNoCheckResponder)> {
60419        if let StreamSocketRequest::GetNoCheck { responder } = self {
60420            Some((responder))
60421        } else {
60422            None
60423        }
60424    }
60425
60426    #[allow(irrefutable_let_patterns)]
60427    pub fn into_set_linger(self) -> Option<(bool, u32, StreamSocketSetLingerResponder)> {
60428        if let StreamSocketRequest::SetLinger { linger, length_secs, responder } = self {
60429            Some((linger, length_secs, responder))
60430        } else {
60431            None
60432        }
60433    }
60434
60435    #[allow(irrefutable_let_patterns)]
60436    pub fn into_get_linger(self) -> Option<(StreamSocketGetLingerResponder)> {
60437        if let StreamSocketRequest::GetLinger { responder } = self {
60438            Some((responder))
60439        } else {
60440            None
60441        }
60442    }
60443
60444    #[allow(irrefutable_let_patterns)]
60445    pub fn into_set_reuse_port(
60446        self,
60447    ) -> Option<(ReusePortOption, StreamSocketSetReusePortResponder)> {
60448        if let StreamSocketRequest::SetReusePort { value, responder } = self {
60449            Some((value, responder))
60450        } else {
60451            None
60452        }
60453    }
60454
60455    #[allow(irrefutable_let_patterns)]
60456    pub fn into_set_reuse_port_deprecated(
60457        self,
60458    ) -> Option<(bool, StreamSocketSetReusePortDeprecatedResponder)> {
60459        if let StreamSocketRequest::SetReusePortDeprecated { value, responder } = self {
60460            Some((value, responder))
60461        } else {
60462            None
60463        }
60464    }
60465
60466    #[allow(irrefutable_let_patterns)]
60467    pub fn into_get_reuse_port(self) -> Option<(StreamSocketGetReusePortResponder)> {
60468        if let StreamSocketRequest::GetReusePort { responder } = self {
60469            Some((responder))
60470        } else {
60471            None
60472        }
60473    }
60474
60475    #[allow(irrefutable_let_patterns)]
60476    pub fn into_get_accept_conn(self) -> Option<(StreamSocketGetAcceptConnResponder)> {
60477        if let StreamSocketRequest::GetAcceptConn { responder } = self {
60478            Some((responder))
60479        } else {
60480            None
60481        }
60482    }
60483
60484    #[allow(irrefutable_let_patterns)]
60485    pub fn into_set_bind_to_device(self) -> Option<(String, StreamSocketSetBindToDeviceResponder)> {
60486        if let StreamSocketRequest::SetBindToDevice { value, responder } = self {
60487            Some((value, responder))
60488        } else {
60489            None
60490        }
60491    }
60492
60493    #[allow(irrefutable_let_patterns)]
60494    pub fn into_get_bind_to_device(self) -> Option<(StreamSocketGetBindToDeviceResponder)> {
60495        if let StreamSocketRequest::GetBindToDevice { responder } = self {
60496            Some((responder))
60497        } else {
60498            None
60499        }
60500    }
60501
60502    #[allow(irrefutable_let_patterns)]
60503    pub fn into_set_bind_to_interface_index(
60504        self,
60505    ) -> Option<(u64, StreamSocketSetBindToInterfaceIndexResponder)> {
60506        if let StreamSocketRequest::SetBindToInterfaceIndex { value, responder } = self {
60507            Some((value, responder))
60508        } else {
60509            None
60510        }
60511    }
60512
60513    #[allow(irrefutable_let_patterns)]
60514    pub fn into_get_bind_to_interface_index(
60515        self,
60516    ) -> Option<(StreamSocketGetBindToInterfaceIndexResponder)> {
60517        if let StreamSocketRequest::GetBindToInterfaceIndex { responder } = self {
60518            Some((responder))
60519        } else {
60520            None
60521        }
60522    }
60523
60524    #[allow(irrefutable_let_patterns)]
60525    pub fn into_set_timestamp(
60526        self,
60527    ) -> Option<(TimestampOption, StreamSocketSetTimestampResponder)> {
60528        if let StreamSocketRequest::SetTimestamp { value, responder } = self {
60529            Some((value, responder))
60530        } else {
60531            None
60532        }
60533    }
60534
60535    #[allow(irrefutable_let_patterns)]
60536    pub fn into_get_timestamp(self) -> Option<(StreamSocketGetTimestampResponder)> {
60537        if let StreamSocketRequest::GetTimestamp { responder } = self {
60538            Some((responder))
60539        } else {
60540            None
60541        }
60542    }
60543
60544    #[allow(irrefutable_let_patterns)]
60545    pub fn into_set_mark(
60546        self,
60547    ) -> Option<(fidl_fuchsia_net::MarkDomain, OptionalUint32, StreamSocketSetMarkResponder)> {
60548        if let StreamSocketRequest::SetMark { domain, mark, responder } = self {
60549            Some((domain, mark, responder))
60550        } else {
60551            None
60552        }
60553    }
60554
60555    #[allow(irrefutable_let_patterns)]
60556    pub fn into_get_mark(
60557        self,
60558    ) -> Option<(fidl_fuchsia_net::MarkDomain, StreamSocketGetMarkResponder)> {
60559        if let StreamSocketRequest::GetMark { domain, responder } = self {
60560            Some((domain, responder))
60561        } else {
60562            None
60563        }
60564    }
60565
60566    #[allow(irrefutable_let_patterns)]
60567    pub fn into_get_cookie(self) -> Option<(StreamSocketGetCookieResponder)> {
60568        if let StreamSocketRequest::GetCookie { responder } = self {
60569            Some((responder))
60570        } else {
60571            None
60572        }
60573    }
60574
60575    #[allow(irrefutable_let_patterns)]
60576    pub fn into_bind(self) -> Option<(fidl_fuchsia_net::SocketAddress, StreamSocketBindResponder)> {
60577        if let StreamSocketRequest::Bind { addr, responder } = self {
60578            Some((addr, responder))
60579        } else {
60580            None
60581        }
60582    }
60583
60584    #[allow(irrefutable_let_patterns)]
60585    pub fn into_connect(
60586        self,
60587    ) -> Option<(fidl_fuchsia_net::SocketAddress, StreamSocketConnectResponder)> {
60588        if let StreamSocketRequest::Connect { addr, responder } = self {
60589            Some((addr, responder))
60590        } else {
60591            None
60592        }
60593    }
60594
60595    #[allow(irrefutable_let_patterns)]
60596    pub fn into_disconnect(self) -> Option<(StreamSocketDisconnectResponder)> {
60597        if let StreamSocketRequest::Disconnect { responder } = self {
60598            Some((responder))
60599        } else {
60600            None
60601        }
60602    }
60603
60604    #[allow(irrefutable_let_patterns)]
60605    pub fn into_get_sock_name(self) -> Option<(StreamSocketGetSockNameResponder)> {
60606        if let StreamSocketRequest::GetSockName { responder } = self {
60607            Some((responder))
60608        } else {
60609            None
60610        }
60611    }
60612
60613    #[allow(irrefutable_let_patterns)]
60614    pub fn into_get_peer_name(self) -> Option<(StreamSocketGetPeerNameResponder)> {
60615        if let StreamSocketRequest::GetPeerName { responder } = self {
60616            Some((responder))
60617        } else {
60618            None
60619        }
60620    }
60621
60622    #[allow(irrefutable_let_patterns)]
60623    pub fn into_shutdown(self) -> Option<(ShutdownMode, StreamSocketShutdownResponder)> {
60624        if let StreamSocketRequest::Shutdown { mode, responder } = self {
60625            Some((mode, responder))
60626        } else {
60627            None
60628        }
60629    }
60630
60631    #[allow(irrefutable_let_patterns)]
60632    pub fn into_set_ip_type_of_service(
60633        self,
60634    ) -> Option<(u8, StreamSocketSetIpTypeOfServiceResponder)> {
60635        if let StreamSocketRequest::SetIpTypeOfService { value, responder } = self {
60636            Some((value, responder))
60637        } else {
60638            None
60639        }
60640    }
60641
60642    #[allow(irrefutable_let_patterns)]
60643    pub fn into_get_ip_type_of_service(self) -> Option<(StreamSocketGetIpTypeOfServiceResponder)> {
60644        if let StreamSocketRequest::GetIpTypeOfService { responder } = self {
60645            Some((responder))
60646        } else {
60647            None
60648        }
60649    }
60650
60651    #[allow(irrefutable_let_patterns)]
60652    pub fn into_set_ip_ttl(self) -> Option<(OptionalUint8, StreamSocketSetIpTtlResponder)> {
60653        if let StreamSocketRequest::SetIpTtl { value, responder } = self {
60654            Some((value, responder))
60655        } else {
60656            None
60657        }
60658    }
60659
60660    #[allow(irrefutable_let_patterns)]
60661    pub fn into_get_ip_ttl(self) -> Option<(StreamSocketGetIpTtlResponder)> {
60662        if let StreamSocketRequest::GetIpTtl { responder } = self {
60663            Some((responder))
60664        } else {
60665            None
60666        }
60667    }
60668
60669    #[allow(irrefutable_let_patterns)]
60670    pub fn into_set_ip_packet_info(self) -> Option<(bool, StreamSocketSetIpPacketInfoResponder)> {
60671        if let StreamSocketRequest::SetIpPacketInfo { value, responder } = self {
60672            Some((value, responder))
60673        } else {
60674            None
60675        }
60676    }
60677
60678    #[allow(irrefutable_let_patterns)]
60679    pub fn into_get_ip_packet_info(self) -> Option<(StreamSocketGetIpPacketInfoResponder)> {
60680        if let StreamSocketRequest::GetIpPacketInfo { responder } = self {
60681            Some((responder))
60682        } else {
60683            None
60684        }
60685    }
60686
60687    #[allow(irrefutable_let_patterns)]
60688    pub fn into_set_ip_receive_type_of_service(
60689        self,
60690    ) -> Option<(bool, StreamSocketSetIpReceiveTypeOfServiceResponder)> {
60691        if let StreamSocketRequest::SetIpReceiveTypeOfService { value, responder } = self {
60692            Some((value, responder))
60693        } else {
60694            None
60695        }
60696    }
60697
60698    #[allow(irrefutable_let_patterns)]
60699    pub fn into_get_ip_receive_type_of_service(
60700        self,
60701    ) -> Option<(StreamSocketGetIpReceiveTypeOfServiceResponder)> {
60702        if let StreamSocketRequest::GetIpReceiveTypeOfService { responder } = self {
60703            Some((responder))
60704        } else {
60705            None
60706        }
60707    }
60708
60709    #[allow(irrefutable_let_patterns)]
60710    pub fn into_set_ip_receive_ttl(self) -> Option<(bool, StreamSocketSetIpReceiveTtlResponder)> {
60711        if let StreamSocketRequest::SetIpReceiveTtl { value, responder } = self {
60712            Some((value, responder))
60713        } else {
60714            None
60715        }
60716    }
60717
60718    #[allow(irrefutable_let_patterns)]
60719    pub fn into_get_ip_receive_ttl(self) -> Option<(StreamSocketGetIpReceiveTtlResponder)> {
60720        if let StreamSocketRequest::GetIpReceiveTtl { responder } = self {
60721            Some((responder))
60722        } else {
60723            None
60724        }
60725    }
60726
60727    #[allow(irrefutable_let_patterns)]
60728    pub fn into_set_ip_multicast_interface(
60729        self,
60730    ) -> Option<(u64, fidl_fuchsia_net::Ipv4Address, StreamSocketSetIpMulticastInterfaceResponder)>
60731    {
60732        if let StreamSocketRequest::SetIpMulticastInterface { iface, address, responder } = self {
60733            Some((iface, address, responder))
60734        } else {
60735            None
60736        }
60737    }
60738
60739    #[allow(irrefutable_let_patterns)]
60740    pub fn into_get_ip_multicast_interface(
60741        self,
60742    ) -> Option<(StreamSocketGetIpMulticastInterfaceResponder)> {
60743        if let StreamSocketRequest::GetIpMulticastInterface { responder } = self {
60744            Some((responder))
60745        } else {
60746            None
60747        }
60748    }
60749
60750    #[allow(irrefutable_let_patterns)]
60751    pub fn into_set_ip_multicast_ttl(
60752        self,
60753    ) -> Option<(OptionalUint8, StreamSocketSetIpMulticastTtlResponder)> {
60754        if let StreamSocketRequest::SetIpMulticastTtl { value, responder } = self {
60755            Some((value, responder))
60756        } else {
60757            None
60758        }
60759    }
60760
60761    #[allow(irrefutable_let_patterns)]
60762    pub fn into_get_ip_multicast_ttl(self) -> Option<(StreamSocketGetIpMulticastTtlResponder)> {
60763        if let StreamSocketRequest::GetIpMulticastTtl { responder } = self {
60764            Some((responder))
60765        } else {
60766            None
60767        }
60768    }
60769
60770    #[allow(irrefutable_let_patterns)]
60771    pub fn into_set_ip_multicast_loopback(
60772        self,
60773    ) -> Option<(bool, StreamSocketSetIpMulticastLoopbackResponder)> {
60774        if let StreamSocketRequest::SetIpMulticastLoopback { value, responder } = self {
60775            Some((value, responder))
60776        } else {
60777            None
60778        }
60779    }
60780
60781    #[allow(irrefutable_let_patterns)]
60782    pub fn into_get_ip_multicast_loopback(
60783        self,
60784    ) -> Option<(StreamSocketGetIpMulticastLoopbackResponder)> {
60785        if let StreamSocketRequest::GetIpMulticastLoopback { responder } = self {
60786            Some((responder))
60787        } else {
60788            None
60789        }
60790    }
60791
60792    #[allow(irrefutable_let_patterns)]
60793    pub fn into_add_ip_membership(
60794        self,
60795    ) -> Option<(IpMulticastMembership, StreamSocketAddIpMembershipResponder)> {
60796        if let StreamSocketRequest::AddIpMembership { membership, responder } = self {
60797            Some((membership, responder))
60798        } else {
60799            None
60800        }
60801    }
60802
60803    #[allow(irrefutable_let_patterns)]
60804    pub fn into_drop_ip_membership(
60805        self,
60806    ) -> Option<(IpMulticastMembership, StreamSocketDropIpMembershipResponder)> {
60807        if let StreamSocketRequest::DropIpMembership { membership, responder } = self {
60808            Some((membership, responder))
60809        } else {
60810            None
60811        }
60812    }
60813
60814    #[allow(irrefutable_let_patterns)]
60815    pub fn into_set_ip_transparent(self) -> Option<(bool, StreamSocketSetIpTransparentResponder)> {
60816        if let StreamSocketRequest::SetIpTransparent { value, responder } = self {
60817            Some((value, responder))
60818        } else {
60819            None
60820        }
60821    }
60822
60823    #[allow(irrefutable_let_patterns)]
60824    pub fn into_get_ip_transparent(self) -> Option<(StreamSocketGetIpTransparentResponder)> {
60825        if let StreamSocketRequest::GetIpTransparent { responder } = self {
60826            Some((responder))
60827        } else {
60828            None
60829        }
60830    }
60831
60832    #[allow(irrefutable_let_patterns)]
60833    pub fn into_set_ip_receive_original_destination_address(
60834        self,
60835    ) -> Option<(bool, StreamSocketSetIpReceiveOriginalDestinationAddressResponder)> {
60836        if let StreamSocketRequest::SetIpReceiveOriginalDestinationAddress { value, responder } =
60837            self
60838        {
60839            Some((value, responder))
60840        } else {
60841            None
60842        }
60843    }
60844
60845    #[allow(irrefutable_let_patterns)]
60846    pub fn into_get_ip_receive_original_destination_address(
60847        self,
60848    ) -> Option<(StreamSocketGetIpReceiveOriginalDestinationAddressResponder)> {
60849        if let StreamSocketRequest::GetIpReceiveOriginalDestinationAddress { responder } = self {
60850            Some((responder))
60851        } else {
60852            None
60853        }
60854    }
60855
60856    #[allow(irrefutable_let_patterns)]
60857    pub fn into_add_ipv6_membership(
60858        self,
60859    ) -> Option<(Ipv6MulticastMembership, StreamSocketAddIpv6MembershipResponder)> {
60860        if let StreamSocketRequest::AddIpv6Membership { membership, responder } = self {
60861            Some((membership, responder))
60862        } else {
60863            None
60864        }
60865    }
60866
60867    #[allow(irrefutable_let_patterns)]
60868    pub fn into_drop_ipv6_membership(
60869        self,
60870    ) -> Option<(Ipv6MulticastMembership, StreamSocketDropIpv6MembershipResponder)> {
60871        if let StreamSocketRequest::DropIpv6Membership { membership, responder } = self {
60872            Some((membership, responder))
60873        } else {
60874            None
60875        }
60876    }
60877
60878    #[allow(irrefutable_let_patterns)]
60879    pub fn into_set_ipv6_multicast_interface(
60880        self,
60881    ) -> Option<(u64, StreamSocketSetIpv6MulticastInterfaceResponder)> {
60882        if let StreamSocketRequest::SetIpv6MulticastInterface { value, responder } = self {
60883            Some((value, responder))
60884        } else {
60885            None
60886        }
60887    }
60888
60889    #[allow(irrefutable_let_patterns)]
60890    pub fn into_get_ipv6_multicast_interface(
60891        self,
60892    ) -> Option<(StreamSocketGetIpv6MulticastInterfaceResponder)> {
60893        if let StreamSocketRequest::GetIpv6MulticastInterface { responder } = self {
60894            Some((responder))
60895        } else {
60896            None
60897        }
60898    }
60899
60900    #[allow(irrefutable_let_patterns)]
60901    pub fn into_set_ipv6_unicast_hops(
60902        self,
60903    ) -> Option<(OptionalUint8, StreamSocketSetIpv6UnicastHopsResponder)> {
60904        if let StreamSocketRequest::SetIpv6UnicastHops { value, responder } = self {
60905            Some((value, responder))
60906        } else {
60907            None
60908        }
60909    }
60910
60911    #[allow(irrefutable_let_patterns)]
60912    pub fn into_get_ipv6_unicast_hops(self) -> Option<(StreamSocketGetIpv6UnicastHopsResponder)> {
60913        if let StreamSocketRequest::GetIpv6UnicastHops { responder } = self {
60914            Some((responder))
60915        } else {
60916            None
60917        }
60918    }
60919
60920    #[allow(irrefutable_let_patterns)]
60921    pub fn into_set_ipv6_receive_hop_limit(
60922        self,
60923    ) -> Option<(bool, StreamSocketSetIpv6ReceiveHopLimitResponder)> {
60924        if let StreamSocketRequest::SetIpv6ReceiveHopLimit { value, responder } = self {
60925            Some((value, responder))
60926        } else {
60927            None
60928        }
60929    }
60930
60931    #[allow(irrefutable_let_patterns)]
60932    pub fn into_get_ipv6_receive_hop_limit(
60933        self,
60934    ) -> Option<(StreamSocketGetIpv6ReceiveHopLimitResponder)> {
60935        if let StreamSocketRequest::GetIpv6ReceiveHopLimit { responder } = self {
60936            Some((responder))
60937        } else {
60938            None
60939        }
60940    }
60941
60942    #[allow(irrefutable_let_patterns)]
60943    pub fn into_set_ipv6_multicast_hops(
60944        self,
60945    ) -> Option<(OptionalUint8, StreamSocketSetIpv6MulticastHopsResponder)> {
60946        if let StreamSocketRequest::SetIpv6MulticastHops { value, responder } = self {
60947            Some((value, responder))
60948        } else {
60949            None
60950        }
60951    }
60952
60953    #[allow(irrefutable_let_patterns)]
60954    pub fn into_get_ipv6_multicast_hops(
60955        self,
60956    ) -> Option<(StreamSocketGetIpv6MulticastHopsResponder)> {
60957        if let StreamSocketRequest::GetIpv6MulticastHops { responder } = self {
60958            Some((responder))
60959        } else {
60960            None
60961        }
60962    }
60963
60964    #[allow(irrefutable_let_patterns)]
60965    pub fn into_set_ipv6_multicast_loopback(
60966        self,
60967    ) -> Option<(bool, StreamSocketSetIpv6MulticastLoopbackResponder)> {
60968        if let StreamSocketRequest::SetIpv6MulticastLoopback { value, responder } = self {
60969            Some((value, responder))
60970        } else {
60971            None
60972        }
60973    }
60974
60975    #[allow(irrefutable_let_patterns)]
60976    pub fn into_get_ipv6_multicast_loopback(
60977        self,
60978    ) -> Option<(StreamSocketGetIpv6MulticastLoopbackResponder)> {
60979        if let StreamSocketRequest::GetIpv6MulticastLoopback { responder } = self {
60980            Some((responder))
60981        } else {
60982            None
60983        }
60984    }
60985
60986    #[allow(irrefutable_let_patterns)]
60987    pub fn into_set_ipv6_only(self) -> Option<(bool, StreamSocketSetIpv6OnlyResponder)> {
60988        if let StreamSocketRequest::SetIpv6Only { value, responder } = self {
60989            Some((value, responder))
60990        } else {
60991            None
60992        }
60993    }
60994
60995    #[allow(irrefutable_let_patterns)]
60996    pub fn into_get_ipv6_only(self) -> Option<(StreamSocketGetIpv6OnlyResponder)> {
60997        if let StreamSocketRequest::GetIpv6Only { responder } = self {
60998            Some((responder))
60999        } else {
61000            None
61001        }
61002    }
61003
61004    #[allow(irrefutable_let_patterns)]
61005    pub fn into_set_ipv6_receive_traffic_class(
61006        self,
61007    ) -> Option<(bool, StreamSocketSetIpv6ReceiveTrafficClassResponder)> {
61008        if let StreamSocketRequest::SetIpv6ReceiveTrafficClass { value, responder } = self {
61009            Some((value, responder))
61010        } else {
61011            None
61012        }
61013    }
61014
61015    #[allow(irrefutable_let_patterns)]
61016    pub fn into_get_ipv6_receive_traffic_class(
61017        self,
61018    ) -> Option<(StreamSocketGetIpv6ReceiveTrafficClassResponder)> {
61019        if let StreamSocketRequest::GetIpv6ReceiveTrafficClass { responder } = self {
61020            Some((responder))
61021        } else {
61022            None
61023        }
61024    }
61025
61026    #[allow(irrefutable_let_patterns)]
61027    pub fn into_set_ipv6_traffic_class(
61028        self,
61029    ) -> Option<(OptionalUint8, StreamSocketSetIpv6TrafficClassResponder)> {
61030        if let StreamSocketRequest::SetIpv6TrafficClass { value, responder } = self {
61031            Some((value, responder))
61032        } else {
61033            None
61034        }
61035    }
61036
61037    #[allow(irrefutable_let_patterns)]
61038    pub fn into_get_ipv6_traffic_class(self) -> Option<(StreamSocketGetIpv6TrafficClassResponder)> {
61039        if let StreamSocketRequest::GetIpv6TrafficClass { responder } = self {
61040            Some((responder))
61041        } else {
61042            None
61043        }
61044    }
61045
61046    #[allow(irrefutable_let_patterns)]
61047    pub fn into_set_ipv6_receive_packet_info(
61048        self,
61049    ) -> Option<(bool, StreamSocketSetIpv6ReceivePacketInfoResponder)> {
61050        if let StreamSocketRequest::SetIpv6ReceivePacketInfo { value, responder } = self {
61051            Some((value, responder))
61052        } else {
61053            None
61054        }
61055    }
61056
61057    #[allow(irrefutable_let_patterns)]
61058    pub fn into_get_ipv6_receive_packet_info(
61059        self,
61060    ) -> Option<(StreamSocketGetIpv6ReceivePacketInfoResponder)> {
61061        if let StreamSocketRequest::GetIpv6ReceivePacketInfo { responder } = self {
61062            Some((responder))
61063        } else {
61064            None
61065        }
61066    }
61067
61068    #[allow(irrefutable_let_patterns)]
61069    pub fn into_get_original_destination(
61070        self,
61071    ) -> Option<(StreamSocketGetOriginalDestinationResponder)> {
61072        if let StreamSocketRequest::GetOriginalDestination { responder } = self {
61073            Some((responder))
61074        } else {
61075            None
61076        }
61077    }
61078
61079    #[allow(irrefutable_let_patterns)]
61080    pub fn into_describe(self) -> Option<(StreamSocketDescribeResponder)> {
61081        if let StreamSocketRequest::Describe { responder } = self {
61082            Some((responder))
61083        } else {
61084            None
61085        }
61086    }
61087
61088    #[allow(irrefutable_let_patterns)]
61089    pub fn into_listen(self) -> Option<(i16, StreamSocketListenResponder)> {
61090        if let StreamSocketRequest::Listen { backlog, responder } = self {
61091            Some((backlog, responder))
61092        } else {
61093            None
61094        }
61095    }
61096
61097    #[allow(irrefutable_let_patterns)]
61098    pub fn into_accept(self) -> Option<(bool, StreamSocketAcceptResponder)> {
61099        if let StreamSocketRequest::Accept { want_addr, responder } = self {
61100            Some((want_addr, responder))
61101        } else {
61102            None
61103        }
61104    }
61105
61106    #[allow(irrefutable_let_patterns)]
61107    pub fn into_get_info(self) -> Option<(StreamSocketGetInfoResponder)> {
61108        if let StreamSocketRequest::GetInfo { responder } = self { Some((responder)) } else { None }
61109    }
61110
61111    #[allow(irrefutable_let_patterns)]
61112    pub fn into_set_tcp_no_delay(self) -> Option<(bool, StreamSocketSetTcpNoDelayResponder)> {
61113        if let StreamSocketRequest::SetTcpNoDelay { value, responder } = self {
61114            Some((value, responder))
61115        } else {
61116            None
61117        }
61118    }
61119
61120    #[allow(irrefutable_let_patterns)]
61121    pub fn into_get_tcp_no_delay(self) -> Option<(StreamSocketGetTcpNoDelayResponder)> {
61122        if let StreamSocketRequest::GetTcpNoDelay { responder } = self {
61123            Some((responder))
61124        } else {
61125            None
61126        }
61127    }
61128
61129    #[allow(irrefutable_let_patterns)]
61130    pub fn into_set_tcp_max_segment(self) -> Option<(u32, StreamSocketSetTcpMaxSegmentResponder)> {
61131        if let StreamSocketRequest::SetTcpMaxSegment { value_bytes, responder } = self {
61132            Some((value_bytes, responder))
61133        } else {
61134            None
61135        }
61136    }
61137
61138    #[allow(irrefutable_let_patterns)]
61139    pub fn into_get_tcp_max_segment(self) -> Option<(StreamSocketGetTcpMaxSegmentResponder)> {
61140        if let StreamSocketRequest::GetTcpMaxSegment { responder } = self {
61141            Some((responder))
61142        } else {
61143            None
61144        }
61145    }
61146
61147    #[allow(irrefutable_let_patterns)]
61148    pub fn into_set_tcp_cork(self) -> Option<(bool, StreamSocketSetTcpCorkResponder)> {
61149        if let StreamSocketRequest::SetTcpCork { value, responder } = self {
61150            Some((value, responder))
61151        } else {
61152            None
61153        }
61154    }
61155
61156    #[allow(irrefutable_let_patterns)]
61157    pub fn into_get_tcp_cork(self) -> Option<(StreamSocketGetTcpCorkResponder)> {
61158        if let StreamSocketRequest::GetTcpCork { responder } = self {
61159            Some((responder))
61160        } else {
61161            None
61162        }
61163    }
61164
61165    #[allow(irrefutable_let_patterns)]
61166    pub fn into_set_tcp_keep_alive_idle(
61167        self,
61168    ) -> Option<(u32, StreamSocketSetTcpKeepAliveIdleResponder)> {
61169        if let StreamSocketRequest::SetTcpKeepAliveIdle { value_secs, responder } = self {
61170            Some((value_secs, responder))
61171        } else {
61172            None
61173        }
61174    }
61175
61176    #[allow(irrefutable_let_patterns)]
61177    pub fn into_get_tcp_keep_alive_idle(
61178        self,
61179    ) -> Option<(StreamSocketGetTcpKeepAliveIdleResponder)> {
61180        if let StreamSocketRequest::GetTcpKeepAliveIdle { responder } = self {
61181            Some((responder))
61182        } else {
61183            None
61184        }
61185    }
61186
61187    #[allow(irrefutable_let_patterns)]
61188    pub fn into_set_tcp_keep_alive_interval(
61189        self,
61190    ) -> Option<(u32, StreamSocketSetTcpKeepAliveIntervalResponder)> {
61191        if let StreamSocketRequest::SetTcpKeepAliveInterval { value_secs, responder } = self {
61192            Some((value_secs, responder))
61193        } else {
61194            None
61195        }
61196    }
61197
61198    #[allow(irrefutable_let_patterns)]
61199    pub fn into_get_tcp_keep_alive_interval(
61200        self,
61201    ) -> Option<(StreamSocketGetTcpKeepAliveIntervalResponder)> {
61202        if let StreamSocketRequest::GetTcpKeepAliveInterval { responder } = self {
61203            Some((responder))
61204        } else {
61205            None
61206        }
61207    }
61208
61209    #[allow(irrefutable_let_patterns)]
61210    pub fn into_set_tcp_keep_alive_count(
61211        self,
61212    ) -> Option<(u32, StreamSocketSetTcpKeepAliveCountResponder)> {
61213        if let StreamSocketRequest::SetTcpKeepAliveCount { value, responder } = self {
61214            Some((value, responder))
61215        } else {
61216            None
61217        }
61218    }
61219
61220    #[allow(irrefutable_let_patterns)]
61221    pub fn into_get_tcp_keep_alive_count(
61222        self,
61223    ) -> Option<(StreamSocketGetTcpKeepAliveCountResponder)> {
61224        if let StreamSocketRequest::GetTcpKeepAliveCount { responder } = self {
61225            Some((responder))
61226        } else {
61227            None
61228        }
61229    }
61230
61231    #[allow(irrefutable_let_patterns)]
61232    pub fn into_set_tcp_syn_count(self) -> Option<(u32, StreamSocketSetTcpSynCountResponder)> {
61233        if let StreamSocketRequest::SetTcpSynCount { value, responder } = self {
61234            Some((value, responder))
61235        } else {
61236            None
61237        }
61238    }
61239
61240    #[allow(irrefutable_let_patterns)]
61241    pub fn into_get_tcp_syn_count(self) -> Option<(StreamSocketGetTcpSynCountResponder)> {
61242        if let StreamSocketRequest::GetTcpSynCount { responder } = self {
61243            Some((responder))
61244        } else {
61245            None
61246        }
61247    }
61248
61249    #[allow(irrefutable_let_patterns)]
61250    pub fn into_set_tcp_linger(
61251        self,
61252    ) -> Option<(OptionalUint32, StreamSocketSetTcpLingerResponder)> {
61253        if let StreamSocketRequest::SetTcpLinger { value_secs, responder } = self {
61254            Some((value_secs, responder))
61255        } else {
61256            None
61257        }
61258    }
61259
61260    #[allow(irrefutable_let_patterns)]
61261    pub fn into_get_tcp_linger(self) -> Option<(StreamSocketGetTcpLingerResponder)> {
61262        if let StreamSocketRequest::GetTcpLinger { responder } = self {
61263            Some((responder))
61264        } else {
61265            None
61266        }
61267    }
61268
61269    #[allow(irrefutable_let_patterns)]
61270    pub fn into_set_tcp_defer_accept(
61271        self,
61272    ) -> Option<(u32, StreamSocketSetTcpDeferAcceptResponder)> {
61273        if let StreamSocketRequest::SetTcpDeferAccept { value_secs, responder } = self {
61274            Some((value_secs, responder))
61275        } else {
61276            None
61277        }
61278    }
61279
61280    #[allow(irrefutable_let_patterns)]
61281    pub fn into_get_tcp_defer_accept(self) -> Option<(StreamSocketGetTcpDeferAcceptResponder)> {
61282        if let StreamSocketRequest::GetTcpDeferAccept { responder } = self {
61283            Some((responder))
61284        } else {
61285            None
61286        }
61287    }
61288
61289    #[allow(irrefutable_let_patterns)]
61290    pub fn into_set_tcp_window_clamp(
61291        self,
61292    ) -> Option<(u32, StreamSocketSetTcpWindowClampResponder)> {
61293        if let StreamSocketRequest::SetTcpWindowClamp { value, responder } = self {
61294            Some((value, responder))
61295        } else {
61296            None
61297        }
61298    }
61299
61300    #[allow(irrefutable_let_patterns)]
61301    pub fn into_get_tcp_window_clamp(self) -> Option<(StreamSocketGetTcpWindowClampResponder)> {
61302        if let StreamSocketRequest::GetTcpWindowClamp { responder } = self {
61303            Some((responder))
61304        } else {
61305            None
61306        }
61307    }
61308
61309    #[allow(irrefutable_let_patterns)]
61310    pub fn into_get_tcp_info(self) -> Option<(StreamSocketGetTcpInfoResponder)> {
61311        if let StreamSocketRequest::GetTcpInfo { responder } = self {
61312            Some((responder))
61313        } else {
61314            None
61315        }
61316    }
61317
61318    #[allow(irrefutable_let_patterns)]
61319    pub fn into_set_tcp_quick_ack(self) -> Option<(bool, StreamSocketSetTcpQuickAckResponder)> {
61320        if let StreamSocketRequest::SetTcpQuickAck { value, responder } = self {
61321            Some((value, responder))
61322        } else {
61323            None
61324        }
61325    }
61326
61327    #[allow(irrefutable_let_patterns)]
61328    pub fn into_get_tcp_quick_ack(self) -> Option<(StreamSocketGetTcpQuickAckResponder)> {
61329        if let StreamSocketRequest::GetTcpQuickAck { responder } = self {
61330            Some((responder))
61331        } else {
61332            None
61333        }
61334    }
61335
61336    #[allow(irrefutable_let_patterns)]
61337    pub fn into_set_tcp_congestion(
61338        self,
61339    ) -> Option<(TcpCongestionControl, StreamSocketSetTcpCongestionResponder)> {
61340        if let StreamSocketRequest::SetTcpCongestion { value, responder } = self {
61341            Some((value, responder))
61342        } else {
61343            None
61344        }
61345    }
61346
61347    #[allow(irrefutable_let_patterns)]
61348    pub fn into_get_tcp_congestion(self) -> Option<(StreamSocketGetTcpCongestionResponder)> {
61349        if let StreamSocketRequest::GetTcpCongestion { responder } = self {
61350            Some((responder))
61351        } else {
61352            None
61353        }
61354    }
61355
61356    #[allow(irrefutable_let_patterns)]
61357    pub fn into_set_tcp_user_timeout(
61358        self,
61359    ) -> Option<(u32, StreamSocketSetTcpUserTimeoutResponder)> {
61360        if let StreamSocketRequest::SetTcpUserTimeout { value_millis, responder } = self {
61361            Some((value_millis, responder))
61362        } else {
61363            None
61364        }
61365    }
61366
61367    #[allow(irrefutable_let_patterns)]
61368    pub fn into_get_tcp_user_timeout(self) -> Option<(StreamSocketGetTcpUserTimeoutResponder)> {
61369        if let StreamSocketRequest::GetTcpUserTimeout { responder } = self {
61370            Some((responder))
61371        } else {
61372            None
61373        }
61374    }
61375
61376    /// Name of the method defined in FIDL
61377    pub fn method_name(&self) -> &'static str {
61378        match *self {
61379            StreamSocketRequest::Clone { .. } => "clone",
61380            StreamSocketRequest::Close { .. } => "close",
61381            StreamSocketRequest::Query { .. } => "query",
61382            StreamSocketRequest::SetReuseAddress { .. } => "set_reuse_address",
61383            StreamSocketRequest::GetReuseAddress { .. } => "get_reuse_address",
61384            StreamSocketRequest::GetError { .. } => "get_error",
61385            StreamSocketRequest::SetBroadcast { .. } => "set_broadcast",
61386            StreamSocketRequest::GetBroadcast { .. } => "get_broadcast",
61387            StreamSocketRequest::SetSendBuffer { .. } => "set_send_buffer",
61388            StreamSocketRequest::GetSendBuffer { .. } => "get_send_buffer",
61389            StreamSocketRequest::SetReceiveBuffer { .. } => "set_receive_buffer",
61390            StreamSocketRequest::GetReceiveBuffer { .. } => "get_receive_buffer",
61391            StreamSocketRequest::SetKeepAlive { .. } => "set_keep_alive",
61392            StreamSocketRequest::GetKeepAlive { .. } => "get_keep_alive",
61393            StreamSocketRequest::SetOutOfBandInline { .. } => "set_out_of_band_inline",
61394            StreamSocketRequest::GetOutOfBandInline { .. } => "get_out_of_band_inline",
61395            StreamSocketRequest::SetNoCheck { .. } => "set_no_check",
61396            StreamSocketRequest::GetNoCheck { .. } => "get_no_check",
61397            StreamSocketRequest::SetLinger { .. } => "set_linger",
61398            StreamSocketRequest::GetLinger { .. } => "get_linger",
61399            StreamSocketRequest::SetReusePort { .. } => "set_reuse_port",
61400            StreamSocketRequest::SetReusePortDeprecated { .. } => "set_reuse_port_deprecated",
61401            StreamSocketRequest::GetReusePort { .. } => "get_reuse_port",
61402            StreamSocketRequest::GetAcceptConn { .. } => "get_accept_conn",
61403            StreamSocketRequest::SetBindToDevice { .. } => "set_bind_to_device",
61404            StreamSocketRequest::GetBindToDevice { .. } => "get_bind_to_device",
61405            StreamSocketRequest::SetBindToInterfaceIndex { .. } => "set_bind_to_interface_index",
61406            StreamSocketRequest::GetBindToInterfaceIndex { .. } => "get_bind_to_interface_index",
61407            StreamSocketRequest::SetTimestamp { .. } => "set_timestamp",
61408            StreamSocketRequest::GetTimestamp { .. } => "get_timestamp",
61409            StreamSocketRequest::SetMark { .. } => "set_mark",
61410            StreamSocketRequest::GetMark { .. } => "get_mark",
61411            StreamSocketRequest::GetCookie { .. } => "get_cookie",
61412            StreamSocketRequest::Bind { .. } => "bind",
61413            StreamSocketRequest::Connect { .. } => "connect",
61414            StreamSocketRequest::Disconnect { .. } => "disconnect",
61415            StreamSocketRequest::GetSockName { .. } => "get_sock_name",
61416            StreamSocketRequest::GetPeerName { .. } => "get_peer_name",
61417            StreamSocketRequest::Shutdown { .. } => "shutdown",
61418            StreamSocketRequest::SetIpTypeOfService { .. } => "set_ip_type_of_service",
61419            StreamSocketRequest::GetIpTypeOfService { .. } => "get_ip_type_of_service",
61420            StreamSocketRequest::SetIpTtl { .. } => "set_ip_ttl",
61421            StreamSocketRequest::GetIpTtl { .. } => "get_ip_ttl",
61422            StreamSocketRequest::SetIpPacketInfo { .. } => "set_ip_packet_info",
61423            StreamSocketRequest::GetIpPacketInfo { .. } => "get_ip_packet_info",
61424            StreamSocketRequest::SetIpReceiveTypeOfService { .. } => {
61425                "set_ip_receive_type_of_service"
61426            }
61427            StreamSocketRequest::GetIpReceiveTypeOfService { .. } => {
61428                "get_ip_receive_type_of_service"
61429            }
61430            StreamSocketRequest::SetIpReceiveTtl { .. } => "set_ip_receive_ttl",
61431            StreamSocketRequest::GetIpReceiveTtl { .. } => "get_ip_receive_ttl",
61432            StreamSocketRequest::SetIpMulticastInterface { .. } => "set_ip_multicast_interface",
61433            StreamSocketRequest::GetIpMulticastInterface { .. } => "get_ip_multicast_interface",
61434            StreamSocketRequest::SetIpMulticastTtl { .. } => "set_ip_multicast_ttl",
61435            StreamSocketRequest::GetIpMulticastTtl { .. } => "get_ip_multicast_ttl",
61436            StreamSocketRequest::SetIpMulticastLoopback { .. } => "set_ip_multicast_loopback",
61437            StreamSocketRequest::GetIpMulticastLoopback { .. } => "get_ip_multicast_loopback",
61438            StreamSocketRequest::AddIpMembership { .. } => "add_ip_membership",
61439            StreamSocketRequest::DropIpMembership { .. } => "drop_ip_membership",
61440            StreamSocketRequest::SetIpTransparent { .. } => "set_ip_transparent",
61441            StreamSocketRequest::GetIpTransparent { .. } => "get_ip_transparent",
61442            StreamSocketRequest::SetIpReceiveOriginalDestinationAddress { .. } => {
61443                "set_ip_receive_original_destination_address"
61444            }
61445            StreamSocketRequest::GetIpReceiveOriginalDestinationAddress { .. } => {
61446                "get_ip_receive_original_destination_address"
61447            }
61448            StreamSocketRequest::AddIpv6Membership { .. } => "add_ipv6_membership",
61449            StreamSocketRequest::DropIpv6Membership { .. } => "drop_ipv6_membership",
61450            StreamSocketRequest::SetIpv6MulticastInterface { .. } => "set_ipv6_multicast_interface",
61451            StreamSocketRequest::GetIpv6MulticastInterface { .. } => "get_ipv6_multicast_interface",
61452            StreamSocketRequest::SetIpv6UnicastHops { .. } => "set_ipv6_unicast_hops",
61453            StreamSocketRequest::GetIpv6UnicastHops { .. } => "get_ipv6_unicast_hops",
61454            StreamSocketRequest::SetIpv6ReceiveHopLimit { .. } => "set_ipv6_receive_hop_limit",
61455            StreamSocketRequest::GetIpv6ReceiveHopLimit { .. } => "get_ipv6_receive_hop_limit",
61456            StreamSocketRequest::SetIpv6MulticastHops { .. } => "set_ipv6_multicast_hops",
61457            StreamSocketRequest::GetIpv6MulticastHops { .. } => "get_ipv6_multicast_hops",
61458            StreamSocketRequest::SetIpv6MulticastLoopback { .. } => "set_ipv6_multicast_loopback",
61459            StreamSocketRequest::GetIpv6MulticastLoopback { .. } => "get_ipv6_multicast_loopback",
61460            StreamSocketRequest::SetIpv6Only { .. } => "set_ipv6_only",
61461            StreamSocketRequest::GetIpv6Only { .. } => "get_ipv6_only",
61462            StreamSocketRequest::SetIpv6ReceiveTrafficClass { .. } => {
61463                "set_ipv6_receive_traffic_class"
61464            }
61465            StreamSocketRequest::GetIpv6ReceiveTrafficClass { .. } => {
61466                "get_ipv6_receive_traffic_class"
61467            }
61468            StreamSocketRequest::SetIpv6TrafficClass { .. } => "set_ipv6_traffic_class",
61469            StreamSocketRequest::GetIpv6TrafficClass { .. } => "get_ipv6_traffic_class",
61470            StreamSocketRequest::SetIpv6ReceivePacketInfo { .. } => "set_ipv6_receive_packet_info",
61471            StreamSocketRequest::GetIpv6ReceivePacketInfo { .. } => "get_ipv6_receive_packet_info",
61472            StreamSocketRequest::GetOriginalDestination { .. } => "get_original_destination",
61473            StreamSocketRequest::Describe { .. } => "describe",
61474            StreamSocketRequest::Listen { .. } => "listen",
61475            StreamSocketRequest::Accept { .. } => "accept",
61476            StreamSocketRequest::GetInfo { .. } => "get_info",
61477            StreamSocketRequest::SetTcpNoDelay { .. } => "set_tcp_no_delay",
61478            StreamSocketRequest::GetTcpNoDelay { .. } => "get_tcp_no_delay",
61479            StreamSocketRequest::SetTcpMaxSegment { .. } => "set_tcp_max_segment",
61480            StreamSocketRequest::GetTcpMaxSegment { .. } => "get_tcp_max_segment",
61481            StreamSocketRequest::SetTcpCork { .. } => "set_tcp_cork",
61482            StreamSocketRequest::GetTcpCork { .. } => "get_tcp_cork",
61483            StreamSocketRequest::SetTcpKeepAliveIdle { .. } => "set_tcp_keep_alive_idle",
61484            StreamSocketRequest::GetTcpKeepAliveIdle { .. } => "get_tcp_keep_alive_idle",
61485            StreamSocketRequest::SetTcpKeepAliveInterval { .. } => "set_tcp_keep_alive_interval",
61486            StreamSocketRequest::GetTcpKeepAliveInterval { .. } => "get_tcp_keep_alive_interval",
61487            StreamSocketRequest::SetTcpKeepAliveCount { .. } => "set_tcp_keep_alive_count",
61488            StreamSocketRequest::GetTcpKeepAliveCount { .. } => "get_tcp_keep_alive_count",
61489            StreamSocketRequest::SetTcpSynCount { .. } => "set_tcp_syn_count",
61490            StreamSocketRequest::GetTcpSynCount { .. } => "get_tcp_syn_count",
61491            StreamSocketRequest::SetTcpLinger { .. } => "set_tcp_linger",
61492            StreamSocketRequest::GetTcpLinger { .. } => "get_tcp_linger",
61493            StreamSocketRequest::SetTcpDeferAccept { .. } => "set_tcp_defer_accept",
61494            StreamSocketRequest::GetTcpDeferAccept { .. } => "get_tcp_defer_accept",
61495            StreamSocketRequest::SetTcpWindowClamp { .. } => "set_tcp_window_clamp",
61496            StreamSocketRequest::GetTcpWindowClamp { .. } => "get_tcp_window_clamp",
61497            StreamSocketRequest::GetTcpInfo { .. } => "get_tcp_info",
61498            StreamSocketRequest::SetTcpQuickAck { .. } => "set_tcp_quick_ack",
61499            StreamSocketRequest::GetTcpQuickAck { .. } => "get_tcp_quick_ack",
61500            StreamSocketRequest::SetTcpCongestion { .. } => "set_tcp_congestion",
61501            StreamSocketRequest::GetTcpCongestion { .. } => "get_tcp_congestion",
61502            StreamSocketRequest::SetTcpUserTimeout { .. } => "set_tcp_user_timeout",
61503            StreamSocketRequest::GetTcpUserTimeout { .. } => "get_tcp_user_timeout",
61504        }
61505    }
61506}
61507
61508#[derive(Debug, Clone)]
61509pub struct StreamSocketControlHandle {
61510    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
61511}
61512
61513impl fidl::endpoints::ControlHandle for StreamSocketControlHandle {
61514    fn shutdown(&self) {
61515        self.inner.shutdown()
61516    }
61517
61518    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
61519        self.inner.shutdown_with_epitaph(status)
61520    }
61521
61522    fn is_closed(&self) -> bool {
61523        self.inner.channel().is_closed()
61524    }
61525    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
61526        self.inner.channel().on_closed()
61527    }
61528
61529    #[cfg(target_os = "fuchsia")]
61530    fn signal_peer(
61531        &self,
61532        clear_mask: zx::Signals,
61533        set_mask: zx::Signals,
61534    ) -> Result<(), zx_status::Status> {
61535        use fidl::Peered;
61536        self.inner.channel().signal_peer(clear_mask, set_mask)
61537    }
61538}
61539
61540impl StreamSocketControlHandle {}
61541
61542#[must_use = "FIDL methods require a response to be sent"]
61543#[derive(Debug)]
61544pub struct StreamSocketCloseResponder {
61545    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61546    tx_id: u32,
61547}
61548
61549/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61550/// if the responder is dropped without sending a response, so that the client
61551/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61552impl std::ops::Drop for StreamSocketCloseResponder {
61553    fn drop(&mut self) {
61554        self.control_handle.shutdown();
61555        // Safety: drops once, never accessed again
61556        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61557    }
61558}
61559
61560impl fidl::endpoints::Responder for StreamSocketCloseResponder {
61561    type ControlHandle = StreamSocketControlHandle;
61562
61563    fn control_handle(&self) -> &StreamSocketControlHandle {
61564        &self.control_handle
61565    }
61566
61567    fn drop_without_shutdown(mut self) {
61568        // Safety: drops once, never accessed again due to mem::forget
61569        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61570        // Prevent Drop from running (which would shut down the channel)
61571        std::mem::forget(self);
61572    }
61573}
61574
61575impl StreamSocketCloseResponder {
61576    /// Sends a response to the FIDL transaction.
61577    ///
61578    /// Sets the channel to shutdown if an error occurs.
61579    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
61580        let _result = self.send_raw(result);
61581        if _result.is_err() {
61582            self.control_handle.shutdown();
61583        }
61584        self.drop_without_shutdown();
61585        _result
61586    }
61587
61588    /// Similar to "send" but does not shutdown the channel if an error occurs.
61589    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
61590        let _result = self.send_raw(result);
61591        self.drop_without_shutdown();
61592        _result
61593    }
61594
61595    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
61596        self.control_handle
61597            .inner
61598            .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>>(
61599                result,
61600                self.tx_id,
61601                0x5ac5d459ad7f657e,
61602                fidl::encoding::DynamicFlags::empty(),
61603            )
61604    }
61605}
61606
61607#[must_use = "FIDL methods require a response to be sent"]
61608#[derive(Debug)]
61609pub struct StreamSocketQueryResponder {
61610    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61611    tx_id: u32,
61612}
61613
61614/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61615/// if the responder is dropped without sending a response, so that the client
61616/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61617impl std::ops::Drop for StreamSocketQueryResponder {
61618    fn drop(&mut self) {
61619        self.control_handle.shutdown();
61620        // Safety: drops once, never accessed again
61621        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61622    }
61623}
61624
61625impl fidl::endpoints::Responder for StreamSocketQueryResponder {
61626    type ControlHandle = StreamSocketControlHandle;
61627
61628    fn control_handle(&self) -> &StreamSocketControlHandle {
61629        &self.control_handle
61630    }
61631
61632    fn drop_without_shutdown(mut self) {
61633        // Safety: drops once, never accessed again due to mem::forget
61634        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61635        // Prevent Drop from running (which would shut down the channel)
61636        std::mem::forget(self);
61637    }
61638}
61639
61640impl StreamSocketQueryResponder {
61641    /// Sends a response to the FIDL transaction.
61642    ///
61643    /// Sets the channel to shutdown if an error occurs.
61644    pub fn send(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
61645        let _result = self.send_raw(protocol);
61646        if _result.is_err() {
61647            self.control_handle.shutdown();
61648        }
61649        self.drop_without_shutdown();
61650        _result
61651    }
61652
61653    /// Similar to "send" but does not shutdown the channel if an error occurs.
61654    pub fn send_no_shutdown_on_err(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
61655        let _result = self.send_raw(protocol);
61656        self.drop_without_shutdown();
61657        _result
61658    }
61659
61660    fn send_raw(&self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
61661        self.control_handle.inner.send::<fidl_fuchsia_unknown::QueryableQueryResponse>(
61662            (protocol,),
61663            self.tx_id,
61664            0x2658edee9decfc06,
61665            fidl::encoding::DynamicFlags::empty(),
61666        )
61667    }
61668}
61669
61670#[must_use = "FIDL methods require a response to be sent"]
61671#[derive(Debug)]
61672pub struct StreamSocketSetReuseAddressResponder {
61673    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61674    tx_id: u32,
61675}
61676
61677/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61678/// if the responder is dropped without sending a response, so that the client
61679/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61680impl std::ops::Drop for StreamSocketSetReuseAddressResponder {
61681    fn drop(&mut self) {
61682        self.control_handle.shutdown();
61683        // Safety: drops once, never accessed again
61684        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61685    }
61686}
61687
61688impl fidl::endpoints::Responder for StreamSocketSetReuseAddressResponder {
61689    type ControlHandle = StreamSocketControlHandle;
61690
61691    fn control_handle(&self) -> &StreamSocketControlHandle {
61692        &self.control_handle
61693    }
61694
61695    fn drop_without_shutdown(mut self) {
61696        // Safety: drops once, never accessed again due to mem::forget
61697        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61698        // Prevent Drop from running (which would shut down the channel)
61699        std::mem::forget(self);
61700    }
61701}
61702
61703impl StreamSocketSetReuseAddressResponder {
61704    /// Sends a response to the FIDL transaction.
61705    ///
61706    /// Sets the channel to shutdown if an error occurs.
61707    pub fn send(
61708        self,
61709        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61710    ) -> Result<(), fidl::Error> {
61711        let _result = self.send_raw(result);
61712        if _result.is_err() {
61713            self.control_handle.shutdown();
61714        }
61715        self.drop_without_shutdown();
61716        _result
61717    }
61718
61719    /// Similar to "send" but does not shutdown the channel if an error occurs.
61720    pub fn send_no_shutdown_on_err(
61721        self,
61722        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61723    ) -> Result<(), fidl::Error> {
61724        let _result = self.send_raw(result);
61725        self.drop_without_shutdown();
61726        _result
61727    }
61728
61729    fn send_raw(
61730        &self,
61731        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61732    ) -> Result<(), fidl::Error> {
61733        self.control_handle.inner.send::<fidl::encoding::ResultType<
61734            fidl::encoding::EmptyStruct,
61735            fidl_fuchsia_posix::Errno,
61736        >>(
61737            result,
61738            self.tx_id,
61739            0x1fd74ee8b9a4a876,
61740            fidl::encoding::DynamicFlags::empty(),
61741        )
61742    }
61743}
61744
61745#[must_use = "FIDL methods require a response to be sent"]
61746#[derive(Debug)]
61747pub struct StreamSocketGetReuseAddressResponder {
61748    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61749    tx_id: u32,
61750}
61751
61752/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61753/// if the responder is dropped without sending a response, so that the client
61754/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61755impl std::ops::Drop for StreamSocketGetReuseAddressResponder {
61756    fn drop(&mut self) {
61757        self.control_handle.shutdown();
61758        // Safety: drops once, never accessed again
61759        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61760    }
61761}
61762
61763impl fidl::endpoints::Responder for StreamSocketGetReuseAddressResponder {
61764    type ControlHandle = StreamSocketControlHandle;
61765
61766    fn control_handle(&self) -> &StreamSocketControlHandle {
61767        &self.control_handle
61768    }
61769
61770    fn drop_without_shutdown(mut self) {
61771        // Safety: drops once, never accessed again due to mem::forget
61772        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61773        // Prevent Drop from running (which would shut down the channel)
61774        std::mem::forget(self);
61775    }
61776}
61777
61778impl StreamSocketGetReuseAddressResponder {
61779    /// Sends a response to the FIDL transaction.
61780    ///
61781    /// Sets the channel to shutdown if an error occurs.
61782    pub fn send(
61783        self,
61784        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61785    ) -> Result<(), fidl::Error> {
61786        let _result = self.send_raw(result);
61787        if _result.is_err() {
61788            self.control_handle.shutdown();
61789        }
61790        self.drop_without_shutdown();
61791        _result
61792    }
61793
61794    /// Similar to "send" but does not shutdown the channel if an error occurs.
61795    pub fn send_no_shutdown_on_err(
61796        self,
61797        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61798    ) -> Result<(), fidl::Error> {
61799        let _result = self.send_raw(result);
61800        self.drop_without_shutdown();
61801        _result
61802    }
61803
61804    fn send_raw(
61805        &self,
61806        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61807    ) -> Result<(), fidl::Error> {
61808        self.control_handle.inner.send::<fidl::encoding::ResultType<
61809            BaseSocketGetReuseAddressResponse,
61810            fidl_fuchsia_posix::Errno,
61811        >>(
61812            result.map(|value| (value,)),
61813            self.tx_id,
61814            0x67b7206b8d1bc0a5,
61815            fidl::encoding::DynamicFlags::empty(),
61816        )
61817    }
61818}
61819
61820#[must_use = "FIDL methods require a response to be sent"]
61821#[derive(Debug)]
61822pub struct StreamSocketGetErrorResponder {
61823    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61824    tx_id: u32,
61825}
61826
61827/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61828/// if the responder is dropped without sending a response, so that the client
61829/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61830impl std::ops::Drop for StreamSocketGetErrorResponder {
61831    fn drop(&mut self) {
61832        self.control_handle.shutdown();
61833        // Safety: drops once, never accessed again
61834        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61835    }
61836}
61837
61838impl fidl::endpoints::Responder for StreamSocketGetErrorResponder {
61839    type ControlHandle = StreamSocketControlHandle;
61840
61841    fn control_handle(&self) -> &StreamSocketControlHandle {
61842        &self.control_handle
61843    }
61844
61845    fn drop_without_shutdown(mut self) {
61846        // Safety: drops once, never accessed again due to mem::forget
61847        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61848        // Prevent Drop from running (which would shut down the channel)
61849        std::mem::forget(self);
61850    }
61851}
61852
61853impl StreamSocketGetErrorResponder {
61854    /// Sends a response to the FIDL transaction.
61855    ///
61856    /// Sets the channel to shutdown if an error occurs.
61857    pub fn send(
61858        self,
61859        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61860    ) -> Result<(), fidl::Error> {
61861        let _result = self.send_raw(result);
61862        if _result.is_err() {
61863            self.control_handle.shutdown();
61864        }
61865        self.drop_without_shutdown();
61866        _result
61867    }
61868
61869    /// Similar to "send" but does not shutdown the channel if an error occurs.
61870    pub fn send_no_shutdown_on_err(
61871        self,
61872        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61873    ) -> Result<(), fidl::Error> {
61874        let _result = self.send_raw(result);
61875        self.drop_without_shutdown();
61876        _result
61877    }
61878
61879    fn send_raw(
61880        &self,
61881        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61882    ) -> Result<(), fidl::Error> {
61883        self.control_handle.inner.send::<fidl::encoding::ResultType<
61884            fidl::encoding::EmptyStruct,
61885            fidl_fuchsia_posix::Errno,
61886        >>(
61887            result,
61888            self.tx_id,
61889            0x5aad39b33e5f6ebb,
61890            fidl::encoding::DynamicFlags::empty(),
61891        )
61892    }
61893}
61894
61895#[must_use = "FIDL methods require a response to be sent"]
61896#[derive(Debug)]
61897pub struct StreamSocketSetBroadcastResponder {
61898    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61899    tx_id: u32,
61900}
61901
61902/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61903/// if the responder is dropped without sending a response, so that the client
61904/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61905impl std::ops::Drop for StreamSocketSetBroadcastResponder {
61906    fn drop(&mut self) {
61907        self.control_handle.shutdown();
61908        // Safety: drops once, never accessed again
61909        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61910    }
61911}
61912
61913impl fidl::endpoints::Responder for StreamSocketSetBroadcastResponder {
61914    type ControlHandle = StreamSocketControlHandle;
61915
61916    fn control_handle(&self) -> &StreamSocketControlHandle {
61917        &self.control_handle
61918    }
61919
61920    fn drop_without_shutdown(mut self) {
61921        // Safety: drops once, never accessed again due to mem::forget
61922        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61923        // Prevent Drop from running (which would shut down the channel)
61924        std::mem::forget(self);
61925    }
61926}
61927
61928impl StreamSocketSetBroadcastResponder {
61929    /// Sends a response to the FIDL transaction.
61930    ///
61931    /// Sets the channel to shutdown if an error occurs.
61932    pub fn send(
61933        self,
61934        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61935    ) -> Result<(), fidl::Error> {
61936        let _result = self.send_raw(result);
61937        if _result.is_err() {
61938            self.control_handle.shutdown();
61939        }
61940        self.drop_without_shutdown();
61941        _result
61942    }
61943
61944    /// Similar to "send" but does not shutdown the channel if an error occurs.
61945    pub fn send_no_shutdown_on_err(
61946        self,
61947        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61948    ) -> Result<(), fidl::Error> {
61949        let _result = self.send_raw(result);
61950        self.drop_without_shutdown();
61951        _result
61952    }
61953
61954    fn send_raw(
61955        &self,
61956        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61957    ) -> Result<(), fidl::Error> {
61958        self.control_handle.inner.send::<fidl::encoding::ResultType<
61959            fidl::encoding::EmptyStruct,
61960            fidl_fuchsia_posix::Errno,
61961        >>(
61962            result,
61963            self.tx_id,
61964            0x6023e081ce3cd947,
61965            fidl::encoding::DynamicFlags::empty(),
61966        )
61967    }
61968}
61969
61970#[must_use = "FIDL methods require a response to be sent"]
61971#[derive(Debug)]
61972pub struct StreamSocketGetBroadcastResponder {
61973    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61974    tx_id: u32,
61975}
61976
61977/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61978/// if the responder is dropped without sending a response, so that the client
61979/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61980impl std::ops::Drop for StreamSocketGetBroadcastResponder {
61981    fn drop(&mut self) {
61982        self.control_handle.shutdown();
61983        // Safety: drops once, never accessed again
61984        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61985    }
61986}
61987
61988impl fidl::endpoints::Responder for StreamSocketGetBroadcastResponder {
61989    type ControlHandle = StreamSocketControlHandle;
61990
61991    fn control_handle(&self) -> &StreamSocketControlHandle {
61992        &self.control_handle
61993    }
61994
61995    fn drop_without_shutdown(mut self) {
61996        // Safety: drops once, never accessed again due to mem::forget
61997        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61998        // Prevent Drop from running (which would shut down the channel)
61999        std::mem::forget(self);
62000    }
62001}
62002
62003impl StreamSocketGetBroadcastResponder {
62004    /// Sends a response to the FIDL transaction.
62005    ///
62006    /// Sets the channel to shutdown if an error occurs.
62007    pub fn send(
62008        self,
62009        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
62010    ) -> Result<(), fidl::Error> {
62011        let _result = self.send_raw(result);
62012        if _result.is_err() {
62013            self.control_handle.shutdown();
62014        }
62015        self.drop_without_shutdown();
62016        _result
62017    }
62018
62019    /// Similar to "send" but does not shutdown the channel if an error occurs.
62020    pub fn send_no_shutdown_on_err(
62021        self,
62022        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
62023    ) -> Result<(), fidl::Error> {
62024        let _result = self.send_raw(result);
62025        self.drop_without_shutdown();
62026        _result
62027    }
62028
62029    fn send_raw(
62030        &self,
62031        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
62032    ) -> Result<(), fidl::Error> {
62033        self.control_handle.inner.send::<fidl::encoding::ResultType<
62034            BaseSocketGetBroadcastResponse,
62035            fidl_fuchsia_posix::Errno,
62036        >>(
62037            result.map(|value| (value,)),
62038            self.tx_id,
62039            0x68796fc556f9780d,
62040            fidl::encoding::DynamicFlags::empty(),
62041        )
62042    }
62043}
62044
62045#[must_use = "FIDL methods require a response to be sent"]
62046#[derive(Debug)]
62047pub struct StreamSocketSetSendBufferResponder {
62048    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62049    tx_id: u32,
62050}
62051
62052/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62053/// if the responder is dropped without sending a response, so that the client
62054/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62055impl std::ops::Drop for StreamSocketSetSendBufferResponder {
62056    fn drop(&mut self) {
62057        self.control_handle.shutdown();
62058        // Safety: drops once, never accessed again
62059        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62060    }
62061}
62062
62063impl fidl::endpoints::Responder for StreamSocketSetSendBufferResponder {
62064    type ControlHandle = StreamSocketControlHandle;
62065
62066    fn control_handle(&self) -> &StreamSocketControlHandle {
62067        &self.control_handle
62068    }
62069
62070    fn drop_without_shutdown(mut self) {
62071        // Safety: drops once, never accessed again due to mem::forget
62072        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62073        // Prevent Drop from running (which would shut down the channel)
62074        std::mem::forget(self);
62075    }
62076}
62077
62078impl StreamSocketSetSendBufferResponder {
62079    /// Sends a response to the FIDL transaction.
62080    ///
62081    /// Sets the channel to shutdown if an error occurs.
62082    pub fn send(
62083        self,
62084        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62085    ) -> Result<(), fidl::Error> {
62086        let _result = self.send_raw(result);
62087        if _result.is_err() {
62088            self.control_handle.shutdown();
62089        }
62090        self.drop_without_shutdown();
62091        _result
62092    }
62093
62094    /// Similar to "send" but does not shutdown the channel if an error occurs.
62095    pub fn send_no_shutdown_on_err(
62096        self,
62097        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62098    ) -> Result<(), fidl::Error> {
62099        let _result = self.send_raw(result);
62100        self.drop_without_shutdown();
62101        _result
62102    }
62103
62104    fn send_raw(
62105        &self,
62106        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62107    ) -> Result<(), fidl::Error> {
62108        self.control_handle.inner.send::<fidl::encoding::ResultType<
62109            fidl::encoding::EmptyStruct,
62110            fidl_fuchsia_posix::Errno,
62111        >>(
62112            result,
62113            self.tx_id,
62114            0x756eac32d73a7a70,
62115            fidl::encoding::DynamicFlags::empty(),
62116        )
62117    }
62118}
62119
62120#[must_use = "FIDL methods require a response to be sent"]
62121#[derive(Debug)]
62122pub struct StreamSocketGetSendBufferResponder {
62123    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62124    tx_id: u32,
62125}
62126
62127/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62128/// if the responder is dropped without sending a response, so that the client
62129/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62130impl std::ops::Drop for StreamSocketGetSendBufferResponder {
62131    fn drop(&mut self) {
62132        self.control_handle.shutdown();
62133        // Safety: drops once, never accessed again
62134        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62135    }
62136}
62137
62138impl fidl::endpoints::Responder for StreamSocketGetSendBufferResponder {
62139    type ControlHandle = StreamSocketControlHandle;
62140
62141    fn control_handle(&self) -> &StreamSocketControlHandle {
62142        &self.control_handle
62143    }
62144
62145    fn drop_without_shutdown(mut self) {
62146        // Safety: drops once, never accessed again due to mem::forget
62147        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62148        // Prevent Drop from running (which would shut down the channel)
62149        std::mem::forget(self);
62150    }
62151}
62152
62153impl StreamSocketGetSendBufferResponder {
62154    /// Sends a response to the FIDL transaction.
62155    ///
62156    /// Sets the channel to shutdown if an error occurs.
62157    pub fn send(
62158        self,
62159        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
62160    ) -> Result<(), fidl::Error> {
62161        let _result = self.send_raw(result);
62162        if _result.is_err() {
62163            self.control_handle.shutdown();
62164        }
62165        self.drop_without_shutdown();
62166        _result
62167    }
62168
62169    /// Similar to "send" but does not shutdown the channel if an error occurs.
62170    pub fn send_no_shutdown_on_err(
62171        self,
62172        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
62173    ) -> Result<(), fidl::Error> {
62174        let _result = self.send_raw(result);
62175        self.drop_without_shutdown();
62176        _result
62177    }
62178
62179    fn send_raw(
62180        &self,
62181        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
62182    ) -> Result<(), fidl::Error> {
62183        self.control_handle.inner.send::<fidl::encoding::ResultType<
62184            BaseSocketGetSendBufferResponse,
62185            fidl_fuchsia_posix::Errno,
62186        >>(
62187            result.map(|value_bytes| (value_bytes,)),
62188            self.tx_id,
62189            0x78a52fd9c7b2410b,
62190            fidl::encoding::DynamicFlags::empty(),
62191        )
62192    }
62193}
62194
62195#[must_use = "FIDL methods require a response to be sent"]
62196#[derive(Debug)]
62197pub struct StreamSocketSetReceiveBufferResponder {
62198    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62199    tx_id: u32,
62200}
62201
62202/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62203/// if the responder is dropped without sending a response, so that the client
62204/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62205impl std::ops::Drop for StreamSocketSetReceiveBufferResponder {
62206    fn drop(&mut self) {
62207        self.control_handle.shutdown();
62208        // Safety: drops once, never accessed again
62209        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62210    }
62211}
62212
62213impl fidl::endpoints::Responder for StreamSocketSetReceiveBufferResponder {
62214    type ControlHandle = StreamSocketControlHandle;
62215
62216    fn control_handle(&self) -> &StreamSocketControlHandle {
62217        &self.control_handle
62218    }
62219
62220    fn drop_without_shutdown(mut self) {
62221        // Safety: drops once, never accessed again due to mem::forget
62222        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62223        // Prevent Drop from running (which would shut down the channel)
62224        std::mem::forget(self);
62225    }
62226}
62227
62228impl StreamSocketSetReceiveBufferResponder {
62229    /// Sends a response to the FIDL transaction.
62230    ///
62231    /// Sets the channel to shutdown if an error occurs.
62232    pub fn send(
62233        self,
62234        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62235    ) -> Result<(), fidl::Error> {
62236        let _result = self.send_raw(result);
62237        if _result.is_err() {
62238            self.control_handle.shutdown();
62239        }
62240        self.drop_without_shutdown();
62241        _result
62242    }
62243
62244    /// Similar to "send" but does not shutdown the channel if an error occurs.
62245    pub fn send_no_shutdown_on_err(
62246        self,
62247        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62248    ) -> Result<(), fidl::Error> {
62249        let _result = self.send_raw(result);
62250        self.drop_without_shutdown();
62251        _result
62252    }
62253
62254    fn send_raw(
62255        &self,
62256        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62257    ) -> Result<(), fidl::Error> {
62258        self.control_handle.inner.send::<fidl::encoding::ResultType<
62259            fidl::encoding::EmptyStruct,
62260            fidl_fuchsia_posix::Errno,
62261        >>(
62262            result,
62263            self.tx_id,
62264            0x6b0cf2f1919c7001,
62265            fidl::encoding::DynamicFlags::empty(),
62266        )
62267    }
62268}
62269
62270#[must_use = "FIDL methods require a response to be sent"]
62271#[derive(Debug)]
62272pub struct StreamSocketGetReceiveBufferResponder {
62273    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62274    tx_id: u32,
62275}
62276
62277/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62278/// if the responder is dropped without sending a response, so that the client
62279/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62280impl std::ops::Drop for StreamSocketGetReceiveBufferResponder {
62281    fn drop(&mut self) {
62282        self.control_handle.shutdown();
62283        // Safety: drops once, never accessed again
62284        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62285    }
62286}
62287
62288impl fidl::endpoints::Responder for StreamSocketGetReceiveBufferResponder {
62289    type ControlHandle = StreamSocketControlHandle;
62290
62291    fn control_handle(&self) -> &StreamSocketControlHandle {
62292        &self.control_handle
62293    }
62294
62295    fn drop_without_shutdown(mut self) {
62296        // Safety: drops once, never accessed again due to mem::forget
62297        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62298        // Prevent Drop from running (which would shut down the channel)
62299        std::mem::forget(self);
62300    }
62301}
62302
62303impl StreamSocketGetReceiveBufferResponder {
62304    /// Sends a response to the FIDL transaction.
62305    ///
62306    /// Sets the channel to shutdown if an error occurs.
62307    pub fn send(
62308        self,
62309        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
62310    ) -> Result<(), fidl::Error> {
62311        let _result = self.send_raw(result);
62312        if _result.is_err() {
62313            self.control_handle.shutdown();
62314        }
62315        self.drop_without_shutdown();
62316        _result
62317    }
62318
62319    /// Similar to "send" but does not shutdown the channel if an error occurs.
62320    pub fn send_no_shutdown_on_err(
62321        self,
62322        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
62323    ) -> Result<(), fidl::Error> {
62324        let _result = self.send_raw(result);
62325        self.drop_without_shutdown();
62326        _result
62327    }
62328
62329    fn send_raw(
62330        &self,
62331        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
62332    ) -> Result<(), fidl::Error> {
62333        self.control_handle.inner.send::<fidl::encoding::ResultType<
62334            BaseSocketGetReceiveBufferResponse,
62335            fidl_fuchsia_posix::Errno,
62336        >>(
62337            result.map(|value_bytes| (value_bytes,)),
62338            self.tx_id,
62339            0x14c1a4b64f709e5c,
62340            fidl::encoding::DynamicFlags::empty(),
62341        )
62342    }
62343}
62344
62345#[must_use = "FIDL methods require a response to be sent"]
62346#[derive(Debug)]
62347pub struct StreamSocketSetKeepAliveResponder {
62348    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62349    tx_id: u32,
62350}
62351
62352/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62353/// if the responder is dropped without sending a response, so that the client
62354/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62355impl std::ops::Drop for StreamSocketSetKeepAliveResponder {
62356    fn drop(&mut self) {
62357        self.control_handle.shutdown();
62358        // Safety: drops once, never accessed again
62359        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62360    }
62361}
62362
62363impl fidl::endpoints::Responder for StreamSocketSetKeepAliveResponder {
62364    type ControlHandle = StreamSocketControlHandle;
62365
62366    fn control_handle(&self) -> &StreamSocketControlHandle {
62367        &self.control_handle
62368    }
62369
62370    fn drop_without_shutdown(mut self) {
62371        // Safety: drops once, never accessed again due to mem::forget
62372        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62373        // Prevent Drop from running (which would shut down the channel)
62374        std::mem::forget(self);
62375    }
62376}
62377
62378impl StreamSocketSetKeepAliveResponder {
62379    /// Sends a response to the FIDL transaction.
62380    ///
62381    /// Sets the channel to shutdown if an error occurs.
62382    pub fn send(
62383        self,
62384        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62385    ) -> Result<(), fidl::Error> {
62386        let _result = self.send_raw(result);
62387        if _result.is_err() {
62388            self.control_handle.shutdown();
62389        }
62390        self.drop_without_shutdown();
62391        _result
62392    }
62393
62394    /// Similar to "send" but does not shutdown the channel if an error occurs.
62395    pub fn send_no_shutdown_on_err(
62396        self,
62397        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62398    ) -> Result<(), fidl::Error> {
62399        let _result = self.send_raw(result);
62400        self.drop_without_shutdown();
62401        _result
62402    }
62403
62404    fn send_raw(
62405        &self,
62406        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62407    ) -> Result<(), fidl::Error> {
62408        self.control_handle.inner.send::<fidl::encoding::ResultType<
62409            fidl::encoding::EmptyStruct,
62410            fidl_fuchsia_posix::Errno,
62411        >>(
62412            result,
62413            self.tx_id,
62414            0x572df8f0b920d2c7,
62415            fidl::encoding::DynamicFlags::empty(),
62416        )
62417    }
62418}
62419
62420#[must_use = "FIDL methods require a response to be sent"]
62421#[derive(Debug)]
62422pub struct StreamSocketGetKeepAliveResponder {
62423    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62424    tx_id: u32,
62425}
62426
62427/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62428/// if the responder is dropped without sending a response, so that the client
62429/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62430impl std::ops::Drop for StreamSocketGetKeepAliveResponder {
62431    fn drop(&mut self) {
62432        self.control_handle.shutdown();
62433        // Safety: drops once, never accessed again
62434        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62435    }
62436}
62437
62438impl fidl::endpoints::Responder for StreamSocketGetKeepAliveResponder {
62439    type ControlHandle = StreamSocketControlHandle;
62440
62441    fn control_handle(&self) -> &StreamSocketControlHandle {
62442        &self.control_handle
62443    }
62444
62445    fn drop_without_shutdown(mut self) {
62446        // Safety: drops once, never accessed again due to mem::forget
62447        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62448        // Prevent Drop from running (which would shut down the channel)
62449        std::mem::forget(self);
62450    }
62451}
62452
62453impl StreamSocketGetKeepAliveResponder {
62454    /// Sends a response to the FIDL transaction.
62455    ///
62456    /// Sets the channel to shutdown if an error occurs.
62457    pub fn send(
62458        self,
62459        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
62460    ) -> Result<(), fidl::Error> {
62461        let _result = self.send_raw(result);
62462        if _result.is_err() {
62463            self.control_handle.shutdown();
62464        }
62465        self.drop_without_shutdown();
62466        _result
62467    }
62468
62469    /// Similar to "send" but does not shutdown the channel if an error occurs.
62470    pub fn send_no_shutdown_on_err(
62471        self,
62472        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
62473    ) -> Result<(), fidl::Error> {
62474        let _result = self.send_raw(result);
62475        self.drop_without_shutdown();
62476        _result
62477    }
62478
62479    fn send_raw(
62480        &self,
62481        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
62482    ) -> Result<(), fidl::Error> {
62483        self.control_handle.inner.send::<fidl::encoding::ResultType<
62484            BaseSocketGetKeepAliveResponse,
62485            fidl_fuchsia_posix::Errno,
62486        >>(
62487            result.map(|value| (value,)),
62488            self.tx_id,
62489            0x2dd29d3215f2c9d2,
62490            fidl::encoding::DynamicFlags::empty(),
62491        )
62492    }
62493}
62494
62495#[must_use = "FIDL methods require a response to be sent"]
62496#[derive(Debug)]
62497pub struct StreamSocketSetOutOfBandInlineResponder {
62498    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62499    tx_id: u32,
62500}
62501
62502/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62503/// if the responder is dropped without sending a response, so that the client
62504/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62505impl std::ops::Drop for StreamSocketSetOutOfBandInlineResponder {
62506    fn drop(&mut self) {
62507        self.control_handle.shutdown();
62508        // Safety: drops once, never accessed again
62509        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62510    }
62511}
62512
62513impl fidl::endpoints::Responder for StreamSocketSetOutOfBandInlineResponder {
62514    type ControlHandle = StreamSocketControlHandle;
62515
62516    fn control_handle(&self) -> &StreamSocketControlHandle {
62517        &self.control_handle
62518    }
62519
62520    fn drop_without_shutdown(mut self) {
62521        // Safety: drops once, never accessed again due to mem::forget
62522        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62523        // Prevent Drop from running (which would shut down the channel)
62524        std::mem::forget(self);
62525    }
62526}
62527
62528impl StreamSocketSetOutOfBandInlineResponder {
62529    /// Sends a response to the FIDL transaction.
62530    ///
62531    /// Sets the channel to shutdown if an error occurs.
62532    pub fn send(
62533        self,
62534        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62535    ) -> Result<(), fidl::Error> {
62536        let _result = self.send_raw(result);
62537        if _result.is_err() {
62538            self.control_handle.shutdown();
62539        }
62540        self.drop_without_shutdown();
62541        _result
62542    }
62543
62544    /// Similar to "send" but does not shutdown the channel if an error occurs.
62545    pub fn send_no_shutdown_on_err(
62546        self,
62547        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62548    ) -> Result<(), fidl::Error> {
62549        let _result = self.send_raw(result);
62550        self.drop_without_shutdown();
62551        _result
62552    }
62553
62554    fn send_raw(
62555        &self,
62556        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62557    ) -> Result<(), fidl::Error> {
62558        self.control_handle.inner.send::<fidl::encoding::ResultType<
62559            fidl::encoding::EmptyStruct,
62560            fidl_fuchsia_posix::Errno,
62561        >>(
62562            result,
62563            self.tx_id,
62564            0x3ecb49968bee439,
62565            fidl::encoding::DynamicFlags::empty(),
62566        )
62567    }
62568}
62569
62570#[must_use = "FIDL methods require a response to be sent"]
62571#[derive(Debug)]
62572pub struct StreamSocketGetOutOfBandInlineResponder {
62573    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62574    tx_id: u32,
62575}
62576
62577/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62578/// if the responder is dropped without sending a response, so that the client
62579/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62580impl std::ops::Drop for StreamSocketGetOutOfBandInlineResponder {
62581    fn drop(&mut self) {
62582        self.control_handle.shutdown();
62583        // Safety: drops once, never accessed again
62584        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62585    }
62586}
62587
62588impl fidl::endpoints::Responder for StreamSocketGetOutOfBandInlineResponder {
62589    type ControlHandle = StreamSocketControlHandle;
62590
62591    fn control_handle(&self) -> &StreamSocketControlHandle {
62592        &self.control_handle
62593    }
62594
62595    fn drop_without_shutdown(mut self) {
62596        // Safety: drops once, never accessed again due to mem::forget
62597        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62598        // Prevent Drop from running (which would shut down the channel)
62599        std::mem::forget(self);
62600    }
62601}
62602
62603impl StreamSocketGetOutOfBandInlineResponder {
62604    /// Sends a response to the FIDL transaction.
62605    ///
62606    /// Sets the channel to shutdown if an error occurs.
62607    pub fn send(
62608        self,
62609        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
62610    ) -> Result<(), fidl::Error> {
62611        let _result = self.send_raw(result);
62612        if _result.is_err() {
62613            self.control_handle.shutdown();
62614        }
62615        self.drop_without_shutdown();
62616        _result
62617    }
62618
62619    /// Similar to "send" but does not shutdown the channel if an error occurs.
62620    pub fn send_no_shutdown_on_err(
62621        self,
62622        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
62623    ) -> Result<(), fidl::Error> {
62624        let _result = self.send_raw(result);
62625        self.drop_without_shutdown();
62626        _result
62627    }
62628
62629    fn send_raw(
62630        &self,
62631        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
62632    ) -> Result<(), fidl::Error> {
62633        self.control_handle.inner.send::<fidl::encoding::ResultType<
62634            BaseSocketGetOutOfBandInlineResponse,
62635            fidl_fuchsia_posix::Errno,
62636        >>(
62637            result.map(|value| (value,)),
62638            self.tx_id,
62639            0x348c1ab3aeca1745,
62640            fidl::encoding::DynamicFlags::empty(),
62641        )
62642    }
62643}
62644
62645#[must_use = "FIDL methods require a response to be sent"]
62646#[derive(Debug)]
62647pub struct StreamSocketSetNoCheckResponder {
62648    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62649    tx_id: u32,
62650}
62651
62652/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62653/// if the responder is dropped without sending a response, so that the client
62654/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62655impl std::ops::Drop for StreamSocketSetNoCheckResponder {
62656    fn drop(&mut self) {
62657        self.control_handle.shutdown();
62658        // Safety: drops once, never accessed again
62659        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62660    }
62661}
62662
62663impl fidl::endpoints::Responder for StreamSocketSetNoCheckResponder {
62664    type ControlHandle = StreamSocketControlHandle;
62665
62666    fn control_handle(&self) -> &StreamSocketControlHandle {
62667        &self.control_handle
62668    }
62669
62670    fn drop_without_shutdown(mut self) {
62671        // Safety: drops once, never accessed again due to mem::forget
62672        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62673        // Prevent Drop from running (which would shut down the channel)
62674        std::mem::forget(self);
62675    }
62676}
62677
62678impl StreamSocketSetNoCheckResponder {
62679    /// Sends a response to the FIDL transaction.
62680    ///
62681    /// Sets the channel to shutdown if an error occurs.
62682    pub fn send(
62683        self,
62684        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62685    ) -> Result<(), fidl::Error> {
62686        let _result = self.send_raw(result);
62687        if _result.is_err() {
62688            self.control_handle.shutdown();
62689        }
62690        self.drop_without_shutdown();
62691        _result
62692    }
62693
62694    /// Similar to "send" but does not shutdown the channel if an error occurs.
62695    pub fn send_no_shutdown_on_err(
62696        self,
62697        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62698    ) -> Result<(), fidl::Error> {
62699        let _result = self.send_raw(result);
62700        self.drop_without_shutdown();
62701        _result
62702    }
62703
62704    fn send_raw(
62705        &self,
62706        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62707    ) -> Result<(), fidl::Error> {
62708        self.control_handle.inner.send::<fidl::encoding::ResultType<
62709            fidl::encoding::EmptyStruct,
62710            fidl_fuchsia_posix::Errno,
62711        >>(
62712            result,
62713            self.tx_id,
62714            0x6bbf00c53a4c78c2,
62715            fidl::encoding::DynamicFlags::empty(),
62716        )
62717    }
62718}
62719
62720#[must_use = "FIDL methods require a response to be sent"]
62721#[derive(Debug)]
62722pub struct StreamSocketGetNoCheckResponder {
62723    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62724    tx_id: u32,
62725}
62726
62727/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62728/// if the responder is dropped without sending a response, so that the client
62729/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62730impl std::ops::Drop for StreamSocketGetNoCheckResponder {
62731    fn drop(&mut self) {
62732        self.control_handle.shutdown();
62733        // Safety: drops once, never accessed again
62734        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62735    }
62736}
62737
62738impl fidl::endpoints::Responder for StreamSocketGetNoCheckResponder {
62739    type ControlHandle = StreamSocketControlHandle;
62740
62741    fn control_handle(&self) -> &StreamSocketControlHandle {
62742        &self.control_handle
62743    }
62744
62745    fn drop_without_shutdown(mut self) {
62746        // Safety: drops once, never accessed again due to mem::forget
62747        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62748        // Prevent Drop from running (which would shut down the channel)
62749        std::mem::forget(self);
62750    }
62751}
62752
62753impl StreamSocketGetNoCheckResponder {
62754    /// Sends a response to the FIDL transaction.
62755    ///
62756    /// Sets the channel to shutdown if an error occurs.
62757    pub fn send(
62758        self,
62759        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
62760    ) -> Result<(), fidl::Error> {
62761        let _result = self.send_raw(result);
62762        if _result.is_err() {
62763            self.control_handle.shutdown();
62764        }
62765        self.drop_without_shutdown();
62766        _result
62767    }
62768
62769    /// Similar to "send" but does not shutdown the channel if an error occurs.
62770    pub fn send_no_shutdown_on_err(
62771        self,
62772        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
62773    ) -> Result<(), fidl::Error> {
62774        let _result = self.send_raw(result);
62775        self.drop_without_shutdown();
62776        _result
62777    }
62778
62779    fn send_raw(
62780        &self,
62781        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
62782    ) -> Result<(), fidl::Error> {
62783        self.control_handle.inner.send::<fidl::encoding::ResultType<
62784            BaseSocketGetNoCheckResponse,
62785            fidl_fuchsia_posix::Errno,
62786        >>(
62787            result.map(|value| (value,)),
62788            self.tx_id,
62789            0x2cd4249286417694,
62790            fidl::encoding::DynamicFlags::empty(),
62791        )
62792    }
62793}
62794
62795#[must_use = "FIDL methods require a response to be sent"]
62796#[derive(Debug)]
62797pub struct StreamSocketSetLingerResponder {
62798    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62799    tx_id: u32,
62800}
62801
62802/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62803/// if the responder is dropped without sending a response, so that the client
62804/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62805impl std::ops::Drop for StreamSocketSetLingerResponder {
62806    fn drop(&mut self) {
62807        self.control_handle.shutdown();
62808        // Safety: drops once, never accessed again
62809        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62810    }
62811}
62812
62813impl fidl::endpoints::Responder for StreamSocketSetLingerResponder {
62814    type ControlHandle = StreamSocketControlHandle;
62815
62816    fn control_handle(&self) -> &StreamSocketControlHandle {
62817        &self.control_handle
62818    }
62819
62820    fn drop_without_shutdown(mut self) {
62821        // Safety: drops once, never accessed again due to mem::forget
62822        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62823        // Prevent Drop from running (which would shut down the channel)
62824        std::mem::forget(self);
62825    }
62826}
62827
62828impl StreamSocketSetLingerResponder {
62829    /// Sends a response to the FIDL transaction.
62830    ///
62831    /// Sets the channel to shutdown if an error occurs.
62832    pub fn send(
62833        self,
62834        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62835    ) -> Result<(), fidl::Error> {
62836        let _result = self.send_raw(result);
62837        if _result.is_err() {
62838            self.control_handle.shutdown();
62839        }
62840        self.drop_without_shutdown();
62841        _result
62842    }
62843
62844    /// Similar to "send" but does not shutdown the channel if an error occurs.
62845    pub fn send_no_shutdown_on_err(
62846        self,
62847        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62848    ) -> Result<(), fidl::Error> {
62849        let _result = self.send_raw(result);
62850        self.drop_without_shutdown();
62851        _result
62852    }
62853
62854    fn send_raw(
62855        &self,
62856        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62857    ) -> Result<(), fidl::Error> {
62858        self.control_handle.inner.send::<fidl::encoding::ResultType<
62859            fidl::encoding::EmptyStruct,
62860            fidl_fuchsia_posix::Errno,
62861        >>(
62862            result,
62863            self.tx_id,
62864            0x45386351246e998e,
62865            fidl::encoding::DynamicFlags::empty(),
62866        )
62867    }
62868}
62869
62870#[must_use = "FIDL methods require a response to be sent"]
62871#[derive(Debug)]
62872pub struct StreamSocketGetLingerResponder {
62873    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62874    tx_id: u32,
62875}
62876
62877/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62878/// if the responder is dropped without sending a response, so that the client
62879/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62880impl std::ops::Drop for StreamSocketGetLingerResponder {
62881    fn drop(&mut self) {
62882        self.control_handle.shutdown();
62883        // Safety: drops once, never accessed again
62884        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62885    }
62886}
62887
62888impl fidl::endpoints::Responder for StreamSocketGetLingerResponder {
62889    type ControlHandle = StreamSocketControlHandle;
62890
62891    fn control_handle(&self) -> &StreamSocketControlHandle {
62892        &self.control_handle
62893    }
62894
62895    fn drop_without_shutdown(mut self) {
62896        // Safety: drops once, never accessed again due to mem::forget
62897        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62898        // Prevent Drop from running (which would shut down the channel)
62899        std::mem::forget(self);
62900    }
62901}
62902
62903impl StreamSocketGetLingerResponder {
62904    /// Sends a response to the FIDL transaction.
62905    ///
62906    /// Sets the channel to shutdown if an error occurs.
62907    pub fn send(
62908        self,
62909        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
62910    ) -> Result<(), fidl::Error> {
62911        let _result = self.send_raw(result);
62912        if _result.is_err() {
62913            self.control_handle.shutdown();
62914        }
62915        self.drop_without_shutdown();
62916        _result
62917    }
62918
62919    /// Similar to "send" but does not shutdown the channel if an error occurs.
62920    pub fn send_no_shutdown_on_err(
62921        self,
62922        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
62923    ) -> Result<(), fidl::Error> {
62924        let _result = self.send_raw(result);
62925        self.drop_without_shutdown();
62926        _result
62927    }
62928
62929    fn send_raw(
62930        &self,
62931        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
62932    ) -> Result<(), fidl::Error> {
62933        self.control_handle.inner.send::<fidl::encoding::ResultType<
62934            BaseSocketGetLingerResponse,
62935            fidl_fuchsia_posix::Errno,
62936        >>(
62937            result,
62938            self.tx_id,
62939            0x48eb20fc5ccb0e45,
62940            fidl::encoding::DynamicFlags::empty(),
62941        )
62942    }
62943}
62944
62945#[must_use = "FIDL methods require a response to be sent"]
62946#[derive(Debug)]
62947pub struct StreamSocketSetReusePortResponder {
62948    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62949    tx_id: u32,
62950}
62951
62952/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62953/// if the responder is dropped without sending a response, so that the client
62954/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62955impl std::ops::Drop for StreamSocketSetReusePortResponder {
62956    fn drop(&mut self) {
62957        self.control_handle.shutdown();
62958        // Safety: drops once, never accessed again
62959        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62960    }
62961}
62962
62963impl fidl::endpoints::Responder for StreamSocketSetReusePortResponder {
62964    type ControlHandle = StreamSocketControlHandle;
62965
62966    fn control_handle(&self) -> &StreamSocketControlHandle {
62967        &self.control_handle
62968    }
62969
62970    fn drop_without_shutdown(mut self) {
62971        // Safety: drops once, never accessed again due to mem::forget
62972        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62973        // Prevent Drop from running (which would shut down the channel)
62974        std::mem::forget(self);
62975    }
62976}
62977
62978impl StreamSocketSetReusePortResponder {
62979    /// Sends a response to the FIDL transaction.
62980    ///
62981    /// Sets the channel to shutdown if an error occurs.
62982    pub fn send(
62983        self,
62984        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62985    ) -> Result<(), fidl::Error> {
62986        let _result = self.send_raw(result);
62987        if _result.is_err() {
62988            self.control_handle.shutdown();
62989        }
62990        self.drop_without_shutdown();
62991        _result
62992    }
62993
62994    /// Similar to "send" but does not shutdown the channel if an error occurs.
62995    pub fn send_no_shutdown_on_err(
62996        self,
62997        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62998    ) -> Result<(), fidl::Error> {
62999        let _result = self.send_raw(result);
63000        self.drop_without_shutdown();
63001        _result
63002    }
63003
63004    fn send_raw(
63005        &self,
63006        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63007    ) -> Result<(), fidl::Error> {
63008        self.control_handle.inner.send::<fidl::encoding::ResultType<
63009            fidl::encoding::EmptyStruct,
63010            fidl_fuchsia_posix::Errno,
63011        >>(
63012            result,
63013            self.tx_id,
63014            0x547dc9cc0455189e,
63015            fidl::encoding::DynamicFlags::empty(),
63016        )
63017    }
63018}
63019
63020#[must_use = "FIDL methods require a response to be sent"]
63021#[derive(Debug)]
63022pub struct StreamSocketSetReusePortDeprecatedResponder {
63023    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63024    tx_id: u32,
63025}
63026
63027/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63028/// if the responder is dropped without sending a response, so that the client
63029/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63030impl std::ops::Drop for StreamSocketSetReusePortDeprecatedResponder {
63031    fn drop(&mut self) {
63032        self.control_handle.shutdown();
63033        // Safety: drops once, never accessed again
63034        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63035    }
63036}
63037
63038impl fidl::endpoints::Responder for StreamSocketSetReusePortDeprecatedResponder {
63039    type ControlHandle = StreamSocketControlHandle;
63040
63041    fn control_handle(&self) -> &StreamSocketControlHandle {
63042        &self.control_handle
63043    }
63044
63045    fn drop_without_shutdown(mut self) {
63046        // Safety: drops once, never accessed again due to mem::forget
63047        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63048        // Prevent Drop from running (which would shut down the channel)
63049        std::mem::forget(self);
63050    }
63051}
63052
63053impl StreamSocketSetReusePortDeprecatedResponder {
63054    /// Sends a response to the FIDL transaction.
63055    ///
63056    /// Sets the channel to shutdown if an error occurs.
63057    pub fn send(
63058        self,
63059        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63060    ) -> Result<(), fidl::Error> {
63061        let _result = self.send_raw(result);
63062        if _result.is_err() {
63063            self.control_handle.shutdown();
63064        }
63065        self.drop_without_shutdown();
63066        _result
63067    }
63068
63069    /// Similar to "send" but does not shutdown the channel if an error occurs.
63070    pub fn send_no_shutdown_on_err(
63071        self,
63072        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63073    ) -> Result<(), fidl::Error> {
63074        let _result = self.send_raw(result);
63075        self.drop_without_shutdown();
63076        _result
63077    }
63078
63079    fn send_raw(
63080        &self,
63081        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63082    ) -> Result<(), fidl::Error> {
63083        self.control_handle.inner.send::<fidl::encoding::ResultType<
63084            fidl::encoding::EmptyStruct,
63085            fidl_fuchsia_posix::Errno,
63086        >>(
63087            result,
63088            self.tx_id,
63089            0x24dd3e5cb36d9ccb,
63090            fidl::encoding::DynamicFlags::empty(),
63091        )
63092    }
63093}
63094
63095#[must_use = "FIDL methods require a response to be sent"]
63096#[derive(Debug)]
63097pub struct StreamSocketGetReusePortResponder {
63098    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63099    tx_id: u32,
63100}
63101
63102/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63103/// if the responder is dropped without sending a response, so that the client
63104/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63105impl std::ops::Drop for StreamSocketGetReusePortResponder {
63106    fn drop(&mut self) {
63107        self.control_handle.shutdown();
63108        // Safety: drops once, never accessed again
63109        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63110    }
63111}
63112
63113impl fidl::endpoints::Responder for StreamSocketGetReusePortResponder {
63114    type ControlHandle = StreamSocketControlHandle;
63115
63116    fn control_handle(&self) -> &StreamSocketControlHandle {
63117        &self.control_handle
63118    }
63119
63120    fn drop_without_shutdown(mut self) {
63121        // Safety: drops once, never accessed again due to mem::forget
63122        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63123        // Prevent Drop from running (which would shut down the channel)
63124        std::mem::forget(self);
63125    }
63126}
63127
63128impl StreamSocketGetReusePortResponder {
63129    /// Sends a response to the FIDL transaction.
63130    ///
63131    /// Sets the channel to shutdown if an error occurs.
63132    pub fn send(
63133        self,
63134        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
63135    ) -> Result<(), fidl::Error> {
63136        let _result = self.send_raw(result);
63137        if _result.is_err() {
63138            self.control_handle.shutdown();
63139        }
63140        self.drop_without_shutdown();
63141        _result
63142    }
63143
63144    /// Similar to "send" but does not shutdown the channel if an error occurs.
63145    pub fn send_no_shutdown_on_err(
63146        self,
63147        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
63148    ) -> Result<(), fidl::Error> {
63149        let _result = self.send_raw(result);
63150        self.drop_without_shutdown();
63151        _result
63152    }
63153
63154    fn send_raw(
63155        &self,
63156        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
63157    ) -> Result<(), fidl::Error> {
63158        self.control_handle.inner.send::<fidl::encoding::ResultType<
63159            BaseSocketGetReusePortResponse,
63160            fidl_fuchsia_posix::Errno,
63161        >>(
63162            result.map(|value| (value,)),
63163            self.tx_id,
63164            0x7a112c1ab54ff828,
63165            fidl::encoding::DynamicFlags::empty(),
63166        )
63167    }
63168}
63169
63170#[must_use = "FIDL methods require a response to be sent"]
63171#[derive(Debug)]
63172pub struct StreamSocketGetAcceptConnResponder {
63173    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63174    tx_id: u32,
63175}
63176
63177/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63178/// if the responder is dropped without sending a response, so that the client
63179/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63180impl std::ops::Drop for StreamSocketGetAcceptConnResponder {
63181    fn drop(&mut self) {
63182        self.control_handle.shutdown();
63183        // Safety: drops once, never accessed again
63184        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63185    }
63186}
63187
63188impl fidl::endpoints::Responder for StreamSocketGetAcceptConnResponder {
63189    type ControlHandle = StreamSocketControlHandle;
63190
63191    fn control_handle(&self) -> &StreamSocketControlHandle {
63192        &self.control_handle
63193    }
63194
63195    fn drop_without_shutdown(mut self) {
63196        // Safety: drops once, never accessed again due to mem::forget
63197        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63198        // Prevent Drop from running (which would shut down the channel)
63199        std::mem::forget(self);
63200    }
63201}
63202
63203impl StreamSocketGetAcceptConnResponder {
63204    /// Sends a response to the FIDL transaction.
63205    ///
63206    /// Sets the channel to shutdown if an error occurs.
63207    pub fn send(
63208        self,
63209        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
63210    ) -> Result<(), fidl::Error> {
63211        let _result = self.send_raw(result);
63212        if _result.is_err() {
63213            self.control_handle.shutdown();
63214        }
63215        self.drop_without_shutdown();
63216        _result
63217    }
63218
63219    /// Similar to "send" but does not shutdown the channel if an error occurs.
63220    pub fn send_no_shutdown_on_err(
63221        self,
63222        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
63223    ) -> Result<(), fidl::Error> {
63224        let _result = self.send_raw(result);
63225        self.drop_without_shutdown();
63226        _result
63227    }
63228
63229    fn send_raw(
63230        &self,
63231        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
63232    ) -> Result<(), fidl::Error> {
63233        self.control_handle.inner.send::<fidl::encoding::ResultType<
63234            BaseSocketGetAcceptConnResponse,
63235            fidl_fuchsia_posix::Errno,
63236        >>(
63237            result.map(|value| (value,)),
63238            self.tx_id,
63239            0x67ce6db6c2ec8966,
63240            fidl::encoding::DynamicFlags::empty(),
63241        )
63242    }
63243}
63244
63245#[must_use = "FIDL methods require a response to be sent"]
63246#[derive(Debug)]
63247pub struct StreamSocketSetBindToDeviceResponder {
63248    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63249    tx_id: u32,
63250}
63251
63252/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63253/// if the responder is dropped without sending a response, so that the client
63254/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63255impl std::ops::Drop for StreamSocketSetBindToDeviceResponder {
63256    fn drop(&mut self) {
63257        self.control_handle.shutdown();
63258        // Safety: drops once, never accessed again
63259        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63260    }
63261}
63262
63263impl fidl::endpoints::Responder for StreamSocketSetBindToDeviceResponder {
63264    type ControlHandle = StreamSocketControlHandle;
63265
63266    fn control_handle(&self) -> &StreamSocketControlHandle {
63267        &self.control_handle
63268    }
63269
63270    fn drop_without_shutdown(mut self) {
63271        // Safety: drops once, never accessed again due to mem::forget
63272        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63273        // Prevent Drop from running (which would shut down the channel)
63274        std::mem::forget(self);
63275    }
63276}
63277
63278impl StreamSocketSetBindToDeviceResponder {
63279    /// Sends a response to the FIDL transaction.
63280    ///
63281    /// Sets the channel to shutdown if an error occurs.
63282    pub fn send(
63283        self,
63284        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63285    ) -> Result<(), fidl::Error> {
63286        let _result = self.send_raw(result);
63287        if _result.is_err() {
63288            self.control_handle.shutdown();
63289        }
63290        self.drop_without_shutdown();
63291        _result
63292    }
63293
63294    /// Similar to "send" but does not shutdown the channel if an error occurs.
63295    pub fn send_no_shutdown_on_err(
63296        self,
63297        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63298    ) -> Result<(), fidl::Error> {
63299        let _result = self.send_raw(result);
63300        self.drop_without_shutdown();
63301        _result
63302    }
63303
63304    fn send_raw(
63305        &self,
63306        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63307    ) -> Result<(), fidl::Error> {
63308        self.control_handle.inner.send::<fidl::encoding::ResultType<
63309            fidl::encoding::EmptyStruct,
63310            fidl_fuchsia_posix::Errno,
63311        >>(
63312            result,
63313            self.tx_id,
63314            0x2118b483f28aafc4,
63315            fidl::encoding::DynamicFlags::empty(),
63316        )
63317    }
63318}
63319
63320#[must_use = "FIDL methods require a response to be sent"]
63321#[derive(Debug)]
63322pub struct StreamSocketGetBindToDeviceResponder {
63323    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63324    tx_id: u32,
63325}
63326
63327/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63328/// if the responder is dropped without sending a response, so that the client
63329/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63330impl std::ops::Drop for StreamSocketGetBindToDeviceResponder {
63331    fn drop(&mut self) {
63332        self.control_handle.shutdown();
63333        // Safety: drops once, never accessed again
63334        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63335    }
63336}
63337
63338impl fidl::endpoints::Responder for StreamSocketGetBindToDeviceResponder {
63339    type ControlHandle = StreamSocketControlHandle;
63340
63341    fn control_handle(&self) -> &StreamSocketControlHandle {
63342        &self.control_handle
63343    }
63344
63345    fn drop_without_shutdown(mut self) {
63346        // Safety: drops once, never accessed again due to mem::forget
63347        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63348        // Prevent Drop from running (which would shut down the channel)
63349        std::mem::forget(self);
63350    }
63351}
63352
63353impl StreamSocketGetBindToDeviceResponder {
63354    /// Sends a response to the FIDL transaction.
63355    ///
63356    /// Sets the channel to shutdown if an error occurs.
63357    pub fn send(
63358        self,
63359        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
63360    ) -> Result<(), fidl::Error> {
63361        let _result = self.send_raw(result);
63362        if _result.is_err() {
63363            self.control_handle.shutdown();
63364        }
63365        self.drop_without_shutdown();
63366        _result
63367    }
63368
63369    /// Similar to "send" but does not shutdown the channel if an error occurs.
63370    pub fn send_no_shutdown_on_err(
63371        self,
63372        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
63373    ) -> Result<(), fidl::Error> {
63374        let _result = self.send_raw(result);
63375        self.drop_without_shutdown();
63376        _result
63377    }
63378
63379    fn send_raw(
63380        &self,
63381        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
63382    ) -> Result<(), fidl::Error> {
63383        self.control_handle.inner.send::<fidl::encoding::ResultType<
63384            BaseSocketGetBindToDeviceResponse,
63385            fidl_fuchsia_posix::Errno,
63386        >>(
63387            result.map(|value| (value,)),
63388            self.tx_id,
63389            0x1ab1fbf0ef7906c8,
63390            fidl::encoding::DynamicFlags::empty(),
63391        )
63392    }
63393}
63394
63395#[must_use = "FIDL methods require a response to be sent"]
63396#[derive(Debug)]
63397pub struct StreamSocketSetBindToInterfaceIndexResponder {
63398    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63399    tx_id: u32,
63400}
63401
63402/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63403/// if the responder is dropped without sending a response, so that the client
63404/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63405impl std::ops::Drop for StreamSocketSetBindToInterfaceIndexResponder {
63406    fn drop(&mut self) {
63407        self.control_handle.shutdown();
63408        // Safety: drops once, never accessed again
63409        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63410    }
63411}
63412
63413impl fidl::endpoints::Responder for StreamSocketSetBindToInterfaceIndexResponder {
63414    type ControlHandle = StreamSocketControlHandle;
63415
63416    fn control_handle(&self) -> &StreamSocketControlHandle {
63417        &self.control_handle
63418    }
63419
63420    fn drop_without_shutdown(mut self) {
63421        // Safety: drops once, never accessed again due to mem::forget
63422        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63423        // Prevent Drop from running (which would shut down the channel)
63424        std::mem::forget(self);
63425    }
63426}
63427
63428impl StreamSocketSetBindToInterfaceIndexResponder {
63429    /// Sends a response to the FIDL transaction.
63430    ///
63431    /// Sets the channel to shutdown if an error occurs.
63432    pub fn send(
63433        self,
63434        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63435    ) -> Result<(), fidl::Error> {
63436        let _result = self.send_raw(result);
63437        if _result.is_err() {
63438            self.control_handle.shutdown();
63439        }
63440        self.drop_without_shutdown();
63441        _result
63442    }
63443
63444    /// Similar to "send" but does not shutdown the channel if an error occurs.
63445    pub fn send_no_shutdown_on_err(
63446        self,
63447        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63448    ) -> Result<(), fidl::Error> {
63449        let _result = self.send_raw(result);
63450        self.drop_without_shutdown();
63451        _result
63452    }
63453
63454    fn send_raw(
63455        &self,
63456        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63457    ) -> Result<(), fidl::Error> {
63458        self.control_handle.inner.send::<fidl::encoding::ResultType<
63459            fidl::encoding::EmptyStruct,
63460            fidl_fuchsia_posix::Errno,
63461        >>(
63462            result,
63463            self.tx_id,
63464            0x6e387a0def00821,
63465            fidl::encoding::DynamicFlags::empty(),
63466        )
63467    }
63468}
63469
63470#[must_use = "FIDL methods require a response to be sent"]
63471#[derive(Debug)]
63472pub struct StreamSocketGetBindToInterfaceIndexResponder {
63473    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63474    tx_id: u32,
63475}
63476
63477/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63478/// if the responder is dropped without sending a response, so that the client
63479/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63480impl std::ops::Drop for StreamSocketGetBindToInterfaceIndexResponder {
63481    fn drop(&mut self) {
63482        self.control_handle.shutdown();
63483        // Safety: drops once, never accessed again
63484        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63485    }
63486}
63487
63488impl fidl::endpoints::Responder for StreamSocketGetBindToInterfaceIndexResponder {
63489    type ControlHandle = StreamSocketControlHandle;
63490
63491    fn control_handle(&self) -> &StreamSocketControlHandle {
63492        &self.control_handle
63493    }
63494
63495    fn drop_without_shutdown(mut self) {
63496        // Safety: drops once, never accessed again due to mem::forget
63497        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63498        // Prevent Drop from running (which would shut down the channel)
63499        std::mem::forget(self);
63500    }
63501}
63502
63503impl StreamSocketGetBindToInterfaceIndexResponder {
63504    /// Sends a response to the FIDL transaction.
63505    ///
63506    /// Sets the channel to shutdown if an error occurs.
63507    pub fn send(
63508        self,
63509        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
63510    ) -> Result<(), fidl::Error> {
63511        let _result = self.send_raw(result);
63512        if _result.is_err() {
63513            self.control_handle.shutdown();
63514        }
63515        self.drop_without_shutdown();
63516        _result
63517    }
63518
63519    /// Similar to "send" but does not shutdown the channel if an error occurs.
63520    pub fn send_no_shutdown_on_err(
63521        self,
63522        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
63523    ) -> Result<(), fidl::Error> {
63524        let _result = self.send_raw(result);
63525        self.drop_without_shutdown();
63526        _result
63527    }
63528
63529    fn send_raw(
63530        &self,
63531        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
63532    ) -> Result<(), fidl::Error> {
63533        self.control_handle.inner.send::<fidl::encoding::ResultType<
63534            BaseSocketGetBindToInterfaceIndexResponse,
63535            fidl_fuchsia_posix::Errno,
63536        >>(
63537            result.map(|value| (value,)),
63538            self.tx_id,
63539            0x59c31dd3e3078295,
63540            fidl::encoding::DynamicFlags::empty(),
63541        )
63542    }
63543}
63544
63545#[must_use = "FIDL methods require a response to be sent"]
63546#[derive(Debug)]
63547pub struct StreamSocketSetTimestampResponder {
63548    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63549    tx_id: u32,
63550}
63551
63552/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63553/// if the responder is dropped without sending a response, so that the client
63554/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63555impl std::ops::Drop for StreamSocketSetTimestampResponder {
63556    fn drop(&mut self) {
63557        self.control_handle.shutdown();
63558        // Safety: drops once, never accessed again
63559        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63560    }
63561}
63562
63563impl fidl::endpoints::Responder for StreamSocketSetTimestampResponder {
63564    type ControlHandle = StreamSocketControlHandle;
63565
63566    fn control_handle(&self) -> &StreamSocketControlHandle {
63567        &self.control_handle
63568    }
63569
63570    fn drop_without_shutdown(mut self) {
63571        // Safety: drops once, never accessed again due to mem::forget
63572        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63573        // Prevent Drop from running (which would shut down the channel)
63574        std::mem::forget(self);
63575    }
63576}
63577
63578impl StreamSocketSetTimestampResponder {
63579    /// Sends a response to the FIDL transaction.
63580    ///
63581    /// Sets the channel to shutdown if an error occurs.
63582    pub fn send(
63583        self,
63584        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63585    ) -> Result<(), fidl::Error> {
63586        let _result = self.send_raw(result);
63587        if _result.is_err() {
63588            self.control_handle.shutdown();
63589        }
63590        self.drop_without_shutdown();
63591        _result
63592    }
63593
63594    /// Similar to "send" but does not shutdown the channel if an error occurs.
63595    pub fn send_no_shutdown_on_err(
63596        self,
63597        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63598    ) -> Result<(), fidl::Error> {
63599        let _result = self.send_raw(result);
63600        self.drop_without_shutdown();
63601        _result
63602    }
63603
63604    fn send_raw(
63605        &self,
63606        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63607    ) -> Result<(), fidl::Error> {
63608        self.control_handle.inner.send::<fidl::encoding::ResultType<
63609            fidl::encoding::EmptyStruct,
63610            fidl_fuchsia_posix::Errno,
63611        >>(
63612            result,
63613            self.tx_id,
63614            0x285d6516c263d839,
63615            fidl::encoding::DynamicFlags::empty(),
63616        )
63617    }
63618}
63619
63620#[must_use = "FIDL methods require a response to be sent"]
63621#[derive(Debug)]
63622pub struct StreamSocketGetTimestampResponder {
63623    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63624    tx_id: u32,
63625}
63626
63627/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63628/// if the responder is dropped without sending a response, so that the client
63629/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63630impl std::ops::Drop for StreamSocketGetTimestampResponder {
63631    fn drop(&mut self) {
63632        self.control_handle.shutdown();
63633        // Safety: drops once, never accessed again
63634        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63635    }
63636}
63637
63638impl fidl::endpoints::Responder for StreamSocketGetTimestampResponder {
63639    type ControlHandle = StreamSocketControlHandle;
63640
63641    fn control_handle(&self) -> &StreamSocketControlHandle {
63642        &self.control_handle
63643    }
63644
63645    fn drop_without_shutdown(mut self) {
63646        // Safety: drops once, never accessed again due to mem::forget
63647        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63648        // Prevent Drop from running (which would shut down the channel)
63649        std::mem::forget(self);
63650    }
63651}
63652
63653impl StreamSocketGetTimestampResponder {
63654    /// Sends a response to the FIDL transaction.
63655    ///
63656    /// Sets the channel to shutdown if an error occurs.
63657    pub fn send(
63658        self,
63659        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
63660    ) -> Result<(), fidl::Error> {
63661        let _result = self.send_raw(result);
63662        if _result.is_err() {
63663            self.control_handle.shutdown();
63664        }
63665        self.drop_without_shutdown();
63666        _result
63667    }
63668
63669    /// Similar to "send" but does not shutdown the channel if an error occurs.
63670    pub fn send_no_shutdown_on_err(
63671        self,
63672        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
63673    ) -> Result<(), fidl::Error> {
63674        let _result = self.send_raw(result);
63675        self.drop_without_shutdown();
63676        _result
63677    }
63678
63679    fn send_raw(
63680        &self,
63681        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
63682    ) -> Result<(), fidl::Error> {
63683        self.control_handle.inner.send::<fidl::encoding::ResultType<
63684            BaseSocketGetTimestampResponse,
63685            fidl_fuchsia_posix::Errno,
63686        >>(
63687            result.map(|value| (value,)),
63688            self.tx_id,
63689            0x49f2fffbbcc2bd27,
63690            fidl::encoding::DynamicFlags::empty(),
63691        )
63692    }
63693}
63694
63695#[must_use = "FIDL methods require a response to be sent"]
63696#[derive(Debug)]
63697pub struct StreamSocketSetMarkResponder {
63698    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63699    tx_id: u32,
63700}
63701
63702/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63703/// if the responder is dropped without sending a response, so that the client
63704/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63705impl std::ops::Drop for StreamSocketSetMarkResponder {
63706    fn drop(&mut self) {
63707        self.control_handle.shutdown();
63708        // Safety: drops once, never accessed again
63709        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63710    }
63711}
63712
63713impl fidl::endpoints::Responder for StreamSocketSetMarkResponder {
63714    type ControlHandle = StreamSocketControlHandle;
63715
63716    fn control_handle(&self) -> &StreamSocketControlHandle {
63717        &self.control_handle
63718    }
63719
63720    fn drop_without_shutdown(mut self) {
63721        // Safety: drops once, never accessed again due to mem::forget
63722        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63723        // Prevent Drop from running (which would shut down the channel)
63724        std::mem::forget(self);
63725    }
63726}
63727
63728impl StreamSocketSetMarkResponder {
63729    /// Sends a response to the FIDL transaction.
63730    ///
63731    /// Sets the channel to shutdown if an error occurs.
63732    pub fn send(
63733        self,
63734        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63735    ) -> Result<(), fidl::Error> {
63736        let _result = self.send_raw(result);
63737        if _result.is_err() {
63738            self.control_handle.shutdown();
63739        }
63740        self.drop_without_shutdown();
63741        _result
63742    }
63743
63744    /// Similar to "send" but does not shutdown the channel if an error occurs.
63745    pub fn send_no_shutdown_on_err(
63746        self,
63747        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63748    ) -> Result<(), fidl::Error> {
63749        let _result = self.send_raw(result);
63750        self.drop_without_shutdown();
63751        _result
63752    }
63753
63754    fn send_raw(
63755        &self,
63756        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63757    ) -> Result<(), fidl::Error> {
63758        self.control_handle.inner.send::<fidl::encoding::ResultType<
63759            fidl::encoding::EmptyStruct,
63760            fidl_fuchsia_posix::Errno,
63761        >>(
63762            result,
63763            self.tx_id,
63764            0x6ead6de09f653236,
63765            fidl::encoding::DynamicFlags::empty(),
63766        )
63767    }
63768}
63769
63770#[must_use = "FIDL methods require a response to be sent"]
63771#[derive(Debug)]
63772pub struct StreamSocketGetMarkResponder {
63773    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63774    tx_id: u32,
63775}
63776
63777/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63778/// if the responder is dropped without sending a response, so that the client
63779/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63780impl std::ops::Drop for StreamSocketGetMarkResponder {
63781    fn drop(&mut self) {
63782        self.control_handle.shutdown();
63783        // Safety: drops once, never accessed again
63784        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63785    }
63786}
63787
63788impl fidl::endpoints::Responder for StreamSocketGetMarkResponder {
63789    type ControlHandle = StreamSocketControlHandle;
63790
63791    fn control_handle(&self) -> &StreamSocketControlHandle {
63792        &self.control_handle
63793    }
63794
63795    fn drop_without_shutdown(mut self) {
63796        // Safety: drops once, never accessed again due to mem::forget
63797        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63798        // Prevent Drop from running (which would shut down the channel)
63799        std::mem::forget(self);
63800    }
63801}
63802
63803impl StreamSocketGetMarkResponder {
63804    /// Sends a response to the FIDL transaction.
63805    ///
63806    /// Sets the channel to shutdown if an error occurs.
63807    pub fn send(
63808        self,
63809        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
63810    ) -> Result<(), fidl::Error> {
63811        let _result = self.send_raw(result);
63812        if _result.is_err() {
63813            self.control_handle.shutdown();
63814        }
63815        self.drop_without_shutdown();
63816        _result
63817    }
63818
63819    /// Similar to "send" but does not shutdown the channel if an error occurs.
63820    pub fn send_no_shutdown_on_err(
63821        self,
63822        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
63823    ) -> Result<(), fidl::Error> {
63824        let _result = self.send_raw(result);
63825        self.drop_without_shutdown();
63826        _result
63827    }
63828
63829    fn send_raw(
63830        &self,
63831        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
63832    ) -> Result<(), fidl::Error> {
63833        self.control_handle.inner.send::<fidl::encoding::ResultType<
63834            BaseSocketGetMarkResponse,
63835            fidl_fuchsia_posix::Errno,
63836        >>(
63837            result.map(|mark| (mark,)),
63838            self.tx_id,
63839            0x57a2752c61d93d47,
63840            fidl::encoding::DynamicFlags::empty(),
63841        )
63842    }
63843}
63844
63845#[must_use = "FIDL methods require a response to be sent"]
63846#[derive(Debug)]
63847pub struct StreamSocketGetCookieResponder {
63848    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63849    tx_id: u32,
63850}
63851
63852/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63853/// if the responder is dropped without sending a response, so that the client
63854/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63855impl std::ops::Drop for StreamSocketGetCookieResponder {
63856    fn drop(&mut self) {
63857        self.control_handle.shutdown();
63858        // Safety: drops once, never accessed again
63859        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63860    }
63861}
63862
63863impl fidl::endpoints::Responder for StreamSocketGetCookieResponder {
63864    type ControlHandle = StreamSocketControlHandle;
63865
63866    fn control_handle(&self) -> &StreamSocketControlHandle {
63867        &self.control_handle
63868    }
63869
63870    fn drop_without_shutdown(mut self) {
63871        // Safety: drops once, never accessed again due to mem::forget
63872        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63873        // Prevent Drop from running (which would shut down the channel)
63874        std::mem::forget(self);
63875    }
63876}
63877
63878impl StreamSocketGetCookieResponder {
63879    /// Sends a response to the FIDL transaction.
63880    ///
63881    /// Sets the channel to shutdown if an error occurs.
63882    pub fn send(
63883        self,
63884        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
63885    ) -> Result<(), fidl::Error> {
63886        let _result = self.send_raw(result);
63887        if _result.is_err() {
63888            self.control_handle.shutdown();
63889        }
63890        self.drop_without_shutdown();
63891        _result
63892    }
63893
63894    /// Similar to "send" but does not shutdown the channel if an error occurs.
63895    pub fn send_no_shutdown_on_err(
63896        self,
63897        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
63898    ) -> Result<(), fidl::Error> {
63899        let _result = self.send_raw(result);
63900        self.drop_without_shutdown();
63901        _result
63902    }
63903
63904    fn send_raw(
63905        &self,
63906        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
63907    ) -> Result<(), fidl::Error> {
63908        self.control_handle.inner.send::<fidl::encoding::ResultType<
63909            BaseSocketGetCookieResponse,
63910            fidl_fuchsia_posix::Errno,
63911        >>(
63912            result.map(|value| (value,)),
63913            self.tx_id,
63914            0x2c2f47fd8f924e52,
63915            fidl::encoding::DynamicFlags::empty(),
63916        )
63917    }
63918}
63919
63920#[must_use = "FIDL methods require a response to be sent"]
63921#[derive(Debug)]
63922pub struct StreamSocketBindResponder {
63923    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63924    tx_id: u32,
63925}
63926
63927/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63928/// if the responder is dropped without sending a response, so that the client
63929/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63930impl std::ops::Drop for StreamSocketBindResponder {
63931    fn drop(&mut self) {
63932        self.control_handle.shutdown();
63933        // Safety: drops once, never accessed again
63934        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63935    }
63936}
63937
63938impl fidl::endpoints::Responder for StreamSocketBindResponder {
63939    type ControlHandle = StreamSocketControlHandle;
63940
63941    fn control_handle(&self) -> &StreamSocketControlHandle {
63942        &self.control_handle
63943    }
63944
63945    fn drop_without_shutdown(mut self) {
63946        // Safety: drops once, never accessed again due to mem::forget
63947        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63948        // Prevent Drop from running (which would shut down the channel)
63949        std::mem::forget(self);
63950    }
63951}
63952
63953impl StreamSocketBindResponder {
63954    /// Sends a response to the FIDL transaction.
63955    ///
63956    /// Sets the channel to shutdown if an error occurs.
63957    pub fn send(
63958        self,
63959        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63960    ) -> Result<(), fidl::Error> {
63961        let _result = self.send_raw(result);
63962        if _result.is_err() {
63963            self.control_handle.shutdown();
63964        }
63965        self.drop_without_shutdown();
63966        _result
63967    }
63968
63969    /// Similar to "send" but does not shutdown the channel if an error occurs.
63970    pub fn send_no_shutdown_on_err(
63971        self,
63972        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63973    ) -> Result<(), fidl::Error> {
63974        let _result = self.send_raw(result);
63975        self.drop_without_shutdown();
63976        _result
63977    }
63978
63979    fn send_raw(
63980        &self,
63981        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63982    ) -> Result<(), fidl::Error> {
63983        self.control_handle.inner.send::<fidl::encoding::ResultType<
63984            fidl::encoding::EmptyStruct,
63985            fidl_fuchsia_posix::Errno,
63986        >>(
63987            result,
63988            self.tx_id,
63989            0x4bc6400ae92125d,
63990            fidl::encoding::DynamicFlags::empty(),
63991        )
63992    }
63993}
63994
63995#[must_use = "FIDL methods require a response to be sent"]
63996#[derive(Debug)]
63997pub struct StreamSocketConnectResponder {
63998    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63999    tx_id: u32,
64000}
64001
64002/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64003/// if the responder is dropped without sending a response, so that the client
64004/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64005impl std::ops::Drop for StreamSocketConnectResponder {
64006    fn drop(&mut self) {
64007        self.control_handle.shutdown();
64008        // Safety: drops once, never accessed again
64009        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64010    }
64011}
64012
64013impl fidl::endpoints::Responder for StreamSocketConnectResponder {
64014    type ControlHandle = StreamSocketControlHandle;
64015
64016    fn control_handle(&self) -> &StreamSocketControlHandle {
64017        &self.control_handle
64018    }
64019
64020    fn drop_without_shutdown(mut self) {
64021        // Safety: drops once, never accessed again due to mem::forget
64022        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64023        // Prevent Drop from running (which would shut down the channel)
64024        std::mem::forget(self);
64025    }
64026}
64027
64028impl StreamSocketConnectResponder {
64029    /// Sends a response to the FIDL transaction.
64030    ///
64031    /// Sets the channel to shutdown if an error occurs.
64032    pub fn send(
64033        self,
64034        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64035    ) -> Result<(), fidl::Error> {
64036        let _result = self.send_raw(result);
64037        if _result.is_err() {
64038            self.control_handle.shutdown();
64039        }
64040        self.drop_without_shutdown();
64041        _result
64042    }
64043
64044    /// Similar to "send" but does not shutdown the channel if an error occurs.
64045    pub fn send_no_shutdown_on_err(
64046        self,
64047        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64048    ) -> Result<(), fidl::Error> {
64049        let _result = self.send_raw(result);
64050        self.drop_without_shutdown();
64051        _result
64052    }
64053
64054    fn send_raw(
64055        &self,
64056        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64057    ) -> Result<(), fidl::Error> {
64058        self.control_handle.inner.send::<fidl::encoding::ResultType<
64059            fidl::encoding::EmptyStruct,
64060            fidl_fuchsia_posix::Errno,
64061        >>(
64062            result,
64063            self.tx_id,
64064            0x5f05f19bfdd38871,
64065            fidl::encoding::DynamicFlags::empty(),
64066        )
64067    }
64068}
64069
64070#[must_use = "FIDL methods require a response to be sent"]
64071#[derive(Debug)]
64072pub struct StreamSocketDisconnectResponder {
64073    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64074    tx_id: u32,
64075}
64076
64077/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64078/// if the responder is dropped without sending a response, so that the client
64079/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64080impl std::ops::Drop for StreamSocketDisconnectResponder {
64081    fn drop(&mut self) {
64082        self.control_handle.shutdown();
64083        // Safety: drops once, never accessed again
64084        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64085    }
64086}
64087
64088impl fidl::endpoints::Responder for StreamSocketDisconnectResponder {
64089    type ControlHandle = StreamSocketControlHandle;
64090
64091    fn control_handle(&self) -> &StreamSocketControlHandle {
64092        &self.control_handle
64093    }
64094
64095    fn drop_without_shutdown(mut self) {
64096        // Safety: drops once, never accessed again due to mem::forget
64097        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64098        // Prevent Drop from running (which would shut down the channel)
64099        std::mem::forget(self);
64100    }
64101}
64102
64103impl StreamSocketDisconnectResponder {
64104    /// Sends a response to the FIDL transaction.
64105    ///
64106    /// Sets the channel to shutdown if an error occurs.
64107    pub fn send(
64108        self,
64109        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64110    ) -> Result<(), fidl::Error> {
64111        let _result = self.send_raw(result);
64112        if _result.is_err() {
64113            self.control_handle.shutdown();
64114        }
64115        self.drop_without_shutdown();
64116        _result
64117    }
64118
64119    /// Similar to "send" but does not shutdown the channel if an error occurs.
64120    pub fn send_no_shutdown_on_err(
64121        self,
64122        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64123    ) -> Result<(), fidl::Error> {
64124        let _result = self.send_raw(result);
64125        self.drop_without_shutdown();
64126        _result
64127    }
64128
64129    fn send_raw(
64130        &self,
64131        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64132    ) -> Result<(), fidl::Error> {
64133        self.control_handle.inner.send::<fidl::encoding::ResultType<
64134            fidl::encoding::EmptyStruct,
64135            fidl_fuchsia_posix::Errno,
64136        >>(
64137            result,
64138            self.tx_id,
64139            0x74e63b91f7b29b2,
64140            fidl::encoding::DynamicFlags::empty(),
64141        )
64142    }
64143}
64144
64145#[must_use = "FIDL methods require a response to be sent"]
64146#[derive(Debug)]
64147pub struct StreamSocketGetSockNameResponder {
64148    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64149    tx_id: u32,
64150}
64151
64152/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64153/// if the responder is dropped without sending a response, so that the client
64154/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64155impl std::ops::Drop for StreamSocketGetSockNameResponder {
64156    fn drop(&mut self) {
64157        self.control_handle.shutdown();
64158        // Safety: drops once, never accessed again
64159        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64160    }
64161}
64162
64163impl fidl::endpoints::Responder for StreamSocketGetSockNameResponder {
64164    type ControlHandle = StreamSocketControlHandle;
64165
64166    fn control_handle(&self) -> &StreamSocketControlHandle {
64167        &self.control_handle
64168    }
64169
64170    fn drop_without_shutdown(mut self) {
64171        // Safety: drops once, never accessed again due to mem::forget
64172        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64173        // Prevent Drop from running (which would shut down the channel)
64174        std::mem::forget(self);
64175    }
64176}
64177
64178impl StreamSocketGetSockNameResponder {
64179    /// Sends a response to the FIDL transaction.
64180    ///
64181    /// Sets the channel to shutdown if an error occurs.
64182    pub fn send(
64183        self,
64184        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
64185    ) -> Result<(), fidl::Error> {
64186        let _result = self.send_raw(result);
64187        if _result.is_err() {
64188            self.control_handle.shutdown();
64189        }
64190        self.drop_without_shutdown();
64191        _result
64192    }
64193
64194    /// Similar to "send" but does not shutdown the channel if an error occurs.
64195    pub fn send_no_shutdown_on_err(
64196        self,
64197        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
64198    ) -> Result<(), fidl::Error> {
64199        let _result = self.send_raw(result);
64200        self.drop_without_shutdown();
64201        _result
64202    }
64203
64204    fn send_raw(
64205        &self,
64206        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
64207    ) -> Result<(), fidl::Error> {
64208        self.control_handle.inner.send::<fidl::encoding::ResultType<
64209            BaseNetworkSocketGetSockNameResponse,
64210            fidl_fuchsia_posix::Errno,
64211        >>(
64212            result.map(|addr| (addr,)),
64213            self.tx_id,
64214            0x475f23f84a1a4f85,
64215            fidl::encoding::DynamicFlags::empty(),
64216        )
64217    }
64218}
64219
64220#[must_use = "FIDL methods require a response to be sent"]
64221#[derive(Debug)]
64222pub struct StreamSocketGetPeerNameResponder {
64223    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64224    tx_id: u32,
64225}
64226
64227/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64228/// if the responder is dropped without sending a response, so that the client
64229/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64230impl std::ops::Drop for StreamSocketGetPeerNameResponder {
64231    fn drop(&mut self) {
64232        self.control_handle.shutdown();
64233        // Safety: drops once, never accessed again
64234        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64235    }
64236}
64237
64238impl fidl::endpoints::Responder for StreamSocketGetPeerNameResponder {
64239    type ControlHandle = StreamSocketControlHandle;
64240
64241    fn control_handle(&self) -> &StreamSocketControlHandle {
64242        &self.control_handle
64243    }
64244
64245    fn drop_without_shutdown(mut self) {
64246        // Safety: drops once, never accessed again due to mem::forget
64247        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64248        // Prevent Drop from running (which would shut down the channel)
64249        std::mem::forget(self);
64250    }
64251}
64252
64253impl StreamSocketGetPeerNameResponder {
64254    /// Sends a response to the FIDL transaction.
64255    ///
64256    /// Sets the channel to shutdown if an error occurs.
64257    pub fn send(
64258        self,
64259        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
64260    ) -> Result<(), fidl::Error> {
64261        let _result = self.send_raw(result);
64262        if _result.is_err() {
64263            self.control_handle.shutdown();
64264        }
64265        self.drop_without_shutdown();
64266        _result
64267    }
64268
64269    /// Similar to "send" but does not shutdown the channel if an error occurs.
64270    pub fn send_no_shutdown_on_err(
64271        self,
64272        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
64273    ) -> Result<(), fidl::Error> {
64274        let _result = self.send_raw(result);
64275        self.drop_without_shutdown();
64276        _result
64277    }
64278
64279    fn send_raw(
64280        &self,
64281        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
64282    ) -> Result<(), fidl::Error> {
64283        self.control_handle.inner.send::<fidl::encoding::ResultType<
64284            BaseNetworkSocketGetPeerNameResponse,
64285            fidl_fuchsia_posix::Errno,
64286        >>(
64287            result.map(|addr| (addr,)),
64288            self.tx_id,
64289            0x1ffecf4bd5b6432e,
64290            fidl::encoding::DynamicFlags::empty(),
64291        )
64292    }
64293}
64294
64295#[must_use = "FIDL methods require a response to be sent"]
64296#[derive(Debug)]
64297pub struct StreamSocketShutdownResponder {
64298    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64299    tx_id: u32,
64300}
64301
64302/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64303/// if the responder is dropped without sending a response, so that the client
64304/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64305impl std::ops::Drop for StreamSocketShutdownResponder {
64306    fn drop(&mut self) {
64307        self.control_handle.shutdown();
64308        // Safety: drops once, never accessed again
64309        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64310    }
64311}
64312
64313impl fidl::endpoints::Responder for StreamSocketShutdownResponder {
64314    type ControlHandle = StreamSocketControlHandle;
64315
64316    fn control_handle(&self) -> &StreamSocketControlHandle {
64317        &self.control_handle
64318    }
64319
64320    fn drop_without_shutdown(mut self) {
64321        // Safety: drops once, never accessed again due to mem::forget
64322        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64323        // Prevent Drop from running (which would shut down the channel)
64324        std::mem::forget(self);
64325    }
64326}
64327
64328impl StreamSocketShutdownResponder {
64329    /// Sends a response to the FIDL transaction.
64330    ///
64331    /// Sets the channel to shutdown if an error occurs.
64332    pub fn send(
64333        self,
64334        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64335    ) -> Result<(), fidl::Error> {
64336        let _result = self.send_raw(result);
64337        if _result.is_err() {
64338            self.control_handle.shutdown();
64339        }
64340        self.drop_without_shutdown();
64341        _result
64342    }
64343
64344    /// Similar to "send" but does not shutdown the channel if an error occurs.
64345    pub fn send_no_shutdown_on_err(
64346        self,
64347        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64348    ) -> Result<(), fidl::Error> {
64349        let _result = self.send_raw(result);
64350        self.drop_without_shutdown();
64351        _result
64352    }
64353
64354    fn send_raw(
64355        &self,
64356        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64357    ) -> Result<(), fidl::Error> {
64358        self.control_handle.inner.send::<fidl::encoding::ResultType<
64359            fidl::encoding::EmptyStruct,
64360            fidl_fuchsia_posix::Errno,
64361        >>(
64362            result,
64363            self.tx_id,
64364            0x247f38b6db68c336,
64365            fidl::encoding::DynamicFlags::empty(),
64366        )
64367    }
64368}
64369
64370#[must_use = "FIDL methods require a response to be sent"]
64371#[derive(Debug)]
64372pub struct StreamSocketSetIpTypeOfServiceResponder {
64373    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64374    tx_id: u32,
64375}
64376
64377/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64378/// if the responder is dropped without sending a response, so that the client
64379/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64380impl std::ops::Drop for StreamSocketSetIpTypeOfServiceResponder {
64381    fn drop(&mut self) {
64382        self.control_handle.shutdown();
64383        // Safety: drops once, never accessed again
64384        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64385    }
64386}
64387
64388impl fidl::endpoints::Responder for StreamSocketSetIpTypeOfServiceResponder {
64389    type ControlHandle = StreamSocketControlHandle;
64390
64391    fn control_handle(&self) -> &StreamSocketControlHandle {
64392        &self.control_handle
64393    }
64394
64395    fn drop_without_shutdown(mut self) {
64396        // Safety: drops once, never accessed again due to mem::forget
64397        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64398        // Prevent Drop from running (which would shut down the channel)
64399        std::mem::forget(self);
64400    }
64401}
64402
64403impl StreamSocketSetIpTypeOfServiceResponder {
64404    /// Sends a response to the FIDL transaction.
64405    ///
64406    /// Sets the channel to shutdown if an error occurs.
64407    pub fn send(
64408        self,
64409        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64410    ) -> Result<(), fidl::Error> {
64411        let _result = self.send_raw(result);
64412        if _result.is_err() {
64413            self.control_handle.shutdown();
64414        }
64415        self.drop_without_shutdown();
64416        _result
64417    }
64418
64419    /// Similar to "send" but does not shutdown the channel if an error occurs.
64420    pub fn send_no_shutdown_on_err(
64421        self,
64422        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64423    ) -> Result<(), fidl::Error> {
64424        let _result = self.send_raw(result);
64425        self.drop_without_shutdown();
64426        _result
64427    }
64428
64429    fn send_raw(
64430        &self,
64431        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64432    ) -> Result<(), fidl::Error> {
64433        self.control_handle.inner.send::<fidl::encoding::ResultType<
64434            fidl::encoding::EmptyStruct,
64435            fidl_fuchsia_posix::Errno,
64436        >>(
64437            result,
64438            self.tx_id,
64439            0x995c600475b6d46,
64440            fidl::encoding::DynamicFlags::empty(),
64441        )
64442    }
64443}
64444
64445#[must_use = "FIDL methods require a response to be sent"]
64446#[derive(Debug)]
64447pub struct StreamSocketGetIpTypeOfServiceResponder {
64448    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64449    tx_id: u32,
64450}
64451
64452/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64453/// if the responder is dropped without sending a response, so that the client
64454/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64455impl std::ops::Drop for StreamSocketGetIpTypeOfServiceResponder {
64456    fn drop(&mut self) {
64457        self.control_handle.shutdown();
64458        // Safety: drops once, never accessed again
64459        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64460    }
64461}
64462
64463impl fidl::endpoints::Responder for StreamSocketGetIpTypeOfServiceResponder {
64464    type ControlHandle = StreamSocketControlHandle;
64465
64466    fn control_handle(&self) -> &StreamSocketControlHandle {
64467        &self.control_handle
64468    }
64469
64470    fn drop_without_shutdown(mut self) {
64471        // Safety: drops once, never accessed again due to mem::forget
64472        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64473        // Prevent Drop from running (which would shut down the channel)
64474        std::mem::forget(self);
64475    }
64476}
64477
64478impl StreamSocketGetIpTypeOfServiceResponder {
64479    /// Sends a response to the FIDL transaction.
64480    ///
64481    /// Sets the channel to shutdown if an error occurs.
64482    pub fn send(
64483        self,
64484        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
64485    ) -> Result<(), fidl::Error> {
64486        let _result = self.send_raw(result);
64487        if _result.is_err() {
64488            self.control_handle.shutdown();
64489        }
64490        self.drop_without_shutdown();
64491        _result
64492    }
64493
64494    /// Similar to "send" but does not shutdown the channel if an error occurs.
64495    pub fn send_no_shutdown_on_err(
64496        self,
64497        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
64498    ) -> Result<(), fidl::Error> {
64499        let _result = self.send_raw(result);
64500        self.drop_without_shutdown();
64501        _result
64502    }
64503
64504    fn send_raw(
64505        &self,
64506        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
64507    ) -> Result<(), fidl::Error> {
64508        self.control_handle.inner.send::<fidl::encoding::ResultType<
64509            BaseNetworkSocketGetIpTypeOfServiceResponse,
64510            fidl_fuchsia_posix::Errno,
64511        >>(
64512            result.map(|value| (value,)),
64513            self.tx_id,
64514            0x3814a04259f75fcb,
64515            fidl::encoding::DynamicFlags::empty(),
64516        )
64517    }
64518}
64519
64520#[must_use = "FIDL methods require a response to be sent"]
64521#[derive(Debug)]
64522pub struct StreamSocketSetIpTtlResponder {
64523    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64524    tx_id: u32,
64525}
64526
64527/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64528/// if the responder is dropped without sending a response, so that the client
64529/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64530impl std::ops::Drop for StreamSocketSetIpTtlResponder {
64531    fn drop(&mut self) {
64532        self.control_handle.shutdown();
64533        // Safety: drops once, never accessed again
64534        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64535    }
64536}
64537
64538impl fidl::endpoints::Responder for StreamSocketSetIpTtlResponder {
64539    type ControlHandle = StreamSocketControlHandle;
64540
64541    fn control_handle(&self) -> &StreamSocketControlHandle {
64542        &self.control_handle
64543    }
64544
64545    fn drop_without_shutdown(mut self) {
64546        // Safety: drops once, never accessed again due to mem::forget
64547        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64548        // Prevent Drop from running (which would shut down the channel)
64549        std::mem::forget(self);
64550    }
64551}
64552
64553impl StreamSocketSetIpTtlResponder {
64554    /// Sends a response to the FIDL transaction.
64555    ///
64556    /// Sets the channel to shutdown if an error occurs.
64557    pub fn send(
64558        self,
64559        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64560    ) -> Result<(), fidl::Error> {
64561        let _result = self.send_raw(result);
64562        if _result.is_err() {
64563            self.control_handle.shutdown();
64564        }
64565        self.drop_without_shutdown();
64566        _result
64567    }
64568
64569    /// Similar to "send" but does not shutdown the channel if an error occurs.
64570    pub fn send_no_shutdown_on_err(
64571        self,
64572        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64573    ) -> Result<(), fidl::Error> {
64574        let _result = self.send_raw(result);
64575        self.drop_without_shutdown();
64576        _result
64577    }
64578
64579    fn send_raw(
64580        &self,
64581        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64582    ) -> Result<(), fidl::Error> {
64583        self.control_handle.inner.send::<fidl::encoding::ResultType<
64584            fidl::encoding::EmptyStruct,
64585            fidl_fuchsia_posix::Errno,
64586        >>(
64587            result,
64588            self.tx_id,
64589            0x29e2424b433ae1ef,
64590            fidl::encoding::DynamicFlags::empty(),
64591        )
64592    }
64593}
64594
64595#[must_use = "FIDL methods require a response to be sent"]
64596#[derive(Debug)]
64597pub struct StreamSocketGetIpTtlResponder {
64598    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64599    tx_id: u32,
64600}
64601
64602/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64603/// if the responder is dropped without sending a response, so that the client
64604/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64605impl std::ops::Drop for StreamSocketGetIpTtlResponder {
64606    fn drop(&mut self) {
64607        self.control_handle.shutdown();
64608        // Safety: drops once, never accessed again
64609        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64610    }
64611}
64612
64613impl fidl::endpoints::Responder for StreamSocketGetIpTtlResponder {
64614    type ControlHandle = StreamSocketControlHandle;
64615
64616    fn control_handle(&self) -> &StreamSocketControlHandle {
64617        &self.control_handle
64618    }
64619
64620    fn drop_without_shutdown(mut self) {
64621        // Safety: drops once, never accessed again due to mem::forget
64622        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64623        // Prevent Drop from running (which would shut down the channel)
64624        std::mem::forget(self);
64625    }
64626}
64627
64628impl StreamSocketGetIpTtlResponder {
64629    /// Sends a response to the FIDL transaction.
64630    ///
64631    /// Sets the channel to shutdown if an error occurs.
64632    pub fn send(
64633        self,
64634        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
64635    ) -> Result<(), fidl::Error> {
64636        let _result = self.send_raw(result);
64637        if _result.is_err() {
64638            self.control_handle.shutdown();
64639        }
64640        self.drop_without_shutdown();
64641        _result
64642    }
64643
64644    /// Similar to "send" but does not shutdown the channel if an error occurs.
64645    pub fn send_no_shutdown_on_err(
64646        self,
64647        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
64648    ) -> Result<(), fidl::Error> {
64649        let _result = self.send_raw(result);
64650        self.drop_without_shutdown();
64651        _result
64652    }
64653
64654    fn send_raw(
64655        &self,
64656        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
64657    ) -> Result<(), fidl::Error> {
64658        self.control_handle.inner.send::<fidl::encoding::ResultType<
64659            BaseNetworkSocketGetIpTtlResponse,
64660            fidl_fuchsia_posix::Errno,
64661        >>(
64662            result.map(|value| (value,)),
64663            self.tx_id,
64664            0x47e47fa1f24da471,
64665            fidl::encoding::DynamicFlags::empty(),
64666        )
64667    }
64668}
64669
64670#[must_use = "FIDL methods require a response to be sent"]
64671#[derive(Debug)]
64672pub struct StreamSocketSetIpPacketInfoResponder {
64673    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64674    tx_id: u32,
64675}
64676
64677/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64678/// if the responder is dropped without sending a response, so that the client
64679/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64680impl std::ops::Drop for StreamSocketSetIpPacketInfoResponder {
64681    fn drop(&mut self) {
64682        self.control_handle.shutdown();
64683        // Safety: drops once, never accessed again
64684        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64685    }
64686}
64687
64688impl fidl::endpoints::Responder for StreamSocketSetIpPacketInfoResponder {
64689    type ControlHandle = StreamSocketControlHandle;
64690
64691    fn control_handle(&self) -> &StreamSocketControlHandle {
64692        &self.control_handle
64693    }
64694
64695    fn drop_without_shutdown(mut self) {
64696        // Safety: drops once, never accessed again due to mem::forget
64697        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64698        // Prevent Drop from running (which would shut down the channel)
64699        std::mem::forget(self);
64700    }
64701}
64702
64703impl StreamSocketSetIpPacketInfoResponder {
64704    /// Sends a response to the FIDL transaction.
64705    ///
64706    /// Sets the channel to shutdown if an error occurs.
64707    pub fn send(
64708        self,
64709        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64710    ) -> Result<(), fidl::Error> {
64711        let _result = self.send_raw(result);
64712        if _result.is_err() {
64713            self.control_handle.shutdown();
64714        }
64715        self.drop_without_shutdown();
64716        _result
64717    }
64718
64719    /// Similar to "send" but does not shutdown the channel if an error occurs.
64720    pub fn send_no_shutdown_on_err(
64721        self,
64722        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64723    ) -> Result<(), fidl::Error> {
64724        let _result = self.send_raw(result);
64725        self.drop_without_shutdown();
64726        _result
64727    }
64728
64729    fn send_raw(
64730        &self,
64731        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64732    ) -> Result<(), fidl::Error> {
64733        self.control_handle.inner.send::<fidl::encoding::ResultType<
64734            fidl::encoding::EmptyStruct,
64735            fidl_fuchsia_posix::Errno,
64736        >>(
64737            result,
64738            self.tx_id,
64739            0x392d16bee20c0e16,
64740            fidl::encoding::DynamicFlags::empty(),
64741        )
64742    }
64743}
64744
64745#[must_use = "FIDL methods require a response to be sent"]
64746#[derive(Debug)]
64747pub struct StreamSocketGetIpPacketInfoResponder {
64748    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64749    tx_id: u32,
64750}
64751
64752/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64753/// if the responder is dropped without sending a response, so that the client
64754/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64755impl std::ops::Drop for StreamSocketGetIpPacketInfoResponder {
64756    fn drop(&mut self) {
64757        self.control_handle.shutdown();
64758        // Safety: drops once, never accessed again
64759        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64760    }
64761}
64762
64763impl fidl::endpoints::Responder for StreamSocketGetIpPacketInfoResponder {
64764    type ControlHandle = StreamSocketControlHandle;
64765
64766    fn control_handle(&self) -> &StreamSocketControlHandle {
64767        &self.control_handle
64768    }
64769
64770    fn drop_without_shutdown(mut self) {
64771        // Safety: drops once, never accessed again due to mem::forget
64772        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64773        // Prevent Drop from running (which would shut down the channel)
64774        std::mem::forget(self);
64775    }
64776}
64777
64778impl StreamSocketGetIpPacketInfoResponder {
64779    /// Sends a response to the FIDL transaction.
64780    ///
64781    /// Sets the channel to shutdown if an error occurs.
64782    pub fn send(
64783        self,
64784        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
64785    ) -> Result<(), fidl::Error> {
64786        let _result = self.send_raw(result);
64787        if _result.is_err() {
64788            self.control_handle.shutdown();
64789        }
64790        self.drop_without_shutdown();
64791        _result
64792    }
64793
64794    /// Similar to "send" but does not shutdown the channel if an error occurs.
64795    pub fn send_no_shutdown_on_err(
64796        self,
64797        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
64798    ) -> Result<(), fidl::Error> {
64799        let _result = self.send_raw(result);
64800        self.drop_without_shutdown();
64801        _result
64802    }
64803
64804    fn send_raw(
64805        &self,
64806        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
64807    ) -> Result<(), fidl::Error> {
64808        self.control_handle.inner.send::<fidl::encoding::ResultType<
64809            BaseNetworkSocketGetIpPacketInfoResponse,
64810            fidl_fuchsia_posix::Errno,
64811        >>(
64812            result.map(|value| (value,)),
64813            self.tx_id,
64814            0x54b505f242280740,
64815            fidl::encoding::DynamicFlags::empty(),
64816        )
64817    }
64818}
64819
64820#[must_use = "FIDL methods require a response to be sent"]
64821#[derive(Debug)]
64822pub struct StreamSocketSetIpReceiveTypeOfServiceResponder {
64823    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64824    tx_id: u32,
64825}
64826
64827/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64828/// if the responder is dropped without sending a response, so that the client
64829/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64830impl std::ops::Drop for StreamSocketSetIpReceiveTypeOfServiceResponder {
64831    fn drop(&mut self) {
64832        self.control_handle.shutdown();
64833        // Safety: drops once, never accessed again
64834        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64835    }
64836}
64837
64838impl fidl::endpoints::Responder for StreamSocketSetIpReceiveTypeOfServiceResponder {
64839    type ControlHandle = StreamSocketControlHandle;
64840
64841    fn control_handle(&self) -> &StreamSocketControlHandle {
64842        &self.control_handle
64843    }
64844
64845    fn drop_without_shutdown(mut self) {
64846        // Safety: drops once, never accessed again due to mem::forget
64847        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64848        // Prevent Drop from running (which would shut down the channel)
64849        std::mem::forget(self);
64850    }
64851}
64852
64853impl StreamSocketSetIpReceiveTypeOfServiceResponder {
64854    /// Sends a response to the FIDL transaction.
64855    ///
64856    /// Sets the channel to shutdown if an error occurs.
64857    pub fn send(
64858        self,
64859        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64860    ) -> Result<(), fidl::Error> {
64861        let _result = self.send_raw(result);
64862        if _result.is_err() {
64863            self.control_handle.shutdown();
64864        }
64865        self.drop_without_shutdown();
64866        _result
64867    }
64868
64869    /// Similar to "send" but does not shutdown the channel if an error occurs.
64870    pub fn send_no_shutdown_on_err(
64871        self,
64872        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64873    ) -> Result<(), fidl::Error> {
64874        let _result = self.send_raw(result);
64875        self.drop_without_shutdown();
64876        _result
64877    }
64878
64879    fn send_raw(
64880        &self,
64881        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64882    ) -> Result<(), fidl::Error> {
64883        self.control_handle.inner.send::<fidl::encoding::ResultType<
64884            fidl::encoding::EmptyStruct,
64885            fidl_fuchsia_posix::Errno,
64886        >>(
64887            result,
64888            self.tx_id,
64889            0x6c4f6714995f84ef,
64890            fidl::encoding::DynamicFlags::empty(),
64891        )
64892    }
64893}
64894
64895#[must_use = "FIDL methods require a response to be sent"]
64896#[derive(Debug)]
64897pub struct StreamSocketGetIpReceiveTypeOfServiceResponder {
64898    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64899    tx_id: u32,
64900}
64901
64902/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64903/// if the responder is dropped without sending a response, so that the client
64904/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64905impl std::ops::Drop for StreamSocketGetIpReceiveTypeOfServiceResponder {
64906    fn drop(&mut self) {
64907        self.control_handle.shutdown();
64908        // Safety: drops once, never accessed again
64909        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64910    }
64911}
64912
64913impl fidl::endpoints::Responder for StreamSocketGetIpReceiveTypeOfServiceResponder {
64914    type ControlHandle = StreamSocketControlHandle;
64915
64916    fn control_handle(&self) -> &StreamSocketControlHandle {
64917        &self.control_handle
64918    }
64919
64920    fn drop_without_shutdown(mut self) {
64921        // Safety: drops once, never accessed again due to mem::forget
64922        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64923        // Prevent Drop from running (which would shut down the channel)
64924        std::mem::forget(self);
64925    }
64926}
64927
64928impl StreamSocketGetIpReceiveTypeOfServiceResponder {
64929    /// Sends a response to the FIDL transaction.
64930    ///
64931    /// Sets the channel to shutdown if an error occurs.
64932    pub fn send(
64933        self,
64934        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
64935    ) -> Result<(), fidl::Error> {
64936        let _result = self.send_raw(result);
64937        if _result.is_err() {
64938            self.control_handle.shutdown();
64939        }
64940        self.drop_without_shutdown();
64941        _result
64942    }
64943
64944    /// Similar to "send" but does not shutdown the channel if an error occurs.
64945    pub fn send_no_shutdown_on_err(
64946        self,
64947        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
64948    ) -> Result<(), fidl::Error> {
64949        let _result = self.send_raw(result);
64950        self.drop_without_shutdown();
64951        _result
64952    }
64953
64954    fn send_raw(
64955        &self,
64956        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
64957    ) -> Result<(), fidl::Error> {
64958        self.control_handle.inner.send::<fidl::encoding::ResultType<
64959            BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
64960            fidl_fuchsia_posix::Errno,
64961        >>(
64962            result.map(|value| (value,)),
64963            self.tx_id,
64964            0x4158ba7dc2795960,
64965            fidl::encoding::DynamicFlags::empty(),
64966        )
64967    }
64968}
64969
64970#[must_use = "FIDL methods require a response to be sent"]
64971#[derive(Debug)]
64972pub struct StreamSocketSetIpReceiveTtlResponder {
64973    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64974    tx_id: u32,
64975}
64976
64977/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64978/// if the responder is dropped without sending a response, so that the client
64979/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64980impl std::ops::Drop for StreamSocketSetIpReceiveTtlResponder {
64981    fn drop(&mut self) {
64982        self.control_handle.shutdown();
64983        // Safety: drops once, never accessed again
64984        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64985    }
64986}
64987
64988impl fidl::endpoints::Responder for StreamSocketSetIpReceiveTtlResponder {
64989    type ControlHandle = StreamSocketControlHandle;
64990
64991    fn control_handle(&self) -> &StreamSocketControlHandle {
64992        &self.control_handle
64993    }
64994
64995    fn drop_without_shutdown(mut self) {
64996        // Safety: drops once, never accessed again due to mem::forget
64997        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64998        // Prevent Drop from running (which would shut down the channel)
64999        std::mem::forget(self);
65000    }
65001}
65002
65003impl StreamSocketSetIpReceiveTtlResponder {
65004    /// Sends a response to the FIDL transaction.
65005    ///
65006    /// Sets the channel to shutdown if an error occurs.
65007    pub fn send(
65008        self,
65009        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65010    ) -> Result<(), fidl::Error> {
65011        let _result = self.send_raw(result);
65012        if _result.is_err() {
65013            self.control_handle.shutdown();
65014        }
65015        self.drop_without_shutdown();
65016        _result
65017    }
65018
65019    /// Similar to "send" but does not shutdown the channel if an error occurs.
65020    pub fn send_no_shutdown_on_err(
65021        self,
65022        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65023    ) -> Result<(), fidl::Error> {
65024        let _result = self.send_raw(result);
65025        self.drop_without_shutdown();
65026        _result
65027    }
65028
65029    fn send_raw(
65030        &self,
65031        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65032    ) -> Result<(), fidl::Error> {
65033        self.control_handle.inner.send::<fidl::encoding::ResultType<
65034            fidl::encoding::EmptyStruct,
65035            fidl_fuchsia_posix::Errno,
65036        >>(
65037            result,
65038            self.tx_id,
65039            0x46f15be0ce0ab82b,
65040            fidl::encoding::DynamicFlags::empty(),
65041        )
65042    }
65043}
65044
65045#[must_use = "FIDL methods require a response to be sent"]
65046#[derive(Debug)]
65047pub struct StreamSocketGetIpReceiveTtlResponder {
65048    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65049    tx_id: u32,
65050}
65051
65052/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65053/// if the responder is dropped without sending a response, so that the client
65054/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65055impl std::ops::Drop for StreamSocketGetIpReceiveTtlResponder {
65056    fn drop(&mut self) {
65057        self.control_handle.shutdown();
65058        // Safety: drops once, never accessed again
65059        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65060    }
65061}
65062
65063impl fidl::endpoints::Responder for StreamSocketGetIpReceiveTtlResponder {
65064    type ControlHandle = StreamSocketControlHandle;
65065
65066    fn control_handle(&self) -> &StreamSocketControlHandle {
65067        &self.control_handle
65068    }
65069
65070    fn drop_without_shutdown(mut self) {
65071        // Safety: drops once, never accessed again due to mem::forget
65072        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65073        // Prevent Drop from running (which would shut down the channel)
65074        std::mem::forget(self);
65075    }
65076}
65077
65078impl StreamSocketGetIpReceiveTtlResponder {
65079    /// Sends a response to the FIDL transaction.
65080    ///
65081    /// Sets the channel to shutdown if an error occurs.
65082    pub fn send(
65083        self,
65084        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65085    ) -> Result<(), fidl::Error> {
65086        let _result = self.send_raw(result);
65087        if _result.is_err() {
65088            self.control_handle.shutdown();
65089        }
65090        self.drop_without_shutdown();
65091        _result
65092    }
65093
65094    /// Similar to "send" but does not shutdown the channel if an error occurs.
65095    pub fn send_no_shutdown_on_err(
65096        self,
65097        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65098    ) -> Result<(), fidl::Error> {
65099        let _result = self.send_raw(result);
65100        self.drop_without_shutdown();
65101        _result
65102    }
65103
65104    fn send_raw(
65105        &self,
65106        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65107    ) -> Result<(), fidl::Error> {
65108        self.control_handle.inner.send::<fidl::encoding::ResultType<
65109            BaseNetworkSocketGetIpReceiveTtlResponse,
65110            fidl_fuchsia_posix::Errno,
65111        >>(
65112            result.map(|value| (value,)),
65113            self.tx_id,
65114            0x678ddd5a5dfa2eb5,
65115            fidl::encoding::DynamicFlags::empty(),
65116        )
65117    }
65118}
65119
65120#[must_use = "FIDL methods require a response to be sent"]
65121#[derive(Debug)]
65122pub struct StreamSocketSetIpMulticastInterfaceResponder {
65123    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65124    tx_id: u32,
65125}
65126
65127/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65128/// if the responder is dropped without sending a response, so that the client
65129/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65130impl std::ops::Drop for StreamSocketSetIpMulticastInterfaceResponder {
65131    fn drop(&mut self) {
65132        self.control_handle.shutdown();
65133        // Safety: drops once, never accessed again
65134        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65135    }
65136}
65137
65138impl fidl::endpoints::Responder for StreamSocketSetIpMulticastInterfaceResponder {
65139    type ControlHandle = StreamSocketControlHandle;
65140
65141    fn control_handle(&self) -> &StreamSocketControlHandle {
65142        &self.control_handle
65143    }
65144
65145    fn drop_without_shutdown(mut self) {
65146        // Safety: drops once, never accessed again due to mem::forget
65147        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65148        // Prevent Drop from running (which would shut down the channel)
65149        std::mem::forget(self);
65150    }
65151}
65152
65153impl StreamSocketSetIpMulticastInterfaceResponder {
65154    /// Sends a response to the FIDL transaction.
65155    ///
65156    /// Sets the channel to shutdown if an error occurs.
65157    pub fn send(
65158        self,
65159        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65160    ) -> Result<(), fidl::Error> {
65161        let _result = self.send_raw(result);
65162        if _result.is_err() {
65163            self.control_handle.shutdown();
65164        }
65165        self.drop_without_shutdown();
65166        _result
65167    }
65168
65169    /// Similar to "send" but does not shutdown the channel if an error occurs.
65170    pub fn send_no_shutdown_on_err(
65171        self,
65172        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65173    ) -> Result<(), fidl::Error> {
65174        let _result = self.send_raw(result);
65175        self.drop_without_shutdown();
65176        _result
65177    }
65178
65179    fn send_raw(
65180        &self,
65181        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65182    ) -> Result<(), fidl::Error> {
65183        self.control_handle.inner.send::<fidl::encoding::ResultType<
65184            fidl::encoding::EmptyStruct,
65185            fidl_fuchsia_posix::Errno,
65186        >>(
65187            result,
65188            self.tx_id,
65189            0x752fbfa9b12befe,
65190            fidl::encoding::DynamicFlags::empty(),
65191        )
65192    }
65193}
65194
65195#[must_use = "FIDL methods require a response to be sent"]
65196#[derive(Debug)]
65197pub struct StreamSocketGetIpMulticastInterfaceResponder {
65198    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65199    tx_id: u32,
65200}
65201
65202/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65203/// if the responder is dropped without sending a response, so that the client
65204/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65205impl std::ops::Drop for StreamSocketGetIpMulticastInterfaceResponder {
65206    fn drop(&mut self) {
65207        self.control_handle.shutdown();
65208        // Safety: drops once, never accessed again
65209        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65210    }
65211}
65212
65213impl fidl::endpoints::Responder for StreamSocketGetIpMulticastInterfaceResponder {
65214    type ControlHandle = StreamSocketControlHandle;
65215
65216    fn control_handle(&self) -> &StreamSocketControlHandle {
65217        &self.control_handle
65218    }
65219
65220    fn drop_without_shutdown(mut self) {
65221        // Safety: drops once, never accessed again due to mem::forget
65222        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65223        // Prevent Drop from running (which would shut down the channel)
65224        std::mem::forget(self);
65225    }
65226}
65227
65228impl StreamSocketGetIpMulticastInterfaceResponder {
65229    /// Sends a response to the FIDL transaction.
65230    ///
65231    /// Sets the channel to shutdown if an error occurs.
65232    pub fn send(
65233        self,
65234        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
65235    ) -> Result<(), fidl::Error> {
65236        let _result = self.send_raw(result);
65237        if _result.is_err() {
65238            self.control_handle.shutdown();
65239        }
65240        self.drop_without_shutdown();
65241        _result
65242    }
65243
65244    /// Similar to "send" but does not shutdown the channel if an error occurs.
65245    pub fn send_no_shutdown_on_err(
65246        self,
65247        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
65248    ) -> Result<(), fidl::Error> {
65249        let _result = self.send_raw(result);
65250        self.drop_without_shutdown();
65251        _result
65252    }
65253
65254    fn send_raw(
65255        &self,
65256        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
65257    ) -> Result<(), fidl::Error> {
65258        self.control_handle.inner.send::<fidl::encoding::ResultType<
65259            BaseNetworkSocketGetIpMulticastInterfaceResponse,
65260            fidl_fuchsia_posix::Errno,
65261        >>(
65262            result.map(|value| (value,)),
65263            self.tx_id,
65264            0x320bd14c4df046c4,
65265            fidl::encoding::DynamicFlags::empty(),
65266        )
65267    }
65268}
65269
65270#[must_use = "FIDL methods require a response to be sent"]
65271#[derive(Debug)]
65272pub struct StreamSocketSetIpMulticastTtlResponder {
65273    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65274    tx_id: u32,
65275}
65276
65277/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65278/// if the responder is dropped without sending a response, so that the client
65279/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65280impl std::ops::Drop for StreamSocketSetIpMulticastTtlResponder {
65281    fn drop(&mut self) {
65282        self.control_handle.shutdown();
65283        // Safety: drops once, never accessed again
65284        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65285    }
65286}
65287
65288impl fidl::endpoints::Responder for StreamSocketSetIpMulticastTtlResponder {
65289    type ControlHandle = StreamSocketControlHandle;
65290
65291    fn control_handle(&self) -> &StreamSocketControlHandle {
65292        &self.control_handle
65293    }
65294
65295    fn drop_without_shutdown(mut self) {
65296        // Safety: drops once, never accessed again due to mem::forget
65297        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65298        // Prevent Drop from running (which would shut down the channel)
65299        std::mem::forget(self);
65300    }
65301}
65302
65303impl StreamSocketSetIpMulticastTtlResponder {
65304    /// Sends a response to the FIDL transaction.
65305    ///
65306    /// Sets the channel to shutdown if an error occurs.
65307    pub fn send(
65308        self,
65309        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65310    ) -> Result<(), fidl::Error> {
65311        let _result = self.send_raw(result);
65312        if _result.is_err() {
65313            self.control_handle.shutdown();
65314        }
65315        self.drop_without_shutdown();
65316        _result
65317    }
65318
65319    /// Similar to "send" but does not shutdown the channel if an error occurs.
65320    pub fn send_no_shutdown_on_err(
65321        self,
65322        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65323    ) -> Result<(), fidl::Error> {
65324        let _result = self.send_raw(result);
65325        self.drop_without_shutdown();
65326        _result
65327    }
65328
65329    fn send_raw(
65330        &self,
65331        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65332    ) -> Result<(), fidl::Error> {
65333        self.control_handle.inner.send::<fidl::encoding::ResultType<
65334            fidl::encoding::EmptyStruct,
65335            fidl_fuchsia_posix::Errno,
65336        >>(
65337            result,
65338            self.tx_id,
65339            0x63134d53772916a1,
65340            fidl::encoding::DynamicFlags::empty(),
65341        )
65342    }
65343}
65344
65345#[must_use = "FIDL methods require a response to be sent"]
65346#[derive(Debug)]
65347pub struct StreamSocketGetIpMulticastTtlResponder {
65348    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65349    tx_id: u32,
65350}
65351
65352/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65353/// if the responder is dropped without sending a response, so that the client
65354/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65355impl std::ops::Drop for StreamSocketGetIpMulticastTtlResponder {
65356    fn drop(&mut self) {
65357        self.control_handle.shutdown();
65358        // Safety: drops once, never accessed again
65359        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65360    }
65361}
65362
65363impl fidl::endpoints::Responder for StreamSocketGetIpMulticastTtlResponder {
65364    type ControlHandle = StreamSocketControlHandle;
65365
65366    fn control_handle(&self) -> &StreamSocketControlHandle {
65367        &self.control_handle
65368    }
65369
65370    fn drop_without_shutdown(mut self) {
65371        // Safety: drops once, never accessed again due to mem::forget
65372        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65373        // Prevent Drop from running (which would shut down the channel)
65374        std::mem::forget(self);
65375    }
65376}
65377
65378impl StreamSocketGetIpMulticastTtlResponder {
65379    /// Sends a response to the FIDL transaction.
65380    ///
65381    /// Sets the channel to shutdown if an error occurs.
65382    pub fn send(
65383        self,
65384        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
65385    ) -> Result<(), fidl::Error> {
65386        let _result = self.send_raw(result);
65387        if _result.is_err() {
65388            self.control_handle.shutdown();
65389        }
65390        self.drop_without_shutdown();
65391        _result
65392    }
65393
65394    /// Similar to "send" but does not shutdown the channel if an error occurs.
65395    pub fn send_no_shutdown_on_err(
65396        self,
65397        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
65398    ) -> Result<(), fidl::Error> {
65399        let _result = self.send_raw(result);
65400        self.drop_without_shutdown();
65401        _result
65402    }
65403
65404    fn send_raw(
65405        &self,
65406        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
65407    ) -> Result<(), fidl::Error> {
65408        self.control_handle.inner.send::<fidl::encoding::ResultType<
65409            BaseNetworkSocketGetIpMulticastTtlResponse,
65410            fidl_fuchsia_posix::Errno,
65411        >>(
65412            result.map(|value| (value,)),
65413            self.tx_id,
65414            0x4665cd378f39e1a,
65415            fidl::encoding::DynamicFlags::empty(),
65416        )
65417    }
65418}
65419
65420#[must_use = "FIDL methods require a response to be sent"]
65421#[derive(Debug)]
65422pub struct StreamSocketSetIpMulticastLoopbackResponder {
65423    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65424    tx_id: u32,
65425}
65426
65427/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65428/// if the responder is dropped without sending a response, so that the client
65429/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65430impl std::ops::Drop for StreamSocketSetIpMulticastLoopbackResponder {
65431    fn drop(&mut self) {
65432        self.control_handle.shutdown();
65433        // Safety: drops once, never accessed again
65434        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65435    }
65436}
65437
65438impl fidl::endpoints::Responder for StreamSocketSetIpMulticastLoopbackResponder {
65439    type ControlHandle = StreamSocketControlHandle;
65440
65441    fn control_handle(&self) -> &StreamSocketControlHandle {
65442        &self.control_handle
65443    }
65444
65445    fn drop_without_shutdown(mut self) {
65446        // Safety: drops once, never accessed again due to mem::forget
65447        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65448        // Prevent Drop from running (which would shut down the channel)
65449        std::mem::forget(self);
65450    }
65451}
65452
65453impl StreamSocketSetIpMulticastLoopbackResponder {
65454    /// Sends a response to the FIDL transaction.
65455    ///
65456    /// Sets the channel to shutdown if an error occurs.
65457    pub fn send(
65458        self,
65459        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65460    ) -> Result<(), fidl::Error> {
65461        let _result = self.send_raw(result);
65462        if _result.is_err() {
65463            self.control_handle.shutdown();
65464        }
65465        self.drop_without_shutdown();
65466        _result
65467    }
65468
65469    /// Similar to "send" but does not shutdown the channel if an error occurs.
65470    pub fn send_no_shutdown_on_err(
65471        self,
65472        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65473    ) -> Result<(), fidl::Error> {
65474        let _result = self.send_raw(result);
65475        self.drop_without_shutdown();
65476        _result
65477    }
65478
65479    fn send_raw(
65480        &self,
65481        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65482    ) -> Result<(), fidl::Error> {
65483        self.control_handle.inner.send::<fidl::encoding::ResultType<
65484            fidl::encoding::EmptyStruct,
65485            fidl_fuchsia_posix::Errno,
65486        >>(
65487            result,
65488            self.tx_id,
65489            0x20c55c11f00943ea,
65490            fidl::encoding::DynamicFlags::empty(),
65491        )
65492    }
65493}
65494
65495#[must_use = "FIDL methods require a response to be sent"]
65496#[derive(Debug)]
65497pub struct StreamSocketGetIpMulticastLoopbackResponder {
65498    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65499    tx_id: u32,
65500}
65501
65502/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65503/// if the responder is dropped without sending a response, so that the client
65504/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65505impl std::ops::Drop for StreamSocketGetIpMulticastLoopbackResponder {
65506    fn drop(&mut self) {
65507        self.control_handle.shutdown();
65508        // Safety: drops once, never accessed again
65509        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65510    }
65511}
65512
65513impl fidl::endpoints::Responder for StreamSocketGetIpMulticastLoopbackResponder {
65514    type ControlHandle = StreamSocketControlHandle;
65515
65516    fn control_handle(&self) -> &StreamSocketControlHandle {
65517        &self.control_handle
65518    }
65519
65520    fn drop_without_shutdown(mut self) {
65521        // Safety: drops once, never accessed again due to mem::forget
65522        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65523        // Prevent Drop from running (which would shut down the channel)
65524        std::mem::forget(self);
65525    }
65526}
65527
65528impl StreamSocketGetIpMulticastLoopbackResponder {
65529    /// Sends a response to the FIDL transaction.
65530    ///
65531    /// Sets the channel to shutdown if an error occurs.
65532    pub fn send(
65533        self,
65534        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65535    ) -> Result<(), fidl::Error> {
65536        let _result = self.send_raw(result);
65537        if _result.is_err() {
65538            self.control_handle.shutdown();
65539        }
65540        self.drop_without_shutdown();
65541        _result
65542    }
65543
65544    /// Similar to "send" but does not shutdown the channel if an error occurs.
65545    pub fn send_no_shutdown_on_err(
65546        self,
65547        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65548    ) -> Result<(), fidl::Error> {
65549        let _result = self.send_raw(result);
65550        self.drop_without_shutdown();
65551        _result
65552    }
65553
65554    fn send_raw(
65555        &self,
65556        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65557    ) -> Result<(), fidl::Error> {
65558        self.control_handle.inner.send::<fidl::encoding::ResultType<
65559            BaseNetworkSocketGetIpMulticastLoopbackResponse,
65560            fidl_fuchsia_posix::Errno,
65561        >>(
65562            result.map(|value| (value,)),
65563            self.tx_id,
65564            0x3b6b26ff558298f2,
65565            fidl::encoding::DynamicFlags::empty(),
65566        )
65567    }
65568}
65569
65570#[must_use = "FIDL methods require a response to be sent"]
65571#[derive(Debug)]
65572pub struct StreamSocketAddIpMembershipResponder {
65573    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65574    tx_id: u32,
65575}
65576
65577/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65578/// if the responder is dropped without sending a response, so that the client
65579/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65580impl std::ops::Drop for StreamSocketAddIpMembershipResponder {
65581    fn drop(&mut self) {
65582        self.control_handle.shutdown();
65583        // Safety: drops once, never accessed again
65584        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65585    }
65586}
65587
65588impl fidl::endpoints::Responder for StreamSocketAddIpMembershipResponder {
65589    type ControlHandle = StreamSocketControlHandle;
65590
65591    fn control_handle(&self) -> &StreamSocketControlHandle {
65592        &self.control_handle
65593    }
65594
65595    fn drop_without_shutdown(mut self) {
65596        // Safety: drops once, never accessed again due to mem::forget
65597        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65598        // Prevent Drop from running (which would shut down the channel)
65599        std::mem::forget(self);
65600    }
65601}
65602
65603impl StreamSocketAddIpMembershipResponder {
65604    /// Sends a response to the FIDL transaction.
65605    ///
65606    /// Sets the channel to shutdown if an error occurs.
65607    pub fn send(
65608        self,
65609        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65610    ) -> Result<(), fidl::Error> {
65611        let _result = self.send_raw(result);
65612        if _result.is_err() {
65613            self.control_handle.shutdown();
65614        }
65615        self.drop_without_shutdown();
65616        _result
65617    }
65618
65619    /// Similar to "send" but does not shutdown the channel if an error occurs.
65620    pub fn send_no_shutdown_on_err(
65621        self,
65622        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65623    ) -> Result<(), fidl::Error> {
65624        let _result = self.send_raw(result);
65625        self.drop_without_shutdown();
65626        _result
65627    }
65628
65629    fn send_raw(
65630        &self,
65631        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65632    ) -> Result<(), fidl::Error> {
65633        self.control_handle.inner.send::<fidl::encoding::ResultType<
65634            fidl::encoding::EmptyStruct,
65635            fidl_fuchsia_posix::Errno,
65636        >>(
65637            result,
65638            self.tx_id,
65639            0x76bc7df115a3b4d0,
65640            fidl::encoding::DynamicFlags::empty(),
65641        )
65642    }
65643}
65644
65645#[must_use = "FIDL methods require a response to be sent"]
65646#[derive(Debug)]
65647pub struct StreamSocketDropIpMembershipResponder {
65648    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65649    tx_id: u32,
65650}
65651
65652/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65653/// if the responder is dropped without sending a response, so that the client
65654/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65655impl std::ops::Drop for StreamSocketDropIpMembershipResponder {
65656    fn drop(&mut self) {
65657        self.control_handle.shutdown();
65658        // Safety: drops once, never accessed again
65659        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65660    }
65661}
65662
65663impl fidl::endpoints::Responder for StreamSocketDropIpMembershipResponder {
65664    type ControlHandle = StreamSocketControlHandle;
65665
65666    fn control_handle(&self) -> &StreamSocketControlHandle {
65667        &self.control_handle
65668    }
65669
65670    fn drop_without_shutdown(mut self) {
65671        // Safety: drops once, never accessed again due to mem::forget
65672        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65673        // Prevent Drop from running (which would shut down the channel)
65674        std::mem::forget(self);
65675    }
65676}
65677
65678impl StreamSocketDropIpMembershipResponder {
65679    /// Sends a response to the FIDL transaction.
65680    ///
65681    /// Sets the channel to shutdown if an error occurs.
65682    pub fn send(
65683        self,
65684        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65685    ) -> Result<(), fidl::Error> {
65686        let _result = self.send_raw(result);
65687        if _result.is_err() {
65688            self.control_handle.shutdown();
65689        }
65690        self.drop_without_shutdown();
65691        _result
65692    }
65693
65694    /// Similar to "send" but does not shutdown the channel if an error occurs.
65695    pub fn send_no_shutdown_on_err(
65696        self,
65697        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65698    ) -> Result<(), fidl::Error> {
65699        let _result = self.send_raw(result);
65700        self.drop_without_shutdown();
65701        _result
65702    }
65703
65704    fn send_raw(
65705        &self,
65706        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65707    ) -> Result<(), fidl::Error> {
65708        self.control_handle.inner.send::<fidl::encoding::ResultType<
65709            fidl::encoding::EmptyStruct,
65710            fidl_fuchsia_posix::Errno,
65711        >>(
65712            result,
65713            self.tx_id,
65714            0x2888f3099188d03,
65715            fidl::encoding::DynamicFlags::empty(),
65716        )
65717    }
65718}
65719
65720#[must_use = "FIDL methods require a response to be sent"]
65721#[derive(Debug)]
65722pub struct StreamSocketSetIpTransparentResponder {
65723    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65724    tx_id: u32,
65725}
65726
65727/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65728/// if the responder is dropped without sending a response, so that the client
65729/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65730impl std::ops::Drop for StreamSocketSetIpTransparentResponder {
65731    fn drop(&mut self) {
65732        self.control_handle.shutdown();
65733        // Safety: drops once, never accessed again
65734        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65735    }
65736}
65737
65738impl fidl::endpoints::Responder for StreamSocketSetIpTransparentResponder {
65739    type ControlHandle = StreamSocketControlHandle;
65740
65741    fn control_handle(&self) -> &StreamSocketControlHandle {
65742        &self.control_handle
65743    }
65744
65745    fn drop_without_shutdown(mut self) {
65746        // Safety: drops once, never accessed again due to mem::forget
65747        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65748        // Prevent Drop from running (which would shut down the channel)
65749        std::mem::forget(self);
65750    }
65751}
65752
65753impl StreamSocketSetIpTransparentResponder {
65754    /// Sends a response to the FIDL transaction.
65755    ///
65756    /// Sets the channel to shutdown if an error occurs.
65757    pub fn send(
65758        self,
65759        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65760    ) -> Result<(), fidl::Error> {
65761        let _result = self.send_raw(result);
65762        if _result.is_err() {
65763            self.control_handle.shutdown();
65764        }
65765        self.drop_without_shutdown();
65766        _result
65767    }
65768
65769    /// Similar to "send" but does not shutdown the channel if an error occurs.
65770    pub fn send_no_shutdown_on_err(
65771        self,
65772        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65773    ) -> Result<(), fidl::Error> {
65774        let _result = self.send_raw(result);
65775        self.drop_without_shutdown();
65776        _result
65777    }
65778
65779    fn send_raw(
65780        &self,
65781        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65782    ) -> Result<(), fidl::Error> {
65783        self.control_handle.inner.send::<fidl::encoding::ResultType<
65784            fidl::encoding::EmptyStruct,
65785            fidl_fuchsia_posix::Errno,
65786        >>(
65787            result,
65788            self.tx_id,
65789            0x1ae532b0c066e3a0,
65790            fidl::encoding::DynamicFlags::empty(),
65791        )
65792    }
65793}
65794
65795#[must_use = "FIDL methods require a response to be sent"]
65796#[derive(Debug)]
65797pub struct StreamSocketGetIpTransparentResponder {
65798    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65799    tx_id: u32,
65800}
65801
65802/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65803/// if the responder is dropped without sending a response, so that the client
65804/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65805impl std::ops::Drop for StreamSocketGetIpTransparentResponder {
65806    fn drop(&mut self) {
65807        self.control_handle.shutdown();
65808        // Safety: drops once, never accessed again
65809        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65810    }
65811}
65812
65813impl fidl::endpoints::Responder for StreamSocketGetIpTransparentResponder {
65814    type ControlHandle = StreamSocketControlHandle;
65815
65816    fn control_handle(&self) -> &StreamSocketControlHandle {
65817        &self.control_handle
65818    }
65819
65820    fn drop_without_shutdown(mut self) {
65821        // Safety: drops once, never accessed again due to mem::forget
65822        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65823        // Prevent Drop from running (which would shut down the channel)
65824        std::mem::forget(self);
65825    }
65826}
65827
65828impl StreamSocketGetIpTransparentResponder {
65829    /// Sends a response to the FIDL transaction.
65830    ///
65831    /// Sets the channel to shutdown if an error occurs.
65832    pub fn send(
65833        self,
65834        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65835    ) -> Result<(), fidl::Error> {
65836        let _result = self.send_raw(result);
65837        if _result.is_err() {
65838            self.control_handle.shutdown();
65839        }
65840        self.drop_without_shutdown();
65841        _result
65842    }
65843
65844    /// Similar to "send" but does not shutdown the channel if an error occurs.
65845    pub fn send_no_shutdown_on_err(
65846        self,
65847        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65848    ) -> Result<(), fidl::Error> {
65849        let _result = self.send_raw(result);
65850        self.drop_without_shutdown();
65851        _result
65852    }
65853
65854    fn send_raw(
65855        &self,
65856        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65857    ) -> Result<(), fidl::Error> {
65858        self.control_handle.inner.send::<fidl::encoding::ResultType<
65859            BaseNetworkSocketGetIpTransparentResponse,
65860            fidl_fuchsia_posix::Errno,
65861        >>(
65862            result.map(|value| (value,)),
65863            self.tx_id,
65864            0x51d43695962ebfb5,
65865            fidl::encoding::DynamicFlags::empty(),
65866        )
65867    }
65868}
65869
65870#[must_use = "FIDL methods require a response to be sent"]
65871#[derive(Debug)]
65872pub struct StreamSocketSetIpReceiveOriginalDestinationAddressResponder {
65873    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65874    tx_id: u32,
65875}
65876
65877/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65878/// if the responder is dropped without sending a response, so that the client
65879/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65880impl std::ops::Drop for StreamSocketSetIpReceiveOriginalDestinationAddressResponder {
65881    fn drop(&mut self) {
65882        self.control_handle.shutdown();
65883        // Safety: drops once, never accessed again
65884        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65885    }
65886}
65887
65888impl fidl::endpoints::Responder for StreamSocketSetIpReceiveOriginalDestinationAddressResponder {
65889    type ControlHandle = StreamSocketControlHandle;
65890
65891    fn control_handle(&self) -> &StreamSocketControlHandle {
65892        &self.control_handle
65893    }
65894
65895    fn drop_without_shutdown(mut self) {
65896        // Safety: drops once, never accessed again due to mem::forget
65897        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65898        // Prevent Drop from running (which would shut down the channel)
65899        std::mem::forget(self);
65900    }
65901}
65902
65903impl StreamSocketSetIpReceiveOriginalDestinationAddressResponder {
65904    /// Sends a response to the FIDL transaction.
65905    ///
65906    /// Sets the channel to shutdown if an error occurs.
65907    pub fn send(
65908        self,
65909        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65910    ) -> Result<(), fidl::Error> {
65911        let _result = self.send_raw(result);
65912        if _result.is_err() {
65913            self.control_handle.shutdown();
65914        }
65915        self.drop_without_shutdown();
65916        _result
65917    }
65918
65919    /// Similar to "send" but does not shutdown the channel if an error occurs.
65920    pub fn send_no_shutdown_on_err(
65921        self,
65922        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65923    ) -> Result<(), fidl::Error> {
65924        let _result = self.send_raw(result);
65925        self.drop_without_shutdown();
65926        _result
65927    }
65928
65929    fn send_raw(
65930        &self,
65931        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65932    ) -> Result<(), fidl::Error> {
65933        self.control_handle.inner.send::<fidl::encoding::ResultType<
65934            fidl::encoding::EmptyStruct,
65935            fidl_fuchsia_posix::Errno,
65936        >>(
65937            result,
65938            self.tx_id,
65939            0x4722b4ce52f7840,
65940            fidl::encoding::DynamicFlags::empty(),
65941        )
65942    }
65943}
65944
65945#[must_use = "FIDL methods require a response to be sent"]
65946#[derive(Debug)]
65947pub struct StreamSocketGetIpReceiveOriginalDestinationAddressResponder {
65948    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65949    tx_id: u32,
65950}
65951
65952/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65953/// if the responder is dropped without sending a response, so that the client
65954/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65955impl std::ops::Drop for StreamSocketGetIpReceiveOriginalDestinationAddressResponder {
65956    fn drop(&mut self) {
65957        self.control_handle.shutdown();
65958        // Safety: drops once, never accessed again
65959        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65960    }
65961}
65962
65963impl fidl::endpoints::Responder for StreamSocketGetIpReceiveOriginalDestinationAddressResponder {
65964    type ControlHandle = StreamSocketControlHandle;
65965
65966    fn control_handle(&self) -> &StreamSocketControlHandle {
65967        &self.control_handle
65968    }
65969
65970    fn drop_without_shutdown(mut self) {
65971        // Safety: drops once, never accessed again due to mem::forget
65972        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65973        // Prevent Drop from running (which would shut down the channel)
65974        std::mem::forget(self);
65975    }
65976}
65977
65978impl StreamSocketGetIpReceiveOriginalDestinationAddressResponder {
65979    /// Sends a response to the FIDL transaction.
65980    ///
65981    /// Sets the channel to shutdown if an error occurs.
65982    pub fn send(
65983        self,
65984        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65985    ) -> Result<(), fidl::Error> {
65986        let _result = self.send_raw(result);
65987        if _result.is_err() {
65988            self.control_handle.shutdown();
65989        }
65990        self.drop_without_shutdown();
65991        _result
65992    }
65993
65994    /// Similar to "send" but does not shutdown the channel if an error occurs.
65995    pub fn send_no_shutdown_on_err(
65996        self,
65997        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65998    ) -> Result<(), fidl::Error> {
65999        let _result = self.send_raw(result);
66000        self.drop_without_shutdown();
66001        _result
66002    }
66003
66004    fn send_raw(
66005        &self,
66006        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
66007    ) -> Result<(), fidl::Error> {
66008        self.control_handle.inner.send::<fidl::encoding::ResultType<
66009            BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
66010            fidl_fuchsia_posix::Errno,
66011        >>(
66012            result.map(|value| (value,)),
66013            self.tx_id,
66014            0x2a0e7dc5d6bfdfe9,
66015            fidl::encoding::DynamicFlags::empty(),
66016        )
66017    }
66018}
66019
66020#[must_use = "FIDL methods require a response to be sent"]
66021#[derive(Debug)]
66022pub struct StreamSocketAddIpv6MembershipResponder {
66023    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66024    tx_id: u32,
66025}
66026
66027/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66028/// if the responder is dropped without sending a response, so that the client
66029/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66030impl std::ops::Drop for StreamSocketAddIpv6MembershipResponder {
66031    fn drop(&mut self) {
66032        self.control_handle.shutdown();
66033        // Safety: drops once, never accessed again
66034        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66035    }
66036}
66037
66038impl fidl::endpoints::Responder for StreamSocketAddIpv6MembershipResponder {
66039    type ControlHandle = StreamSocketControlHandle;
66040
66041    fn control_handle(&self) -> &StreamSocketControlHandle {
66042        &self.control_handle
66043    }
66044
66045    fn drop_without_shutdown(mut self) {
66046        // Safety: drops once, never accessed again due to mem::forget
66047        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66048        // Prevent Drop from running (which would shut down the channel)
66049        std::mem::forget(self);
66050    }
66051}
66052
66053impl StreamSocketAddIpv6MembershipResponder {
66054    /// Sends a response to the FIDL transaction.
66055    ///
66056    /// Sets the channel to shutdown if an error occurs.
66057    pub fn send(
66058        self,
66059        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66060    ) -> Result<(), fidl::Error> {
66061        let _result = self.send_raw(result);
66062        if _result.is_err() {
66063            self.control_handle.shutdown();
66064        }
66065        self.drop_without_shutdown();
66066        _result
66067    }
66068
66069    /// Similar to "send" but does not shutdown the channel if an error occurs.
66070    pub fn send_no_shutdown_on_err(
66071        self,
66072        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66073    ) -> Result<(), fidl::Error> {
66074        let _result = self.send_raw(result);
66075        self.drop_without_shutdown();
66076        _result
66077    }
66078
66079    fn send_raw(
66080        &self,
66081        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66082    ) -> Result<(), fidl::Error> {
66083        self.control_handle.inner.send::<fidl::encoding::ResultType<
66084            fidl::encoding::EmptyStruct,
66085            fidl_fuchsia_posix::Errno,
66086        >>(
66087            result,
66088            self.tx_id,
66089            0x7c94727acb4ea4b3,
66090            fidl::encoding::DynamicFlags::empty(),
66091        )
66092    }
66093}
66094
66095#[must_use = "FIDL methods require a response to be sent"]
66096#[derive(Debug)]
66097pub struct StreamSocketDropIpv6MembershipResponder {
66098    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66099    tx_id: u32,
66100}
66101
66102/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66103/// if the responder is dropped without sending a response, so that the client
66104/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66105impl std::ops::Drop for StreamSocketDropIpv6MembershipResponder {
66106    fn drop(&mut self) {
66107        self.control_handle.shutdown();
66108        // Safety: drops once, never accessed again
66109        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66110    }
66111}
66112
66113impl fidl::endpoints::Responder for StreamSocketDropIpv6MembershipResponder {
66114    type ControlHandle = StreamSocketControlHandle;
66115
66116    fn control_handle(&self) -> &StreamSocketControlHandle {
66117        &self.control_handle
66118    }
66119
66120    fn drop_without_shutdown(mut self) {
66121        // Safety: drops once, never accessed again due to mem::forget
66122        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66123        // Prevent Drop from running (which would shut down the channel)
66124        std::mem::forget(self);
66125    }
66126}
66127
66128impl StreamSocketDropIpv6MembershipResponder {
66129    /// Sends a response to the FIDL transaction.
66130    ///
66131    /// Sets the channel to shutdown if an error occurs.
66132    pub fn send(
66133        self,
66134        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66135    ) -> Result<(), fidl::Error> {
66136        let _result = self.send_raw(result);
66137        if _result.is_err() {
66138            self.control_handle.shutdown();
66139        }
66140        self.drop_without_shutdown();
66141        _result
66142    }
66143
66144    /// Similar to "send" but does not shutdown the channel if an error occurs.
66145    pub fn send_no_shutdown_on_err(
66146        self,
66147        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66148    ) -> Result<(), fidl::Error> {
66149        let _result = self.send_raw(result);
66150        self.drop_without_shutdown();
66151        _result
66152    }
66153
66154    fn send_raw(
66155        &self,
66156        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66157    ) -> Result<(), fidl::Error> {
66158        self.control_handle.inner.send::<fidl::encoding::ResultType<
66159            fidl::encoding::EmptyStruct,
66160            fidl_fuchsia_posix::Errno,
66161        >>(
66162            result,
66163            self.tx_id,
66164            0x42104c70ccaba304,
66165            fidl::encoding::DynamicFlags::empty(),
66166        )
66167    }
66168}
66169
66170#[must_use = "FIDL methods require a response to be sent"]
66171#[derive(Debug)]
66172pub struct StreamSocketSetIpv6MulticastInterfaceResponder {
66173    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66174    tx_id: u32,
66175}
66176
66177/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66178/// if the responder is dropped without sending a response, so that the client
66179/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66180impl std::ops::Drop for StreamSocketSetIpv6MulticastInterfaceResponder {
66181    fn drop(&mut self) {
66182        self.control_handle.shutdown();
66183        // Safety: drops once, never accessed again
66184        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66185    }
66186}
66187
66188impl fidl::endpoints::Responder for StreamSocketSetIpv6MulticastInterfaceResponder {
66189    type ControlHandle = StreamSocketControlHandle;
66190
66191    fn control_handle(&self) -> &StreamSocketControlHandle {
66192        &self.control_handle
66193    }
66194
66195    fn drop_without_shutdown(mut self) {
66196        // Safety: drops once, never accessed again due to mem::forget
66197        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66198        // Prevent Drop from running (which would shut down the channel)
66199        std::mem::forget(self);
66200    }
66201}
66202
66203impl StreamSocketSetIpv6MulticastInterfaceResponder {
66204    /// Sends a response to the FIDL transaction.
66205    ///
66206    /// Sets the channel to shutdown if an error occurs.
66207    pub fn send(
66208        self,
66209        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66210    ) -> Result<(), fidl::Error> {
66211        let _result = self.send_raw(result);
66212        if _result.is_err() {
66213            self.control_handle.shutdown();
66214        }
66215        self.drop_without_shutdown();
66216        _result
66217    }
66218
66219    /// Similar to "send" but does not shutdown the channel if an error occurs.
66220    pub fn send_no_shutdown_on_err(
66221        self,
66222        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66223    ) -> Result<(), fidl::Error> {
66224        let _result = self.send_raw(result);
66225        self.drop_without_shutdown();
66226        _result
66227    }
66228
66229    fn send_raw(
66230        &self,
66231        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66232    ) -> Result<(), fidl::Error> {
66233        self.control_handle.inner.send::<fidl::encoding::ResultType<
66234            fidl::encoding::EmptyStruct,
66235            fidl_fuchsia_posix::Errno,
66236        >>(
66237            result,
66238            self.tx_id,
66239            0x135f76db3774ab3b,
66240            fidl::encoding::DynamicFlags::empty(),
66241        )
66242    }
66243}
66244
66245#[must_use = "FIDL methods require a response to be sent"]
66246#[derive(Debug)]
66247pub struct StreamSocketGetIpv6MulticastInterfaceResponder {
66248    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66249    tx_id: u32,
66250}
66251
66252/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66253/// if the responder is dropped without sending a response, so that the client
66254/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66255impl std::ops::Drop for StreamSocketGetIpv6MulticastInterfaceResponder {
66256    fn drop(&mut self) {
66257        self.control_handle.shutdown();
66258        // Safety: drops once, never accessed again
66259        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66260    }
66261}
66262
66263impl fidl::endpoints::Responder for StreamSocketGetIpv6MulticastInterfaceResponder {
66264    type ControlHandle = StreamSocketControlHandle;
66265
66266    fn control_handle(&self) -> &StreamSocketControlHandle {
66267        &self.control_handle
66268    }
66269
66270    fn drop_without_shutdown(mut self) {
66271        // Safety: drops once, never accessed again due to mem::forget
66272        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66273        // Prevent Drop from running (which would shut down the channel)
66274        std::mem::forget(self);
66275    }
66276}
66277
66278impl StreamSocketGetIpv6MulticastInterfaceResponder {
66279    /// Sends a response to the FIDL transaction.
66280    ///
66281    /// Sets the channel to shutdown if an error occurs.
66282    pub fn send(
66283        self,
66284        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
66285    ) -> Result<(), fidl::Error> {
66286        let _result = self.send_raw(result);
66287        if _result.is_err() {
66288            self.control_handle.shutdown();
66289        }
66290        self.drop_without_shutdown();
66291        _result
66292    }
66293
66294    /// Similar to "send" but does not shutdown the channel if an error occurs.
66295    pub fn send_no_shutdown_on_err(
66296        self,
66297        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
66298    ) -> Result<(), fidl::Error> {
66299        let _result = self.send_raw(result);
66300        self.drop_without_shutdown();
66301        _result
66302    }
66303
66304    fn send_raw(
66305        &self,
66306        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
66307    ) -> Result<(), fidl::Error> {
66308        self.control_handle.inner.send::<fidl::encoding::ResultType<
66309            BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
66310            fidl_fuchsia_posix::Errno,
66311        >>(
66312            result.map(|value| (value,)),
66313            self.tx_id,
66314            0x1f26fcdd348f1882,
66315            fidl::encoding::DynamicFlags::empty(),
66316        )
66317    }
66318}
66319
66320#[must_use = "FIDL methods require a response to be sent"]
66321#[derive(Debug)]
66322pub struct StreamSocketSetIpv6UnicastHopsResponder {
66323    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66324    tx_id: u32,
66325}
66326
66327/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66328/// if the responder is dropped without sending a response, so that the client
66329/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66330impl std::ops::Drop for StreamSocketSetIpv6UnicastHopsResponder {
66331    fn drop(&mut self) {
66332        self.control_handle.shutdown();
66333        // Safety: drops once, never accessed again
66334        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66335    }
66336}
66337
66338impl fidl::endpoints::Responder for StreamSocketSetIpv6UnicastHopsResponder {
66339    type ControlHandle = StreamSocketControlHandle;
66340
66341    fn control_handle(&self) -> &StreamSocketControlHandle {
66342        &self.control_handle
66343    }
66344
66345    fn drop_without_shutdown(mut self) {
66346        // Safety: drops once, never accessed again due to mem::forget
66347        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66348        // Prevent Drop from running (which would shut down the channel)
66349        std::mem::forget(self);
66350    }
66351}
66352
66353impl StreamSocketSetIpv6UnicastHopsResponder {
66354    /// Sends a response to the FIDL transaction.
66355    ///
66356    /// Sets the channel to shutdown if an error occurs.
66357    pub fn send(
66358        self,
66359        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66360    ) -> Result<(), fidl::Error> {
66361        let _result = self.send_raw(result);
66362        if _result.is_err() {
66363            self.control_handle.shutdown();
66364        }
66365        self.drop_without_shutdown();
66366        _result
66367    }
66368
66369    /// Similar to "send" but does not shutdown the channel if an error occurs.
66370    pub fn send_no_shutdown_on_err(
66371        self,
66372        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66373    ) -> Result<(), fidl::Error> {
66374        let _result = self.send_raw(result);
66375        self.drop_without_shutdown();
66376        _result
66377    }
66378
66379    fn send_raw(
66380        &self,
66381        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66382    ) -> Result<(), fidl::Error> {
66383        self.control_handle.inner.send::<fidl::encoding::ResultType<
66384            fidl::encoding::EmptyStruct,
66385            fidl_fuchsia_posix::Errno,
66386        >>(
66387            result,
66388            self.tx_id,
66389            0x157d51e98f462859,
66390            fidl::encoding::DynamicFlags::empty(),
66391        )
66392    }
66393}
66394
66395#[must_use = "FIDL methods require a response to be sent"]
66396#[derive(Debug)]
66397pub struct StreamSocketGetIpv6UnicastHopsResponder {
66398    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66399    tx_id: u32,
66400}
66401
66402/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66403/// if the responder is dropped without sending a response, so that the client
66404/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66405impl std::ops::Drop for StreamSocketGetIpv6UnicastHopsResponder {
66406    fn drop(&mut self) {
66407        self.control_handle.shutdown();
66408        // Safety: drops once, never accessed again
66409        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66410    }
66411}
66412
66413impl fidl::endpoints::Responder for StreamSocketGetIpv6UnicastHopsResponder {
66414    type ControlHandle = StreamSocketControlHandle;
66415
66416    fn control_handle(&self) -> &StreamSocketControlHandle {
66417        &self.control_handle
66418    }
66419
66420    fn drop_without_shutdown(mut self) {
66421        // Safety: drops once, never accessed again due to mem::forget
66422        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66423        // Prevent Drop from running (which would shut down the channel)
66424        std::mem::forget(self);
66425    }
66426}
66427
66428impl StreamSocketGetIpv6UnicastHopsResponder {
66429    /// Sends a response to the FIDL transaction.
66430    ///
66431    /// Sets the channel to shutdown if an error occurs.
66432    pub fn send(
66433        self,
66434        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
66435    ) -> Result<(), fidl::Error> {
66436        let _result = self.send_raw(result);
66437        if _result.is_err() {
66438            self.control_handle.shutdown();
66439        }
66440        self.drop_without_shutdown();
66441        _result
66442    }
66443
66444    /// Similar to "send" but does not shutdown the channel if an error occurs.
66445    pub fn send_no_shutdown_on_err(
66446        self,
66447        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
66448    ) -> Result<(), fidl::Error> {
66449        let _result = self.send_raw(result);
66450        self.drop_without_shutdown();
66451        _result
66452    }
66453
66454    fn send_raw(
66455        &self,
66456        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
66457    ) -> Result<(), fidl::Error> {
66458        self.control_handle.inner.send::<fidl::encoding::ResultType<
66459            BaseNetworkSocketGetIpv6UnicastHopsResponse,
66460            fidl_fuchsia_posix::Errno,
66461        >>(
66462            result.map(|value| (value,)),
66463            self.tx_id,
66464            0x21f4641cad8bd8d2,
66465            fidl::encoding::DynamicFlags::empty(),
66466        )
66467    }
66468}
66469
66470#[must_use = "FIDL methods require a response to be sent"]
66471#[derive(Debug)]
66472pub struct StreamSocketSetIpv6ReceiveHopLimitResponder {
66473    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66474    tx_id: u32,
66475}
66476
66477/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66478/// if the responder is dropped without sending a response, so that the client
66479/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66480impl std::ops::Drop for StreamSocketSetIpv6ReceiveHopLimitResponder {
66481    fn drop(&mut self) {
66482        self.control_handle.shutdown();
66483        // Safety: drops once, never accessed again
66484        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66485    }
66486}
66487
66488impl fidl::endpoints::Responder for StreamSocketSetIpv6ReceiveHopLimitResponder {
66489    type ControlHandle = StreamSocketControlHandle;
66490
66491    fn control_handle(&self) -> &StreamSocketControlHandle {
66492        &self.control_handle
66493    }
66494
66495    fn drop_without_shutdown(mut self) {
66496        // Safety: drops once, never accessed again due to mem::forget
66497        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66498        // Prevent Drop from running (which would shut down the channel)
66499        std::mem::forget(self);
66500    }
66501}
66502
66503impl StreamSocketSetIpv6ReceiveHopLimitResponder {
66504    /// Sends a response to the FIDL transaction.
66505    ///
66506    /// Sets the channel to shutdown if an error occurs.
66507    pub fn send(
66508        self,
66509        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66510    ) -> Result<(), fidl::Error> {
66511        let _result = self.send_raw(result);
66512        if _result.is_err() {
66513            self.control_handle.shutdown();
66514        }
66515        self.drop_without_shutdown();
66516        _result
66517    }
66518
66519    /// Similar to "send" but does not shutdown the channel if an error occurs.
66520    pub fn send_no_shutdown_on_err(
66521        self,
66522        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66523    ) -> Result<(), fidl::Error> {
66524        let _result = self.send_raw(result);
66525        self.drop_without_shutdown();
66526        _result
66527    }
66528
66529    fn send_raw(
66530        &self,
66531        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66532    ) -> Result<(), fidl::Error> {
66533        self.control_handle.inner.send::<fidl::encoding::ResultType<
66534            fidl::encoding::EmptyStruct,
66535            fidl_fuchsia_posix::Errno,
66536        >>(
66537            result,
66538            self.tx_id,
66539            0x5c24808ed2e84a1e,
66540            fidl::encoding::DynamicFlags::empty(),
66541        )
66542    }
66543}
66544
66545#[must_use = "FIDL methods require a response to be sent"]
66546#[derive(Debug)]
66547pub struct StreamSocketGetIpv6ReceiveHopLimitResponder {
66548    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66549    tx_id: u32,
66550}
66551
66552/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66553/// if the responder is dropped without sending a response, so that the client
66554/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66555impl std::ops::Drop for StreamSocketGetIpv6ReceiveHopLimitResponder {
66556    fn drop(&mut self) {
66557        self.control_handle.shutdown();
66558        // Safety: drops once, never accessed again
66559        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66560    }
66561}
66562
66563impl fidl::endpoints::Responder for StreamSocketGetIpv6ReceiveHopLimitResponder {
66564    type ControlHandle = StreamSocketControlHandle;
66565
66566    fn control_handle(&self) -> &StreamSocketControlHandle {
66567        &self.control_handle
66568    }
66569
66570    fn drop_without_shutdown(mut self) {
66571        // Safety: drops once, never accessed again due to mem::forget
66572        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66573        // Prevent Drop from running (which would shut down the channel)
66574        std::mem::forget(self);
66575    }
66576}
66577
66578impl StreamSocketGetIpv6ReceiveHopLimitResponder {
66579    /// Sends a response to the FIDL transaction.
66580    ///
66581    /// Sets the channel to shutdown if an error occurs.
66582    pub fn send(
66583        self,
66584        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
66585    ) -> Result<(), fidl::Error> {
66586        let _result = self.send_raw(result);
66587        if _result.is_err() {
66588            self.control_handle.shutdown();
66589        }
66590        self.drop_without_shutdown();
66591        _result
66592    }
66593
66594    /// Similar to "send" but does not shutdown the channel if an error occurs.
66595    pub fn send_no_shutdown_on_err(
66596        self,
66597        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
66598    ) -> Result<(), fidl::Error> {
66599        let _result = self.send_raw(result);
66600        self.drop_without_shutdown();
66601        _result
66602    }
66603
66604    fn send_raw(
66605        &self,
66606        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
66607    ) -> Result<(), fidl::Error> {
66608        self.control_handle.inner.send::<fidl::encoding::ResultType<
66609            BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
66610            fidl_fuchsia_posix::Errno,
66611        >>(
66612            result.map(|value| (value,)),
66613            self.tx_id,
66614            0x341e06689885b4c0,
66615            fidl::encoding::DynamicFlags::empty(),
66616        )
66617    }
66618}
66619
66620#[must_use = "FIDL methods require a response to be sent"]
66621#[derive(Debug)]
66622pub struct StreamSocketSetIpv6MulticastHopsResponder {
66623    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66624    tx_id: u32,
66625}
66626
66627/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66628/// if the responder is dropped without sending a response, so that the client
66629/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66630impl std::ops::Drop for StreamSocketSetIpv6MulticastHopsResponder {
66631    fn drop(&mut self) {
66632        self.control_handle.shutdown();
66633        // Safety: drops once, never accessed again
66634        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66635    }
66636}
66637
66638impl fidl::endpoints::Responder for StreamSocketSetIpv6MulticastHopsResponder {
66639    type ControlHandle = StreamSocketControlHandle;
66640
66641    fn control_handle(&self) -> &StreamSocketControlHandle {
66642        &self.control_handle
66643    }
66644
66645    fn drop_without_shutdown(mut self) {
66646        // Safety: drops once, never accessed again due to mem::forget
66647        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66648        // Prevent Drop from running (which would shut down the channel)
66649        std::mem::forget(self);
66650    }
66651}
66652
66653impl StreamSocketSetIpv6MulticastHopsResponder {
66654    /// Sends a response to the FIDL transaction.
66655    ///
66656    /// Sets the channel to shutdown if an error occurs.
66657    pub fn send(
66658        self,
66659        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66660    ) -> Result<(), fidl::Error> {
66661        let _result = self.send_raw(result);
66662        if _result.is_err() {
66663            self.control_handle.shutdown();
66664        }
66665        self.drop_without_shutdown();
66666        _result
66667    }
66668
66669    /// Similar to "send" but does not shutdown the channel if an error occurs.
66670    pub fn send_no_shutdown_on_err(
66671        self,
66672        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66673    ) -> Result<(), fidl::Error> {
66674        let _result = self.send_raw(result);
66675        self.drop_without_shutdown();
66676        _result
66677    }
66678
66679    fn send_raw(
66680        &self,
66681        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66682    ) -> Result<(), fidl::Error> {
66683        self.control_handle.inner.send::<fidl::encoding::ResultType<
66684            fidl::encoding::EmptyStruct,
66685            fidl_fuchsia_posix::Errno,
66686        >>(
66687            result,
66688            self.tx_id,
66689            0x25b9cd4d181f82c1,
66690            fidl::encoding::DynamicFlags::empty(),
66691        )
66692    }
66693}
66694
66695#[must_use = "FIDL methods require a response to be sent"]
66696#[derive(Debug)]
66697pub struct StreamSocketGetIpv6MulticastHopsResponder {
66698    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66699    tx_id: u32,
66700}
66701
66702/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66703/// if the responder is dropped without sending a response, so that the client
66704/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66705impl std::ops::Drop for StreamSocketGetIpv6MulticastHopsResponder {
66706    fn drop(&mut self) {
66707        self.control_handle.shutdown();
66708        // Safety: drops once, never accessed again
66709        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66710    }
66711}
66712
66713impl fidl::endpoints::Responder for StreamSocketGetIpv6MulticastHopsResponder {
66714    type ControlHandle = StreamSocketControlHandle;
66715
66716    fn control_handle(&self) -> &StreamSocketControlHandle {
66717        &self.control_handle
66718    }
66719
66720    fn drop_without_shutdown(mut self) {
66721        // Safety: drops once, never accessed again due to mem::forget
66722        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66723        // Prevent Drop from running (which would shut down the channel)
66724        std::mem::forget(self);
66725    }
66726}
66727
66728impl StreamSocketGetIpv6MulticastHopsResponder {
66729    /// Sends a response to the FIDL transaction.
66730    ///
66731    /// Sets the channel to shutdown if an error occurs.
66732    pub fn send(
66733        self,
66734        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
66735    ) -> Result<(), fidl::Error> {
66736        let _result = self.send_raw(result);
66737        if _result.is_err() {
66738            self.control_handle.shutdown();
66739        }
66740        self.drop_without_shutdown();
66741        _result
66742    }
66743
66744    /// Similar to "send" but does not shutdown the channel if an error occurs.
66745    pub fn send_no_shutdown_on_err(
66746        self,
66747        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
66748    ) -> Result<(), fidl::Error> {
66749        let _result = self.send_raw(result);
66750        self.drop_without_shutdown();
66751        _result
66752    }
66753
66754    fn send_raw(
66755        &self,
66756        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
66757    ) -> Result<(), fidl::Error> {
66758        self.control_handle.inner.send::<fidl::encoding::ResultType<
66759            BaseNetworkSocketGetIpv6MulticastHopsResponse,
66760            fidl_fuchsia_posix::Errno,
66761        >>(
66762            result.map(|value| (value,)),
66763            self.tx_id,
66764            0x52916948a365012a,
66765            fidl::encoding::DynamicFlags::empty(),
66766        )
66767    }
66768}
66769
66770#[must_use = "FIDL methods require a response to be sent"]
66771#[derive(Debug)]
66772pub struct StreamSocketSetIpv6MulticastLoopbackResponder {
66773    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66774    tx_id: u32,
66775}
66776
66777/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66778/// if the responder is dropped without sending a response, so that the client
66779/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66780impl std::ops::Drop for StreamSocketSetIpv6MulticastLoopbackResponder {
66781    fn drop(&mut self) {
66782        self.control_handle.shutdown();
66783        // Safety: drops once, never accessed again
66784        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66785    }
66786}
66787
66788impl fidl::endpoints::Responder for StreamSocketSetIpv6MulticastLoopbackResponder {
66789    type ControlHandle = StreamSocketControlHandle;
66790
66791    fn control_handle(&self) -> &StreamSocketControlHandle {
66792        &self.control_handle
66793    }
66794
66795    fn drop_without_shutdown(mut self) {
66796        // Safety: drops once, never accessed again due to mem::forget
66797        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66798        // Prevent Drop from running (which would shut down the channel)
66799        std::mem::forget(self);
66800    }
66801}
66802
66803impl StreamSocketSetIpv6MulticastLoopbackResponder {
66804    /// Sends a response to the FIDL transaction.
66805    ///
66806    /// Sets the channel to shutdown if an error occurs.
66807    pub fn send(
66808        self,
66809        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66810    ) -> Result<(), fidl::Error> {
66811        let _result = self.send_raw(result);
66812        if _result.is_err() {
66813            self.control_handle.shutdown();
66814        }
66815        self.drop_without_shutdown();
66816        _result
66817    }
66818
66819    /// Similar to "send" but does not shutdown the channel if an error occurs.
66820    pub fn send_no_shutdown_on_err(
66821        self,
66822        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66823    ) -> Result<(), fidl::Error> {
66824        let _result = self.send_raw(result);
66825        self.drop_without_shutdown();
66826        _result
66827    }
66828
66829    fn send_raw(
66830        &self,
66831        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66832    ) -> Result<(), fidl::Error> {
66833        self.control_handle.inner.send::<fidl::encoding::ResultType<
66834            fidl::encoding::EmptyStruct,
66835            fidl_fuchsia_posix::Errno,
66836        >>(
66837            result,
66838            self.tx_id,
66839            0x55701c409ff41b40,
66840            fidl::encoding::DynamicFlags::empty(),
66841        )
66842    }
66843}
66844
66845#[must_use = "FIDL methods require a response to be sent"]
66846#[derive(Debug)]
66847pub struct StreamSocketGetIpv6MulticastLoopbackResponder {
66848    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66849    tx_id: u32,
66850}
66851
66852/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66853/// if the responder is dropped without sending a response, so that the client
66854/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66855impl std::ops::Drop for StreamSocketGetIpv6MulticastLoopbackResponder {
66856    fn drop(&mut self) {
66857        self.control_handle.shutdown();
66858        // Safety: drops once, never accessed again
66859        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66860    }
66861}
66862
66863impl fidl::endpoints::Responder for StreamSocketGetIpv6MulticastLoopbackResponder {
66864    type ControlHandle = StreamSocketControlHandle;
66865
66866    fn control_handle(&self) -> &StreamSocketControlHandle {
66867        &self.control_handle
66868    }
66869
66870    fn drop_without_shutdown(mut self) {
66871        // Safety: drops once, never accessed again due to mem::forget
66872        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66873        // Prevent Drop from running (which would shut down the channel)
66874        std::mem::forget(self);
66875    }
66876}
66877
66878impl StreamSocketGetIpv6MulticastLoopbackResponder {
66879    /// Sends a response to the FIDL transaction.
66880    ///
66881    /// Sets the channel to shutdown if an error occurs.
66882    pub fn send(
66883        self,
66884        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
66885    ) -> Result<(), fidl::Error> {
66886        let _result = self.send_raw(result);
66887        if _result.is_err() {
66888            self.control_handle.shutdown();
66889        }
66890        self.drop_without_shutdown();
66891        _result
66892    }
66893
66894    /// Similar to "send" but does not shutdown the channel if an error occurs.
66895    pub fn send_no_shutdown_on_err(
66896        self,
66897        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
66898    ) -> Result<(), fidl::Error> {
66899        let _result = self.send_raw(result);
66900        self.drop_without_shutdown();
66901        _result
66902    }
66903
66904    fn send_raw(
66905        &self,
66906        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
66907    ) -> Result<(), fidl::Error> {
66908        self.control_handle.inner.send::<fidl::encoding::ResultType<
66909            BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
66910            fidl_fuchsia_posix::Errno,
66911        >>(
66912            result.map(|value| (value,)),
66913            self.tx_id,
66914            0x4415b701fde319c3,
66915            fidl::encoding::DynamicFlags::empty(),
66916        )
66917    }
66918}
66919
66920#[must_use = "FIDL methods require a response to be sent"]
66921#[derive(Debug)]
66922pub struct StreamSocketSetIpv6OnlyResponder {
66923    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66924    tx_id: u32,
66925}
66926
66927/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66928/// if the responder is dropped without sending a response, so that the client
66929/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66930impl std::ops::Drop for StreamSocketSetIpv6OnlyResponder {
66931    fn drop(&mut self) {
66932        self.control_handle.shutdown();
66933        // Safety: drops once, never accessed again
66934        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66935    }
66936}
66937
66938impl fidl::endpoints::Responder for StreamSocketSetIpv6OnlyResponder {
66939    type ControlHandle = StreamSocketControlHandle;
66940
66941    fn control_handle(&self) -> &StreamSocketControlHandle {
66942        &self.control_handle
66943    }
66944
66945    fn drop_without_shutdown(mut self) {
66946        // Safety: drops once, never accessed again due to mem::forget
66947        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66948        // Prevent Drop from running (which would shut down the channel)
66949        std::mem::forget(self);
66950    }
66951}
66952
66953impl StreamSocketSetIpv6OnlyResponder {
66954    /// Sends a response to the FIDL transaction.
66955    ///
66956    /// Sets the channel to shutdown if an error occurs.
66957    pub fn send(
66958        self,
66959        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66960    ) -> Result<(), fidl::Error> {
66961        let _result = self.send_raw(result);
66962        if _result.is_err() {
66963            self.control_handle.shutdown();
66964        }
66965        self.drop_without_shutdown();
66966        _result
66967    }
66968
66969    /// Similar to "send" but does not shutdown the channel if an error occurs.
66970    pub fn send_no_shutdown_on_err(
66971        self,
66972        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66973    ) -> Result<(), fidl::Error> {
66974        let _result = self.send_raw(result);
66975        self.drop_without_shutdown();
66976        _result
66977    }
66978
66979    fn send_raw(
66980        &self,
66981        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66982    ) -> Result<(), fidl::Error> {
66983        self.control_handle.inner.send::<fidl::encoding::ResultType<
66984            fidl::encoding::EmptyStruct,
66985            fidl_fuchsia_posix::Errno,
66986        >>(
66987            result,
66988            self.tx_id,
66989            0x4873f1364758cbba,
66990            fidl::encoding::DynamicFlags::empty(),
66991        )
66992    }
66993}
66994
66995#[must_use = "FIDL methods require a response to be sent"]
66996#[derive(Debug)]
66997pub struct StreamSocketGetIpv6OnlyResponder {
66998    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66999    tx_id: u32,
67000}
67001
67002/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67003/// if the responder is dropped without sending a response, so that the client
67004/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67005impl std::ops::Drop for StreamSocketGetIpv6OnlyResponder {
67006    fn drop(&mut self) {
67007        self.control_handle.shutdown();
67008        // Safety: drops once, never accessed again
67009        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67010    }
67011}
67012
67013impl fidl::endpoints::Responder for StreamSocketGetIpv6OnlyResponder {
67014    type ControlHandle = StreamSocketControlHandle;
67015
67016    fn control_handle(&self) -> &StreamSocketControlHandle {
67017        &self.control_handle
67018    }
67019
67020    fn drop_without_shutdown(mut self) {
67021        // Safety: drops once, never accessed again due to mem::forget
67022        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67023        // Prevent Drop from running (which would shut down the channel)
67024        std::mem::forget(self);
67025    }
67026}
67027
67028impl StreamSocketGetIpv6OnlyResponder {
67029    /// Sends a response to the FIDL transaction.
67030    ///
67031    /// Sets the channel to shutdown if an error occurs.
67032    pub fn send(
67033        self,
67034        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
67035    ) -> Result<(), fidl::Error> {
67036        let _result = self.send_raw(result);
67037        if _result.is_err() {
67038            self.control_handle.shutdown();
67039        }
67040        self.drop_without_shutdown();
67041        _result
67042    }
67043
67044    /// Similar to "send" but does not shutdown the channel if an error occurs.
67045    pub fn send_no_shutdown_on_err(
67046        self,
67047        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
67048    ) -> Result<(), fidl::Error> {
67049        let _result = self.send_raw(result);
67050        self.drop_without_shutdown();
67051        _result
67052    }
67053
67054    fn send_raw(
67055        &self,
67056        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
67057    ) -> Result<(), fidl::Error> {
67058        self.control_handle.inner.send::<fidl::encoding::ResultType<
67059            BaseNetworkSocketGetIpv6OnlyResponse,
67060            fidl_fuchsia_posix::Errno,
67061        >>(
67062            result.map(|value| (value,)),
67063            self.tx_id,
67064            0x4aa3340a1a26b89c,
67065            fidl::encoding::DynamicFlags::empty(),
67066        )
67067    }
67068}
67069
67070#[must_use = "FIDL methods require a response to be sent"]
67071#[derive(Debug)]
67072pub struct StreamSocketSetIpv6ReceiveTrafficClassResponder {
67073    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67074    tx_id: u32,
67075}
67076
67077/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67078/// if the responder is dropped without sending a response, so that the client
67079/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67080impl std::ops::Drop for StreamSocketSetIpv6ReceiveTrafficClassResponder {
67081    fn drop(&mut self) {
67082        self.control_handle.shutdown();
67083        // Safety: drops once, never accessed again
67084        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67085    }
67086}
67087
67088impl fidl::endpoints::Responder for StreamSocketSetIpv6ReceiveTrafficClassResponder {
67089    type ControlHandle = StreamSocketControlHandle;
67090
67091    fn control_handle(&self) -> &StreamSocketControlHandle {
67092        &self.control_handle
67093    }
67094
67095    fn drop_without_shutdown(mut self) {
67096        // Safety: drops once, never accessed again due to mem::forget
67097        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67098        // Prevent Drop from running (which would shut down the channel)
67099        std::mem::forget(self);
67100    }
67101}
67102
67103impl StreamSocketSetIpv6ReceiveTrafficClassResponder {
67104    /// Sends a response to the FIDL transaction.
67105    ///
67106    /// Sets the channel to shutdown if an error occurs.
67107    pub fn send(
67108        self,
67109        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67110    ) -> Result<(), fidl::Error> {
67111        let _result = self.send_raw(result);
67112        if _result.is_err() {
67113            self.control_handle.shutdown();
67114        }
67115        self.drop_without_shutdown();
67116        _result
67117    }
67118
67119    /// Similar to "send" but does not shutdown the channel if an error occurs.
67120    pub fn send_no_shutdown_on_err(
67121        self,
67122        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67123    ) -> Result<(), fidl::Error> {
67124        let _result = self.send_raw(result);
67125        self.drop_without_shutdown();
67126        _result
67127    }
67128
67129    fn send_raw(
67130        &self,
67131        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67132    ) -> Result<(), fidl::Error> {
67133        self.control_handle.inner.send::<fidl::encoding::ResultType<
67134            fidl::encoding::EmptyStruct,
67135            fidl_fuchsia_posix::Errno,
67136        >>(
67137            result,
67138            self.tx_id,
67139            0x58f07c8788d099a0,
67140            fidl::encoding::DynamicFlags::empty(),
67141        )
67142    }
67143}
67144
67145#[must_use = "FIDL methods require a response to be sent"]
67146#[derive(Debug)]
67147pub struct StreamSocketGetIpv6ReceiveTrafficClassResponder {
67148    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67149    tx_id: u32,
67150}
67151
67152/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67153/// if the responder is dropped without sending a response, so that the client
67154/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67155impl std::ops::Drop for StreamSocketGetIpv6ReceiveTrafficClassResponder {
67156    fn drop(&mut self) {
67157        self.control_handle.shutdown();
67158        // Safety: drops once, never accessed again
67159        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67160    }
67161}
67162
67163impl fidl::endpoints::Responder for StreamSocketGetIpv6ReceiveTrafficClassResponder {
67164    type ControlHandle = StreamSocketControlHandle;
67165
67166    fn control_handle(&self) -> &StreamSocketControlHandle {
67167        &self.control_handle
67168    }
67169
67170    fn drop_without_shutdown(mut self) {
67171        // Safety: drops once, never accessed again due to mem::forget
67172        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67173        // Prevent Drop from running (which would shut down the channel)
67174        std::mem::forget(self);
67175    }
67176}
67177
67178impl StreamSocketGetIpv6ReceiveTrafficClassResponder {
67179    /// Sends a response to the FIDL transaction.
67180    ///
67181    /// Sets the channel to shutdown if an error occurs.
67182    pub fn send(
67183        self,
67184        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
67185    ) -> Result<(), fidl::Error> {
67186        let _result = self.send_raw(result);
67187        if _result.is_err() {
67188            self.control_handle.shutdown();
67189        }
67190        self.drop_without_shutdown();
67191        _result
67192    }
67193
67194    /// Similar to "send" but does not shutdown the channel if an error occurs.
67195    pub fn send_no_shutdown_on_err(
67196        self,
67197        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
67198    ) -> Result<(), fidl::Error> {
67199        let _result = self.send_raw(result);
67200        self.drop_without_shutdown();
67201        _result
67202    }
67203
67204    fn send_raw(
67205        &self,
67206        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
67207    ) -> Result<(), fidl::Error> {
67208        self.control_handle.inner.send::<fidl::encoding::ResultType<
67209            BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
67210            fidl_fuchsia_posix::Errno,
67211        >>(
67212            result.map(|value| (value,)),
67213            self.tx_id,
67214            0x2e334df1da553ffa,
67215            fidl::encoding::DynamicFlags::empty(),
67216        )
67217    }
67218}
67219
67220#[must_use = "FIDL methods require a response to be sent"]
67221#[derive(Debug)]
67222pub struct StreamSocketSetIpv6TrafficClassResponder {
67223    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67224    tx_id: u32,
67225}
67226
67227/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67228/// if the responder is dropped without sending a response, so that the client
67229/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67230impl std::ops::Drop for StreamSocketSetIpv6TrafficClassResponder {
67231    fn drop(&mut self) {
67232        self.control_handle.shutdown();
67233        // Safety: drops once, never accessed again
67234        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67235    }
67236}
67237
67238impl fidl::endpoints::Responder for StreamSocketSetIpv6TrafficClassResponder {
67239    type ControlHandle = StreamSocketControlHandle;
67240
67241    fn control_handle(&self) -> &StreamSocketControlHandle {
67242        &self.control_handle
67243    }
67244
67245    fn drop_without_shutdown(mut self) {
67246        // Safety: drops once, never accessed again due to mem::forget
67247        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67248        // Prevent Drop from running (which would shut down the channel)
67249        std::mem::forget(self);
67250    }
67251}
67252
67253impl StreamSocketSetIpv6TrafficClassResponder {
67254    /// Sends a response to the FIDL transaction.
67255    ///
67256    /// Sets the channel to shutdown if an error occurs.
67257    pub fn send(
67258        self,
67259        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67260    ) -> Result<(), fidl::Error> {
67261        let _result = self.send_raw(result);
67262        if _result.is_err() {
67263            self.control_handle.shutdown();
67264        }
67265        self.drop_without_shutdown();
67266        _result
67267    }
67268
67269    /// Similar to "send" but does not shutdown the channel if an error occurs.
67270    pub fn send_no_shutdown_on_err(
67271        self,
67272        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67273    ) -> Result<(), fidl::Error> {
67274        let _result = self.send_raw(result);
67275        self.drop_without_shutdown();
67276        _result
67277    }
67278
67279    fn send_raw(
67280        &self,
67281        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67282    ) -> Result<(), fidl::Error> {
67283        self.control_handle.inner.send::<fidl::encoding::ResultType<
67284            fidl::encoding::EmptyStruct,
67285            fidl_fuchsia_posix::Errno,
67286        >>(
67287            result,
67288            self.tx_id,
67289            0x6af077800c5a0b4f,
67290            fidl::encoding::DynamicFlags::empty(),
67291        )
67292    }
67293}
67294
67295#[must_use = "FIDL methods require a response to be sent"]
67296#[derive(Debug)]
67297pub struct StreamSocketGetIpv6TrafficClassResponder {
67298    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67299    tx_id: u32,
67300}
67301
67302/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67303/// if the responder is dropped without sending a response, so that the client
67304/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67305impl std::ops::Drop for StreamSocketGetIpv6TrafficClassResponder {
67306    fn drop(&mut self) {
67307        self.control_handle.shutdown();
67308        // Safety: drops once, never accessed again
67309        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67310    }
67311}
67312
67313impl fidl::endpoints::Responder for StreamSocketGetIpv6TrafficClassResponder {
67314    type ControlHandle = StreamSocketControlHandle;
67315
67316    fn control_handle(&self) -> &StreamSocketControlHandle {
67317        &self.control_handle
67318    }
67319
67320    fn drop_without_shutdown(mut self) {
67321        // Safety: drops once, never accessed again due to mem::forget
67322        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67323        // Prevent Drop from running (which would shut down the channel)
67324        std::mem::forget(self);
67325    }
67326}
67327
67328impl StreamSocketGetIpv6TrafficClassResponder {
67329    /// Sends a response to the FIDL transaction.
67330    ///
67331    /// Sets the channel to shutdown if an error occurs.
67332    pub fn send(
67333        self,
67334        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
67335    ) -> Result<(), fidl::Error> {
67336        let _result = self.send_raw(result);
67337        if _result.is_err() {
67338            self.control_handle.shutdown();
67339        }
67340        self.drop_without_shutdown();
67341        _result
67342    }
67343
67344    /// Similar to "send" but does not shutdown the channel if an error occurs.
67345    pub fn send_no_shutdown_on_err(
67346        self,
67347        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
67348    ) -> Result<(), fidl::Error> {
67349        let _result = self.send_raw(result);
67350        self.drop_without_shutdown();
67351        _result
67352    }
67353
67354    fn send_raw(
67355        &self,
67356        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
67357    ) -> Result<(), fidl::Error> {
67358        self.control_handle.inner.send::<fidl::encoding::ResultType<
67359            BaseNetworkSocketGetIpv6TrafficClassResponse,
67360            fidl_fuchsia_posix::Errno,
67361        >>(
67362            result.map(|value| (value,)),
67363            self.tx_id,
67364            0x6baf6eed8fc2f04,
67365            fidl::encoding::DynamicFlags::empty(),
67366        )
67367    }
67368}
67369
67370#[must_use = "FIDL methods require a response to be sent"]
67371#[derive(Debug)]
67372pub struct StreamSocketSetIpv6ReceivePacketInfoResponder {
67373    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67374    tx_id: u32,
67375}
67376
67377/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67378/// if the responder is dropped without sending a response, so that the client
67379/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67380impl std::ops::Drop for StreamSocketSetIpv6ReceivePacketInfoResponder {
67381    fn drop(&mut self) {
67382        self.control_handle.shutdown();
67383        // Safety: drops once, never accessed again
67384        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67385    }
67386}
67387
67388impl fidl::endpoints::Responder for StreamSocketSetIpv6ReceivePacketInfoResponder {
67389    type ControlHandle = StreamSocketControlHandle;
67390
67391    fn control_handle(&self) -> &StreamSocketControlHandle {
67392        &self.control_handle
67393    }
67394
67395    fn drop_without_shutdown(mut self) {
67396        // Safety: drops once, never accessed again due to mem::forget
67397        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67398        // Prevent Drop from running (which would shut down the channel)
67399        std::mem::forget(self);
67400    }
67401}
67402
67403impl StreamSocketSetIpv6ReceivePacketInfoResponder {
67404    /// Sends a response to the FIDL transaction.
67405    ///
67406    /// Sets the channel to shutdown if an error occurs.
67407    pub fn send(
67408        self,
67409        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67410    ) -> Result<(), fidl::Error> {
67411        let _result = self.send_raw(result);
67412        if _result.is_err() {
67413            self.control_handle.shutdown();
67414        }
67415        self.drop_without_shutdown();
67416        _result
67417    }
67418
67419    /// Similar to "send" but does not shutdown the channel if an error occurs.
67420    pub fn send_no_shutdown_on_err(
67421        self,
67422        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67423    ) -> Result<(), fidl::Error> {
67424        let _result = self.send_raw(result);
67425        self.drop_without_shutdown();
67426        _result
67427    }
67428
67429    fn send_raw(
67430        &self,
67431        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67432    ) -> Result<(), fidl::Error> {
67433        self.control_handle.inner.send::<fidl::encoding::ResultType<
67434            fidl::encoding::EmptyStruct,
67435            fidl_fuchsia_posix::Errno,
67436        >>(
67437            result,
67438            self.tx_id,
67439            0x19259775b1a92768,
67440            fidl::encoding::DynamicFlags::empty(),
67441        )
67442    }
67443}
67444
67445#[must_use = "FIDL methods require a response to be sent"]
67446#[derive(Debug)]
67447pub struct StreamSocketGetIpv6ReceivePacketInfoResponder {
67448    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67449    tx_id: u32,
67450}
67451
67452/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67453/// if the responder is dropped without sending a response, so that the client
67454/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67455impl std::ops::Drop for StreamSocketGetIpv6ReceivePacketInfoResponder {
67456    fn drop(&mut self) {
67457        self.control_handle.shutdown();
67458        // Safety: drops once, never accessed again
67459        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67460    }
67461}
67462
67463impl fidl::endpoints::Responder for StreamSocketGetIpv6ReceivePacketInfoResponder {
67464    type ControlHandle = StreamSocketControlHandle;
67465
67466    fn control_handle(&self) -> &StreamSocketControlHandle {
67467        &self.control_handle
67468    }
67469
67470    fn drop_without_shutdown(mut self) {
67471        // Safety: drops once, never accessed again due to mem::forget
67472        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67473        // Prevent Drop from running (which would shut down the channel)
67474        std::mem::forget(self);
67475    }
67476}
67477
67478impl StreamSocketGetIpv6ReceivePacketInfoResponder {
67479    /// Sends a response to the FIDL transaction.
67480    ///
67481    /// Sets the channel to shutdown if an error occurs.
67482    pub fn send(
67483        self,
67484        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
67485    ) -> Result<(), fidl::Error> {
67486        let _result = self.send_raw(result);
67487        if _result.is_err() {
67488            self.control_handle.shutdown();
67489        }
67490        self.drop_without_shutdown();
67491        _result
67492    }
67493
67494    /// Similar to "send" but does not shutdown the channel if an error occurs.
67495    pub fn send_no_shutdown_on_err(
67496        self,
67497        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
67498    ) -> Result<(), fidl::Error> {
67499        let _result = self.send_raw(result);
67500        self.drop_without_shutdown();
67501        _result
67502    }
67503
67504    fn send_raw(
67505        &self,
67506        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
67507    ) -> Result<(), fidl::Error> {
67508        self.control_handle.inner.send::<fidl::encoding::ResultType<
67509            BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
67510            fidl_fuchsia_posix::Errno,
67511        >>(
67512            result.map(|value| (value,)),
67513            self.tx_id,
67514            0x7acd4a2775baec75,
67515            fidl::encoding::DynamicFlags::empty(),
67516        )
67517    }
67518}
67519
67520#[must_use = "FIDL methods require a response to be sent"]
67521#[derive(Debug)]
67522pub struct StreamSocketGetOriginalDestinationResponder {
67523    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67524    tx_id: u32,
67525}
67526
67527/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67528/// if the responder is dropped without sending a response, so that the client
67529/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67530impl std::ops::Drop for StreamSocketGetOriginalDestinationResponder {
67531    fn drop(&mut self) {
67532        self.control_handle.shutdown();
67533        // Safety: drops once, never accessed again
67534        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67535    }
67536}
67537
67538impl fidl::endpoints::Responder for StreamSocketGetOriginalDestinationResponder {
67539    type ControlHandle = StreamSocketControlHandle;
67540
67541    fn control_handle(&self) -> &StreamSocketControlHandle {
67542        &self.control_handle
67543    }
67544
67545    fn drop_without_shutdown(mut self) {
67546        // Safety: drops once, never accessed again due to mem::forget
67547        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67548        // Prevent Drop from running (which would shut down the channel)
67549        std::mem::forget(self);
67550    }
67551}
67552
67553impl StreamSocketGetOriginalDestinationResponder {
67554    /// Sends a response to the FIDL transaction.
67555    ///
67556    /// Sets the channel to shutdown if an error occurs.
67557    pub fn send(
67558        self,
67559        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
67560    ) -> Result<(), fidl::Error> {
67561        let _result = self.send_raw(result);
67562        if _result.is_err() {
67563            self.control_handle.shutdown();
67564        }
67565        self.drop_without_shutdown();
67566        _result
67567    }
67568
67569    /// Similar to "send" but does not shutdown the channel if an error occurs.
67570    pub fn send_no_shutdown_on_err(
67571        self,
67572        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
67573    ) -> Result<(), fidl::Error> {
67574        let _result = self.send_raw(result);
67575        self.drop_without_shutdown();
67576        _result
67577    }
67578
67579    fn send_raw(
67580        &self,
67581        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
67582    ) -> Result<(), fidl::Error> {
67583        self.control_handle.inner.send::<fidl::encoding::ResultType<
67584            BaseNetworkSocketGetOriginalDestinationResponse,
67585            fidl_fuchsia_posix::Errno,
67586        >>(
67587            result.map(|value| (value,)),
67588            self.tx_id,
67589            0x38bf28f0dafdbac0,
67590            fidl::encoding::DynamicFlags::empty(),
67591        )
67592    }
67593}
67594
67595#[must_use = "FIDL methods require a response to be sent"]
67596#[derive(Debug)]
67597pub struct StreamSocketDescribeResponder {
67598    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67599    tx_id: u32,
67600}
67601
67602/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67603/// if the responder is dropped without sending a response, so that the client
67604/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67605impl std::ops::Drop for StreamSocketDescribeResponder {
67606    fn drop(&mut self) {
67607        self.control_handle.shutdown();
67608        // Safety: drops once, never accessed again
67609        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67610    }
67611}
67612
67613impl fidl::endpoints::Responder for StreamSocketDescribeResponder {
67614    type ControlHandle = StreamSocketControlHandle;
67615
67616    fn control_handle(&self) -> &StreamSocketControlHandle {
67617        &self.control_handle
67618    }
67619
67620    fn drop_without_shutdown(mut self) {
67621        // Safety: drops once, never accessed again due to mem::forget
67622        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67623        // Prevent Drop from running (which would shut down the channel)
67624        std::mem::forget(self);
67625    }
67626}
67627
67628impl StreamSocketDescribeResponder {
67629    /// Sends a response to the FIDL transaction.
67630    ///
67631    /// Sets the channel to shutdown if an error occurs.
67632    pub fn send(self, mut payload: StreamSocketDescribeResponse) -> Result<(), fidl::Error> {
67633        let _result = self.send_raw(payload);
67634        if _result.is_err() {
67635            self.control_handle.shutdown();
67636        }
67637        self.drop_without_shutdown();
67638        _result
67639    }
67640
67641    /// Similar to "send" but does not shutdown the channel if an error occurs.
67642    pub fn send_no_shutdown_on_err(
67643        self,
67644        mut payload: StreamSocketDescribeResponse,
67645    ) -> Result<(), fidl::Error> {
67646        let _result = self.send_raw(payload);
67647        self.drop_without_shutdown();
67648        _result
67649    }
67650
67651    fn send_raw(&self, mut payload: StreamSocketDescribeResponse) -> Result<(), fidl::Error> {
67652        self.control_handle.inner.send::<StreamSocketDescribeResponse>(
67653            &mut payload,
67654            self.tx_id,
67655            0x29e22969a7dadc32,
67656            fidl::encoding::DynamicFlags::empty(),
67657        )
67658    }
67659}
67660
67661#[must_use = "FIDL methods require a response to be sent"]
67662#[derive(Debug)]
67663pub struct StreamSocketListenResponder {
67664    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67665    tx_id: u32,
67666}
67667
67668/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67669/// if the responder is dropped without sending a response, so that the client
67670/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67671impl std::ops::Drop for StreamSocketListenResponder {
67672    fn drop(&mut self) {
67673        self.control_handle.shutdown();
67674        // Safety: drops once, never accessed again
67675        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67676    }
67677}
67678
67679impl fidl::endpoints::Responder for StreamSocketListenResponder {
67680    type ControlHandle = StreamSocketControlHandle;
67681
67682    fn control_handle(&self) -> &StreamSocketControlHandle {
67683        &self.control_handle
67684    }
67685
67686    fn drop_without_shutdown(mut self) {
67687        // Safety: drops once, never accessed again due to mem::forget
67688        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67689        // Prevent Drop from running (which would shut down the channel)
67690        std::mem::forget(self);
67691    }
67692}
67693
67694impl StreamSocketListenResponder {
67695    /// Sends a response to the FIDL transaction.
67696    ///
67697    /// Sets the channel to shutdown if an error occurs.
67698    pub fn send(
67699        self,
67700        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67701    ) -> Result<(), fidl::Error> {
67702        let _result = self.send_raw(result);
67703        if _result.is_err() {
67704            self.control_handle.shutdown();
67705        }
67706        self.drop_without_shutdown();
67707        _result
67708    }
67709
67710    /// Similar to "send" but does not shutdown the channel if an error occurs.
67711    pub fn send_no_shutdown_on_err(
67712        self,
67713        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67714    ) -> Result<(), fidl::Error> {
67715        let _result = self.send_raw(result);
67716        self.drop_without_shutdown();
67717        _result
67718    }
67719
67720    fn send_raw(
67721        &self,
67722        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67723    ) -> Result<(), fidl::Error> {
67724        self.control_handle.inner.send::<fidl::encoding::ResultType<
67725            fidl::encoding::EmptyStruct,
67726            fidl_fuchsia_posix::Errno,
67727        >>(
67728            result,
67729            self.tx_id,
67730            0x3d0a65ced3d10108,
67731            fidl::encoding::DynamicFlags::empty(),
67732        )
67733    }
67734}
67735
67736#[must_use = "FIDL methods require a response to be sent"]
67737#[derive(Debug)]
67738pub struct StreamSocketAcceptResponder {
67739    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67740    tx_id: u32,
67741}
67742
67743/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67744/// if the responder is dropped without sending a response, so that the client
67745/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67746impl std::ops::Drop for StreamSocketAcceptResponder {
67747    fn drop(&mut self) {
67748        self.control_handle.shutdown();
67749        // Safety: drops once, never accessed again
67750        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67751    }
67752}
67753
67754impl fidl::endpoints::Responder for StreamSocketAcceptResponder {
67755    type ControlHandle = StreamSocketControlHandle;
67756
67757    fn control_handle(&self) -> &StreamSocketControlHandle {
67758        &self.control_handle
67759    }
67760
67761    fn drop_without_shutdown(mut self) {
67762        // Safety: drops once, never accessed again due to mem::forget
67763        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67764        // Prevent Drop from running (which would shut down the channel)
67765        std::mem::forget(self);
67766    }
67767}
67768
67769impl StreamSocketAcceptResponder {
67770    /// Sends a response to the FIDL transaction.
67771    ///
67772    /// Sets the channel to shutdown if an error occurs.
67773    pub fn send(
67774        self,
67775        mut result: Result<
67776            (
67777                Option<&fidl_fuchsia_net::SocketAddress>,
67778                fidl::endpoints::ClientEnd<StreamSocketMarker>,
67779            ),
67780            fidl_fuchsia_posix::Errno,
67781        >,
67782    ) -> Result<(), fidl::Error> {
67783        let _result = self.send_raw(result);
67784        if _result.is_err() {
67785            self.control_handle.shutdown();
67786        }
67787        self.drop_without_shutdown();
67788        _result
67789    }
67790
67791    /// Similar to "send" but does not shutdown the channel if an error occurs.
67792    pub fn send_no_shutdown_on_err(
67793        self,
67794        mut result: Result<
67795            (
67796                Option<&fidl_fuchsia_net::SocketAddress>,
67797                fidl::endpoints::ClientEnd<StreamSocketMarker>,
67798            ),
67799            fidl_fuchsia_posix::Errno,
67800        >,
67801    ) -> Result<(), fidl::Error> {
67802        let _result = self.send_raw(result);
67803        self.drop_without_shutdown();
67804        _result
67805    }
67806
67807    fn send_raw(
67808        &self,
67809        mut result: Result<
67810            (
67811                Option<&fidl_fuchsia_net::SocketAddress>,
67812                fidl::endpoints::ClientEnd<StreamSocketMarker>,
67813            ),
67814            fidl_fuchsia_posix::Errno,
67815        >,
67816    ) -> Result<(), fidl::Error> {
67817        self.control_handle.inner.send::<fidl::encoding::ResultType<
67818            StreamSocketAcceptResponse,
67819            fidl_fuchsia_posix::Errno,
67820        >>(
67821            result,
67822            self.tx_id,
67823            0x5ab7ad620424c163,
67824            fidl::encoding::DynamicFlags::empty(),
67825        )
67826    }
67827}
67828
67829#[must_use = "FIDL methods require a response to be sent"]
67830#[derive(Debug)]
67831pub struct StreamSocketGetInfoResponder {
67832    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67833    tx_id: u32,
67834}
67835
67836/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67837/// if the responder is dropped without sending a response, so that the client
67838/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67839impl std::ops::Drop for StreamSocketGetInfoResponder {
67840    fn drop(&mut self) {
67841        self.control_handle.shutdown();
67842        // Safety: drops once, never accessed again
67843        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67844    }
67845}
67846
67847impl fidl::endpoints::Responder for StreamSocketGetInfoResponder {
67848    type ControlHandle = StreamSocketControlHandle;
67849
67850    fn control_handle(&self) -> &StreamSocketControlHandle {
67851        &self.control_handle
67852    }
67853
67854    fn drop_without_shutdown(mut self) {
67855        // Safety: drops once, never accessed again due to mem::forget
67856        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67857        // Prevent Drop from running (which would shut down the channel)
67858        std::mem::forget(self);
67859    }
67860}
67861
67862impl StreamSocketGetInfoResponder {
67863    /// Sends a response to the FIDL transaction.
67864    ///
67865    /// Sets the channel to shutdown if an error occurs.
67866    pub fn send(
67867        self,
67868        mut result: Result<(Domain, StreamSocketProtocol), fidl_fuchsia_posix::Errno>,
67869    ) -> Result<(), fidl::Error> {
67870        let _result = self.send_raw(result);
67871        if _result.is_err() {
67872            self.control_handle.shutdown();
67873        }
67874        self.drop_without_shutdown();
67875        _result
67876    }
67877
67878    /// Similar to "send" but does not shutdown the channel if an error occurs.
67879    pub fn send_no_shutdown_on_err(
67880        self,
67881        mut result: Result<(Domain, StreamSocketProtocol), fidl_fuchsia_posix::Errno>,
67882    ) -> Result<(), fidl::Error> {
67883        let _result = self.send_raw(result);
67884        self.drop_without_shutdown();
67885        _result
67886    }
67887
67888    fn send_raw(
67889        &self,
67890        mut result: Result<(Domain, StreamSocketProtocol), fidl_fuchsia_posix::Errno>,
67891    ) -> Result<(), fidl::Error> {
67892        self.control_handle.inner.send::<fidl::encoding::ResultType<
67893            StreamSocketGetInfoResponse,
67894            fidl_fuchsia_posix::Errno,
67895        >>(
67896            result,
67897            self.tx_id,
67898            0x87cfa55d19f878f,
67899            fidl::encoding::DynamicFlags::empty(),
67900        )
67901    }
67902}
67903
67904#[must_use = "FIDL methods require a response to be sent"]
67905#[derive(Debug)]
67906pub struct StreamSocketSetTcpNoDelayResponder {
67907    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67908    tx_id: u32,
67909}
67910
67911/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67912/// if the responder is dropped without sending a response, so that the client
67913/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67914impl std::ops::Drop for StreamSocketSetTcpNoDelayResponder {
67915    fn drop(&mut self) {
67916        self.control_handle.shutdown();
67917        // Safety: drops once, never accessed again
67918        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67919    }
67920}
67921
67922impl fidl::endpoints::Responder for StreamSocketSetTcpNoDelayResponder {
67923    type ControlHandle = StreamSocketControlHandle;
67924
67925    fn control_handle(&self) -> &StreamSocketControlHandle {
67926        &self.control_handle
67927    }
67928
67929    fn drop_without_shutdown(mut self) {
67930        // Safety: drops once, never accessed again due to mem::forget
67931        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67932        // Prevent Drop from running (which would shut down the channel)
67933        std::mem::forget(self);
67934    }
67935}
67936
67937impl StreamSocketSetTcpNoDelayResponder {
67938    /// Sends a response to the FIDL transaction.
67939    ///
67940    /// Sets the channel to shutdown if an error occurs.
67941    pub fn send(
67942        self,
67943        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67944    ) -> Result<(), fidl::Error> {
67945        let _result = self.send_raw(result);
67946        if _result.is_err() {
67947            self.control_handle.shutdown();
67948        }
67949        self.drop_without_shutdown();
67950        _result
67951    }
67952
67953    /// Similar to "send" but does not shutdown the channel if an error occurs.
67954    pub fn send_no_shutdown_on_err(
67955        self,
67956        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67957    ) -> Result<(), fidl::Error> {
67958        let _result = self.send_raw(result);
67959        self.drop_without_shutdown();
67960        _result
67961    }
67962
67963    fn send_raw(
67964        &self,
67965        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67966    ) -> Result<(), fidl::Error> {
67967        self.control_handle.inner.send::<fidl::encoding::ResultType<
67968            fidl::encoding::EmptyStruct,
67969            fidl_fuchsia_posix::Errno,
67970        >>(
67971            result,
67972            self.tx_id,
67973            0x5a59b778f7333ada,
67974            fidl::encoding::DynamicFlags::empty(),
67975        )
67976    }
67977}
67978
67979#[must_use = "FIDL methods require a response to be sent"]
67980#[derive(Debug)]
67981pub struct StreamSocketGetTcpNoDelayResponder {
67982    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67983    tx_id: u32,
67984}
67985
67986/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67987/// if the responder is dropped without sending a response, so that the client
67988/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67989impl std::ops::Drop for StreamSocketGetTcpNoDelayResponder {
67990    fn drop(&mut self) {
67991        self.control_handle.shutdown();
67992        // Safety: drops once, never accessed again
67993        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67994    }
67995}
67996
67997impl fidl::endpoints::Responder for StreamSocketGetTcpNoDelayResponder {
67998    type ControlHandle = StreamSocketControlHandle;
67999
68000    fn control_handle(&self) -> &StreamSocketControlHandle {
68001        &self.control_handle
68002    }
68003
68004    fn drop_without_shutdown(mut self) {
68005        // Safety: drops once, never accessed again due to mem::forget
68006        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68007        // Prevent Drop from running (which would shut down the channel)
68008        std::mem::forget(self);
68009    }
68010}
68011
68012impl StreamSocketGetTcpNoDelayResponder {
68013    /// Sends a response to the FIDL transaction.
68014    ///
68015    /// Sets the channel to shutdown if an error occurs.
68016    pub fn send(
68017        self,
68018        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
68019    ) -> Result<(), fidl::Error> {
68020        let _result = self.send_raw(result);
68021        if _result.is_err() {
68022            self.control_handle.shutdown();
68023        }
68024        self.drop_without_shutdown();
68025        _result
68026    }
68027
68028    /// Similar to "send" but does not shutdown the channel if an error occurs.
68029    pub fn send_no_shutdown_on_err(
68030        self,
68031        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
68032    ) -> Result<(), fidl::Error> {
68033        let _result = self.send_raw(result);
68034        self.drop_without_shutdown();
68035        _result
68036    }
68037
68038    fn send_raw(
68039        &self,
68040        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
68041    ) -> Result<(), fidl::Error> {
68042        self.control_handle.inner.send::<fidl::encoding::ResultType<
68043            StreamSocketGetTcpNoDelayResponse,
68044            fidl_fuchsia_posix::Errno,
68045        >>(
68046            result.map(|value| (value,)),
68047            self.tx_id,
68048            0xac219a3218b0799,
68049            fidl::encoding::DynamicFlags::empty(),
68050        )
68051    }
68052}
68053
68054#[must_use = "FIDL methods require a response to be sent"]
68055#[derive(Debug)]
68056pub struct StreamSocketSetTcpMaxSegmentResponder {
68057    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
68058    tx_id: u32,
68059}
68060
68061/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
68062/// if the responder is dropped without sending a response, so that the client
68063/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
68064impl std::ops::Drop for StreamSocketSetTcpMaxSegmentResponder {
68065    fn drop(&mut self) {
68066        self.control_handle.shutdown();
68067        // Safety: drops once, never accessed again
68068        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68069    }
68070}
68071
68072impl fidl::endpoints::Responder for StreamSocketSetTcpMaxSegmentResponder {
68073    type ControlHandle = StreamSocketControlHandle;
68074
68075    fn control_handle(&self) -> &StreamSocketControlHandle {
68076        &self.control_handle
68077    }
68078
68079    fn drop_without_shutdown(mut self) {
68080        // Safety: drops once, never accessed again due to mem::forget
68081        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68082        // Prevent Drop from running (which would shut down the channel)
68083        std::mem::forget(self);
68084    }
68085}
68086
68087impl StreamSocketSetTcpMaxSegmentResponder {
68088    /// Sends a response to the FIDL transaction.
68089    ///
68090    /// Sets the channel to shutdown if an error occurs.
68091    pub fn send(
68092        self,
68093        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68094    ) -> Result<(), fidl::Error> {
68095        let _result = self.send_raw(result);
68096        if _result.is_err() {
68097            self.control_handle.shutdown();
68098        }
68099        self.drop_without_shutdown();
68100        _result
68101    }
68102
68103    /// Similar to "send" but does not shutdown the channel if an error occurs.
68104    pub fn send_no_shutdown_on_err(
68105        self,
68106        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68107    ) -> Result<(), fidl::Error> {
68108        let _result = self.send_raw(result);
68109        self.drop_without_shutdown();
68110        _result
68111    }
68112
68113    fn send_raw(
68114        &self,
68115        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68116    ) -> Result<(), fidl::Error> {
68117        self.control_handle.inner.send::<fidl::encoding::ResultType<
68118            fidl::encoding::EmptyStruct,
68119            fidl_fuchsia_posix::Errno,
68120        >>(
68121            result,
68122            self.tx_id,
68123            0xb3d30c498266d18,
68124            fidl::encoding::DynamicFlags::empty(),
68125        )
68126    }
68127}
68128
68129#[must_use = "FIDL methods require a response to be sent"]
68130#[derive(Debug)]
68131pub struct StreamSocketGetTcpMaxSegmentResponder {
68132    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
68133    tx_id: u32,
68134}
68135
68136/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
68137/// if the responder is dropped without sending a response, so that the client
68138/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
68139impl std::ops::Drop for StreamSocketGetTcpMaxSegmentResponder {
68140    fn drop(&mut self) {
68141        self.control_handle.shutdown();
68142        // Safety: drops once, never accessed again
68143        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68144    }
68145}
68146
68147impl fidl::endpoints::Responder for StreamSocketGetTcpMaxSegmentResponder {
68148    type ControlHandle = StreamSocketControlHandle;
68149
68150    fn control_handle(&self) -> &StreamSocketControlHandle {
68151        &self.control_handle
68152    }
68153
68154    fn drop_without_shutdown(mut self) {
68155        // Safety: drops once, never accessed again due to mem::forget
68156        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68157        // Prevent Drop from running (which would shut down the channel)
68158        std::mem::forget(self);
68159    }
68160}
68161
68162impl StreamSocketGetTcpMaxSegmentResponder {
68163    /// Sends a response to the FIDL transaction.
68164    ///
68165    /// Sets the channel to shutdown if an error occurs.
68166    pub fn send(
68167        self,
68168        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
68169    ) -> Result<(), fidl::Error> {
68170        let _result = self.send_raw(result);
68171        if _result.is_err() {
68172            self.control_handle.shutdown();
68173        }
68174        self.drop_without_shutdown();
68175        _result
68176    }
68177
68178    /// Similar to "send" but does not shutdown the channel if an error occurs.
68179    pub fn send_no_shutdown_on_err(
68180        self,
68181        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
68182    ) -> Result<(), fidl::Error> {
68183        let _result = self.send_raw(result);
68184        self.drop_without_shutdown();
68185        _result
68186    }
68187
68188    fn send_raw(
68189        &self,
68190        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
68191    ) -> Result<(), fidl::Error> {
68192        self.control_handle.inner.send::<fidl::encoding::ResultType<
68193            StreamSocketGetTcpMaxSegmentResponse,
68194            fidl_fuchsia_posix::Errno,
68195        >>(
68196            result.map(|value_bytes| (value_bytes,)),
68197            self.tx_id,
68198            0x637404d1b4b9982c,
68199            fidl::encoding::DynamicFlags::empty(),
68200        )
68201    }
68202}
68203
68204#[must_use = "FIDL methods require a response to be sent"]
68205#[derive(Debug)]
68206pub struct StreamSocketSetTcpCorkResponder {
68207    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
68208    tx_id: u32,
68209}
68210
68211/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
68212/// if the responder is dropped without sending a response, so that the client
68213/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
68214impl std::ops::Drop for StreamSocketSetTcpCorkResponder {
68215    fn drop(&mut self) {
68216        self.control_handle.shutdown();
68217        // Safety: drops once, never accessed again
68218        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68219    }
68220}
68221
68222impl fidl::endpoints::Responder for StreamSocketSetTcpCorkResponder {
68223    type ControlHandle = StreamSocketControlHandle;
68224
68225    fn control_handle(&self) -> &StreamSocketControlHandle {
68226        &self.control_handle
68227    }
68228
68229    fn drop_without_shutdown(mut self) {
68230        // Safety: drops once, never accessed again due to mem::forget
68231        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68232        // Prevent Drop from running (which would shut down the channel)
68233        std::mem::forget(self);
68234    }
68235}
68236
68237impl StreamSocketSetTcpCorkResponder {
68238    /// Sends a response to the FIDL transaction.
68239    ///
68240    /// Sets the channel to shutdown if an error occurs.
68241    pub fn send(
68242        self,
68243        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68244    ) -> Result<(), fidl::Error> {
68245        let _result = self.send_raw(result);
68246        if _result.is_err() {
68247            self.control_handle.shutdown();
68248        }
68249        self.drop_without_shutdown();
68250        _result
68251    }
68252
68253    /// Similar to "send" but does not shutdown the channel if an error occurs.
68254    pub fn send_no_shutdown_on_err(
68255        self,
68256        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68257    ) -> Result<(), fidl::Error> {
68258        let _result = self.send_raw(result);
68259        self.drop_without_shutdown();
68260        _result
68261    }
68262
68263    fn send_raw(
68264        &self,
68265        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68266    ) -> Result<(), fidl::Error> {
68267        self.control_handle.inner.send::<fidl::encoding::ResultType<
68268            fidl::encoding::EmptyStruct,
68269            fidl_fuchsia_posix::Errno,
68270        >>(
68271            result,
68272            self.tx_id,
68273            0x62e26891541143a0,
68274            fidl::encoding::DynamicFlags::empty(),
68275        )
68276    }
68277}
68278
68279#[must_use = "FIDL methods require a response to be sent"]
68280#[derive(Debug)]
68281pub struct StreamSocketGetTcpCorkResponder {
68282    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
68283    tx_id: u32,
68284}
68285
68286/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
68287/// if the responder is dropped without sending a response, so that the client
68288/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
68289impl std::ops::Drop for StreamSocketGetTcpCorkResponder {
68290    fn drop(&mut self) {
68291        self.control_handle.shutdown();
68292        // Safety: drops once, never accessed again
68293        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68294    }
68295}
68296
68297impl fidl::endpoints::Responder for StreamSocketGetTcpCorkResponder {
68298    type ControlHandle = StreamSocketControlHandle;
68299
68300    fn control_handle(&self) -> &StreamSocketControlHandle {
68301        &self.control_handle
68302    }
68303
68304    fn drop_without_shutdown(mut self) {
68305        // Safety: drops once, never accessed again due to mem::forget
68306        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68307        // Prevent Drop from running (which would shut down the channel)
68308        std::mem::forget(self);
68309    }
68310}
68311
68312impl StreamSocketGetTcpCorkResponder {
68313    /// Sends a response to the FIDL transaction.
68314    ///
68315    /// Sets the channel to shutdown if an error occurs.
68316    pub fn send(
68317        self,
68318        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
68319    ) -> Result<(), fidl::Error> {
68320        let _result = self.send_raw(result);
68321        if _result.is_err() {
68322            self.control_handle.shutdown();
68323        }
68324        self.drop_without_shutdown();
68325        _result
68326    }
68327
68328    /// Similar to "send" but does not shutdown the channel if an error occurs.
68329    pub fn send_no_shutdown_on_err(
68330        self,
68331        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
68332    ) -> Result<(), fidl::Error> {
68333        let _result = self.send_raw(result);
68334        self.drop_without_shutdown();
68335        _result
68336    }
68337
68338    fn send_raw(
68339        &self,
68340        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
68341    ) -> Result<(), fidl::Error> {
68342        self.control_handle.inner.send::<fidl::encoding::ResultType<
68343            StreamSocketGetTcpCorkResponse,
68344            fidl_fuchsia_posix::Errno,
68345        >>(
68346            result.map(|value| (value,)),
68347            self.tx_id,
68348            0x435bb232e0e74f32,
68349            fidl::encoding::DynamicFlags::empty(),
68350        )
68351    }
68352}
68353
68354#[must_use = "FIDL methods require a response to be sent"]
68355#[derive(Debug)]
68356pub struct StreamSocketSetTcpKeepAliveIdleResponder {
68357    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
68358    tx_id: u32,
68359}
68360
68361/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
68362/// if the responder is dropped without sending a response, so that the client
68363/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
68364impl std::ops::Drop for StreamSocketSetTcpKeepAliveIdleResponder {
68365    fn drop(&mut self) {
68366        self.control_handle.shutdown();
68367        // Safety: drops once, never accessed again
68368        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68369    }
68370}
68371
68372impl fidl::endpoints::Responder for StreamSocketSetTcpKeepAliveIdleResponder {
68373    type ControlHandle = StreamSocketControlHandle;
68374
68375    fn control_handle(&self) -> &StreamSocketControlHandle {
68376        &self.control_handle
68377    }
68378
68379    fn drop_without_shutdown(mut self) {
68380        // Safety: drops once, never accessed again due to mem::forget
68381        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68382        // Prevent Drop from running (which would shut down the channel)
68383        std::mem::forget(self);
68384    }
68385}
68386
68387impl StreamSocketSetTcpKeepAliveIdleResponder {
68388    /// Sends a response to the FIDL transaction.
68389    ///
68390    /// Sets the channel to shutdown if an error occurs.
68391    pub fn send(
68392        self,
68393        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68394    ) -> Result<(), fidl::Error> {
68395        let _result = self.send_raw(result);
68396        if _result.is_err() {
68397            self.control_handle.shutdown();
68398        }
68399        self.drop_without_shutdown();
68400        _result
68401    }
68402
68403    /// Similar to "send" but does not shutdown the channel if an error occurs.
68404    pub fn send_no_shutdown_on_err(
68405        self,
68406        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68407    ) -> Result<(), fidl::Error> {
68408        let _result = self.send_raw(result);
68409        self.drop_without_shutdown();
68410        _result
68411    }
68412
68413    fn send_raw(
68414        &self,
68415        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68416    ) -> Result<(), fidl::Error> {
68417        self.control_handle.inner.send::<fidl::encoding::ResultType<
68418            fidl::encoding::EmptyStruct,
68419            fidl_fuchsia_posix::Errno,
68420        >>(
68421            result,
68422            self.tx_id,
68423            0x196d053d8363c42,
68424            fidl::encoding::DynamicFlags::empty(),
68425        )
68426    }
68427}
68428
68429#[must_use = "FIDL methods require a response to be sent"]
68430#[derive(Debug)]
68431pub struct StreamSocketGetTcpKeepAliveIdleResponder {
68432    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
68433    tx_id: u32,
68434}
68435
68436/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
68437/// if the responder is dropped without sending a response, so that the client
68438/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
68439impl std::ops::Drop for StreamSocketGetTcpKeepAliveIdleResponder {
68440    fn drop(&mut self) {
68441        self.control_handle.shutdown();
68442        // Safety: drops once, never accessed again
68443        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68444    }
68445}
68446
68447impl fidl::endpoints::Responder for StreamSocketGetTcpKeepAliveIdleResponder {
68448    type ControlHandle = StreamSocketControlHandle;
68449
68450    fn control_handle(&self) -> &StreamSocketControlHandle {
68451        &self.control_handle
68452    }
68453
68454    fn drop_without_shutdown(mut self) {
68455        // Safety: drops once, never accessed again due to mem::forget
68456        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68457        // Prevent Drop from running (which would shut down the channel)
68458        std::mem::forget(self);
68459    }
68460}
68461
68462impl StreamSocketGetTcpKeepAliveIdleResponder {
68463    /// Sends a response to the FIDL transaction.
68464    ///
68465    /// Sets the channel to shutdown if an error occurs.
68466    pub fn send(
68467        self,
68468        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
68469    ) -> Result<(), fidl::Error> {
68470        let _result = self.send_raw(result);
68471        if _result.is_err() {
68472            self.control_handle.shutdown();
68473        }
68474        self.drop_without_shutdown();
68475        _result
68476    }
68477
68478    /// Similar to "send" but does not shutdown the channel if an error occurs.
68479    pub fn send_no_shutdown_on_err(
68480        self,
68481        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
68482    ) -> Result<(), fidl::Error> {
68483        let _result = self.send_raw(result);
68484        self.drop_without_shutdown();
68485        _result
68486    }
68487
68488    fn send_raw(
68489        &self,
68490        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
68491    ) -> Result<(), fidl::Error> {
68492        self.control_handle.inner.send::<fidl::encoding::ResultType<
68493            StreamSocketGetTcpKeepAliveIdleResponse,
68494            fidl_fuchsia_posix::Errno,
68495        >>(
68496            result.map(|value_secs| (value_secs,)),
68497            self.tx_id,
68498            0x35ec58564879dac,
68499            fidl::encoding::DynamicFlags::empty(),
68500        )
68501    }
68502}
68503
68504#[must_use = "FIDL methods require a response to be sent"]
68505#[derive(Debug)]
68506pub struct StreamSocketSetTcpKeepAliveIntervalResponder {
68507    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
68508    tx_id: u32,
68509}
68510
68511/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
68512/// if the responder is dropped without sending a response, so that the client
68513/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
68514impl std::ops::Drop for StreamSocketSetTcpKeepAliveIntervalResponder {
68515    fn drop(&mut self) {
68516        self.control_handle.shutdown();
68517        // Safety: drops once, never accessed again
68518        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68519    }
68520}
68521
68522impl fidl::endpoints::Responder for StreamSocketSetTcpKeepAliveIntervalResponder {
68523    type ControlHandle = StreamSocketControlHandle;
68524
68525    fn control_handle(&self) -> &StreamSocketControlHandle {
68526        &self.control_handle
68527    }
68528
68529    fn drop_without_shutdown(mut self) {
68530        // Safety: drops once, never accessed again due to mem::forget
68531        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68532        // Prevent Drop from running (which would shut down the channel)
68533        std::mem::forget(self);
68534    }
68535}
68536
68537impl StreamSocketSetTcpKeepAliveIntervalResponder {
68538    /// Sends a response to the FIDL transaction.
68539    ///
68540    /// Sets the channel to shutdown if an error occurs.
68541    pub fn send(
68542        self,
68543        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68544    ) -> Result<(), fidl::Error> {
68545        let _result = self.send_raw(result);
68546        if _result.is_err() {
68547            self.control_handle.shutdown();
68548        }
68549        self.drop_without_shutdown();
68550        _result
68551    }
68552
68553    /// Similar to "send" but does not shutdown the channel if an error occurs.
68554    pub fn send_no_shutdown_on_err(
68555        self,
68556        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68557    ) -> Result<(), fidl::Error> {
68558        let _result = self.send_raw(result);
68559        self.drop_without_shutdown();
68560        _result
68561    }
68562
68563    fn send_raw(
68564        &self,
68565        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68566    ) -> Result<(), fidl::Error> {
68567        self.control_handle.inner.send::<fidl::encoding::ResultType<
68568            fidl::encoding::EmptyStruct,
68569            fidl_fuchsia_posix::Errno,
68570        >>(
68571            result,
68572            self.tx_id,
68573            0x485ffbc2da1243f2,
68574            fidl::encoding::DynamicFlags::empty(),
68575        )
68576    }
68577}
68578
68579#[must_use = "FIDL methods require a response to be sent"]
68580#[derive(Debug)]
68581pub struct StreamSocketGetTcpKeepAliveIntervalResponder {
68582    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
68583    tx_id: u32,
68584}
68585
68586/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
68587/// if the responder is dropped without sending a response, so that the client
68588/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
68589impl std::ops::Drop for StreamSocketGetTcpKeepAliveIntervalResponder {
68590    fn drop(&mut self) {
68591        self.control_handle.shutdown();
68592        // Safety: drops once, never accessed again
68593        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68594    }
68595}
68596
68597impl fidl::endpoints::Responder for StreamSocketGetTcpKeepAliveIntervalResponder {
68598    type ControlHandle = StreamSocketControlHandle;
68599
68600    fn control_handle(&self) -> &StreamSocketControlHandle {
68601        &self.control_handle
68602    }
68603
68604    fn drop_without_shutdown(mut self) {
68605        // Safety: drops once, never accessed again due to mem::forget
68606        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68607        // Prevent Drop from running (which would shut down the channel)
68608        std::mem::forget(self);
68609    }
68610}
68611
68612impl StreamSocketGetTcpKeepAliveIntervalResponder {
68613    /// Sends a response to the FIDL transaction.
68614    ///
68615    /// Sets the channel to shutdown if an error occurs.
68616    pub fn send(
68617        self,
68618        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
68619    ) -> Result<(), fidl::Error> {
68620        let _result = self.send_raw(result);
68621        if _result.is_err() {
68622            self.control_handle.shutdown();
68623        }
68624        self.drop_without_shutdown();
68625        _result
68626    }
68627
68628    /// Similar to "send" but does not shutdown the channel if an error occurs.
68629    pub fn send_no_shutdown_on_err(
68630        self,
68631        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
68632    ) -> Result<(), fidl::Error> {
68633        let _result = self.send_raw(result);
68634        self.drop_without_shutdown();
68635        _result
68636    }
68637
68638    fn send_raw(
68639        &self,
68640        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
68641    ) -> Result<(), fidl::Error> {
68642        self.control_handle.inner.send::<fidl::encoding::ResultType<
68643            StreamSocketGetTcpKeepAliveIntervalResponse,
68644            fidl_fuchsia_posix::Errno,
68645        >>(
68646            result.map(|value_secs| (value_secs,)),
68647            self.tx_id,
68648            0x264eaf46306b284,
68649            fidl::encoding::DynamicFlags::empty(),
68650        )
68651    }
68652}
68653
68654#[must_use = "FIDL methods require a response to be sent"]
68655#[derive(Debug)]
68656pub struct StreamSocketSetTcpKeepAliveCountResponder {
68657    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
68658    tx_id: u32,
68659}
68660
68661/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
68662/// if the responder is dropped without sending a response, so that the client
68663/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
68664impl std::ops::Drop for StreamSocketSetTcpKeepAliveCountResponder {
68665    fn drop(&mut self) {
68666        self.control_handle.shutdown();
68667        // Safety: drops once, never accessed again
68668        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68669    }
68670}
68671
68672impl fidl::endpoints::Responder for StreamSocketSetTcpKeepAliveCountResponder {
68673    type ControlHandle = StreamSocketControlHandle;
68674
68675    fn control_handle(&self) -> &StreamSocketControlHandle {
68676        &self.control_handle
68677    }
68678
68679    fn drop_without_shutdown(mut self) {
68680        // Safety: drops once, never accessed again due to mem::forget
68681        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68682        // Prevent Drop from running (which would shut down the channel)
68683        std::mem::forget(self);
68684    }
68685}
68686
68687impl StreamSocketSetTcpKeepAliveCountResponder {
68688    /// Sends a response to the FIDL transaction.
68689    ///
68690    /// Sets the channel to shutdown if an error occurs.
68691    pub fn send(
68692        self,
68693        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68694    ) -> Result<(), fidl::Error> {
68695        let _result = self.send_raw(result);
68696        if _result.is_err() {
68697            self.control_handle.shutdown();
68698        }
68699        self.drop_without_shutdown();
68700        _result
68701    }
68702
68703    /// Similar to "send" but does not shutdown the channel if an error occurs.
68704    pub fn send_no_shutdown_on_err(
68705        self,
68706        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68707    ) -> Result<(), fidl::Error> {
68708        let _result = self.send_raw(result);
68709        self.drop_without_shutdown();
68710        _result
68711    }
68712
68713    fn send_raw(
68714        &self,
68715        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68716    ) -> Result<(), fidl::Error> {
68717        self.control_handle.inner.send::<fidl::encoding::ResultType<
68718            fidl::encoding::EmptyStruct,
68719            fidl_fuchsia_posix::Errno,
68720        >>(
68721            result,
68722            self.tx_id,
68723            0x2ab2e8c111708421,
68724            fidl::encoding::DynamicFlags::empty(),
68725        )
68726    }
68727}
68728
68729#[must_use = "FIDL methods require a response to be sent"]
68730#[derive(Debug)]
68731pub struct StreamSocketGetTcpKeepAliveCountResponder {
68732    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
68733    tx_id: u32,
68734}
68735
68736/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
68737/// if the responder is dropped without sending a response, so that the client
68738/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
68739impl std::ops::Drop for StreamSocketGetTcpKeepAliveCountResponder {
68740    fn drop(&mut self) {
68741        self.control_handle.shutdown();
68742        // Safety: drops once, never accessed again
68743        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68744    }
68745}
68746
68747impl fidl::endpoints::Responder for StreamSocketGetTcpKeepAliveCountResponder {
68748    type ControlHandle = StreamSocketControlHandle;
68749
68750    fn control_handle(&self) -> &StreamSocketControlHandle {
68751        &self.control_handle
68752    }
68753
68754    fn drop_without_shutdown(mut self) {
68755        // Safety: drops once, never accessed again due to mem::forget
68756        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68757        // Prevent Drop from running (which would shut down the channel)
68758        std::mem::forget(self);
68759    }
68760}
68761
68762impl StreamSocketGetTcpKeepAliveCountResponder {
68763    /// Sends a response to the FIDL transaction.
68764    ///
68765    /// Sets the channel to shutdown if an error occurs.
68766    pub fn send(
68767        self,
68768        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
68769    ) -> Result<(), fidl::Error> {
68770        let _result = self.send_raw(result);
68771        if _result.is_err() {
68772            self.control_handle.shutdown();
68773        }
68774        self.drop_without_shutdown();
68775        _result
68776    }
68777
68778    /// Similar to "send" but does not shutdown the channel if an error occurs.
68779    pub fn send_no_shutdown_on_err(
68780        self,
68781        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
68782    ) -> Result<(), fidl::Error> {
68783        let _result = self.send_raw(result);
68784        self.drop_without_shutdown();
68785        _result
68786    }
68787
68788    fn send_raw(
68789        &self,
68790        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
68791    ) -> Result<(), fidl::Error> {
68792        self.control_handle.inner.send::<fidl::encoding::ResultType<
68793            StreamSocketGetTcpKeepAliveCountResponse,
68794            fidl_fuchsia_posix::Errno,
68795        >>(
68796            result.map(|value| (value,)),
68797            self.tx_id,
68798            0x2f176ae271fe7a09,
68799            fidl::encoding::DynamicFlags::empty(),
68800        )
68801    }
68802}
68803
68804#[must_use = "FIDL methods require a response to be sent"]
68805#[derive(Debug)]
68806pub struct StreamSocketSetTcpSynCountResponder {
68807    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
68808    tx_id: u32,
68809}
68810
68811/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
68812/// if the responder is dropped without sending a response, so that the client
68813/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
68814impl std::ops::Drop for StreamSocketSetTcpSynCountResponder {
68815    fn drop(&mut self) {
68816        self.control_handle.shutdown();
68817        // Safety: drops once, never accessed again
68818        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68819    }
68820}
68821
68822impl fidl::endpoints::Responder for StreamSocketSetTcpSynCountResponder {
68823    type ControlHandle = StreamSocketControlHandle;
68824
68825    fn control_handle(&self) -> &StreamSocketControlHandle {
68826        &self.control_handle
68827    }
68828
68829    fn drop_without_shutdown(mut self) {
68830        // Safety: drops once, never accessed again due to mem::forget
68831        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68832        // Prevent Drop from running (which would shut down the channel)
68833        std::mem::forget(self);
68834    }
68835}
68836
68837impl StreamSocketSetTcpSynCountResponder {
68838    /// Sends a response to the FIDL transaction.
68839    ///
68840    /// Sets the channel to shutdown if an error occurs.
68841    pub fn send(
68842        self,
68843        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68844    ) -> Result<(), fidl::Error> {
68845        let _result = self.send_raw(result);
68846        if _result.is_err() {
68847            self.control_handle.shutdown();
68848        }
68849        self.drop_without_shutdown();
68850        _result
68851    }
68852
68853    /// Similar to "send" but does not shutdown the channel if an error occurs.
68854    pub fn send_no_shutdown_on_err(
68855        self,
68856        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68857    ) -> Result<(), fidl::Error> {
68858        let _result = self.send_raw(result);
68859        self.drop_without_shutdown();
68860        _result
68861    }
68862
68863    fn send_raw(
68864        &self,
68865        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68866    ) -> Result<(), fidl::Error> {
68867        self.control_handle.inner.send::<fidl::encoding::ResultType<
68868            fidl::encoding::EmptyStruct,
68869            fidl_fuchsia_posix::Errno,
68870        >>(
68871            result,
68872            self.tx_id,
68873            0x4dcd6ab5573c1eb3,
68874            fidl::encoding::DynamicFlags::empty(),
68875        )
68876    }
68877}
68878
68879#[must_use = "FIDL methods require a response to be sent"]
68880#[derive(Debug)]
68881pub struct StreamSocketGetTcpSynCountResponder {
68882    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
68883    tx_id: u32,
68884}
68885
68886/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
68887/// if the responder is dropped without sending a response, so that the client
68888/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
68889impl std::ops::Drop for StreamSocketGetTcpSynCountResponder {
68890    fn drop(&mut self) {
68891        self.control_handle.shutdown();
68892        // Safety: drops once, never accessed again
68893        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68894    }
68895}
68896
68897impl fidl::endpoints::Responder for StreamSocketGetTcpSynCountResponder {
68898    type ControlHandle = StreamSocketControlHandle;
68899
68900    fn control_handle(&self) -> &StreamSocketControlHandle {
68901        &self.control_handle
68902    }
68903
68904    fn drop_without_shutdown(mut self) {
68905        // Safety: drops once, never accessed again due to mem::forget
68906        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68907        // Prevent Drop from running (which would shut down the channel)
68908        std::mem::forget(self);
68909    }
68910}
68911
68912impl StreamSocketGetTcpSynCountResponder {
68913    /// Sends a response to the FIDL transaction.
68914    ///
68915    /// Sets the channel to shutdown if an error occurs.
68916    pub fn send(
68917        self,
68918        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
68919    ) -> Result<(), fidl::Error> {
68920        let _result = self.send_raw(result);
68921        if _result.is_err() {
68922            self.control_handle.shutdown();
68923        }
68924        self.drop_without_shutdown();
68925        _result
68926    }
68927
68928    /// Similar to "send" but does not shutdown the channel if an error occurs.
68929    pub fn send_no_shutdown_on_err(
68930        self,
68931        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
68932    ) -> Result<(), fidl::Error> {
68933        let _result = self.send_raw(result);
68934        self.drop_without_shutdown();
68935        _result
68936    }
68937
68938    fn send_raw(
68939        &self,
68940        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
68941    ) -> Result<(), fidl::Error> {
68942        self.control_handle.inner.send::<fidl::encoding::ResultType<
68943            StreamSocketGetTcpSynCountResponse,
68944            fidl_fuchsia_posix::Errno,
68945        >>(
68946            result.map(|value| (value,)),
68947            self.tx_id,
68948            0x7d457cba8f5f3ee6,
68949            fidl::encoding::DynamicFlags::empty(),
68950        )
68951    }
68952}
68953
68954#[must_use = "FIDL methods require a response to be sent"]
68955#[derive(Debug)]
68956pub struct StreamSocketSetTcpLingerResponder {
68957    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
68958    tx_id: u32,
68959}
68960
68961/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
68962/// if the responder is dropped without sending a response, so that the client
68963/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
68964impl std::ops::Drop for StreamSocketSetTcpLingerResponder {
68965    fn drop(&mut self) {
68966        self.control_handle.shutdown();
68967        // Safety: drops once, never accessed again
68968        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68969    }
68970}
68971
68972impl fidl::endpoints::Responder for StreamSocketSetTcpLingerResponder {
68973    type ControlHandle = StreamSocketControlHandle;
68974
68975    fn control_handle(&self) -> &StreamSocketControlHandle {
68976        &self.control_handle
68977    }
68978
68979    fn drop_without_shutdown(mut self) {
68980        // Safety: drops once, never accessed again due to mem::forget
68981        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68982        // Prevent Drop from running (which would shut down the channel)
68983        std::mem::forget(self);
68984    }
68985}
68986
68987impl StreamSocketSetTcpLingerResponder {
68988    /// Sends a response to the FIDL transaction.
68989    ///
68990    /// Sets the channel to shutdown if an error occurs.
68991    pub fn send(
68992        self,
68993        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68994    ) -> Result<(), fidl::Error> {
68995        let _result = self.send_raw(result);
68996        if _result.is_err() {
68997            self.control_handle.shutdown();
68998        }
68999        self.drop_without_shutdown();
69000        _result
69001    }
69002
69003    /// Similar to "send" but does not shutdown the channel if an error occurs.
69004    pub fn send_no_shutdown_on_err(
69005        self,
69006        mut result: Result<(), fidl_fuchsia_posix::Errno>,
69007    ) -> Result<(), fidl::Error> {
69008        let _result = self.send_raw(result);
69009        self.drop_without_shutdown();
69010        _result
69011    }
69012
69013    fn send_raw(
69014        &self,
69015        mut result: Result<(), fidl_fuchsia_posix::Errno>,
69016    ) -> Result<(), fidl::Error> {
69017        self.control_handle.inner.send::<fidl::encoding::ResultType<
69018            fidl::encoding::EmptyStruct,
69019            fidl_fuchsia_posix::Errno,
69020        >>(
69021            result,
69022            self.tx_id,
69023            0xd5cc1e8654d36e4,
69024            fidl::encoding::DynamicFlags::empty(),
69025        )
69026    }
69027}
69028
69029#[must_use = "FIDL methods require a response to be sent"]
69030#[derive(Debug)]
69031pub struct StreamSocketGetTcpLingerResponder {
69032    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
69033    tx_id: u32,
69034}
69035
69036/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
69037/// if the responder is dropped without sending a response, so that the client
69038/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
69039impl std::ops::Drop for StreamSocketGetTcpLingerResponder {
69040    fn drop(&mut self) {
69041        self.control_handle.shutdown();
69042        // Safety: drops once, never accessed again
69043        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
69044    }
69045}
69046
69047impl fidl::endpoints::Responder for StreamSocketGetTcpLingerResponder {
69048    type ControlHandle = StreamSocketControlHandle;
69049
69050    fn control_handle(&self) -> &StreamSocketControlHandle {
69051        &self.control_handle
69052    }
69053
69054    fn drop_without_shutdown(mut self) {
69055        // Safety: drops once, never accessed again due to mem::forget
69056        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
69057        // Prevent Drop from running (which would shut down the channel)
69058        std::mem::forget(self);
69059    }
69060}
69061
69062impl StreamSocketGetTcpLingerResponder {
69063    /// Sends a response to the FIDL transaction.
69064    ///
69065    /// Sets the channel to shutdown if an error occurs.
69066    pub fn send(
69067        self,
69068        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
69069    ) -> Result<(), fidl::Error> {
69070        let _result = self.send_raw(result);
69071        if _result.is_err() {
69072            self.control_handle.shutdown();
69073        }
69074        self.drop_without_shutdown();
69075        _result
69076    }
69077
69078    /// Similar to "send" but does not shutdown the channel if an error occurs.
69079    pub fn send_no_shutdown_on_err(
69080        self,
69081        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
69082    ) -> Result<(), fidl::Error> {
69083        let _result = self.send_raw(result);
69084        self.drop_without_shutdown();
69085        _result
69086    }
69087
69088    fn send_raw(
69089        &self,
69090        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
69091    ) -> Result<(), fidl::Error> {
69092        self.control_handle.inner.send::<fidl::encoding::ResultType<
69093            StreamSocketGetTcpLingerResponse,
69094            fidl_fuchsia_posix::Errno,
69095        >>(
69096            result.map(|value_secs| (value_secs,)),
69097            self.tx_id,
69098            0xad870d311cf30eb,
69099            fidl::encoding::DynamicFlags::empty(),
69100        )
69101    }
69102}
69103
69104#[must_use = "FIDL methods require a response to be sent"]
69105#[derive(Debug)]
69106pub struct StreamSocketSetTcpDeferAcceptResponder {
69107    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
69108    tx_id: u32,
69109}
69110
69111/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
69112/// if the responder is dropped without sending a response, so that the client
69113/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
69114impl std::ops::Drop for StreamSocketSetTcpDeferAcceptResponder {
69115    fn drop(&mut self) {
69116        self.control_handle.shutdown();
69117        // Safety: drops once, never accessed again
69118        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
69119    }
69120}
69121
69122impl fidl::endpoints::Responder for StreamSocketSetTcpDeferAcceptResponder {
69123    type ControlHandle = StreamSocketControlHandle;
69124
69125    fn control_handle(&self) -> &StreamSocketControlHandle {
69126        &self.control_handle
69127    }
69128
69129    fn drop_without_shutdown(mut self) {
69130        // Safety: drops once, never accessed again due to mem::forget
69131        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
69132        // Prevent Drop from running (which would shut down the channel)
69133        std::mem::forget(self);
69134    }
69135}
69136
69137impl StreamSocketSetTcpDeferAcceptResponder {
69138    /// Sends a response to the FIDL transaction.
69139    ///
69140    /// Sets the channel to shutdown if an error occurs.
69141    pub fn send(
69142        self,
69143        mut result: Result<(), fidl_fuchsia_posix::Errno>,
69144    ) -> Result<(), fidl::Error> {
69145        let _result = self.send_raw(result);
69146        if _result.is_err() {
69147            self.control_handle.shutdown();
69148        }
69149        self.drop_without_shutdown();
69150        _result
69151    }
69152
69153    /// Similar to "send" but does not shutdown the channel if an error occurs.
69154    pub fn send_no_shutdown_on_err(
69155        self,
69156        mut result: Result<(), fidl_fuchsia_posix::Errno>,
69157    ) -> Result<(), fidl::Error> {
69158        let _result = self.send_raw(result);
69159        self.drop_without_shutdown();
69160        _result
69161    }
69162
69163    fn send_raw(
69164        &self,
69165        mut result: Result<(), fidl_fuchsia_posix::Errno>,
69166    ) -> Result<(), fidl::Error> {
69167        self.control_handle.inner.send::<fidl::encoding::ResultType<
69168            fidl::encoding::EmptyStruct,
69169            fidl_fuchsia_posix::Errno,
69170        >>(
69171            result,
69172            self.tx_id,
69173            0x15092f181e57c404,
69174            fidl::encoding::DynamicFlags::empty(),
69175        )
69176    }
69177}
69178
69179#[must_use = "FIDL methods require a response to be sent"]
69180#[derive(Debug)]
69181pub struct StreamSocketGetTcpDeferAcceptResponder {
69182    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
69183    tx_id: u32,
69184}
69185
69186/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
69187/// if the responder is dropped without sending a response, so that the client
69188/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
69189impl std::ops::Drop for StreamSocketGetTcpDeferAcceptResponder {
69190    fn drop(&mut self) {
69191        self.control_handle.shutdown();
69192        // Safety: drops once, never accessed again
69193        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
69194    }
69195}
69196
69197impl fidl::endpoints::Responder for StreamSocketGetTcpDeferAcceptResponder {
69198    type ControlHandle = StreamSocketControlHandle;
69199
69200    fn control_handle(&self) -> &StreamSocketControlHandle {
69201        &self.control_handle
69202    }
69203
69204    fn drop_without_shutdown(mut self) {
69205        // Safety: drops once, never accessed again due to mem::forget
69206        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
69207        // Prevent Drop from running (which would shut down the channel)
69208        std::mem::forget(self);
69209    }
69210}
69211
69212impl StreamSocketGetTcpDeferAcceptResponder {
69213    /// Sends a response to the FIDL transaction.
69214    ///
69215    /// Sets the channel to shutdown if an error occurs.
69216    pub fn send(
69217        self,
69218        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
69219    ) -> Result<(), fidl::Error> {
69220        let _result = self.send_raw(result);
69221        if _result.is_err() {
69222            self.control_handle.shutdown();
69223        }
69224        self.drop_without_shutdown();
69225        _result
69226    }
69227
69228    /// Similar to "send" but does not shutdown the channel if an error occurs.
69229    pub fn send_no_shutdown_on_err(
69230        self,
69231        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
69232    ) -> Result<(), fidl::Error> {
69233        let _result = self.send_raw(result);
69234        self.drop_without_shutdown();
69235        _result
69236    }
69237
69238    fn send_raw(
69239        &self,
69240        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
69241    ) -> Result<(), fidl::Error> {
69242        self.control_handle.inner.send::<fidl::encoding::ResultType<
69243            StreamSocketGetTcpDeferAcceptResponse,
69244            fidl_fuchsia_posix::Errno,
69245        >>(
69246            result.map(|value_secs| (value_secs,)),
69247            self.tx_id,
69248            0x64589790842cb7c6,
69249            fidl::encoding::DynamicFlags::empty(),
69250        )
69251    }
69252}
69253
69254#[must_use = "FIDL methods require a response to be sent"]
69255#[derive(Debug)]
69256pub struct StreamSocketSetTcpWindowClampResponder {
69257    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
69258    tx_id: u32,
69259}
69260
69261/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
69262/// if the responder is dropped without sending a response, so that the client
69263/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
69264impl std::ops::Drop for StreamSocketSetTcpWindowClampResponder {
69265    fn drop(&mut self) {
69266        self.control_handle.shutdown();
69267        // Safety: drops once, never accessed again
69268        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
69269    }
69270}
69271
69272impl fidl::endpoints::Responder for StreamSocketSetTcpWindowClampResponder {
69273    type ControlHandle = StreamSocketControlHandle;
69274
69275    fn control_handle(&self) -> &StreamSocketControlHandle {
69276        &self.control_handle
69277    }
69278
69279    fn drop_without_shutdown(mut self) {
69280        // Safety: drops once, never accessed again due to mem::forget
69281        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
69282        // Prevent Drop from running (which would shut down the channel)
69283        std::mem::forget(self);
69284    }
69285}
69286
69287impl StreamSocketSetTcpWindowClampResponder {
69288    /// Sends a response to the FIDL transaction.
69289    ///
69290    /// Sets the channel to shutdown if an error occurs.
69291    pub fn send(
69292        self,
69293        mut result: Result<(), fidl_fuchsia_posix::Errno>,
69294    ) -> Result<(), fidl::Error> {
69295        let _result = self.send_raw(result);
69296        if _result.is_err() {
69297            self.control_handle.shutdown();
69298        }
69299        self.drop_without_shutdown();
69300        _result
69301    }
69302
69303    /// Similar to "send" but does not shutdown the channel if an error occurs.
69304    pub fn send_no_shutdown_on_err(
69305        self,
69306        mut result: Result<(), fidl_fuchsia_posix::Errno>,
69307    ) -> Result<(), fidl::Error> {
69308        let _result = self.send_raw(result);
69309        self.drop_without_shutdown();
69310        _result
69311    }
69312
69313    fn send_raw(
69314        &self,
69315        mut result: Result<(), fidl_fuchsia_posix::Errno>,
69316    ) -> Result<(), fidl::Error> {
69317        self.control_handle.inner.send::<fidl::encoding::ResultType<
69318            fidl::encoding::EmptyStruct,
69319            fidl_fuchsia_posix::Errno,
69320        >>(
69321            result,
69322            self.tx_id,
69323            0x4a26ce07d847f1c6,
69324            fidl::encoding::DynamicFlags::empty(),
69325        )
69326    }
69327}
69328
69329#[must_use = "FIDL methods require a response to be sent"]
69330#[derive(Debug)]
69331pub struct StreamSocketGetTcpWindowClampResponder {
69332    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
69333    tx_id: u32,
69334}
69335
69336/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
69337/// if the responder is dropped without sending a response, so that the client
69338/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
69339impl std::ops::Drop for StreamSocketGetTcpWindowClampResponder {
69340    fn drop(&mut self) {
69341        self.control_handle.shutdown();
69342        // Safety: drops once, never accessed again
69343        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
69344    }
69345}
69346
69347impl fidl::endpoints::Responder for StreamSocketGetTcpWindowClampResponder {
69348    type ControlHandle = StreamSocketControlHandle;
69349
69350    fn control_handle(&self) -> &StreamSocketControlHandle {
69351        &self.control_handle
69352    }
69353
69354    fn drop_without_shutdown(mut self) {
69355        // Safety: drops once, never accessed again due to mem::forget
69356        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
69357        // Prevent Drop from running (which would shut down the channel)
69358        std::mem::forget(self);
69359    }
69360}
69361
69362impl StreamSocketGetTcpWindowClampResponder {
69363    /// Sends a response to the FIDL transaction.
69364    ///
69365    /// Sets the channel to shutdown if an error occurs.
69366    pub fn send(
69367        self,
69368        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
69369    ) -> Result<(), fidl::Error> {
69370        let _result = self.send_raw(result);
69371        if _result.is_err() {
69372            self.control_handle.shutdown();
69373        }
69374        self.drop_without_shutdown();
69375        _result
69376    }
69377
69378    /// Similar to "send" but does not shutdown the channel if an error occurs.
69379    pub fn send_no_shutdown_on_err(
69380        self,
69381        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
69382    ) -> Result<(), fidl::Error> {
69383        let _result = self.send_raw(result);
69384        self.drop_without_shutdown();
69385        _result
69386    }
69387
69388    fn send_raw(
69389        &self,
69390        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
69391    ) -> Result<(), fidl::Error> {
69392        self.control_handle.inner.send::<fidl::encoding::ResultType<
69393            StreamSocketGetTcpWindowClampResponse,
69394            fidl_fuchsia_posix::Errno,
69395        >>(
69396            result.map(|value| (value,)),
69397            self.tx_id,
69398            0x2df6b636bf0a6a4e,
69399            fidl::encoding::DynamicFlags::empty(),
69400        )
69401    }
69402}
69403
69404#[must_use = "FIDL methods require a response to be sent"]
69405#[derive(Debug)]
69406pub struct StreamSocketGetTcpInfoResponder {
69407    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
69408    tx_id: u32,
69409}
69410
69411/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
69412/// if the responder is dropped without sending a response, so that the client
69413/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
69414impl std::ops::Drop for StreamSocketGetTcpInfoResponder {
69415    fn drop(&mut self) {
69416        self.control_handle.shutdown();
69417        // Safety: drops once, never accessed again
69418        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
69419    }
69420}
69421
69422impl fidl::endpoints::Responder for StreamSocketGetTcpInfoResponder {
69423    type ControlHandle = StreamSocketControlHandle;
69424
69425    fn control_handle(&self) -> &StreamSocketControlHandle {
69426        &self.control_handle
69427    }
69428
69429    fn drop_without_shutdown(mut self) {
69430        // Safety: drops once, never accessed again due to mem::forget
69431        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
69432        // Prevent Drop from running (which would shut down the channel)
69433        std::mem::forget(self);
69434    }
69435}
69436
69437impl StreamSocketGetTcpInfoResponder {
69438    /// Sends a response to the FIDL transaction.
69439    ///
69440    /// Sets the channel to shutdown if an error occurs.
69441    pub fn send(
69442        self,
69443        mut result: Result<&fidl_fuchsia_net_tcp::Info, fidl_fuchsia_posix::Errno>,
69444    ) -> Result<(), fidl::Error> {
69445        let _result = self.send_raw(result);
69446        if _result.is_err() {
69447            self.control_handle.shutdown();
69448        }
69449        self.drop_without_shutdown();
69450        _result
69451    }
69452
69453    /// Similar to "send" but does not shutdown the channel if an error occurs.
69454    pub fn send_no_shutdown_on_err(
69455        self,
69456        mut result: Result<&fidl_fuchsia_net_tcp::Info, fidl_fuchsia_posix::Errno>,
69457    ) -> Result<(), fidl::Error> {
69458        let _result = self.send_raw(result);
69459        self.drop_without_shutdown();
69460        _result
69461    }
69462
69463    fn send_raw(
69464        &self,
69465        mut result: Result<&fidl_fuchsia_net_tcp::Info, fidl_fuchsia_posix::Errno>,
69466    ) -> Result<(), fidl::Error> {
69467        self.control_handle.inner.send::<fidl::encoding::ResultType<
69468            StreamSocketGetTcpInfoResponse,
69469            fidl_fuchsia_posix::Errno,
69470        >>(
69471            result.map(|info| (info,)),
69472            self.tx_id,
69473            0x1ffb123d9f03ead2,
69474            fidl::encoding::DynamicFlags::empty(),
69475        )
69476    }
69477}
69478
69479#[must_use = "FIDL methods require a response to be sent"]
69480#[derive(Debug)]
69481pub struct StreamSocketSetTcpQuickAckResponder {
69482    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
69483    tx_id: u32,
69484}
69485
69486/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
69487/// if the responder is dropped without sending a response, so that the client
69488/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
69489impl std::ops::Drop for StreamSocketSetTcpQuickAckResponder {
69490    fn drop(&mut self) {
69491        self.control_handle.shutdown();
69492        // Safety: drops once, never accessed again
69493        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
69494    }
69495}
69496
69497impl fidl::endpoints::Responder for StreamSocketSetTcpQuickAckResponder {
69498    type ControlHandle = StreamSocketControlHandle;
69499
69500    fn control_handle(&self) -> &StreamSocketControlHandle {
69501        &self.control_handle
69502    }
69503
69504    fn drop_without_shutdown(mut self) {
69505        // Safety: drops once, never accessed again due to mem::forget
69506        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
69507        // Prevent Drop from running (which would shut down the channel)
69508        std::mem::forget(self);
69509    }
69510}
69511
69512impl StreamSocketSetTcpQuickAckResponder {
69513    /// Sends a response to the FIDL transaction.
69514    ///
69515    /// Sets the channel to shutdown if an error occurs.
69516    pub fn send(
69517        self,
69518        mut result: Result<(), fidl_fuchsia_posix::Errno>,
69519    ) -> Result<(), fidl::Error> {
69520        let _result = self.send_raw(result);
69521        if _result.is_err() {
69522            self.control_handle.shutdown();
69523        }
69524        self.drop_without_shutdown();
69525        _result
69526    }
69527
69528    /// Similar to "send" but does not shutdown the channel if an error occurs.
69529    pub fn send_no_shutdown_on_err(
69530        self,
69531        mut result: Result<(), fidl_fuchsia_posix::Errno>,
69532    ) -> Result<(), fidl::Error> {
69533        let _result = self.send_raw(result);
69534        self.drop_without_shutdown();
69535        _result
69536    }
69537
69538    fn send_raw(
69539        &self,
69540        mut result: Result<(), fidl_fuchsia_posix::Errno>,
69541    ) -> Result<(), fidl::Error> {
69542        self.control_handle.inner.send::<fidl::encoding::ResultType<
69543            fidl::encoding::EmptyStruct,
69544            fidl_fuchsia_posix::Errno,
69545        >>(
69546            result,
69547            self.tx_id,
69548            0x6fa811be8fde7457,
69549            fidl::encoding::DynamicFlags::empty(),
69550        )
69551    }
69552}
69553
69554#[must_use = "FIDL methods require a response to be sent"]
69555#[derive(Debug)]
69556pub struct StreamSocketGetTcpQuickAckResponder {
69557    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
69558    tx_id: u32,
69559}
69560
69561/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
69562/// if the responder is dropped without sending a response, so that the client
69563/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
69564impl std::ops::Drop for StreamSocketGetTcpQuickAckResponder {
69565    fn drop(&mut self) {
69566        self.control_handle.shutdown();
69567        // Safety: drops once, never accessed again
69568        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
69569    }
69570}
69571
69572impl fidl::endpoints::Responder for StreamSocketGetTcpQuickAckResponder {
69573    type ControlHandle = StreamSocketControlHandle;
69574
69575    fn control_handle(&self) -> &StreamSocketControlHandle {
69576        &self.control_handle
69577    }
69578
69579    fn drop_without_shutdown(mut self) {
69580        // Safety: drops once, never accessed again due to mem::forget
69581        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
69582        // Prevent Drop from running (which would shut down the channel)
69583        std::mem::forget(self);
69584    }
69585}
69586
69587impl StreamSocketGetTcpQuickAckResponder {
69588    /// Sends a response to the FIDL transaction.
69589    ///
69590    /// Sets the channel to shutdown if an error occurs.
69591    pub fn send(
69592        self,
69593        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
69594    ) -> Result<(), fidl::Error> {
69595        let _result = self.send_raw(result);
69596        if _result.is_err() {
69597            self.control_handle.shutdown();
69598        }
69599        self.drop_without_shutdown();
69600        _result
69601    }
69602
69603    /// Similar to "send" but does not shutdown the channel if an error occurs.
69604    pub fn send_no_shutdown_on_err(
69605        self,
69606        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
69607    ) -> Result<(), fidl::Error> {
69608        let _result = self.send_raw(result);
69609        self.drop_without_shutdown();
69610        _result
69611    }
69612
69613    fn send_raw(
69614        &self,
69615        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
69616    ) -> Result<(), fidl::Error> {
69617        self.control_handle.inner.send::<fidl::encoding::ResultType<
69618            StreamSocketGetTcpQuickAckResponse,
69619            fidl_fuchsia_posix::Errno,
69620        >>(
69621            result.map(|value| (value,)),
69622            self.tx_id,
69623            0x7356a949bef2df32,
69624            fidl::encoding::DynamicFlags::empty(),
69625        )
69626    }
69627}
69628
69629#[must_use = "FIDL methods require a response to be sent"]
69630#[derive(Debug)]
69631pub struct StreamSocketSetTcpCongestionResponder {
69632    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
69633    tx_id: u32,
69634}
69635
69636/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
69637/// if the responder is dropped without sending a response, so that the client
69638/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
69639impl std::ops::Drop for StreamSocketSetTcpCongestionResponder {
69640    fn drop(&mut self) {
69641        self.control_handle.shutdown();
69642        // Safety: drops once, never accessed again
69643        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
69644    }
69645}
69646
69647impl fidl::endpoints::Responder for StreamSocketSetTcpCongestionResponder {
69648    type ControlHandle = StreamSocketControlHandle;
69649
69650    fn control_handle(&self) -> &StreamSocketControlHandle {
69651        &self.control_handle
69652    }
69653
69654    fn drop_without_shutdown(mut self) {
69655        // Safety: drops once, never accessed again due to mem::forget
69656        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
69657        // Prevent Drop from running (which would shut down the channel)
69658        std::mem::forget(self);
69659    }
69660}
69661
69662impl StreamSocketSetTcpCongestionResponder {
69663    /// Sends a response to the FIDL transaction.
69664    ///
69665    /// Sets the channel to shutdown if an error occurs.
69666    pub fn send(
69667        self,
69668        mut result: Result<(), fidl_fuchsia_posix::Errno>,
69669    ) -> Result<(), fidl::Error> {
69670        let _result = self.send_raw(result);
69671        if _result.is_err() {
69672            self.control_handle.shutdown();
69673        }
69674        self.drop_without_shutdown();
69675        _result
69676    }
69677
69678    /// Similar to "send" but does not shutdown the channel if an error occurs.
69679    pub fn send_no_shutdown_on_err(
69680        self,
69681        mut result: Result<(), fidl_fuchsia_posix::Errno>,
69682    ) -> Result<(), fidl::Error> {
69683        let _result = self.send_raw(result);
69684        self.drop_without_shutdown();
69685        _result
69686    }
69687
69688    fn send_raw(
69689        &self,
69690        mut result: Result<(), fidl_fuchsia_posix::Errno>,
69691    ) -> Result<(), fidl::Error> {
69692        self.control_handle.inner.send::<fidl::encoding::ResultType<
69693            fidl::encoding::EmptyStruct,
69694            fidl_fuchsia_posix::Errno,
69695        >>(
69696            result,
69697            self.tx_id,
69698            0x7924c6eabde7819e,
69699            fidl::encoding::DynamicFlags::empty(),
69700        )
69701    }
69702}
69703
69704#[must_use = "FIDL methods require a response to be sent"]
69705#[derive(Debug)]
69706pub struct StreamSocketGetTcpCongestionResponder {
69707    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
69708    tx_id: u32,
69709}
69710
69711/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
69712/// if the responder is dropped without sending a response, so that the client
69713/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
69714impl std::ops::Drop for StreamSocketGetTcpCongestionResponder {
69715    fn drop(&mut self) {
69716        self.control_handle.shutdown();
69717        // Safety: drops once, never accessed again
69718        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
69719    }
69720}
69721
69722impl fidl::endpoints::Responder for StreamSocketGetTcpCongestionResponder {
69723    type ControlHandle = StreamSocketControlHandle;
69724
69725    fn control_handle(&self) -> &StreamSocketControlHandle {
69726        &self.control_handle
69727    }
69728
69729    fn drop_without_shutdown(mut self) {
69730        // Safety: drops once, never accessed again due to mem::forget
69731        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
69732        // Prevent Drop from running (which would shut down the channel)
69733        std::mem::forget(self);
69734    }
69735}
69736
69737impl StreamSocketGetTcpCongestionResponder {
69738    /// Sends a response to the FIDL transaction.
69739    ///
69740    /// Sets the channel to shutdown if an error occurs.
69741    pub fn send(
69742        self,
69743        mut result: Result<TcpCongestionControl, fidl_fuchsia_posix::Errno>,
69744    ) -> Result<(), fidl::Error> {
69745        let _result = self.send_raw(result);
69746        if _result.is_err() {
69747            self.control_handle.shutdown();
69748        }
69749        self.drop_without_shutdown();
69750        _result
69751    }
69752
69753    /// Similar to "send" but does not shutdown the channel if an error occurs.
69754    pub fn send_no_shutdown_on_err(
69755        self,
69756        mut result: Result<TcpCongestionControl, fidl_fuchsia_posix::Errno>,
69757    ) -> Result<(), fidl::Error> {
69758        let _result = self.send_raw(result);
69759        self.drop_without_shutdown();
69760        _result
69761    }
69762
69763    fn send_raw(
69764        &self,
69765        mut result: Result<TcpCongestionControl, fidl_fuchsia_posix::Errno>,
69766    ) -> Result<(), fidl::Error> {
69767        self.control_handle.inner.send::<fidl::encoding::ResultType<
69768            StreamSocketGetTcpCongestionResponse,
69769            fidl_fuchsia_posix::Errno,
69770        >>(
69771            result.map(|value| (value,)),
69772            self.tx_id,
69773            0x11e16397e1b72a47,
69774            fidl::encoding::DynamicFlags::empty(),
69775        )
69776    }
69777}
69778
69779#[must_use = "FIDL methods require a response to be sent"]
69780#[derive(Debug)]
69781pub struct StreamSocketSetTcpUserTimeoutResponder {
69782    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
69783    tx_id: u32,
69784}
69785
69786/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
69787/// if the responder is dropped without sending a response, so that the client
69788/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
69789impl std::ops::Drop for StreamSocketSetTcpUserTimeoutResponder {
69790    fn drop(&mut self) {
69791        self.control_handle.shutdown();
69792        // Safety: drops once, never accessed again
69793        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
69794    }
69795}
69796
69797impl fidl::endpoints::Responder for StreamSocketSetTcpUserTimeoutResponder {
69798    type ControlHandle = StreamSocketControlHandle;
69799
69800    fn control_handle(&self) -> &StreamSocketControlHandle {
69801        &self.control_handle
69802    }
69803
69804    fn drop_without_shutdown(mut self) {
69805        // Safety: drops once, never accessed again due to mem::forget
69806        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
69807        // Prevent Drop from running (which would shut down the channel)
69808        std::mem::forget(self);
69809    }
69810}
69811
69812impl StreamSocketSetTcpUserTimeoutResponder {
69813    /// Sends a response to the FIDL transaction.
69814    ///
69815    /// Sets the channel to shutdown if an error occurs.
69816    pub fn send(
69817        self,
69818        mut result: Result<(), fidl_fuchsia_posix::Errno>,
69819    ) -> Result<(), fidl::Error> {
69820        let _result = self.send_raw(result);
69821        if _result.is_err() {
69822            self.control_handle.shutdown();
69823        }
69824        self.drop_without_shutdown();
69825        _result
69826    }
69827
69828    /// Similar to "send" but does not shutdown the channel if an error occurs.
69829    pub fn send_no_shutdown_on_err(
69830        self,
69831        mut result: Result<(), fidl_fuchsia_posix::Errno>,
69832    ) -> Result<(), fidl::Error> {
69833        let _result = self.send_raw(result);
69834        self.drop_without_shutdown();
69835        _result
69836    }
69837
69838    fn send_raw(
69839        &self,
69840        mut result: Result<(), fidl_fuchsia_posix::Errno>,
69841    ) -> Result<(), fidl::Error> {
69842        self.control_handle.inner.send::<fidl::encoding::ResultType<
69843            fidl::encoding::EmptyStruct,
69844            fidl_fuchsia_posix::Errno,
69845        >>(
69846            result,
69847            self.tx_id,
69848            0x6b459e81c3741a60,
69849            fidl::encoding::DynamicFlags::empty(),
69850        )
69851    }
69852}
69853
69854#[must_use = "FIDL methods require a response to be sent"]
69855#[derive(Debug)]
69856pub struct StreamSocketGetTcpUserTimeoutResponder {
69857    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
69858    tx_id: u32,
69859}
69860
69861/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
69862/// if the responder is dropped without sending a response, so that the client
69863/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
69864impl std::ops::Drop for StreamSocketGetTcpUserTimeoutResponder {
69865    fn drop(&mut self) {
69866        self.control_handle.shutdown();
69867        // Safety: drops once, never accessed again
69868        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
69869    }
69870}
69871
69872impl fidl::endpoints::Responder for StreamSocketGetTcpUserTimeoutResponder {
69873    type ControlHandle = StreamSocketControlHandle;
69874
69875    fn control_handle(&self) -> &StreamSocketControlHandle {
69876        &self.control_handle
69877    }
69878
69879    fn drop_without_shutdown(mut self) {
69880        // Safety: drops once, never accessed again due to mem::forget
69881        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
69882        // Prevent Drop from running (which would shut down the channel)
69883        std::mem::forget(self);
69884    }
69885}
69886
69887impl StreamSocketGetTcpUserTimeoutResponder {
69888    /// Sends a response to the FIDL transaction.
69889    ///
69890    /// Sets the channel to shutdown if an error occurs.
69891    pub fn send(
69892        self,
69893        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
69894    ) -> Result<(), fidl::Error> {
69895        let _result = self.send_raw(result);
69896        if _result.is_err() {
69897            self.control_handle.shutdown();
69898        }
69899        self.drop_without_shutdown();
69900        _result
69901    }
69902
69903    /// Similar to "send" but does not shutdown the channel if an error occurs.
69904    pub fn send_no_shutdown_on_err(
69905        self,
69906        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
69907    ) -> Result<(), fidl::Error> {
69908        let _result = self.send_raw(result);
69909        self.drop_without_shutdown();
69910        _result
69911    }
69912
69913    fn send_raw(
69914        &self,
69915        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
69916    ) -> Result<(), fidl::Error> {
69917        self.control_handle.inner.send::<fidl::encoding::ResultType<
69918            StreamSocketGetTcpUserTimeoutResponse,
69919            fidl_fuchsia_posix::Errno,
69920        >>(
69921            result.map(|value_millis| (value_millis,)),
69922            self.tx_id,
69923            0x24bbd5858ad8c380,
69924            fidl::encoding::DynamicFlags::empty(),
69925        )
69926    }
69927}
69928
69929#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
69930pub struct SynchronousDatagramSocketMarker;
69931
69932impl fidl::endpoints::ProtocolMarker for SynchronousDatagramSocketMarker {
69933    type Proxy = SynchronousDatagramSocketProxy;
69934    type RequestStream = SynchronousDatagramSocketRequestStream;
69935    #[cfg(target_os = "fuchsia")]
69936    type SynchronousProxy = SynchronousDatagramSocketSynchronousProxy;
69937
69938    const DEBUG_NAME: &'static str = "fuchsia.posix.socket.SynchronousDatagramSocket";
69939}
69940impl fidl::endpoints::DiscoverableProtocolMarker for SynchronousDatagramSocketMarker {}
69941pub type SynchronousDatagramSocketRecvMsgResult = Result<
69942    (Option<Box<fidl_fuchsia_net::SocketAddress>>, Vec<u8>, DatagramSocketRecvControlData, u32),
69943    fidl_fuchsia_posix::Errno,
69944>;
69945pub type SynchronousDatagramSocketSendMsgResult = Result<i64, fidl_fuchsia_posix::Errno>;
69946
69947pub trait SynchronousDatagramSocketProxyInterface: Send + Sync {
69948    fn r#clone(
69949        &self,
69950        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
69951    ) -> Result<(), fidl::Error>;
69952    type CloseResponseFut: std::future::Future<
69953            Output = Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error>,
69954        > + Send;
69955    fn r#close(&self) -> Self::CloseResponseFut;
69956    type QueryResponseFut: std::future::Future<Output = Result<Vec<u8>, fidl::Error>> + Send;
69957    fn r#query(&self) -> Self::QueryResponseFut;
69958    type SetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketSetReuseAddressResult, fidl::Error>>
69959        + Send;
69960    fn r#set_reuse_address(&self, value: bool) -> Self::SetReuseAddressResponseFut;
69961    type GetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketGetReuseAddressResult, fidl::Error>>
69962        + Send;
69963    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut;
69964    type GetErrorResponseFut: std::future::Future<Output = Result<BaseSocketGetErrorResult, fidl::Error>>
69965        + Send;
69966    fn r#get_error(&self) -> Self::GetErrorResponseFut;
69967    type SetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketSetBroadcastResult, fidl::Error>>
69968        + Send;
69969    fn r#set_broadcast(&self, value: bool) -> Self::SetBroadcastResponseFut;
69970    type GetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketGetBroadcastResult, fidl::Error>>
69971        + Send;
69972    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut;
69973    type SetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetSendBufferResult, fidl::Error>>
69974        + Send;
69975    fn r#set_send_buffer(&self, value_bytes: u64) -> Self::SetSendBufferResponseFut;
69976    type GetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetSendBufferResult, fidl::Error>>
69977        + Send;
69978    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut;
69979    type SetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetReceiveBufferResult, fidl::Error>>
69980        + Send;
69981    fn r#set_receive_buffer(&self, value_bytes: u64) -> Self::SetReceiveBufferResponseFut;
69982    type GetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetReceiveBufferResult, fidl::Error>>
69983        + Send;
69984    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut;
69985    type SetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketSetKeepAliveResult, fidl::Error>>
69986        + Send;
69987    fn r#set_keep_alive(&self, value: bool) -> Self::SetKeepAliveResponseFut;
69988    type GetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketGetKeepAliveResult, fidl::Error>>
69989        + Send;
69990    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut;
69991    type SetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketSetOutOfBandInlineResult, fidl::Error>>
69992        + Send;
69993    fn r#set_out_of_band_inline(&self, value: bool) -> Self::SetOutOfBandInlineResponseFut;
69994    type GetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketGetOutOfBandInlineResult, fidl::Error>>
69995        + Send;
69996    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut;
69997    type SetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketSetNoCheckResult, fidl::Error>>
69998        + Send;
69999    fn r#set_no_check(&self, value: bool) -> Self::SetNoCheckResponseFut;
70000    type GetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketGetNoCheckResult, fidl::Error>>
70001        + Send;
70002    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut;
70003    type SetLingerResponseFut: std::future::Future<Output = Result<BaseSocketSetLingerResult, fidl::Error>>
70004        + Send;
70005    fn r#set_linger(&self, linger: bool, length_secs: u32) -> Self::SetLingerResponseFut;
70006    type GetLingerResponseFut: std::future::Future<Output = Result<BaseSocketGetLingerResult, fidl::Error>>
70007        + Send;
70008    fn r#get_linger(&self) -> Self::GetLingerResponseFut;
70009    type SetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketSetReusePortResult, fidl::Error>>
70010        + Send;
70011    fn r#set_reuse_port(&self, value: ReusePortOption) -> Self::SetReusePortResponseFut;
70012    type SetReusePortDeprecatedResponseFut: std::future::Future<Output = Result<BaseSocketSetReusePortDeprecatedResult, fidl::Error>>
70013        + Send;
70014    fn r#set_reuse_port_deprecated(&self, value: bool) -> Self::SetReusePortDeprecatedResponseFut;
70015    type GetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketGetReusePortResult, fidl::Error>>
70016        + Send;
70017    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut;
70018    type GetAcceptConnResponseFut: std::future::Future<Output = Result<BaseSocketGetAcceptConnResult, fidl::Error>>
70019        + Send;
70020    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut;
70021    type SetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToDeviceResult, fidl::Error>>
70022        + Send;
70023    fn r#set_bind_to_device(&self, value: &str) -> Self::SetBindToDeviceResponseFut;
70024    type GetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToDeviceResult, fidl::Error>>
70025        + Send;
70026    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut;
70027    type SetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error>>
70028        + Send;
70029    fn r#set_bind_to_interface_index(&self, value: u64)
70030    -> Self::SetBindToInterfaceIndexResponseFut;
70031    type GetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error>>
70032        + Send;
70033    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut;
70034    type SetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketSetTimestampResult, fidl::Error>>
70035        + Send;
70036    fn r#set_timestamp(&self, value: TimestampOption) -> Self::SetTimestampResponseFut;
70037    type GetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketGetTimestampResult, fidl::Error>>
70038        + Send;
70039    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut;
70040    type SetMarkResponseFut: std::future::Future<Output = Result<BaseSocketSetMarkResult, fidl::Error>>
70041        + Send;
70042    fn r#set_mark(
70043        &self,
70044        domain: fidl_fuchsia_net::MarkDomain,
70045        mark: &OptionalUint32,
70046    ) -> Self::SetMarkResponseFut;
70047    type GetMarkResponseFut: std::future::Future<Output = Result<BaseSocketGetMarkResult, fidl::Error>>
70048        + Send;
70049    fn r#get_mark(&self, domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut;
70050    type GetCookieResponseFut: std::future::Future<Output = Result<BaseSocketGetCookieResult, fidl::Error>>
70051        + Send;
70052    fn r#get_cookie(&self) -> Self::GetCookieResponseFut;
70053    type BindResponseFut: std::future::Future<Output = Result<BaseNetworkSocketBindResult, fidl::Error>>
70054        + Send;
70055    fn r#bind(&self, addr: &fidl_fuchsia_net::SocketAddress) -> Self::BindResponseFut;
70056    type ConnectResponseFut: std::future::Future<Output = Result<BaseNetworkSocketConnectResult, fidl::Error>>
70057        + Send;
70058    fn r#connect(&self, addr: &fidl_fuchsia_net::SocketAddress) -> Self::ConnectResponseFut;
70059    type DisconnectResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDisconnectResult, fidl::Error>>
70060        + Send;
70061    fn r#disconnect(&self) -> Self::DisconnectResponseFut;
70062    type GetSockNameResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetSockNameResult, fidl::Error>>
70063        + Send;
70064    fn r#get_sock_name(&self) -> Self::GetSockNameResponseFut;
70065    type GetPeerNameResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetPeerNameResult, fidl::Error>>
70066        + Send;
70067    fn r#get_peer_name(&self) -> Self::GetPeerNameResponseFut;
70068    type ShutdownResponseFut: std::future::Future<Output = Result<BaseNetworkSocketShutdownResult, fidl::Error>>
70069        + Send;
70070    fn r#shutdown(&self, mode: ShutdownMode) -> Self::ShutdownResponseFut;
70071    type SetIpTypeOfServiceResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error>>
70072        + Send;
70073    fn r#set_ip_type_of_service(&self, value: u8) -> Self::SetIpTypeOfServiceResponseFut;
70074    type GetIpTypeOfServiceResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error>>
70075        + Send;
70076    fn r#get_ip_type_of_service(&self) -> Self::GetIpTypeOfServiceResponseFut;
70077    type SetIpTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTtlResult, fidl::Error>>
70078        + Send;
70079    fn r#set_ip_ttl(&self, value: &OptionalUint8) -> Self::SetIpTtlResponseFut;
70080    type GetIpTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTtlResult, fidl::Error>>
70081        + Send;
70082    fn r#get_ip_ttl(&self) -> Self::GetIpTtlResponseFut;
70083    type SetIpPacketInfoResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error>>
70084        + Send;
70085    fn r#set_ip_packet_info(&self, value: bool) -> Self::SetIpPacketInfoResponseFut;
70086    type GetIpPacketInfoResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error>>
70087        + Send;
70088    fn r#get_ip_packet_info(&self) -> Self::GetIpPacketInfoResponseFut;
70089    type SetIpReceiveTypeOfServiceResponseFut: std::future::Future<
70090            Output = Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error>,
70091        > + Send;
70092    fn r#set_ip_receive_type_of_service(
70093        &self,
70094        value: bool,
70095    ) -> Self::SetIpReceiveTypeOfServiceResponseFut;
70096    type GetIpReceiveTypeOfServiceResponseFut: std::future::Future<
70097            Output = Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error>,
70098        > + Send;
70099    fn r#get_ip_receive_type_of_service(&self) -> Self::GetIpReceiveTypeOfServiceResponseFut;
70100    type SetIpReceiveTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error>>
70101        + Send;
70102    fn r#set_ip_receive_ttl(&self, value: bool) -> Self::SetIpReceiveTtlResponseFut;
70103    type GetIpReceiveTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error>>
70104        + Send;
70105    fn r#get_ip_receive_ttl(&self) -> Self::GetIpReceiveTtlResponseFut;
70106    type SetIpMulticastInterfaceResponseFut: std::future::Future<
70107            Output = Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error>,
70108        > + Send;
70109    fn r#set_ip_multicast_interface(
70110        &self,
70111        iface: u64,
70112        address: &fidl_fuchsia_net::Ipv4Address,
70113    ) -> Self::SetIpMulticastInterfaceResponseFut;
70114    type GetIpMulticastInterfaceResponseFut: std::future::Future<
70115            Output = Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error>,
70116        > + Send;
70117    fn r#get_ip_multicast_interface(&self) -> Self::GetIpMulticastInterfaceResponseFut;
70118    type SetIpMulticastTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error>>
70119        + Send;
70120    fn r#set_ip_multicast_ttl(&self, value: &OptionalUint8) -> Self::SetIpMulticastTtlResponseFut;
70121    type GetIpMulticastTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error>>
70122        + Send;
70123    fn r#get_ip_multicast_ttl(&self) -> Self::GetIpMulticastTtlResponseFut;
70124    type SetIpMulticastLoopbackResponseFut: std::future::Future<
70125            Output = Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error>,
70126        > + Send;
70127    fn r#set_ip_multicast_loopback(&self, value: bool) -> Self::SetIpMulticastLoopbackResponseFut;
70128    type GetIpMulticastLoopbackResponseFut: std::future::Future<
70129            Output = Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error>,
70130        > + Send;
70131    fn r#get_ip_multicast_loopback(&self) -> Self::GetIpMulticastLoopbackResponseFut;
70132    type AddIpMembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error>>
70133        + Send;
70134    fn r#add_ip_membership(
70135        &self,
70136        membership: &IpMulticastMembership,
70137    ) -> Self::AddIpMembershipResponseFut;
70138    type DropIpMembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error>>
70139        + Send;
70140    fn r#drop_ip_membership(
70141        &self,
70142        membership: &IpMulticastMembership,
70143    ) -> Self::DropIpMembershipResponseFut;
70144    type SetIpTransparentResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error>>
70145        + Send;
70146    fn r#set_ip_transparent(&self, value: bool) -> Self::SetIpTransparentResponseFut;
70147    type GetIpTransparentResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error>>
70148        + Send;
70149    fn r#get_ip_transparent(&self) -> Self::GetIpTransparentResponseFut;
70150    type SetIpReceiveOriginalDestinationAddressResponseFut: std::future::Future<
70151            Output = Result<
70152                BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
70153                fidl::Error,
70154            >,
70155        > + Send;
70156    fn r#set_ip_receive_original_destination_address(
70157        &self,
70158        value: bool,
70159    ) -> Self::SetIpReceiveOriginalDestinationAddressResponseFut;
70160    type GetIpReceiveOriginalDestinationAddressResponseFut: std::future::Future<
70161            Output = Result<
70162                BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
70163                fidl::Error,
70164            >,
70165        > + Send;
70166    fn r#get_ip_receive_original_destination_address(
70167        &self,
70168    ) -> Self::GetIpReceiveOriginalDestinationAddressResponseFut;
70169    type AddIpv6MembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error>>
70170        + Send;
70171    fn r#add_ipv6_membership(
70172        &self,
70173        membership: &Ipv6MulticastMembership,
70174    ) -> Self::AddIpv6MembershipResponseFut;
70175    type DropIpv6MembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error>>
70176        + Send;
70177    fn r#drop_ipv6_membership(
70178        &self,
70179        membership: &Ipv6MulticastMembership,
70180    ) -> Self::DropIpv6MembershipResponseFut;
70181    type SetIpv6MulticastInterfaceResponseFut: std::future::Future<
70182            Output = Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error>,
70183        > + Send;
70184    fn r#set_ipv6_multicast_interface(
70185        &self,
70186        value: u64,
70187    ) -> Self::SetIpv6MulticastInterfaceResponseFut;
70188    type GetIpv6MulticastInterfaceResponseFut: std::future::Future<
70189            Output = Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error>,
70190        > + Send;
70191    fn r#get_ipv6_multicast_interface(&self) -> Self::GetIpv6MulticastInterfaceResponseFut;
70192    type SetIpv6UnicastHopsResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error>>
70193        + Send;
70194    fn r#set_ipv6_unicast_hops(&self, value: &OptionalUint8)
70195    -> Self::SetIpv6UnicastHopsResponseFut;
70196    type GetIpv6UnicastHopsResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error>>
70197        + Send;
70198    fn r#get_ipv6_unicast_hops(&self) -> Self::GetIpv6UnicastHopsResponseFut;
70199    type SetIpv6ReceiveHopLimitResponseFut: std::future::Future<
70200            Output = Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error>,
70201        > + Send;
70202    fn r#set_ipv6_receive_hop_limit(&self, value: bool) -> Self::SetIpv6ReceiveHopLimitResponseFut;
70203    type GetIpv6ReceiveHopLimitResponseFut: std::future::Future<
70204            Output = Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error>,
70205        > + Send;
70206    fn r#get_ipv6_receive_hop_limit(&self) -> Self::GetIpv6ReceiveHopLimitResponseFut;
70207    type SetIpv6MulticastHopsResponseFut: std::future::Future<
70208            Output = Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error>,
70209        > + Send;
70210    fn r#set_ipv6_multicast_hops(
70211        &self,
70212        value: &OptionalUint8,
70213    ) -> Self::SetIpv6MulticastHopsResponseFut;
70214    type GetIpv6MulticastHopsResponseFut: std::future::Future<
70215            Output = Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error>,
70216        > + Send;
70217    fn r#get_ipv6_multicast_hops(&self) -> Self::GetIpv6MulticastHopsResponseFut;
70218    type SetIpv6MulticastLoopbackResponseFut: std::future::Future<
70219            Output = Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error>,
70220        > + Send;
70221    fn r#set_ipv6_multicast_loopback(
70222        &self,
70223        value: bool,
70224    ) -> Self::SetIpv6MulticastLoopbackResponseFut;
70225    type GetIpv6MulticastLoopbackResponseFut: std::future::Future<
70226            Output = Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error>,
70227        > + Send;
70228    fn r#get_ipv6_multicast_loopback(&self) -> Self::GetIpv6MulticastLoopbackResponseFut;
70229    type SetIpv6OnlyResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error>>
70230        + Send;
70231    fn r#set_ipv6_only(&self, value: bool) -> Self::SetIpv6OnlyResponseFut;
70232    type GetIpv6OnlyResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error>>
70233        + Send;
70234    fn r#get_ipv6_only(&self) -> Self::GetIpv6OnlyResponseFut;
70235    type SetIpv6ReceiveTrafficClassResponseFut: std::future::Future<
70236            Output = Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error>,
70237        > + Send;
70238    fn r#set_ipv6_receive_traffic_class(
70239        &self,
70240        value: bool,
70241    ) -> Self::SetIpv6ReceiveTrafficClassResponseFut;
70242    type GetIpv6ReceiveTrafficClassResponseFut: std::future::Future<
70243            Output = Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error>,
70244        > + Send;
70245    fn r#get_ipv6_receive_traffic_class(&self) -> Self::GetIpv6ReceiveTrafficClassResponseFut;
70246    type SetIpv6TrafficClassResponseFut: std::future::Future<
70247            Output = Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error>,
70248        > + Send;
70249    fn r#set_ipv6_traffic_class(
70250        &self,
70251        value: &OptionalUint8,
70252    ) -> Self::SetIpv6TrafficClassResponseFut;
70253    type GetIpv6TrafficClassResponseFut: std::future::Future<
70254            Output = Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error>,
70255        > + Send;
70256    fn r#get_ipv6_traffic_class(&self) -> Self::GetIpv6TrafficClassResponseFut;
70257    type SetIpv6ReceivePacketInfoResponseFut: std::future::Future<
70258            Output = Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error>,
70259        > + Send;
70260    fn r#set_ipv6_receive_packet_info(
70261        &self,
70262        value: bool,
70263    ) -> Self::SetIpv6ReceivePacketInfoResponseFut;
70264    type GetIpv6ReceivePacketInfoResponseFut: std::future::Future<
70265            Output = Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error>,
70266        > + Send;
70267    fn r#get_ipv6_receive_packet_info(&self) -> Self::GetIpv6ReceivePacketInfoResponseFut;
70268    type GetOriginalDestinationResponseFut: std::future::Future<
70269            Output = Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error>,
70270        > + Send;
70271    fn r#get_original_destination(&self) -> Self::GetOriginalDestinationResponseFut;
70272    type GetInfoResponseFut: std::future::Future<Output = Result<BaseDatagramSocketGetInfoResult, fidl::Error>>
70273        + Send;
70274    fn r#get_info(&self) -> Self::GetInfoResponseFut;
70275    type DescribeResponseFut: std::future::Future<Output = Result<SynchronousDatagramSocketDescribeResponse, fidl::Error>>
70276        + Send;
70277    fn r#describe(&self) -> Self::DescribeResponseFut;
70278    type RecvMsgResponseFut: std::future::Future<Output = Result<SynchronousDatagramSocketRecvMsgResult, fidl::Error>>
70279        + Send;
70280    fn r#recv_msg(
70281        &self,
70282        want_addr: bool,
70283        data_len: u32,
70284        want_control: bool,
70285        flags: RecvMsgFlags,
70286    ) -> Self::RecvMsgResponseFut;
70287    type SendMsgResponseFut: std::future::Future<Output = Result<SynchronousDatagramSocketSendMsgResult, fidl::Error>>
70288        + Send;
70289    fn r#send_msg(
70290        &self,
70291        addr: Option<&fidl_fuchsia_net::SocketAddress>,
70292        data: &[u8],
70293        control: &DatagramSocketSendControlData,
70294        flags: SendMsgFlags,
70295    ) -> Self::SendMsgResponseFut;
70296}
70297#[derive(Debug)]
70298#[cfg(target_os = "fuchsia")]
70299pub struct SynchronousDatagramSocketSynchronousProxy {
70300    client: fidl::client::sync::Client,
70301}
70302
70303#[cfg(target_os = "fuchsia")]
70304impl fidl::endpoints::SynchronousProxy for SynchronousDatagramSocketSynchronousProxy {
70305    type Proxy = SynchronousDatagramSocketProxy;
70306    type Protocol = SynchronousDatagramSocketMarker;
70307
70308    fn from_channel(inner: fidl::Channel) -> Self {
70309        Self::new(inner)
70310    }
70311
70312    fn into_channel(self) -> fidl::Channel {
70313        self.client.into_channel()
70314    }
70315
70316    fn as_channel(&self) -> &fidl::Channel {
70317        self.client.as_channel()
70318    }
70319}
70320
70321#[cfg(target_os = "fuchsia")]
70322impl SynchronousDatagramSocketSynchronousProxy {
70323    pub fn new(channel: fidl::Channel) -> Self {
70324        Self { client: fidl::client::sync::Client::new(channel) }
70325    }
70326
70327    pub fn into_channel(self) -> fidl::Channel {
70328        self.client.into_channel()
70329    }
70330
70331    /// Waits until an event arrives and returns it. It is safe for other
70332    /// threads to make concurrent requests while waiting for an event.
70333    pub fn wait_for_event(
70334        &self,
70335        deadline: zx::MonotonicInstant,
70336    ) -> Result<SynchronousDatagramSocketEvent, fidl::Error> {
70337        SynchronousDatagramSocketEvent::decode(
70338            self.client.wait_for_event::<SynchronousDatagramSocketMarker>(deadline)?,
70339        )
70340    }
70341
70342    pub fn r#clone(
70343        &self,
70344        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
70345    ) -> Result<(), fidl::Error> {
70346        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
70347            (request,),
70348            0x20d8a7aba2168a79,
70349            fidl::encoding::DynamicFlags::empty(),
70350        )
70351    }
70352
70353    /// Terminates the connection.
70354    ///
70355    /// After calling `Close`, the client must not send any other requests.
70356    ///
70357    /// Servers, after sending the status response, should close the connection
70358    /// regardless of status and without sending an epitaph.
70359    ///
70360    /// Closing the client end of the channel should be semantically equivalent
70361    /// to calling `Close` without knowing when the close has completed or its
70362    /// status.
70363    pub fn r#close(
70364        &self,
70365        ___deadline: zx::MonotonicInstant,
70366    ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
70367        let _response = self.client.send_query::<
70368            fidl::encoding::EmptyPayload,
70369            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
70370            SynchronousDatagramSocketMarker,
70371        >(
70372            (),
70373            0x5ac5d459ad7f657e,
70374            fidl::encoding::DynamicFlags::empty(),
70375            ___deadline,
70376        )?;
70377        Ok(_response.map(|x| x))
70378    }
70379
70380    pub fn r#query(&self, ___deadline: zx::MonotonicInstant) -> Result<Vec<u8>, fidl::Error> {
70381        let _response = self.client.send_query::<
70382            fidl::encoding::EmptyPayload,
70383            fidl_fuchsia_unknown::QueryableQueryResponse,
70384            SynchronousDatagramSocketMarker,
70385        >(
70386            (),
70387            0x2658edee9decfc06,
70388            fidl::encoding::DynamicFlags::empty(),
70389            ___deadline,
70390        )?;
70391        Ok(_response.protocol)
70392    }
70393
70394    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
70395    pub fn r#set_reuse_address(
70396        &self,
70397        mut value: bool,
70398        ___deadline: zx::MonotonicInstant,
70399    ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
70400        let _response =
70401            self.client.send_query::<BaseSocketSetReuseAddressRequest, fidl::encoding::ResultType<
70402                fidl::encoding::EmptyStruct,
70403                fidl_fuchsia_posix::Errno,
70404            >, SynchronousDatagramSocketMarker>(
70405                (value,),
70406                0x1fd74ee8b9a4a876,
70407                fidl::encoding::DynamicFlags::empty(),
70408                ___deadline,
70409            )?;
70410        Ok(_response.map(|x| x))
70411    }
70412
70413    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
70414    pub fn r#get_reuse_address(
70415        &self,
70416        ___deadline: zx::MonotonicInstant,
70417    ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
70418        let _response =
70419            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70420                BaseSocketGetReuseAddressResponse,
70421                fidl_fuchsia_posix::Errno,
70422            >, SynchronousDatagramSocketMarker>(
70423                (),
70424                0x67b7206b8d1bc0a5,
70425                fidl::encoding::DynamicFlags::empty(),
70426                ___deadline,
70427            )?;
70428        Ok(_response.map(|x| x.value))
70429    }
70430
70431    /// Get `SOL_SOCKET` -> `SO_ERROR`.
70432    /// Returns the last error if there is an error set on the socket.
70433    pub fn r#get_error(
70434        &self,
70435        ___deadline: zx::MonotonicInstant,
70436    ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
70437        let _response =
70438            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70439                fidl::encoding::EmptyStruct,
70440                fidl_fuchsia_posix::Errno,
70441            >, SynchronousDatagramSocketMarker>(
70442                (),
70443                0x5aad39b33e5f6ebb,
70444                fidl::encoding::DynamicFlags::empty(),
70445                ___deadline,
70446            )?;
70447        Ok(_response.map(|x| x))
70448    }
70449
70450    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
70451    pub fn r#set_broadcast(
70452        &self,
70453        mut value: bool,
70454        ___deadline: zx::MonotonicInstant,
70455    ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
70456        let _response =
70457            self.client.send_query::<BaseSocketSetBroadcastRequest, fidl::encoding::ResultType<
70458                fidl::encoding::EmptyStruct,
70459                fidl_fuchsia_posix::Errno,
70460            >, SynchronousDatagramSocketMarker>(
70461                (value,),
70462                0x6023e081ce3cd947,
70463                fidl::encoding::DynamicFlags::empty(),
70464                ___deadline,
70465            )?;
70466        Ok(_response.map(|x| x))
70467    }
70468
70469    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
70470    pub fn r#get_broadcast(
70471        &self,
70472        ___deadline: zx::MonotonicInstant,
70473    ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
70474        let _response =
70475            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70476                BaseSocketGetBroadcastResponse,
70477                fidl_fuchsia_posix::Errno,
70478            >, SynchronousDatagramSocketMarker>(
70479                (),
70480                0x68796fc556f9780d,
70481                fidl::encoding::DynamicFlags::empty(),
70482                ___deadline,
70483            )?;
70484        Ok(_response.map(|x| x.value))
70485    }
70486
70487    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
70488    pub fn r#set_send_buffer(
70489        &self,
70490        mut value_bytes: u64,
70491        ___deadline: zx::MonotonicInstant,
70492    ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
70493        let _response =
70494            self.client.send_query::<BaseSocketSetSendBufferRequest, fidl::encoding::ResultType<
70495                fidl::encoding::EmptyStruct,
70496                fidl_fuchsia_posix::Errno,
70497            >, SynchronousDatagramSocketMarker>(
70498                (value_bytes,),
70499                0x756eac32d73a7a70,
70500                fidl::encoding::DynamicFlags::empty(),
70501                ___deadline,
70502            )?;
70503        Ok(_response.map(|x| x))
70504    }
70505
70506    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
70507    pub fn r#get_send_buffer(
70508        &self,
70509        ___deadline: zx::MonotonicInstant,
70510    ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
70511        let _response =
70512            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70513                BaseSocketGetSendBufferResponse,
70514                fidl_fuchsia_posix::Errno,
70515            >, SynchronousDatagramSocketMarker>(
70516                (),
70517                0x78a52fd9c7b2410b,
70518                fidl::encoding::DynamicFlags::empty(),
70519                ___deadline,
70520            )?;
70521        Ok(_response.map(|x| x.value_bytes))
70522    }
70523
70524    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
70525    pub fn r#set_receive_buffer(
70526        &self,
70527        mut value_bytes: u64,
70528        ___deadline: zx::MonotonicInstant,
70529    ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
70530        let _response =
70531            self.client
70532                .send_query::<BaseSocketSetReceiveBufferRequest, fidl::encoding::ResultType<
70533                    fidl::encoding::EmptyStruct,
70534                    fidl_fuchsia_posix::Errno,
70535                >, SynchronousDatagramSocketMarker>(
70536                    (value_bytes,),
70537                    0x6b0cf2f1919c7001,
70538                    fidl::encoding::DynamicFlags::empty(),
70539                    ___deadline,
70540                )?;
70541        Ok(_response.map(|x| x))
70542    }
70543
70544    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
70545    pub fn r#get_receive_buffer(
70546        &self,
70547        ___deadline: zx::MonotonicInstant,
70548    ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
70549        let _response =
70550            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70551                BaseSocketGetReceiveBufferResponse,
70552                fidl_fuchsia_posix::Errno,
70553            >, SynchronousDatagramSocketMarker>(
70554                (),
70555                0x14c1a4b64f709e5c,
70556                fidl::encoding::DynamicFlags::empty(),
70557                ___deadline,
70558            )?;
70559        Ok(_response.map(|x| x.value_bytes))
70560    }
70561
70562    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
70563    pub fn r#set_keep_alive(
70564        &self,
70565        mut value: bool,
70566        ___deadline: zx::MonotonicInstant,
70567    ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
70568        let _response =
70569            self.client.send_query::<BaseSocketSetKeepAliveRequest, fidl::encoding::ResultType<
70570                fidl::encoding::EmptyStruct,
70571                fidl_fuchsia_posix::Errno,
70572            >, SynchronousDatagramSocketMarker>(
70573                (value,),
70574                0x572df8f0b920d2c7,
70575                fidl::encoding::DynamicFlags::empty(),
70576                ___deadline,
70577            )?;
70578        Ok(_response.map(|x| x))
70579    }
70580
70581    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
70582    pub fn r#get_keep_alive(
70583        &self,
70584        ___deadline: zx::MonotonicInstant,
70585    ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
70586        let _response =
70587            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70588                BaseSocketGetKeepAliveResponse,
70589                fidl_fuchsia_posix::Errno,
70590            >, SynchronousDatagramSocketMarker>(
70591                (),
70592                0x2dd29d3215f2c9d2,
70593                fidl::encoding::DynamicFlags::empty(),
70594                ___deadline,
70595            )?;
70596        Ok(_response.map(|x| x.value))
70597    }
70598
70599    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
70600    pub fn r#set_out_of_band_inline(
70601        &self,
70602        mut value: bool,
70603        ___deadline: zx::MonotonicInstant,
70604    ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
70605        let _response =
70606            self.client
70607                .send_query::<BaseSocketSetOutOfBandInlineRequest, fidl::encoding::ResultType<
70608                    fidl::encoding::EmptyStruct,
70609                    fidl_fuchsia_posix::Errno,
70610                >, SynchronousDatagramSocketMarker>(
70611                    (value,),
70612                    0x3ecb49968bee439,
70613                    fidl::encoding::DynamicFlags::empty(),
70614                    ___deadline,
70615                )?;
70616        Ok(_response.map(|x| x))
70617    }
70618
70619    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
70620    pub fn r#get_out_of_band_inline(
70621        &self,
70622        ___deadline: zx::MonotonicInstant,
70623    ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
70624        let _response =
70625            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70626                BaseSocketGetOutOfBandInlineResponse,
70627                fidl_fuchsia_posix::Errno,
70628            >, SynchronousDatagramSocketMarker>(
70629                (),
70630                0x348c1ab3aeca1745,
70631                fidl::encoding::DynamicFlags::empty(),
70632                ___deadline,
70633            )?;
70634        Ok(_response.map(|x| x.value))
70635    }
70636
70637    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
70638    pub fn r#set_no_check(
70639        &self,
70640        mut value: bool,
70641        ___deadline: zx::MonotonicInstant,
70642    ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
70643        let _response =
70644            self.client.send_query::<BaseSocketSetNoCheckRequest, fidl::encoding::ResultType<
70645                fidl::encoding::EmptyStruct,
70646                fidl_fuchsia_posix::Errno,
70647            >, SynchronousDatagramSocketMarker>(
70648                (value,),
70649                0x6bbf00c53a4c78c2,
70650                fidl::encoding::DynamicFlags::empty(),
70651                ___deadline,
70652            )?;
70653        Ok(_response.map(|x| x))
70654    }
70655
70656    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
70657    pub fn r#get_no_check(
70658        &self,
70659        ___deadline: zx::MonotonicInstant,
70660    ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
70661        let _response =
70662            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70663                BaseSocketGetNoCheckResponse,
70664                fidl_fuchsia_posix::Errno,
70665            >, SynchronousDatagramSocketMarker>(
70666                (),
70667                0x2cd4249286417694,
70668                fidl::encoding::DynamicFlags::empty(),
70669                ___deadline,
70670            )?;
70671        Ok(_response.map(|x| x.value))
70672    }
70673
70674    /// Set `SOL_SOCKET` -> `SO_LINGER`.
70675    pub fn r#set_linger(
70676        &self,
70677        mut linger: bool,
70678        mut length_secs: u32,
70679        ___deadline: zx::MonotonicInstant,
70680    ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
70681        let _response =
70682            self.client.send_query::<BaseSocketSetLingerRequest, fidl::encoding::ResultType<
70683                fidl::encoding::EmptyStruct,
70684                fidl_fuchsia_posix::Errno,
70685            >, SynchronousDatagramSocketMarker>(
70686                (linger, length_secs),
70687                0x45386351246e998e,
70688                fidl::encoding::DynamicFlags::empty(),
70689                ___deadline,
70690            )?;
70691        Ok(_response.map(|x| x))
70692    }
70693
70694    /// Get `SOL_SOCKET` -> `SO_LINGER`.
70695    pub fn r#get_linger(
70696        &self,
70697        ___deadline: zx::MonotonicInstant,
70698    ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
70699        let _response =
70700            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70701                BaseSocketGetLingerResponse,
70702                fidl_fuchsia_posix::Errno,
70703            >, SynchronousDatagramSocketMarker>(
70704                (),
70705                0x48eb20fc5ccb0e45,
70706                fidl::encoding::DynamicFlags::empty(),
70707                ___deadline,
70708            )?;
70709        Ok(_response.map(|x| (x.linger, x.length_secs)))
70710    }
70711
70712    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
70713    pub fn r#set_reuse_port(
70714        &self,
70715        mut value: ReusePortOption,
70716        ___deadline: zx::MonotonicInstant,
70717    ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
70718        let _response =
70719            self.client.send_query::<BaseSocketSetReusePortRequest, fidl::encoding::ResultType<
70720                fidl::encoding::EmptyStruct,
70721                fidl_fuchsia_posix::Errno,
70722            >, SynchronousDatagramSocketMarker>(
70723                (&mut value,),
70724                0x547dc9cc0455189e,
70725                fidl::encoding::DynamicFlags::empty(),
70726                ___deadline,
70727            )?;
70728        Ok(_response.map(|x| x))
70729    }
70730
70731    pub fn r#set_reuse_port_deprecated(
70732        &self,
70733        mut value: bool,
70734        ___deadline: zx::MonotonicInstant,
70735    ) -> Result<BaseSocketSetReusePortDeprecatedResult, fidl::Error> {
70736        let _response =
70737            self.client
70738                .send_query::<BaseSocketSetReusePortDeprecatedRequest, fidl::encoding::ResultType<
70739                    fidl::encoding::EmptyStruct,
70740                    fidl_fuchsia_posix::Errno,
70741                >, SynchronousDatagramSocketMarker>(
70742                    (value,),
70743                    0x24dd3e5cb36d9ccb,
70744                    fidl::encoding::DynamicFlags::empty(),
70745                    ___deadline,
70746                )?;
70747        Ok(_response.map(|x| x))
70748    }
70749
70750    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
70751    pub fn r#get_reuse_port(
70752        &self,
70753        ___deadline: zx::MonotonicInstant,
70754    ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
70755        let _response =
70756            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70757                BaseSocketGetReusePortResponse,
70758                fidl_fuchsia_posix::Errno,
70759            >, SynchronousDatagramSocketMarker>(
70760                (),
70761                0x7a112c1ab54ff828,
70762                fidl::encoding::DynamicFlags::empty(),
70763                ___deadline,
70764            )?;
70765        Ok(_response.map(|x| x.value))
70766    }
70767
70768    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
70769    pub fn r#get_accept_conn(
70770        &self,
70771        ___deadline: zx::MonotonicInstant,
70772    ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
70773        let _response =
70774            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70775                BaseSocketGetAcceptConnResponse,
70776                fidl_fuchsia_posix::Errno,
70777            >, SynchronousDatagramSocketMarker>(
70778                (),
70779                0x67ce6db6c2ec8966,
70780                fidl::encoding::DynamicFlags::empty(),
70781                ___deadline,
70782            )?;
70783        Ok(_response.map(|x| x.value))
70784    }
70785
70786    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
70787    pub fn r#set_bind_to_device(
70788        &self,
70789        mut value: &str,
70790        ___deadline: zx::MonotonicInstant,
70791    ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
70792        let _response =
70793            self.client.send_query::<BaseSocketSetBindToDeviceRequest, fidl::encoding::ResultType<
70794                fidl::encoding::EmptyStruct,
70795                fidl_fuchsia_posix::Errno,
70796            >, SynchronousDatagramSocketMarker>(
70797                (value,),
70798                0x2118b483f28aafc4,
70799                fidl::encoding::DynamicFlags::empty(),
70800                ___deadline,
70801            )?;
70802        Ok(_response.map(|x| x))
70803    }
70804
70805    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
70806    pub fn r#get_bind_to_device(
70807        &self,
70808        ___deadline: zx::MonotonicInstant,
70809    ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
70810        let _response =
70811            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70812                BaseSocketGetBindToDeviceResponse,
70813                fidl_fuchsia_posix::Errno,
70814            >, SynchronousDatagramSocketMarker>(
70815                (),
70816                0x1ab1fbf0ef7906c8,
70817                fidl::encoding::DynamicFlags::empty(),
70818                ___deadline,
70819            )?;
70820        Ok(_response.map(|x| x.value))
70821    }
70822
70823    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
70824    /// If `value` is 0, this clears the bound interface.
70825    pub fn r#set_bind_to_interface_index(
70826        &self,
70827        mut value: u64,
70828        ___deadline: zx::MonotonicInstant,
70829    ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
70830        let _response =
70831            self.client
70832                .send_query::<BaseSocketSetBindToInterfaceIndexRequest, fidl::encoding::ResultType<
70833                    fidl::encoding::EmptyStruct,
70834                    fidl_fuchsia_posix::Errno,
70835                >, SynchronousDatagramSocketMarker>(
70836                    (value,),
70837                    0x6e387a0def00821,
70838                    fidl::encoding::DynamicFlags::empty(),
70839                    ___deadline,
70840                )?;
70841        Ok(_response.map(|x| x))
70842    }
70843
70844    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
70845    pub fn r#get_bind_to_interface_index(
70846        &self,
70847        ___deadline: zx::MonotonicInstant,
70848    ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
70849        let _response =
70850            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70851                BaseSocketGetBindToInterfaceIndexResponse,
70852                fidl_fuchsia_posix::Errno,
70853            >, SynchronousDatagramSocketMarker>(
70854                (),
70855                0x59c31dd3e3078295,
70856                fidl::encoding::DynamicFlags::empty(),
70857                ___deadline,
70858            )?;
70859        Ok(_response.map(|x| x.value))
70860    }
70861
70862    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
70863    pub fn r#set_timestamp(
70864        &self,
70865        mut value: TimestampOption,
70866        ___deadline: zx::MonotonicInstant,
70867    ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
70868        let _response =
70869            self.client.send_query::<BaseSocketSetTimestampRequest, fidl::encoding::ResultType<
70870                fidl::encoding::EmptyStruct,
70871                fidl_fuchsia_posix::Errno,
70872            >, SynchronousDatagramSocketMarker>(
70873                (value,),
70874                0x285d6516c263d839,
70875                fidl::encoding::DynamicFlags::empty(),
70876                ___deadline,
70877            )?;
70878        Ok(_response.map(|x| x))
70879    }
70880
70881    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
70882    pub fn r#get_timestamp(
70883        &self,
70884        ___deadline: zx::MonotonicInstant,
70885    ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
70886        let _response =
70887            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70888                BaseSocketGetTimestampResponse,
70889                fidl_fuchsia_posix::Errno,
70890            >, SynchronousDatagramSocketMarker>(
70891                (),
70892                0x49f2fffbbcc2bd27,
70893                fidl::encoding::DynamicFlags::empty(),
70894                ___deadline,
70895            )?;
70896        Ok(_response.map(|x| x.value))
70897    }
70898
70899    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
70900    /// unlike the standard SO_MARK, this API has multiple mark domains and each
70901    /// mark can be set independently in each domain.
70902    pub fn r#set_mark(
70903        &self,
70904        mut domain: fidl_fuchsia_net::MarkDomain,
70905        mut mark: &OptionalUint32,
70906        ___deadline: zx::MonotonicInstant,
70907    ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
70908        let _response =
70909            self.client.send_query::<BaseSocketSetMarkRequest, fidl::encoding::ResultType<
70910                fidl::encoding::EmptyStruct,
70911                fidl_fuchsia_posix::Errno,
70912            >, SynchronousDatagramSocketMarker>(
70913                (domain, mark),
70914                0x6ead6de09f653236,
70915                fidl::encoding::DynamicFlags::empty(),
70916                ___deadline,
70917            )?;
70918        Ok(_response.map(|x| x))
70919    }
70920
70921    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
70922    /// unlike the standard SO_MARK, this API has multiple mark domains and each
70923    /// mark can be retrieved independently in each domain.
70924    pub fn r#get_mark(
70925        &self,
70926        mut domain: fidl_fuchsia_net::MarkDomain,
70927        ___deadline: zx::MonotonicInstant,
70928    ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
70929        let _response =
70930            self.client.send_query::<BaseSocketGetMarkRequest, fidl::encoding::ResultType<
70931                BaseSocketGetMarkResponse,
70932                fidl_fuchsia_posix::Errno,
70933            >, SynchronousDatagramSocketMarker>(
70934                (domain,),
70935                0x57a2752c61d93d47,
70936                fidl::encoding::DynamicFlags::empty(),
70937                ___deadline,
70938            )?;
70939        Ok(_response.map(|x| x.mark))
70940    }
70941
70942    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
70943    pub fn r#get_cookie(
70944        &self,
70945        ___deadline: zx::MonotonicInstant,
70946    ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
70947        let _response =
70948            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70949                BaseSocketGetCookieResponse,
70950                fidl_fuchsia_posix::Errno,
70951            >, SynchronousDatagramSocketMarker>(
70952                (),
70953                0x2c2f47fd8f924e52,
70954                fidl::encoding::DynamicFlags::empty(),
70955                ___deadline,
70956            )?;
70957        Ok(_response.map(|x| x.value))
70958    }
70959
70960    /// Sets the local address used for the socket.
70961    pub fn r#bind(
70962        &self,
70963        mut addr: &fidl_fuchsia_net::SocketAddress,
70964        ___deadline: zx::MonotonicInstant,
70965    ) -> Result<BaseNetworkSocketBindResult, fidl::Error> {
70966        let _response =
70967            self.client.send_query::<BaseNetworkSocketBindRequest, fidl::encoding::ResultType<
70968                fidl::encoding::EmptyStruct,
70969                fidl_fuchsia_posix::Errno,
70970            >, SynchronousDatagramSocketMarker>(
70971                (addr,),
70972                0x4bc6400ae92125d,
70973                fidl::encoding::DynamicFlags::empty(),
70974                ___deadline,
70975            )?;
70976        Ok(_response.map(|x| x))
70977    }
70978
70979    /// Initiates a connection to a remote address.
70980    pub fn r#connect(
70981        &self,
70982        mut addr: &fidl_fuchsia_net::SocketAddress,
70983        ___deadline: zx::MonotonicInstant,
70984    ) -> Result<BaseNetworkSocketConnectResult, fidl::Error> {
70985        let _response =
70986            self.client.send_query::<BaseNetworkSocketConnectRequest, fidl::encoding::ResultType<
70987                fidl::encoding::EmptyStruct,
70988                fidl_fuchsia_posix::Errno,
70989            >, SynchronousDatagramSocketMarker>(
70990                (addr,),
70991                0x5f05f19bfdd38871,
70992                fidl::encoding::DynamicFlags::empty(),
70993                ___deadline,
70994            )?;
70995        Ok(_response.map(|x| x))
70996    }
70997
70998    /// Clears connection information from this socket.
70999    pub fn r#disconnect(
71000        &self,
71001        ___deadline: zx::MonotonicInstant,
71002    ) -> Result<BaseNetworkSocketDisconnectResult, fidl::Error> {
71003        let _response =
71004            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
71005                fidl::encoding::EmptyStruct,
71006                fidl_fuchsia_posix::Errno,
71007            >, SynchronousDatagramSocketMarker>(
71008                (),
71009                0x74e63b91f7b29b2,
71010                fidl::encoding::DynamicFlags::empty(),
71011                ___deadline,
71012            )?;
71013        Ok(_response.map(|x| x))
71014    }
71015
71016    /// Retrieves the local socket address.
71017    pub fn r#get_sock_name(
71018        &self,
71019        ___deadline: zx::MonotonicInstant,
71020    ) -> Result<BaseNetworkSocketGetSockNameResult, fidl::Error> {
71021        let _response =
71022            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
71023                BaseNetworkSocketGetSockNameResponse,
71024                fidl_fuchsia_posix::Errno,
71025            >, SynchronousDatagramSocketMarker>(
71026                (),
71027                0x475f23f84a1a4f85,
71028                fidl::encoding::DynamicFlags::empty(),
71029                ___deadline,
71030            )?;
71031        Ok(_response.map(|x| x.addr))
71032    }
71033
71034    /// Retrieves the remote socket address.
71035    pub fn r#get_peer_name(
71036        &self,
71037        ___deadline: zx::MonotonicInstant,
71038    ) -> Result<BaseNetworkSocketGetPeerNameResult, fidl::Error> {
71039        let _response =
71040            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
71041                BaseNetworkSocketGetPeerNameResponse,
71042                fidl_fuchsia_posix::Errno,
71043            >, SynchronousDatagramSocketMarker>(
71044                (),
71045                0x1ffecf4bd5b6432e,
71046                fidl::encoding::DynamicFlags::empty(),
71047                ___deadline,
71048            )?;
71049        Ok(_response.map(|x| x.addr))
71050    }
71051
71052    /// Shuts down part of the socket.
71053    pub fn r#shutdown(
71054        &self,
71055        mut mode: ShutdownMode,
71056        ___deadline: zx::MonotonicInstant,
71057    ) -> Result<BaseNetworkSocketShutdownResult, fidl::Error> {
71058        let _response =
71059            self.client.send_query::<BaseNetworkSocketShutdownRequest, fidl::encoding::ResultType<
71060                fidl::encoding::EmptyStruct,
71061                fidl_fuchsia_posix::Errno,
71062            >, SynchronousDatagramSocketMarker>(
71063                (mode,),
71064                0x247f38b6db68c336,
71065                fidl::encoding::DynamicFlags::empty(),
71066                ___deadline,
71067            )?;
71068        Ok(_response.map(|x| x))
71069    }
71070
71071    /// Set `SOL_IP` -> `IP_TOS`.
71072    pub fn r#set_ip_type_of_service(
71073        &self,
71074        mut value: u8,
71075        ___deadline: zx::MonotonicInstant,
71076    ) -> Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error> {
71077        let _response = self.client.send_query::<
71078            BaseNetworkSocketSetIpTypeOfServiceRequest,
71079            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
71080            SynchronousDatagramSocketMarker,
71081        >(
71082            (value,),
71083            0x995c600475b6d46,
71084            fidl::encoding::DynamicFlags::empty(),
71085            ___deadline,
71086        )?;
71087        Ok(_response.map(|x| x))
71088    }
71089
71090    /// Get `SOL_IP` -> `IP_TOS`.
71091    pub fn r#get_ip_type_of_service(
71092        &self,
71093        ___deadline: zx::MonotonicInstant,
71094    ) -> Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error> {
71095        let _response =
71096            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
71097                BaseNetworkSocketGetIpTypeOfServiceResponse,
71098                fidl_fuchsia_posix::Errno,
71099            >, SynchronousDatagramSocketMarker>(
71100                (),
71101                0x3814a04259f75fcb,
71102                fidl::encoding::DynamicFlags::empty(),
71103                ___deadline,
71104            )?;
71105        Ok(_response.map(|x| x.value))
71106    }
71107
71108    /// Set `SOL_IP` -> `IP_TTL`.
71109    pub fn r#set_ip_ttl(
71110        &self,
71111        mut value: &OptionalUint8,
71112        ___deadline: zx::MonotonicInstant,
71113    ) -> Result<BaseNetworkSocketSetIpTtlResult, fidl::Error> {
71114        let _response =
71115            self.client.send_query::<BaseNetworkSocketSetIpTtlRequest, fidl::encoding::ResultType<
71116                fidl::encoding::EmptyStruct,
71117                fidl_fuchsia_posix::Errno,
71118            >, SynchronousDatagramSocketMarker>(
71119                (value,),
71120                0x29e2424b433ae1ef,
71121                fidl::encoding::DynamicFlags::empty(),
71122                ___deadline,
71123            )?;
71124        Ok(_response.map(|x| x))
71125    }
71126
71127    /// Get `SOL_IP` -> `IP_TTL`.
71128    pub fn r#get_ip_ttl(
71129        &self,
71130        ___deadline: zx::MonotonicInstant,
71131    ) -> Result<BaseNetworkSocketGetIpTtlResult, fidl::Error> {
71132        let _response =
71133            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
71134                BaseNetworkSocketGetIpTtlResponse,
71135                fidl_fuchsia_posix::Errno,
71136            >, SynchronousDatagramSocketMarker>(
71137                (),
71138                0x47e47fa1f24da471,
71139                fidl::encoding::DynamicFlags::empty(),
71140                ___deadline,
71141            )?;
71142        Ok(_response.map(|x| x.value))
71143    }
71144
71145    /// Set `SOL_IP` -> `IP_PKTINFO`.
71146    pub fn r#set_ip_packet_info(
71147        &self,
71148        mut value: bool,
71149        ___deadline: zx::MonotonicInstant,
71150    ) -> Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error> {
71151        let _response =
71152            self.client
71153                .send_query::<BaseNetworkSocketSetIpPacketInfoRequest, fidl::encoding::ResultType<
71154                    fidl::encoding::EmptyStruct,
71155                    fidl_fuchsia_posix::Errno,
71156                >, SynchronousDatagramSocketMarker>(
71157                    (value,),
71158                    0x392d16bee20c0e16,
71159                    fidl::encoding::DynamicFlags::empty(),
71160                    ___deadline,
71161                )?;
71162        Ok(_response.map(|x| x))
71163    }
71164
71165    /// Get `SOL_IP` -> `IP_PKTINFO`.
71166    pub fn r#get_ip_packet_info(
71167        &self,
71168        ___deadline: zx::MonotonicInstant,
71169    ) -> Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error> {
71170        let _response =
71171            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
71172                BaseNetworkSocketGetIpPacketInfoResponse,
71173                fidl_fuchsia_posix::Errno,
71174            >, SynchronousDatagramSocketMarker>(
71175                (),
71176                0x54b505f242280740,
71177                fidl::encoding::DynamicFlags::empty(),
71178                ___deadline,
71179            )?;
71180        Ok(_response.map(|x| x.value))
71181    }
71182
71183    /// Set `SOL_IP` -> `IP_RECVTOS`.
71184    pub fn r#set_ip_receive_type_of_service(
71185        &self,
71186        mut value: bool,
71187        ___deadline: zx::MonotonicInstant,
71188    ) -> Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error> {
71189        let _response = self.client.send_query::<
71190            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
71191            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
71192            SynchronousDatagramSocketMarker,
71193        >(
71194            (value,),
71195            0x6c4f6714995f84ef,
71196            fidl::encoding::DynamicFlags::empty(),
71197            ___deadline,
71198        )?;
71199        Ok(_response.map(|x| x))
71200    }
71201
71202    /// Get `SOL_IP` -> `IP_RECVTOS`.
71203    pub fn r#get_ip_receive_type_of_service(
71204        &self,
71205        ___deadline: zx::MonotonicInstant,
71206    ) -> Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error> {
71207        let _response =
71208            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
71209                BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
71210                fidl_fuchsia_posix::Errno,
71211            >, SynchronousDatagramSocketMarker>(
71212                (),
71213                0x4158ba7dc2795960,
71214                fidl::encoding::DynamicFlags::empty(),
71215                ___deadline,
71216            )?;
71217        Ok(_response.map(|x| x.value))
71218    }
71219
71220    /// Set `SOL_IP` -> `IP_RECVTTL`.
71221    pub fn r#set_ip_receive_ttl(
71222        &self,
71223        mut value: bool,
71224        ___deadline: zx::MonotonicInstant,
71225    ) -> Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error> {
71226        let _response =
71227            self.client
71228                .send_query::<BaseNetworkSocketSetIpReceiveTtlRequest, fidl::encoding::ResultType<
71229                    fidl::encoding::EmptyStruct,
71230                    fidl_fuchsia_posix::Errno,
71231                >, SynchronousDatagramSocketMarker>(
71232                    (value,),
71233                    0x46f15be0ce0ab82b,
71234                    fidl::encoding::DynamicFlags::empty(),
71235                    ___deadline,
71236                )?;
71237        Ok(_response.map(|x| x))
71238    }
71239
71240    /// Get `SOL_IP` -> `IP_RECVTTL`.
71241    pub fn r#get_ip_receive_ttl(
71242        &self,
71243        ___deadline: zx::MonotonicInstant,
71244    ) -> Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error> {
71245        let _response =
71246            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
71247                BaseNetworkSocketGetIpReceiveTtlResponse,
71248                fidl_fuchsia_posix::Errno,
71249            >, SynchronousDatagramSocketMarker>(
71250                (),
71251                0x678ddd5a5dfa2eb5,
71252                fidl::encoding::DynamicFlags::empty(),
71253                ___deadline,
71254            )?;
71255        Ok(_response.map(|x| x.value))
71256    }
71257
71258    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
71259    pub fn r#set_ip_multicast_interface(
71260        &self,
71261        mut iface: u64,
71262        mut address: &fidl_fuchsia_net::Ipv4Address,
71263        ___deadline: zx::MonotonicInstant,
71264    ) -> Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error> {
71265        let _response = self.client.send_query::<
71266            BaseNetworkSocketSetIpMulticastInterfaceRequest,
71267            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
71268            SynchronousDatagramSocketMarker,
71269        >(
71270            (iface, address,),
71271            0x752fbfa9b12befe,
71272            fidl::encoding::DynamicFlags::empty(),
71273            ___deadline,
71274        )?;
71275        Ok(_response.map(|x| x))
71276    }
71277
71278    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
71279    pub fn r#get_ip_multicast_interface(
71280        &self,
71281        ___deadline: zx::MonotonicInstant,
71282    ) -> Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error> {
71283        let _response =
71284            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
71285                BaseNetworkSocketGetIpMulticastInterfaceResponse,
71286                fidl_fuchsia_posix::Errno,
71287            >, SynchronousDatagramSocketMarker>(
71288                (),
71289                0x320bd14c4df046c4,
71290                fidl::encoding::DynamicFlags::empty(),
71291                ___deadline,
71292            )?;
71293        Ok(_response.map(|x| x.value))
71294    }
71295
71296    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
71297    pub fn r#set_ip_multicast_ttl(
71298        &self,
71299        mut value: &OptionalUint8,
71300        ___deadline: zx::MonotonicInstant,
71301    ) -> Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error> {
71302        let _response =
71303            self.client
71304                .send_query::<BaseNetworkSocketSetIpMulticastTtlRequest, fidl::encoding::ResultType<
71305                    fidl::encoding::EmptyStruct,
71306                    fidl_fuchsia_posix::Errno,
71307                >, SynchronousDatagramSocketMarker>(
71308                    (value,),
71309                    0x63134d53772916a1,
71310                    fidl::encoding::DynamicFlags::empty(),
71311                    ___deadline,
71312                )?;
71313        Ok(_response.map(|x| x))
71314    }
71315
71316    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
71317    pub fn r#get_ip_multicast_ttl(
71318        &self,
71319        ___deadline: zx::MonotonicInstant,
71320    ) -> Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error> {
71321        let _response =
71322            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
71323                BaseNetworkSocketGetIpMulticastTtlResponse,
71324                fidl_fuchsia_posix::Errno,
71325            >, SynchronousDatagramSocketMarker>(
71326                (),
71327                0x4665cd378f39e1a,
71328                fidl::encoding::DynamicFlags::empty(),
71329                ___deadline,
71330            )?;
71331        Ok(_response.map(|x| x.value))
71332    }
71333
71334    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
71335    pub fn r#set_ip_multicast_loopback(
71336        &self,
71337        mut value: bool,
71338        ___deadline: zx::MonotonicInstant,
71339    ) -> Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error> {
71340        let _response = self.client.send_query::<
71341            BaseNetworkSocketSetIpMulticastLoopbackRequest,
71342            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
71343            SynchronousDatagramSocketMarker,
71344        >(
71345            (value,),
71346            0x20c55c11f00943ea,
71347            fidl::encoding::DynamicFlags::empty(),
71348            ___deadline,
71349        )?;
71350        Ok(_response.map(|x| x))
71351    }
71352
71353    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
71354    pub fn r#get_ip_multicast_loopback(
71355        &self,
71356        ___deadline: zx::MonotonicInstant,
71357    ) -> Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error> {
71358        let _response =
71359            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
71360                BaseNetworkSocketGetIpMulticastLoopbackResponse,
71361                fidl_fuchsia_posix::Errno,
71362            >, SynchronousDatagramSocketMarker>(
71363                (),
71364                0x3b6b26ff558298f2,
71365                fidl::encoding::DynamicFlags::empty(),
71366                ___deadline,
71367            )?;
71368        Ok(_response.map(|x| x.value))
71369    }
71370
71371    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
71372    pub fn r#add_ip_membership(
71373        &self,
71374        mut membership: &IpMulticastMembership,
71375        ___deadline: zx::MonotonicInstant,
71376    ) -> Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error> {
71377        let _response =
71378            self.client
71379                .send_query::<BaseNetworkSocketAddIpMembershipRequest, fidl::encoding::ResultType<
71380                    fidl::encoding::EmptyStruct,
71381                    fidl_fuchsia_posix::Errno,
71382                >, SynchronousDatagramSocketMarker>(
71383                    (membership,),
71384                    0x76bc7df115a3b4d0,
71385                    fidl::encoding::DynamicFlags::empty(),
71386                    ___deadline,
71387                )?;
71388        Ok(_response.map(|x| x))
71389    }
71390
71391    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
71392    pub fn r#drop_ip_membership(
71393        &self,
71394        mut membership: &IpMulticastMembership,
71395        ___deadline: zx::MonotonicInstant,
71396    ) -> Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error> {
71397        let _response =
71398            self.client
71399                .send_query::<BaseNetworkSocketDropIpMembershipRequest, fidl::encoding::ResultType<
71400                    fidl::encoding::EmptyStruct,
71401                    fidl_fuchsia_posix::Errno,
71402                >, SynchronousDatagramSocketMarker>(
71403                    (membership,),
71404                    0x2888f3099188d03,
71405                    fidl::encoding::DynamicFlags::empty(),
71406                    ___deadline,
71407                )?;
71408        Ok(_response.map(|x| x))
71409    }
71410
71411    /// Set `SOL_IP` -> `IP_TRANSPARENT`
71412    pub fn r#set_ip_transparent(
71413        &self,
71414        mut value: bool,
71415        ___deadline: zx::MonotonicInstant,
71416    ) -> Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error> {
71417        let _response =
71418            self.client
71419                .send_query::<BaseNetworkSocketSetIpTransparentRequest, fidl::encoding::ResultType<
71420                    fidl::encoding::EmptyStruct,
71421                    fidl_fuchsia_posix::Errno,
71422                >, SynchronousDatagramSocketMarker>(
71423                    (value,),
71424                    0x1ae532b0c066e3a0,
71425                    fidl::encoding::DynamicFlags::empty(),
71426                    ___deadline,
71427                )?;
71428        Ok(_response.map(|x| x))
71429    }
71430
71431    /// Get `SOL_IP` -> `IP_TRANSPARENT`
71432    pub fn r#get_ip_transparent(
71433        &self,
71434        ___deadline: zx::MonotonicInstant,
71435    ) -> Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error> {
71436        let _response =
71437            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
71438                BaseNetworkSocketGetIpTransparentResponse,
71439                fidl_fuchsia_posix::Errno,
71440            >, SynchronousDatagramSocketMarker>(
71441                (),
71442                0x51d43695962ebfb5,
71443                fidl::encoding::DynamicFlags::empty(),
71444                ___deadline,
71445            )?;
71446        Ok(_response.map(|x| x.value))
71447    }
71448
71449    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
71450    pub fn r#set_ip_receive_original_destination_address(
71451        &self,
71452        mut value: bool,
71453        ___deadline: zx::MonotonicInstant,
71454    ) -> Result<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult, fidl::Error> {
71455        let _response = self.client.send_query::<
71456            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
71457            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
71458            SynchronousDatagramSocketMarker,
71459        >(
71460            (value,),
71461            0x4722b4ce52f7840,
71462            fidl::encoding::DynamicFlags::empty(),
71463            ___deadline,
71464        )?;
71465        Ok(_response.map(|x| x))
71466    }
71467
71468    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
71469    pub fn r#get_ip_receive_original_destination_address(
71470        &self,
71471        ___deadline: zx::MonotonicInstant,
71472    ) -> Result<BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult, fidl::Error> {
71473        let _response =
71474            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
71475                BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
71476                fidl_fuchsia_posix::Errno,
71477            >, SynchronousDatagramSocketMarker>(
71478                (),
71479                0x2a0e7dc5d6bfdfe9,
71480                fidl::encoding::DynamicFlags::empty(),
71481                ___deadline,
71482            )?;
71483        Ok(_response.map(|x| x.value))
71484    }
71485
71486    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
71487    pub fn r#add_ipv6_membership(
71488        &self,
71489        mut membership: &Ipv6MulticastMembership,
71490        ___deadline: zx::MonotonicInstant,
71491    ) -> Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error> {
71492        let _response =
71493            self.client
71494                .send_query::<BaseNetworkSocketAddIpv6MembershipRequest, fidl::encoding::ResultType<
71495                    fidl::encoding::EmptyStruct,
71496                    fidl_fuchsia_posix::Errno,
71497                >, SynchronousDatagramSocketMarker>(
71498                    (membership,),
71499                    0x7c94727acb4ea4b3,
71500                    fidl::encoding::DynamicFlags::empty(),
71501                    ___deadline,
71502                )?;
71503        Ok(_response.map(|x| x))
71504    }
71505
71506    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
71507    pub fn r#drop_ipv6_membership(
71508        &self,
71509        mut membership: &Ipv6MulticastMembership,
71510        ___deadline: zx::MonotonicInstant,
71511    ) -> Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error> {
71512        let _response = self.client.send_query::<
71513            BaseNetworkSocketDropIpv6MembershipRequest,
71514            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
71515            SynchronousDatagramSocketMarker,
71516        >(
71517            (membership,),
71518            0x42104c70ccaba304,
71519            fidl::encoding::DynamicFlags::empty(),
71520            ___deadline,
71521        )?;
71522        Ok(_response.map(|x| x))
71523    }
71524
71525    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
71526    pub fn r#set_ipv6_multicast_interface(
71527        &self,
71528        mut value: u64,
71529        ___deadline: zx::MonotonicInstant,
71530    ) -> Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error> {
71531        let _response = self.client.send_query::<
71532            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
71533            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
71534            SynchronousDatagramSocketMarker,
71535        >(
71536            (value,),
71537            0x135f76db3774ab3b,
71538            fidl::encoding::DynamicFlags::empty(),
71539            ___deadline,
71540        )?;
71541        Ok(_response.map(|x| x))
71542    }
71543
71544    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
71545    pub fn r#get_ipv6_multicast_interface(
71546        &self,
71547        ___deadline: zx::MonotonicInstant,
71548    ) -> Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error> {
71549        let _response =
71550            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
71551                BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
71552                fidl_fuchsia_posix::Errno,
71553            >, SynchronousDatagramSocketMarker>(
71554                (),
71555                0x1f26fcdd348f1882,
71556                fidl::encoding::DynamicFlags::empty(),
71557                ___deadline,
71558            )?;
71559        Ok(_response.map(|x| x.value))
71560    }
71561
71562    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
71563    pub fn r#set_ipv6_unicast_hops(
71564        &self,
71565        mut value: &OptionalUint8,
71566        ___deadline: zx::MonotonicInstant,
71567    ) -> Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error> {
71568        let _response = self.client.send_query::<
71569            BaseNetworkSocketSetIpv6UnicastHopsRequest,
71570            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
71571            SynchronousDatagramSocketMarker,
71572        >(
71573            (value,),
71574            0x157d51e98f462859,
71575            fidl::encoding::DynamicFlags::empty(),
71576            ___deadline,
71577        )?;
71578        Ok(_response.map(|x| x))
71579    }
71580
71581    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
71582    pub fn r#get_ipv6_unicast_hops(
71583        &self,
71584        ___deadline: zx::MonotonicInstant,
71585    ) -> Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error> {
71586        let _response =
71587            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
71588                BaseNetworkSocketGetIpv6UnicastHopsResponse,
71589                fidl_fuchsia_posix::Errno,
71590            >, SynchronousDatagramSocketMarker>(
71591                (),
71592                0x21f4641cad8bd8d2,
71593                fidl::encoding::DynamicFlags::empty(),
71594                ___deadline,
71595            )?;
71596        Ok(_response.map(|x| x.value))
71597    }
71598
71599    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
71600    pub fn r#set_ipv6_receive_hop_limit(
71601        &self,
71602        mut value: bool,
71603        ___deadline: zx::MonotonicInstant,
71604    ) -> Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error> {
71605        let _response = self.client.send_query::<
71606            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
71607            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
71608            SynchronousDatagramSocketMarker,
71609        >(
71610            (value,),
71611            0x5c24808ed2e84a1e,
71612            fidl::encoding::DynamicFlags::empty(),
71613            ___deadline,
71614        )?;
71615        Ok(_response.map(|x| x))
71616    }
71617
71618    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
71619    pub fn r#get_ipv6_receive_hop_limit(
71620        &self,
71621        ___deadline: zx::MonotonicInstant,
71622    ) -> Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error> {
71623        let _response =
71624            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
71625                BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
71626                fidl_fuchsia_posix::Errno,
71627            >, SynchronousDatagramSocketMarker>(
71628                (),
71629                0x341e06689885b4c0,
71630                fidl::encoding::DynamicFlags::empty(),
71631                ___deadline,
71632            )?;
71633        Ok(_response.map(|x| x.value))
71634    }
71635
71636    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
71637    pub fn r#set_ipv6_multicast_hops(
71638        &self,
71639        mut value: &OptionalUint8,
71640        ___deadline: zx::MonotonicInstant,
71641    ) -> Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error> {
71642        let _response = self.client.send_query::<
71643            BaseNetworkSocketSetIpv6MulticastHopsRequest,
71644            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
71645            SynchronousDatagramSocketMarker,
71646        >(
71647            (value,),
71648            0x25b9cd4d181f82c1,
71649            fidl::encoding::DynamicFlags::empty(),
71650            ___deadline,
71651        )?;
71652        Ok(_response.map(|x| x))
71653    }
71654
71655    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
71656    pub fn r#get_ipv6_multicast_hops(
71657        &self,
71658        ___deadline: zx::MonotonicInstant,
71659    ) -> Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error> {
71660        let _response =
71661            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
71662                BaseNetworkSocketGetIpv6MulticastHopsResponse,
71663                fidl_fuchsia_posix::Errno,
71664            >, SynchronousDatagramSocketMarker>(
71665                (),
71666                0x52916948a365012a,
71667                fidl::encoding::DynamicFlags::empty(),
71668                ___deadline,
71669            )?;
71670        Ok(_response.map(|x| x.value))
71671    }
71672
71673    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
71674    pub fn r#set_ipv6_multicast_loopback(
71675        &self,
71676        mut value: bool,
71677        ___deadline: zx::MonotonicInstant,
71678    ) -> Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error> {
71679        let _response = self.client.send_query::<
71680            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
71681            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
71682            SynchronousDatagramSocketMarker,
71683        >(
71684            (value,),
71685            0x55701c409ff41b40,
71686            fidl::encoding::DynamicFlags::empty(),
71687            ___deadline,
71688        )?;
71689        Ok(_response.map(|x| x))
71690    }
71691
71692    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
71693    pub fn r#get_ipv6_multicast_loopback(
71694        &self,
71695        ___deadline: zx::MonotonicInstant,
71696    ) -> Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error> {
71697        let _response =
71698            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
71699                BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
71700                fidl_fuchsia_posix::Errno,
71701            >, SynchronousDatagramSocketMarker>(
71702                (),
71703                0x4415b701fde319c3,
71704                fidl::encoding::DynamicFlags::empty(),
71705                ___deadline,
71706            )?;
71707        Ok(_response.map(|x| x.value))
71708    }
71709
71710    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
71711    pub fn r#set_ipv6_only(
71712        &self,
71713        mut value: bool,
71714        ___deadline: zx::MonotonicInstant,
71715    ) -> Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error> {
71716        let _response =
71717            self.client
71718                .send_query::<BaseNetworkSocketSetIpv6OnlyRequest, fidl::encoding::ResultType<
71719                    fidl::encoding::EmptyStruct,
71720                    fidl_fuchsia_posix::Errno,
71721                >, SynchronousDatagramSocketMarker>(
71722                    (value,),
71723                    0x4873f1364758cbba,
71724                    fidl::encoding::DynamicFlags::empty(),
71725                    ___deadline,
71726                )?;
71727        Ok(_response.map(|x| x))
71728    }
71729
71730    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
71731    pub fn r#get_ipv6_only(
71732        &self,
71733        ___deadline: zx::MonotonicInstant,
71734    ) -> Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error> {
71735        let _response =
71736            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
71737                BaseNetworkSocketGetIpv6OnlyResponse,
71738                fidl_fuchsia_posix::Errno,
71739            >, SynchronousDatagramSocketMarker>(
71740                (),
71741                0x4aa3340a1a26b89c,
71742                fidl::encoding::DynamicFlags::empty(),
71743                ___deadline,
71744            )?;
71745        Ok(_response.map(|x| x.value))
71746    }
71747
71748    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
71749    pub fn r#set_ipv6_receive_traffic_class(
71750        &self,
71751        mut value: bool,
71752        ___deadline: zx::MonotonicInstant,
71753    ) -> Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error> {
71754        let _response = self.client.send_query::<
71755            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
71756            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
71757            SynchronousDatagramSocketMarker,
71758        >(
71759            (value,),
71760            0x58f07c8788d099a0,
71761            fidl::encoding::DynamicFlags::empty(),
71762            ___deadline,
71763        )?;
71764        Ok(_response.map(|x| x))
71765    }
71766
71767    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
71768    pub fn r#get_ipv6_receive_traffic_class(
71769        &self,
71770        ___deadline: zx::MonotonicInstant,
71771    ) -> Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error> {
71772        let _response =
71773            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
71774                BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
71775                fidl_fuchsia_posix::Errno,
71776            >, SynchronousDatagramSocketMarker>(
71777                (),
71778                0x2e334df1da553ffa,
71779                fidl::encoding::DynamicFlags::empty(),
71780                ___deadline,
71781            )?;
71782        Ok(_response.map(|x| x.value))
71783    }
71784
71785    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
71786    pub fn r#set_ipv6_traffic_class(
71787        &self,
71788        mut value: &OptionalUint8,
71789        ___deadline: zx::MonotonicInstant,
71790    ) -> Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error> {
71791        let _response = self.client.send_query::<
71792            BaseNetworkSocketSetIpv6TrafficClassRequest,
71793            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
71794            SynchronousDatagramSocketMarker,
71795        >(
71796            (value,),
71797            0x6af077800c5a0b4f,
71798            fidl::encoding::DynamicFlags::empty(),
71799            ___deadline,
71800        )?;
71801        Ok(_response.map(|x| x))
71802    }
71803
71804    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
71805    pub fn r#get_ipv6_traffic_class(
71806        &self,
71807        ___deadline: zx::MonotonicInstant,
71808    ) -> Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error> {
71809        let _response =
71810            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
71811                BaseNetworkSocketGetIpv6TrafficClassResponse,
71812                fidl_fuchsia_posix::Errno,
71813            >, SynchronousDatagramSocketMarker>(
71814                (),
71815                0x6baf6eed8fc2f04,
71816                fidl::encoding::DynamicFlags::empty(),
71817                ___deadline,
71818            )?;
71819        Ok(_response.map(|x| x.value))
71820    }
71821
71822    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
71823    pub fn r#set_ipv6_receive_packet_info(
71824        &self,
71825        mut value: bool,
71826        ___deadline: zx::MonotonicInstant,
71827    ) -> Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error> {
71828        let _response = self.client.send_query::<
71829            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
71830            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
71831            SynchronousDatagramSocketMarker,
71832        >(
71833            (value,),
71834            0x19259775b1a92768,
71835            fidl::encoding::DynamicFlags::empty(),
71836            ___deadline,
71837        )?;
71838        Ok(_response.map(|x| x))
71839    }
71840
71841    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
71842    pub fn r#get_ipv6_receive_packet_info(
71843        &self,
71844        ___deadline: zx::MonotonicInstant,
71845    ) -> Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error> {
71846        let _response =
71847            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
71848                BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
71849                fidl_fuchsia_posix::Errno,
71850            >, SynchronousDatagramSocketMarker>(
71851                (),
71852                0x7acd4a2775baec75,
71853                fidl::encoding::DynamicFlags::empty(),
71854                ___deadline,
71855            )?;
71856        Ok(_response.map(|x| x.value))
71857    }
71858
71859    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
71860    pub fn r#get_original_destination(
71861        &self,
71862        ___deadline: zx::MonotonicInstant,
71863    ) -> Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error> {
71864        let _response =
71865            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
71866                BaseNetworkSocketGetOriginalDestinationResponse,
71867                fidl_fuchsia_posix::Errno,
71868            >, SynchronousDatagramSocketMarker>(
71869                (),
71870                0x38bf28f0dafdbac0,
71871                fidl::encoding::DynamicFlags::empty(),
71872                ___deadline,
71873            )?;
71874        Ok(_response.map(|x| x.value))
71875    }
71876
71877    /// Retrieves creation information from the socket.
71878    ///
71879    /// - response `domain` the socket's associated domain.
71880    /// - response `proto` the socket's associated protocol.
71881    pub fn r#get_info(
71882        &self,
71883        ___deadline: zx::MonotonicInstant,
71884    ) -> Result<BaseDatagramSocketGetInfoResult, fidl::Error> {
71885        let _response =
71886            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
71887                BaseDatagramSocketGetInfoResponse,
71888                fidl_fuchsia_posix::Errno,
71889            >, SynchronousDatagramSocketMarker>(
71890                (),
71891                0x48aa0a1f6a32d2ed,
71892                fidl::encoding::DynamicFlags::empty(),
71893                ___deadline,
71894            )?;
71895        Ok(_response.map(|x| (x.domain, x.proto)))
71896    }
71897
71898    pub fn r#describe(
71899        &self,
71900        ___deadline: zx::MonotonicInstant,
71901    ) -> Result<SynchronousDatagramSocketDescribeResponse, fidl::Error> {
71902        let _response = self.client.send_query::<
71903            fidl::encoding::EmptyPayload,
71904            SynchronousDatagramSocketDescribeResponse,
71905            SynchronousDatagramSocketMarker,
71906        >(
71907            (),
71908            0x585f20b73631070d,
71909            fidl::encoding::DynamicFlags::empty(),
71910            ___deadline,
71911        )?;
71912        Ok(_response)
71913    }
71914
71915    /// Receives a message from the socket.
71916    ///
71917    /// + request `want_addr` request message's source address information to
71918    ///   be returned.
71919    /// + request `data_len` the maximum allowed length of the response data
71920    ///   buffer.
71921    /// + request `want_control` request ancillary data to be returned.
71922    /// + request `flags` flags for the receive request.
71923    /// - response `addr` the message's source address information, if
71924    ///   requested.
71925    /// - response `data` the message.
71926    /// - response `control` control messages, if requested.
71927    /// - response `truncated` indicates whether or not the returned message
71928    ///   was truncated.
71929    pub fn r#recv_msg(
71930        &self,
71931        mut want_addr: bool,
71932        mut data_len: u32,
71933        mut want_control: bool,
71934        mut flags: RecvMsgFlags,
71935        ___deadline: zx::MonotonicInstant,
71936    ) -> Result<SynchronousDatagramSocketRecvMsgResult, fidl::Error> {
71937        let _response = self
71938            .client
71939            .send_query::<SynchronousDatagramSocketRecvMsgRequest, fidl::encoding::ResultType<
71940                SynchronousDatagramSocketRecvMsgResponse,
71941                fidl_fuchsia_posix::Errno,
71942            >, SynchronousDatagramSocketMarker>(
71943                (want_addr, data_len, want_control, flags),
71944                0x28e494e48fb5dbf3,
71945                fidl::encoding::DynamicFlags::empty(),
71946                ___deadline,
71947            )?;
71948        Ok(_response.map(|x| (x.addr, x.data, x.control, x.truncated)))
71949    }
71950
71951    /// Sends a message on the socket.
71952    ///
71953    /// + request `addr` the address to send the message to. If unset, will send
71954    ///   to the connected peer.
71955    /// + request `data` the message.
71956    /// + request `control` ancillary data.
71957    /// + request `flags` flags for the send request.
71958    /// - response `len` the number of bytes sent.
71959    pub fn r#send_msg(
71960        &self,
71961        mut addr: Option<&fidl_fuchsia_net::SocketAddress>,
71962        mut data: &[u8],
71963        mut control: &DatagramSocketSendControlData,
71964        mut flags: SendMsgFlags,
71965        ___deadline: zx::MonotonicInstant,
71966    ) -> Result<SynchronousDatagramSocketSendMsgResult, fidl::Error> {
71967        let _response = self
71968            .client
71969            .send_query::<SynchronousDatagramSocketSendMsgRequest, fidl::encoding::ResultType<
71970                SynchronousDatagramSocketSendMsgResponse,
71971                fidl_fuchsia_posix::Errno,
71972            >, SynchronousDatagramSocketMarker>(
71973                (addr, data, control, flags),
71974                0x12dc2fceab6cefaa,
71975                fidl::encoding::DynamicFlags::empty(),
71976                ___deadline,
71977            )?;
71978        Ok(_response.map(|x| x.len))
71979    }
71980}
71981
71982#[cfg(target_os = "fuchsia")]
71983impl From<SynchronousDatagramSocketSynchronousProxy> for zx::NullableHandle {
71984    fn from(value: SynchronousDatagramSocketSynchronousProxy) -> Self {
71985        value.into_channel().into()
71986    }
71987}
71988
71989#[cfg(target_os = "fuchsia")]
71990impl From<fidl::Channel> for SynchronousDatagramSocketSynchronousProxy {
71991    fn from(value: fidl::Channel) -> Self {
71992        Self::new(value)
71993    }
71994}
71995
71996#[cfg(target_os = "fuchsia")]
71997impl fidl::endpoints::FromClient for SynchronousDatagramSocketSynchronousProxy {
71998    type Protocol = SynchronousDatagramSocketMarker;
71999
72000    fn from_client(value: fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>) -> Self {
72001        Self::new(value.into_channel())
72002    }
72003}
72004
72005#[derive(Debug, Clone)]
72006pub struct SynchronousDatagramSocketProxy {
72007    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
72008}
72009
72010impl fidl::endpoints::Proxy for SynchronousDatagramSocketProxy {
72011    type Protocol = SynchronousDatagramSocketMarker;
72012
72013    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
72014        Self::new(inner)
72015    }
72016
72017    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
72018        self.client.into_channel().map_err(|client| Self { client })
72019    }
72020
72021    fn as_channel(&self) -> &::fidl::AsyncChannel {
72022        self.client.as_channel()
72023    }
72024}
72025
72026impl SynchronousDatagramSocketProxy {
72027    /// Create a new Proxy for fuchsia.posix.socket/SynchronousDatagramSocket.
72028    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
72029        let protocol_name =
72030            <SynchronousDatagramSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
72031        Self { client: fidl::client::Client::new(channel, protocol_name) }
72032    }
72033
72034    /// Get a Stream of events from the remote end of the protocol.
72035    ///
72036    /// # Panics
72037    ///
72038    /// Panics if the event stream was already taken.
72039    pub fn take_event_stream(&self) -> SynchronousDatagramSocketEventStream {
72040        SynchronousDatagramSocketEventStream { event_receiver: self.client.take_event_receiver() }
72041    }
72042
72043    pub fn r#clone(
72044        &self,
72045        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
72046    ) -> Result<(), fidl::Error> {
72047        SynchronousDatagramSocketProxyInterface::r#clone(self, request)
72048    }
72049
72050    /// Terminates the connection.
72051    ///
72052    /// After calling `Close`, the client must not send any other requests.
72053    ///
72054    /// Servers, after sending the status response, should close the connection
72055    /// regardless of status and without sending an epitaph.
72056    ///
72057    /// Closing the client end of the channel should be semantically equivalent
72058    /// to calling `Close` without knowing when the close has completed or its
72059    /// status.
72060    pub fn r#close(
72061        &self,
72062    ) -> fidl::client::QueryResponseFut<
72063        fidl_fuchsia_unknown::CloseableCloseResult,
72064        fidl::encoding::DefaultFuchsiaResourceDialect,
72065    > {
72066        SynchronousDatagramSocketProxyInterface::r#close(self)
72067    }
72068
72069    pub fn r#query(
72070        &self,
72071    ) -> fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>
72072    {
72073        SynchronousDatagramSocketProxyInterface::r#query(self)
72074    }
72075
72076    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
72077    pub fn r#set_reuse_address(
72078        &self,
72079        mut value: bool,
72080    ) -> fidl::client::QueryResponseFut<
72081        BaseSocketSetReuseAddressResult,
72082        fidl::encoding::DefaultFuchsiaResourceDialect,
72083    > {
72084        SynchronousDatagramSocketProxyInterface::r#set_reuse_address(self, value)
72085    }
72086
72087    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
72088    pub fn r#get_reuse_address(
72089        &self,
72090    ) -> fidl::client::QueryResponseFut<
72091        BaseSocketGetReuseAddressResult,
72092        fidl::encoding::DefaultFuchsiaResourceDialect,
72093    > {
72094        SynchronousDatagramSocketProxyInterface::r#get_reuse_address(self)
72095    }
72096
72097    /// Get `SOL_SOCKET` -> `SO_ERROR`.
72098    /// Returns the last error if there is an error set on the socket.
72099    pub fn r#get_error(
72100        &self,
72101    ) -> fidl::client::QueryResponseFut<
72102        BaseSocketGetErrorResult,
72103        fidl::encoding::DefaultFuchsiaResourceDialect,
72104    > {
72105        SynchronousDatagramSocketProxyInterface::r#get_error(self)
72106    }
72107
72108    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
72109    pub fn r#set_broadcast(
72110        &self,
72111        mut value: bool,
72112    ) -> fidl::client::QueryResponseFut<
72113        BaseSocketSetBroadcastResult,
72114        fidl::encoding::DefaultFuchsiaResourceDialect,
72115    > {
72116        SynchronousDatagramSocketProxyInterface::r#set_broadcast(self, value)
72117    }
72118
72119    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
72120    pub fn r#get_broadcast(
72121        &self,
72122    ) -> fidl::client::QueryResponseFut<
72123        BaseSocketGetBroadcastResult,
72124        fidl::encoding::DefaultFuchsiaResourceDialect,
72125    > {
72126        SynchronousDatagramSocketProxyInterface::r#get_broadcast(self)
72127    }
72128
72129    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
72130    pub fn r#set_send_buffer(
72131        &self,
72132        mut value_bytes: u64,
72133    ) -> fidl::client::QueryResponseFut<
72134        BaseSocketSetSendBufferResult,
72135        fidl::encoding::DefaultFuchsiaResourceDialect,
72136    > {
72137        SynchronousDatagramSocketProxyInterface::r#set_send_buffer(self, value_bytes)
72138    }
72139
72140    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
72141    pub fn r#get_send_buffer(
72142        &self,
72143    ) -> fidl::client::QueryResponseFut<
72144        BaseSocketGetSendBufferResult,
72145        fidl::encoding::DefaultFuchsiaResourceDialect,
72146    > {
72147        SynchronousDatagramSocketProxyInterface::r#get_send_buffer(self)
72148    }
72149
72150    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
72151    pub fn r#set_receive_buffer(
72152        &self,
72153        mut value_bytes: u64,
72154    ) -> fidl::client::QueryResponseFut<
72155        BaseSocketSetReceiveBufferResult,
72156        fidl::encoding::DefaultFuchsiaResourceDialect,
72157    > {
72158        SynchronousDatagramSocketProxyInterface::r#set_receive_buffer(self, value_bytes)
72159    }
72160
72161    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
72162    pub fn r#get_receive_buffer(
72163        &self,
72164    ) -> fidl::client::QueryResponseFut<
72165        BaseSocketGetReceiveBufferResult,
72166        fidl::encoding::DefaultFuchsiaResourceDialect,
72167    > {
72168        SynchronousDatagramSocketProxyInterface::r#get_receive_buffer(self)
72169    }
72170
72171    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
72172    pub fn r#set_keep_alive(
72173        &self,
72174        mut value: bool,
72175    ) -> fidl::client::QueryResponseFut<
72176        BaseSocketSetKeepAliveResult,
72177        fidl::encoding::DefaultFuchsiaResourceDialect,
72178    > {
72179        SynchronousDatagramSocketProxyInterface::r#set_keep_alive(self, value)
72180    }
72181
72182    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
72183    pub fn r#get_keep_alive(
72184        &self,
72185    ) -> fidl::client::QueryResponseFut<
72186        BaseSocketGetKeepAliveResult,
72187        fidl::encoding::DefaultFuchsiaResourceDialect,
72188    > {
72189        SynchronousDatagramSocketProxyInterface::r#get_keep_alive(self)
72190    }
72191
72192    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
72193    pub fn r#set_out_of_band_inline(
72194        &self,
72195        mut value: bool,
72196    ) -> fidl::client::QueryResponseFut<
72197        BaseSocketSetOutOfBandInlineResult,
72198        fidl::encoding::DefaultFuchsiaResourceDialect,
72199    > {
72200        SynchronousDatagramSocketProxyInterface::r#set_out_of_band_inline(self, value)
72201    }
72202
72203    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
72204    pub fn r#get_out_of_band_inline(
72205        &self,
72206    ) -> fidl::client::QueryResponseFut<
72207        BaseSocketGetOutOfBandInlineResult,
72208        fidl::encoding::DefaultFuchsiaResourceDialect,
72209    > {
72210        SynchronousDatagramSocketProxyInterface::r#get_out_of_band_inline(self)
72211    }
72212
72213    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
72214    pub fn r#set_no_check(
72215        &self,
72216        mut value: bool,
72217    ) -> fidl::client::QueryResponseFut<
72218        BaseSocketSetNoCheckResult,
72219        fidl::encoding::DefaultFuchsiaResourceDialect,
72220    > {
72221        SynchronousDatagramSocketProxyInterface::r#set_no_check(self, value)
72222    }
72223
72224    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
72225    pub fn r#get_no_check(
72226        &self,
72227    ) -> fidl::client::QueryResponseFut<
72228        BaseSocketGetNoCheckResult,
72229        fidl::encoding::DefaultFuchsiaResourceDialect,
72230    > {
72231        SynchronousDatagramSocketProxyInterface::r#get_no_check(self)
72232    }
72233
72234    /// Set `SOL_SOCKET` -> `SO_LINGER`.
72235    pub fn r#set_linger(
72236        &self,
72237        mut linger: bool,
72238        mut length_secs: u32,
72239    ) -> fidl::client::QueryResponseFut<
72240        BaseSocketSetLingerResult,
72241        fidl::encoding::DefaultFuchsiaResourceDialect,
72242    > {
72243        SynchronousDatagramSocketProxyInterface::r#set_linger(self, linger, length_secs)
72244    }
72245
72246    /// Get `SOL_SOCKET` -> `SO_LINGER`.
72247    pub fn r#get_linger(
72248        &self,
72249    ) -> fidl::client::QueryResponseFut<
72250        BaseSocketGetLingerResult,
72251        fidl::encoding::DefaultFuchsiaResourceDialect,
72252    > {
72253        SynchronousDatagramSocketProxyInterface::r#get_linger(self)
72254    }
72255
72256    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
72257    pub fn r#set_reuse_port(
72258        &self,
72259        mut value: ReusePortOption,
72260    ) -> fidl::client::QueryResponseFut<
72261        BaseSocketSetReusePortResult,
72262        fidl::encoding::DefaultFuchsiaResourceDialect,
72263    > {
72264        SynchronousDatagramSocketProxyInterface::r#set_reuse_port(self, value)
72265    }
72266
72267    pub fn r#set_reuse_port_deprecated(
72268        &self,
72269        mut value: bool,
72270    ) -> fidl::client::QueryResponseFut<
72271        BaseSocketSetReusePortDeprecatedResult,
72272        fidl::encoding::DefaultFuchsiaResourceDialect,
72273    > {
72274        SynchronousDatagramSocketProxyInterface::r#set_reuse_port_deprecated(self, value)
72275    }
72276
72277    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
72278    pub fn r#get_reuse_port(
72279        &self,
72280    ) -> fidl::client::QueryResponseFut<
72281        BaseSocketGetReusePortResult,
72282        fidl::encoding::DefaultFuchsiaResourceDialect,
72283    > {
72284        SynchronousDatagramSocketProxyInterface::r#get_reuse_port(self)
72285    }
72286
72287    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
72288    pub fn r#get_accept_conn(
72289        &self,
72290    ) -> fidl::client::QueryResponseFut<
72291        BaseSocketGetAcceptConnResult,
72292        fidl::encoding::DefaultFuchsiaResourceDialect,
72293    > {
72294        SynchronousDatagramSocketProxyInterface::r#get_accept_conn(self)
72295    }
72296
72297    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
72298    pub fn r#set_bind_to_device(
72299        &self,
72300        mut value: &str,
72301    ) -> fidl::client::QueryResponseFut<
72302        BaseSocketSetBindToDeviceResult,
72303        fidl::encoding::DefaultFuchsiaResourceDialect,
72304    > {
72305        SynchronousDatagramSocketProxyInterface::r#set_bind_to_device(self, value)
72306    }
72307
72308    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
72309    pub fn r#get_bind_to_device(
72310        &self,
72311    ) -> fidl::client::QueryResponseFut<
72312        BaseSocketGetBindToDeviceResult,
72313        fidl::encoding::DefaultFuchsiaResourceDialect,
72314    > {
72315        SynchronousDatagramSocketProxyInterface::r#get_bind_to_device(self)
72316    }
72317
72318    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
72319    /// If `value` is 0, this clears the bound interface.
72320    pub fn r#set_bind_to_interface_index(
72321        &self,
72322        mut value: u64,
72323    ) -> fidl::client::QueryResponseFut<
72324        BaseSocketSetBindToInterfaceIndexResult,
72325        fidl::encoding::DefaultFuchsiaResourceDialect,
72326    > {
72327        SynchronousDatagramSocketProxyInterface::r#set_bind_to_interface_index(self, value)
72328    }
72329
72330    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
72331    pub fn r#get_bind_to_interface_index(
72332        &self,
72333    ) -> fidl::client::QueryResponseFut<
72334        BaseSocketGetBindToInterfaceIndexResult,
72335        fidl::encoding::DefaultFuchsiaResourceDialect,
72336    > {
72337        SynchronousDatagramSocketProxyInterface::r#get_bind_to_interface_index(self)
72338    }
72339
72340    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
72341    pub fn r#set_timestamp(
72342        &self,
72343        mut value: TimestampOption,
72344    ) -> fidl::client::QueryResponseFut<
72345        BaseSocketSetTimestampResult,
72346        fidl::encoding::DefaultFuchsiaResourceDialect,
72347    > {
72348        SynchronousDatagramSocketProxyInterface::r#set_timestamp(self, value)
72349    }
72350
72351    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
72352    pub fn r#get_timestamp(
72353        &self,
72354    ) -> fidl::client::QueryResponseFut<
72355        BaseSocketGetTimestampResult,
72356        fidl::encoding::DefaultFuchsiaResourceDialect,
72357    > {
72358        SynchronousDatagramSocketProxyInterface::r#get_timestamp(self)
72359    }
72360
72361    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
72362    /// unlike the standard SO_MARK, this API has multiple mark domains and each
72363    /// mark can be set independently in each domain.
72364    pub fn r#set_mark(
72365        &self,
72366        mut domain: fidl_fuchsia_net::MarkDomain,
72367        mut mark: &OptionalUint32,
72368    ) -> fidl::client::QueryResponseFut<
72369        BaseSocketSetMarkResult,
72370        fidl::encoding::DefaultFuchsiaResourceDialect,
72371    > {
72372        SynchronousDatagramSocketProxyInterface::r#set_mark(self, domain, mark)
72373    }
72374
72375    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
72376    /// unlike the standard SO_MARK, this API has multiple mark domains and each
72377    /// mark can be retrieved independently in each domain.
72378    pub fn r#get_mark(
72379        &self,
72380        mut domain: fidl_fuchsia_net::MarkDomain,
72381    ) -> fidl::client::QueryResponseFut<
72382        BaseSocketGetMarkResult,
72383        fidl::encoding::DefaultFuchsiaResourceDialect,
72384    > {
72385        SynchronousDatagramSocketProxyInterface::r#get_mark(self, domain)
72386    }
72387
72388    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
72389    pub fn r#get_cookie(
72390        &self,
72391    ) -> fidl::client::QueryResponseFut<
72392        BaseSocketGetCookieResult,
72393        fidl::encoding::DefaultFuchsiaResourceDialect,
72394    > {
72395        SynchronousDatagramSocketProxyInterface::r#get_cookie(self)
72396    }
72397
72398    /// Sets the local address used for the socket.
72399    pub fn r#bind(
72400        &self,
72401        mut addr: &fidl_fuchsia_net::SocketAddress,
72402    ) -> fidl::client::QueryResponseFut<
72403        BaseNetworkSocketBindResult,
72404        fidl::encoding::DefaultFuchsiaResourceDialect,
72405    > {
72406        SynchronousDatagramSocketProxyInterface::r#bind(self, addr)
72407    }
72408
72409    /// Initiates a connection to a remote address.
72410    pub fn r#connect(
72411        &self,
72412        mut addr: &fidl_fuchsia_net::SocketAddress,
72413    ) -> fidl::client::QueryResponseFut<
72414        BaseNetworkSocketConnectResult,
72415        fidl::encoding::DefaultFuchsiaResourceDialect,
72416    > {
72417        SynchronousDatagramSocketProxyInterface::r#connect(self, addr)
72418    }
72419
72420    /// Clears connection information from this socket.
72421    pub fn r#disconnect(
72422        &self,
72423    ) -> fidl::client::QueryResponseFut<
72424        BaseNetworkSocketDisconnectResult,
72425        fidl::encoding::DefaultFuchsiaResourceDialect,
72426    > {
72427        SynchronousDatagramSocketProxyInterface::r#disconnect(self)
72428    }
72429
72430    /// Retrieves the local socket address.
72431    pub fn r#get_sock_name(
72432        &self,
72433    ) -> fidl::client::QueryResponseFut<
72434        BaseNetworkSocketGetSockNameResult,
72435        fidl::encoding::DefaultFuchsiaResourceDialect,
72436    > {
72437        SynchronousDatagramSocketProxyInterface::r#get_sock_name(self)
72438    }
72439
72440    /// Retrieves the remote socket address.
72441    pub fn r#get_peer_name(
72442        &self,
72443    ) -> fidl::client::QueryResponseFut<
72444        BaseNetworkSocketGetPeerNameResult,
72445        fidl::encoding::DefaultFuchsiaResourceDialect,
72446    > {
72447        SynchronousDatagramSocketProxyInterface::r#get_peer_name(self)
72448    }
72449
72450    /// Shuts down part of the socket.
72451    pub fn r#shutdown(
72452        &self,
72453        mut mode: ShutdownMode,
72454    ) -> fidl::client::QueryResponseFut<
72455        BaseNetworkSocketShutdownResult,
72456        fidl::encoding::DefaultFuchsiaResourceDialect,
72457    > {
72458        SynchronousDatagramSocketProxyInterface::r#shutdown(self, mode)
72459    }
72460
72461    /// Set `SOL_IP` -> `IP_TOS`.
72462    pub fn r#set_ip_type_of_service(
72463        &self,
72464        mut value: u8,
72465    ) -> fidl::client::QueryResponseFut<
72466        BaseNetworkSocketSetIpTypeOfServiceResult,
72467        fidl::encoding::DefaultFuchsiaResourceDialect,
72468    > {
72469        SynchronousDatagramSocketProxyInterface::r#set_ip_type_of_service(self, value)
72470    }
72471
72472    /// Get `SOL_IP` -> `IP_TOS`.
72473    pub fn r#get_ip_type_of_service(
72474        &self,
72475    ) -> fidl::client::QueryResponseFut<
72476        BaseNetworkSocketGetIpTypeOfServiceResult,
72477        fidl::encoding::DefaultFuchsiaResourceDialect,
72478    > {
72479        SynchronousDatagramSocketProxyInterface::r#get_ip_type_of_service(self)
72480    }
72481
72482    /// Set `SOL_IP` -> `IP_TTL`.
72483    pub fn r#set_ip_ttl(
72484        &self,
72485        mut value: &OptionalUint8,
72486    ) -> fidl::client::QueryResponseFut<
72487        BaseNetworkSocketSetIpTtlResult,
72488        fidl::encoding::DefaultFuchsiaResourceDialect,
72489    > {
72490        SynchronousDatagramSocketProxyInterface::r#set_ip_ttl(self, value)
72491    }
72492
72493    /// Get `SOL_IP` -> `IP_TTL`.
72494    pub fn r#get_ip_ttl(
72495        &self,
72496    ) -> fidl::client::QueryResponseFut<
72497        BaseNetworkSocketGetIpTtlResult,
72498        fidl::encoding::DefaultFuchsiaResourceDialect,
72499    > {
72500        SynchronousDatagramSocketProxyInterface::r#get_ip_ttl(self)
72501    }
72502
72503    /// Set `SOL_IP` -> `IP_PKTINFO`.
72504    pub fn r#set_ip_packet_info(
72505        &self,
72506        mut value: bool,
72507    ) -> fidl::client::QueryResponseFut<
72508        BaseNetworkSocketSetIpPacketInfoResult,
72509        fidl::encoding::DefaultFuchsiaResourceDialect,
72510    > {
72511        SynchronousDatagramSocketProxyInterface::r#set_ip_packet_info(self, value)
72512    }
72513
72514    /// Get `SOL_IP` -> `IP_PKTINFO`.
72515    pub fn r#get_ip_packet_info(
72516        &self,
72517    ) -> fidl::client::QueryResponseFut<
72518        BaseNetworkSocketGetIpPacketInfoResult,
72519        fidl::encoding::DefaultFuchsiaResourceDialect,
72520    > {
72521        SynchronousDatagramSocketProxyInterface::r#get_ip_packet_info(self)
72522    }
72523
72524    /// Set `SOL_IP` -> `IP_RECVTOS`.
72525    pub fn r#set_ip_receive_type_of_service(
72526        &self,
72527        mut value: bool,
72528    ) -> fidl::client::QueryResponseFut<
72529        BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
72530        fidl::encoding::DefaultFuchsiaResourceDialect,
72531    > {
72532        SynchronousDatagramSocketProxyInterface::r#set_ip_receive_type_of_service(self, value)
72533    }
72534
72535    /// Get `SOL_IP` -> `IP_RECVTOS`.
72536    pub fn r#get_ip_receive_type_of_service(
72537        &self,
72538    ) -> fidl::client::QueryResponseFut<
72539        BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
72540        fidl::encoding::DefaultFuchsiaResourceDialect,
72541    > {
72542        SynchronousDatagramSocketProxyInterface::r#get_ip_receive_type_of_service(self)
72543    }
72544
72545    /// Set `SOL_IP` -> `IP_RECVTTL`.
72546    pub fn r#set_ip_receive_ttl(
72547        &self,
72548        mut value: bool,
72549    ) -> fidl::client::QueryResponseFut<
72550        BaseNetworkSocketSetIpReceiveTtlResult,
72551        fidl::encoding::DefaultFuchsiaResourceDialect,
72552    > {
72553        SynchronousDatagramSocketProxyInterface::r#set_ip_receive_ttl(self, value)
72554    }
72555
72556    /// Get `SOL_IP` -> `IP_RECVTTL`.
72557    pub fn r#get_ip_receive_ttl(
72558        &self,
72559    ) -> fidl::client::QueryResponseFut<
72560        BaseNetworkSocketGetIpReceiveTtlResult,
72561        fidl::encoding::DefaultFuchsiaResourceDialect,
72562    > {
72563        SynchronousDatagramSocketProxyInterface::r#get_ip_receive_ttl(self)
72564    }
72565
72566    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
72567    pub fn r#set_ip_multicast_interface(
72568        &self,
72569        mut iface: u64,
72570        mut address: &fidl_fuchsia_net::Ipv4Address,
72571    ) -> fidl::client::QueryResponseFut<
72572        BaseNetworkSocketSetIpMulticastInterfaceResult,
72573        fidl::encoding::DefaultFuchsiaResourceDialect,
72574    > {
72575        SynchronousDatagramSocketProxyInterface::r#set_ip_multicast_interface(self, iface, address)
72576    }
72577
72578    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
72579    pub fn r#get_ip_multicast_interface(
72580        &self,
72581    ) -> fidl::client::QueryResponseFut<
72582        BaseNetworkSocketGetIpMulticastInterfaceResult,
72583        fidl::encoding::DefaultFuchsiaResourceDialect,
72584    > {
72585        SynchronousDatagramSocketProxyInterface::r#get_ip_multicast_interface(self)
72586    }
72587
72588    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
72589    pub fn r#set_ip_multicast_ttl(
72590        &self,
72591        mut value: &OptionalUint8,
72592    ) -> fidl::client::QueryResponseFut<
72593        BaseNetworkSocketSetIpMulticastTtlResult,
72594        fidl::encoding::DefaultFuchsiaResourceDialect,
72595    > {
72596        SynchronousDatagramSocketProxyInterface::r#set_ip_multicast_ttl(self, value)
72597    }
72598
72599    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
72600    pub fn r#get_ip_multicast_ttl(
72601        &self,
72602    ) -> fidl::client::QueryResponseFut<
72603        BaseNetworkSocketGetIpMulticastTtlResult,
72604        fidl::encoding::DefaultFuchsiaResourceDialect,
72605    > {
72606        SynchronousDatagramSocketProxyInterface::r#get_ip_multicast_ttl(self)
72607    }
72608
72609    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
72610    pub fn r#set_ip_multicast_loopback(
72611        &self,
72612        mut value: bool,
72613    ) -> fidl::client::QueryResponseFut<
72614        BaseNetworkSocketSetIpMulticastLoopbackResult,
72615        fidl::encoding::DefaultFuchsiaResourceDialect,
72616    > {
72617        SynchronousDatagramSocketProxyInterface::r#set_ip_multicast_loopback(self, value)
72618    }
72619
72620    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
72621    pub fn r#get_ip_multicast_loopback(
72622        &self,
72623    ) -> fidl::client::QueryResponseFut<
72624        BaseNetworkSocketGetIpMulticastLoopbackResult,
72625        fidl::encoding::DefaultFuchsiaResourceDialect,
72626    > {
72627        SynchronousDatagramSocketProxyInterface::r#get_ip_multicast_loopback(self)
72628    }
72629
72630    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
72631    pub fn r#add_ip_membership(
72632        &self,
72633        mut membership: &IpMulticastMembership,
72634    ) -> fidl::client::QueryResponseFut<
72635        BaseNetworkSocketAddIpMembershipResult,
72636        fidl::encoding::DefaultFuchsiaResourceDialect,
72637    > {
72638        SynchronousDatagramSocketProxyInterface::r#add_ip_membership(self, membership)
72639    }
72640
72641    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
72642    pub fn r#drop_ip_membership(
72643        &self,
72644        mut membership: &IpMulticastMembership,
72645    ) -> fidl::client::QueryResponseFut<
72646        BaseNetworkSocketDropIpMembershipResult,
72647        fidl::encoding::DefaultFuchsiaResourceDialect,
72648    > {
72649        SynchronousDatagramSocketProxyInterface::r#drop_ip_membership(self, membership)
72650    }
72651
72652    /// Set `SOL_IP` -> `IP_TRANSPARENT`
72653    pub fn r#set_ip_transparent(
72654        &self,
72655        mut value: bool,
72656    ) -> fidl::client::QueryResponseFut<
72657        BaseNetworkSocketSetIpTransparentResult,
72658        fidl::encoding::DefaultFuchsiaResourceDialect,
72659    > {
72660        SynchronousDatagramSocketProxyInterface::r#set_ip_transparent(self, value)
72661    }
72662
72663    /// Get `SOL_IP` -> `IP_TRANSPARENT`
72664    pub fn r#get_ip_transparent(
72665        &self,
72666    ) -> fidl::client::QueryResponseFut<
72667        BaseNetworkSocketGetIpTransparentResult,
72668        fidl::encoding::DefaultFuchsiaResourceDialect,
72669    > {
72670        SynchronousDatagramSocketProxyInterface::r#get_ip_transparent(self)
72671    }
72672
72673    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
72674    pub fn r#set_ip_receive_original_destination_address(
72675        &self,
72676        mut value: bool,
72677    ) -> fidl::client::QueryResponseFut<
72678        BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
72679        fidl::encoding::DefaultFuchsiaResourceDialect,
72680    > {
72681        SynchronousDatagramSocketProxyInterface::r#set_ip_receive_original_destination_address(
72682            self, value,
72683        )
72684    }
72685
72686    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
72687    pub fn r#get_ip_receive_original_destination_address(
72688        &self,
72689    ) -> fidl::client::QueryResponseFut<
72690        BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
72691        fidl::encoding::DefaultFuchsiaResourceDialect,
72692    > {
72693        SynchronousDatagramSocketProxyInterface::r#get_ip_receive_original_destination_address(self)
72694    }
72695
72696    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
72697    pub fn r#add_ipv6_membership(
72698        &self,
72699        mut membership: &Ipv6MulticastMembership,
72700    ) -> fidl::client::QueryResponseFut<
72701        BaseNetworkSocketAddIpv6MembershipResult,
72702        fidl::encoding::DefaultFuchsiaResourceDialect,
72703    > {
72704        SynchronousDatagramSocketProxyInterface::r#add_ipv6_membership(self, membership)
72705    }
72706
72707    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
72708    pub fn r#drop_ipv6_membership(
72709        &self,
72710        mut membership: &Ipv6MulticastMembership,
72711    ) -> fidl::client::QueryResponseFut<
72712        BaseNetworkSocketDropIpv6MembershipResult,
72713        fidl::encoding::DefaultFuchsiaResourceDialect,
72714    > {
72715        SynchronousDatagramSocketProxyInterface::r#drop_ipv6_membership(self, membership)
72716    }
72717
72718    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
72719    pub fn r#set_ipv6_multicast_interface(
72720        &self,
72721        mut value: u64,
72722    ) -> fidl::client::QueryResponseFut<
72723        BaseNetworkSocketSetIpv6MulticastInterfaceResult,
72724        fidl::encoding::DefaultFuchsiaResourceDialect,
72725    > {
72726        SynchronousDatagramSocketProxyInterface::r#set_ipv6_multicast_interface(self, value)
72727    }
72728
72729    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
72730    pub fn r#get_ipv6_multicast_interface(
72731        &self,
72732    ) -> fidl::client::QueryResponseFut<
72733        BaseNetworkSocketGetIpv6MulticastInterfaceResult,
72734        fidl::encoding::DefaultFuchsiaResourceDialect,
72735    > {
72736        SynchronousDatagramSocketProxyInterface::r#get_ipv6_multicast_interface(self)
72737    }
72738
72739    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
72740    pub fn r#set_ipv6_unicast_hops(
72741        &self,
72742        mut value: &OptionalUint8,
72743    ) -> fidl::client::QueryResponseFut<
72744        BaseNetworkSocketSetIpv6UnicastHopsResult,
72745        fidl::encoding::DefaultFuchsiaResourceDialect,
72746    > {
72747        SynchronousDatagramSocketProxyInterface::r#set_ipv6_unicast_hops(self, value)
72748    }
72749
72750    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
72751    pub fn r#get_ipv6_unicast_hops(
72752        &self,
72753    ) -> fidl::client::QueryResponseFut<
72754        BaseNetworkSocketGetIpv6UnicastHopsResult,
72755        fidl::encoding::DefaultFuchsiaResourceDialect,
72756    > {
72757        SynchronousDatagramSocketProxyInterface::r#get_ipv6_unicast_hops(self)
72758    }
72759
72760    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
72761    pub fn r#set_ipv6_receive_hop_limit(
72762        &self,
72763        mut value: bool,
72764    ) -> fidl::client::QueryResponseFut<
72765        BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
72766        fidl::encoding::DefaultFuchsiaResourceDialect,
72767    > {
72768        SynchronousDatagramSocketProxyInterface::r#set_ipv6_receive_hop_limit(self, value)
72769    }
72770
72771    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
72772    pub fn r#get_ipv6_receive_hop_limit(
72773        &self,
72774    ) -> fidl::client::QueryResponseFut<
72775        BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
72776        fidl::encoding::DefaultFuchsiaResourceDialect,
72777    > {
72778        SynchronousDatagramSocketProxyInterface::r#get_ipv6_receive_hop_limit(self)
72779    }
72780
72781    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
72782    pub fn r#set_ipv6_multicast_hops(
72783        &self,
72784        mut value: &OptionalUint8,
72785    ) -> fidl::client::QueryResponseFut<
72786        BaseNetworkSocketSetIpv6MulticastHopsResult,
72787        fidl::encoding::DefaultFuchsiaResourceDialect,
72788    > {
72789        SynchronousDatagramSocketProxyInterface::r#set_ipv6_multicast_hops(self, value)
72790    }
72791
72792    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
72793    pub fn r#get_ipv6_multicast_hops(
72794        &self,
72795    ) -> fidl::client::QueryResponseFut<
72796        BaseNetworkSocketGetIpv6MulticastHopsResult,
72797        fidl::encoding::DefaultFuchsiaResourceDialect,
72798    > {
72799        SynchronousDatagramSocketProxyInterface::r#get_ipv6_multicast_hops(self)
72800    }
72801
72802    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
72803    pub fn r#set_ipv6_multicast_loopback(
72804        &self,
72805        mut value: bool,
72806    ) -> fidl::client::QueryResponseFut<
72807        BaseNetworkSocketSetIpv6MulticastLoopbackResult,
72808        fidl::encoding::DefaultFuchsiaResourceDialect,
72809    > {
72810        SynchronousDatagramSocketProxyInterface::r#set_ipv6_multicast_loopback(self, value)
72811    }
72812
72813    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
72814    pub fn r#get_ipv6_multicast_loopback(
72815        &self,
72816    ) -> fidl::client::QueryResponseFut<
72817        BaseNetworkSocketGetIpv6MulticastLoopbackResult,
72818        fidl::encoding::DefaultFuchsiaResourceDialect,
72819    > {
72820        SynchronousDatagramSocketProxyInterface::r#get_ipv6_multicast_loopback(self)
72821    }
72822
72823    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
72824    pub fn r#set_ipv6_only(
72825        &self,
72826        mut value: bool,
72827    ) -> fidl::client::QueryResponseFut<
72828        BaseNetworkSocketSetIpv6OnlyResult,
72829        fidl::encoding::DefaultFuchsiaResourceDialect,
72830    > {
72831        SynchronousDatagramSocketProxyInterface::r#set_ipv6_only(self, value)
72832    }
72833
72834    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
72835    pub fn r#get_ipv6_only(
72836        &self,
72837    ) -> fidl::client::QueryResponseFut<
72838        BaseNetworkSocketGetIpv6OnlyResult,
72839        fidl::encoding::DefaultFuchsiaResourceDialect,
72840    > {
72841        SynchronousDatagramSocketProxyInterface::r#get_ipv6_only(self)
72842    }
72843
72844    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
72845    pub fn r#set_ipv6_receive_traffic_class(
72846        &self,
72847        mut value: bool,
72848    ) -> fidl::client::QueryResponseFut<
72849        BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
72850        fidl::encoding::DefaultFuchsiaResourceDialect,
72851    > {
72852        SynchronousDatagramSocketProxyInterface::r#set_ipv6_receive_traffic_class(self, value)
72853    }
72854
72855    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
72856    pub fn r#get_ipv6_receive_traffic_class(
72857        &self,
72858    ) -> fidl::client::QueryResponseFut<
72859        BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
72860        fidl::encoding::DefaultFuchsiaResourceDialect,
72861    > {
72862        SynchronousDatagramSocketProxyInterface::r#get_ipv6_receive_traffic_class(self)
72863    }
72864
72865    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
72866    pub fn r#set_ipv6_traffic_class(
72867        &self,
72868        mut value: &OptionalUint8,
72869    ) -> fidl::client::QueryResponseFut<
72870        BaseNetworkSocketSetIpv6TrafficClassResult,
72871        fidl::encoding::DefaultFuchsiaResourceDialect,
72872    > {
72873        SynchronousDatagramSocketProxyInterface::r#set_ipv6_traffic_class(self, value)
72874    }
72875
72876    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
72877    pub fn r#get_ipv6_traffic_class(
72878        &self,
72879    ) -> fidl::client::QueryResponseFut<
72880        BaseNetworkSocketGetIpv6TrafficClassResult,
72881        fidl::encoding::DefaultFuchsiaResourceDialect,
72882    > {
72883        SynchronousDatagramSocketProxyInterface::r#get_ipv6_traffic_class(self)
72884    }
72885
72886    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
72887    pub fn r#set_ipv6_receive_packet_info(
72888        &self,
72889        mut value: bool,
72890    ) -> fidl::client::QueryResponseFut<
72891        BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
72892        fidl::encoding::DefaultFuchsiaResourceDialect,
72893    > {
72894        SynchronousDatagramSocketProxyInterface::r#set_ipv6_receive_packet_info(self, value)
72895    }
72896
72897    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
72898    pub fn r#get_ipv6_receive_packet_info(
72899        &self,
72900    ) -> fidl::client::QueryResponseFut<
72901        BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
72902        fidl::encoding::DefaultFuchsiaResourceDialect,
72903    > {
72904        SynchronousDatagramSocketProxyInterface::r#get_ipv6_receive_packet_info(self)
72905    }
72906
72907    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
72908    pub fn r#get_original_destination(
72909        &self,
72910    ) -> fidl::client::QueryResponseFut<
72911        BaseNetworkSocketGetOriginalDestinationResult,
72912        fidl::encoding::DefaultFuchsiaResourceDialect,
72913    > {
72914        SynchronousDatagramSocketProxyInterface::r#get_original_destination(self)
72915    }
72916
72917    /// Retrieves creation information from the socket.
72918    ///
72919    /// - response `domain` the socket's associated domain.
72920    /// - response `proto` the socket's associated protocol.
72921    pub fn r#get_info(
72922        &self,
72923    ) -> fidl::client::QueryResponseFut<
72924        BaseDatagramSocketGetInfoResult,
72925        fidl::encoding::DefaultFuchsiaResourceDialect,
72926    > {
72927        SynchronousDatagramSocketProxyInterface::r#get_info(self)
72928    }
72929
72930    pub fn r#describe(
72931        &self,
72932    ) -> fidl::client::QueryResponseFut<
72933        SynchronousDatagramSocketDescribeResponse,
72934        fidl::encoding::DefaultFuchsiaResourceDialect,
72935    > {
72936        SynchronousDatagramSocketProxyInterface::r#describe(self)
72937    }
72938
72939    /// Receives a message from the socket.
72940    ///
72941    /// + request `want_addr` request message's source address information to
72942    ///   be returned.
72943    /// + request `data_len` the maximum allowed length of the response data
72944    ///   buffer.
72945    /// + request `want_control` request ancillary data to be returned.
72946    /// + request `flags` flags for the receive request.
72947    /// - response `addr` the message's source address information, if
72948    ///   requested.
72949    /// - response `data` the message.
72950    /// - response `control` control messages, if requested.
72951    /// - response `truncated` indicates whether or not the returned message
72952    ///   was truncated.
72953    pub fn r#recv_msg(
72954        &self,
72955        mut want_addr: bool,
72956        mut data_len: u32,
72957        mut want_control: bool,
72958        mut flags: RecvMsgFlags,
72959    ) -> fidl::client::QueryResponseFut<
72960        SynchronousDatagramSocketRecvMsgResult,
72961        fidl::encoding::DefaultFuchsiaResourceDialect,
72962    > {
72963        SynchronousDatagramSocketProxyInterface::r#recv_msg(
72964            self,
72965            want_addr,
72966            data_len,
72967            want_control,
72968            flags,
72969        )
72970    }
72971
72972    /// Sends a message on the socket.
72973    ///
72974    /// + request `addr` the address to send the message to. If unset, will send
72975    ///   to the connected peer.
72976    /// + request `data` the message.
72977    /// + request `control` ancillary data.
72978    /// + request `flags` flags for the send request.
72979    /// - response `len` the number of bytes sent.
72980    pub fn r#send_msg(
72981        &self,
72982        mut addr: Option<&fidl_fuchsia_net::SocketAddress>,
72983        mut data: &[u8],
72984        mut control: &DatagramSocketSendControlData,
72985        mut flags: SendMsgFlags,
72986    ) -> fidl::client::QueryResponseFut<
72987        SynchronousDatagramSocketSendMsgResult,
72988        fidl::encoding::DefaultFuchsiaResourceDialect,
72989    > {
72990        SynchronousDatagramSocketProxyInterface::r#send_msg(self, addr, data, control, flags)
72991    }
72992}
72993
72994impl SynchronousDatagramSocketProxyInterface for SynchronousDatagramSocketProxy {
72995    fn r#clone(
72996        &self,
72997        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
72998    ) -> Result<(), fidl::Error> {
72999        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
73000            (request,),
73001            0x20d8a7aba2168a79,
73002            fidl::encoding::DynamicFlags::empty(),
73003        )
73004    }
73005
73006    type CloseResponseFut = fidl::client::QueryResponseFut<
73007        fidl_fuchsia_unknown::CloseableCloseResult,
73008        fidl::encoding::DefaultFuchsiaResourceDialect,
73009    >;
73010    fn r#close(&self) -> Self::CloseResponseFut {
73011        fn _decode(
73012            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73013        ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
73014            let _response = fidl::client::decode_transaction_body::<
73015                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
73016                fidl::encoding::DefaultFuchsiaResourceDialect,
73017                0x5ac5d459ad7f657e,
73018            >(_buf?)?;
73019            Ok(_response.map(|x| x))
73020        }
73021        self.client.send_query_and_decode::<
73022            fidl::encoding::EmptyPayload,
73023            fidl_fuchsia_unknown::CloseableCloseResult,
73024        >(
73025            (),
73026            0x5ac5d459ad7f657e,
73027            fidl::encoding::DynamicFlags::empty(),
73028            _decode,
73029        )
73030    }
73031
73032    type QueryResponseFut =
73033        fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>;
73034    fn r#query(&self) -> Self::QueryResponseFut {
73035        fn _decode(
73036            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73037        ) -> Result<Vec<u8>, fidl::Error> {
73038            let _response = fidl::client::decode_transaction_body::<
73039                fidl_fuchsia_unknown::QueryableQueryResponse,
73040                fidl::encoding::DefaultFuchsiaResourceDialect,
73041                0x2658edee9decfc06,
73042            >(_buf?)?;
73043            Ok(_response.protocol)
73044        }
73045        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, Vec<u8>>(
73046            (),
73047            0x2658edee9decfc06,
73048            fidl::encoding::DynamicFlags::empty(),
73049            _decode,
73050        )
73051    }
73052
73053    type SetReuseAddressResponseFut = fidl::client::QueryResponseFut<
73054        BaseSocketSetReuseAddressResult,
73055        fidl::encoding::DefaultFuchsiaResourceDialect,
73056    >;
73057    fn r#set_reuse_address(&self, mut value: bool) -> Self::SetReuseAddressResponseFut {
73058        fn _decode(
73059            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73060        ) -> Result<BaseSocketSetReuseAddressResult, 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                0x1fd74ee8b9a4a876,
73065            >(_buf?)?;
73066            Ok(_response.map(|x| x))
73067        }
73068        self.client.send_query_and_decode::<
73069            BaseSocketSetReuseAddressRequest,
73070            BaseSocketSetReuseAddressResult,
73071        >(
73072            (value,),
73073            0x1fd74ee8b9a4a876,
73074            fidl::encoding::DynamicFlags::empty(),
73075            _decode,
73076        )
73077    }
73078
73079    type GetReuseAddressResponseFut = fidl::client::QueryResponseFut<
73080        BaseSocketGetReuseAddressResult,
73081        fidl::encoding::DefaultFuchsiaResourceDialect,
73082    >;
73083    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut {
73084        fn _decode(
73085            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73086        ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
73087            let _response = fidl::client::decode_transaction_body::<
73088                fidl::encoding::ResultType<
73089                    BaseSocketGetReuseAddressResponse,
73090                    fidl_fuchsia_posix::Errno,
73091                >,
73092                fidl::encoding::DefaultFuchsiaResourceDialect,
73093                0x67b7206b8d1bc0a5,
73094            >(_buf?)?;
73095            Ok(_response.map(|x| x.value))
73096        }
73097        self.client
73098            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReuseAddressResult>(
73099                (),
73100                0x67b7206b8d1bc0a5,
73101                fidl::encoding::DynamicFlags::empty(),
73102                _decode,
73103            )
73104    }
73105
73106    type GetErrorResponseFut = fidl::client::QueryResponseFut<
73107        BaseSocketGetErrorResult,
73108        fidl::encoding::DefaultFuchsiaResourceDialect,
73109    >;
73110    fn r#get_error(&self) -> Self::GetErrorResponseFut {
73111        fn _decode(
73112            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73113        ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
73114            let _response = fidl::client::decode_transaction_body::<
73115                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73116                fidl::encoding::DefaultFuchsiaResourceDialect,
73117                0x5aad39b33e5f6ebb,
73118            >(_buf?)?;
73119            Ok(_response.map(|x| x))
73120        }
73121        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetErrorResult>(
73122            (),
73123            0x5aad39b33e5f6ebb,
73124            fidl::encoding::DynamicFlags::empty(),
73125            _decode,
73126        )
73127    }
73128
73129    type SetBroadcastResponseFut = fidl::client::QueryResponseFut<
73130        BaseSocketSetBroadcastResult,
73131        fidl::encoding::DefaultFuchsiaResourceDialect,
73132    >;
73133    fn r#set_broadcast(&self, mut value: bool) -> Self::SetBroadcastResponseFut {
73134        fn _decode(
73135            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73136        ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
73137            let _response = fidl::client::decode_transaction_body::<
73138                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73139                fidl::encoding::DefaultFuchsiaResourceDialect,
73140                0x6023e081ce3cd947,
73141            >(_buf?)?;
73142            Ok(_response.map(|x| x))
73143        }
73144        self.client
73145            .send_query_and_decode::<BaseSocketSetBroadcastRequest, BaseSocketSetBroadcastResult>(
73146                (value,),
73147                0x6023e081ce3cd947,
73148                fidl::encoding::DynamicFlags::empty(),
73149                _decode,
73150            )
73151    }
73152
73153    type GetBroadcastResponseFut = fidl::client::QueryResponseFut<
73154        BaseSocketGetBroadcastResult,
73155        fidl::encoding::DefaultFuchsiaResourceDialect,
73156    >;
73157    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut {
73158        fn _decode(
73159            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73160        ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
73161            let _response = fidl::client::decode_transaction_body::<
73162                fidl::encoding::ResultType<
73163                    BaseSocketGetBroadcastResponse,
73164                    fidl_fuchsia_posix::Errno,
73165                >,
73166                fidl::encoding::DefaultFuchsiaResourceDialect,
73167                0x68796fc556f9780d,
73168            >(_buf?)?;
73169            Ok(_response.map(|x| x.value))
73170        }
73171        self.client
73172            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBroadcastResult>(
73173                (),
73174                0x68796fc556f9780d,
73175                fidl::encoding::DynamicFlags::empty(),
73176                _decode,
73177            )
73178    }
73179
73180    type SetSendBufferResponseFut = fidl::client::QueryResponseFut<
73181        BaseSocketSetSendBufferResult,
73182        fidl::encoding::DefaultFuchsiaResourceDialect,
73183    >;
73184    fn r#set_send_buffer(&self, mut value_bytes: u64) -> Self::SetSendBufferResponseFut {
73185        fn _decode(
73186            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73187        ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
73188            let _response = fidl::client::decode_transaction_body::<
73189                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73190                fidl::encoding::DefaultFuchsiaResourceDialect,
73191                0x756eac32d73a7a70,
73192            >(_buf?)?;
73193            Ok(_response.map(|x| x))
73194        }
73195        self.client
73196            .send_query_and_decode::<BaseSocketSetSendBufferRequest, BaseSocketSetSendBufferResult>(
73197                (value_bytes,),
73198                0x756eac32d73a7a70,
73199                fidl::encoding::DynamicFlags::empty(),
73200                _decode,
73201            )
73202    }
73203
73204    type GetSendBufferResponseFut = fidl::client::QueryResponseFut<
73205        BaseSocketGetSendBufferResult,
73206        fidl::encoding::DefaultFuchsiaResourceDialect,
73207    >;
73208    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut {
73209        fn _decode(
73210            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73211        ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
73212            let _response = fidl::client::decode_transaction_body::<
73213                fidl::encoding::ResultType<
73214                    BaseSocketGetSendBufferResponse,
73215                    fidl_fuchsia_posix::Errno,
73216                >,
73217                fidl::encoding::DefaultFuchsiaResourceDialect,
73218                0x78a52fd9c7b2410b,
73219            >(_buf?)?;
73220            Ok(_response.map(|x| x.value_bytes))
73221        }
73222        self.client
73223            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetSendBufferResult>(
73224                (),
73225                0x78a52fd9c7b2410b,
73226                fidl::encoding::DynamicFlags::empty(),
73227                _decode,
73228            )
73229    }
73230
73231    type SetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
73232        BaseSocketSetReceiveBufferResult,
73233        fidl::encoding::DefaultFuchsiaResourceDialect,
73234    >;
73235    fn r#set_receive_buffer(&self, mut value_bytes: u64) -> Self::SetReceiveBufferResponseFut {
73236        fn _decode(
73237            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73238        ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
73239            let _response = fidl::client::decode_transaction_body::<
73240                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73241                fidl::encoding::DefaultFuchsiaResourceDialect,
73242                0x6b0cf2f1919c7001,
73243            >(_buf?)?;
73244            Ok(_response.map(|x| x))
73245        }
73246        self.client.send_query_and_decode::<
73247            BaseSocketSetReceiveBufferRequest,
73248            BaseSocketSetReceiveBufferResult,
73249        >(
73250            (value_bytes,),
73251            0x6b0cf2f1919c7001,
73252            fidl::encoding::DynamicFlags::empty(),
73253            _decode,
73254        )
73255    }
73256
73257    type GetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
73258        BaseSocketGetReceiveBufferResult,
73259        fidl::encoding::DefaultFuchsiaResourceDialect,
73260    >;
73261    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut {
73262        fn _decode(
73263            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73264        ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
73265            let _response = fidl::client::decode_transaction_body::<
73266                fidl::encoding::ResultType<
73267                    BaseSocketGetReceiveBufferResponse,
73268                    fidl_fuchsia_posix::Errno,
73269                >,
73270                fidl::encoding::DefaultFuchsiaResourceDialect,
73271                0x14c1a4b64f709e5c,
73272            >(_buf?)?;
73273            Ok(_response.map(|x| x.value_bytes))
73274        }
73275        self.client.send_query_and_decode::<
73276            fidl::encoding::EmptyPayload,
73277            BaseSocketGetReceiveBufferResult,
73278        >(
73279            (),
73280            0x14c1a4b64f709e5c,
73281            fidl::encoding::DynamicFlags::empty(),
73282            _decode,
73283        )
73284    }
73285
73286    type SetKeepAliveResponseFut = fidl::client::QueryResponseFut<
73287        BaseSocketSetKeepAliveResult,
73288        fidl::encoding::DefaultFuchsiaResourceDialect,
73289    >;
73290    fn r#set_keep_alive(&self, mut value: bool) -> Self::SetKeepAliveResponseFut {
73291        fn _decode(
73292            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73293        ) -> Result<BaseSocketSetKeepAliveResult, 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                0x572df8f0b920d2c7,
73298            >(_buf?)?;
73299            Ok(_response.map(|x| x))
73300        }
73301        self.client
73302            .send_query_and_decode::<BaseSocketSetKeepAliveRequest, BaseSocketSetKeepAliveResult>(
73303                (value,),
73304                0x572df8f0b920d2c7,
73305                fidl::encoding::DynamicFlags::empty(),
73306                _decode,
73307            )
73308    }
73309
73310    type GetKeepAliveResponseFut = fidl::client::QueryResponseFut<
73311        BaseSocketGetKeepAliveResult,
73312        fidl::encoding::DefaultFuchsiaResourceDialect,
73313    >;
73314    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut {
73315        fn _decode(
73316            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73317        ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
73318            let _response = fidl::client::decode_transaction_body::<
73319                fidl::encoding::ResultType<
73320                    BaseSocketGetKeepAliveResponse,
73321                    fidl_fuchsia_posix::Errno,
73322                >,
73323                fidl::encoding::DefaultFuchsiaResourceDialect,
73324                0x2dd29d3215f2c9d2,
73325            >(_buf?)?;
73326            Ok(_response.map(|x| x.value))
73327        }
73328        self.client
73329            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetKeepAliveResult>(
73330                (),
73331                0x2dd29d3215f2c9d2,
73332                fidl::encoding::DynamicFlags::empty(),
73333                _decode,
73334            )
73335    }
73336
73337    type SetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
73338        BaseSocketSetOutOfBandInlineResult,
73339        fidl::encoding::DefaultFuchsiaResourceDialect,
73340    >;
73341    fn r#set_out_of_band_inline(&self, mut value: bool) -> Self::SetOutOfBandInlineResponseFut {
73342        fn _decode(
73343            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73344        ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
73345            let _response = fidl::client::decode_transaction_body::<
73346                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73347                fidl::encoding::DefaultFuchsiaResourceDialect,
73348                0x3ecb49968bee439,
73349            >(_buf?)?;
73350            Ok(_response.map(|x| x))
73351        }
73352        self.client.send_query_and_decode::<
73353            BaseSocketSetOutOfBandInlineRequest,
73354            BaseSocketSetOutOfBandInlineResult,
73355        >(
73356            (value,),
73357            0x3ecb49968bee439,
73358            fidl::encoding::DynamicFlags::empty(),
73359            _decode,
73360        )
73361    }
73362
73363    type GetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
73364        BaseSocketGetOutOfBandInlineResult,
73365        fidl::encoding::DefaultFuchsiaResourceDialect,
73366    >;
73367    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut {
73368        fn _decode(
73369            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73370        ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
73371            let _response = fidl::client::decode_transaction_body::<
73372                fidl::encoding::ResultType<
73373                    BaseSocketGetOutOfBandInlineResponse,
73374                    fidl_fuchsia_posix::Errno,
73375                >,
73376                fidl::encoding::DefaultFuchsiaResourceDialect,
73377                0x348c1ab3aeca1745,
73378            >(_buf?)?;
73379            Ok(_response.map(|x| x.value))
73380        }
73381        self.client.send_query_and_decode::<
73382            fidl::encoding::EmptyPayload,
73383            BaseSocketGetOutOfBandInlineResult,
73384        >(
73385            (),
73386            0x348c1ab3aeca1745,
73387            fidl::encoding::DynamicFlags::empty(),
73388            _decode,
73389        )
73390    }
73391
73392    type SetNoCheckResponseFut = fidl::client::QueryResponseFut<
73393        BaseSocketSetNoCheckResult,
73394        fidl::encoding::DefaultFuchsiaResourceDialect,
73395    >;
73396    fn r#set_no_check(&self, mut value: bool) -> Self::SetNoCheckResponseFut {
73397        fn _decode(
73398            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73399        ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
73400            let _response = fidl::client::decode_transaction_body::<
73401                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73402                fidl::encoding::DefaultFuchsiaResourceDialect,
73403                0x6bbf00c53a4c78c2,
73404            >(_buf?)?;
73405            Ok(_response.map(|x| x))
73406        }
73407        self.client
73408            .send_query_and_decode::<BaseSocketSetNoCheckRequest, BaseSocketSetNoCheckResult>(
73409                (value,),
73410                0x6bbf00c53a4c78c2,
73411                fidl::encoding::DynamicFlags::empty(),
73412                _decode,
73413            )
73414    }
73415
73416    type GetNoCheckResponseFut = fidl::client::QueryResponseFut<
73417        BaseSocketGetNoCheckResult,
73418        fidl::encoding::DefaultFuchsiaResourceDialect,
73419    >;
73420    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut {
73421        fn _decode(
73422            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73423        ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
73424            let _response = fidl::client::decode_transaction_body::<
73425                fidl::encoding::ResultType<BaseSocketGetNoCheckResponse, fidl_fuchsia_posix::Errno>,
73426                fidl::encoding::DefaultFuchsiaResourceDialect,
73427                0x2cd4249286417694,
73428            >(_buf?)?;
73429            Ok(_response.map(|x| x.value))
73430        }
73431        self.client
73432            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetNoCheckResult>(
73433                (),
73434                0x2cd4249286417694,
73435                fidl::encoding::DynamicFlags::empty(),
73436                _decode,
73437            )
73438    }
73439
73440    type SetLingerResponseFut = fidl::client::QueryResponseFut<
73441        BaseSocketSetLingerResult,
73442        fidl::encoding::DefaultFuchsiaResourceDialect,
73443    >;
73444    fn r#set_linger(&self, mut linger: bool, mut length_secs: u32) -> Self::SetLingerResponseFut {
73445        fn _decode(
73446            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73447        ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
73448            let _response = fidl::client::decode_transaction_body::<
73449                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73450                fidl::encoding::DefaultFuchsiaResourceDialect,
73451                0x45386351246e998e,
73452            >(_buf?)?;
73453            Ok(_response.map(|x| x))
73454        }
73455        self.client.send_query_and_decode::<BaseSocketSetLingerRequest, BaseSocketSetLingerResult>(
73456            (linger, length_secs),
73457            0x45386351246e998e,
73458            fidl::encoding::DynamicFlags::empty(),
73459            _decode,
73460        )
73461    }
73462
73463    type GetLingerResponseFut = fidl::client::QueryResponseFut<
73464        BaseSocketGetLingerResult,
73465        fidl::encoding::DefaultFuchsiaResourceDialect,
73466    >;
73467    fn r#get_linger(&self) -> Self::GetLingerResponseFut {
73468        fn _decode(
73469            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73470        ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
73471            let _response = fidl::client::decode_transaction_body::<
73472                fidl::encoding::ResultType<BaseSocketGetLingerResponse, fidl_fuchsia_posix::Errno>,
73473                fidl::encoding::DefaultFuchsiaResourceDialect,
73474                0x48eb20fc5ccb0e45,
73475            >(_buf?)?;
73476            Ok(_response.map(|x| (x.linger, x.length_secs)))
73477        }
73478        self.client
73479            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetLingerResult>(
73480                (),
73481                0x48eb20fc5ccb0e45,
73482                fidl::encoding::DynamicFlags::empty(),
73483                _decode,
73484            )
73485    }
73486
73487    type SetReusePortResponseFut = fidl::client::QueryResponseFut<
73488        BaseSocketSetReusePortResult,
73489        fidl::encoding::DefaultFuchsiaResourceDialect,
73490    >;
73491    fn r#set_reuse_port(&self, mut value: ReusePortOption) -> Self::SetReusePortResponseFut {
73492        fn _decode(
73493            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73494        ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
73495            let _response = fidl::client::decode_transaction_body::<
73496                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73497                fidl::encoding::DefaultFuchsiaResourceDialect,
73498                0x547dc9cc0455189e,
73499            >(_buf?)?;
73500            Ok(_response.map(|x| x))
73501        }
73502        self.client
73503            .send_query_and_decode::<BaseSocketSetReusePortRequest, BaseSocketSetReusePortResult>(
73504                (&mut value,),
73505                0x547dc9cc0455189e,
73506                fidl::encoding::DynamicFlags::empty(),
73507                _decode,
73508            )
73509    }
73510
73511    type SetReusePortDeprecatedResponseFut = fidl::client::QueryResponseFut<
73512        BaseSocketSetReusePortDeprecatedResult,
73513        fidl::encoding::DefaultFuchsiaResourceDialect,
73514    >;
73515    fn r#set_reuse_port_deprecated(
73516        &self,
73517        mut value: bool,
73518    ) -> Self::SetReusePortDeprecatedResponseFut {
73519        fn _decode(
73520            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73521        ) -> Result<BaseSocketSetReusePortDeprecatedResult, fidl::Error> {
73522            let _response = fidl::client::decode_transaction_body::<
73523                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73524                fidl::encoding::DefaultFuchsiaResourceDialect,
73525                0x24dd3e5cb36d9ccb,
73526            >(_buf?)?;
73527            Ok(_response.map(|x| x))
73528        }
73529        self.client.send_query_and_decode::<
73530            BaseSocketSetReusePortDeprecatedRequest,
73531            BaseSocketSetReusePortDeprecatedResult,
73532        >(
73533            (value,),
73534            0x24dd3e5cb36d9ccb,
73535            fidl::encoding::DynamicFlags::empty(),
73536            _decode,
73537        )
73538    }
73539
73540    type GetReusePortResponseFut = fidl::client::QueryResponseFut<
73541        BaseSocketGetReusePortResult,
73542        fidl::encoding::DefaultFuchsiaResourceDialect,
73543    >;
73544    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut {
73545        fn _decode(
73546            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73547        ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
73548            let _response = fidl::client::decode_transaction_body::<
73549                fidl::encoding::ResultType<
73550                    BaseSocketGetReusePortResponse,
73551                    fidl_fuchsia_posix::Errno,
73552                >,
73553                fidl::encoding::DefaultFuchsiaResourceDialect,
73554                0x7a112c1ab54ff828,
73555            >(_buf?)?;
73556            Ok(_response.map(|x| x.value))
73557        }
73558        self.client
73559            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReusePortResult>(
73560                (),
73561                0x7a112c1ab54ff828,
73562                fidl::encoding::DynamicFlags::empty(),
73563                _decode,
73564            )
73565    }
73566
73567    type GetAcceptConnResponseFut = fidl::client::QueryResponseFut<
73568        BaseSocketGetAcceptConnResult,
73569        fidl::encoding::DefaultFuchsiaResourceDialect,
73570    >;
73571    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut {
73572        fn _decode(
73573            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73574        ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
73575            let _response = fidl::client::decode_transaction_body::<
73576                fidl::encoding::ResultType<
73577                    BaseSocketGetAcceptConnResponse,
73578                    fidl_fuchsia_posix::Errno,
73579                >,
73580                fidl::encoding::DefaultFuchsiaResourceDialect,
73581                0x67ce6db6c2ec8966,
73582            >(_buf?)?;
73583            Ok(_response.map(|x| x.value))
73584        }
73585        self.client
73586            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetAcceptConnResult>(
73587                (),
73588                0x67ce6db6c2ec8966,
73589                fidl::encoding::DynamicFlags::empty(),
73590                _decode,
73591            )
73592    }
73593
73594    type SetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
73595        BaseSocketSetBindToDeviceResult,
73596        fidl::encoding::DefaultFuchsiaResourceDialect,
73597    >;
73598    fn r#set_bind_to_device(&self, mut value: &str) -> Self::SetBindToDeviceResponseFut {
73599        fn _decode(
73600            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73601        ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
73602            let _response = fidl::client::decode_transaction_body::<
73603                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73604                fidl::encoding::DefaultFuchsiaResourceDialect,
73605                0x2118b483f28aafc4,
73606            >(_buf?)?;
73607            Ok(_response.map(|x| x))
73608        }
73609        self.client.send_query_and_decode::<
73610            BaseSocketSetBindToDeviceRequest,
73611            BaseSocketSetBindToDeviceResult,
73612        >(
73613            (value,),
73614            0x2118b483f28aafc4,
73615            fidl::encoding::DynamicFlags::empty(),
73616            _decode,
73617        )
73618    }
73619
73620    type GetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
73621        BaseSocketGetBindToDeviceResult,
73622        fidl::encoding::DefaultFuchsiaResourceDialect,
73623    >;
73624    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut {
73625        fn _decode(
73626            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73627        ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
73628            let _response = fidl::client::decode_transaction_body::<
73629                fidl::encoding::ResultType<
73630                    BaseSocketGetBindToDeviceResponse,
73631                    fidl_fuchsia_posix::Errno,
73632                >,
73633                fidl::encoding::DefaultFuchsiaResourceDialect,
73634                0x1ab1fbf0ef7906c8,
73635            >(_buf?)?;
73636            Ok(_response.map(|x| x.value))
73637        }
73638        self.client
73639            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBindToDeviceResult>(
73640                (),
73641                0x1ab1fbf0ef7906c8,
73642                fidl::encoding::DynamicFlags::empty(),
73643                _decode,
73644            )
73645    }
73646
73647    type SetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
73648        BaseSocketSetBindToInterfaceIndexResult,
73649        fidl::encoding::DefaultFuchsiaResourceDialect,
73650    >;
73651    fn r#set_bind_to_interface_index(
73652        &self,
73653        mut value: u64,
73654    ) -> Self::SetBindToInterfaceIndexResponseFut {
73655        fn _decode(
73656            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73657        ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
73658            let _response = fidl::client::decode_transaction_body::<
73659                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73660                fidl::encoding::DefaultFuchsiaResourceDialect,
73661                0x6e387a0def00821,
73662            >(_buf?)?;
73663            Ok(_response.map(|x| x))
73664        }
73665        self.client.send_query_and_decode::<
73666            BaseSocketSetBindToInterfaceIndexRequest,
73667            BaseSocketSetBindToInterfaceIndexResult,
73668        >(
73669            (value,),
73670            0x6e387a0def00821,
73671            fidl::encoding::DynamicFlags::empty(),
73672            _decode,
73673        )
73674    }
73675
73676    type GetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
73677        BaseSocketGetBindToInterfaceIndexResult,
73678        fidl::encoding::DefaultFuchsiaResourceDialect,
73679    >;
73680    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut {
73681        fn _decode(
73682            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73683        ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
73684            let _response = fidl::client::decode_transaction_body::<
73685                fidl::encoding::ResultType<
73686                    BaseSocketGetBindToInterfaceIndexResponse,
73687                    fidl_fuchsia_posix::Errno,
73688                >,
73689                fidl::encoding::DefaultFuchsiaResourceDialect,
73690                0x59c31dd3e3078295,
73691            >(_buf?)?;
73692            Ok(_response.map(|x| x.value))
73693        }
73694        self.client.send_query_and_decode::<
73695            fidl::encoding::EmptyPayload,
73696            BaseSocketGetBindToInterfaceIndexResult,
73697        >(
73698            (),
73699            0x59c31dd3e3078295,
73700            fidl::encoding::DynamicFlags::empty(),
73701            _decode,
73702        )
73703    }
73704
73705    type SetTimestampResponseFut = fidl::client::QueryResponseFut<
73706        BaseSocketSetTimestampResult,
73707        fidl::encoding::DefaultFuchsiaResourceDialect,
73708    >;
73709    fn r#set_timestamp(&self, mut value: TimestampOption) -> Self::SetTimestampResponseFut {
73710        fn _decode(
73711            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73712        ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
73713            let _response = fidl::client::decode_transaction_body::<
73714                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73715                fidl::encoding::DefaultFuchsiaResourceDialect,
73716                0x285d6516c263d839,
73717            >(_buf?)?;
73718            Ok(_response.map(|x| x))
73719        }
73720        self.client
73721            .send_query_and_decode::<BaseSocketSetTimestampRequest, BaseSocketSetTimestampResult>(
73722                (value,),
73723                0x285d6516c263d839,
73724                fidl::encoding::DynamicFlags::empty(),
73725                _decode,
73726            )
73727    }
73728
73729    type GetTimestampResponseFut = fidl::client::QueryResponseFut<
73730        BaseSocketGetTimestampResult,
73731        fidl::encoding::DefaultFuchsiaResourceDialect,
73732    >;
73733    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut {
73734        fn _decode(
73735            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73736        ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
73737            let _response = fidl::client::decode_transaction_body::<
73738                fidl::encoding::ResultType<
73739                    BaseSocketGetTimestampResponse,
73740                    fidl_fuchsia_posix::Errno,
73741                >,
73742                fidl::encoding::DefaultFuchsiaResourceDialect,
73743                0x49f2fffbbcc2bd27,
73744            >(_buf?)?;
73745            Ok(_response.map(|x| x.value))
73746        }
73747        self.client
73748            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetTimestampResult>(
73749                (),
73750                0x49f2fffbbcc2bd27,
73751                fidl::encoding::DynamicFlags::empty(),
73752                _decode,
73753            )
73754    }
73755
73756    type SetMarkResponseFut = fidl::client::QueryResponseFut<
73757        BaseSocketSetMarkResult,
73758        fidl::encoding::DefaultFuchsiaResourceDialect,
73759    >;
73760    fn r#set_mark(
73761        &self,
73762        mut domain: fidl_fuchsia_net::MarkDomain,
73763        mut mark: &OptionalUint32,
73764    ) -> Self::SetMarkResponseFut {
73765        fn _decode(
73766            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73767        ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
73768            let _response = fidl::client::decode_transaction_body::<
73769                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73770                fidl::encoding::DefaultFuchsiaResourceDialect,
73771                0x6ead6de09f653236,
73772            >(_buf?)?;
73773            Ok(_response.map(|x| x))
73774        }
73775        self.client.send_query_and_decode::<BaseSocketSetMarkRequest, BaseSocketSetMarkResult>(
73776            (domain, mark),
73777            0x6ead6de09f653236,
73778            fidl::encoding::DynamicFlags::empty(),
73779            _decode,
73780        )
73781    }
73782
73783    type GetMarkResponseFut = fidl::client::QueryResponseFut<
73784        BaseSocketGetMarkResult,
73785        fidl::encoding::DefaultFuchsiaResourceDialect,
73786    >;
73787    fn r#get_mark(&self, mut domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut {
73788        fn _decode(
73789            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73790        ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
73791            let _response = fidl::client::decode_transaction_body::<
73792                fidl::encoding::ResultType<BaseSocketGetMarkResponse, fidl_fuchsia_posix::Errno>,
73793                fidl::encoding::DefaultFuchsiaResourceDialect,
73794                0x57a2752c61d93d47,
73795            >(_buf?)?;
73796            Ok(_response.map(|x| x.mark))
73797        }
73798        self.client.send_query_and_decode::<BaseSocketGetMarkRequest, BaseSocketGetMarkResult>(
73799            (domain,),
73800            0x57a2752c61d93d47,
73801            fidl::encoding::DynamicFlags::empty(),
73802            _decode,
73803        )
73804    }
73805
73806    type GetCookieResponseFut = fidl::client::QueryResponseFut<
73807        BaseSocketGetCookieResult,
73808        fidl::encoding::DefaultFuchsiaResourceDialect,
73809    >;
73810    fn r#get_cookie(&self) -> Self::GetCookieResponseFut {
73811        fn _decode(
73812            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73813        ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
73814            let _response = fidl::client::decode_transaction_body::<
73815                fidl::encoding::ResultType<BaseSocketGetCookieResponse, fidl_fuchsia_posix::Errno>,
73816                fidl::encoding::DefaultFuchsiaResourceDialect,
73817                0x2c2f47fd8f924e52,
73818            >(_buf?)?;
73819            Ok(_response.map(|x| x.value))
73820        }
73821        self.client
73822            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetCookieResult>(
73823                (),
73824                0x2c2f47fd8f924e52,
73825                fidl::encoding::DynamicFlags::empty(),
73826                _decode,
73827            )
73828    }
73829
73830    type BindResponseFut = fidl::client::QueryResponseFut<
73831        BaseNetworkSocketBindResult,
73832        fidl::encoding::DefaultFuchsiaResourceDialect,
73833    >;
73834    fn r#bind(&self, mut addr: &fidl_fuchsia_net::SocketAddress) -> Self::BindResponseFut {
73835        fn _decode(
73836            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73837        ) -> Result<BaseNetworkSocketBindResult, fidl::Error> {
73838            let _response = fidl::client::decode_transaction_body::<
73839                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73840                fidl::encoding::DefaultFuchsiaResourceDialect,
73841                0x4bc6400ae92125d,
73842            >(_buf?)?;
73843            Ok(_response.map(|x| x))
73844        }
73845        self.client
73846            .send_query_and_decode::<BaseNetworkSocketBindRequest, BaseNetworkSocketBindResult>(
73847                (addr,),
73848                0x4bc6400ae92125d,
73849                fidl::encoding::DynamicFlags::empty(),
73850                _decode,
73851            )
73852    }
73853
73854    type ConnectResponseFut = fidl::client::QueryResponseFut<
73855        BaseNetworkSocketConnectResult,
73856        fidl::encoding::DefaultFuchsiaResourceDialect,
73857    >;
73858    fn r#connect(&self, mut addr: &fidl_fuchsia_net::SocketAddress) -> Self::ConnectResponseFut {
73859        fn _decode(
73860            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73861        ) -> Result<BaseNetworkSocketConnectResult, fidl::Error> {
73862            let _response = fidl::client::decode_transaction_body::<
73863                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73864                fidl::encoding::DefaultFuchsiaResourceDialect,
73865                0x5f05f19bfdd38871,
73866            >(_buf?)?;
73867            Ok(_response.map(|x| x))
73868        }
73869        self.client.send_query_and_decode::<
73870            BaseNetworkSocketConnectRequest,
73871            BaseNetworkSocketConnectResult,
73872        >(
73873            (addr,),
73874            0x5f05f19bfdd38871,
73875            fidl::encoding::DynamicFlags::empty(),
73876            _decode,
73877        )
73878    }
73879
73880    type DisconnectResponseFut = fidl::client::QueryResponseFut<
73881        BaseNetworkSocketDisconnectResult,
73882        fidl::encoding::DefaultFuchsiaResourceDialect,
73883    >;
73884    fn r#disconnect(&self) -> Self::DisconnectResponseFut {
73885        fn _decode(
73886            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73887        ) -> Result<BaseNetworkSocketDisconnectResult, fidl::Error> {
73888            let _response = fidl::client::decode_transaction_body::<
73889                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73890                fidl::encoding::DefaultFuchsiaResourceDialect,
73891                0x74e63b91f7b29b2,
73892            >(_buf?)?;
73893            Ok(_response.map(|x| x))
73894        }
73895        self.client.send_query_and_decode::<
73896            fidl::encoding::EmptyPayload,
73897            BaseNetworkSocketDisconnectResult,
73898        >(
73899            (),
73900            0x74e63b91f7b29b2,
73901            fidl::encoding::DynamicFlags::empty(),
73902            _decode,
73903        )
73904    }
73905
73906    type GetSockNameResponseFut = fidl::client::QueryResponseFut<
73907        BaseNetworkSocketGetSockNameResult,
73908        fidl::encoding::DefaultFuchsiaResourceDialect,
73909    >;
73910    fn r#get_sock_name(&self) -> Self::GetSockNameResponseFut {
73911        fn _decode(
73912            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73913        ) -> Result<BaseNetworkSocketGetSockNameResult, fidl::Error> {
73914            let _response = fidl::client::decode_transaction_body::<
73915                fidl::encoding::ResultType<
73916                    BaseNetworkSocketGetSockNameResponse,
73917                    fidl_fuchsia_posix::Errno,
73918                >,
73919                fidl::encoding::DefaultFuchsiaResourceDialect,
73920                0x475f23f84a1a4f85,
73921            >(_buf?)?;
73922            Ok(_response.map(|x| x.addr))
73923        }
73924        self.client.send_query_and_decode::<
73925            fidl::encoding::EmptyPayload,
73926            BaseNetworkSocketGetSockNameResult,
73927        >(
73928            (),
73929            0x475f23f84a1a4f85,
73930            fidl::encoding::DynamicFlags::empty(),
73931            _decode,
73932        )
73933    }
73934
73935    type GetPeerNameResponseFut = fidl::client::QueryResponseFut<
73936        BaseNetworkSocketGetPeerNameResult,
73937        fidl::encoding::DefaultFuchsiaResourceDialect,
73938    >;
73939    fn r#get_peer_name(&self) -> Self::GetPeerNameResponseFut {
73940        fn _decode(
73941            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73942        ) -> Result<BaseNetworkSocketGetPeerNameResult, fidl::Error> {
73943            let _response = fidl::client::decode_transaction_body::<
73944                fidl::encoding::ResultType<
73945                    BaseNetworkSocketGetPeerNameResponse,
73946                    fidl_fuchsia_posix::Errno,
73947                >,
73948                fidl::encoding::DefaultFuchsiaResourceDialect,
73949                0x1ffecf4bd5b6432e,
73950            >(_buf?)?;
73951            Ok(_response.map(|x| x.addr))
73952        }
73953        self.client.send_query_and_decode::<
73954            fidl::encoding::EmptyPayload,
73955            BaseNetworkSocketGetPeerNameResult,
73956        >(
73957            (),
73958            0x1ffecf4bd5b6432e,
73959            fidl::encoding::DynamicFlags::empty(),
73960            _decode,
73961        )
73962    }
73963
73964    type ShutdownResponseFut = fidl::client::QueryResponseFut<
73965        BaseNetworkSocketShutdownResult,
73966        fidl::encoding::DefaultFuchsiaResourceDialect,
73967    >;
73968    fn r#shutdown(&self, mut mode: ShutdownMode) -> Self::ShutdownResponseFut {
73969        fn _decode(
73970            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73971        ) -> Result<BaseNetworkSocketShutdownResult, fidl::Error> {
73972            let _response = fidl::client::decode_transaction_body::<
73973                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73974                fidl::encoding::DefaultFuchsiaResourceDialect,
73975                0x247f38b6db68c336,
73976            >(_buf?)?;
73977            Ok(_response.map(|x| x))
73978        }
73979        self.client.send_query_and_decode::<
73980            BaseNetworkSocketShutdownRequest,
73981            BaseNetworkSocketShutdownResult,
73982        >(
73983            (mode,),
73984            0x247f38b6db68c336,
73985            fidl::encoding::DynamicFlags::empty(),
73986            _decode,
73987        )
73988    }
73989
73990    type SetIpTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
73991        BaseNetworkSocketSetIpTypeOfServiceResult,
73992        fidl::encoding::DefaultFuchsiaResourceDialect,
73993    >;
73994    fn r#set_ip_type_of_service(&self, mut value: u8) -> Self::SetIpTypeOfServiceResponseFut {
73995        fn _decode(
73996            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73997        ) -> Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error> {
73998            let _response = fidl::client::decode_transaction_body::<
73999                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
74000                fidl::encoding::DefaultFuchsiaResourceDialect,
74001                0x995c600475b6d46,
74002            >(_buf?)?;
74003            Ok(_response.map(|x| x))
74004        }
74005        self.client.send_query_and_decode::<
74006            BaseNetworkSocketSetIpTypeOfServiceRequest,
74007            BaseNetworkSocketSetIpTypeOfServiceResult,
74008        >(
74009            (value,),
74010            0x995c600475b6d46,
74011            fidl::encoding::DynamicFlags::empty(),
74012            _decode,
74013        )
74014    }
74015
74016    type GetIpTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
74017        BaseNetworkSocketGetIpTypeOfServiceResult,
74018        fidl::encoding::DefaultFuchsiaResourceDialect,
74019    >;
74020    fn r#get_ip_type_of_service(&self) -> Self::GetIpTypeOfServiceResponseFut {
74021        fn _decode(
74022            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
74023        ) -> Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error> {
74024            let _response = fidl::client::decode_transaction_body::<
74025                fidl::encoding::ResultType<
74026                    BaseNetworkSocketGetIpTypeOfServiceResponse,
74027                    fidl_fuchsia_posix::Errno,
74028                >,
74029                fidl::encoding::DefaultFuchsiaResourceDialect,
74030                0x3814a04259f75fcb,
74031            >(_buf?)?;
74032            Ok(_response.map(|x| x.value))
74033        }
74034        self.client.send_query_and_decode::<
74035            fidl::encoding::EmptyPayload,
74036            BaseNetworkSocketGetIpTypeOfServiceResult,
74037        >(
74038            (),
74039            0x3814a04259f75fcb,
74040            fidl::encoding::DynamicFlags::empty(),
74041            _decode,
74042        )
74043    }
74044
74045    type SetIpTtlResponseFut = fidl::client::QueryResponseFut<
74046        BaseNetworkSocketSetIpTtlResult,
74047        fidl::encoding::DefaultFuchsiaResourceDialect,
74048    >;
74049    fn r#set_ip_ttl(&self, mut value: &OptionalUint8) -> Self::SetIpTtlResponseFut {
74050        fn _decode(
74051            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
74052        ) -> Result<BaseNetworkSocketSetIpTtlResult, fidl::Error> {
74053            let _response = fidl::client::decode_transaction_body::<
74054                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
74055                fidl::encoding::DefaultFuchsiaResourceDialect,
74056                0x29e2424b433ae1ef,
74057            >(_buf?)?;
74058            Ok(_response.map(|x| x))
74059        }
74060        self.client.send_query_and_decode::<
74061            BaseNetworkSocketSetIpTtlRequest,
74062            BaseNetworkSocketSetIpTtlResult,
74063        >(
74064            (value,),
74065            0x29e2424b433ae1ef,
74066            fidl::encoding::DynamicFlags::empty(),
74067            _decode,
74068        )
74069    }
74070
74071    type GetIpTtlResponseFut = fidl::client::QueryResponseFut<
74072        BaseNetworkSocketGetIpTtlResult,
74073        fidl::encoding::DefaultFuchsiaResourceDialect,
74074    >;
74075    fn r#get_ip_ttl(&self) -> Self::GetIpTtlResponseFut {
74076        fn _decode(
74077            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
74078        ) -> Result<BaseNetworkSocketGetIpTtlResult, fidl::Error> {
74079            let _response = fidl::client::decode_transaction_body::<
74080                fidl::encoding::ResultType<
74081                    BaseNetworkSocketGetIpTtlResponse,
74082                    fidl_fuchsia_posix::Errno,
74083                >,
74084                fidl::encoding::DefaultFuchsiaResourceDialect,
74085                0x47e47fa1f24da471,
74086            >(_buf?)?;
74087            Ok(_response.map(|x| x.value))
74088        }
74089        self.client
74090            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseNetworkSocketGetIpTtlResult>(
74091                (),
74092                0x47e47fa1f24da471,
74093                fidl::encoding::DynamicFlags::empty(),
74094                _decode,
74095            )
74096    }
74097
74098    type SetIpPacketInfoResponseFut = fidl::client::QueryResponseFut<
74099        BaseNetworkSocketSetIpPacketInfoResult,
74100        fidl::encoding::DefaultFuchsiaResourceDialect,
74101    >;
74102    fn r#set_ip_packet_info(&self, mut value: bool) -> Self::SetIpPacketInfoResponseFut {
74103        fn _decode(
74104            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
74105        ) -> Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error> {
74106            let _response = fidl::client::decode_transaction_body::<
74107                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
74108                fidl::encoding::DefaultFuchsiaResourceDialect,
74109                0x392d16bee20c0e16,
74110            >(_buf?)?;
74111            Ok(_response.map(|x| x))
74112        }
74113        self.client.send_query_and_decode::<
74114            BaseNetworkSocketSetIpPacketInfoRequest,
74115            BaseNetworkSocketSetIpPacketInfoResult,
74116        >(
74117            (value,),
74118            0x392d16bee20c0e16,
74119            fidl::encoding::DynamicFlags::empty(),
74120            _decode,
74121        )
74122    }
74123
74124    type GetIpPacketInfoResponseFut = fidl::client::QueryResponseFut<
74125        BaseNetworkSocketGetIpPacketInfoResult,
74126        fidl::encoding::DefaultFuchsiaResourceDialect,
74127    >;
74128    fn r#get_ip_packet_info(&self) -> Self::GetIpPacketInfoResponseFut {
74129        fn _decode(
74130            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
74131        ) -> Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error> {
74132            let _response = fidl::client::decode_transaction_body::<
74133                fidl::encoding::ResultType<
74134                    BaseNetworkSocketGetIpPacketInfoResponse,
74135                    fidl_fuchsia_posix::Errno,
74136                >,
74137                fidl::encoding::DefaultFuchsiaResourceDialect,
74138                0x54b505f242280740,
74139            >(_buf?)?;
74140            Ok(_response.map(|x| x.value))
74141        }
74142        self.client.send_query_and_decode::<
74143            fidl::encoding::EmptyPayload,
74144            BaseNetworkSocketGetIpPacketInfoResult,
74145        >(
74146            (),
74147            0x54b505f242280740,
74148            fidl::encoding::DynamicFlags::empty(),
74149            _decode,
74150        )
74151    }
74152
74153    type SetIpReceiveTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
74154        BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
74155        fidl::encoding::DefaultFuchsiaResourceDialect,
74156    >;
74157    fn r#set_ip_receive_type_of_service(
74158        &self,
74159        mut value: bool,
74160    ) -> Self::SetIpReceiveTypeOfServiceResponseFut {
74161        fn _decode(
74162            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
74163        ) -> Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error> {
74164            let _response = fidl::client::decode_transaction_body::<
74165                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
74166                fidl::encoding::DefaultFuchsiaResourceDialect,
74167                0x6c4f6714995f84ef,
74168            >(_buf?)?;
74169            Ok(_response.map(|x| x))
74170        }
74171        self.client.send_query_and_decode::<
74172            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
74173            BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
74174        >(
74175            (value,),
74176            0x6c4f6714995f84ef,
74177            fidl::encoding::DynamicFlags::empty(),
74178            _decode,
74179        )
74180    }
74181
74182    type GetIpReceiveTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
74183        BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
74184        fidl::encoding::DefaultFuchsiaResourceDialect,
74185    >;
74186    fn r#get_ip_receive_type_of_service(&self) -> Self::GetIpReceiveTypeOfServiceResponseFut {
74187        fn _decode(
74188            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
74189        ) -> Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error> {
74190            let _response = fidl::client::decode_transaction_body::<
74191                fidl::encoding::ResultType<
74192                    BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
74193                    fidl_fuchsia_posix::Errno,
74194                >,
74195                fidl::encoding::DefaultFuchsiaResourceDialect,
74196                0x4158ba7dc2795960,
74197            >(_buf?)?;
74198            Ok(_response.map(|x| x.value))
74199        }
74200        self.client.send_query_and_decode::<
74201            fidl::encoding::EmptyPayload,
74202            BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
74203        >(
74204            (),
74205            0x4158ba7dc2795960,
74206            fidl::encoding::DynamicFlags::empty(),
74207            _decode,
74208        )
74209    }
74210
74211    type SetIpReceiveTtlResponseFut = fidl::client::QueryResponseFut<
74212        BaseNetworkSocketSetIpReceiveTtlResult,
74213        fidl::encoding::DefaultFuchsiaResourceDialect,
74214    >;
74215    fn r#set_ip_receive_ttl(&self, mut value: bool) -> Self::SetIpReceiveTtlResponseFut {
74216        fn _decode(
74217            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
74218        ) -> Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error> {
74219            let _response = fidl::client::decode_transaction_body::<
74220                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
74221                fidl::encoding::DefaultFuchsiaResourceDialect,
74222                0x46f15be0ce0ab82b,
74223            >(_buf?)?;
74224            Ok(_response.map(|x| x))
74225        }
74226        self.client.send_query_and_decode::<
74227            BaseNetworkSocketSetIpReceiveTtlRequest,
74228            BaseNetworkSocketSetIpReceiveTtlResult,
74229        >(
74230            (value,),
74231            0x46f15be0ce0ab82b,
74232            fidl::encoding::DynamicFlags::empty(),
74233            _decode,
74234        )
74235    }
74236
74237    type GetIpReceiveTtlResponseFut = fidl::client::QueryResponseFut<
74238        BaseNetworkSocketGetIpReceiveTtlResult,
74239        fidl::encoding::DefaultFuchsiaResourceDialect,
74240    >;
74241    fn r#get_ip_receive_ttl(&self) -> Self::GetIpReceiveTtlResponseFut {
74242        fn _decode(
74243            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
74244        ) -> Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error> {
74245            let _response = fidl::client::decode_transaction_body::<
74246                fidl::encoding::ResultType<
74247                    BaseNetworkSocketGetIpReceiveTtlResponse,
74248                    fidl_fuchsia_posix::Errno,
74249                >,
74250                fidl::encoding::DefaultFuchsiaResourceDialect,
74251                0x678ddd5a5dfa2eb5,
74252            >(_buf?)?;
74253            Ok(_response.map(|x| x.value))
74254        }
74255        self.client.send_query_and_decode::<
74256            fidl::encoding::EmptyPayload,
74257            BaseNetworkSocketGetIpReceiveTtlResult,
74258        >(
74259            (),
74260            0x678ddd5a5dfa2eb5,
74261            fidl::encoding::DynamicFlags::empty(),
74262            _decode,
74263        )
74264    }
74265
74266    type SetIpMulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
74267        BaseNetworkSocketSetIpMulticastInterfaceResult,
74268        fidl::encoding::DefaultFuchsiaResourceDialect,
74269    >;
74270    fn r#set_ip_multicast_interface(
74271        &self,
74272        mut iface: u64,
74273        mut address: &fidl_fuchsia_net::Ipv4Address,
74274    ) -> Self::SetIpMulticastInterfaceResponseFut {
74275        fn _decode(
74276            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
74277        ) -> Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error> {
74278            let _response = fidl::client::decode_transaction_body::<
74279                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
74280                fidl::encoding::DefaultFuchsiaResourceDialect,
74281                0x752fbfa9b12befe,
74282            >(_buf?)?;
74283            Ok(_response.map(|x| x))
74284        }
74285        self.client.send_query_and_decode::<
74286            BaseNetworkSocketSetIpMulticastInterfaceRequest,
74287            BaseNetworkSocketSetIpMulticastInterfaceResult,
74288        >(
74289            (iface, address,),
74290            0x752fbfa9b12befe,
74291            fidl::encoding::DynamicFlags::empty(),
74292            _decode,
74293        )
74294    }
74295
74296    type GetIpMulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
74297        BaseNetworkSocketGetIpMulticastInterfaceResult,
74298        fidl::encoding::DefaultFuchsiaResourceDialect,
74299    >;
74300    fn r#get_ip_multicast_interface(&self) -> Self::GetIpMulticastInterfaceResponseFut {
74301        fn _decode(
74302            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
74303        ) -> Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error> {
74304            let _response = fidl::client::decode_transaction_body::<
74305                fidl::encoding::ResultType<
74306                    BaseNetworkSocketGetIpMulticastInterfaceResponse,
74307                    fidl_fuchsia_posix::Errno,
74308                >,
74309                fidl::encoding::DefaultFuchsiaResourceDialect,
74310                0x320bd14c4df046c4,
74311            >(_buf?)?;
74312            Ok(_response.map(|x| x.value))
74313        }
74314        self.client.send_query_and_decode::<
74315            fidl::encoding::EmptyPayload,
74316            BaseNetworkSocketGetIpMulticastInterfaceResult,
74317        >(
74318            (),
74319            0x320bd14c4df046c4,
74320            fidl::encoding::DynamicFlags::empty(),
74321            _decode,
74322        )
74323    }
74324
74325    type SetIpMulticastTtlResponseFut = fidl::client::QueryResponseFut<
74326        BaseNetworkSocketSetIpMulticastTtlResult,
74327        fidl::encoding::DefaultFuchsiaResourceDialect,
74328    >;
74329    fn r#set_ip_multicast_ttl(
74330        &self,
74331        mut value: &OptionalUint8,
74332    ) -> Self::SetIpMulticastTtlResponseFut {
74333        fn _decode(
74334            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
74335        ) -> Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error> {
74336            let _response = fidl::client::decode_transaction_body::<
74337                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
74338                fidl::encoding::DefaultFuchsiaResourceDialect,
74339                0x63134d53772916a1,
74340            >(_buf?)?;
74341            Ok(_response.map(|x| x))
74342        }
74343        self.client.send_query_and_decode::<
74344            BaseNetworkSocketSetIpMulticastTtlRequest,
74345            BaseNetworkSocketSetIpMulticastTtlResult,
74346        >(
74347            (value,),
74348            0x63134d53772916a1,
74349            fidl::encoding::DynamicFlags::empty(),
74350            _decode,
74351        )
74352    }
74353
74354    type GetIpMulticastTtlResponseFut = fidl::client::QueryResponseFut<
74355        BaseNetworkSocketGetIpMulticastTtlResult,
74356        fidl::encoding::DefaultFuchsiaResourceDialect,
74357    >;
74358    fn r#get_ip_multicast_ttl(&self) -> Self::GetIpMulticastTtlResponseFut {
74359        fn _decode(
74360            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
74361        ) -> Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error> {
74362            let _response = fidl::client::decode_transaction_body::<
74363                fidl::encoding::ResultType<
74364                    BaseNetworkSocketGetIpMulticastTtlResponse,
74365                    fidl_fuchsia_posix::Errno,
74366                >,
74367                fidl::encoding::DefaultFuchsiaResourceDialect,
74368                0x4665cd378f39e1a,
74369            >(_buf?)?;
74370            Ok(_response.map(|x| x.value))
74371        }
74372        self.client.send_query_and_decode::<
74373            fidl::encoding::EmptyPayload,
74374            BaseNetworkSocketGetIpMulticastTtlResult,
74375        >(
74376            (),
74377            0x4665cd378f39e1a,
74378            fidl::encoding::DynamicFlags::empty(),
74379            _decode,
74380        )
74381    }
74382
74383    type SetIpMulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
74384        BaseNetworkSocketSetIpMulticastLoopbackResult,
74385        fidl::encoding::DefaultFuchsiaResourceDialect,
74386    >;
74387    fn r#set_ip_multicast_loopback(
74388        &self,
74389        mut value: bool,
74390    ) -> Self::SetIpMulticastLoopbackResponseFut {
74391        fn _decode(
74392            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
74393        ) -> Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error> {
74394            let _response = fidl::client::decode_transaction_body::<
74395                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
74396                fidl::encoding::DefaultFuchsiaResourceDialect,
74397                0x20c55c11f00943ea,
74398            >(_buf?)?;
74399            Ok(_response.map(|x| x))
74400        }
74401        self.client.send_query_and_decode::<
74402            BaseNetworkSocketSetIpMulticastLoopbackRequest,
74403            BaseNetworkSocketSetIpMulticastLoopbackResult,
74404        >(
74405            (value,),
74406            0x20c55c11f00943ea,
74407            fidl::encoding::DynamicFlags::empty(),
74408            _decode,
74409        )
74410    }
74411
74412    type GetIpMulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
74413        BaseNetworkSocketGetIpMulticastLoopbackResult,
74414        fidl::encoding::DefaultFuchsiaResourceDialect,
74415    >;
74416    fn r#get_ip_multicast_loopback(&self) -> Self::GetIpMulticastLoopbackResponseFut {
74417        fn _decode(
74418            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
74419        ) -> Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error> {
74420            let _response = fidl::client::decode_transaction_body::<
74421                fidl::encoding::ResultType<
74422                    BaseNetworkSocketGetIpMulticastLoopbackResponse,
74423                    fidl_fuchsia_posix::Errno,
74424                >,
74425                fidl::encoding::DefaultFuchsiaResourceDialect,
74426                0x3b6b26ff558298f2,
74427            >(_buf?)?;
74428            Ok(_response.map(|x| x.value))
74429        }
74430        self.client.send_query_and_decode::<
74431            fidl::encoding::EmptyPayload,
74432            BaseNetworkSocketGetIpMulticastLoopbackResult,
74433        >(
74434            (),
74435            0x3b6b26ff558298f2,
74436            fidl::encoding::DynamicFlags::empty(),
74437            _decode,
74438        )
74439    }
74440
74441    type AddIpMembershipResponseFut = fidl::client::QueryResponseFut<
74442        BaseNetworkSocketAddIpMembershipResult,
74443        fidl::encoding::DefaultFuchsiaResourceDialect,
74444    >;
74445    fn r#add_ip_membership(
74446        &self,
74447        mut membership: &IpMulticastMembership,
74448    ) -> Self::AddIpMembershipResponseFut {
74449        fn _decode(
74450            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
74451        ) -> Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error> {
74452            let _response = fidl::client::decode_transaction_body::<
74453                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
74454                fidl::encoding::DefaultFuchsiaResourceDialect,
74455                0x76bc7df115a3b4d0,
74456            >(_buf?)?;
74457            Ok(_response.map(|x| x))
74458        }
74459        self.client.send_query_and_decode::<
74460            BaseNetworkSocketAddIpMembershipRequest,
74461            BaseNetworkSocketAddIpMembershipResult,
74462        >(
74463            (membership,),
74464            0x76bc7df115a3b4d0,
74465            fidl::encoding::DynamicFlags::empty(),
74466            _decode,
74467        )
74468    }
74469
74470    type DropIpMembershipResponseFut = fidl::client::QueryResponseFut<
74471        BaseNetworkSocketDropIpMembershipResult,
74472        fidl::encoding::DefaultFuchsiaResourceDialect,
74473    >;
74474    fn r#drop_ip_membership(
74475        &self,
74476        mut membership: &IpMulticastMembership,
74477    ) -> Self::DropIpMembershipResponseFut {
74478        fn _decode(
74479            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
74480        ) -> Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error> {
74481            let _response = fidl::client::decode_transaction_body::<
74482                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
74483                fidl::encoding::DefaultFuchsiaResourceDialect,
74484                0x2888f3099188d03,
74485            >(_buf?)?;
74486            Ok(_response.map(|x| x))
74487        }
74488        self.client.send_query_and_decode::<
74489            BaseNetworkSocketDropIpMembershipRequest,
74490            BaseNetworkSocketDropIpMembershipResult,
74491        >(
74492            (membership,),
74493            0x2888f3099188d03,
74494            fidl::encoding::DynamicFlags::empty(),
74495            _decode,
74496        )
74497    }
74498
74499    type SetIpTransparentResponseFut = fidl::client::QueryResponseFut<
74500        BaseNetworkSocketSetIpTransparentResult,
74501        fidl::encoding::DefaultFuchsiaResourceDialect,
74502    >;
74503    fn r#set_ip_transparent(&self, mut value: bool) -> Self::SetIpTransparentResponseFut {
74504        fn _decode(
74505            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
74506        ) -> Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error> {
74507            let _response = fidl::client::decode_transaction_body::<
74508                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
74509                fidl::encoding::DefaultFuchsiaResourceDialect,
74510                0x1ae532b0c066e3a0,
74511            >(_buf?)?;
74512            Ok(_response.map(|x| x))
74513        }
74514        self.client.send_query_and_decode::<
74515            BaseNetworkSocketSetIpTransparentRequest,
74516            BaseNetworkSocketSetIpTransparentResult,
74517        >(
74518            (value,),
74519            0x1ae532b0c066e3a0,
74520            fidl::encoding::DynamicFlags::empty(),
74521            _decode,
74522        )
74523    }
74524
74525    type GetIpTransparentResponseFut = fidl::client::QueryResponseFut<
74526        BaseNetworkSocketGetIpTransparentResult,
74527        fidl::encoding::DefaultFuchsiaResourceDialect,
74528    >;
74529    fn r#get_ip_transparent(&self) -> Self::GetIpTransparentResponseFut {
74530        fn _decode(
74531            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
74532        ) -> Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error> {
74533            let _response = fidl::client::decode_transaction_body::<
74534                fidl::encoding::ResultType<
74535                    BaseNetworkSocketGetIpTransparentResponse,
74536                    fidl_fuchsia_posix::Errno,
74537                >,
74538                fidl::encoding::DefaultFuchsiaResourceDialect,
74539                0x51d43695962ebfb5,
74540            >(_buf?)?;
74541            Ok(_response.map(|x| x.value))
74542        }
74543        self.client.send_query_and_decode::<
74544            fidl::encoding::EmptyPayload,
74545            BaseNetworkSocketGetIpTransparentResult,
74546        >(
74547            (),
74548            0x51d43695962ebfb5,
74549            fidl::encoding::DynamicFlags::empty(),
74550            _decode,
74551        )
74552    }
74553
74554    type SetIpReceiveOriginalDestinationAddressResponseFut = fidl::client::QueryResponseFut<
74555        BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
74556        fidl::encoding::DefaultFuchsiaResourceDialect,
74557    >;
74558    fn r#set_ip_receive_original_destination_address(
74559        &self,
74560        mut value: bool,
74561    ) -> Self::SetIpReceiveOriginalDestinationAddressResponseFut {
74562        fn _decode(
74563            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
74564        ) -> Result<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult, fidl::Error>
74565        {
74566            let _response = fidl::client::decode_transaction_body::<
74567                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
74568                fidl::encoding::DefaultFuchsiaResourceDialect,
74569                0x4722b4ce52f7840,
74570            >(_buf?)?;
74571            Ok(_response.map(|x| x))
74572        }
74573        self.client.send_query_and_decode::<
74574            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
74575            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
74576        >(
74577            (value,),
74578            0x4722b4ce52f7840,
74579            fidl::encoding::DynamicFlags::empty(),
74580            _decode,
74581        )
74582    }
74583
74584    type GetIpReceiveOriginalDestinationAddressResponseFut = fidl::client::QueryResponseFut<
74585        BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
74586        fidl::encoding::DefaultFuchsiaResourceDialect,
74587    >;
74588    fn r#get_ip_receive_original_destination_address(
74589        &self,
74590    ) -> Self::GetIpReceiveOriginalDestinationAddressResponseFut {
74591        fn _decode(
74592            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
74593        ) -> Result<BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult, fidl::Error>
74594        {
74595            let _response = fidl::client::decode_transaction_body::<
74596                fidl::encoding::ResultType<
74597                    BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
74598                    fidl_fuchsia_posix::Errno,
74599                >,
74600                fidl::encoding::DefaultFuchsiaResourceDialect,
74601                0x2a0e7dc5d6bfdfe9,
74602            >(_buf?)?;
74603            Ok(_response.map(|x| x.value))
74604        }
74605        self.client.send_query_and_decode::<
74606            fidl::encoding::EmptyPayload,
74607            BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
74608        >(
74609            (),
74610            0x2a0e7dc5d6bfdfe9,
74611            fidl::encoding::DynamicFlags::empty(),
74612            _decode,
74613        )
74614    }
74615
74616    type AddIpv6MembershipResponseFut = fidl::client::QueryResponseFut<
74617        BaseNetworkSocketAddIpv6MembershipResult,
74618        fidl::encoding::DefaultFuchsiaResourceDialect,
74619    >;
74620    fn r#add_ipv6_membership(
74621        &self,
74622        mut membership: &Ipv6MulticastMembership,
74623    ) -> Self::AddIpv6MembershipResponseFut {
74624        fn _decode(
74625            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
74626        ) -> Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error> {
74627            let _response = fidl::client::decode_transaction_body::<
74628                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
74629                fidl::encoding::DefaultFuchsiaResourceDialect,
74630                0x7c94727acb4ea4b3,
74631            >(_buf?)?;
74632            Ok(_response.map(|x| x))
74633        }
74634        self.client.send_query_and_decode::<
74635            BaseNetworkSocketAddIpv6MembershipRequest,
74636            BaseNetworkSocketAddIpv6MembershipResult,
74637        >(
74638            (membership,),
74639            0x7c94727acb4ea4b3,
74640            fidl::encoding::DynamicFlags::empty(),
74641            _decode,
74642        )
74643    }
74644
74645    type DropIpv6MembershipResponseFut = fidl::client::QueryResponseFut<
74646        BaseNetworkSocketDropIpv6MembershipResult,
74647        fidl::encoding::DefaultFuchsiaResourceDialect,
74648    >;
74649    fn r#drop_ipv6_membership(
74650        &self,
74651        mut membership: &Ipv6MulticastMembership,
74652    ) -> Self::DropIpv6MembershipResponseFut {
74653        fn _decode(
74654            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
74655        ) -> Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error> {
74656            let _response = fidl::client::decode_transaction_body::<
74657                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
74658                fidl::encoding::DefaultFuchsiaResourceDialect,
74659                0x42104c70ccaba304,
74660            >(_buf?)?;
74661            Ok(_response.map(|x| x))
74662        }
74663        self.client.send_query_and_decode::<
74664            BaseNetworkSocketDropIpv6MembershipRequest,
74665            BaseNetworkSocketDropIpv6MembershipResult,
74666        >(
74667            (membership,),
74668            0x42104c70ccaba304,
74669            fidl::encoding::DynamicFlags::empty(),
74670            _decode,
74671        )
74672    }
74673
74674    type SetIpv6MulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
74675        BaseNetworkSocketSetIpv6MulticastInterfaceResult,
74676        fidl::encoding::DefaultFuchsiaResourceDialect,
74677    >;
74678    fn r#set_ipv6_multicast_interface(
74679        &self,
74680        mut value: u64,
74681    ) -> Self::SetIpv6MulticastInterfaceResponseFut {
74682        fn _decode(
74683            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
74684        ) -> Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error> {
74685            let _response = fidl::client::decode_transaction_body::<
74686                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
74687                fidl::encoding::DefaultFuchsiaResourceDialect,
74688                0x135f76db3774ab3b,
74689            >(_buf?)?;
74690            Ok(_response.map(|x| x))
74691        }
74692        self.client.send_query_and_decode::<
74693            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
74694            BaseNetworkSocketSetIpv6MulticastInterfaceResult,
74695        >(
74696            (value,),
74697            0x135f76db3774ab3b,
74698            fidl::encoding::DynamicFlags::empty(),
74699            _decode,
74700        )
74701    }
74702
74703    type GetIpv6MulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
74704        BaseNetworkSocketGetIpv6MulticastInterfaceResult,
74705        fidl::encoding::DefaultFuchsiaResourceDialect,
74706    >;
74707    fn r#get_ipv6_multicast_interface(&self) -> Self::GetIpv6MulticastInterfaceResponseFut {
74708        fn _decode(
74709            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
74710        ) -> Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error> {
74711            let _response = fidl::client::decode_transaction_body::<
74712                fidl::encoding::ResultType<
74713                    BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
74714                    fidl_fuchsia_posix::Errno,
74715                >,
74716                fidl::encoding::DefaultFuchsiaResourceDialect,
74717                0x1f26fcdd348f1882,
74718            >(_buf?)?;
74719            Ok(_response.map(|x| x.value))
74720        }
74721        self.client.send_query_and_decode::<
74722            fidl::encoding::EmptyPayload,
74723            BaseNetworkSocketGetIpv6MulticastInterfaceResult,
74724        >(
74725            (),
74726            0x1f26fcdd348f1882,
74727            fidl::encoding::DynamicFlags::empty(),
74728            _decode,
74729        )
74730    }
74731
74732    type SetIpv6UnicastHopsResponseFut = fidl::client::QueryResponseFut<
74733        BaseNetworkSocketSetIpv6UnicastHopsResult,
74734        fidl::encoding::DefaultFuchsiaResourceDialect,
74735    >;
74736    fn r#set_ipv6_unicast_hops(
74737        &self,
74738        mut value: &OptionalUint8,
74739    ) -> Self::SetIpv6UnicastHopsResponseFut {
74740        fn _decode(
74741            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
74742        ) -> Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error> {
74743            let _response = fidl::client::decode_transaction_body::<
74744                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
74745                fidl::encoding::DefaultFuchsiaResourceDialect,
74746                0x157d51e98f462859,
74747            >(_buf?)?;
74748            Ok(_response.map(|x| x))
74749        }
74750        self.client.send_query_and_decode::<
74751            BaseNetworkSocketSetIpv6UnicastHopsRequest,
74752            BaseNetworkSocketSetIpv6UnicastHopsResult,
74753        >(
74754            (value,),
74755            0x157d51e98f462859,
74756            fidl::encoding::DynamicFlags::empty(),
74757            _decode,
74758        )
74759    }
74760
74761    type GetIpv6UnicastHopsResponseFut = fidl::client::QueryResponseFut<
74762        BaseNetworkSocketGetIpv6UnicastHopsResult,
74763        fidl::encoding::DefaultFuchsiaResourceDialect,
74764    >;
74765    fn r#get_ipv6_unicast_hops(&self) -> Self::GetIpv6UnicastHopsResponseFut {
74766        fn _decode(
74767            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
74768        ) -> Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error> {
74769            let _response = fidl::client::decode_transaction_body::<
74770                fidl::encoding::ResultType<
74771                    BaseNetworkSocketGetIpv6UnicastHopsResponse,
74772                    fidl_fuchsia_posix::Errno,
74773                >,
74774                fidl::encoding::DefaultFuchsiaResourceDialect,
74775                0x21f4641cad8bd8d2,
74776            >(_buf?)?;
74777            Ok(_response.map(|x| x.value))
74778        }
74779        self.client.send_query_and_decode::<
74780            fidl::encoding::EmptyPayload,
74781            BaseNetworkSocketGetIpv6UnicastHopsResult,
74782        >(
74783            (),
74784            0x21f4641cad8bd8d2,
74785            fidl::encoding::DynamicFlags::empty(),
74786            _decode,
74787        )
74788    }
74789
74790    type SetIpv6ReceiveHopLimitResponseFut = fidl::client::QueryResponseFut<
74791        BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
74792        fidl::encoding::DefaultFuchsiaResourceDialect,
74793    >;
74794    fn r#set_ipv6_receive_hop_limit(
74795        &self,
74796        mut value: bool,
74797    ) -> Self::SetIpv6ReceiveHopLimitResponseFut {
74798        fn _decode(
74799            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
74800        ) -> Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error> {
74801            let _response = fidl::client::decode_transaction_body::<
74802                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
74803                fidl::encoding::DefaultFuchsiaResourceDialect,
74804                0x5c24808ed2e84a1e,
74805            >(_buf?)?;
74806            Ok(_response.map(|x| x))
74807        }
74808        self.client.send_query_and_decode::<
74809            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
74810            BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
74811        >(
74812            (value,),
74813            0x5c24808ed2e84a1e,
74814            fidl::encoding::DynamicFlags::empty(),
74815            _decode,
74816        )
74817    }
74818
74819    type GetIpv6ReceiveHopLimitResponseFut = fidl::client::QueryResponseFut<
74820        BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
74821        fidl::encoding::DefaultFuchsiaResourceDialect,
74822    >;
74823    fn r#get_ipv6_receive_hop_limit(&self) -> Self::GetIpv6ReceiveHopLimitResponseFut {
74824        fn _decode(
74825            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
74826        ) -> Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error> {
74827            let _response = fidl::client::decode_transaction_body::<
74828                fidl::encoding::ResultType<
74829                    BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
74830                    fidl_fuchsia_posix::Errno,
74831                >,
74832                fidl::encoding::DefaultFuchsiaResourceDialect,
74833                0x341e06689885b4c0,
74834            >(_buf?)?;
74835            Ok(_response.map(|x| x.value))
74836        }
74837        self.client.send_query_and_decode::<
74838            fidl::encoding::EmptyPayload,
74839            BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
74840        >(
74841            (),
74842            0x341e06689885b4c0,
74843            fidl::encoding::DynamicFlags::empty(),
74844            _decode,
74845        )
74846    }
74847
74848    type SetIpv6MulticastHopsResponseFut = fidl::client::QueryResponseFut<
74849        BaseNetworkSocketSetIpv6MulticastHopsResult,
74850        fidl::encoding::DefaultFuchsiaResourceDialect,
74851    >;
74852    fn r#set_ipv6_multicast_hops(
74853        &self,
74854        mut value: &OptionalUint8,
74855    ) -> Self::SetIpv6MulticastHopsResponseFut {
74856        fn _decode(
74857            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
74858        ) -> Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error> {
74859            let _response = fidl::client::decode_transaction_body::<
74860                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
74861                fidl::encoding::DefaultFuchsiaResourceDialect,
74862                0x25b9cd4d181f82c1,
74863            >(_buf?)?;
74864            Ok(_response.map(|x| x))
74865        }
74866        self.client.send_query_and_decode::<
74867            BaseNetworkSocketSetIpv6MulticastHopsRequest,
74868            BaseNetworkSocketSetIpv6MulticastHopsResult,
74869        >(
74870            (value,),
74871            0x25b9cd4d181f82c1,
74872            fidl::encoding::DynamicFlags::empty(),
74873            _decode,
74874        )
74875    }
74876
74877    type GetIpv6MulticastHopsResponseFut = fidl::client::QueryResponseFut<
74878        BaseNetworkSocketGetIpv6MulticastHopsResult,
74879        fidl::encoding::DefaultFuchsiaResourceDialect,
74880    >;
74881    fn r#get_ipv6_multicast_hops(&self) -> Self::GetIpv6MulticastHopsResponseFut {
74882        fn _decode(
74883            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
74884        ) -> Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error> {
74885            let _response = fidl::client::decode_transaction_body::<
74886                fidl::encoding::ResultType<
74887                    BaseNetworkSocketGetIpv6MulticastHopsResponse,
74888                    fidl_fuchsia_posix::Errno,
74889                >,
74890                fidl::encoding::DefaultFuchsiaResourceDialect,
74891                0x52916948a365012a,
74892            >(_buf?)?;
74893            Ok(_response.map(|x| x.value))
74894        }
74895        self.client.send_query_and_decode::<
74896            fidl::encoding::EmptyPayload,
74897            BaseNetworkSocketGetIpv6MulticastHopsResult,
74898        >(
74899            (),
74900            0x52916948a365012a,
74901            fidl::encoding::DynamicFlags::empty(),
74902            _decode,
74903        )
74904    }
74905
74906    type SetIpv6MulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
74907        BaseNetworkSocketSetIpv6MulticastLoopbackResult,
74908        fidl::encoding::DefaultFuchsiaResourceDialect,
74909    >;
74910    fn r#set_ipv6_multicast_loopback(
74911        &self,
74912        mut value: bool,
74913    ) -> Self::SetIpv6MulticastLoopbackResponseFut {
74914        fn _decode(
74915            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
74916        ) -> Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error> {
74917            let _response = fidl::client::decode_transaction_body::<
74918                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
74919                fidl::encoding::DefaultFuchsiaResourceDialect,
74920                0x55701c409ff41b40,
74921            >(_buf?)?;
74922            Ok(_response.map(|x| x))
74923        }
74924        self.client.send_query_and_decode::<
74925            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
74926            BaseNetworkSocketSetIpv6MulticastLoopbackResult,
74927        >(
74928            (value,),
74929            0x55701c409ff41b40,
74930            fidl::encoding::DynamicFlags::empty(),
74931            _decode,
74932        )
74933    }
74934
74935    type GetIpv6MulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
74936        BaseNetworkSocketGetIpv6MulticastLoopbackResult,
74937        fidl::encoding::DefaultFuchsiaResourceDialect,
74938    >;
74939    fn r#get_ipv6_multicast_loopback(&self) -> Self::GetIpv6MulticastLoopbackResponseFut {
74940        fn _decode(
74941            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
74942        ) -> Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error> {
74943            let _response = fidl::client::decode_transaction_body::<
74944                fidl::encoding::ResultType<
74945                    BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
74946                    fidl_fuchsia_posix::Errno,
74947                >,
74948                fidl::encoding::DefaultFuchsiaResourceDialect,
74949                0x4415b701fde319c3,
74950            >(_buf?)?;
74951            Ok(_response.map(|x| x.value))
74952        }
74953        self.client.send_query_and_decode::<
74954            fidl::encoding::EmptyPayload,
74955            BaseNetworkSocketGetIpv6MulticastLoopbackResult,
74956        >(
74957            (),
74958            0x4415b701fde319c3,
74959            fidl::encoding::DynamicFlags::empty(),
74960            _decode,
74961        )
74962    }
74963
74964    type SetIpv6OnlyResponseFut = fidl::client::QueryResponseFut<
74965        BaseNetworkSocketSetIpv6OnlyResult,
74966        fidl::encoding::DefaultFuchsiaResourceDialect,
74967    >;
74968    fn r#set_ipv6_only(&self, mut value: bool) -> Self::SetIpv6OnlyResponseFut {
74969        fn _decode(
74970            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
74971        ) -> Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error> {
74972            let _response = fidl::client::decode_transaction_body::<
74973                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
74974                fidl::encoding::DefaultFuchsiaResourceDialect,
74975                0x4873f1364758cbba,
74976            >(_buf?)?;
74977            Ok(_response.map(|x| x))
74978        }
74979        self.client.send_query_and_decode::<
74980            BaseNetworkSocketSetIpv6OnlyRequest,
74981            BaseNetworkSocketSetIpv6OnlyResult,
74982        >(
74983            (value,),
74984            0x4873f1364758cbba,
74985            fidl::encoding::DynamicFlags::empty(),
74986            _decode,
74987        )
74988    }
74989
74990    type GetIpv6OnlyResponseFut = fidl::client::QueryResponseFut<
74991        BaseNetworkSocketGetIpv6OnlyResult,
74992        fidl::encoding::DefaultFuchsiaResourceDialect,
74993    >;
74994    fn r#get_ipv6_only(&self) -> Self::GetIpv6OnlyResponseFut {
74995        fn _decode(
74996            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
74997        ) -> Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error> {
74998            let _response = fidl::client::decode_transaction_body::<
74999                fidl::encoding::ResultType<
75000                    BaseNetworkSocketGetIpv6OnlyResponse,
75001                    fidl_fuchsia_posix::Errno,
75002                >,
75003                fidl::encoding::DefaultFuchsiaResourceDialect,
75004                0x4aa3340a1a26b89c,
75005            >(_buf?)?;
75006            Ok(_response.map(|x| x.value))
75007        }
75008        self.client.send_query_and_decode::<
75009            fidl::encoding::EmptyPayload,
75010            BaseNetworkSocketGetIpv6OnlyResult,
75011        >(
75012            (),
75013            0x4aa3340a1a26b89c,
75014            fidl::encoding::DynamicFlags::empty(),
75015            _decode,
75016        )
75017    }
75018
75019    type SetIpv6ReceiveTrafficClassResponseFut = fidl::client::QueryResponseFut<
75020        BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
75021        fidl::encoding::DefaultFuchsiaResourceDialect,
75022    >;
75023    fn r#set_ipv6_receive_traffic_class(
75024        &self,
75025        mut value: bool,
75026    ) -> Self::SetIpv6ReceiveTrafficClassResponseFut {
75027        fn _decode(
75028            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
75029        ) -> Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error> {
75030            let _response = fidl::client::decode_transaction_body::<
75031                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
75032                fidl::encoding::DefaultFuchsiaResourceDialect,
75033                0x58f07c8788d099a0,
75034            >(_buf?)?;
75035            Ok(_response.map(|x| x))
75036        }
75037        self.client.send_query_and_decode::<
75038            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
75039            BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
75040        >(
75041            (value,),
75042            0x58f07c8788d099a0,
75043            fidl::encoding::DynamicFlags::empty(),
75044            _decode,
75045        )
75046    }
75047
75048    type GetIpv6ReceiveTrafficClassResponseFut = fidl::client::QueryResponseFut<
75049        BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
75050        fidl::encoding::DefaultFuchsiaResourceDialect,
75051    >;
75052    fn r#get_ipv6_receive_traffic_class(&self) -> Self::GetIpv6ReceiveTrafficClassResponseFut {
75053        fn _decode(
75054            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
75055        ) -> Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error> {
75056            let _response = fidl::client::decode_transaction_body::<
75057                fidl::encoding::ResultType<
75058                    BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
75059                    fidl_fuchsia_posix::Errno,
75060                >,
75061                fidl::encoding::DefaultFuchsiaResourceDialect,
75062                0x2e334df1da553ffa,
75063            >(_buf?)?;
75064            Ok(_response.map(|x| x.value))
75065        }
75066        self.client.send_query_and_decode::<
75067            fidl::encoding::EmptyPayload,
75068            BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
75069        >(
75070            (),
75071            0x2e334df1da553ffa,
75072            fidl::encoding::DynamicFlags::empty(),
75073            _decode,
75074        )
75075    }
75076
75077    type SetIpv6TrafficClassResponseFut = fidl::client::QueryResponseFut<
75078        BaseNetworkSocketSetIpv6TrafficClassResult,
75079        fidl::encoding::DefaultFuchsiaResourceDialect,
75080    >;
75081    fn r#set_ipv6_traffic_class(
75082        &self,
75083        mut value: &OptionalUint8,
75084    ) -> Self::SetIpv6TrafficClassResponseFut {
75085        fn _decode(
75086            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
75087        ) -> Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error> {
75088            let _response = fidl::client::decode_transaction_body::<
75089                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
75090                fidl::encoding::DefaultFuchsiaResourceDialect,
75091                0x6af077800c5a0b4f,
75092            >(_buf?)?;
75093            Ok(_response.map(|x| x))
75094        }
75095        self.client.send_query_and_decode::<
75096            BaseNetworkSocketSetIpv6TrafficClassRequest,
75097            BaseNetworkSocketSetIpv6TrafficClassResult,
75098        >(
75099            (value,),
75100            0x6af077800c5a0b4f,
75101            fidl::encoding::DynamicFlags::empty(),
75102            _decode,
75103        )
75104    }
75105
75106    type GetIpv6TrafficClassResponseFut = fidl::client::QueryResponseFut<
75107        BaseNetworkSocketGetIpv6TrafficClassResult,
75108        fidl::encoding::DefaultFuchsiaResourceDialect,
75109    >;
75110    fn r#get_ipv6_traffic_class(&self) -> Self::GetIpv6TrafficClassResponseFut {
75111        fn _decode(
75112            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
75113        ) -> Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error> {
75114            let _response = fidl::client::decode_transaction_body::<
75115                fidl::encoding::ResultType<
75116                    BaseNetworkSocketGetIpv6TrafficClassResponse,
75117                    fidl_fuchsia_posix::Errno,
75118                >,
75119                fidl::encoding::DefaultFuchsiaResourceDialect,
75120                0x6baf6eed8fc2f04,
75121            >(_buf?)?;
75122            Ok(_response.map(|x| x.value))
75123        }
75124        self.client.send_query_and_decode::<
75125            fidl::encoding::EmptyPayload,
75126            BaseNetworkSocketGetIpv6TrafficClassResult,
75127        >(
75128            (),
75129            0x6baf6eed8fc2f04,
75130            fidl::encoding::DynamicFlags::empty(),
75131            _decode,
75132        )
75133    }
75134
75135    type SetIpv6ReceivePacketInfoResponseFut = fidl::client::QueryResponseFut<
75136        BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
75137        fidl::encoding::DefaultFuchsiaResourceDialect,
75138    >;
75139    fn r#set_ipv6_receive_packet_info(
75140        &self,
75141        mut value: bool,
75142    ) -> Self::SetIpv6ReceivePacketInfoResponseFut {
75143        fn _decode(
75144            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
75145        ) -> Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error> {
75146            let _response = fidl::client::decode_transaction_body::<
75147                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
75148                fidl::encoding::DefaultFuchsiaResourceDialect,
75149                0x19259775b1a92768,
75150            >(_buf?)?;
75151            Ok(_response.map(|x| x))
75152        }
75153        self.client.send_query_and_decode::<
75154            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
75155            BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
75156        >(
75157            (value,),
75158            0x19259775b1a92768,
75159            fidl::encoding::DynamicFlags::empty(),
75160            _decode,
75161        )
75162    }
75163
75164    type GetIpv6ReceivePacketInfoResponseFut = fidl::client::QueryResponseFut<
75165        BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
75166        fidl::encoding::DefaultFuchsiaResourceDialect,
75167    >;
75168    fn r#get_ipv6_receive_packet_info(&self) -> Self::GetIpv6ReceivePacketInfoResponseFut {
75169        fn _decode(
75170            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
75171        ) -> Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error> {
75172            let _response = fidl::client::decode_transaction_body::<
75173                fidl::encoding::ResultType<
75174                    BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
75175                    fidl_fuchsia_posix::Errno,
75176                >,
75177                fidl::encoding::DefaultFuchsiaResourceDialect,
75178                0x7acd4a2775baec75,
75179            >(_buf?)?;
75180            Ok(_response.map(|x| x.value))
75181        }
75182        self.client.send_query_and_decode::<
75183            fidl::encoding::EmptyPayload,
75184            BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
75185        >(
75186            (),
75187            0x7acd4a2775baec75,
75188            fidl::encoding::DynamicFlags::empty(),
75189            _decode,
75190        )
75191    }
75192
75193    type GetOriginalDestinationResponseFut = fidl::client::QueryResponseFut<
75194        BaseNetworkSocketGetOriginalDestinationResult,
75195        fidl::encoding::DefaultFuchsiaResourceDialect,
75196    >;
75197    fn r#get_original_destination(&self) -> Self::GetOriginalDestinationResponseFut {
75198        fn _decode(
75199            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
75200        ) -> Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error> {
75201            let _response = fidl::client::decode_transaction_body::<
75202                fidl::encoding::ResultType<
75203                    BaseNetworkSocketGetOriginalDestinationResponse,
75204                    fidl_fuchsia_posix::Errno,
75205                >,
75206                fidl::encoding::DefaultFuchsiaResourceDialect,
75207                0x38bf28f0dafdbac0,
75208            >(_buf?)?;
75209            Ok(_response.map(|x| x.value))
75210        }
75211        self.client.send_query_and_decode::<
75212            fidl::encoding::EmptyPayload,
75213            BaseNetworkSocketGetOriginalDestinationResult,
75214        >(
75215            (),
75216            0x38bf28f0dafdbac0,
75217            fidl::encoding::DynamicFlags::empty(),
75218            _decode,
75219        )
75220    }
75221
75222    type GetInfoResponseFut = fidl::client::QueryResponseFut<
75223        BaseDatagramSocketGetInfoResult,
75224        fidl::encoding::DefaultFuchsiaResourceDialect,
75225    >;
75226    fn r#get_info(&self) -> Self::GetInfoResponseFut {
75227        fn _decode(
75228            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
75229        ) -> Result<BaseDatagramSocketGetInfoResult, fidl::Error> {
75230            let _response = fidl::client::decode_transaction_body::<
75231                fidl::encoding::ResultType<
75232                    BaseDatagramSocketGetInfoResponse,
75233                    fidl_fuchsia_posix::Errno,
75234                >,
75235                fidl::encoding::DefaultFuchsiaResourceDialect,
75236                0x48aa0a1f6a32d2ed,
75237            >(_buf?)?;
75238            Ok(_response.map(|x| (x.domain, x.proto)))
75239        }
75240        self.client
75241            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseDatagramSocketGetInfoResult>(
75242                (),
75243                0x48aa0a1f6a32d2ed,
75244                fidl::encoding::DynamicFlags::empty(),
75245                _decode,
75246            )
75247    }
75248
75249    type DescribeResponseFut = fidl::client::QueryResponseFut<
75250        SynchronousDatagramSocketDescribeResponse,
75251        fidl::encoding::DefaultFuchsiaResourceDialect,
75252    >;
75253    fn r#describe(&self) -> Self::DescribeResponseFut {
75254        fn _decode(
75255            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
75256        ) -> Result<SynchronousDatagramSocketDescribeResponse, fidl::Error> {
75257            let _response = fidl::client::decode_transaction_body::<
75258                SynchronousDatagramSocketDescribeResponse,
75259                fidl::encoding::DefaultFuchsiaResourceDialect,
75260                0x585f20b73631070d,
75261            >(_buf?)?;
75262            Ok(_response)
75263        }
75264        self.client.send_query_and_decode::<
75265            fidl::encoding::EmptyPayload,
75266            SynchronousDatagramSocketDescribeResponse,
75267        >(
75268            (),
75269            0x585f20b73631070d,
75270            fidl::encoding::DynamicFlags::empty(),
75271            _decode,
75272        )
75273    }
75274
75275    type RecvMsgResponseFut = fidl::client::QueryResponseFut<
75276        SynchronousDatagramSocketRecvMsgResult,
75277        fidl::encoding::DefaultFuchsiaResourceDialect,
75278    >;
75279    fn r#recv_msg(
75280        &self,
75281        mut want_addr: bool,
75282        mut data_len: u32,
75283        mut want_control: bool,
75284        mut flags: RecvMsgFlags,
75285    ) -> Self::RecvMsgResponseFut {
75286        fn _decode(
75287            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
75288        ) -> Result<SynchronousDatagramSocketRecvMsgResult, fidl::Error> {
75289            let _response = fidl::client::decode_transaction_body::<
75290                fidl::encoding::ResultType<
75291                    SynchronousDatagramSocketRecvMsgResponse,
75292                    fidl_fuchsia_posix::Errno,
75293                >,
75294                fidl::encoding::DefaultFuchsiaResourceDialect,
75295                0x28e494e48fb5dbf3,
75296            >(_buf?)?;
75297            Ok(_response.map(|x| (x.addr, x.data, x.control, x.truncated)))
75298        }
75299        self.client.send_query_and_decode::<
75300            SynchronousDatagramSocketRecvMsgRequest,
75301            SynchronousDatagramSocketRecvMsgResult,
75302        >(
75303            (want_addr, data_len, want_control, flags,),
75304            0x28e494e48fb5dbf3,
75305            fidl::encoding::DynamicFlags::empty(),
75306            _decode,
75307        )
75308    }
75309
75310    type SendMsgResponseFut = fidl::client::QueryResponseFut<
75311        SynchronousDatagramSocketSendMsgResult,
75312        fidl::encoding::DefaultFuchsiaResourceDialect,
75313    >;
75314    fn r#send_msg(
75315        &self,
75316        mut addr: Option<&fidl_fuchsia_net::SocketAddress>,
75317        mut data: &[u8],
75318        mut control: &DatagramSocketSendControlData,
75319        mut flags: SendMsgFlags,
75320    ) -> Self::SendMsgResponseFut {
75321        fn _decode(
75322            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
75323        ) -> Result<SynchronousDatagramSocketSendMsgResult, fidl::Error> {
75324            let _response = fidl::client::decode_transaction_body::<
75325                fidl::encoding::ResultType<
75326                    SynchronousDatagramSocketSendMsgResponse,
75327                    fidl_fuchsia_posix::Errno,
75328                >,
75329                fidl::encoding::DefaultFuchsiaResourceDialect,
75330                0x12dc2fceab6cefaa,
75331            >(_buf?)?;
75332            Ok(_response.map(|x| x.len))
75333        }
75334        self.client.send_query_and_decode::<
75335            SynchronousDatagramSocketSendMsgRequest,
75336            SynchronousDatagramSocketSendMsgResult,
75337        >(
75338            (addr, data, control, flags,),
75339            0x12dc2fceab6cefaa,
75340            fidl::encoding::DynamicFlags::empty(),
75341            _decode,
75342        )
75343    }
75344}
75345
75346pub struct SynchronousDatagramSocketEventStream {
75347    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
75348}
75349
75350impl std::marker::Unpin for SynchronousDatagramSocketEventStream {}
75351
75352impl futures::stream::FusedStream for SynchronousDatagramSocketEventStream {
75353    fn is_terminated(&self) -> bool {
75354        self.event_receiver.is_terminated()
75355    }
75356}
75357
75358impl futures::Stream for SynchronousDatagramSocketEventStream {
75359    type Item = Result<SynchronousDatagramSocketEvent, fidl::Error>;
75360
75361    fn poll_next(
75362        mut self: std::pin::Pin<&mut Self>,
75363        cx: &mut std::task::Context<'_>,
75364    ) -> std::task::Poll<Option<Self::Item>> {
75365        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
75366            &mut self.event_receiver,
75367            cx
75368        )?) {
75369            Some(buf) => std::task::Poll::Ready(Some(SynchronousDatagramSocketEvent::decode(buf))),
75370            None => std::task::Poll::Ready(None),
75371        }
75372    }
75373}
75374
75375#[derive(Debug)]
75376pub enum SynchronousDatagramSocketEvent {}
75377
75378impl SynchronousDatagramSocketEvent {
75379    /// Decodes a message buffer as a [`SynchronousDatagramSocketEvent`].
75380    fn decode(
75381        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
75382    ) -> Result<SynchronousDatagramSocketEvent, fidl::Error> {
75383        let (bytes, _handles) = buf.split_mut();
75384        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
75385        debug_assert_eq!(tx_header.tx_id, 0);
75386        match tx_header.ordinal {
75387            _ => Err(fidl::Error::UnknownOrdinal {
75388                ordinal: tx_header.ordinal,
75389                protocol_name:
75390                    <SynchronousDatagramSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
75391            }),
75392        }
75393    }
75394}
75395
75396/// A Stream of incoming requests for fuchsia.posix.socket/SynchronousDatagramSocket.
75397pub struct SynchronousDatagramSocketRequestStream {
75398    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
75399    is_terminated: bool,
75400}
75401
75402impl std::marker::Unpin for SynchronousDatagramSocketRequestStream {}
75403
75404impl futures::stream::FusedStream for SynchronousDatagramSocketRequestStream {
75405    fn is_terminated(&self) -> bool {
75406        self.is_terminated
75407    }
75408}
75409
75410impl fidl::endpoints::RequestStream for SynchronousDatagramSocketRequestStream {
75411    type Protocol = SynchronousDatagramSocketMarker;
75412    type ControlHandle = SynchronousDatagramSocketControlHandle;
75413
75414    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
75415        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
75416    }
75417
75418    fn control_handle(&self) -> Self::ControlHandle {
75419        SynchronousDatagramSocketControlHandle { inner: self.inner.clone() }
75420    }
75421
75422    fn into_inner(
75423        self,
75424    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
75425    {
75426        (self.inner, self.is_terminated)
75427    }
75428
75429    fn from_inner(
75430        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
75431        is_terminated: bool,
75432    ) -> Self {
75433        Self { inner, is_terminated }
75434    }
75435}
75436
75437impl futures::Stream for SynchronousDatagramSocketRequestStream {
75438    type Item = Result<SynchronousDatagramSocketRequest, fidl::Error>;
75439
75440    fn poll_next(
75441        mut self: std::pin::Pin<&mut Self>,
75442        cx: &mut std::task::Context<'_>,
75443    ) -> std::task::Poll<Option<Self::Item>> {
75444        let this = &mut *self;
75445        if this.inner.check_shutdown(cx) {
75446            this.is_terminated = true;
75447            return std::task::Poll::Ready(None);
75448        }
75449        if this.is_terminated {
75450            panic!("polled SynchronousDatagramSocketRequestStream after completion");
75451        }
75452        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
75453            |bytes, handles| {
75454                match this.inner.channel().read_etc(cx, bytes, handles) {
75455                    std::task::Poll::Ready(Ok(())) => {}
75456                    std::task::Poll::Pending => return std::task::Poll::Pending,
75457                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
75458                        this.is_terminated = true;
75459                        return std::task::Poll::Ready(None);
75460                    }
75461                    std::task::Poll::Ready(Err(e)) => {
75462                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
75463                            e.into(),
75464                        ))));
75465                    }
75466                }
75467
75468                // A message has been received from the channel
75469                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
75470
75471                std::task::Poll::Ready(Some(match header.ordinal {
75472                0x20d8a7aba2168a79 => {
75473                    header.validate_request_tx_id(fidl::MethodType::OneWay)?;
75474                    let mut req = fidl::new_empty!(fidl_fuchsia_unknown::CloneableCloneRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75475                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl_fuchsia_unknown::CloneableCloneRequest>(&header, _body_bytes, handles, &mut req)?;
75476                    let control_handle = SynchronousDatagramSocketControlHandle {
75477                        inner: this.inner.clone(),
75478                    };
75479                    Ok(SynchronousDatagramSocketRequest::Clone {request: req.request,
75480
75481                        control_handle,
75482                    })
75483                }
75484                0x5ac5d459ad7f657e => {
75485                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75486                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75487                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75488                    let control_handle = SynchronousDatagramSocketControlHandle {
75489                        inner: this.inner.clone(),
75490                    };
75491                    Ok(SynchronousDatagramSocketRequest::Close {
75492                        responder: SynchronousDatagramSocketCloseResponder {
75493                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75494                            tx_id: header.tx_id,
75495                        },
75496                    })
75497                }
75498                0x2658edee9decfc06 => {
75499                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75500                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75501                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75502                    let control_handle = SynchronousDatagramSocketControlHandle {
75503                        inner: this.inner.clone(),
75504                    };
75505                    Ok(SynchronousDatagramSocketRequest::Query {
75506                        responder: SynchronousDatagramSocketQueryResponder {
75507                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75508                            tx_id: header.tx_id,
75509                        },
75510                    })
75511                }
75512                0x1fd74ee8b9a4a876 => {
75513                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75514                    let mut req = fidl::new_empty!(BaseSocketSetReuseAddressRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75515                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReuseAddressRequest>(&header, _body_bytes, handles, &mut req)?;
75516                    let control_handle = SynchronousDatagramSocketControlHandle {
75517                        inner: this.inner.clone(),
75518                    };
75519                    Ok(SynchronousDatagramSocketRequest::SetReuseAddress {value: req.value,
75520
75521                        responder: SynchronousDatagramSocketSetReuseAddressResponder {
75522                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75523                            tx_id: header.tx_id,
75524                        },
75525                    })
75526                }
75527                0x67b7206b8d1bc0a5 => {
75528                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75529                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75530                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75531                    let control_handle = SynchronousDatagramSocketControlHandle {
75532                        inner: this.inner.clone(),
75533                    };
75534                    Ok(SynchronousDatagramSocketRequest::GetReuseAddress {
75535                        responder: SynchronousDatagramSocketGetReuseAddressResponder {
75536                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75537                            tx_id: header.tx_id,
75538                        },
75539                    })
75540                }
75541                0x5aad39b33e5f6ebb => {
75542                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75543                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75544                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75545                    let control_handle = SynchronousDatagramSocketControlHandle {
75546                        inner: this.inner.clone(),
75547                    };
75548                    Ok(SynchronousDatagramSocketRequest::GetError {
75549                        responder: SynchronousDatagramSocketGetErrorResponder {
75550                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75551                            tx_id: header.tx_id,
75552                        },
75553                    })
75554                }
75555                0x6023e081ce3cd947 => {
75556                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75557                    let mut req = fidl::new_empty!(BaseSocketSetBroadcastRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75558                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBroadcastRequest>(&header, _body_bytes, handles, &mut req)?;
75559                    let control_handle = SynchronousDatagramSocketControlHandle {
75560                        inner: this.inner.clone(),
75561                    };
75562                    Ok(SynchronousDatagramSocketRequest::SetBroadcast {value: req.value,
75563
75564                        responder: SynchronousDatagramSocketSetBroadcastResponder {
75565                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75566                            tx_id: header.tx_id,
75567                        },
75568                    })
75569                }
75570                0x68796fc556f9780d => {
75571                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75572                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75573                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75574                    let control_handle = SynchronousDatagramSocketControlHandle {
75575                        inner: this.inner.clone(),
75576                    };
75577                    Ok(SynchronousDatagramSocketRequest::GetBroadcast {
75578                        responder: SynchronousDatagramSocketGetBroadcastResponder {
75579                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75580                            tx_id: header.tx_id,
75581                        },
75582                    })
75583                }
75584                0x756eac32d73a7a70 => {
75585                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75586                    let mut req = fidl::new_empty!(BaseSocketSetSendBufferRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75587                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetSendBufferRequest>(&header, _body_bytes, handles, &mut req)?;
75588                    let control_handle = SynchronousDatagramSocketControlHandle {
75589                        inner: this.inner.clone(),
75590                    };
75591                    Ok(SynchronousDatagramSocketRequest::SetSendBuffer {value_bytes: req.value_bytes,
75592
75593                        responder: SynchronousDatagramSocketSetSendBufferResponder {
75594                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75595                            tx_id: header.tx_id,
75596                        },
75597                    })
75598                }
75599                0x78a52fd9c7b2410b => {
75600                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75601                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75602                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75603                    let control_handle = SynchronousDatagramSocketControlHandle {
75604                        inner: this.inner.clone(),
75605                    };
75606                    Ok(SynchronousDatagramSocketRequest::GetSendBuffer {
75607                        responder: SynchronousDatagramSocketGetSendBufferResponder {
75608                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75609                            tx_id: header.tx_id,
75610                        },
75611                    })
75612                }
75613                0x6b0cf2f1919c7001 => {
75614                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75615                    let mut req = fidl::new_empty!(BaseSocketSetReceiveBufferRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75616                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReceiveBufferRequest>(&header, _body_bytes, handles, &mut req)?;
75617                    let control_handle = SynchronousDatagramSocketControlHandle {
75618                        inner: this.inner.clone(),
75619                    };
75620                    Ok(SynchronousDatagramSocketRequest::SetReceiveBuffer {value_bytes: req.value_bytes,
75621
75622                        responder: SynchronousDatagramSocketSetReceiveBufferResponder {
75623                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75624                            tx_id: header.tx_id,
75625                        },
75626                    })
75627                }
75628                0x14c1a4b64f709e5c => {
75629                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75630                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75631                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75632                    let control_handle = SynchronousDatagramSocketControlHandle {
75633                        inner: this.inner.clone(),
75634                    };
75635                    Ok(SynchronousDatagramSocketRequest::GetReceiveBuffer {
75636                        responder: SynchronousDatagramSocketGetReceiveBufferResponder {
75637                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75638                            tx_id: header.tx_id,
75639                        },
75640                    })
75641                }
75642                0x572df8f0b920d2c7 => {
75643                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75644                    let mut req = fidl::new_empty!(BaseSocketSetKeepAliveRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75645                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetKeepAliveRequest>(&header, _body_bytes, handles, &mut req)?;
75646                    let control_handle = SynchronousDatagramSocketControlHandle {
75647                        inner: this.inner.clone(),
75648                    };
75649                    Ok(SynchronousDatagramSocketRequest::SetKeepAlive {value: req.value,
75650
75651                        responder: SynchronousDatagramSocketSetKeepAliveResponder {
75652                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75653                            tx_id: header.tx_id,
75654                        },
75655                    })
75656                }
75657                0x2dd29d3215f2c9d2 => {
75658                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75659                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75660                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75661                    let control_handle = SynchronousDatagramSocketControlHandle {
75662                        inner: this.inner.clone(),
75663                    };
75664                    Ok(SynchronousDatagramSocketRequest::GetKeepAlive {
75665                        responder: SynchronousDatagramSocketGetKeepAliveResponder {
75666                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75667                            tx_id: header.tx_id,
75668                        },
75669                    })
75670                }
75671                0x3ecb49968bee439 => {
75672                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75673                    let mut req = fidl::new_empty!(BaseSocketSetOutOfBandInlineRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75674                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetOutOfBandInlineRequest>(&header, _body_bytes, handles, &mut req)?;
75675                    let control_handle = SynchronousDatagramSocketControlHandle {
75676                        inner: this.inner.clone(),
75677                    };
75678                    Ok(SynchronousDatagramSocketRequest::SetOutOfBandInline {value: req.value,
75679
75680                        responder: SynchronousDatagramSocketSetOutOfBandInlineResponder {
75681                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75682                            tx_id: header.tx_id,
75683                        },
75684                    })
75685                }
75686                0x348c1ab3aeca1745 => {
75687                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75688                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75689                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75690                    let control_handle = SynchronousDatagramSocketControlHandle {
75691                        inner: this.inner.clone(),
75692                    };
75693                    Ok(SynchronousDatagramSocketRequest::GetOutOfBandInline {
75694                        responder: SynchronousDatagramSocketGetOutOfBandInlineResponder {
75695                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75696                            tx_id: header.tx_id,
75697                        },
75698                    })
75699                }
75700                0x6bbf00c53a4c78c2 => {
75701                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75702                    let mut req = fidl::new_empty!(BaseSocketSetNoCheckRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75703                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetNoCheckRequest>(&header, _body_bytes, handles, &mut req)?;
75704                    let control_handle = SynchronousDatagramSocketControlHandle {
75705                        inner: this.inner.clone(),
75706                    };
75707                    Ok(SynchronousDatagramSocketRequest::SetNoCheck {value: req.value,
75708
75709                        responder: SynchronousDatagramSocketSetNoCheckResponder {
75710                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75711                            tx_id: header.tx_id,
75712                        },
75713                    })
75714                }
75715                0x2cd4249286417694 => {
75716                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75717                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75718                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75719                    let control_handle = SynchronousDatagramSocketControlHandle {
75720                        inner: this.inner.clone(),
75721                    };
75722                    Ok(SynchronousDatagramSocketRequest::GetNoCheck {
75723                        responder: SynchronousDatagramSocketGetNoCheckResponder {
75724                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75725                            tx_id: header.tx_id,
75726                        },
75727                    })
75728                }
75729                0x45386351246e998e => {
75730                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75731                    let mut req = fidl::new_empty!(BaseSocketSetLingerRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75732                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetLingerRequest>(&header, _body_bytes, handles, &mut req)?;
75733                    let control_handle = SynchronousDatagramSocketControlHandle {
75734                        inner: this.inner.clone(),
75735                    };
75736                    Ok(SynchronousDatagramSocketRequest::SetLinger {linger: req.linger,
75737length_secs: req.length_secs,
75738
75739                        responder: SynchronousDatagramSocketSetLingerResponder {
75740                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75741                            tx_id: header.tx_id,
75742                        },
75743                    })
75744                }
75745                0x48eb20fc5ccb0e45 => {
75746                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75747                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75748                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75749                    let control_handle = SynchronousDatagramSocketControlHandle {
75750                        inner: this.inner.clone(),
75751                    };
75752                    Ok(SynchronousDatagramSocketRequest::GetLinger {
75753                        responder: SynchronousDatagramSocketGetLingerResponder {
75754                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75755                            tx_id: header.tx_id,
75756                        },
75757                    })
75758                }
75759                0x547dc9cc0455189e => {
75760                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75761                    let mut req = fidl::new_empty!(BaseSocketSetReusePortRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75762                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReusePortRequest>(&header, _body_bytes, handles, &mut req)?;
75763                    let control_handle = SynchronousDatagramSocketControlHandle {
75764                        inner: this.inner.clone(),
75765                    };
75766                    Ok(SynchronousDatagramSocketRequest::SetReusePort {value: req.value,
75767
75768                        responder: SynchronousDatagramSocketSetReusePortResponder {
75769                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75770                            tx_id: header.tx_id,
75771                        },
75772                    })
75773                }
75774                0x24dd3e5cb36d9ccb => {
75775                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75776                    let mut req = fidl::new_empty!(BaseSocketSetReusePortDeprecatedRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75777                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReusePortDeprecatedRequest>(&header, _body_bytes, handles, &mut req)?;
75778                    let control_handle = SynchronousDatagramSocketControlHandle {
75779                        inner: this.inner.clone(),
75780                    };
75781                    Ok(SynchronousDatagramSocketRequest::SetReusePortDeprecated {value: req.value,
75782
75783                        responder: SynchronousDatagramSocketSetReusePortDeprecatedResponder {
75784                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75785                            tx_id: header.tx_id,
75786                        },
75787                    })
75788                }
75789                0x7a112c1ab54ff828 => {
75790                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75791                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75792                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75793                    let control_handle = SynchronousDatagramSocketControlHandle {
75794                        inner: this.inner.clone(),
75795                    };
75796                    Ok(SynchronousDatagramSocketRequest::GetReusePort {
75797                        responder: SynchronousDatagramSocketGetReusePortResponder {
75798                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75799                            tx_id: header.tx_id,
75800                        },
75801                    })
75802                }
75803                0x67ce6db6c2ec8966 => {
75804                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75805                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75806                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75807                    let control_handle = SynchronousDatagramSocketControlHandle {
75808                        inner: this.inner.clone(),
75809                    };
75810                    Ok(SynchronousDatagramSocketRequest::GetAcceptConn {
75811                        responder: SynchronousDatagramSocketGetAcceptConnResponder {
75812                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75813                            tx_id: header.tx_id,
75814                        },
75815                    })
75816                }
75817                0x2118b483f28aafc4 => {
75818                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75819                    let mut req = fidl::new_empty!(BaseSocketSetBindToDeviceRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75820                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToDeviceRequest>(&header, _body_bytes, handles, &mut req)?;
75821                    let control_handle = SynchronousDatagramSocketControlHandle {
75822                        inner: this.inner.clone(),
75823                    };
75824                    Ok(SynchronousDatagramSocketRequest::SetBindToDevice {value: req.value,
75825
75826                        responder: SynchronousDatagramSocketSetBindToDeviceResponder {
75827                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75828                            tx_id: header.tx_id,
75829                        },
75830                    })
75831                }
75832                0x1ab1fbf0ef7906c8 => {
75833                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75834                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75835                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75836                    let control_handle = SynchronousDatagramSocketControlHandle {
75837                        inner: this.inner.clone(),
75838                    };
75839                    Ok(SynchronousDatagramSocketRequest::GetBindToDevice {
75840                        responder: SynchronousDatagramSocketGetBindToDeviceResponder {
75841                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75842                            tx_id: header.tx_id,
75843                        },
75844                    })
75845                }
75846                0x6e387a0def00821 => {
75847                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75848                    let mut req = fidl::new_empty!(BaseSocketSetBindToInterfaceIndexRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75849                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToInterfaceIndexRequest>(&header, _body_bytes, handles, &mut req)?;
75850                    let control_handle = SynchronousDatagramSocketControlHandle {
75851                        inner: this.inner.clone(),
75852                    };
75853                    Ok(SynchronousDatagramSocketRequest::SetBindToInterfaceIndex {value: req.value,
75854
75855                        responder: SynchronousDatagramSocketSetBindToInterfaceIndexResponder {
75856                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75857                            tx_id: header.tx_id,
75858                        },
75859                    })
75860                }
75861                0x59c31dd3e3078295 => {
75862                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75863                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75864                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75865                    let control_handle = SynchronousDatagramSocketControlHandle {
75866                        inner: this.inner.clone(),
75867                    };
75868                    Ok(SynchronousDatagramSocketRequest::GetBindToInterfaceIndex {
75869                        responder: SynchronousDatagramSocketGetBindToInterfaceIndexResponder {
75870                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75871                            tx_id: header.tx_id,
75872                        },
75873                    })
75874                }
75875                0x285d6516c263d839 => {
75876                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75877                    let mut req = fidl::new_empty!(BaseSocketSetTimestampRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75878                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetTimestampRequest>(&header, _body_bytes, handles, &mut req)?;
75879                    let control_handle = SynchronousDatagramSocketControlHandle {
75880                        inner: this.inner.clone(),
75881                    };
75882                    Ok(SynchronousDatagramSocketRequest::SetTimestamp {value: req.value,
75883
75884                        responder: SynchronousDatagramSocketSetTimestampResponder {
75885                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75886                            tx_id: header.tx_id,
75887                        },
75888                    })
75889                }
75890                0x49f2fffbbcc2bd27 => {
75891                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75892                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75893                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75894                    let control_handle = SynchronousDatagramSocketControlHandle {
75895                        inner: this.inner.clone(),
75896                    };
75897                    Ok(SynchronousDatagramSocketRequest::GetTimestamp {
75898                        responder: SynchronousDatagramSocketGetTimestampResponder {
75899                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75900                            tx_id: header.tx_id,
75901                        },
75902                    })
75903                }
75904                0x6ead6de09f653236 => {
75905                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75906                    let mut req = fidl::new_empty!(BaseSocketSetMarkRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75907                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
75908                    let control_handle = SynchronousDatagramSocketControlHandle {
75909                        inner: this.inner.clone(),
75910                    };
75911                    Ok(SynchronousDatagramSocketRequest::SetMark {domain: req.domain,
75912mark: req.mark,
75913
75914                        responder: SynchronousDatagramSocketSetMarkResponder {
75915                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75916                            tx_id: header.tx_id,
75917                        },
75918                    })
75919                }
75920                0x57a2752c61d93d47 => {
75921                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75922                    let mut req = fidl::new_empty!(BaseSocketGetMarkRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75923                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketGetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
75924                    let control_handle = SynchronousDatagramSocketControlHandle {
75925                        inner: this.inner.clone(),
75926                    };
75927                    Ok(SynchronousDatagramSocketRequest::GetMark {domain: req.domain,
75928
75929                        responder: SynchronousDatagramSocketGetMarkResponder {
75930                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75931                            tx_id: header.tx_id,
75932                        },
75933                    })
75934                }
75935                0x2c2f47fd8f924e52 => {
75936                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75937                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75938                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75939                    let control_handle = SynchronousDatagramSocketControlHandle {
75940                        inner: this.inner.clone(),
75941                    };
75942                    Ok(SynchronousDatagramSocketRequest::GetCookie {
75943                        responder: SynchronousDatagramSocketGetCookieResponder {
75944                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75945                            tx_id: header.tx_id,
75946                        },
75947                    })
75948                }
75949                0x4bc6400ae92125d => {
75950                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75951                    let mut req = fidl::new_empty!(BaseNetworkSocketBindRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75952                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketBindRequest>(&header, _body_bytes, handles, &mut req)?;
75953                    let control_handle = SynchronousDatagramSocketControlHandle {
75954                        inner: this.inner.clone(),
75955                    };
75956                    Ok(SynchronousDatagramSocketRequest::Bind {addr: req.addr,
75957
75958                        responder: SynchronousDatagramSocketBindResponder {
75959                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75960                            tx_id: header.tx_id,
75961                        },
75962                    })
75963                }
75964                0x5f05f19bfdd38871 => {
75965                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75966                    let mut req = fidl::new_empty!(BaseNetworkSocketConnectRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75967                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketConnectRequest>(&header, _body_bytes, handles, &mut req)?;
75968                    let control_handle = SynchronousDatagramSocketControlHandle {
75969                        inner: this.inner.clone(),
75970                    };
75971                    Ok(SynchronousDatagramSocketRequest::Connect {addr: req.addr,
75972
75973                        responder: SynchronousDatagramSocketConnectResponder {
75974                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75975                            tx_id: header.tx_id,
75976                        },
75977                    })
75978                }
75979                0x74e63b91f7b29b2 => {
75980                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75981                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75982                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75983                    let control_handle = SynchronousDatagramSocketControlHandle {
75984                        inner: this.inner.clone(),
75985                    };
75986                    Ok(SynchronousDatagramSocketRequest::Disconnect {
75987                        responder: SynchronousDatagramSocketDisconnectResponder {
75988                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75989                            tx_id: header.tx_id,
75990                        },
75991                    })
75992                }
75993                0x475f23f84a1a4f85 => {
75994                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75995                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75996                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75997                    let control_handle = SynchronousDatagramSocketControlHandle {
75998                        inner: this.inner.clone(),
75999                    };
76000                    Ok(SynchronousDatagramSocketRequest::GetSockName {
76001                        responder: SynchronousDatagramSocketGetSockNameResponder {
76002                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76003                            tx_id: header.tx_id,
76004                        },
76005                    })
76006                }
76007                0x1ffecf4bd5b6432e => {
76008                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76009                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
76010                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
76011                    let control_handle = SynchronousDatagramSocketControlHandle {
76012                        inner: this.inner.clone(),
76013                    };
76014                    Ok(SynchronousDatagramSocketRequest::GetPeerName {
76015                        responder: SynchronousDatagramSocketGetPeerNameResponder {
76016                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76017                            tx_id: header.tx_id,
76018                        },
76019                    })
76020                }
76021                0x247f38b6db68c336 => {
76022                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76023                    let mut req = fidl::new_empty!(BaseNetworkSocketShutdownRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
76024                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketShutdownRequest>(&header, _body_bytes, handles, &mut req)?;
76025                    let control_handle = SynchronousDatagramSocketControlHandle {
76026                        inner: this.inner.clone(),
76027                    };
76028                    Ok(SynchronousDatagramSocketRequest::Shutdown {mode: req.mode,
76029
76030                        responder: SynchronousDatagramSocketShutdownResponder {
76031                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76032                            tx_id: header.tx_id,
76033                        },
76034                    })
76035                }
76036                0x995c600475b6d46 => {
76037                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76038                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpTypeOfServiceRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
76039                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTypeOfServiceRequest>(&header, _body_bytes, handles, &mut req)?;
76040                    let control_handle = SynchronousDatagramSocketControlHandle {
76041                        inner: this.inner.clone(),
76042                    };
76043                    Ok(SynchronousDatagramSocketRequest::SetIpTypeOfService {value: req.value,
76044
76045                        responder: SynchronousDatagramSocketSetIpTypeOfServiceResponder {
76046                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76047                            tx_id: header.tx_id,
76048                        },
76049                    })
76050                }
76051                0x3814a04259f75fcb => {
76052                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76053                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
76054                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
76055                    let control_handle = SynchronousDatagramSocketControlHandle {
76056                        inner: this.inner.clone(),
76057                    };
76058                    Ok(SynchronousDatagramSocketRequest::GetIpTypeOfService {
76059                        responder: SynchronousDatagramSocketGetIpTypeOfServiceResponder {
76060                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76061                            tx_id: header.tx_id,
76062                        },
76063                    })
76064                }
76065                0x29e2424b433ae1ef => {
76066                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76067                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpTtlRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
76068                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTtlRequest>(&header, _body_bytes, handles, &mut req)?;
76069                    let control_handle = SynchronousDatagramSocketControlHandle {
76070                        inner: this.inner.clone(),
76071                    };
76072                    Ok(SynchronousDatagramSocketRequest::SetIpTtl {value: req.value,
76073
76074                        responder: SynchronousDatagramSocketSetIpTtlResponder {
76075                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76076                            tx_id: header.tx_id,
76077                        },
76078                    })
76079                }
76080                0x47e47fa1f24da471 => {
76081                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76082                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
76083                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
76084                    let control_handle = SynchronousDatagramSocketControlHandle {
76085                        inner: this.inner.clone(),
76086                    };
76087                    Ok(SynchronousDatagramSocketRequest::GetIpTtl {
76088                        responder: SynchronousDatagramSocketGetIpTtlResponder {
76089                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76090                            tx_id: header.tx_id,
76091                        },
76092                    })
76093                }
76094                0x392d16bee20c0e16 => {
76095                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76096                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpPacketInfoRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
76097                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpPacketInfoRequest>(&header, _body_bytes, handles, &mut req)?;
76098                    let control_handle = SynchronousDatagramSocketControlHandle {
76099                        inner: this.inner.clone(),
76100                    };
76101                    Ok(SynchronousDatagramSocketRequest::SetIpPacketInfo {value: req.value,
76102
76103                        responder: SynchronousDatagramSocketSetIpPacketInfoResponder {
76104                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76105                            tx_id: header.tx_id,
76106                        },
76107                    })
76108                }
76109                0x54b505f242280740 => {
76110                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76111                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
76112                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
76113                    let control_handle = SynchronousDatagramSocketControlHandle {
76114                        inner: this.inner.clone(),
76115                    };
76116                    Ok(SynchronousDatagramSocketRequest::GetIpPacketInfo {
76117                        responder: SynchronousDatagramSocketGetIpPacketInfoResponder {
76118                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76119                            tx_id: header.tx_id,
76120                        },
76121                    })
76122                }
76123                0x6c4f6714995f84ef => {
76124                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76125                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpReceiveTypeOfServiceRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
76126                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveTypeOfServiceRequest>(&header, _body_bytes, handles, &mut req)?;
76127                    let control_handle = SynchronousDatagramSocketControlHandle {
76128                        inner: this.inner.clone(),
76129                    };
76130                    Ok(SynchronousDatagramSocketRequest::SetIpReceiveTypeOfService {value: req.value,
76131
76132                        responder: SynchronousDatagramSocketSetIpReceiveTypeOfServiceResponder {
76133                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76134                            tx_id: header.tx_id,
76135                        },
76136                    })
76137                }
76138                0x4158ba7dc2795960 => {
76139                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76140                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
76141                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
76142                    let control_handle = SynchronousDatagramSocketControlHandle {
76143                        inner: this.inner.clone(),
76144                    };
76145                    Ok(SynchronousDatagramSocketRequest::GetIpReceiveTypeOfService {
76146                        responder: SynchronousDatagramSocketGetIpReceiveTypeOfServiceResponder {
76147                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76148                            tx_id: header.tx_id,
76149                        },
76150                    })
76151                }
76152                0x46f15be0ce0ab82b => {
76153                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76154                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpReceiveTtlRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
76155                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveTtlRequest>(&header, _body_bytes, handles, &mut req)?;
76156                    let control_handle = SynchronousDatagramSocketControlHandle {
76157                        inner: this.inner.clone(),
76158                    };
76159                    Ok(SynchronousDatagramSocketRequest::SetIpReceiveTtl {value: req.value,
76160
76161                        responder: SynchronousDatagramSocketSetIpReceiveTtlResponder {
76162                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76163                            tx_id: header.tx_id,
76164                        },
76165                    })
76166                }
76167                0x678ddd5a5dfa2eb5 => {
76168                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76169                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
76170                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
76171                    let control_handle = SynchronousDatagramSocketControlHandle {
76172                        inner: this.inner.clone(),
76173                    };
76174                    Ok(SynchronousDatagramSocketRequest::GetIpReceiveTtl {
76175                        responder: SynchronousDatagramSocketGetIpReceiveTtlResponder {
76176                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76177                            tx_id: header.tx_id,
76178                        },
76179                    })
76180                }
76181                0x752fbfa9b12befe => {
76182                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76183                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpMulticastInterfaceRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
76184                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastInterfaceRequest>(&header, _body_bytes, handles, &mut req)?;
76185                    let control_handle = SynchronousDatagramSocketControlHandle {
76186                        inner: this.inner.clone(),
76187                    };
76188                    Ok(SynchronousDatagramSocketRequest::SetIpMulticastInterface {iface: req.iface,
76189address: req.address,
76190
76191                        responder: SynchronousDatagramSocketSetIpMulticastInterfaceResponder {
76192                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76193                            tx_id: header.tx_id,
76194                        },
76195                    })
76196                }
76197                0x320bd14c4df046c4 => {
76198                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76199                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
76200                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
76201                    let control_handle = SynchronousDatagramSocketControlHandle {
76202                        inner: this.inner.clone(),
76203                    };
76204                    Ok(SynchronousDatagramSocketRequest::GetIpMulticastInterface {
76205                        responder: SynchronousDatagramSocketGetIpMulticastInterfaceResponder {
76206                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76207                            tx_id: header.tx_id,
76208                        },
76209                    })
76210                }
76211                0x63134d53772916a1 => {
76212                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76213                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpMulticastTtlRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
76214                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastTtlRequest>(&header, _body_bytes, handles, &mut req)?;
76215                    let control_handle = SynchronousDatagramSocketControlHandle {
76216                        inner: this.inner.clone(),
76217                    };
76218                    Ok(SynchronousDatagramSocketRequest::SetIpMulticastTtl {value: req.value,
76219
76220                        responder: SynchronousDatagramSocketSetIpMulticastTtlResponder {
76221                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76222                            tx_id: header.tx_id,
76223                        },
76224                    })
76225                }
76226                0x4665cd378f39e1a => {
76227                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76228                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
76229                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
76230                    let control_handle = SynchronousDatagramSocketControlHandle {
76231                        inner: this.inner.clone(),
76232                    };
76233                    Ok(SynchronousDatagramSocketRequest::GetIpMulticastTtl {
76234                        responder: SynchronousDatagramSocketGetIpMulticastTtlResponder {
76235                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76236                            tx_id: header.tx_id,
76237                        },
76238                    })
76239                }
76240                0x20c55c11f00943ea => {
76241                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76242                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpMulticastLoopbackRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
76243                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastLoopbackRequest>(&header, _body_bytes, handles, &mut req)?;
76244                    let control_handle = SynchronousDatagramSocketControlHandle {
76245                        inner: this.inner.clone(),
76246                    };
76247                    Ok(SynchronousDatagramSocketRequest::SetIpMulticastLoopback {value: req.value,
76248
76249                        responder: SynchronousDatagramSocketSetIpMulticastLoopbackResponder {
76250                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76251                            tx_id: header.tx_id,
76252                        },
76253                    })
76254                }
76255                0x3b6b26ff558298f2 => {
76256                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76257                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
76258                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
76259                    let control_handle = SynchronousDatagramSocketControlHandle {
76260                        inner: this.inner.clone(),
76261                    };
76262                    Ok(SynchronousDatagramSocketRequest::GetIpMulticastLoopback {
76263                        responder: SynchronousDatagramSocketGetIpMulticastLoopbackResponder {
76264                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76265                            tx_id: header.tx_id,
76266                        },
76267                    })
76268                }
76269                0x76bc7df115a3b4d0 => {
76270                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76271                    let mut req = fidl::new_empty!(BaseNetworkSocketAddIpMembershipRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
76272                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketAddIpMembershipRequest>(&header, _body_bytes, handles, &mut req)?;
76273                    let control_handle = SynchronousDatagramSocketControlHandle {
76274                        inner: this.inner.clone(),
76275                    };
76276                    Ok(SynchronousDatagramSocketRequest::AddIpMembership {membership: req.membership,
76277
76278                        responder: SynchronousDatagramSocketAddIpMembershipResponder {
76279                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76280                            tx_id: header.tx_id,
76281                        },
76282                    })
76283                }
76284                0x2888f3099188d03 => {
76285                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76286                    let mut req = fidl::new_empty!(BaseNetworkSocketDropIpMembershipRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
76287                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketDropIpMembershipRequest>(&header, _body_bytes, handles, &mut req)?;
76288                    let control_handle = SynchronousDatagramSocketControlHandle {
76289                        inner: this.inner.clone(),
76290                    };
76291                    Ok(SynchronousDatagramSocketRequest::DropIpMembership {membership: req.membership,
76292
76293                        responder: SynchronousDatagramSocketDropIpMembershipResponder {
76294                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76295                            tx_id: header.tx_id,
76296                        },
76297                    })
76298                }
76299                0x1ae532b0c066e3a0 => {
76300                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76301                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpTransparentRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
76302                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTransparentRequest>(&header, _body_bytes, handles, &mut req)?;
76303                    let control_handle = SynchronousDatagramSocketControlHandle {
76304                        inner: this.inner.clone(),
76305                    };
76306                    Ok(SynchronousDatagramSocketRequest::SetIpTransparent {value: req.value,
76307
76308                        responder: SynchronousDatagramSocketSetIpTransparentResponder {
76309                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76310                            tx_id: header.tx_id,
76311                        },
76312                    })
76313                }
76314                0x51d43695962ebfb5 => {
76315                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76316                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
76317                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
76318                    let control_handle = SynchronousDatagramSocketControlHandle {
76319                        inner: this.inner.clone(),
76320                    };
76321                    Ok(SynchronousDatagramSocketRequest::GetIpTransparent {
76322                        responder: SynchronousDatagramSocketGetIpTransparentResponder {
76323                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76324                            tx_id: header.tx_id,
76325                        },
76326                    })
76327                }
76328                0x4722b4ce52f7840 => {
76329                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76330                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
76331                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest>(&header, _body_bytes, handles, &mut req)?;
76332                    let control_handle = SynchronousDatagramSocketControlHandle {
76333                        inner: this.inner.clone(),
76334                    };
76335                    Ok(SynchronousDatagramSocketRequest::SetIpReceiveOriginalDestinationAddress {value: req.value,
76336
76337                        responder: SynchronousDatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
76338                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76339                            tx_id: header.tx_id,
76340                        },
76341                    })
76342                }
76343                0x2a0e7dc5d6bfdfe9 => {
76344                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76345                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
76346                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
76347                    let control_handle = SynchronousDatagramSocketControlHandle {
76348                        inner: this.inner.clone(),
76349                    };
76350                    Ok(SynchronousDatagramSocketRequest::GetIpReceiveOriginalDestinationAddress {
76351                        responder: SynchronousDatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
76352                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76353                            tx_id: header.tx_id,
76354                        },
76355                    })
76356                }
76357                0x7c94727acb4ea4b3 => {
76358                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76359                    let mut req = fidl::new_empty!(BaseNetworkSocketAddIpv6MembershipRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
76360                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketAddIpv6MembershipRequest>(&header, _body_bytes, handles, &mut req)?;
76361                    let control_handle = SynchronousDatagramSocketControlHandle {
76362                        inner: this.inner.clone(),
76363                    };
76364                    Ok(SynchronousDatagramSocketRequest::AddIpv6Membership {membership: req.membership,
76365
76366                        responder: SynchronousDatagramSocketAddIpv6MembershipResponder {
76367                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76368                            tx_id: header.tx_id,
76369                        },
76370                    })
76371                }
76372                0x42104c70ccaba304 => {
76373                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76374                    let mut req = fidl::new_empty!(BaseNetworkSocketDropIpv6MembershipRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
76375                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketDropIpv6MembershipRequest>(&header, _body_bytes, handles, &mut req)?;
76376                    let control_handle = SynchronousDatagramSocketControlHandle {
76377                        inner: this.inner.clone(),
76378                    };
76379                    Ok(SynchronousDatagramSocketRequest::DropIpv6Membership {membership: req.membership,
76380
76381                        responder: SynchronousDatagramSocketDropIpv6MembershipResponder {
76382                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76383                            tx_id: header.tx_id,
76384                        },
76385                    })
76386                }
76387                0x135f76db3774ab3b => {
76388                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76389                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6MulticastInterfaceRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
76390                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastInterfaceRequest>(&header, _body_bytes, handles, &mut req)?;
76391                    let control_handle = SynchronousDatagramSocketControlHandle {
76392                        inner: this.inner.clone(),
76393                    };
76394                    Ok(SynchronousDatagramSocketRequest::SetIpv6MulticastInterface {value: req.value,
76395
76396                        responder: SynchronousDatagramSocketSetIpv6MulticastInterfaceResponder {
76397                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76398                            tx_id: header.tx_id,
76399                        },
76400                    })
76401                }
76402                0x1f26fcdd348f1882 => {
76403                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76404                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
76405                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
76406                    let control_handle = SynchronousDatagramSocketControlHandle {
76407                        inner: this.inner.clone(),
76408                    };
76409                    Ok(SynchronousDatagramSocketRequest::GetIpv6MulticastInterface {
76410                        responder: SynchronousDatagramSocketGetIpv6MulticastInterfaceResponder {
76411                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76412                            tx_id: header.tx_id,
76413                        },
76414                    })
76415                }
76416                0x157d51e98f462859 => {
76417                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76418                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6UnicastHopsRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
76419                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6UnicastHopsRequest>(&header, _body_bytes, handles, &mut req)?;
76420                    let control_handle = SynchronousDatagramSocketControlHandle {
76421                        inner: this.inner.clone(),
76422                    };
76423                    Ok(SynchronousDatagramSocketRequest::SetIpv6UnicastHops {value: req.value,
76424
76425                        responder: SynchronousDatagramSocketSetIpv6UnicastHopsResponder {
76426                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76427                            tx_id: header.tx_id,
76428                        },
76429                    })
76430                }
76431                0x21f4641cad8bd8d2 => {
76432                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76433                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
76434                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
76435                    let control_handle = SynchronousDatagramSocketControlHandle {
76436                        inner: this.inner.clone(),
76437                    };
76438                    Ok(SynchronousDatagramSocketRequest::GetIpv6UnicastHops {
76439                        responder: SynchronousDatagramSocketGetIpv6UnicastHopsResponder {
76440                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76441                            tx_id: header.tx_id,
76442                        },
76443                    })
76444                }
76445                0x5c24808ed2e84a1e => {
76446                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76447                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6ReceiveHopLimitRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
76448                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceiveHopLimitRequest>(&header, _body_bytes, handles, &mut req)?;
76449                    let control_handle = SynchronousDatagramSocketControlHandle {
76450                        inner: this.inner.clone(),
76451                    };
76452                    Ok(SynchronousDatagramSocketRequest::SetIpv6ReceiveHopLimit {value: req.value,
76453
76454                        responder: SynchronousDatagramSocketSetIpv6ReceiveHopLimitResponder {
76455                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76456                            tx_id: header.tx_id,
76457                        },
76458                    })
76459                }
76460                0x341e06689885b4c0 => {
76461                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76462                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
76463                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
76464                    let control_handle = SynchronousDatagramSocketControlHandle {
76465                        inner: this.inner.clone(),
76466                    };
76467                    Ok(SynchronousDatagramSocketRequest::GetIpv6ReceiveHopLimit {
76468                        responder: SynchronousDatagramSocketGetIpv6ReceiveHopLimitResponder {
76469                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76470                            tx_id: header.tx_id,
76471                        },
76472                    })
76473                }
76474                0x25b9cd4d181f82c1 => {
76475                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76476                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6MulticastHopsRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
76477                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastHopsRequest>(&header, _body_bytes, handles, &mut req)?;
76478                    let control_handle = SynchronousDatagramSocketControlHandle {
76479                        inner: this.inner.clone(),
76480                    };
76481                    Ok(SynchronousDatagramSocketRequest::SetIpv6MulticastHops {value: req.value,
76482
76483                        responder: SynchronousDatagramSocketSetIpv6MulticastHopsResponder {
76484                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76485                            tx_id: header.tx_id,
76486                        },
76487                    })
76488                }
76489                0x52916948a365012a => {
76490                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76491                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
76492                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
76493                    let control_handle = SynchronousDatagramSocketControlHandle {
76494                        inner: this.inner.clone(),
76495                    };
76496                    Ok(SynchronousDatagramSocketRequest::GetIpv6MulticastHops {
76497                        responder: SynchronousDatagramSocketGetIpv6MulticastHopsResponder {
76498                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76499                            tx_id: header.tx_id,
76500                        },
76501                    })
76502                }
76503                0x55701c409ff41b40 => {
76504                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76505                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6MulticastLoopbackRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
76506                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastLoopbackRequest>(&header, _body_bytes, handles, &mut req)?;
76507                    let control_handle = SynchronousDatagramSocketControlHandle {
76508                        inner: this.inner.clone(),
76509                    };
76510                    Ok(SynchronousDatagramSocketRequest::SetIpv6MulticastLoopback {value: req.value,
76511
76512                        responder: SynchronousDatagramSocketSetIpv6MulticastLoopbackResponder {
76513                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76514                            tx_id: header.tx_id,
76515                        },
76516                    })
76517                }
76518                0x4415b701fde319c3 => {
76519                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76520                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
76521                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
76522                    let control_handle = SynchronousDatagramSocketControlHandle {
76523                        inner: this.inner.clone(),
76524                    };
76525                    Ok(SynchronousDatagramSocketRequest::GetIpv6MulticastLoopback {
76526                        responder: SynchronousDatagramSocketGetIpv6MulticastLoopbackResponder {
76527                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76528                            tx_id: header.tx_id,
76529                        },
76530                    })
76531                }
76532                0x4873f1364758cbba => {
76533                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76534                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6OnlyRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
76535                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6OnlyRequest>(&header, _body_bytes, handles, &mut req)?;
76536                    let control_handle = SynchronousDatagramSocketControlHandle {
76537                        inner: this.inner.clone(),
76538                    };
76539                    Ok(SynchronousDatagramSocketRequest::SetIpv6Only {value: req.value,
76540
76541                        responder: SynchronousDatagramSocketSetIpv6OnlyResponder {
76542                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76543                            tx_id: header.tx_id,
76544                        },
76545                    })
76546                }
76547                0x4aa3340a1a26b89c => {
76548                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76549                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
76550                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
76551                    let control_handle = SynchronousDatagramSocketControlHandle {
76552                        inner: this.inner.clone(),
76553                    };
76554                    Ok(SynchronousDatagramSocketRequest::GetIpv6Only {
76555                        responder: SynchronousDatagramSocketGetIpv6OnlyResponder {
76556                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76557                            tx_id: header.tx_id,
76558                        },
76559                    })
76560                }
76561                0x58f07c8788d099a0 => {
76562                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76563                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
76564                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest>(&header, _body_bytes, handles, &mut req)?;
76565                    let control_handle = SynchronousDatagramSocketControlHandle {
76566                        inner: this.inner.clone(),
76567                    };
76568                    Ok(SynchronousDatagramSocketRequest::SetIpv6ReceiveTrafficClass {value: req.value,
76569
76570                        responder: SynchronousDatagramSocketSetIpv6ReceiveTrafficClassResponder {
76571                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76572                            tx_id: header.tx_id,
76573                        },
76574                    })
76575                }
76576                0x2e334df1da553ffa => {
76577                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76578                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
76579                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
76580                    let control_handle = SynchronousDatagramSocketControlHandle {
76581                        inner: this.inner.clone(),
76582                    };
76583                    Ok(SynchronousDatagramSocketRequest::GetIpv6ReceiveTrafficClass {
76584                        responder: SynchronousDatagramSocketGetIpv6ReceiveTrafficClassResponder {
76585                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76586                            tx_id: header.tx_id,
76587                        },
76588                    })
76589                }
76590                0x6af077800c5a0b4f => {
76591                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76592                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6TrafficClassRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
76593                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6TrafficClassRequest>(&header, _body_bytes, handles, &mut req)?;
76594                    let control_handle = SynchronousDatagramSocketControlHandle {
76595                        inner: this.inner.clone(),
76596                    };
76597                    Ok(SynchronousDatagramSocketRequest::SetIpv6TrafficClass {value: req.value,
76598
76599                        responder: SynchronousDatagramSocketSetIpv6TrafficClassResponder {
76600                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76601                            tx_id: header.tx_id,
76602                        },
76603                    })
76604                }
76605                0x6baf6eed8fc2f04 => {
76606                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76607                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
76608                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
76609                    let control_handle = SynchronousDatagramSocketControlHandle {
76610                        inner: this.inner.clone(),
76611                    };
76612                    Ok(SynchronousDatagramSocketRequest::GetIpv6TrafficClass {
76613                        responder: SynchronousDatagramSocketGetIpv6TrafficClassResponder {
76614                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76615                            tx_id: header.tx_id,
76616                        },
76617                    })
76618                }
76619                0x19259775b1a92768 => {
76620                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76621                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6ReceivePacketInfoRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
76622                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceivePacketInfoRequest>(&header, _body_bytes, handles, &mut req)?;
76623                    let control_handle = SynchronousDatagramSocketControlHandle {
76624                        inner: this.inner.clone(),
76625                    };
76626                    Ok(SynchronousDatagramSocketRequest::SetIpv6ReceivePacketInfo {value: req.value,
76627
76628                        responder: SynchronousDatagramSocketSetIpv6ReceivePacketInfoResponder {
76629                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76630                            tx_id: header.tx_id,
76631                        },
76632                    })
76633                }
76634                0x7acd4a2775baec75 => {
76635                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76636                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
76637                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
76638                    let control_handle = SynchronousDatagramSocketControlHandle {
76639                        inner: this.inner.clone(),
76640                    };
76641                    Ok(SynchronousDatagramSocketRequest::GetIpv6ReceivePacketInfo {
76642                        responder: SynchronousDatagramSocketGetIpv6ReceivePacketInfoResponder {
76643                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76644                            tx_id: header.tx_id,
76645                        },
76646                    })
76647                }
76648                0x38bf28f0dafdbac0 => {
76649                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76650                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
76651                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
76652                    let control_handle = SynchronousDatagramSocketControlHandle {
76653                        inner: this.inner.clone(),
76654                    };
76655                    Ok(SynchronousDatagramSocketRequest::GetOriginalDestination {
76656                        responder: SynchronousDatagramSocketGetOriginalDestinationResponder {
76657                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76658                            tx_id: header.tx_id,
76659                        },
76660                    })
76661                }
76662                0x48aa0a1f6a32d2ed => {
76663                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76664                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
76665                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
76666                    let control_handle = SynchronousDatagramSocketControlHandle {
76667                        inner: this.inner.clone(),
76668                    };
76669                    Ok(SynchronousDatagramSocketRequest::GetInfo {
76670                        responder: SynchronousDatagramSocketGetInfoResponder {
76671                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76672                            tx_id: header.tx_id,
76673                        },
76674                    })
76675                }
76676                0x585f20b73631070d => {
76677                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76678                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
76679                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
76680                    let control_handle = SynchronousDatagramSocketControlHandle {
76681                        inner: this.inner.clone(),
76682                    };
76683                    Ok(SynchronousDatagramSocketRequest::Describe {
76684                        responder: SynchronousDatagramSocketDescribeResponder {
76685                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76686                            tx_id: header.tx_id,
76687                        },
76688                    })
76689                }
76690                0x28e494e48fb5dbf3 => {
76691                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76692                    let mut req = fidl::new_empty!(SynchronousDatagramSocketRecvMsgRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
76693                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<SynchronousDatagramSocketRecvMsgRequest>(&header, _body_bytes, handles, &mut req)?;
76694                    let control_handle = SynchronousDatagramSocketControlHandle {
76695                        inner: this.inner.clone(),
76696                    };
76697                    Ok(SynchronousDatagramSocketRequest::RecvMsg {want_addr: req.want_addr,
76698data_len: req.data_len,
76699want_control: req.want_control,
76700flags: req.flags,
76701
76702                        responder: SynchronousDatagramSocketRecvMsgResponder {
76703                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76704                            tx_id: header.tx_id,
76705                        },
76706                    })
76707                }
76708                0x12dc2fceab6cefaa => {
76709                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
76710                    let mut req = fidl::new_empty!(SynchronousDatagramSocketSendMsgRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
76711                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<SynchronousDatagramSocketSendMsgRequest>(&header, _body_bytes, handles, &mut req)?;
76712                    let control_handle = SynchronousDatagramSocketControlHandle {
76713                        inner: this.inner.clone(),
76714                    };
76715                    Ok(SynchronousDatagramSocketRequest::SendMsg {addr: req.addr,
76716data: req.data,
76717control: req.control,
76718flags: req.flags,
76719
76720                        responder: SynchronousDatagramSocketSendMsgResponder {
76721                            control_handle: std::mem::ManuallyDrop::new(control_handle),
76722                            tx_id: header.tx_id,
76723                        },
76724                    })
76725                }
76726                _ => Err(fidl::Error::UnknownOrdinal {
76727                    ordinal: header.ordinal,
76728                    protocol_name: <SynchronousDatagramSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
76729                }),
76730            }))
76731            },
76732        )
76733    }
76734}
76735
76736/// A synchronous datagram socket.
76737///
76738/// This protocol defines synchronous methods for sending and receiving datagram
76739/// payloads over a channel. All methods are nonblocking; their behavior roughly
76740/// matches their Linux counterparts.
76741///
76742/// *Warning:* This protocol is not yet ready for direct use by clients.
76743/// Instead, clients should use the BSD sockets API to interact with sockets.
76744/// We plan to change this protocol substantially and clients that couple
76745/// directly to this protocol will make those changes more difficult.
76746#[derive(Debug)]
76747pub enum SynchronousDatagramSocketRequest {
76748    Clone {
76749        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
76750        control_handle: SynchronousDatagramSocketControlHandle,
76751    },
76752    /// Terminates the connection.
76753    ///
76754    /// After calling `Close`, the client must not send any other requests.
76755    ///
76756    /// Servers, after sending the status response, should close the connection
76757    /// regardless of status and without sending an epitaph.
76758    ///
76759    /// Closing the client end of the channel should be semantically equivalent
76760    /// to calling `Close` without knowing when the close has completed or its
76761    /// status.
76762    Close {
76763        responder: SynchronousDatagramSocketCloseResponder,
76764    },
76765    Query {
76766        responder: SynchronousDatagramSocketQueryResponder,
76767    },
76768    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
76769    SetReuseAddress {
76770        value: bool,
76771        responder: SynchronousDatagramSocketSetReuseAddressResponder,
76772    },
76773    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
76774    GetReuseAddress {
76775        responder: SynchronousDatagramSocketGetReuseAddressResponder,
76776    },
76777    /// Get `SOL_SOCKET` -> `SO_ERROR`.
76778    /// Returns the last error if there is an error set on the socket.
76779    GetError {
76780        responder: SynchronousDatagramSocketGetErrorResponder,
76781    },
76782    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
76783    SetBroadcast {
76784        value: bool,
76785        responder: SynchronousDatagramSocketSetBroadcastResponder,
76786    },
76787    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
76788    GetBroadcast {
76789        responder: SynchronousDatagramSocketGetBroadcastResponder,
76790    },
76791    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
76792    SetSendBuffer {
76793        value_bytes: u64,
76794        responder: SynchronousDatagramSocketSetSendBufferResponder,
76795    },
76796    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
76797    GetSendBuffer {
76798        responder: SynchronousDatagramSocketGetSendBufferResponder,
76799    },
76800    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
76801    SetReceiveBuffer {
76802        value_bytes: u64,
76803        responder: SynchronousDatagramSocketSetReceiveBufferResponder,
76804    },
76805    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
76806    GetReceiveBuffer {
76807        responder: SynchronousDatagramSocketGetReceiveBufferResponder,
76808    },
76809    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
76810    SetKeepAlive {
76811        value: bool,
76812        responder: SynchronousDatagramSocketSetKeepAliveResponder,
76813    },
76814    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
76815    GetKeepAlive {
76816        responder: SynchronousDatagramSocketGetKeepAliveResponder,
76817    },
76818    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
76819    SetOutOfBandInline {
76820        value: bool,
76821        responder: SynchronousDatagramSocketSetOutOfBandInlineResponder,
76822    },
76823    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
76824    GetOutOfBandInline {
76825        responder: SynchronousDatagramSocketGetOutOfBandInlineResponder,
76826    },
76827    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
76828    SetNoCheck {
76829        value: bool,
76830        responder: SynchronousDatagramSocketSetNoCheckResponder,
76831    },
76832    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
76833    GetNoCheck {
76834        responder: SynchronousDatagramSocketGetNoCheckResponder,
76835    },
76836    /// Set `SOL_SOCKET` -> `SO_LINGER`.
76837    SetLinger {
76838        linger: bool,
76839        length_secs: u32,
76840        responder: SynchronousDatagramSocketSetLingerResponder,
76841    },
76842    /// Get `SOL_SOCKET` -> `SO_LINGER`.
76843    GetLinger {
76844        responder: SynchronousDatagramSocketGetLingerResponder,
76845    },
76846    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
76847    SetReusePort {
76848        value: ReusePortOption,
76849        responder: SynchronousDatagramSocketSetReusePortResponder,
76850    },
76851    SetReusePortDeprecated {
76852        value: bool,
76853        responder: SynchronousDatagramSocketSetReusePortDeprecatedResponder,
76854    },
76855    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
76856    GetReusePort {
76857        responder: SynchronousDatagramSocketGetReusePortResponder,
76858    },
76859    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
76860    GetAcceptConn {
76861        responder: SynchronousDatagramSocketGetAcceptConnResponder,
76862    },
76863    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
76864    SetBindToDevice {
76865        value: String,
76866        responder: SynchronousDatagramSocketSetBindToDeviceResponder,
76867    },
76868    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
76869    GetBindToDevice {
76870        responder: SynchronousDatagramSocketGetBindToDeviceResponder,
76871    },
76872    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
76873    /// If `value` is 0, this clears the bound interface.
76874    SetBindToInterfaceIndex {
76875        value: u64,
76876        responder: SynchronousDatagramSocketSetBindToInterfaceIndexResponder,
76877    },
76878    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
76879    GetBindToInterfaceIndex {
76880        responder: SynchronousDatagramSocketGetBindToInterfaceIndexResponder,
76881    },
76882    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
76883    SetTimestamp {
76884        value: TimestampOption,
76885        responder: SynchronousDatagramSocketSetTimestampResponder,
76886    },
76887    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
76888    GetTimestamp {
76889        responder: SynchronousDatagramSocketGetTimestampResponder,
76890    },
76891    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
76892    /// unlike the standard SO_MARK, this API has multiple mark domains and each
76893    /// mark can be set independently in each domain.
76894    SetMark {
76895        domain: fidl_fuchsia_net::MarkDomain,
76896        mark: OptionalUint32,
76897        responder: SynchronousDatagramSocketSetMarkResponder,
76898    },
76899    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
76900    /// unlike the standard SO_MARK, this API has multiple mark domains and each
76901    /// mark can be retrieved independently in each domain.
76902    GetMark {
76903        domain: fidl_fuchsia_net::MarkDomain,
76904        responder: SynchronousDatagramSocketGetMarkResponder,
76905    },
76906    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
76907    GetCookie {
76908        responder: SynchronousDatagramSocketGetCookieResponder,
76909    },
76910    /// Sets the local address used for the socket.
76911    Bind {
76912        addr: fidl_fuchsia_net::SocketAddress,
76913        responder: SynchronousDatagramSocketBindResponder,
76914    },
76915    /// Initiates a connection to a remote address.
76916    Connect {
76917        addr: fidl_fuchsia_net::SocketAddress,
76918        responder: SynchronousDatagramSocketConnectResponder,
76919    },
76920    /// Clears connection information from this socket.
76921    Disconnect {
76922        responder: SynchronousDatagramSocketDisconnectResponder,
76923    },
76924    /// Retrieves the local socket address.
76925    GetSockName {
76926        responder: SynchronousDatagramSocketGetSockNameResponder,
76927    },
76928    /// Retrieves the remote socket address.
76929    GetPeerName {
76930        responder: SynchronousDatagramSocketGetPeerNameResponder,
76931    },
76932    /// Shuts down part of the socket.
76933    Shutdown {
76934        mode: ShutdownMode,
76935        responder: SynchronousDatagramSocketShutdownResponder,
76936    },
76937    /// Set `SOL_IP` -> `IP_TOS`.
76938    SetIpTypeOfService {
76939        value: u8,
76940        responder: SynchronousDatagramSocketSetIpTypeOfServiceResponder,
76941    },
76942    /// Get `SOL_IP` -> `IP_TOS`.
76943    GetIpTypeOfService {
76944        responder: SynchronousDatagramSocketGetIpTypeOfServiceResponder,
76945    },
76946    /// Set `SOL_IP` -> `IP_TTL`.
76947    SetIpTtl {
76948        value: OptionalUint8,
76949        responder: SynchronousDatagramSocketSetIpTtlResponder,
76950    },
76951    /// Get `SOL_IP` -> `IP_TTL`.
76952    GetIpTtl {
76953        responder: SynchronousDatagramSocketGetIpTtlResponder,
76954    },
76955    /// Set `SOL_IP` -> `IP_PKTINFO`.
76956    SetIpPacketInfo {
76957        value: bool,
76958        responder: SynchronousDatagramSocketSetIpPacketInfoResponder,
76959    },
76960    /// Get `SOL_IP` -> `IP_PKTINFO`.
76961    GetIpPacketInfo {
76962        responder: SynchronousDatagramSocketGetIpPacketInfoResponder,
76963    },
76964    /// Set `SOL_IP` -> `IP_RECVTOS`.
76965    SetIpReceiveTypeOfService {
76966        value: bool,
76967        responder: SynchronousDatagramSocketSetIpReceiveTypeOfServiceResponder,
76968    },
76969    /// Get `SOL_IP` -> `IP_RECVTOS`.
76970    GetIpReceiveTypeOfService {
76971        responder: SynchronousDatagramSocketGetIpReceiveTypeOfServiceResponder,
76972    },
76973    /// Set `SOL_IP` -> `IP_RECVTTL`.
76974    SetIpReceiveTtl {
76975        value: bool,
76976        responder: SynchronousDatagramSocketSetIpReceiveTtlResponder,
76977    },
76978    /// Get `SOL_IP` -> `IP_RECVTTL`.
76979    GetIpReceiveTtl {
76980        responder: SynchronousDatagramSocketGetIpReceiveTtlResponder,
76981    },
76982    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
76983    SetIpMulticastInterface {
76984        iface: u64,
76985        address: fidl_fuchsia_net::Ipv4Address,
76986        responder: SynchronousDatagramSocketSetIpMulticastInterfaceResponder,
76987    },
76988    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
76989    GetIpMulticastInterface {
76990        responder: SynchronousDatagramSocketGetIpMulticastInterfaceResponder,
76991    },
76992    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
76993    SetIpMulticastTtl {
76994        value: OptionalUint8,
76995        responder: SynchronousDatagramSocketSetIpMulticastTtlResponder,
76996    },
76997    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
76998    GetIpMulticastTtl {
76999        responder: SynchronousDatagramSocketGetIpMulticastTtlResponder,
77000    },
77001    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
77002    SetIpMulticastLoopback {
77003        value: bool,
77004        responder: SynchronousDatagramSocketSetIpMulticastLoopbackResponder,
77005    },
77006    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
77007    GetIpMulticastLoopback {
77008        responder: SynchronousDatagramSocketGetIpMulticastLoopbackResponder,
77009    },
77010    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
77011    AddIpMembership {
77012        membership: IpMulticastMembership,
77013        responder: SynchronousDatagramSocketAddIpMembershipResponder,
77014    },
77015    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
77016    DropIpMembership {
77017        membership: IpMulticastMembership,
77018        responder: SynchronousDatagramSocketDropIpMembershipResponder,
77019    },
77020    /// Set `SOL_IP` -> `IP_TRANSPARENT`
77021    SetIpTransparent {
77022        value: bool,
77023        responder: SynchronousDatagramSocketSetIpTransparentResponder,
77024    },
77025    /// Get `SOL_IP` -> `IP_TRANSPARENT`
77026    GetIpTransparent {
77027        responder: SynchronousDatagramSocketGetIpTransparentResponder,
77028    },
77029    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
77030    SetIpReceiveOriginalDestinationAddress {
77031        value: bool,
77032        responder: SynchronousDatagramSocketSetIpReceiveOriginalDestinationAddressResponder,
77033    },
77034    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
77035    GetIpReceiveOriginalDestinationAddress {
77036        responder: SynchronousDatagramSocketGetIpReceiveOriginalDestinationAddressResponder,
77037    },
77038    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
77039    AddIpv6Membership {
77040        membership: Ipv6MulticastMembership,
77041        responder: SynchronousDatagramSocketAddIpv6MembershipResponder,
77042    },
77043    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
77044    DropIpv6Membership {
77045        membership: Ipv6MulticastMembership,
77046        responder: SynchronousDatagramSocketDropIpv6MembershipResponder,
77047    },
77048    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
77049    SetIpv6MulticastInterface {
77050        value: u64,
77051        responder: SynchronousDatagramSocketSetIpv6MulticastInterfaceResponder,
77052    },
77053    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
77054    GetIpv6MulticastInterface {
77055        responder: SynchronousDatagramSocketGetIpv6MulticastInterfaceResponder,
77056    },
77057    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
77058    SetIpv6UnicastHops {
77059        value: OptionalUint8,
77060        responder: SynchronousDatagramSocketSetIpv6UnicastHopsResponder,
77061    },
77062    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
77063    GetIpv6UnicastHops {
77064        responder: SynchronousDatagramSocketGetIpv6UnicastHopsResponder,
77065    },
77066    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
77067    SetIpv6ReceiveHopLimit {
77068        value: bool,
77069        responder: SynchronousDatagramSocketSetIpv6ReceiveHopLimitResponder,
77070    },
77071    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
77072    GetIpv6ReceiveHopLimit {
77073        responder: SynchronousDatagramSocketGetIpv6ReceiveHopLimitResponder,
77074    },
77075    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
77076    SetIpv6MulticastHops {
77077        value: OptionalUint8,
77078        responder: SynchronousDatagramSocketSetIpv6MulticastHopsResponder,
77079    },
77080    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
77081    GetIpv6MulticastHops {
77082        responder: SynchronousDatagramSocketGetIpv6MulticastHopsResponder,
77083    },
77084    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
77085    SetIpv6MulticastLoopback {
77086        value: bool,
77087        responder: SynchronousDatagramSocketSetIpv6MulticastLoopbackResponder,
77088    },
77089    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
77090    GetIpv6MulticastLoopback {
77091        responder: SynchronousDatagramSocketGetIpv6MulticastLoopbackResponder,
77092    },
77093    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
77094    SetIpv6Only {
77095        value: bool,
77096        responder: SynchronousDatagramSocketSetIpv6OnlyResponder,
77097    },
77098    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
77099    GetIpv6Only {
77100        responder: SynchronousDatagramSocketGetIpv6OnlyResponder,
77101    },
77102    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
77103    SetIpv6ReceiveTrafficClass {
77104        value: bool,
77105        responder: SynchronousDatagramSocketSetIpv6ReceiveTrafficClassResponder,
77106    },
77107    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
77108    GetIpv6ReceiveTrafficClass {
77109        responder: SynchronousDatagramSocketGetIpv6ReceiveTrafficClassResponder,
77110    },
77111    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
77112    SetIpv6TrafficClass {
77113        value: OptionalUint8,
77114        responder: SynchronousDatagramSocketSetIpv6TrafficClassResponder,
77115    },
77116    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
77117    GetIpv6TrafficClass {
77118        responder: SynchronousDatagramSocketGetIpv6TrafficClassResponder,
77119    },
77120    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
77121    SetIpv6ReceivePacketInfo {
77122        value: bool,
77123        responder: SynchronousDatagramSocketSetIpv6ReceivePacketInfoResponder,
77124    },
77125    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
77126    GetIpv6ReceivePacketInfo {
77127        responder: SynchronousDatagramSocketGetIpv6ReceivePacketInfoResponder,
77128    },
77129    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
77130    GetOriginalDestination {
77131        responder: SynchronousDatagramSocketGetOriginalDestinationResponder,
77132    },
77133    /// Retrieves creation information from the socket.
77134    ///
77135    /// - response `domain` the socket's associated domain.
77136    /// - response `proto` the socket's associated protocol.
77137    GetInfo {
77138        responder: SynchronousDatagramSocketGetInfoResponder,
77139    },
77140    Describe {
77141        responder: SynchronousDatagramSocketDescribeResponder,
77142    },
77143    /// Receives a message from the socket.
77144    ///
77145    /// + request `want_addr` request message's source address information to
77146    ///   be returned.
77147    /// + request `data_len` the maximum allowed length of the response data
77148    ///   buffer.
77149    /// + request `want_control` request ancillary data to be returned.
77150    /// + request `flags` flags for the receive request.
77151    /// - response `addr` the message's source address information, if
77152    ///   requested.
77153    /// - response `data` the message.
77154    /// - response `control` control messages, if requested.
77155    /// - response `truncated` indicates whether or not the returned message
77156    ///   was truncated.
77157    RecvMsg {
77158        want_addr: bool,
77159        data_len: u32,
77160        want_control: bool,
77161        flags: RecvMsgFlags,
77162        responder: SynchronousDatagramSocketRecvMsgResponder,
77163    },
77164    /// Sends a message on the socket.
77165    ///
77166    /// + request `addr` the address to send the message to. If unset, will send
77167    ///   to the connected peer.
77168    /// + request `data` the message.
77169    /// + request `control` ancillary data.
77170    /// + request `flags` flags for the send request.
77171    /// - response `len` the number of bytes sent.
77172    SendMsg {
77173        addr: Option<Box<fidl_fuchsia_net::SocketAddress>>,
77174        data: Vec<u8>,
77175        control: DatagramSocketSendControlData,
77176        flags: SendMsgFlags,
77177        responder: SynchronousDatagramSocketSendMsgResponder,
77178    },
77179}
77180
77181impl SynchronousDatagramSocketRequest {
77182    #[allow(irrefutable_let_patterns)]
77183    pub fn into_clone(
77184        self,
77185    ) -> Option<(
77186        fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
77187        SynchronousDatagramSocketControlHandle,
77188    )> {
77189        if let SynchronousDatagramSocketRequest::Clone { request, control_handle } = self {
77190            Some((request, control_handle))
77191        } else {
77192            None
77193        }
77194    }
77195
77196    #[allow(irrefutable_let_patterns)]
77197    pub fn into_close(self) -> Option<(SynchronousDatagramSocketCloseResponder)> {
77198        if let SynchronousDatagramSocketRequest::Close { responder } = self {
77199            Some((responder))
77200        } else {
77201            None
77202        }
77203    }
77204
77205    #[allow(irrefutable_let_patterns)]
77206    pub fn into_query(self) -> Option<(SynchronousDatagramSocketQueryResponder)> {
77207        if let SynchronousDatagramSocketRequest::Query { responder } = self {
77208            Some((responder))
77209        } else {
77210            None
77211        }
77212    }
77213
77214    #[allow(irrefutable_let_patterns)]
77215    pub fn into_set_reuse_address(
77216        self,
77217    ) -> Option<(bool, SynchronousDatagramSocketSetReuseAddressResponder)> {
77218        if let SynchronousDatagramSocketRequest::SetReuseAddress { value, responder } = self {
77219            Some((value, responder))
77220        } else {
77221            None
77222        }
77223    }
77224
77225    #[allow(irrefutable_let_patterns)]
77226    pub fn into_get_reuse_address(
77227        self,
77228    ) -> Option<(SynchronousDatagramSocketGetReuseAddressResponder)> {
77229        if let SynchronousDatagramSocketRequest::GetReuseAddress { responder } = self {
77230            Some((responder))
77231        } else {
77232            None
77233        }
77234    }
77235
77236    #[allow(irrefutable_let_patterns)]
77237    pub fn into_get_error(self) -> Option<(SynchronousDatagramSocketGetErrorResponder)> {
77238        if let SynchronousDatagramSocketRequest::GetError { responder } = self {
77239            Some((responder))
77240        } else {
77241            None
77242        }
77243    }
77244
77245    #[allow(irrefutable_let_patterns)]
77246    pub fn into_set_broadcast(
77247        self,
77248    ) -> Option<(bool, SynchronousDatagramSocketSetBroadcastResponder)> {
77249        if let SynchronousDatagramSocketRequest::SetBroadcast { value, responder } = self {
77250            Some((value, responder))
77251        } else {
77252            None
77253        }
77254    }
77255
77256    #[allow(irrefutable_let_patterns)]
77257    pub fn into_get_broadcast(self) -> Option<(SynchronousDatagramSocketGetBroadcastResponder)> {
77258        if let SynchronousDatagramSocketRequest::GetBroadcast { responder } = self {
77259            Some((responder))
77260        } else {
77261            None
77262        }
77263    }
77264
77265    #[allow(irrefutable_let_patterns)]
77266    pub fn into_set_send_buffer(
77267        self,
77268    ) -> Option<(u64, SynchronousDatagramSocketSetSendBufferResponder)> {
77269        if let SynchronousDatagramSocketRequest::SetSendBuffer { value_bytes, responder } = self {
77270            Some((value_bytes, responder))
77271        } else {
77272            None
77273        }
77274    }
77275
77276    #[allow(irrefutable_let_patterns)]
77277    pub fn into_get_send_buffer(self) -> Option<(SynchronousDatagramSocketGetSendBufferResponder)> {
77278        if let SynchronousDatagramSocketRequest::GetSendBuffer { responder } = self {
77279            Some((responder))
77280        } else {
77281            None
77282        }
77283    }
77284
77285    #[allow(irrefutable_let_patterns)]
77286    pub fn into_set_receive_buffer(
77287        self,
77288    ) -> Option<(u64, SynchronousDatagramSocketSetReceiveBufferResponder)> {
77289        if let SynchronousDatagramSocketRequest::SetReceiveBuffer { value_bytes, responder } = self
77290        {
77291            Some((value_bytes, responder))
77292        } else {
77293            None
77294        }
77295    }
77296
77297    #[allow(irrefutable_let_patterns)]
77298    pub fn into_get_receive_buffer(
77299        self,
77300    ) -> Option<(SynchronousDatagramSocketGetReceiveBufferResponder)> {
77301        if let SynchronousDatagramSocketRequest::GetReceiveBuffer { responder } = self {
77302            Some((responder))
77303        } else {
77304            None
77305        }
77306    }
77307
77308    #[allow(irrefutable_let_patterns)]
77309    pub fn into_set_keep_alive(
77310        self,
77311    ) -> Option<(bool, SynchronousDatagramSocketSetKeepAliveResponder)> {
77312        if let SynchronousDatagramSocketRequest::SetKeepAlive { value, responder } = self {
77313            Some((value, responder))
77314        } else {
77315            None
77316        }
77317    }
77318
77319    #[allow(irrefutable_let_patterns)]
77320    pub fn into_get_keep_alive(self) -> Option<(SynchronousDatagramSocketGetKeepAliveResponder)> {
77321        if let SynchronousDatagramSocketRequest::GetKeepAlive { responder } = self {
77322            Some((responder))
77323        } else {
77324            None
77325        }
77326    }
77327
77328    #[allow(irrefutable_let_patterns)]
77329    pub fn into_set_out_of_band_inline(
77330        self,
77331    ) -> Option<(bool, SynchronousDatagramSocketSetOutOfBandInlineResponder)> {
77332        if let SynchronousDatagramSocketRequest::SetOutOfBandInline { value, responder } = self {
77333            Some((value, responder))
77334        } else {
77335            None
77336        }
77337    }
77338
77339    #[allow(irrefutable_let_patterns)]
77340    pub fn into_get_out_of_band_inline(
77341        self,
77342    ) -> Option<(SynchronousDatagramSocketGetOutOfBandInlineResponder)> {
77343        if let SynchronousDatagramSocketRequest::GetOutOfBandInline { responder } = self {
77344            Some((responder))
77345        } else {
77346            None
77347        }
77348    }
77349
77350    #[allow(irrefutable_let_patterns)]
77351    pub fn into_set_no_check(self) -> Option<(bool, SynchronousDatagramSocketSetNoCheckResponder)> {
77352        if let SynchronousDatagramSocketRequest::SetNoCheck { value, responder } = self {
77353            Some((value, responder))
77354        } else {
77355            None
77356        }
77357    }
77358
77359    #[allow(irrefutable_let_patterns)]
77360    pub fn into_get_no_check(self) -> Option<(SynchronousDatagramSocketGetNoCheckResponder)> {
77361        if let SynchronousDatagramSocketRequest::GetNoCheck { responder } = self {
77362            Some((responder))
77363        } else {
77364            None
77365        }
77366    }
77367
77368    #[allow(irrefutable_let_patterns)]
77369    pub fn into_set_linger(
77370        self,
77371    ) -> Option<(bool, u32, SynchronousDatagramSocketSetLingerResponder)> {
77372        if let SynchronousDatagramSocketRequest::SetLinger { linger, length_secs, responder } = self
77373        {
77374            Some((linger, length_secs, responder))
77375        } else {
77376            None
77377        }
77378    }
77379
77380    #[allow(irrefutable_let_patterns)]
77381    pub fn into_get_linger(self) -> Option<(SynchronousDatagramSocketGetLingerResponder)> {
77382        if let SynchronousDatagramSocketRequest::GetLinger { responder } = self {
77383            Some((responder))
77384        } else {
77385            None
77386        }
77387    }
77388
77389    #[allow(irrefutable_let_patterns)]
77390    pub fn into_set_reuse_port(
77391        self,
77392    ) -> Option<(ReusePortOption, SynchronousDatagramSocketSetReusePortResponder)> {
77393        if let SynchronousDatagramSocketRequest::SetReusePort { value, responder } = self {
77394            Some((value, responder))
77395        } else {
77396            None
77397        }
77398    }
77399
77400    #[allow(irrefutable_let_patterns)]
77401    pub fn into_set_reuse_port_deprecated(
77402        self,
77403    ) -> Option<(bool, SynchronousDatagramSocketSetReusePortDeprecatedResponder)> {
77404        if let SynchronousDatagramSocketRequest::SetReusePortDeprecated { value, responder } = self
77405        {
77406            Some((value, responder))
77407        } else {
77408            None
77409        }
77410    }
77411
77412    #[allow(irrefutable_let_patterns)]
77413    pub fn into_get_reuse_port(self) -> Option<(SynchronousDatagramSocketGetReusePortResponder)> {
77414        if let SynchronousDatagramSocketRequest::GetReusePort { responder } = self {
77415            Some((responder))
77416        } else {
77417            None
77418        }
77419    }
77420
77421    #[allow(irrefutable_let_patterns)]
77422    pub fn into_get_accept_conn(self) -> Option<(SynchronousDatagramSocketGetAcceptConnResponder)> {
77423        if let SynchronousDatagramSocketRequest::GetAcceptConn { responder } = self {
77424            Some((responder))
77425        } else {
77426            None
77427        }
77428    }
77429
77430    #[allow(irrefutable_let_patterns)]
77431    pub fn into_set_bind_to_device(
77432        self,
77433    ) -> Option<(String, SynchronousDatagramSocketSetBindToDeviceResponder)> {
77434        if let SynchronousDatagramSocketRequest::SetBindToDevice { value, responder } = self {
77435            Some((value, responder))
77436        } else {
77437            None
77438        }
77439    }
77440
77441    #[allow(irrefutable_let_patterns)]
77442    pub fn into_get_bind_to_device(
77443        self,
77444    ) -> Option<(SynchronousDatagramSocketGetBindToDeviceResponder)> {
77445        if let SynchronousDatagramSocketRequest::GetBindToDevice { responder } = self {
77446            Some((responder))
77447        } else {
77448            None
77449        }
77450    }
77451
77452    #[allow(irrefutable_let_patterns)]
77453    pub fn into_set_bind_to_interface_index(
77454        self,
77455    ) -> Option<(u64, SynchronousDatagramSocketSetBindToInterfaceIndexResponder)> {
77456        if let SynchronousDatagramSocketRequest::SetBindToInterfaceIndex { value, responder } = self
77457        {
77458            Some((value, responder))
77459        } else {
77460            None
77461        }
77462    }
77463
77464    #[allow(irrefutable_let_patterns)]
77465    pub fn into_get_bind_to_interface_index(
77466        self,
77467    ) -> Option<(SynchronousDatagramSocketGetBindToInterfaceIndexResponder)> {
77468        if let SynchronousDatagramSocketRequest::GetBindToInterfaceIndex { responder } = self {
77469            Some((responder))
77470        } else {
77471            None
77472        }
77473    }
77474
77475    #[allow(irrefutable_let_patterns)]
77476    pub fn into_set_timestamp(
77477        self,
77478    ) -> Option<(TimestampOption, SynchronousDatagramSocketSetTimestampResponder)> {
77479        if let SynchronousDatagramSocketRequest::SetTimestamp { value, responder } = self {
77480            Some((value, responder))
77481        } else {
77482            None
77483        }
77484    }
77485
77486    #[allow(irrefutable_let_patterns)]
77487    pub fn into_get_timestamp(self) -> Option<(SynchronousDatagramSocketGetTimestampResponder)> {
77488        if let SynchronousDatagramSocketRequest::GetTimestamp { responder } = self {
77489            Some((responder))
77490        } else {
77491            None
77492        }
77493    }
77494
77495    #[allow(irrefutable_let_patterns)]
77496    pub fn into_set_mark(
77497        self,
77498    ) -> Option<(
77499        fidl_fuchsia_net::MarkDomain,
77500        OptionalUint32,
77501        SynchronousDatagramSocketSetMarkResponder,
77502    )> {
77503        if let SynchronousDatagramSocketRequest::SetMark { domain, mark, responder } = self {
77504            Some((domain, mark, responder))
77505        } else {
77506            None
77507        }
77508    }
77509
77510    #[allow(irrefutable_let_patterns)]
77511    pub fn into_get_mark(
77512        self,
77513    ) -> Option<(fidl_fuchsia_net::MarkDomain, SynchronousDatagramSocketGetMarkResponder)> {
77514        if let SynchronousDatagramSocketRequest::GetMark { domain, responder } = self {
77515            Some((domain, responder))
77516        } else {
77517            None
77518        }
77519    }
77520
77521    #[allow(irrefutable_let_patterns)]
77522    pub fn into_get_cookie(self) -> Option<(SynchronousDatagramSocketGetCookieResponder)> {
77523        if let SynchronousDatagramSocketRequest::GetCookie { responder } = self {
77524            Some((responder))
77525        } else {
77526            None
77527        }
77528    }
77529
77530    #[allow(irrefutable_let_patterns)]
77531    pub fn into_bind(
77532        self,
77533    ) -> Option<(fidl_fuchsia_net::SocketAddress, SynchronousDatagramSocketBindResponder)> {
77534        if let SynchronousDatagramSocketRequest::Bind { addr, responder } = self {
77535            Some((addr, responder))
77536        } else {
77537            None
77538        }
77539    }
77540
77541    #[allow(irrefutable_let_patterns)]
77542    pub fn into_connect(
77543        self,
77544    ) -> Option<(fidl_fuchsia_net::SocketAddress, SynchronousDatagramSocketConnectResponder)> {
77545        if let SynchronousDatagramSocketRequest::Connect { addr, responder } = self {
77546            Some((addr, responder))
77547        } else {
77548            None
77549        }
77550    }
77551
77552    #[allow(irrefutable_let_patterns)]
77553    pub fn into_disconnect(self) -> Option<(SynchronousDatagramSocketDisconnectResponder)> {
77554        if let SynchronousDatagramSocketRequest::Disconnect { responder } = self {
77555            Some((responder))
77556        } else {
77557            None
77558        }
77559    }
77560
77561    #[allow(irrefutable_let_patterns)]
77562    pub fn into_get_sock_name(self) -> Option<(SynchronousDatagramSocketGetSockNameResponder)> {
77563        if let SynchronousDatagramSocketRequest::GetSockName { responder } = self {
77564            Some((responder))
77565        } else {
77566            None
77567        }
77568    }
77569
77570    #[allow(irrefutable_let_patterns)]
77571    pub fn into_get_peer_name(self) -> Option<(SynchronousDatagramSocketGetPeerNameResponder)> {
77572        if let SynchronousDatagramSocketRequest::GetPeerName { responder } = self {
77573            Some((responder))
77574        } else {
77575            None
77576        }
77577    }
77578
77579    #[allow(irrefutable_let_patterns)]
77580    pub fn into_shutdown(
77581        self,
77582    ) -> Option<(ShutdownMode, SynchronousDatagramSocketShutdownResponder)> {
77583        if let SynchronousDatagramSocketRequest::Shutdown { mode, responder } = self {
77584            Some((mode, responder))
77585        } else {
77586            None
77587        }
77588    }
77589
77590    #[allow(irrefutable_let_patterns)]
77591    pub fn into_set_ip_type_of_service(
77592        self,
77593    ) -> Option<(u8, SynchronousDatagramSocketSetIpTypeOfServiceResponder)> {
77594        if let SynchronousDatagramSocketRequest::SetIpTypeOfService { value, responder } = self {
77595            Some((value, responder))
77596        } else {
77597            None
77598        }
77599    }
77600
77601    #[allow(irrefutable_let_patterns)]
77602    pub fn into_get_ip_type_of_service(
77603        self,
77604    ) -> Option<(SynchronousDatagramSocketGetIpTypeOfServiceResponder)> {
77605        if let SynchronousDatagramSocketRequest::GetIpTypeOfService { responder } = self {
77606            Some((responder))
77607        } else {
77608            None
77609        }
77610    }
77611
77612    #[allow(irrefutable_let_patterns)]
77613    pub fn into_set_ip_ttl(
77614        self,
77615    ) -> Option<(OptionalUint8, SynchronousDatagramSocketSetIpTtlResponder)> {
77616        if let SynchronousDatagramSocketRequest::SetIpTtl { value, responder } = self {
77617            Some((value, responder))
77618        } else {
77619            None
77620        }
77621    }
77622
77623    #[allow(irrefutable_let_patterns)]
77624    pub fn into_get_ip_ttl(self) -> Option<(SynchronousDatagramSocketGetIpTtlResponder)> {
77625        if let SynchronousDatagramSocketRequest::GetIpTtl { responder } = self {
77626            Some((responder))
77627        } else {
77628            None
77629        }
77630    }
77631
77632    #[allow(irrefutable_let_patterns)]
77633    pub fn into_set_ip_packet_info(
77634        self,
77635    ) -> Option<(bool, SynchronousDatagramSocketSetIpPacketInfoResponder)> {
77636        if let SynchronousDatagramSocketRequest::SetIpPacketInfo { value, responder } = self {
77637            Some((value, responder))
77638        } else {
77639            None
77640        }
77641    }
77642
77643    #[allow(irrefutable_let_patterns)]
77644    pub fn into_get_ip_packet_info(
77645        self,
77646    ) -> Option<(SynchronousDatagramSocketGetIpPacketInfoResponder)> {
77647        if let SynchronousDatagramSocketRequest::GetIpPacketInfo { responder } = self {
77648            Some((responder))
77649        } else {
77650            None
77651        }
77652    }
77653
77654    #[allow(irrefutable_let_patterns)]
77655    pub fn into_set_ip_receive_type_of_service(
77656        self,
77657    ) -> Option<(bool, SynchronousDatagramSocketSetIpReceiveTypeOfServiceResponder)> {
77658        if let SynchronousDatagramSocketRequest::SetIpReceiveTypeOfService { value, responder } =
77659            self
77660        {
77661            Some((value, responder))
77662        } else {
77663            None
77664        }
77665    }
77666
77667    #[allow(irrefutable_let_patterns)]
77668    pub fn into_get_ip_receive_type_of_service(
77669        self,
77670    ) -> Option<(SynchronousDatagramSocketGetIpReceiveTypeOfServiceResponder)> {
77671        if let SynchronousDatagramSocketRequest::GetIpReceiveTypeOfService { responder } = self {
77672            Some((responder))
77673        } else {
77674            None
77675        }
77676    }
77677
77678    #[allow(irrefutable_let_patterns)]
77679    pub fn into_set_ip_receive_ttl(
77680        self,
77681    ) -> Option<(bool, SynchronousDatagramSocketSetIpReceiveTtlResponder)> {
77682        if let SynchronousDatagramSocketRequest::SetIpReceiveTtl { value, responder } = self {
77683            Some((value, responder))
77684        } else {
77685            None
77686        }
77687    }
77688
77689    #[allow(irrefutable_let_patterns)]
77690    pub fn into_get_ip_receive_ttl(
77691        self,
77692    ) -> Option<(SynchronousDatagramSocketGetIpReceiveTtlResponder)> {
77693        if let SynchronousDatagramSocketRequest::GetIpReceiveTtl { responder } = self {
77694            Some((responder))
77695        } else {
77696            None
77697        }
77698    }
77699
77700    #[allow(irrefutable_let_patterns)]
77701    pub fn into_set_ip_multicast_interface(
77702        self,
77703    ) -> Option<(
77704        u64,
77705        fidl_fuchsia_net::Ipv4Address,
77706        SynchronousDatagramSocketSetIpMulticastInterfaceResponder,
77707    )> {
77708        if let SynchronousDatagramSocketRequest::SetIpMulticastInterface {
77709            iface,
77710            address,
77711            responder,
77712        } = self
77713        {
77714            Some((iface, address, responder))
77715        } else {
77716            None
77717        }
77718    }
77719
77720    #[allow(irrefutable_let_patterns)]
77721    pub fn into_get_ip_multicast_interface(
77722        self,
77723    ) -> Option<(SynchronousDatagramSocketGetIpMulticastInterfaceResponder)> {
77724        if let SynchronousDatagramSocketRequest::GetIpMulticastInterface { responder } = self {
77725            Some((responder))
77726        } else {
77727            None
77728        }
77729    }
77730
77731    #[allow(irrefutable_let_patterns)]
77732    pub fn into_set_ip_multicast_ttl(
77733        self,
77734    ) -> Option<(OptionalUint8, SynchronousDatagramSocketSetIpMulticastTtlResponder)> {
77735        if let SynchronousDatagramSocketRequest::SetIpMulticastTtl { value, responder } = self {
77736            Some((value, responder))
77737        } else {
77738            None
77739        }
77740    }
77741
77742    #[allow(irrefutable_let_patterns)]
77743    pub fn into_get_ip_multicast_ttl(
77744        self,
77745    ) -> Option<(SynchronousDatagramSocketGetIpMulticastTtlResponder)> {
77746        if let SynchronousDatagramSocketRequest::GetIpMulticastTtl { responder } = self {
77747            Some((responder))
77748        } else {
77749            None
77750        }
77751    }
77752
77753    #[allow(irrefutable_let_patterns)]
77754    pub fn into_set_ip_multicast_loopback(
77755        self,
77756    ) -> Option<(bool, SynchronousDatagramSocketSetIpMulticastLoopbackResponder)> {
77757        if let SynchronousDatagramSocketRequest::SetIpMulticastLoopback { value, responder } = self
77758        {
77759            Some((value, responder))
77760        } else {
77761            None
77762        }
77763    }
77764
77765    #[allow(irrefutable_let_patterns)]
77766    pub fn into_get_ip_multicast_loopback(
77767        self,
77768    ) -> Option<(SynchronousDatagramSocketGetIpMulticastLoopbackResponder)> {
77769        if let SynchronousDatagramSocketRequest::GetIpMulticastLoopback { responder } = self {
77770            Some((responder))
77771        } else {
77772            None
77773        }
77774    }
77775
77776    #[allow(irrefutable_let_patterns)]
77777    pub fn into_add_ip_membership(
77778        self,
77779    ) -> Option<(IpMulticastMembership, SynchronousDatagramSocketAddIpMembershipResponder)> {
77780        if let SynchronousDatagramSocketRequest::AddIpMembership { membership, responder } = self {
77781            Some((membership, responder))
77782        } else {
77783            None
77784        }
77785    }
77786
77787    #[allow(irrefutable_let_patterns)]
77788    pub fn into_drop_ip_membership(
77789        self,
77790    ) -> Option<(IpMulticastMembership, SynchronousDatagramSocketDropIpMembershipResponder)> {
77791        if let SynchronousDatagramSocketRequest::DropIpMembership { membership, responder } = self {
77792            Some((membership, responder))
77793        } else {
77794            None
77795        }
77796    }
77797
77798    #[allow(irrefutable_let_patterns)]
77799    pub fn into_set_ip_transparent(
77800        self,
77801    ) -> Option<(bool, SynchronousDatagramSocketSetIpTransparentResponder)> {
77802        if let SynchronousDatagramSocketRequest::SetIpTransparent { value, responder } = self {
77803            Some((value, responder))
77804        } else {
77805            None
77806        }
77807    }
77808
77809    #[allow(irrefutable_let_patterns)]
77810    pub fn into_get_ip_transparent(
77811        self,
77812    ) -> Option<(SynchronousDatagramSocketGetIpTransparentResponder)> {
77813        if let SynchronousDatagramSocketRequest::GetIpTransparent { responder } = self {
77814            Some((responder))
77815        } else {
77816            None
77817        }
77818    }
77819
77820    #[allow(irrefutable_let_patterns)]
77821    pub fn into_set_ip_receive_original_destination_address(
77822        self,
77823    ) -> Option<(bool, SynchronousDatagramSocketSetIpReceiveOriginalDestinationAddressResponder)>
77824    {
77825        if let SynchronousDatagramSocketRequest::SetIpReceiveOriginalDestinationAddress {
77826            value,
77827            responder,
77828        } = self
77829        {
77830            Some((value, responder))
77831        } else {
77832            None
77833        }
77834    }
77835
77836    #[allow(irrefutable_let_patterns)]
77837    pub fn into_get_ip_receive_original_destination_address(
77838        self,
77839    ) -> Option<(SynchronousDatagramSocketGetIpReceiveOriginalDestinationAddressResponder)> {
77840        if let SynchronousDatagramSocketRequest::GetIpReceiveOriginalDestinationAddress {
77841            responder,
77842        } = self
77843        {
77844            Some((responder))
77845        } else {
77846            None
77847        }
77848    }
77849
77850    #[allow(irrefutable_let_patterns)]
77851    pub fn into_add_ipv6_membership(
77852        self,
77853    ) -> Option<(Ipv6MulticastMembership, SynchronousDatagramSocketAddIpv6MembershipResponder)>
77854    {
77855        if let SynchronousDatagramSocketRequest::AddIpv6Membership { membership, responder } = self
77856        {
77857            Some((membership, responder))
77858        } else {
77859            None
77860        }
77861    }
77862
77863    #[allow(irrefutable_let_patterns)]
77864    pub fn into_drop_ipv6_membership(
77865        self,
77866    ) -> Option<(Ipv6MulticastMembership, SynchronousDatagramSocketDropIpv6MembershipResponder)>
77867    {
77868        if let SynchronousDatagramSocketRequest::DropIpv6Membership { membership, responder } = self
77869        {
77870            Some((membership, responder))
77871        } else {
77872            None
77873        }
77874    }
77875
77876    #[allow(irrefutable_let_patterns)]
77877    pub fn into_set_ipv6_multicast_interface(
77878        self,
77879    ) -> Option<(u64, SynchronousDatagramSocketSetIpv6MulticastInterfaceResponder)> {
77880        if let SynchronousDatagramSocketRequest::SetIpv6MulticastInterface { value, responder } =
77881            self
77882        {
77883            Some((value, responder))
77884        } else {
77885            None
77886        }
77887    }
77888
77889    #[allow(irrefutable_let_patterns)]
77890    pub fn into_get_ipv6_multicast_interface(
77891        self,
77892    ) -> Option<(SynchronousDatagramSocketGetIpv6MulticastInterfaceResponder)> {
77893        if let SynchronousDatagramSocketRequest::GetIpv6MulticastInterface { responder } = self {
77894            Some((responder))
77895        } else {
77896            None
77897        }
77898    }
77899
77900    #[allow(irrefutable_let_patterns)]
77901    pub fn into_set_ipv6_unicast_hops(
77902        self,
77903    ) -> Option<(OptionalUint8, SynchronousDatagramSocketSetIpv6UnicastHopsResponder)> {
77904        if let SynchronousDatagramSocketRequest::SetIpv6UnicastHops { value, responder } = self {
77905            Some((value, responder))
77906        } else {
77907            None
77908        }
77909    }
77910
77911    #[allow(irrefutable_let_patterns)]
77912    pub fn into_get_ipv6_unicast_hops(
77913        self,
77914    ) -> Option<(SynchronousDatagramSocketGetIpv6UnicastHopsResponder)> {
77915        if let SynchronousDatagramSocketRequest::GetIpv6UnicastHops { responder } = self {
77916            Some((responder))
77917        } else {
77918            None
77919        }
77920    }
77921
77922    #[allow(irrefutable_let_patterns)]
77923    pub fn into_set_ipv6_receive_hop_limit(
77924        self,
77925    ) -> Option<(bool, SynchronousDatagramSocketSetIpv6ReceiveHopLimitResponder)> {
77926        if let SynchronousDatagramSocketRequest::SetIpv6ReceiveHopLimit { value, responder } = self
77927        {
77928            Some((value, responder))
77929        } else {
77930            None
77931        }
77932    }
77933
77934    #[allow(irrefutable_let_patterns)]
77935    pub fn into_get_ipv6_receive_hop_limit(
77936        self,
77937    ) -> Option<(SynchronousDatagramSocketGetIpv6ReceiveHopLimitResponder)> {
77938        if let SynchronousDatagramSocketRequest::GetIpv6ReceiveHopLimit { responder } = self {
77939            Some((responder))
77940        } else {
77941            None
77942        }
77943    }
77944
77945    #[allow(irrefutable_let_patterns)]
77946    pub fn into_set_ipv6_multicast_hops(
77947        self,
77948    ) -> Option<(OptionalUint8, SynchronousDatagramSocketSetIpv6MulticastHopsResponder)> {
77949        if let SynchronousDatagramSocketRequest::SetIpv6MulticastHops { value, responder } = self {
77950            Some((value, responder))
77951        } else {
77952            None
77953        }
77954    }
77955
77956    #[allow(irrefutable_let_patterns)]
77957    pub fn into_get_ipv6_multicast_hops(
77958        self,
77959    ) -> Option<(SynchronousDatagramSocketGetIpv6MulticastHopsResponder)> {
77960        if let SynchronousDatagramSocketRequest::GetIpv6MulticastHops { responder } = self {
77961            Some((responder))
77962        } else {
77963            None
77964        }
77965    }
77966
77967    #[allow(irrefutable_let_patterns)]
77968    pub fn into_set_ipv6_multicast_loopback(
77969        self,
77970    ) -> Option<(bool, SynchronousDatagramSocketSetIpv6MulticastLoopbackResponder)> {
77971        if let SynchronousDatagramSocketRequest::SetIpv6MulticastLoopback { value, responder } =
77972            self
77973        {
77974            Some((value, responder))
77975        } else {
77976            None
77977        }
77978    }
77979
77980    #[allow(irrefutable_let_patterns)]
77981    pub fn into_get_ipv6_multicast_loopback(
77982        self,
77983    ) -> Option<(SynchronousDatagramSocketGetIpv6MulticastLoopbackResponder)> {
77984        if let SynchronousDatagramSocketRequest::GetIpv6MulticastLoopback { responder } = self {
77985            Some((responder))
77986        } else {
77987            None
77988        }
77989    }
77990
77991    #[allow(irrefutable_let_patterns)]
77992    pub fn into_set_ipv6_only(
77993        self,
77994    ) -> Option<(bool, SynchronousDatagramSocketSetIpv6OnlyResponder)> {
77995        if let SynchronousDatagramSocketRequest::SetIpv6Only { value, responder } = self {
77996            Some((value, responder))
77997        } else {
77998            None
77999        }
78000    }
78001
78002    #[allow(irrefutable_let_patterns)]
78003    pub fn into_get_ipv6_only(self) -> Option<(SynchronousDatagramSocketGetIpv6OnlyResponder)> {
78004        if let SynchronousDatagramSocketRequest::GetIpv6Only { responder } = self {
78005            Some((responder))
78006        } else {
78007            None
78008        }
78009    }
78010
78011    #[allow(irrefutable_let_patterns)]
78012    pub fn into_set_ipv6_receive_traffic_class(
78013        self,
78014    ) -> Option<(bool, SynchronousDatagramSocketSetIpv6ReceiveTrafficClassResponder)> {
78015        if let SynchronousDatagramSocketRequest::SetIpv6ReceiveTrafficClass { value, responder } =
78016            self
78017        {
78018            Some((value, responder))
78019        } else {
78020            None
78021        }
78022    }
78023
78024    #[allow(irrefutable_let_patterns)]
78025    pub fn into_get_ipv6_receive_traffic_class(
78026        self,
78027    ) -> Option<(SynchronousDatagramSocketGetIpv6ReceiveTrafficClassResponder)> {
78028        if let SynchronousDatagramSocketRequest::GetIpv6ReceiveTrafficClass { responder } = self {
78029            Some((responder))
78030        } else {
78031            None
78032        }
78033    }
78034
78035    #[allow(irrefutable_let_patterns)]
78036    pub fn into_set_ipv6_traffic_class(
78037        self,
78038    ) -> Option<(OptionalUint8, SynchronousDatagramSocketSetIpv6TrafficClassResponder)> {
78039        if let SynchronousDatagramSocketRequest::SetIpv6TrafficClass { value, responder } = self {
78040            Some((value, responder))
78041        } else {
78042            None
78043        }
78044    }
78045
78046    #[allow(irrefutable_let_patterns)]
78047    pub fn into_get_ipv6_traffic_class(
78048        self,
78049    ) -> Option<(SynchronousDatagramSocketGetIpv6TrafficClassResponder)> {
78050        if let SynchronousDatagramSocketRequest::GetIpv6TrafficClass { responder } = self {
78051            Some((responder))
78052        } else {
78053            None
78054        }
78055    }
78056
78057    #[allow(irrefutable_let_patterns)]
78058    pub fn into_set_ipv6_receive_packet_info(
78059        self,
78060    ) -> Option<(bool, SynchronousDatagramSocketSetIpv6ReceivePacketInfoResponder)> {
78061        if let SynchronousDatagramSocketRequest::SetIpv6ReceivePacketInfo { value, responder } =
78062            self
78063        {
78064            Some((value, responder))
78065        } else {
78066            None
78067        }
78068    }
78069
78070    #[allow(irrefutable_let_patterns)]
78071    pub fn into_get_ipv6_receive_packet_info(
78072        self,
78073    ) -> Option<(SynchronousDatagramSocketGetIpv6ReceivePacketInfoResponder)> {
78074        if let SynchronousDatagramSocketRequest::GetIpv6ReceivePacketInfo { responder } = self {
78075            Some((responder))
78076        } else {
78077            None
78078        }
78079    }
78080
78081    #[allow(irrefutable_let_patterns)]
78082    pub fn into_get_original_destination(
78083        self,
78084    ) -> Option<(SynchronousDatagramSocketGetOriginalDestinationResponder)> {
78085        if let SynchronousDatagramSocketRequest::GetOriginalDestination { responder } = self {
78086            Some((responder))
78087        } else {
78088            None
78089        }
78090    }
78091
78092    #[allow(irrefutable_let_patterns)]
78093    pub fn into_get_info(self) -> Option<(SynchronousDatagramSocketGetInfoResponder)> {
78094        if let SynchronousDatagramSocketRequest::GetInfo { responder } = self {
78095            Some((responder))
78096        } else {
78097            None
78098        }
78099    }
78100
78101    #[allow(irrefutable_let_patterns)]
78102    pub fn into_describe(self) -> Option<(SynchronousDatagramSocketDescribeResponder)> {
78103        if let SynchronousDatagramSocketRequest::Describe { responder } = self {
78104            Some((responder))
78105        } else {
78106            None
78107        }
78108    }
78109
78110    #[allow(irrefutable_let_patterns)]
78111    pub fn into_recv_msg(
78112        self,
78113    ) -> Option<(bool, u32, bool, RecvMsgFlags, SynchronousDatagramSocketRecvMsgResponder)> {
78114        if let SynchronousDatagramSocketRequest::RecvMsg {
78115            want_addr,
78116            data_len,
78117            want_control,
78118            flags,
78119            responder,
78120        } = self
78121        {
78122            Some((want_addr, data_len, want_control, flags, responder))
78123        } else {
78124            None
78125        }
78126    }
78127
78128    #[allow(irrefutable_let_patterns)]
78129    pub fn into_send_msg(
78130        self,
78131    ) -> Option<(
78132        Option<Box<fidl_fuchsia_net::SocketAddress>>,
78133        Vec<u8>,
78134        DatagramSocketSendControlData,
78135        SendMsgFlags,
78136        SynchronousDatagramSocketSendMsgResponder,
78137    )> {
78138        if let SynchronousDatagramSocketRequest::SendMsg { addr, data, control, flags, responder } =
78139            self
78140        {
78141            Some((addr, data, control, flags, responder))
78142        } else {
78143            None
78144        }
78145    }
78146
78147    /// Name of the method defined in FIDL
78148    pub fn method_name(&self) -> &'static str {
78149        match *self {
78150            SynchronousDatagramSocketRequest::Clone { .. } => "clone",
78151            SynchronousDatagramSocketRequest::Close { .. } => "close",
78152            SynchronousDatagramSocketRequest::Query { .. } => "query",
78153            SynchronousDatagramSocketRequest::SetReuseAddress { .. } => "set_reuse_address",
78154            SynchronousDatagramSocketRequest::GetReuseAddress { .. } => "get_reuse_address",
78155            SynchronousDatagramSocketRequest::GetError { .. } => "get_error",
78156            SynchronousDatagramSocketRequest::SetBroadcast { .. } => "set_broadcast",
78157            SynchronousDatagramSocketRequest::GetBroadcast { .. } => "get_broadcast",
78158            SynchronousDatagramSocketRequest::SetSendBuffer { .. } => "set_send_buffer",
78159            SynchronousDatagramSocketRequest::GetSendBuffer { .. } => "get_send_buffer",
78160            SynchronousDatagramSocketRequest::SetReceiveBuffer { .. } => "set_receive_buffer",
78161            SynchronousDatagramSocketRequest::GetReceiveBuffer { .. } => "get_receive_buffer",
78162            SynchronousDatagramSocketRequest::SetKeepAlive { .. } => "set_keep_alive",
78163            SynchronousDatagramSocketRequest::GetKeepAlive { .. } => "get_keep_alive",
78164            SynchronousDatagramSocketRequest::SetOutOfBandInline { .. } => "set_out_of_band_inline",
78165            SynchronousDatagramSocketRequest::GetOutOfBandInline { .. } => "get_out_of_band_inline",
78166            SynchronousDatagramSocketRequest::SetNoCheck { .. } => "set_no_check",
78167            SynchronousDatagramSocketRequest::GetNoCheck { .. } => "get_no_check",
78168            SynchronousDatagramSocketRequest::SetLinger { .. } => "set_linger",
78169            SynchronousDatagramSocketRequest::GetLinger { .. } => "get_linger",
78170            SynchronousDatagramSocketRequest::SetReusePort { .. } => "set_reuse_port",
78171            SynchronousDatagramSocketRequest::SetReusePortDeprecated { .. } => {
78172                "set_reuse_port_deprecated"
78173            }
78174            SynchronousDatagramSocketRequest::GetReusePort { .. } => "get_reuse_port",
78175            SynchronousDatagramSocketRequest::GetAcceptConn { .. } => "get_accept_conn",
78176            SynchronousDatagramSocketRequest::SetBindToDevice { .. } => "set_bind_to_device",
78177            SynchronousDatagramSocketRequest::GetBindToDevice { .. } => "get_bind_to_device",
78178            SynchronousDatagramSocketRequest::SetBindToInterfaceIndex { .. } => {
78179                "set_bind_to_interface_index"
78180            }
78181            SynchronousDatagramSocketRequest::GetBindToInterfaceIndex { .. } => {
78182                "get_bind_to_interface_index"
78183            }
78184            SynchronousDatagramSocketRequest::SetTimestamp { .. } => "set_timestamp",
78185            SynchronousDatagramSocketRequest::GetTimestamp { .. } => "get_timestamp",
78186            SynchronousDatagramSocketRequest::SetMark { .. } => "set_mark",
78187            SynchronousDatagramSocketRequest::GetMark { .. } => "get_mark",
78188            SynchronousDatagramSocketRequest::GetCookie { .. } => "get_cookie",
78189            SynchronousDatagramSocketRequest::Bind { .. } => "bind",
78190            SynchronousDatagramSocketRequest::Connect { .. } => "connect",
78191            SynchronousDatagramSocketRequest::Disconnect { .. } => "disconnect",
78192            SynchronousDatagramSocketRequest::GetSockName { .. } => "get_sock_name",
78193            SynchronousDatagramSocketRequest::GetPeerName { .. } => "get_peer_name",
78194            SynchronousDatagramSocketRequest::Shutdown { .. } => "shutdown",
78195            SynchronousDatagramSocketRequest::SetIpTypeOfService { .. } => "set_ip_type_of_service",
78196            SynchronousDatagramSocketRequest::GetIpTypeOfService { .. } => "get_ip_type_of_service",
78197            SynchronousDatagramSocketRequest::SetIpTtl { .. } => "set_ip_ttl",
78198            SynchronousDatagramSocketRequest::GetIpTtl { .. } => "get_ip_ttl",
78199            SynchronousDatagramSocketRequest::SetIpPacketInfo { .. } => "set_ip_packet_info",
78200            SynchronousDatagramSocketRequest::GetIpPacketInfo { .. } => "get_ip_packet_info",
78201            SynchronousDatagramSocketRequest::SetIpReceiveTypeOfService { .. } => {
78202                "set_ip_receive_type_of_service"
78203            }
78204            SynchronousDatagramSocketRequest::GetIpReceiveTypeOfService { .. } => {
78205                "get_ip_receive_type_of_service"
78206            }
78207            SynchronousDatagramSocketRequest::SetIpReceiveTtl { .. } => "set_ip_receive_ttl",
78208            SynchronousDatagramSocketRequest::GetIpReceiveTtl { .. } => "get_ip_receive_ttl",
78209            SynchronousDatagramSocketRequest::SetIpMulticastInterface { .. } => {
78210                "set_ip_multicast_interface"
78211            }
78212            SynchronousDatagramSocketRequest::GetIpMulticastInterface { .. } => {
78213                "get_ip_multicast_interface"
78214            }
78215            SynchronousDatagramSocketRequest::SetIpMulticastTtl { .. } => "set_ip_multicast_ttl",
78216            SynchronousDatagramSocketRequest::GetIpMulticastTtl { .. } => "get_ip_multicast_ttl",
78217            SynchronousDatagramSocketRequest::SetIpMulticastLoopback { .. } => {
78218                "set_ip_multicast_loopback"
78219            }
78220            SynchronousDatagramSocketRequest::GetIpMulticastLoopback { .. } => {
78221                "get_ip_multicast_loopback"
78222            }
78223            SynchronousDatagramSocketRequest::AddIpMembership { .. } => "add_ip_membership",
78224            SynchronousDatagramSocketRequest::DropIpMembership { .. } => "drop_ip_membership",
78225            SynchronousDatagramSocketRequest::SetIpTransparent { .. } => "set_ip_transparent",
78226            SynchronousDatagramSocketRequest::GetIpTransparent { .. } => "get_ip_transparent",
78227            SynchronousDatagramSocketRequest::SetIpReceiveOriginalDestinationAddress { .. } => {
78228                "set_ip_receive_original_destination_address"
78229            }
78230            SynchronousDatagramSocketRequest::GetIpReceiveOriginalDestinationAddress { .. } => {
78231                "get_ip_receive_original_destination_address"
78232            }
78233            SynchronousDatagramSocketRequest::AddIpv6Membership { .. } => "add_ipv6_membership",
78234            SynchronousDatagramSocketRequest::DropIpv6Membership { .. } => "drop_ipv6_membership",
78235            SynchronousDatagramSocketRequest::SetIpv6MulticastInterface { .. } => {
78236                "set_ipv6_multicast_interface"
78237            }
78238            SynchronousDatagramSocketRequest::GetIpv6MulticastInterface { .. } => {
78239                "get_ipv6_multicast_interface"
78240            }
78241            SynchronousDatagramSocketRequest::SetIpv6UnicastHops { .. } => "set_ipv6_unicast_hops",
78242            SynchronousDatagramSocketRequest::GetIpv6UnicastHops { .. } => "get_ipv6_unicast_hops",
78243            SynchronousDatagramSocketRequest::SetIpv6ReceiveHopLimit { .. } => {
78244                "set_ipv6_receive_hop_limit"
78245            }
78246            SynchronousDatagramSocketRequest::GetIpv6ReceiveHopLimit { .. } => {
78247                "get_ipv6_receive_hop_limit"
78248            }
78249            SynchronousDatagramSocketRequest::SetIpv6MulticastHops { .. } => {
78250                "set_ipv6_multicast_hops"
78251            }
78252            SynchronousDatagramSocketRequest::GetIpv6MulticastHops { .. } => {
78253                "get_ipv6_multicast_hops"
78254            }
78255            SynchronousDatagramSocketRequest::SetIpv6MulticastLoopback { .. } => {
78256                "set_ipv6_multicast_loopback"
78257            }
78258            SynchronousDatagramSocketRequest::GetIpv6MulticastLoopback { .. } => {
78259                "get_ipv6_multicast_loopback"
78260            }
78261            SynchronousDatagramSocketRequest::SetIpv6Only { .. } => "set_ipv6_only",
78262            SynchronousDatagramSocketRequest::GetIpv6Only { .. } => "get_ipv6_only",
78263            SynchronousDatagramSocketRequest::SetIpv6ReceiveTrafficClass { .. } => {
78264                "set_ipv6_receive_traffic_class"
78265            }
78266            SynchronousDatagramSocketRequest::GetIpv6ReceiveTrafficClass { .. } => {
78267                "get_ipv6_receive_traffic_class"
78268            }
78269            SynchronousDatagramSocketRequest::SetIpv6TrafficClass { .. } => {
78270                "set_ipv6_traffic_class"
78271            }
78272            SynchronousDatagramSocketRequest::GetIpv6TrafficClass { .. } => {
78273                "get_ipv6_traffic_class"
78274            }
78275            SynchronousDatagramSocketRequest::SetIpv6ReceivePacketInfo { .. } => {
78276                "set_ipv6_receive_packet_info"
78277            }
78278            SynchronousDatagramSocketRequest::GetIpv6ReceivePacketInfo { .. } => {
78279                "get_ipv6_receive_packet_info"
78280            }
78281            SynchronousDatagramSocketRequest::GetOriginalDestination { .. } => {
78282                "get_original_destination"
78283            }
78284            SynchronousDatagramSocketRequest::GetInfo { .. } => "get_info",
78285            SynchronousDatagramSocketRequest::Describe { .. } => "describe",
78286            SynchronousDatagramSocketRequest::RecvMsg { .. } => "recv_msg",
78287            SynchronousDatagramSocketRequest::SendMsg { .. } => "send_msg",
78288        }
78289    }
78290}
78291
78292#[derive(Debug, Clone)]
78293pub struct SynchronousDatagramSocketControlHandle {
78294    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
78295}
78296
78297impl fidl::endpoints::ControlHandle for SynchronousDatagramSocketControlHandle {
78298    fn shutdown(&self) {
78299        self.inner.shutdown()
78300    }
78301
78302    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
78303        self.inner.shutdown_with_epitaph(status)
78304    }
78305
78306    fn is_closed(&self) -> bool {
78307        self.inner.channel().is_closed()
78308    }
78309    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
78310        self.inner.channel().on_closed()
78311    }
78312
78313    #[cfg(target_os = "fuchsia")]
78314    fn signal_peer(
78315        &self,
78316        clear_mask: zx::Signals,
78317        set_mask: zx::Signals,
78318    ) -> Result<(), zx_status::Status> {
78319        use fidl::Peered;
78320        self.inner.channel().signal_peer(clear_mask, set_mask)
78321    }
78322}
78323
78324impl SynchronousDatagramSocketControlHandle {}
78325
78326#[must_use = "FIDL methods require a response to be sent"]
78327#[derive(Debug)]
78328pub struct SynchronousDatagramSocketCloseResponder {
78329    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78330    tx_id: u32,
78331}
78332
78333/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78334/// if the responder is dropped without sending a response, so that the client
78335/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78336impl std::ops::Drop for SynchronousDatagramSocketCloseResponder {
78337    fn drop(&mut self) {
78338        self.control_handle.shutdown();
78339        // Safety: drops once, never accessed again
78340        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78341    }
78342}
78343
78344impl fidl::endpoints::Responder for SynchronousDatagramSocketCloseResponder {
78345    type ControlHandle = SynchronousDatagramSocketControlHandle;
78346
78347    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78348        &self.control_handle
78349    }
78350
78351    fn drop_without_shutdown(mut self) {
78352        // Safety: drops once, never accessed again due to mem::forget
78353        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78354        // Prevent Drop from running (which would shut down the channel)
78355        std::mem::forget(self);
78356    }
78357}
78358
78359impl SynchronousDatagramSocketCloseResponder {
78360    /// Sends a response to the FIDL transaction.
78361    ///
78362    /// Sets the channel to shutdown if an error occurs.
78363    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
78364        let _result = self.send_raw(result);
78365        if _result.is_err() {
78366            self.control_handle.shutdown();
78367        }
78368        self.drop_without_shutdown();
78369        _result
78370    }
78371
78372    /// Similar to "send" but does not shutdown the channel if an error occurs.
78373    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
78374        let _result = self.send_raw(result);
78375        self.drop_without_shutdown();
78376        _result
78377    }
78378
78379    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
78380        self.control_handle
78381            .inner
78382            .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>>(
78383                result,
78384                self.tx_id,
78385                0x5ac5d459ad7f657e,
78386                fidl::encoding::DynamicFlags::empty(),
78387            )
78388    }
78389}
78390
78391#[must_use = "FIDL methods require a response to be sent"]
78392#[derive(Debug)]
78393pub struct SynchronousDatagramSocketQueryResponder {
78394    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78395    tx_id: u32,
78396}
78397
78398/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78399/// if the responder is dropped without sending a response, so that the client
78400/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78401impl std::ops::Drop for SynchronousDatagramSocketQueryResponder {
78402    fn drop(&mut self) {
78403        self.control_handle.shutdown();
78404        // Safety: drops once, never accessed again
78405        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78406    }
78407}
78408
78409impl fidl::endpoints::Responder for SynchronousDatagramSocketQueryResponder {
78410    type ControlHandle = SynchronousDatagramSocketControlHandle;
78411
78412    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78413        &self.control_handle
78414    }
78415
78416    fn drop_without_shutdown(mut self) {
78417        // Safety: drops once, never accessed again due to mem::forget
78418        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78419        // Prevent Drop from running (which would shut down the channel)
78420        std::mem::forget(self);
78421    }
78422}
78423
78424impl SynchronousDatagramSocketQueryResponder {
78425    /// Sends a response to the FIDL transaction.
78426    ///
78427    /// Sets the channel to shutdown if an error occurs.
78428    pub fn send(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
78429        let _result = self.send_raw(protocol);
78430        if _result.is_err() {
78431            self.control_handle.shutdown();
78432        }
78433        self.drop_without_shutdown();
78434        _result
78435    }
78436
78437    /// Similar to "send" but does not shutdown the channel if an error occurs.
78438    pub fn send_no_shutdown_on_err(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
78439        let _result = self.send_raw(protocol);
78440        self.drop_without_shutdown();
78441        _result
78442    }
78443
78444    fn send_raw(&self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
78445        self.control_handle.inner.send::<fidl_fuchsia_unknown::QueryableQueryResponse>(
78446            (protocol,),
78447            self.tx_id,
78448            0x2658edee9decfc06,
78449            fidl::encoding::DynamicFlags::empty(),
78450        )
78451    }
78452}
78453
78454#[must_use = "FIDL methods require a response to be sent"]
78455#[derive(Debug)]
78456pub struct SynchronousDatagramSocketSetReuseAddressResponder {
78457    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78458    tx_id: u32,
78459}
78460
78461/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78462/// if the responder is dropped without sending a response, so that the client
78463/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78464impl std::ops::Drop for SynchronousDatagramSocketSetReuseAddressResponder {
78465    fn drop(&mut self) {
78466        self.control_handle.shutdown();
78467        // Safety: drops once, never accessed again
78468        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78469    }
78470}
78471
78472impl fidl::endpoints::Responder for SynchronousDatagramSocketSetReuseAddressResponder {
78473    type ControlHandle = SynchronousDatagramSocketControlHandle;
78474
78475    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78476        &self.control_handle
78477    }
78478
78479    fn drop_without_shutdown(mut self) {
78480        // Safety: drops once, never accessed again due to mem::forget
78481        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78482        // Prevent Drop from running (which would shut down the channel)
78483        std::mem::forget(self);
78484    }
78485}
78486
78487impl SynchronousDatagramSocketSetReuseAddressResponder {
78488    /// Sends a response to the FIDL transaction.
78489    ///
78490    /// Sets the channel to shutdown if an error occurs.
78491    pub fn send(
78492        self,
78493        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78494    ) -> Result<(), fidl::Error> {
78495        let _result = self.send_raw(result);
78496        if _result.is_err() {
78497            self.control_handle.shutdown();
78498        }
78499        self.drop_without_shutdown();
78500        _result
78501    }
78502
78503    /// Similar to "send" but does not shutdown the channel if an error occurs.
78504    pub fn send_no_shutdown_on_err(
78505        self,
78506        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78507    ) -> Result<(), fidl::Error> {
78508        let _result = self.send_raw(result);
78509        self.drop_without_shutdown();
78510        _result
78511    }
78512
78513    fn send_raw(
78514        &self,
78515        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78516    ) -> Result<(), fidl::Error> {
78517        self.control_handle.inner.send::<fidl::encoding::ResultType<
78518            fidl::encoding::EmptyStruct,
78519            fidl_fuchsia_posix::Errno,
78520        >>(
78521            result,
78522            self.tx_id,
78523            0x1fd74ee8b9a4a876,
78524            fidl::encoding::DynamicFlags::empty(),
78525        )
78526    }
78527}
78528
78529#[must_use = "FIDL methods require a response to be sent"]
78530#[derive(Debug)]
78531pub struct SynchronousDatagramSocketGetReuseAddressResponder {
78532    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78533    tx_id: u32,
78534}
78535
78536/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78537/// if the responder is dropped without sending a response, so that the client
78538/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78539impl std::ops::Drop for SynchronousDatagramSocketGetReuseAddressResponder {
78540    fn drop(&mut self) {
78541        self.control_handle.shutdown();
78542        // Safety: drops once, never accessed again
78543        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78544    }
78545}
78546
78547impl fidl::endpoints::Responder for SynchronousDatagramSocketGetReuseAddressResponder {
78548    type ControlHandle = SynchronousDatagramSocketControlHandle;
78549
78550    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78551        &self.control_handle
78552    }
78553
78554    fn drop_without_shutdown(mut self) {
78555        // Safety: drops once, never accessed again due to mem::forget
78556        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78557        // Prevent Drop from running (which would shut down the channel)
78558        std::mem::forget(self);
78559    }
78560}
78561
78562impl SynchronousDatagramSocketGetReuseAddressResponder {
78563    /// Sends a response to the FIDL transaction.
78564    ///
78565    /// Sets the channel to shutdown if an error occurs.
78566    pub fn send(
78567        self,
78568        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
78569    ) -> Result<(), fidl::Error> {
78570        let _result = self.send_raw(result);
78571        if _result.is_err() {
78572            self.control_handle.shutdown();
78573        }
78574        self.drop_without_shutdown();
78575        _result
78576    }
78577
78578    /// Similar to "send" but does not shutdown the channel if an error occurs.
78579    pub fn send_no_shutdown_on_err(
78580        self,
78581        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
78582    ) -> Result<(), fidl::Error> {
78583        let _result = self.send_raw(result);
78584        self.drop_without_shutdown();
78585        _result
78586    }
78587
78588    fn send_raw(
78589        &self,
78590        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
78591    ) -> Result<(), fidl::Error> {
78592        self.control_handle.inner.send::<fidl::encoding::ResultType<
78593            BaseSocketGetReuseAddressResponse,
78594            fidl_fuchsia_posix::Errno,
78595        >>(
78596            result.map(|value| (value,)),
78597            self.tx_id,
78598            0x67b7206b8d1bc0a5,
78599            fidl::encoding::DynamicFlags::empty(),
78600        )
78601    }
78602}
78603
78604#[must_use = "FIDL methods require a response to be sent"]
78605#[derive(Debug)]
78606pub struct SynchronousDatagramSocketGetErrorResponder {
78607    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78608    tx_id: u32,
78609}
78610
78611/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78612/// if the responder is dropped without sending a response, so that the client
78613/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78614impl std::ops::Drop for SynchronousDatagramSocketGetErrorResponder {
78615    fn drop(&mut self) {
78616        self.control_handle.shutdown();
78617        // Safety: drops once, never accessed again
78618        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78619    }
78620}
78621
78622impl fidl::endpoints::Responder for SynchronousDatagramSocketGetErrorResponder {
78623    type ControlHandle = SynchronousDatagramSocketControlHandle;
78624
78625    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78626        &self.control_handle
78627    }
78628
78629    fn drop_without_shutdown(mut self) {
78630        // Safety: drops once, never accessed again due to mem::forget
78631        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78632        // Prevent Drop from running (which would shut down the channel)
78633        std::mem::forget(self);
78634    }
78635}
78636
78637impl SynchronousDatagramSocketGetErrorResponder {
78638    /// Sends a response to the FIDL transaction.
78639    ///
78640    /// Sets the channel to shutdown if an error occurs.
78641    pub fn send(
78642        self,
78643        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78644    ) -> Result<(), fidl::Error> {
78645        let _result = self.send_raw(result);
78646        if _result.is_err() {
78647            self.control_handle.shutdown();
78648        }
78649        self.drop_without_shutdown();
78650        _result
78651    }
78652
78653    /// Similar to "send" but does not shutdown the channel if an error occurs.
78654    pub fn send_no_shutdown_on_err(
78655        self,
78656        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78657    ) -> Result<(), fidl::Error> {
78658        let _result = self.send_raw(result);
78659        self.drop_without_shutdown();
78660        _result
78661    }
78662
78663    fn send_raw(
78664        &self,
78665        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78666    ) -> Result<(), fidl::Error> {
78667        self.control_handle.inner.send::<fidl::encoding::ResultType<
78668            fidl::encoding::EmptyStruct,
78669            fidl_fuchsia_posix::Errno,
78670        >>(
78671            result,
78672            self.tx_id,
78673            0x5aad39b33e5f6ebb,
78674            fidl::encoding::DynamicFlags::empty(),
78675        )
78676    }
78677}
78678
78679#[must_use = "FIDL methods require a response to be sent"]
78680#[derive(Debug)]
78681pub struct SynchronousDatagramSocketSetBroadcastResponder {
78682    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78683    tx_id: u32,
78684}
78685
78686/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78687/// if the responder is dropped without sending a response, so that the client
78688/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78689impl std::ops::Drop for SynchronousDatagramSocketSetBroadcastResponder {
78690    fn drop(&mut self) {
78691        self.control_handle.shutdown();
78692        // Safety: drops once, never accessed again
78693        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78694    }
78695}
78696
78697impl fidl::endpoints::Responder for SynchronousDatagramSocketSetBroadcastResponder {
78698    type ControlHandle = SynchronousDatagramSocketControlHandle;
78699
78700    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78701        &self.control_handle
78702    }
78703
78704    fn drop_without_shutdown(mut self) {
78705        // Safety: drops once, never accessed again due to mem::forget
78706        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78707        // Prevent Drop from running (which would shut down the channel)
78708        std::mem::forget(self);
78709    }
78710}
78711
78712impl SynchronousDatagramSocketSetBroadcastResponder {
78713    /// Sends a response to the FIDL transaction.
78714    ///
78715    /// Sets the channel to shutdown if an error occurs.
78716    pub fn send(
78717        self,
78718        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78719    ) -> Result<(), fidl::Error> {
78720        let _result = self.send_raw(result);
78721        if _result.is_err() {
78722            self.control_handle.shutdown();
78723        }
78724        self.drop_without_shutdown();
78725        _result
78726    }
78727
78728    /// Similar to "send" but does not shutdown the channel if an error occurs.
78729    pub fn send_no_shutdown_on_err(
78730        self,
78731        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78732    ) -> Result<(), fidl::Error> {
78733        let _result = self.send_raw(result);
78734        self.drop_without_shutdown();
78735        _result
78736    }
78737
78738    fn send_raw(
78739        &self,
78740        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78741    ) -> Result<(), fidl::Error> {
78742        self.control_handle.inner.send::<fidl::encoding::ResultType<
78743            fidl::encoding::EmptyStruct,
78744            fidl_fuchsia_posix::Errno,
78745        >>(
78746            result,
78747            self.tx_id,
78748            0x6023e081ce3cd947,
78749            fidl::encoding::DynamicFlags::empty(),
78750        )
78751    }
78752}
78753
78754#[must_use = "FIDL methods require a response to be sent"]
78755#[derive(Debug)]
78756pub struct SynchronousDatagramSocketGetBroadcastResponder {
78757    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78758    tx_id: u32,
78759}
78760
78761/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78762/// if the responder is dropped without sending a response, so that the client
78763/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78764impl std::ops::Drop for SynchronousDatagramSocketGetBroadcastResponder {
78765    fn drop(&mut self) {
78766        self.control_handle.shutdown();
78767        // Safety: drops once, never accessed again
78768        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78769    }
78770}
78771
78772impl fidl::endpoints::Responder for SynchronousDatagramSocketGetBroadcastResponder {
78773    type ControlHandle = SynchronousDatagramSocketControlHandle;
78774
78775    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78776        &self.control_handle
78777    }
78778
78779    fn drop_without_shutdown(mut self) {
78780        // Safety: drops once, never accessed again due to mem::forget
78781        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78782        // Prevent Drop from running (which would shut down the channel)
78783        std::mem::forget(self);
78784    }
78785}
78786
78787impl SynchronousDatagramSocketGetBroadcastResponder {
78788    /// Sends a response to the FIDL transaction.
78789    ///
78790    /// Sets the channel to shutdown if an error occurs.
78791    pub fn send(
78792        self,
78793        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
78794    ) -> Result<(), fidl::Error> {
78795        let _result = self.send_raw(result);
78796        if _result.is_err() {
78797            self.control_handle.shutdown();
78798        }
78799        self.drop_without_shutdown();
78800        _result
78801    }
78802
78803    /// Similar to "send" but does not shutdown the channel if an error occurs.
78804    pub fn send_no_shutdown_on_err(
78805        self,
78806        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
78807    ) -> Result<(), fidl::Error> {
78808        let _result = self.send_raw(result);
78809        self.drop_without_shutdown();
78810        _result
78811    }
78812
78813    fn send_raw(
78814        &self,
78815        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
78816    ) -> Result<(), fidl::Error> {
78817        self.control_handle.inner.send::<fidl::encoding::ResultType<
78818            BaseSocketGetBroadcastResponse,
78819            fidl_fuchsia_posix::Errno,
78820        >>(
78821            result.map(|value| (value,)),
78822            self.tx_id,
78823            0x68796fc556f9780d,
78824            fidl::encoding::DynamicFlags::empty(),
78825        )
78826    }
78827}
78828
78829#[must_use = "FIDL methods require a response to be sent"]
78830#[derive(Debug)]
78831pub struct SynchronousDatagramSocketSetSendBufferResponder {
78832    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78833    tx_id: u32,
78834}
78835
78836/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78837/// if the responder is dropped without sending a response, so that the client
78838/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78839impl std::ops::Drop for SynchronousDatagramSocketSetSendBufferResponder {
78840    fn drop(&mut self) {
78841        self.control_handle.shutdown();
78842        // Safety: drops once, never accessed again
78843        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78844    }
78845}
78846
78847impl fidl::endpoints::Responder for SynchronousDatagramSocketSetSendBufferResponder {
78848    type ControlHandle = SynchronousDatagramSocketControlHandle;
78849
78850    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78851        &self.control_handle
78852    }
78853
78854    fn drop_without_shutdown(mut self) {
78855        // Safety: drops once, never accessed again due to mem::forget
78856        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78857        // Prevent Drop from running (which would shut down the channel)
78858        std::mem::forget(self);
78859    }
78860}
78861
78862impl SynchronousDatagramSocketSetSendBufferResponder {
78863    /// Sends a response to the FIDL transaction.
78864    ///
78865    /// Sets the channel to shutdown if an error occurs.
78866    pub fn send(
78867        self,
78868        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78869    ) -> Result<(), fidl::Error> {
78870        let _result = self.send_raw(result);
78871        if _result.is_err() {
78872            self.control_handle.shutdown();
78873        }
78874        self.drop_without_shutdown();
78875        _result
78876    }
78877
78878    /// Similar to "send" but does not shutdown the channel if an error occurs.
78879    pub fn send_no_shutdown_on_err(
78880        self,
78881        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78882    ) -> Result<(), fidl::Error> {
78883        let _result = self.send_raw(result);
78884        self.drop_without_shutdown();
78885        _result
78886    }
78887
78888    fn send_raw(
78889        &self,
78890        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78891    ) -> Result<(), fidl::Error> {
78892        self.control_handle.inner.send::<fidl::encoding::ResultType<
78893            fidl::encoding::EmptyStruct,
78894            fidl_fuchsia_posix::Errno,
78895        >>(
78896            result,
78897            self.tx_id,
78898            0x756eac32d73a7a70,
78899            fidl::encoding::DynamicFlags::empty(),
78900        )
78901    }
78902}
78903
78904#[must_use = "FIDL methods require a response to be sent"]
78905#[derive(Debug)]
78906pub struct SynchronousDatagramSocketGetSendBufferResponder {
78907    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78908    tx_id: u32,
78909}
78910
78911/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78912/// if the responder is dropped without sending a response, so that the client
78913/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78914impl std::ops::Drop for SynchronousDatagramSocketGetSendBufferResponder {
78915    fn drop(&mut self) {
78916        self.control_handle.shutdown();
78917        // Safety: drops once, never accessed again
78918        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78919    }
78920}
78921
78922impl fidl::endpoints::Responder for SynchronousDatagramSocketGetSendBufferResponder {
78923    type ControlHandle = SynchronousDatagramSocketControlHandle;
78924
78925    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78926        &self.control_handle
78927    }
78928
78929    fn drop_without_shutdown(mut self) {
78930        // Safety: drops once, never accessed again due to mem::forget
78931        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78932        // Prevent Drop from running (which would shut down the channel)
78933        std::mem::forget(self);
78934    }
78935}
78936
78937impl SynchronousDatagramSocketGetSendBufferResponder {
78938    /// Sends a response to the FIDL transaction.
78939    ///
78940    /// Sets the channel to shutdown if an error occurs.
78941    pub fn send(
78942        self,
78943        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
78944    ) -> Result<(), fidl::Error> {
78945        let _result = self.send_raw(result);
78946        if _result.is_err() {
78947            self.control_handle.shutdown();
78948        }
78949        self.drop_without_shutdown();
78950        _result
78951    }
78952
78953    /// Similar to "send" but does not shutdown the channel if an error occurs.
78954    pub fn send_no_shutdown_on_err(
78955        self,
78956        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
78957    ) -> Result<(), fidl::Error> {
78958        let _result = self.send_raw(result);
78959        self.drop_without_shutdown();
78960        _result
78961    }
78962
78963    fn send_raw(
78964        &self,
78965        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
78966    ) -> Result<(), fidl::Error> {
78967        self.control_handle.inner.send::<fidl::encoding::ResultType<
78968            BaseSocketGetSendBufferResponse,
78969            fidl_fuchsia_posix::Errno,
78970        >>(
78971            result.map(|value_bytes| (value_bytes,)),
78972            self.tx_id,
78973            0x78a52fd9c7b2410b,
78974            fidl::encoding::DynamicFlags::empty(),
78975        )
78976    }
78977}
78978
78979#[must_use = "FIDL methods require a response to be sent"]
78980#[derive(Debug)]
78981pub struct SynchronousDatagramSocketSetReceiveBufferResponder {
78982    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78983    tx_id: u32,
78984}
78985
78986/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78987/// if the responder is dropped without sending a response, so that the client
78988/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78989impl std::ops::Drop for SynchronousDatagramSocketSetReceiveBufferResponder {
78990    fn drop(&mut self) {
78991        self.control_handle.shutdown();
78992        // Safety: drops once, never accessed again
78993        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78994    }
78995}
78996
78997impl fidl::endpoints::Responder for SynchronousDatagramSocketSetReceiveBufferResponder {
78998    type ControlHandle = SynchronousDatagramSocketControlHandle;
78999
79000    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79001        &self.control_handle
79002    }
79003
79004    fn drop_without_shutdown(mut self) {
79005        // Safety: drops once, never accessed again due to mem::forget
79006        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79007        // Prevent Drop from running (which would shut down the channel)
79008        std::mem::forget(self);
79009    }
79010}
79011
79012impl SynchronousDatagramSocketSetReceiveBufferResponder {
79013    /// Sends a response to the FIDL transaction.
79014    ///
79015    /// Sets the channel to shutdown if an error occurs.
79016    pub fn send(
79017        self,
79018        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79019    ) -> Result<(), fidl::Error> {
79020        let _result = self.send_raw(result);
79021        if _result.is_err() {
79022            self.control_handle.shutdown();
79023        }
79024        self.drop_without_shutdown();
79025        _result
79026    }
79027
79028    /// Similar to "send" but does not shutdown the channel if an error occurs.
79029    pub fn send_no_shutdown_on_err(
79030        self,
79031        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79032    ) -> Result<(), fidl::Error> {
79033        let _result = self.send_raw(result);
79034        self.drop_without_shutdown();
79035        _result
79036    }
79037
79038    fn send_raw(
79039        &self,
79040        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79041    ) -> Result<(), fidl::Error> {
79042        self.control_handle.inner.send::<fidl::encoding::ResultType<
79043            fidl::encoding::EmptyStruct,
79044            fidl_fuchsia_posix::Errno,
79045        >>(
79046            result,
79047            self.tx_id,
79048            0x6b0cf2f1919c7001,
79049            fidl::encoding::DynamicFlags::empty(),
79050        )
79051    }
79052}
79053
79054#[must_use = "FIDL methods require a response to be sent"]
79055#[derive(Debug)]
79056pub struct SynchronousDatagramSocketGetReceiveBufferResponder {
79057    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79058    tx_id: u32,
79059}
79060
79061/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79062/// if the responder is dropped without sending a response, so that the client
79063/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79064impl std::ops::Drop for SynchronousDatagramSocketGetReceiveBufferResponder {
79065    fn drop(&mut self) {
79066        self.control_handle.shutdown();
79067        // Safety: drops once, never accessed again
79068        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79069    }
79070}
79071
79072impl fidl::endpoints::Responder for SynchronousDatagramSocketGetReceiveBufferResponder {
79073    type ControlHandle = SynchronousDatagramSocketControlHandle;
79074
79075    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79076        &self.control_handle
79077    }
79078
79079    fn drop_without_shutdown(mut self) {
79080        // Safety: drops once, never accessed again due to mem::forget
79081        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79082        // Prevent Drop from running (which would shut down the channel)
79083        std::mem::forget(self);
79084    }
79085}
79086
79087impl SynchronousDatagramSocketGetReceiveBufferResponder {
79088    /// Sends a response to the FIDL transaction.
79089    ///
79090    /// Sets the channel to shutdown if an error occurs.
79091    pub fn send(
79092        self,
79093        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
79094    ) -> Result<(), fidl::Error> {
79095        let _result = self.send_raw(result);
79096        if _result.is_err() {
79097            self.control_handle.shutdown();
79098        }
79099        self.drop_without_shutdown();
79100        _result
79101    }
79102
79103    /// Similar to "send" but does not shutdown the channel if an error occurs.
79104    pub fn send_no_shutdown_on_err(
79105        self,
79106        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
79107    ) -> Result<(), fidl::Error> {
79108        let _result = self.send_raw(result);
79109        self.drop_without_shutdown();
79110        _result
79111    }
79112
79113    fn send_raw(
79114        &self,
79115        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
79116    ) -> Result<(), fidl::Error> {
79117        self.control_handle.inner.send::<fidl::encoding::ResultType<
79118            BaseSocketGetReceiveBufferResponse,
79119            fidl_fuchsia_posix::Errno,
79120        >>(
79121            result.map(|value_bytes| (value_bytes,)),
79122            self.tx_id,
79123            0x14c1a4b64f709e5c,
79124            fidl::encoding::DynamicFlags::empty(),
79125        )
79126    }
79127}
79128
79129#[must_use = "FIDL methods require a response to be sent"]
79130#[derive(Debug)]
79131pub struct SynchronousDatagramSocketSetKeepAliveResponder {
79132    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79133    tx_id: u32,
79134}
79135
79136/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79137/// if the responder is dropped without sending a response, so that the client
79138/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79139impl std::ops::Drop for SynchronousDatagramSocketSetKeepAliveResponder {
79140    fn drop(&mut self) {
79141        self.control_handle.shutdown();
79142        // Safety: drops once, never accessed again
79143        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79144    }
79145}
79146
79147impl fidl::endpoints::Responder for SynchronousDatagramSocketSetKeepAliveResponder {
79148    type ControlHandle = SynchronousDatagramSocketControlHandle;
79149
79150    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79151        &self.control_handle
79152    }
79153
79154    fn drop_without_shutdown(mut self) {
79155        // Safety: drops once, never accessed again due to mem::forget
79156        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79157        // Prevent Drop from running (which would shut down the channel)
79158        std::mem::forget(self);
79159    }
79160}
79161
79162impl SynchronousDatagramSocketSetKeepAliveResponder {
79163    /// Sends a response to the FIDL transaction.
79164    ///
79165    /// Sets the channel to shutdown if an error occurs.
79166    pub fn send(
79167        self,
79168        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79169    ) -> Result<(), fidl::Error> {
79170        let _result = self.send_raw(result);
79171        if _result.is_err() {
79172            self.control_handle.shutdown();
79173        }
79174        self.drop_without_shutdown();
79175        _result
79176    }
79177
79178    /// Similar to "send" but does not shutdown the channel if an error occurs.
79179    pub fn send_no_shutdown_on_err(
79180        self,
79181        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79182    ) -> Result<(), fidl::Error> {
79183        let _result = self.send_raw(result);
79184        self.drop_without_shutdown();
79185        _result
79186    }
79187
79188    fn send_raw(
79189        &self,
79190        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79191    ) -> Result<(), fidl::Error> {
79192        self.control_handle.inner.send::<fidl::encoding::ResultType<
79193            fidl::encoding::EmptyStruct,
79194            fidl_fuchsia_posix::Errno,
79195        >>(
79196            result,
79197            self.tx_id,
79198            0x572df8f0b920d2c7,
79199            fidl::encoding::DynamicFlags::empty(),
79200        )
79201    }
79202}
79203
79204#[must_use = "FIDL methods require a response to be sent"]
79205#[derive(Debug)]
79206pub struct SynchronousDatagramSocketGetKeepAliveResponder {
79207    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79208    tx_id: u32,
79209}
79210
79211/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79212/// if the responder is dropped without sending a response, so that the client
79213/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79214impl std::ops::Drop for SynchronousDatagramSocketGetKeepAliveResponder {
79215    fn drop(&mut self) {
79216        self.control_handle.shutdown();
79217        // Safety: drops once, never accessed again
79218        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79219    }
79220}
79221
79222impl fidl::endpoints::Responder for SynchronousDatagramSocketGetKeepAliveResponder {
79223    type ControlHandle = SynchronousDatagramSocketControlHandle;
79224
79225    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79226        &self.control_handle
79227    }
79228
79229    fn drop_without_shutdown(mut self) {
79230        // Safety: drops once, never accessed again due to mem::forget
79231        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79232        // Prevent Drop from running (which would shut down the channel)
79233        std::mem::forget(self);
79234    }
79235}
79236
79237impl SynchronousDatagramSocketGetKeepAliveResponder {
79238    /// Sends a response to the FIDL transaction.
79239    ///
79240    /// Sets the channel to shutdown if an error occurs.
79241    pub fn send(
79242        self,
79243        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
79244    ) -> Result<(), fidl::Error> {
79245        let _result = self.send_raw(result);
79246        if _result.is_err() {
79247            self.control_handle.shutdown();
79248        }
79249        self.drop_without_shutdown();
79250        _result
79251    }
79252
79253    /// Similar to "send" but does not shutdown the channel if an error occurs.
79254    pub fn send_no_shutdown_on_err(
79255        self,
79256        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
79257    ) -> Result<(), fidl::Error> {
79258        let _result = self.send_raw(result);
79259        self.drop_without_shutdown();
79260        _result
79261    }
79262
79263    fn send_raw(
79264        &self,
79265        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
79266    ) -> Result<(), fidl::Error> {
79267        self.control_handle.inner.send::<fidl::encoding::ResultType<
79268            BaseSocketGetKeepAliveResponse,
79269            fidl_fuchsia_posix::Errno,
79270        >>(
79271            result.map(|value| (value,)),
79272            self.tx_id,
79273            0x2dd29d3215f2c9d2,
79274            fidl::encoding::DynamicFlags::empty(),
79275        )
79276    }
79277}
79278
79279#[must_use = "FIDL methods require a response to be sent"]
79280#[derive(Debug)]
79281pub struct SynchronousDatagramSocketSetOutOfBandInlineResponder {
79282    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79283    tx_id: u32,
79284}
79285
79286/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79287/// if the responder is dropped without sending a response, so that the client
79288/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79289impl std::ops::Drop for SynchronousDatagramSocketSetOutOfBandInlineResponder {
79290    fn drop(&mut self) {
79291        self.control_handle.shutdown();
79292        // Safety: drops once, never accessed again
79293        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79294    }
79295}
79296
79297impl fidl::endpoints::Responder for SynchronousDatagramSocketSetOutOfBandInlineResponder {
79298    type ControlHandle = SynchronousDatagramSocketControlHandle;
79299
79300    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79301        &self.control_handle
79302    }
79303
79304    fn drop_without_shutdown(mut self) {
79305        // Safety: drops once, never accessed again due to mem::forget
79306        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79307        // Prevent Drop from running (which would shut down the channel)
79308        std::mem::forget(self);
79309    }
79310}
79311
79312impl SynchronousDatagramSocketSetOutOfBandInlineResponder {
79313    /// Sends a response to the FIDL transaction.
79314    ///
79315    /// Sets the channel to shutdown if an error occurs.
79316    pub fn send(
79317        self,
79318        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79319    ) -> Result<(), fidl::Error> {
79320        let _result = self.send_raw(result);
79321        if _result.is_err() {
79322            self.control_handle.shutdown();
79323        }
79324        self.drop_without_shutdown();
79325        _result
79326    }
79327
79328    /// Similar to "send" but does not shutdown the channel if an error occurs.
79329    pub fn send_no_shutdown_on_err(
79330        self,
79331        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79332    ) -> Result<(), fidl::Error> {
79333        let _result = self.send_raw(result);
79334        self.drop_without_shutdown();
79335        _result
79336    }
79337
79338    fn send_raw(
79339        &self,
79340        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79341    ) -> Result<(), fidl::Error> {
79342        self.control_handle.inner.send::<fidl::encoding::ResultType<
79343            fidl::encoding::EmptyStruct,
79344            fidl_fuchsia_posix::Errno,
79345        >>(
79346            result,
79347            self.tx_id,
79348            0x3ecb49968bee439,
79349            fidl::encoding::DynamicFlags::empty(),
79350        )
79351    }
79352}
79353
79354#[must_use = "FIDL methods require a response to be sent"]
79355#[derive(Debug)]
79356pub struct SynchronousDatagramSocketGetOutOfBandInlineResponder {
79357    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79358    tx_id: u32,
79359}
79360
79361/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79362/// if the responder is dropped without sending a response, so that the client
79363/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79364impl std::ops::Drop for SynchronousDatagramSocketGetOutOfBandInlineResponder {
79365    fn drop(&mut self) {
79366        self.control_handle.shutdown();
79367        // Safety: drops once, never accessed again
79368        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79369    }
79370}
79371
79372impl fidl::endpoints::Responder for SynchronousDatagramSocketGetOutOfBandInlineResponder {
79373    type ControlHandle = SynchronousDatagramSocketControlHandle;
79374
79375    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79376        &self.control_handle
79377    }
79378
79379    fn drop_without_shutdown(mut self) {
79380        // Safety: drops once, never accessed again due to mem::forget
79381        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79382        // Prevent Drop from running (which would shut down the channel)
79383        std::mem::forget(self);
79384    }
79385}
79386
79387impl SynchronousDatagramSocketGetOutOfBandInlineResponder {
79388    /// Sends a response to the FIDL transaction.
79389    ///
79390    /// Sets the channel to shutdown if an error occurs.
79391    pub fn send(
79392        self,
79393        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
79394    ) -> Result<(), fidl::Error> {
79395        let _result = self.send_raw(result);
79396        if _result.is_err() {
79397            self.control_handle.shutdown();
79398        }
79399        self.drop_without_shutdown();
79400        _result
79401    }
79402
79403    /// Similar to "send" but does not shutdown the channel if an error occurs.
79404    pub fn send_no_shutdown_on_err(
79405        self,
79406        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
79407    ) -> Result<(), fidl::Error> {
79408        let _result = self.send_raw(result);
79409        self.drop_without_shutdown();
79410        _result
79411    }
79412
79413    fn send_raw(
79414        &self,
79415        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
79416    ) -> Result<(), fidl::Error> {
79417        self.control_handle.inner.send::<fidl::encoding::ResultType<
79418            BaseSocketGetOutOfBandInlineResponse,
79419            fidl_fuchsia_posix::Errno,
79420        >>(
79421            result.map(|value| (value,)),
79422            self.tx_id,
79423            0x348c1ab3aeca1745,
79424            fidl::encoding::DynamicFlags::empty(),
79425        )
79426    }
79427}
79428
79429#[must_use = "FIDL methods require a response to be sent"]
79430#[derive(Debug)]
79431pub struct SynchronousDatagramSocketSetNoCheckResponder {
79432    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79433    tx_id: u32,
79434}
79435
79436/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79437/// if the responder is dropped without sending a response, so that the client
79438/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79439impl std::ops::Drop for SynchronousDatagramSocketSetNoCheckResponder {
79440    fn drop(&mut self) {
79441        self.control_handle.shutdown();
79442        // Safety: drops once, never accessed again
79443        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79444    }
79445}
79446
79447impl fidl::endpoints::Responder for SynchronousDatagramSocketSetNoCheckResponder {
79448    type ControlHandle = SynchronousDatagramSocketControlHandle;
79449
79450    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79451        &self.control_handle
79452    }
79453
79454    fn drop_without_shutdown(mut self) {
79455        // Safety: drops once, never accessed again due to mem::forget
79456        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79457        // Prevent Drop from running (which would shut down the channel)
79458        std::mem::forget(self);
79459    }
79460}
79461
79462impl SynchronousDatagramSocketSetNoCheckResponder {
79463    /// Sends a response to the FIDL transaction.
79464    ///
79465    /// Sets the channel to shutdown if an error occurs.
79466    pub fn send(
79467        self,
79468        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79469    ) -> Result<(), fidl::Error> {
79470        let _result = self.send_raw(result);
79471        if _result.is_err() {
79472            self.control_handle.shutdown();
79473        }
79474        self.drop_without_shutdown();
79475        _result
79476    }
79477
79478    /// Similar to "send" but does not shutdown the channel if an error occurs.
79479    pub fn send_no_shutdown_on_err(
79480        self,
79481        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79482    ) -> Result<(), fidl::Error> {
79483        let _result = self.send_raw(result);
79484        self.drop_without_shutdown();
79485        _result
79486    }
79487
79488    fn send_raw(
79489        &self,
79490        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79491    ) -> Result<(), fidl::Error> {
79492        self.control_handle.inner.send::<fidl::encoding::ResultType<
79493            fidl::encoding::EmptyStruct,
79494            fidl_fuchsia_posix::Errno,
79495        >>(
79496            result,
79497            self.tx_id,
79498            0x6bbf00c53a4c78c2,
79499            fidl::encoding::DynamicFlags::empty(),
79500        )
79501    }
79502}
79503
79504#[must_use = "FIDL methods require a response to be sent"]
79505#[derive(Debug)]
79506pub struct SynchronousDatagramSocketGetNoCheckResponder {
79507    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79508    tx_id: u32,
79509}
79510
79511/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79512/// if the responder is dropped without sending a response, so that the client
79513/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79514impl std::ops::Drop for SynchronousDatagramSocketGetNoCheckResponder {
79515    fn drop(&mut self) {
79516        self.control_handle.shutdown();
79517        // Safety: drops once, never accessed again
79518        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79519    }
79520}
79521
79522impl fidl::endpoints::Responder for SynchronousDatagramSocketGetNoCheckResponder {
79523    type ControlHandle = SynchronousDatagramSocketControlHandle;
79524
79525    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79526        &self.control_handle
79527    }
79528
79529    fn drop_without_shutdown(mut self) {
79530        // Safety: drops once, never accessed again due to mem::forget
79531        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79532        // Prevent Drop from running (which would shut down the channel)
79533        std::mem::forget(self);
79534    }
79535}
79536
79537impl SynchronousDatagramSocketGetNoCheckResponder {
79538    /// Sends a response to the FIDL transaction.
79539    ///
79540    /// Sets the channel to shutdown if an error occurs.
79541    pub fn send(
79542        self,
79543        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
79544    ) -> Result<(), fidl::Error> {
79545        let _result = self.send_raw(result);
79546        if _result.is_err() {
79547            self.control_handle.shutdown();
79548        }
79549        self.drop_without_shutdown();
79550        _result
79551    }
79552
79553    /// Similar to "send" but does not shutdown the channel if an error occurs.
79554    pub fn send_no_shutdown_on_err(
79555        self,
79556        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
79557    ) -> Result<(), fidl::Error> {
79558        let _result = self.send_raw(result);
79559        self.drop_without_shutdown();
79560        _result
79561    }
79562
79563    fn send_raw(
79564        &self,
79565        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
79566    ) -> Result<(), fidl::Error> {
79567        self.control_handle.inner.send::<fidl::encoding::ResultType<
79568            BaseSocketGetNoCheckResponse,
79569            fidl_fuchsia_posix::Errno,
79570        >>(
79571            result.map(|value| (value,)),
79572            self.tx_id,
79573            0x2cd4249286417694,
79574            fidl::encoding::DynamicFlags::empty(),
79575        )
79576    }
79577}
79578
79579#[must_use = "FIDL methods require a response to be sent"]
79580#[derive(Debug)]
79581pub struct SynchronousDatagramSocketSetLingerResponder {
79582    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79583    tx_id: u32,
79584}
79585
79586/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79587/// if the responder is dropped without sending a response, so that the client
79588/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79589impl std::ops::Drop for SynchronousDatagramSocketSetLingerResponder {
79590    fn drop(&mut self) {
79591        self.control_handle.shutdown();
79592        // Safety: drops once, never accessed again
79593        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79594    }
79595}
79596
79597impl fidl::endpoints::Responder for SynchronousDatagramSocketSetLingerResponder {
79598    type ControlHandle = SynchronousDatagramSocketControlHandle;
79599
79600    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79601        &self.control_handle
79602    }
79603
79604    fn drop_without_shutdown(mut self) {
79605        // Safety: drops once, never accessed again due to mem::forget
79606        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79607        // Prevent Drop from running (which would shut down the channel)
79608        std::mem::forget(self);
79609    }
79610}
79611
79612impl SynchronousDatagramSocketSetLingerResponder {
79613    /// Sends a response to the FIDL transaction.
79614    ///
79615    /// Sets the channel to shutdown if an error occurs.
79616    pub fn send(
79617        self,
79618        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79619    ) -> Result<(), fidl::Error> {
79620        let _result = self.send_raw(result);
79621        if _result.is_err() {
79622            self.control_handle.shutdown();
79623        }
79624        self.drop_without_shutdown();
79625        _result
79626    }
79627
79628    /// Similar to "send" but does not shutdown the channel if an error occurs.
79629    pub fn send_no_shutdown_on_err(
79630        self,
79631        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79632    ) -> Result<(), fidl::Error> {
79633        let _result = self.send_raw(result);
79634        self.drop_without_shutdown();
79635        _result
79636    }
79637
79638    fn send_raw(
79639        &self,
79640        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79641    ) -> Result<(), fidl::Error> {
79642        self.control_handle.inner.send::<fidl::encoding::ResultType<
79643            fidl::encoding::EmptyStruct,
79644            fidl_fuchsia_posix::Errno,
79645        >>(
79646            result,
79647            self.tx_id,
79648            0x45386351246e998e,
79649            fidl::encoding::DynamicFlags::empty(),
79650        )
79651    }
79652}
79653
79654#[must_use = "FIDL methods require a response to be sent"]
79655#[derive(Debug)]
79656pub struct SynchronousDatagramSocketGetLingerResponder {
79657    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79658    tx_id: u32,
79659}
79660
79661/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79662/// if the responder is dropped without sending a response, so that the client
79663/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79664impl std::ops::Drop for SynchronousDatagramSocketGetLingerResponder {
79665    fn drop(&mut self) {
79666        self.control_handle.shutdown();
79667        // Safety: drops once, never accessed again
79668        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79669    }
79670}
79671
79672impl fidl::endpoints::Responder for SynchronousDatagramSocketGetLingerResponder {
79673    type ControlHandle = SynchronousDatagramSocketControlHandle;
79674
79675    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79676        &self.control_handle
79677    }
79678
79679    fn drop_without_shutdown(mut self) {
79680        // Safety: drops once, never accessed again due to mem::forget
79681        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79682        // Prevent Drop from running (which would shut down the channel)
79683        std::mem::forget(self);
79684    }
79685}
79686
79687impl SynchronousDatagramSocketGetLingerResponder {
79688    /// Sends a response to the FIDL transaction.
79689    ///
79690    /// Sets the channel to shutdown if an error occurs.
79691    pub fn send(
79692        self,
79693        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
79694    ) -> Result<(), fidl::Error> {
79695        let _result = self.send_raw(result);
79696        if _result.is_err() {
79697            self.control_handle.shutdown();
79698        }
79699        self.drop_without_shutdown();
79700        _result
79701    }
79702
79703    /// Similar to "send" but does not shutdown the channel if an error occurs.
79704    pub fn send_no_shutdown_on_err(
79705        self,
79706        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
79707    ) -> Result<(), fidl::Error> {
79708        let _result = self.send_raw(result);
79709        self.drop_without_shutdown();
79710        _result
79711    }
79712
79713    fn send_raw(
79714        &self,
79715        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
79716    ) -> Result<(), fidl::Error> {
79717        self.control_handle.inner.send::<fidl::encoding::ResultType<
79718            BaseSocketGetLingerResponse,
79719            fidl_fuchsia_posix::Errno,
79720        >>(
79721            result,
79722            self.tx_id,
79723            0x48eb20fc5ccb0e45,
79724            fidl::encoding::DynamicFlags::empty(),
79725        )
79726    }
79727}
79728
79729#[must_use = "FIDL methods require a response to be sent"]
79730#[derive(Debug)]
79731pub struct SynchronousDatagramSocketSetReusePortResponder {
79732    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79733    tx_id: u32,
79734}
79735
79736/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79737/// if the responder is dropped without sending a response, so that the client
79738/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79739impl std::ops::Drop for SynchronousDatagramSocketSetReusePortResponder {
79740    fn drop(&mut self) {
79741        self.control_handle.shutdown();
79742        // Safety: drops once, never accessed again
79743        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79744    }
79745}
79746
79747impl fidl::endpoints::Responder for SynchronousDatagramSocketSetReusePortResponder {
79748    type ControlHandle = SynchronousDatagramSocketControlHandle;
79749
79750    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79751        &self.control_handle
79752    }
79753
79754    fn drop_without_shutdown(mut self) {
79755        // Safety: drops once, never accessed again due to mem::forget
79756        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79757        // Prevent Drop from running (which would shut down the channel)
79758        std::mem::forget(self);
79759    }
79760}
79761
79762impl SynchronousDatagramSocketSetReusePortResponder {
79763    /// Sends a response to the FIDL transaction.
79764    ///
79765    /// Sets the channel to shutdown if an error occurs.
79766    pub fn send(
79767        self,
79768        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79769    ) -> Result<(), fidl::Error> {
79770        let _result = self.send_raw(result);
79771        if _result.is_err() {
79772            self.control_handle.shutdown();
79773        }
79774        self.drop_without_shutdown();
79775        _result
79776    }
79777
79778    /// Similar to "send" but does not shutdown the channel if an error occurs.
79779    pub fn send_no_shutdown_on_err(
79780        self,
79781        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79782    ) -> Result<(), fidl::Error> {
79783        let _result = self.send_raw(result);
79784        self.drop_without_shutdown();
79785        _result
79786    }
79787
79788    fn send_raw(
79789        &self,
79790        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79791    ) -> Result<(), fidl::Error> {
79792        self.control_handle.inner.send::<fidl::encoding::ResultType<
79793            fidl::encoding::EmptyStruct,
79794            fidl_fuchsia_posix::Errno,
79795        >>(
79796            result,
79797            self.tx_id,
79798            0x547dc9cc0455189e,
79799            fidl::encoding::DynamicFlags::empty(),
79800        )
79801    }
79802}
79803
79804#[must_use = "FIDL methods require a response to be sent"]
79805#[derive(Debug)]
79806pub struct SynchronousDatagramSocketSetReusePortDeprecatedResponder {
79807    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79808    tx_id: u32,
79809}
79810
79811/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79812/// if the responder is dropped without sending a response, so that the client
79813/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79814impl std::ops::Drop for SynchronousDatagramSocketSetReusePortDeprecatedResponder {
79815    fn drop(&mut self) {
79816        self.control_handle.shutdown();
79817        // Safety: drops once, never accessed again
79818        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79819    }
79820}
79821
79822impl fidl::endpoints::Responder for SynchronousDatagramSocketSetReusePortDeprecatedResponder {
79823    type ControlHandle = SynchronousDatagramSocketControlHandle;
79824
79825    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79826        &self.control_handle
79827    }
79828
79829    fn drop_without_shutdown(mut self) {
79830        // Safety: drops once, never accessed again due to mem::forget
79831        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79832        // Prevent Drop from running (which would shut down the channel)
79833        std::mem::forget(self);
79834    }
79835}
79836
79837impl SynchronousDatagramSocketSetReusePortDeprecatedResponder {
79838    /// Sends a response to the FIDL transaction.
79839    ///
79840    /// Sets the channel to shutdown if an error occurs.
79841    pub fn send(
79842        self,
79843        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79844    ) -> Result<(), fidl::Error> {
79845        let _result = self.send_raw(result);
79846        if _result.is_err() {
79847            self.control_handle.shutdown();
79848        }
79849        self.drop_without_shutdown();
79850        _result
79851    }
79852
79853    /// Similar to "send" but does not shutdown the channel if an error occurs.
79854    pub fn send_no_shutdown_on_err(
79855        self,
79856        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79857    ) -> Result<(), fidl::Error> {
79858        let _result = self.send_raw(result);
79859        self.drop_without_shutdown();
79860        _result
79861    }
79862
79863    fn send_raw(
79864        &self,
79865        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79866    ) -> Result<(), fidl::Error> {
79867        self.control_handle.inner.send::<fidl::encoding::ResultType<
79868            fidl::encoding::EmptyStruct,
79869            fidl_fuchsia_posix::Errno,
79870        >>(
79871            result,
79872            self.tx_id,
79873            0x24dd3e5cb36d9ccb,
79874            fidl::encoding::DynamicFlags::empty(),
79875        )
79876    }
79877}
79878
79879#[must_use = "FIDL methods require a response to be sent"]
79880#[derive(Debug)]
79881pub struct SynchronousDatagramSocketGetReusePortResponder {
79882    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79883    tx_id: u32,
79884}
79885
79886/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79887/// if the responder is dropped without sending a response, so that the client
79888/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79889impl std::ops::Drop for SynchronousDatagramSocketGetReusePortResponder {
79890    fn drop(&mut self) {
79891        self.control_handle.shutdown();
79892        // Safety: drops once, never accessed again
79893        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79894    }
79895}
79896
79897impl fidl::endpoints::Responder for SynchronousDatagramSocketGetReusePortResponder {
79898    type ControlHandle = SynchronousDatagramSocketControlHandle;
79899
79900    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79901        &self.control_handle
79902    }
79903
79904    fn drop_without_shutdown(mut self) {
79905        // Safety: drops once, never accessed again due to mem::forget
79906        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79907        // Prevent Drop from running (which would shut down the channel)
79908        std::mem::forget(self);
79909    }
79910}
79911
79912impl SynchronousDatagramSocketGetReusePortResponder {
79913    /// Sends a response to the FIDL transaction.
79914    ///
79915    /// Sets the channel to shutdown if an error occurs.
79916    pub fn send(
79917        self,
79918        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
79919    ) -> Result<(), fidl::Error> {
79920        let _result = self.send_raw(result);
79921        if _result.is_err() {
79922            self.control_handle.shutdown();
79923        }
79924        self.drop_without_shutdown();
79925        _result
79926    }
79927
79928    /// Similar to "send" but does not shutdown the channel if an error occurs.
79929    pub fn send_no_shutdown_on_err(
79930        self,
79931        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
79932    ) -> Result<(), fidl::Error> {
79933        let _result = self.send_raw(result);
79934        self.drop_without_shutdown();
79935        _result
79936    }
79937
79938    fn send_raw(
79939        &self,
79940        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
79941    ) -> Result<(), fidl::Error> {
79942        self.control_handle.inner.send::<fidl::encoding::ResultType<
79943            BaseSocketGetReusePortResponse,
79944            fidl_fuchsia_posix::Errno,
79945        >>(
79946            result.map(|value| (value,)),
79947            self.tx_id,
79948            0x7a112c1ab54ff828,
79949            fidl::encoding::DynamicFlags::empty(),
79950        )
79951    }
79952}
79953
79954#[must_use = "FIDL methods require a response to be sent"]
79955#[derive(Debug)]
79956pub struct SynchronousDatagramSocketGetAcceptConnResponder {
79957    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79958    tx_id: u32,
79959}
79960
79961/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79962/// if the responder is dropped without sending a response, so that the client
79963/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79964impl std::ops::Drop for SynchronousDatagramSocketGetAcceptConnResponder {
79965    fn drop(&mut self) {
79966        self.control_handle.shutdown();
79967        // Safety: drops once, never accessed again
79968        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79969    }
79970}
79971
79972impl fidl::endpoints::Responder for SynchronousDatagramSocketGetAcceptConnResponder {
79973    type ControlHandle = SynchronousDatagramSocketControlHandle;
79974
79975    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79976        &self.control_handle
79977    }
79978
79979    fn drop_without_shutdown(mut self) {
79980        // Safety: drops once, never accessed again due to mem::forget
79981        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79982        // Prevent Drop from running (which would shut down the channel)
79983        std::mem::forget(self);
79984    }
79985}
79986
79987impl SynchronousDatagramSocketGetAcceptConnResponder {
79988    /// Sends a response to the FIDL transaction.
79989    ///
79990    /// Sets the channel to shutdown if an error occurs.
79991    pub fn send(
79992        self,
79993        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
79994    ) -> Result<(), fidl::Error> {
79995        let _result = self.send_raw(result);
79996        if _result.is_err() {
79997            self.control_handle.shutdown();
79998        }
79999        self.drop_without_shutdown();
80000        _result
80001    }
80002
80003    /// Similar to "send" but does not shutdown the channel if an error occurs.
80004    pub fn send_no_shutdown_on_err(
80005        self,
80006        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
80007    ) -> Result<(), fidl::Error> {
80008        let _result = self.send_raw(result);
80009        self.drop_without_shutdown();
80010        _result
80011    }
80012
80013    fn send_raw(
80014        &self,
80015        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
80016    ) -> Result<(), fidl::Error> {
80017        self.control_handle.inner.send::<fidl::encoding::ResultType<
80018            BaseSocketGetAcceptConnResponse,
80019            fidl_fuchsia_posix::Errno,
80020        >>(
80021            result.map(|value| (value,)),
80022            self.tx_id,
80023            0x67ce6db6c2ec8966,
80024            fidl::encoding::DynamicFlags::empty(),
80025        )
80026    }
80027}
80028
80029#[must_use = "FIDL methods require a response to be sent"]
80030#[derive(Debug)]
80031pub struct SynchronousDatagramSocketSetBindToDeviceResponder {
80032    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80033    tx_id: u32,
80034}
80035
80036/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80037/// if the responder is dropped without sending a response, so that the client
80038/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80039impl std::ops::Drop for SynchronousDatagramSocketSetBindToDeviceResponder {
80040    fn drop(&mut self) {
80041        self.control_handle.shutdown();
80042        // Safety: drops once, never accessed again
80043        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80044    }
80045}
80046
80047impl fidl::endpoints::Responder for SynchronousDatagramSocketSetBindToDeviceResponder {
80048    type ControlHandle = SynchronousDatagramSocketControlHandle;
80049
80050    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80051        &self.control_handle
80052    }
80053
80054    fn drop_without_shutdown(mut self) {
80055        // Safety: drops once, never accessed again due to mem::forget
80056        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80057        // Prevent Drop from running (which would shut down the channel)
80058        std::mem::forget(self);
80059    }
80060}
80061
80062impl SynchronousDatagramSocketSetBindToDeviceResponder {
80063    /// Sends a response to the FIDL transaction.
80064    ///
80065    /// Sets the channel to shutdown if an error occurs.
80066    pub fn send(
80067        self,
80068        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80069    ) -> Result<(), fidl::Error> {
80070        let _result = self.send_raw(result);
80071        if _result.is_err() {
80072            self.control_handle.shutdown();
80073        }
80074        self.drop_without_shutdown();
80075        _result
80076    }
80077
80078    /// Similar to "send" but does not shutdown the channel if an error occurs.
80079    pub fn send_no_shutdown_on_err(
80080        self,
80081        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80082    ) -> Result<(), fidl::Error> {
80083        let _result = self.send_raw(result);
80084        self.drop_without_shutdown();
80085        _result
80086    }
80087
80088    fn send_raw(
80089        &self,
80090        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80091    ) -> Result<(), fidl::Error> {
80092        self.control_handle.inner.send::<fidl::encoding::ResultType<
80093            fidl::encoding::EmptyStruct,
80094            fidl_fuchsia_posix::Errno,
80095        >>(
80096            result,
80097            self.tx_id,
80098            0x2118b483f28aafc4,
80099            fidl::encoding::DynamicFlags::empty(),
80100        )
80101    }
80102}
80103
80104#[must_use = "FIDL methods require a response to be sent"]
80105#[derive(Debug)]
80106pub struct SynchronousDatagramSocketGetBindToDeviceResponder {
80107    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80108    tx_id: u32,
80109}
80110
80111/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80112/// if the responder is dropped without sending a response, so that the client
80113/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80114impl std::ops::Drop for SynchronousDatagramSocketGetBindToDeviceResponder {
80115    fn drop(&mut self) {
80116        self.control_handle.shutdown();
80117        // Safety: drops once, never accessed again
80118        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80119    }
80120}
80121
80122impl fidl::endpoints::Responder for SynchronousDatagramSocketGetBindToDeviceResponder {
80123    type ControlHandle = SynchronousDatagramSocketControlHandle;
80124
80125    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80126        &self.control_handle
80127    }
80128
80129    fn drop_without_shutdown(mut self) {
80130        // Safety: drops once, never accessed again due to mem::forget
80131        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80132        // Prevent Drop from running (which would shut down the channel)
80133        std::mem::forget(self);
80134    }
80135}
80136
80137impl SynchronousDatagramSocketGetBindToDeviceResponder {
80138    /// Sends a response to the FIDL transaction.
80139    ///
80140    /// Sets the channel to shutdown if an error occurs.
80141    pub fn send(
80142        self,
80143        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
80144    ) -> Result<(), fidl::Error> {
80145        let _result = self.send_raw(result);
80146        if _result.is_err() {
80147            self.control_handle.shutdown();
80148        }
80149        self.drop_without_shutdown();
80150        _result
80151    }
80152
80153    /// Similar to "send" but does not shutdown the channel if an error occurs.
80154    pub fn send_no_shutdown_on_err(
80155        self,
80156        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
80157    ) -> Result<(), fidl::Error> {
80158        let _result = self.send_raw(result);
80159        self.drop_without_shutdown();
80160        _result
80161    }
80162
80163    fn send_raw(
80164        &self,
80165        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
80166    ) -> Result<(), fidl::Error> {
80167        self.control_handle.inner.send::<fidl::encoding::ResultType<
80168            BaseSocketGetBindToDeviceResponse,
80169            fidl_fuchsia_posix::Errno,
80170        >>(
80171            result.map(|value| (value,)),
80172            self.tx_id,
80173            0x1ab1fbf0ef7906c8,
80174            fidl::encoding::DynamicFlags::empty(),
80175        )
80176    }
80177}
80178
80179#[must_use = "FIDL methods require a response to be sent"]
80180#[derive(Debug)]
80181pub struct SynchronousDatagramSocketSetBindToInterfaceIndexResponder {
80182    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80183    tx_id: u32,
80184}
80185
80186/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80187/// if the responder is dropped without sending a response, so that the client
80188/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80189impl std::ops::Drop for SynchronousDatagramSocketSetBindToInterfaceIndexResponder {
80190    fn drop(&mut self) {
80191        self.control_handle.shutdown();
80192        // Safety: drops once, never accessed again
80193        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80194    }
80195}
80196
80197impl fidl::endpoints::Responder for SynchronousDatagramSocketSetBindToInterfaceIndexResponder {
80198    type ControlHandle = SynchronousDatagramSocketControlHandle;
80199
80200    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80201        &self.control_handle
80202    }
80203
80204    fn drop_without_shutdown(mut self) {
80205        // Safety: drops once, never accessed again due to mem::forget
80206        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80207        // Prevent Drop from running (which would shut down the channel)
80208        std::mem::forget(self);
80209    }
80210}
80211
80212impl SynchronousDatagramSocketSetBindToInterfaceIndexResponder {
80213    /// Sends a response to the FIDL transaction.
80214    ///
80215    /// Sets the channel to shutdown if an error occurs.
80216    pub fn send(
80217        self,
80218        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80219    ) -> Result<(), fidl::Error> {
80220        let _result = self.send_raw(result);
80221        if _result.is_err() {
80222            self.control_handle.shutdown();
80223        }
80224        self.drop_without_shutdown();
80225        _result
80226    }
80227
80228    /// Similar to "send" but does not shutdown the channel if an error occurs.
80229    pub fn send_no_shutdown_on_err(
80230        self,
80231        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80232    ) -> Result<(), fidl::Error> {
80233        let _result = self.send_raw(result);
80234        self.drop_without_shutdown();
80235        _result
80236    }
80237
80238    fn send_raw(
80239        &self,
80240        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80241    ) -> Result<(), fidl::Error> {
80242        self.control_handle.inner.send::<fidl::encoding::ResultType<
80243            fidl::encoding::EmptyStruct,
80244            fidl_fuchsia_posix::Errno,
80245        >>(
80246            result,
80247            self.tx_id,
80248            0x6e387a0def00821,
80249            fidl::encoding::DynamicFlags::empty(),
80250        )
80251    }
80252}
80253
80254#[must_use = "FIDL methods require a response to be sent"]
80255#[derive(Debug)]
80256pub struct SynchronousDatagramSocketGetBindToInterfaceIndexResponder {
80257    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80258    tx_id: u32,
80259}
80260
80261/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80262/// if the responder is dropped without sending a response, so that the client
80263/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80264impl std::ops::Drop for SynchronousDatagramSocketGetBindToInterfaceIndexResponder {
80265    fn drop(&mut self) {
80266        self.control_handle.shutdown();
80267        // Safety: drops once, never accessed again
80268        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80269    }
80270}
80271
80272impl fidl::endpoints::Responder for SynchronousDatagramSocketGetBindToInterfaceIndexResponder {
80273    type ControlHandle = SynchronousDatagramSocketControlHandle;
80274
80275    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80276        &self.control_handle
80277    }
80278
80279    fn drop_without_shutdown(mut self) {
80280        // Safety: drops once, never accessed again due to mem::forget
80281        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80282        // Prevent Drop from running (which would shut down the channel)
80283        std::mem::forget(self);
80284    }
80285}
80286
80287impl SynchronousDatagramSocketGetBindToInterfaceIndexResponder {
80288    /// Sends a response to the FIDL transaction.
80289    ///
80290    /// Sets the channel to shutdown if an error occurs.
80291    pub fn send(
80292        self,
80293        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
80294    ) -> Result<(), fidl::Error> {
80295        let _result = self.send_raw(result);
80296        if _result.is_err() {
80297            self.control_handle.shutdown();
80298        }
80299        self.drop_without_shutdown();
80300        _result
80301    }
80302
80303    /// Similar to "send" but does not shutdown the channel if an error occurs.
80304    pub fn send_no_shutdown_on_err(
80305        self,
80306        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
80307    ) -> Result<(), fidl::Error> {
80308        let _result = self.send_raw(result);
80309        self.drop_without_shutdown();
80310        _result
80311    }
80312
80313    fn send_raw(
80314        &self,
80315        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
80316    ) -> Result<(), fidl::Error> {
80317        self.control_handle.inner.send::<fidl::encoding::ResultType<
80318            BaseSocketGetBindToInterfaceIndexResponse,
80319            fidl_fuchsia_posix::Errno,
80320        >>(
80321            result.map(|value| (value,)),
80322            self.tx_id,
80323            0x59c31dd3e3078295,
80324            fidl::encoding::DynamicFlags::empty(),
80325        )
80326    }
80327}
80328
80329#[must_use = "FIDL methods require a response to be sent"]
80330#[derive(Debug)]
80331pub struct SynchronousDatagramSocketSetTimestampResponder {
80332    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80333    tx_id: u32,
80334}
80335
80336/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80337/// if the responder is dropped without sending a response, so that the client
80338/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80339impl std::ops::Drop for SynchronousDatagramSocketSetTimestampResponder {
80340    fn drop(&mut self) {
80341        self.control_handle.shutdown();
80342        // Safety: drops once, never accessed again
80343        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80344    }
80345}
80346
80347impl fidl::endpoints::Responder for SynchronousDatagramSocketSetTimestampResponder {
80348    type ControlHandle = SynchronousDatagramSocketControlHandle;
80349
80350    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80351        &self.control_handle
80352    }
80353
80354    fn drop_without_shutdown(mut self) {
80355        // Safety: drops once, never accessed again due to mem::forget
80356        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80357        // Prevent Drop from running (which would shut down the channel)
80358        std::mem::forget(self);
80359    }
80360}
80361
80362impl SynchronousDatagramSocketSetTimestampResponder {
80363    /// Sends a response to the FIDL transaction.
80364    ///
80365    /// Sets the channel to shutdown if an error occurs.
80366    pub fn send(
80367        self,
80368        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80369    ) -> Result<(), fidl::Error> {
80370        let _result = self.send_raw(result);
80371        if _result.is_err() {
80372            self.control_handle.shutdown();
80373        }
80374        self.drop_without_shutdown();
80375        _result
80376    }
80377
80378    /// Similar to "send" but does not shutdown the channel if an error occurs.
80379    pub fn send_no_shutdown_on_err(
80380        self,
80381        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80382    ) -> Result<(), fidl::Error> {
80383        let _result = self.send_raw(result);
80384        self.drop_without_shutdown();
80385        _result
80386    }
80387
80388    fn send_raw(
80389        &self,
80390        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80391    ) -> Result<(), fidl::Error> {
80392        self.control_handle.inner.send::<fidl::encoding::ResultType<
80393            fidl::encoding::EmptyStruct,
80394            fidl_fuchsia_posix::Errno,
80395        >>(
80396            result,
80397            self.tx_id,
80398            0x285d6516c263d839,
80399            fidl::encoding::DynamicFlags::empty(),
80400        )
80401    }
80402}
80403
80404#[must_use = "FIDL methods require a response to be sent"]
80405#[derive(Debug)]
80406pub struct SynchronousDatagramSocketGetTimestampResponder {
80407    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80408    tx_id: u32,
80409}
80410
80411/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80412/// if the responder is dropped without sending a response, so that the client
80413/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80414impl std::ops::Drop for SynchronousDatagramSocketGetTimestampResponder {
80415    fn drop(&mut self) {
80416        self.control_handle.shutdown();
80417        // Safety: drops once, never accessed again
80418        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80419    }
80420}
80421
80422impl fidl::endpoints::Responder for SynchronousDatagramSocketGetTimestampResponder {
80423    type ControlHandle = SynchronousDatagramSocketControlHandle;
80424
80425    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80426        &self.control_handle
80427    }
80428
80429    fn drop_without_shutdown(mut self) {
80430        // Safety: drops once, never accessed again due to mem::forget
80431        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80432        // Prevent Drop from running (which would shut down the channel)
80433        std::mem::forget(self);
80434    }
80435}
80436
80437impl SynchronousDatagramSocketGetTimestampResponder {
80438    /// Sends a response to the FIDL transaction.
80439    ///
80440    /// Sets the channel to shutdown if an error occurs.
80441    pub fn send(
80442        self,
80443        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
80444    ) -> Result<(), fidl::Error> {
80445        let _result = self.send_raw(result);
80446        if _result.is_err() {
80447            self.control_handle.shutdown();
80448        }
80449        self.drop_without_shutdown();
80450        _result
80451    }
80452
80453    /// Similar to "send" but does not shutdown the channel if an error occurs.
80454    pub fn send_no_shutdown_on_err(
80455        self,
80456        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
80457    ) -> Result<(), fidl::Error> {
80458        let _result = self.send_raw(result);
80459        self.drop_without_shutdown();
80460        _result
80461    }
80462
80463    fn send_raw(
80464        &self,
80465        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
80466    ) -> Result<(), fidl::Error> {
80467        self.control_handle.inner.send::<fidl::encoding::ResultType<
80468            BaseSocketGetTimestampResponse,
80469            fidl_fuchsia_posix::Errno,
80470        >>(
80471            result.map(|value| (value,)),
80472            self.tx_id,
80473            0x49f2fffbbcc2bd27,
80474            fidl::encoding::DynamicFlags::empty(),
80475        )
80476    }
80477}
80478
80479#[must_use = "FIDL methods require a response to be sent"]
80480#[derive(Debug)]
80481pub struct SynchronousDatagramSocketSetMarkResponder {
80482    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80483    tx_id: u32,
80484}
80485
80486/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80487/// if the responder is dropped without sending a response, so that the client
80488/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80489impl std::ops::Drop for SynchronousDatagramSocketSetMarkResponder {
80490    fn drop(&mut self) {
80491        self.control_handle.shutdown();
80492        // Safety: drops once, never accessed again
80493        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80494    }
80495}
80496
80497impl fidl::endpoints::Responder for SynchronousDatagramSocketSetMarkResponder {
80498    type ControlHandle = SynchronousDatagramSocketControlHandle;
80499
80500    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80501        &self.control_handle
80502    }
80503
80504    fn drop_without_shutdown(mut self) {
80505        // Safety: drops once, never accessed again due to mem::forget
80506        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80507        // Prevent Drop from running (which would shut down the channel)
80508        std::mem::forget(self);
80509    }
80510}
80511
80512impl SynchronousDatagramSocketSetMarkResponder {
80513    /// Sends a response to the FIDL transaction.
80514    ///
80515    /// Sets the channel to shutdown if an error occurs.
80516    pub fn send(
80517        self,
80518        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80519    ) -> Result<(), fidl::Error> {
80520        let _result = self.send_raw(result);
80521        if _result.is_err() {
80522            self.control_handle.shutdown();
80523        }
80524        self.drop_without_shutdown();
80525        _result
80526    }
80527
80528    /// Similar to "send" but does not shutdown the channel if an error occurs.
80529    pub fn send_no_shutdown_on_err(
80530        self,
80531        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80532    ) -> Result<(), fidl::Error> {
80533        let _result = self.send_raw(result);
80534        self.drop_without_shutdown();
80535        _result
80536    }
80537
80538    fn send_raw(
80539        &self,
80540        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80541    ) -> Result<(), fidl::Error> {
80542        self.control_handle.inner.send::<fidl::encoding::ResultType<
80543            fidl::encoding::EmptyStruct,
80544            fidl_fuchsia_posix::Errno,
80545        >>(
80546            result,
80547            self.tx_id,
80548            0x6ead6de09f653236,
80549            fidl::encoding::DynamicFlags::empty(),
80550        )
80551    }
80552}
80553
80554#[must_use = "FIDL methods require a response to be sent"]
80555#[derive(Debug)]
80556pub struct SynchronousDatagramSocketGetMarkResponder {
80557    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80558    tx_id: u32,
80559}
80560
80561/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80562/// if the responder is dropped without sending a response, so that the client
80563/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80564impl std::ops::Drop for SynchronousDatagramSocketGetMarkResponder {
80565    fn drop(&mut self) {
80566        self.control_handle.shutdown();
80567        // Safety: drops once, never accessed again
80568        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80569    }
80570}
80571
80572impl fidl::endpoints::Responder for SynchronousDatagramSocketGetMarkResponder {
80573    type ControlHandle = SynchronousDatagramSocketControlHandle;
80574
80575    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80576        &self.control_handle
80577    }
80578
80579    fn drop_without_shutdown(mut self) {
80580        // Safety: drops once, never accessed again due to mem::forget
80581        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80582        // Prevent Drop from running (which would shut down the channel)
80583        std::mem::forget(self);
80584    }
80585}
80586
80587impl SynchronousDatagramSocketGetMarkResponder {
80588    /// Sends a response to the FIDL transaction.
80589    ///
80590    /// Sets the channel to shutdown if an error occurs.
80591    pub fn send(
80592        self,
80593        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
80594    ) -> Result<(), fidl::Error> {
80595        let _result = self.send_raw(result);
80596        if _result.is_err() {
80597            self.control_handle.shutdown();
80598        }
80599        self.drop_without_shutdown();
80600        _result
80601    }
80602
80603    /// Similar to "send" but does not shutdown the channel if an error occurs.
80604    pub fn send_no_shutdown_on_err(
80605        self,
80606        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
80607    ) -> Result<(), fidl::Error> {
80608        let _result = self.send_raw(result);
80609        self.drop_without_shutdown();
80610        _result
80611    }
80612
80613    fn send_raw(
80614        &self,
80615        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
80616    ) -> Result<(), fidl::Error> {
80617        self.control_handle.inner.send::<fidl::encoding::ResultType<
80618            BaseSocketGetMarkResponse,
80619            fidl_fuchsia_posix::Errno,
80620        >>(
80621            result.map(|mark| (mark,)),
80622            self.tx_id,
80623            0x57a2752c61d93d47,
80624            fidl::encoding::DynamicFlags::empty(),
80625        )
80626    }
80627}
80628
80629#[must_use = "FIDL methods require a response to be sent"]
80630#[derive(Debug)]
80631pub struct SynchronousDatagramSocketGetCookieResponder {
80632    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80633    tx_id: u32,
80634}
80635
80636/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80637/// if the responder is dropped without sending a response, so that the client
80638/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80639impl std::ops::Drop for SynchronousDatagramSocketGetCookieResponder {
80640    fn drop(&mut self) {
80641        self.control_handle.shutdown();
80642        // Safety: drops once, never accessed again
80643        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80644    }
80645}
80646
80647impl fidl::endpoints::Responder for SynchronousDatagramSocketGetCookieResponder {
80648    type ControlHandle = SynchronousDatagramSocketControlHandle;
80649
80650    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80651        &self.control_handle
80652    }
80653
80654    fn drop_without_shutdown(mut self) {
80655        // Safety: drops once, never accessed again due to mem::forget
80656        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80657        // Prevent Drop from running (which would shut down the channel)
80658        std::mem::forget(self);
80659    }
80660}
80661
80662impl SynchronousDatagramSocketGetCookieResponder {
80663    /// Sends a response to the FIDL transaction.
80664    ///
80665    /// Sets the channel to shutdown if an error occurs.
80666    pub fn send(
80667        self,
80668        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
80669    ) -> Result<(), fidl::Error> {
80670        let _result = self.send_raw(result);
80671        if _result.is_err() {
80672            self.control_handle.shutdown();
80673        }
80674        self.drop_without_shutdown();
80675        _result
80676    }
80677
80678    /// Similar to "send" but does not shutdown the channel if an error occurs.
80679    pub fn send_no_shutdown_on_err(
80680        self,
80681        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
80682    ) -> Result<(), fidl::Error> {
80683        let _result = self.send_raw(result);
80684        self.drop_without_shutdown();
80685        _result
80686    }
80687
80688    fn send_raw(
80689        &self,
80690        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
80691    ) -> Result<(), fidl::Error> {
80692        self.control_handle.inner.send::<fidl::encoding::ResultType<
80693            BaseSocketGetCookieResponse,
80694            fidl_fuchsia_posix::Errno,
80695        >>(
80696            result.map(|value| (value,)),
80697            self.tx_id,
80698            0x2c2f47fd8f924e52,
80699            fidl::encoding::DynamicFlags::empty(),
80700        )
80701    }
80702}
80703
80704#[must_use = "FIDL methods require a response to be sent"]
80705#[derive(Debug)]
80706pub struct SynchronousDatagramSocketBindResponder {
80707    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80708    tx_id: u32,
80709}
80710
80711/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80712/// if the responder is dropped without sending a response, so that the client
80713/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80714impl std::ops::Drop for SynchronousDatagramSocketBindResponder {
80715    fn drop(&mut self) {
80716        self.control_handle.shutdown();
80717        // Safety: drops once, never accessed again
80718        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80719    }
80720}
80721
80722impl fidl::endpoints::Responder for SynchronousDatagramSocketBindResponder {
80723    type ControlHandle = SynchronousDatagramSocketControlHandle;
80724
80725    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80726        &self.control_handle
80727    }
80728
80729    fn drop_without_shutdown(mut self) {
80730        // Safety: drops once, never accessed again due to mem::forget
80731        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80732        // Prevent Drop from running (which would shut down the channel)
80733        std::mem::forget(self);
80734    }
80735}
80736
80737impl SynchronousDatagramSocketBindResponder {
80738    /// Sends a response to the FIDL transaction.
80739    ///
80740    /// Sets the channel to shutdown if an error occurs.
80741    pub fn send(
80742        self,
80743        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80744    ) -> Result<(), fidl::Error> {
80745        let _result = self.send_raw(result);
80746        if _result.is_err() {
80747            self.control_handle.shutdown();
80748        }
80749        self.drop_without_shutdown();
80750        _result
80751    }
80752
80753    /// Similar to "send" but does not shutdown the channel if an error occurs.
80754    pub fn send_no_shutdown_on_err(
80755        self,
80756        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80757    ) -> Result<(), fidl::Error> {
80758        let _result = self.send_raw(result);
80759        self.drop_without_shutdown();
80760        _result
80761    }
80762
80763    fn send_raw(
80764        &self,
80765        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80766    ) -> Result<(), fidl::Error> {
80767        self.control_handle.inner.send::<fidl::encoding::ResultType<
80768            fidl::encoding::EmptyStruct,
80769            fidl_fuchsia_posix::Errno,
80770        >>(
80771            result,
80772            self.tx_id,
80773            0x4bc6400ae92125d,
80774            fidl::encoding::DynamicFlags::empty(),
80775        )
80776    }
80777}
80778
80779#[must_use = "FIDL methods require a response to be sent"]
80780#[derive(Debug)]
80781pub struct SynchronousDatagramSocketConnectResponder {
80782    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80783    tx_id: u32,
80784}
80785
80786/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80787/// if the responder is dropped without sending a response, so that the client
80788/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80789impl std::ops::Drop for SynchronousDatagramSocketConnectResponder {
80790    fn drop(&mut self) {
80791        self.control_handle.shutdown();
80792        // Safety: drops once, never accessed again
80793        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80794    }
80795}
80796
80797impl fidl::endpoints::Responder for SynchronousDatagramSocketConnectResponder {
80798    type ControlHandle = SynchronousDatagramSocketControlHandle;
80799
80800    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80801        &self.control_handle
80802    }
80803
80804    fn drop_without_shutdown(mut self) {
80805        // Safety: drops once, never accessed again due to mem::forget
80806        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80807        // Prevent Drop from running (which would shut down the channel)
80808        std::mem::forget(self);
80809    }
80810}
80811
80812impl SynchronousDatagramSocketConnectResponder {
80813    /// Sends a response to the FIDL transaction.
80814    ///
80815    /// Sets the channel to shutdown if an error occurs.
80816    pub fn send(
80817        self,
80818        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80819    ) -> Result<(), fidl::Error> {
80820        let _result = self.send_raw(result);
80821        if _result.is_err() {
80822            self.control_handle.shutdown();
80823        }
80824        self.drop_without_shutdown();
80825        _result
80826    }
80827
80828    /// Similar to "send" but does not shutdown the channel if an error occurs.
80829    pub fn send_no_shutdown_on_err(
80830        self,
80831        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80832    ) -> Result<(), fidl::Error> {
80833        let _result = self.send_raw(result);
80834        self.drop_without_shutdown();
80835        _result
80836    }
80837
80838    fn send_raw(
80839        &self,
80840        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80841    ) -> Result<(), fidl::Error> {
80842        self.control_handle.inner.send::<fidl::encoding::ResultType<
80843            fidl::encoding::EmptyStruct,
80844            fidl_fuchsia_posix::Errno,
80845        >>(
80846            result,
80847            self.tx_id,
80848            0x5f05f19bfdd38871,
80849            fidl::encoding::DynamicFlags::empty(),
80850        )
80851    }
80852}
80853
80854#[must_use = "FIDL methods require a response to be sent"]
80855#[derive(Debug)]
80856pub struct SynchronousDatagramSocketDisconnectResponder {
80857    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80858    tx_id: u32,
80859}
80860
80861/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80862/// if the responder is dropped without sending a response, so that the client
80863/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80864impl std::ops::Drop for SynchronousDatagramSocketDisconnectResponder {
80865    fn drop(&mut self) {
80866        self.control_handle.shutdown();
80867        // Safety: drops once, never accessed again
80868        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80869    }
80870}
80871
80872impl fidl::endpoints::Responder for SynchronousDatagramSocketDisconnectResponder {
80873    type ControlHandle = SynchronousDatagramSocketControlHandle;
80874
80875    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80876        &self.control_handle
80877    }
80878
80879    fn drop_without_shutdown(mut self) {
80880        // Safety: drops once, never accessed again due to mem::forget
80881        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80882        // Prevent Drop from running (which would shut down the channel)
80883        std::mem::forget(self);
80884    }
80885}
80886
80887impl SynchronousDatagramSocketDisconnectResponder {
80888    /// Sends a response to the FIDL transaction.
80889    ///
80890    /// Sets the channel to shutdown if an error occurs.
80891    pub fn send(
80892        self,
80893        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80894    ) -> Result<(), fidl::Error> {
80895        let _result = self.send_raw(result);
80896        if _result.is_err() {
80897            self.control_handle.shutdown();
80898        }
80899        self.drop_without_shutdown();
80900        _result
80901    }
80902
80903    /// Similar to "send" but does not shutdown the channel if an error occurs.
80904    pub fn send_no_shutdown_on_err(
80905        self,
80906        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80907    ) -> Result<(), fidl::Error> {
80908        let _result = self.send_raw(result);
80909        self.drop_without_shutdown();
80910        _result
80911    }
80912
80913    fn send_raw(
80914        &self,
80915        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80916    ) -> Result<(), fidl::Error> {
80917        self.control_handle.inner.send::<fidl::encoding::ResultType<
80918            fidl::encoding::EmptyStruct,
80919            fidl_fuchsia_posix::Errno,
80920        >>(
80921            result,
80922            self.tx_id,
80923            0x74e63b91f7b29b2,
80924            fidl::encoding::DynamicFlags::empty(),
80925        )
80926    }
80927}
80928
80929#[must_use = "FIDL methods require a response to be sent"]
80930#[derive(Debug)]
80931pub struct SynchronousDatagramSocketGetSockNameResponder {
80932    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80933    tx_id: u32,
80934}
80935
80936/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80937/// if the responder is dropped without sending a response, so that the client
80938/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80939impl std::ops::Drop for SynchronousDatagramSocketGetSockNameResponder {
80940    fn drop(&mut self) {
80941        self.control_handle.shutdown();
80942        // Safety: drops once, never accessed again
80943        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80944    }
80945}
80946
80947impl fidl::endpoints::Responder for SynchronousDatagramSocketGetSockNameResponder {
80948    type ControlHandle = SynchronousDatagramSocketControlHandle;
80949
80950    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80951        &self.control_handle
80952    }
80953
80954    fn drop_without_shutdown(mut self) {
80955        // Safety: drops once, never accessed again due to mem::forget
80956        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80957        // Prevent Drop from running (which would shut down the channel)
80958        std::mem::forget(self);
80959    }
80960}
80961
80962impl SynchronousDatagramSocketGetSockNameResponder {
80963    /// Sends a response to the FIDL transaction.
80964    ///
80965    /// Sets the channel to shutdown if an error occurs.
80966    pub fn send(
80967        self,
80968        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
80969    ) -> Result<(), fidl::Error> {
80970        let _result = self.send_raw(result);
80971        if _result.is_err() {
80972            self.control_handle.shutdown();
80973        }
80974        self.drop_without_shutdown();
80975        _result
80976    }
80977
80978    /// Similar to "send" but does not shutdown the channel if an error occurs.
80979    pub fn send_no_shutdown_on_err(
80980        self,
80981        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
80982    ) -> Result<(), fidl::Error> {
80983        let _result = self.send_raw(result);
80984        self.drop_without_shutdown();
80985        _result
80986    }
80987
80988    fn send_raw(
80989        &self,
80990        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
80991    ) -> Result<(), fidl::Error> {
80992        self.control_handle.inner.send::<fidl::encoding::ResultType<
80993            BaseNetworkSocketGetSockNameResponse,
80994            fidl_fuchsia_posix::Errno,
80995        >>(
80996            result.map(|addr| (addr,)),
80997            self.tx_id,
80998            0x475f23f84a1a4f85,
80999            fidl::encoding::DynamicFlags::empty(),
81000        )
81001    }
81002}
81003
81004#[must_use = "FIDL methods require a response to be sent"]
81005#[derive(Debug)]
81006pub struct SynchronousDatagramSocketGetPeerNameResponder {
81007    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81008    tx_id: u32,
81009}
81010
81011/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81012/// if the responder is dropped without sending a response, so that the client
81013/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81014impl std::ops::Drop for SynchronousDatagramSocketGetPeerNameResponder {
81015    fn drop(&mut self) {
81016        self.control_handle.shutdown();
81017        // Safety: drops once, never accessed again
81018        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81019    }
81020}
81021
81022impl fidl::endpoints::Responder for SynchronousDatagramSocketGetPeerNameResponder {
81023    type ControlHandle = SynchronousDatagramSocketControlHandle;
81024
81025    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81026        &self.control_handle
81027    }
81028
81029    fn drop_without_shutdown(mut self) {
81030        // Safety: drops once, never accessed again due to mem::forget
81031        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81032        // Prevent Drop from running (which would shut down the channel)
81033        std::mem::forget(self);
81034    }
81035}
81036
81037impl SynchronousDatagramSocketGetPeerNameResponder {
81038    /// Sends a response to the FIDL transaction.
81039    ///
81040    /// Sets the channel to shutdown if an error occurs.
81041    pub fn send(
81042        self,
81043        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
81044    ) -> Result<(), fidl::Error> {
81045        let _result = self.send_raw(result);
81046        if _result.is_err() {
81047            self.control_handle.shutdown();
81048        }
81049        self.drop_without_shutdown();
81050        _result
81051    }
81052
81053    /// Similar to "send" but does not shutdown the channel if an error occurs.
81054    pub fn send_no_shutdown_on_err(
81055        self,
81056        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
81057    ) -> Result<(), fidl::Error> {
81058        let _result = self.send_raw(result);
81059        self.drop_without_shutdown();
81060        _result
81061    }
81062
81063    fn send_raw(
81064        &self,
81065        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
81066    ) -> Result<(), fidl::Error> {
81067        self.control_handle.inner.send::<fidl::encoding::ResultType<
81068            BaseNetworkSocketGetPeerNameResponse,
81069            fidl_fuchsia_posix::Errno,
81070        >>(
81071            result.map(|addr| (addr,)),
81072            self.tx_id,
81073            0x1ffecf4bd5b6432e,
81074            fidl::encoding::DynamicFlags::empty(),
81075        )
81076    }
81077}
81078
81079#[must_use = "FIDL methods require a response to be sent"]
81080#[derive(Debug)]
81081pub struct SynchronousDatagramSocketShutdownResponder {
81082    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81083    tx_id: u32,
81084}
81085
81086/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81087/// if the responder is dropped without sending a response, so that the client
81088/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81089impl std::ops::Drop for SynchronousDatagramSocketShutdownResponder {
81090    fn drop(&mut self) {
81091        self.control_handle.shutdown();
81092        // Safety: drops once, never accessed again
81093        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81094    }
81095}
81096
81097impl fidl::endpoints::Responder for SynchronousDatagramSocketShutdownResponder {
81098    type ControlHandle = SynchronousDatagramSocketControlHandle;
81099
81100    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81101        &self.control_handle
81102    }
81103
81104    fn drop_without_shutdown(mut self) {
81105        // Safety: drops once, never accessed again due to mem::forget
81106        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81107        // Prevent Drop from running (which would shut down the channel)
81108        std::mem::forget(self);
81109    }
81110}
81111
81112impl SynchronousDatagramSocketShutdownResponder {
81113    /// Sends a response to the FIDL transaction.
81114    ///
81115    /// Sets the channel to shutdown if an error occurs.
81116    pub fn send(
81117        self,
81118        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81119    ) -> Result<(), fidl::Error> {
81120        let _result = self.send_raw(result);
81121        if _result.is_err() {
81122            self.control_handle.shutdown();
81123        }
81124        self.drop_without_shutdown();
81125        _result
81126    }
81127
81128    /// Similar to "send" but does not shutdown the channel if an error occurs.
81129    pub fn send_no_shutdown_on_err(
81130        self,
81131        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81132    ) -> Result<(), fidl::Error> {
81133        let _result = self.send_raw(result);
81134        self.drop_without_shutdown();
81135        _result
81136    }
81137
81138    fn send_raw(
81139        &self,
81140        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81141    ) -> Result<(), fidl::Error> {
81142        self.control_handle.inner.send::<fidl::encoding::ResultType<
81143            fidl::encoding::EmptyStruct,
81144            fidl_fuchsia_posix::Errno,
81145        >>(
81146            result,
81147            self.tx_id,
81148            0x247f38b6db68c336,
81149            fidl::encoding::DynamicFlags::empty(),
81150        )
81151    }
81152}
81153
81154#[must_use = "FIDL methods require a response to be sent"]
81155#[derive(Debug)]
81156pub struct SynchronousDatagramSocketSetIpTypeOfServiceResponder {
81157    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81158    tx_id: u32,
81159}
81160
81161/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81162/// if the responder is dropped without sending a response, so that the client
81163/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81164impl std::ops::Drop for SynchronousDatagramSocketSetIpTypeOfServiceResponder {
81165    fn drop(&mut self) {
81166        self.control_handle.shutdown();
81167        // Safety: drops once, never accessed again
81168        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81169    }
81170}
81171
81172impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpTypeOfServiceResponder {
81173    type ControlHandle = SynchronousDatagramSocketControlHandle;
81174
81175    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81176        &self.control_handle
81177    }
81178
81179    fn drop_without_shutdown(mut self) {
81180        // Safety: drops once, never accessed again due to mem::forget
81181        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81182        // Prevent Drop from running (which would shut down the channel)
81183        std::mem::forget(self);
81184    }
81185}
81186
81187impl SynchronousDatagramSocketSetIpTypeOfServiceResponder {
81188    /// Sends a response to the FIDL transaction.
81189    ///
81190    /// Sets the channel to shutdown if an error occurs.
81191    pub fn send(
81192        self,
81193        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81194    ) -> Result<(), fidl::Error> {
81195        let _result = self.send_raw(result);
81196        if _result.is_err() {
81197            self.control_handle.shutdown();
81198        }
81199        self.drop_without_shutdown();
81200        _result
81201    }
81202
81203    /// Similar to "send" but does not shutdown the channel if an error occurs.
81204    pub fn send_no_shutdown_on_err(
81205        self,
81206        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81207    ) -> Result<(), fidl::Error> {
81208        let _result = self.send_raw(result);
81209        self.drop_without_shutdown();
81210        _result
81211    }
81212
81213    fn send_raw(
81214        &self,
81215        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81216    ) -> Result<(), fidl::Error> {
81217        self.control_handle.inner.send::<fidl::encoding::ResultType<
81218            fidl::encoding::EmptyStruct,
81219            fidl_fuchsia_posix::Errno,
81220        >>(
81221            result,
81222            self.tx_id,
81223            0x995c600475b6d46,
81224            fidl::encoding::DynamicFlags::empty(),
81225        )
81226    }
81227}
81228
81229#[must_use = "FIDL methods require a response to be sent"]
81230#[derive(Debug)]
81231pub struct SynchronousDatagramSocketGetIpTypeOfServiceResponder {
81232    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81233    tx_id: u32,
81234}
81235
81236/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81237/// if the responder is dropped without sending a response, so that the client
81238/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81239impl std::ops::Drop for SynchronousDatagramSocketGetIpTypeOfServiceResponder {
81240    fn drop(&mut self) {
81241        self.control_handle.shutdown();
81242        // Safety: drops once, never accessed again
81243        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81244    }
81245}
81246
81247impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpTypeOfServiceResponder {
81248    type ControlHandle = SynchronousDatagramSocketControlHandle;
81249
81250    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81251        &self.control_handle
81252    }
81253
81254    fn drop_without_shutdown(mut self) {
81255        // Safety: drops once, never accessed again due to mem::forget
81256        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81257        // Prevent Drop from running (which would shut down the channel)
81258        std::mem::forget(self);
81259    }
81260}
81261
81262impl SynchronousDatagramSocketGetIpTypeOfServiceResponder {
81263    /// Sends a response to the FIDL transaction.
81264    ///
81265    /// Sets the channel to shutdown if an error occurs.
81266    pub fn send(
81267        self,
81268        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
81269    ) -> Result<(), fidl::Error> {
81270        let _result = self.send_raw(result);
81271        if _result.is_err() {
81272            self.control_handle.shutdown();
81273        }
81274        self.drop_without_shutdown();
81275        _result
81276    }
81277
81278    /// Similar to "send" but does not shutdown the channel if an error occurs.
81279    pub fn send_no_shutdown_on_err(
81280        self,
81281        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
81282    ) -> Result<(), fidl::Error> {
81283        let _result = self.send_raw(result);
81284        self.drop_without_shutdown();
81285        _result
81286    }
81287
81288    fn send_raw(
81289        &self,
81290        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
81291    ) -> Result<(), fidl::Error> {
81292        self.control_handle.inner.send::<fidl::encoding::ResultType<
81293            BaseNetworkSocketGetIpTypeOfServiceResponse,
81294            fidl_fuchsia_posix::Errno,
81295        >>(
81296            result.map(|value| (value,)),
81297            self.tx_id,
81298            0x3814a04259f75fcb,
81299            fidl::encoding::DynamicFlags::empty(),
81300        )
81301    }
81302}
81303
81304#[must_use = "FIDL methods require a response to be sent"]
81305#[derive(Debug)]
81306pub struct SynchronousDatagramSocketSetIpTtlResponder {
81307    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81308    tx_id: u32,
81309}
81310
81311/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81312/// if the responder is dropped without sending a response, so that the client
81313/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81314impl std::ops::Drop for SynchronousDatagramSocketSetIpTtlResponder {
81315    fn drop(&mut self) {
81316        self.control_handle.shutdown();
81317        // Safety: drops once, never accessed again
81318        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81319    }
81320}
81321
81322impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpTtlResponder {
81323    type ControlHandle = SynchronousDatagramSocketControlHandle;
81324
81325    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81326        &self.control_handle
81327    }
81328
81329    fn drop_without_shutdown(mut self) {
81330        // Safety: drops once, never accessed again due to mem::forget
81331        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81332        // Prevent Drop from running (which would shut down the channel)
81333        std::mem::forget(self);
81334    }
81335}
81336
81337impl SynchronousDatagramSocketSetIpTtlResponder {
81338    /// Sends a response to the FIDL transaction.
81339    ///
81340    /// Sets the channel to shutdown if an error occurs.
81341    pub fn send(
81342        self,
81343        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81344    ) -> Result<(), fidl::Error> {
81345        let _result = self.send_raw(result);
81346        if _result.is_err() {
81347            self.control_handle.shutdown();
81348        }
81349        self.drop_without_shutdown();
81350        _result
81351    }
81352
81353    /// Similar to "send" but does not shutdown the channel if an error occurs.
81354    pub fn send_no_shutdown_on_err(
81355        self,
81356        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81357    ) -> Result<(), fidl::Error> {
81358        let _result = self.send_raw(result);
81359        self.drop_without_shutdown();
81360        _result
81361    }
81362
81363    fn send_raw(
81364        &self,
81365        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81366    ) -> Result<(), fidl::Error> {
81367        self.control_handle.inner.send::<fidl::encoding::ResultType<
81368            fidl::encoding::EmptyStruct,
81369            fidl_fuchsia_posix::Errno,
81370        >>(
81371            result,
81372            self.tx_id,
81373            0x29e2424b433ae1ef,
81374            fidl::encoding::DynamicFlags::empty(),
81375        )
81376    }
81377}
81378
81379#[must_use = "FIDL methods require a response to be sent"]
81380#[derive(Debug)]
81381pub struct SynchronousDatagramSocketGetIpTtlResponder {
81382    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81383    tx_id: u32,
81384}
81385
81386/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81387/// if the responder is dropped without sending a response, so that the client
81388/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81389impl std::ops::Drop for SynchronousDatagramSocketGetIpTtlResponder {
81390    fn drop(&mut self) {
81391        self.control_handle.shutdown();
81392        // Safety: drops once, never accessed again
81393        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81394    }
81395}
81396
81397impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpTtlResponder {
81398    type ControlHandle = SynchronousDatagramSocketControlHandle;
81399
81400    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81401        &self.control_handle
81402    }
81403
81404    fn drop_without_shutdown(mut self) {
81405        // Safety: drops once, never accessed again due to mem::forget
81406        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81407        // Prevent Drop from running (which would shut down the channel)
81408        std::mem::forget(self);
81409    }
81410}
81411
81412impl SynchronousDatagramSocketGetIpTtlResponder {
81413    /// Sends a response to the FIDL transaction.
81414    ///
81415    /// Sets the channel to shutdown if an error occurs.
81416    pub fn send(
81417        self,
81418        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
81419    ) -> Result<(), fidl::Error> {
81420        let _result = self.send_raw(result);
81421        if _result.is_err() {
81422            self.control_handle.shutdown();
81423        }
81424        self.drop_without_shutdown();
81425        _result
81426    }
81427
81428    /// Similar to "send" but does not shutdown the channel if an error occurs.
81429    pub fn send_no_shutdown_on_err(
81430        self,
81431        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
81432    ) -> Result<(), fidl::Error> {
81433        let _result = self.send_raw(result);
81434        self.drop_without_shutdown();
81435        _result
81436    }
81437
81438    fn send_raw(
81439        &self,
81440        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
81441    ) -> Result<(), fidl::Error> {
81442        self.control_handle.inner.send::<fidl::encoding::ResultType<
81443            BaseNetworkSocketGetIpTtlResponse,
81444            fidl_fuchsia_posix::Errno,
81445        >>(
81446            result.map(|value| (value,)),
81447            self.tx_id,
81448            0x47e47fa1f24da471,
81449            fidl::encoding::DynamicFlags::empty(),
81450        )
81451    }
81452}
81453
81454#[must_use = "FIDL methods require a response to be sent"]
81455#[derive(Debug)]
81456pub struct SynchronousDatagramSocketSetIpPacketInfoResponder {
81457    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81458    tx_id: u32,
81459}
81460
81461/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81462/// if the responder is dropped without sending a response, so that the client
81463/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81464impl std::ops::Drop for SynchronousDatagramSocketSetIpPacketInfoResponder {
81465    fn drop(&mut self) {
81466        self.control_handle.shutdown();
81467        // Safety: drops once, never accessed again
81468        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81469    }
81470}
81471
81472impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpPacketInfoResponder {
81473    type ControlHandle = SynchronousDatagramSocketControlHandle;
81474
81475    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81476        &self.control_handle
81477    }
81478
81479    fn drop_without_shutdown(mut self) {
81480        // Safety: drops once, never accessed again due to mem::forget
81481        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81482        // Prevent Drop from running (which would shut down the channel)
81483        std::mem::forget(self);
81484    }
81485}
81486
81487impl SynchronousDatagramSocketSetIpPacketInfoResponder {
81488    /// Sends a response to the FIDL transaction.
81489    ///
81490    /// Sets the channel to shutdown if an error occurs.
81491    pub fn send(
81492        self,
81493        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81494    ) -> Result<(), fidl::Error> {
81495        let _result = self.send_raw(result);
81496        if _result.is_err() {
81497            self.control_handle.shutdown();
81498        }
81499        self.drop_without_shutdown();
81500        _result
81501    }
81502
81503    /// Similar to "send" but does not shutdown the channel if an error occurs.
81504    pub fn send_no_shutdown_on_err(
81505        self,
81506        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81507    ) -> Result<(), fidl::Error> {
81508        let _result = self.send_raw(result);
81509        self.drop_without_shutdown();
81510        _result
81511    }
81512
81513    fn send_raw(
81514        &self,
81515        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81516    ) -> Result<(), fidl::Error> {
81517        self.control_handle.inner.send::<fidl::encoding::ResultType<
81518            fidl::encoding::EmptyStruct,
81519            fidl_fuchsia_posix::Errno,
81520        >>(
81521            result,
81522            self.tx_id,
81523            0x392d16bee20c0e16,
81524            fidl::encoding::DynamicFlags::empty(),
81525        )
81526    }
81527}
81528
81529#[must_use = "FIDL methods require a response to be sent"]
81530#[derive(Debug)]
81531pub struct SynchronousDatagramSocketGetIpPacketInfoResponder {
81532    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81533    tx_id: u32,
81534}
81535
81536/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81537/// if the responder is dropped without sending a response, so that the client
81538/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81539impl std::ops::Drop for SynchronousDatagramSocketGetIpPacketInfoResponder {
81540    fn drop(&mut self) {
81541        self.control_handle.shutdown();
81542        // Safety: drops once, never accessed again
81543        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81544    }
81545}
81546
81547impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpPacketInfoResponder {
81548    type ControlHandle = SynchronousDatagramSocketControlHandle;
81549
81550    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81551        &self.control_handle
81552    }
81553
81554    fn drop_without_shutdown(mut self) {
81555        // Safety: drops once, never accessed again due to mem::forget
81556        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81557        // Prevent Drop from running (which would shut down the channel)
81558        std::mem::forget(self);
81559    }
81560}
81561
81562impl SynchronousDatagramSocketGetIpPacketInfoResponder {
81563    /// Sends a response to the FIDL transaction.
81564    ///
81565    /// Sets the channel to shutdown if an error occurs.
81566    pub fn send(
81567        self,
81568        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
81569    ) -> Result<(), fidl::Error> {
81570        let _result = self.send_raw(result);
81571        if _result.is_err() {
81572            self.control_handle.shutdown();
81573        }
81574        self.drop_without_shutdown();
81575        _result
81576    }
81577
81578    /// Similar to "send" but does not shutdown the channel if an error occurs.
81579    pub fn send_no_shutdown_on_err(
81580        self,
81581        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
81582    ) -> Result<(), fidl::Error> {
81583        let _result = self.send_raw(result);
81584        self.drop_without_shutdown();
81585        _result
81586    }
81587
81588    fn send_raw(
81589        &self,
81590        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
81591    ) -> Result<(), fidl::Error> {
81592        self.control_handle.inner.send::<fidl::encoding::ResultType<
81593            BaseNetworkSocketGetIpPacketInfoResponse,
81594            fidl_fuchsia_posix::Errno,
81595        >>(
81596            result.map(|value| (value,)),
81597            self.tx_id,
81598            0x54b505f242280740,
81599            fidl::encoding::DynamicFlags::empty(),
81600        )
81601    }
81602}
81603
81604#[must_use = "FIDL methods require a response to be sent"]
81605#[derive(Debug)]
81606pub struct SynchronousDatagramSocketSetIpReceiveTypeOfServiceResponder {
81607    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81608    tx_id: u32,
81609}
81610
81611/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81612/// if the responder is dropped without sending a response, so that the client
81613/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81614impl std::ops::Drop for SynchronousDatagramSocketSetIpReceiveTypeOfServiceResponder {
81615    fn drop(&mut self) {
81616        self.control_handle.shutdown();
81617        // Safety: drops once, never accessed again
81618        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81619    }
81620}
81621
81622impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpReceiveTypeOfServiceResponder {
81623    type ControlHandle = SynchronousDatagramSocketControlHandle;
81624
81625    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81626        &self.control_handle
81627    }
81628
81629    fn drop_without_shutdown(mut self) {
81630        // Safety: drops once, never accessed again due to mem::forget
81631        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81632        // Prevent Drop from running (which would shut down the channel)
81633        std::mem::forget(self);
81634    }
81635}
81636
81637impl SynchronousDatagramSocketSetIpReceiveTypeOfServiceResponder {
81638    /// Sends a response to the FIDL transaction.
81639    ///
81640    /// Sets the channel to shutdown if an error occurs.
81641    pub fn send(
81642        self,
81643        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81644    ) -> Result<(), fidl::Error> {
81645        let _result = self.send_raw(result);
81646        if _result.is_err() {
81647            self.control_handle.shutdown();
81648        }
81649        self.drop_without_shutdown();
81650        _result
81651    }
81652
81653    /// Similar to "send" but does not shutdown the channel if an error occurs.
81654    pub fn send_no_shutdown_on_err(
81655        self,
81656        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81657    ) -> Result<(), fidl::Error> {
81658        let _result = self.send_raw(result);
81659        self.drop_without_shutdown();
81660        _result
81661    }
81662
81663    fn send_raw(
81664        &self,
81665        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81666    ) -> Result<(), fidl::Error> {
81667        self.control_handle.inner.send::<fidl::encoding::ResultType<
81668            fidl::encoding::EmptyStruct,
81669            fidl_fuchsia_posix::Errno,
81670        >>(
81671            result,
81672            self.tx_id,
81673            0x6c4f6714995f84ef,
81674            fidl::encoding::DynamicFlags::empty(),
81675        )
81676    }
81677}
81678
81679#[must_use = "FIDL methods require a response to be sent"]
81680#[derive(Debug)]
81681pub struct SynchronousDatagramSocketGetIpReceiveTypeOfServiceResponder {
81682    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81683    tx_id: u32,
81684}
81685
81686/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81687/// if the responder is dropped without sending a response, so that the client
81688/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81689impl std::ops::Drop for SynchronousDatagramSocketGetIpReceiveTypeOfServiceResponder {
81690    fn drop(&mut self) {
81691        self.control_handle.shutdown();
81692        // Safety: drops once, never accessed again
81693        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81694    }
81695}
81696
81697impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpReceiveTypeOfServiceResponder {
81698    type ControlHandle = SynchronousDatagramSocketControlHandle;
81699
81700    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81701        &self.control_handle
81702    }
81703
81704    fn drop_without_shutdown(mut self) {
81705        // Safety: drops once, never accessed again due to mem::forget
81706        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81707        // Prevent Drop from running (which would shut down the channel)
81708        std::mem::forget(self);
81709    }
81710}
81711
81712impl SynchronousDatagramSocketGetIpReceiveTypeOfServiceResponder {
81713    /// Sends a response to the FIDL transaction.
81714    ///
81715    /// Sets the channel to shutdown if an error occurs.
81716    pub fn send(
81717        self,
81718        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
81719    ) -> Result<(), fidl::Error> {
81720        let _result = self.send_raw(result);
81721        if _result.is_err() {
81722            self.control_handle.shutdown();
81723        }
81724        self.drop_without_shutdown();
81725        _result
81726    }
81727
81728    /// Similar to "send" but does not shutdown the channel if an error occurs.
81729    pub fn send_no_shutdown_on_err(
81730        self,
81731        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
81732    ) -> Result<(), fidl::Error> {
81733        let _result = self.send_raw(result);
81734        self.drop_without_shutdown();
81735        _result
81736    }
81737
81738    fn send_raw(
81739        &self,
81740        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
81741    ) -> Result<(), fidl::Error> {
81742        self.control_handle.inner.send::<fidl::encoding::ResultType<
81743            BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
81744            fidl_fuchsia_posix::Errno,
81745        >>(
81746            result.map(|value| (value,)),
81747            self.tx_id,
81748            0x4158ba7dc2795960,
81749            fidl::encoding::DynamicFlags::empty(),
81750        )
81751    }
81752}
81753
81754#[must_use = "FIDL methods require a response to be sent"]
81755#[derive(Debug)]
81756pub struct SynchronousDatagramSocketSetIpReceiveTtlResponder {
81757    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81758    tx_id: u32,
81759}
81760
81761/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81762/// if the responder is dropped without sending a response, so that the client
81763/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81764impl std::ops::Drop for SynchronousDatagramSocketSetIpReceiveTtlResponder {
81765    fn drop(&mut self) {
81766        self.control_handle.shutdown();
81767        // Safety: drops once, never accessed again
81768        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81769    }
81770}
81771
81772impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpReceiveTtlResponder {
81773    type ControlHandle = SynchronousDatagramSocketControlHandle;
81774
81775    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81776        &self.control_handle
81777    }
81778
81779    fn drop_without_shutdown(mut self) {
81780        // Safety: drops once, never accessed again due to mem::forget
81781        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81782        // Prevent Drop from running (which would shut down the channel)
81783        std::mem::forget(self);
81784    }
81785}
81786
81787impl SynchronousDatagramSocketSetIpReceiveTtlResponder {
81788    /// Sends a response to the FIDL transaction.
81789    ///
81790    /// Sets the channel to shutdown if an error occurs.
81791    pub fn send(
81792        self,
81793        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81794    ) -> Result<(), fidl::Error> {
81795        let _result = self.send_raw(result);
81796        if _result.is_err() {
81797            self.control_handle.shutdown();
81798        }
81799        self.drop_without_shutdown();
81800        _result
81801    }
81802
81803    /// Similar to "send" but does not shutdown the channel if an error occurs.
81804    pub fn send_no_shutdown_on_err(
81805        self,
81806        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81807    ) -> Result<(), fidl::Error> {
81808        let _result = self.send_raw(result);
81809        self.drop_without_shutdown();
81810        _result
81811    }
81812
81813    fn send_raw(
81814        &self,
81815        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81816    ) -> Result<(), fidl::Error> {
81817        self.control_handle.inner.send::<fidl::encoding::ResultType<
81818            fidl::encoding::EmptyStruct,
81819            fidl_fuchsia_posix::Errno,
81820        >>(
81821            result,
81822            self.tx_id,
81823            0x46f15be0ce0ab82b,
81824            fidl::encoding::DynamicFlags::empty(),
81825        )
81826    }
81827}
81828
81829#[must_use = "FIDL methods require a response to be sent"]
81830#[derive(Debug)]
81831pub struct SynchronousDatagramSocketGetIpReceiveTtlResponder {
81832    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81833    tx_id: u32,
81834}
81835
81836/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81837/// if the responder is dropped without sending a response, so that the client
81838/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81839impl std::ops::Drop for SynchronousDatagramSocketGetIpReceiveTtlResponder {
81840    fn drop(&mut self) {
81841        self.control_handle.shutdown();
81842        // Safety: drops once, never accessed again
81843        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81844    }
81845}
81846
81847impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpReceiveTtlResponder {
81848    type ControlHandle = SynchronousDatagramSocketControlHandle;
81849
81850    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81851        &self.control_handle
81852    }
81853
81854    fn drop_without_shutdown(mut self) {
81855        // Safety: drops once, never accessed again due to mem::forget
81856        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81857        // Prevent Drop from running (which would shut down the channel)
81858        std::mem::forget(self);
81859    }
81860}
81861
81862impl SynchronousDatagramSocketGetIpReceiveTtlResponder {
81863    /// Sends a response to the FIDL transaction.
81864    ///
81865    /// Sets the channel to shutdown if an error occurs.
81866    pub fn send(
81867        self,
81868        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
81869    ) -> Result<(), fidl::Error> {
81870        let _result = self.send_raw(result);
81871        if _result.is_err() {
81872            self.control_handle.shutdown();
81873        }
81874        self.drop_without_shutdown();
81875        _result
81876    }
81877
81878    /// Similar to "send" but does not shutdown the channel if an error occurs.
81879    pub fn send_no_shutdown_on_err(
81880        self,
81881        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
81882    ) -> Result<(), fidl::Error> {
81883        let _result = self.send_raw(result);
81884        self.drop_without_shutdown();
81885        _result
81886    }
81887
81888    fn send_raw(
81889        &self,
81890        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
81891    ) -> Result<(), fidl::Error> {
81892        self.control_handle.inner.send::<fidl::encoding::ResultType<
81893            BaseNetworkSocketGetIpReceiveTtlResponse,
81894            fidl_fuchsia_posix::Errno,
81895        >>(
81896            result.map(|value| (value,)),
81897            self.tx_id,
81898            0x678ddd5a5dfa2eb5,
81899            fidl::encoding::DynamicFlags::empty(),
81900        )
81901    }
81902}
81903
81904#[must_use = "FIDL methods require a response to be sent"]
81905#[derive(Debug)]
81906pub struct SynchronousDatagramSocketSetIpMulticastInterfaceResponder {
81907    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81908    tx_id: u32,
81909}
81910
81911/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81912/// if the responder is dropped without sending a response, so that the client
81913/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81914impl std::ops::Drop for SynchronousDatagramSocketSetIpMulticastInterfaceResponder {
81915    fn drop(&mut self) {
81916        self.control_handle.shutdown();
81917        // Safety: drops once, never accessed again
81918        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81919    }
81920}
81921
81922impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpMulticastInterfaceResponder {
81923    type ControlHandle = SynchronousDatagramSocketControlHandle;
81924
81925    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81926        &self.control_handle
81927    }
81928
81929    fn drop_without_shutdown(mut self) {
81930        // Safety: drops once, never accessed again due to mem::forget
81931        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81932        // Prevent Drop from running (which would shut down the channel)
81933        std::mem::forget(self);
81934    }
81935}
81936
81937impl SynchronousDatagramSocketSetIpMulticastInterfaceResponder {
81938    /// Sends a response to the FIDL transaction.
81939    ///
81940    /// Sets the channel to shutdown if an error occurs.
81941    pub fn send(
81942        self,
81943        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81944    ) -> Result<(), fidl::Error> {
81945        let _result = self.send_raw(result);
81946        if _result.is_err() {
81947            self.control_handle.shutdown();
81948        }
81949        self.drop_without_shutdown();
81950        _result
81951    }
81952
81953    /// Similar to "send" but does not shutdown the channel if an error occurs.
81954    pub fn send_no_shutdown_on_err(
81955        self,
81956        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81957    ) -> Result<(), fidl::Error> {
81958        let _result = self.send_raw(result);
81959        self.drop_without_shutdown();
81960        _result
81961    }
81962
81963    fn send_raw(
81964        &self,
81965        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81966    ) -> Result<(), fidl::Error> {
81967        self.control_handle.inner.send::<fidl::encoding::ResultType<
81968            fidl::encoding::EmptyStruct,
81969            fidl_fuchsia_posix::Errno,
81970        >>(
81971            result,
81972            self.tx_id,
81973            0x752fbfa9b12befe,
81974            fidl::encoding::DynamicFlags::empty(),
81975        )
81976    }
81977}
81978
81979#[must_use = "FIDL methods require a response to be sent"]
81980#[derive(Debug)]
81981pub struct SynchronousDatagramSocketGetIpMulticastInterfaceResponder {
81982    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81983    tx_id: u32,
81984}
81985
81986/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81987/// if the responder is dropped without sending a response, so that the client
81988/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81989impl std::ops::Drop for SynchronousDatagramSocketGetIpMulticastInterfaceResponder {
81990    fn drop(&mut self) {
81991        self.control_handle.shutdown();
81992        // Safety: drops once, never accessed again
81993        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81994    }
81995}
81996
81997impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpMulticastInterfaceResponder {
81998    type ControlHandle = SynchronousDatagramSocketControlHandle;
81999
82000    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82001        &self.control_handle
82002    }
82003
82004    fn drop_without_shutdown(mut self) {
82005        // Safety: drops once, never accessed again due to mem::forget
82006        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82007        // Prevent Drop from running (which would shut down the channel)
82008        std::mem::forget(self);
82009    }
82010}
82011
82012impl SynchronousDatagramSocketGetIpMulticastInterfaceResponder {
82013    /// Sends a response to the FIDL transaction.
82014    ///
82015    /// Sets the channel to shutdown if an error occurs.
82016    pub fn send(
82017        self,
82018        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
82019    ) -> Result<(), fidl::Error> {
82020        let _result = self.send_raw(result);
82021        if _result.is_err() {
82022            self.control_handle.shutdown();
82023        }
82024        self.drop_without_shutdown();
82025        _result
82026    }
82027
82028    /// Similar to "send" but does not shutdown the channel if an error occurs.
82029    pub fn send_no_shutdown_on_err(
82030        self,
82031        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
82032    ) -> Result<(), fidl::Error> {
82033        let _result = self.send_raw(result);
82034        self.drop_without_shutdown();
82035        _result
82036    }
82037
82038    fn send_raw(
82039        &self,
82040        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
82041    ) -> Result<(), fidl::Error> {
82042        self.control_handle.inner.send::<fidl::encoding::ResultType<
82043            BaseNetworkSocketGetIpMulticastInterfaceResponse,
82044            fidl_fuchsia_posix::Errno,
82045        >>(
82046            result.map(|value| (value,)),
82047            self.tx_id,
82048            0x320bd14c4df046c4,
82049            fidl::encoding::DynamicFlags::empty(),
82050        )
82051    }
82052}
82053
82054#[must_use = "FIDL methods require a response to be sent"]
82055#[derive(Debug)]
82056pub struct SynchronousDatagramSocketSetIpMulticastTtlResponder {
82057    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82058    tx_id: u32,
82059}
82060
82061/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82062/// if the responder is dropped without sending a response, so that the client
82063/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82064impl std::ops::Drop for SynchronousDatagramSocketSetIpMulticastTtlResponder {
82065    fn drop(&mut self) {
82066        self.control_handle.shutdown();
82067        // Safety: drops once, never accessed again
82068        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82069    }
82070}
82071
82072impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpMulticastTtlResponder {
82073    type ControlHandle = SynchronousDatagramSocketControlHandle;
82074
82075    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82076        &self.control_handle
82077    }
82078
82079    fn drop_without_shutdown(mut self) {
82080        // Safety: drops once, never accessed again due to mem::forget
82081        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82082        // Prevent Drop from running (which would shut down the channel)
82083        std::mem::forget(self);
82084    }
82085}
82086
82087impl SynchronousDatagramSocketSetIpMulticastTtlResponder {
82088    /// Sends a response to the FIDL transaction.
82089    ///
82090    /// Sets the channel to shutdown if an error occurs.
82091    pub fn send(
82092        self,
82093        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82094    ) -> Result<(), fidl::Error> {
82095        let _result = self.send_raw(result);
82096        if _result.is_err() {
82097            self.control_handle.shutdown();
82098        }
82099        self.drop_without_shutdown();
82100        _result
82101    }
82102
82103    /// Similar to "send" but does not shutdown the channel if an error occurs.
82104    pub fn send_no_shutdown_on_err(
82105        self,
82106        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82107    ) -> Result<(), fidl::Error> {
82108        let _result = self.send_raw(result);
82109        self.drop_without_shutdown();
82110        _result
82111    }
82112
82113    fn send_raw(
82114        &self,
82115        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82116    ) -> Result<(), fidl::Error> {
82117        self.control_handle.inner.send::<fidl::encoding::ResultType<
82118            fidl::encoding::EmptyStruct,
82119            fidl_fuchsia_posix::Errno,
82120        >>(
82121            result,
82122            self.tx_id,
82123            0x63134d53772916a1,
82124            fidl::encoding::DynamicFlags::empty(),
82125        )
82126    }
82127}
82128
82129#[must_use = "FIDL methods require a response to be sent"]
82130#[derive(Debug)]
82131pub struct SynchronousDatagramSocketGetIpMulticastTtlResponder {
82132    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82133    tx_id: u32,
82134}
82135
82136/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82137/// if the responder is dropped without sending a response, so that the client
82138/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82139impl std::ops::Drop for SynchronousDatagramSocketGetIpMulticastTtlResponder {
82140    fn drop(&mut self) {
82141        self.control_handle.shutdown();
82142        // Safety: drops once, never accessed again
82143        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82144    }
82145}
82146
82147impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpMulticastTtlResponder {
82148    type ControlHandle = SynchronousDatagramSocketControlHandle;
82149
82150    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82151        &self.control_handle
82152    }
82153
82154    fn drop_without_shutdown(mut self) {
82155        // Safety: drops once, never accessed again due to mem::forget
82156        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82157        // Prevent Drop from running (which would shut down the channel)
82158        std::mem::forget(self);
82159    }
82160}
82161
82162impl SynchronousDatagramSocketGetIpMulticastTtlResponder {
82163    /// Sends a response to the FIDL transaction.
82164    ///
82165    /// Sets the channel to shutdown if an error occurs.
82166    pub fn send(
82167        self,
82168        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
82169    ) -> Result<(), fidl::Error> {
82170        let _result = self.send_raw(result);
82171        if _result.is_err() {
82172            self.control_handle.shutdown();
82173        }
82174        self.drop_without_shutdown();
82175        _result
82176    }
82177
82178    /// Similar to "send" but does not shutdown the channel if an error occurs.
82179    pub fn send_no_shutdown_on_err(
82180        self,
82181        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
82182    ) -> Result<(), fidl::Error> {
82183        let _result = self.send_raw(result);
82184        self.drop_without_shutdown();
82185        _result
82186    }
82187
82188    fn send_raw(
82189        &self,
82190        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
82191    ) -> Result<(), fidl::Error> {
82192        self.control_handle.inner.send::<fidl::encoding::ResultType<
82193            BaseNetworkSocketGetIpMulticastTtlResponse,
82194            fidl_fuchsia_posix::Errno,
82195        >>(
82196            result.map(|value| (value,)),
82197            self.tx_id,
82198            0x4665cd378f39e1a,
82199            fidl::encoding::DynamicFlags::empty(),
82200        )
82201    }
82202}
82203
82204#[must_use = "FIDL methods require a response to be sent"]
82205#[derive(Debug)]
82206pub struct SynchronousDatagramSocketSetIpMulticastLoopbackResponder {
82207    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82208    tx_id: u32,
82209}
82210
82211/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82212/// if the responder is dropped without sending a response, so that the client
82213/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82214impl std::ops::Drop for SynchronousDatagramSocketSetIpMulticastLoopbackResponder {
82215    fn drop(&mut self) {
82216        self.control_handle.shutdown();
82217        // Safety: drops once, never accessed again
82218        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82219    }
82220}
82221
82222impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpMulticastLoopbackResponder {
82223    type ControlHandle = SynchronousDatagramSocketControlHandle;
82224
82225    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82226        &self.control_handle
82227    }
82228
82229    fn drop_without_shutdown(mut self) {
82230        // Safety: drops once, never accessed again due to mem::forget
82231        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82232        // Prevent Drop from running (which would shut down the channel)
82233        std::mem::forget(self);
82234    }
82235}
82236
82237impl SynchronousDatagramSocketSetIpMulticastLoopbackResponder {
82238    /// Sends a response to the FIDL transaction.
82239    ///
82240    /// Sets the channel to shutdown if an error occurs.
82241    pub fn send(
82242        self,
82243        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82244    ) -> Result<(), fidl::Error> {
82245        let _result = self.send_raw(result);
82246        if _result.is_err() {
82247            self.control_handle.shutdown();
82248        }
82249        self.drop_without_shutdown();
82250        _result
82251    }
82252
82253    /// Similar to "send" but does not shutdown the channel if an error occurs.
82254    pub fn send_no_shutdown_on_err(
82255        self,
82256        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82257    ) -> Result<(), fidl::Error> {
82258        let _result = self.send_raw(result);
82259        self.drop_without_shutdown();
82260        _result
82261    }
82262
82263    fn send_raw(
82264        &self,
82265        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82266    ) -> Result<(), fidl::Error> {
82267        self.control_handle.inner.send::<fidl::encoding::ResultType<
82268            fidl::encoding::EmptyStruct,
82269            fidl_fuchsia_posix::Errno,
82270        >>(
82271            result,
82272            self.tx_id,
82273            0x20c55c11f00943ea,
82274            fidl::encoding::DynamicFlags::empty(),
82275        )
82276    }
82277}
82278
82279#[must_use = "FIDL methods require a response to be sent"]
82280#[derive(Debug)]
82281pub struct SynchronousDatagramSocketGetIpMulticastLoopbackResponder {
82282    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82283    tx_id: u32,
82284}
82285
82286/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82287/// if the responder is dropped without sending a response, so that the client
82288/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82289impl std::ops::Drop for SynchronousDatagramSocketGetIpMulticastLoopbackResponder {
82290    fn drop(&mut self) {
82291        self.control_handle.shutdown();
82292        // Safety: drops once, never accessed again
82293        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82294    }
82295}
82296
82297impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpMulticastLoopbackResponder {
82298    type ControlHandle = SynchronousDatagramSocketControlHandle;
82299
82300    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82301        &self.control_handle
82302    }
82303
82304    fn drop_without_shutdown(mut self) {
82305        // Safety: drops once, never accessed again due to mem::forget
82306        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82307        // Prevent Drop from running (which would shut down the channel)
82308        std::mem::forget(self);
82309    }
82310}
82311
82312impl SynchronousDatagramSocketGetIpMulticastLoopbackResponder {
82313    /// Sends a response to the FIDL transaction.
82314    ///
82315    /// Sets the channel to shutdown if an error occurs.
82316    pub fn send(
82317        self,
82318        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
82319    ) -> Result<(), fidl::Error> {
82320        let _result = self.send_raw(result);
82321        if _result.is_err() {
82322            self.control_handle.shutdown();
82323        }
82324        self.drop_without_shutdown();
82325        _result
82326    }
82327
82328    /// Similar to "send" but does not shutdown the channel if an error occurs.
82329    pub fn send_no_shutdown_on_err(
82330        self,
82331        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
82332    ) -> Result<(), fidl::Error> {
82333        let _result = self.send_raw(result);
82334        self.drop_without_shutdown();
82335        _result
82336    }
82337
82338    fn send_raw(
82339        &self,
82340        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
82341    ) -> Result<(), fidl::Error> {
82342        self.control_handle.inner.send::<fidl::encoding::ResultType<
82343            BaseNetworkSocketGetIpMulticastLoopbackResponse,
82344            fidl_fuchsia_posix::Errno,
82345        >>(
82346            result.map(|value| (value,)),
82347            self.tx_id,
82348            0x3b6b26ff558298f2,
82349            fidl::encoding::DynamicFlags::empty(),
82350        )
82351    }
82352}
82353
82354#[must_use = "FIDL methods require a response to be sent"]
82355#[derive(Debug)]
82356pub struct SynchronousDatagramSocketAddIpMembershipResponder {
82357    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82358    tx_id: u32,
82359}
82360
82361/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82362/// if the responder is dropped without sending a response, so that the client
82363/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82364impl std::ops::Drop for SynchronousDatagramSocketAddIpMembershipResponder {
82365    fn drop(&mut self) {
82366        self.control_handle.shutdown();
82367        // Safety: drops once, never accessed again
82368        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82369    }
82370}
82371
82372impl fidl::endpoints::Responder for SynchronousDatagramSocketAddIpMembershipResponder {
82373    type ControlHandle = SynchronousDatagramSocketControlHandle;
82374
82375    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82376        &self.control_handle
82377    }
82378
82379    fn drop_without_shutdown(mut self) {
82380        // Safety: drops once, never accessed again due to mem::forget
82381        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82382        // Prevent Drop from running (which would shut down the channel)
82383        std::mem::forget(self);
82384    }
82385}
82386
82387impl SynchronousDatagramSocketAddIpMembershipResponder {
82388    /// Sends a response to the FIDL transaction.
82389    ///
82390    /// Sets the channel to shutdown if an error occurs.
82391    pub fn send(
82392        self,
82393        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82394    ) -> Result<(), fidl::Error> {
82395        let _result = self.send_raw(result);
82396        if _result.is_err() {
82397            self.control_handle.shutdown();
82398        }
82399        self.drop_without_shutdown();
82400        _result
82401    }
82402
82403    /// Similar to "send" but does not shutdown the channel if an error occurs.
82404    pub fn send_no_shutdown_on_err(
82405        self,
82406        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82407    ) -> Result<(), fidl::Error> {
82408        let _result = self.send_raw(result);
82409        self.drop_without_shutdown();
82410        _result
82411    }
82412
82413    fn send_raw(
82414        &self,
82415        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82416    ) -> Result<(), fidl::Error> {
82417        self.control_handle.inner.send::<fidl::encoding::ResultType<
82418            fidl::encoding::EmptyStruct,
82419            fidl_fuchsia_posix::Errno,
82420        >>(
82421            result,
82422            self.tx_id,
82423            0x76bc7df115a3b4d0,
82424            fidl::encoding::DynamicFlags::empty(),
82425        )
82426    }
82427}
82428
82429#[must_use = "FIDL methods require a response to be sent"]
82430#[derive(Debug)]
82431pub struct SynchronousDatagramSocketDropIpMembershipResponder {
82432    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82433    tx_id: u32,
82434}
82435
82436/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82437/// if the responder is dropped without sending a response, so that the client
82438/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82439impl std::ops::Drop for SynchronousDatagramSocketDropIpMembershipResponder {
82440    fn drop(&mut self) {
82441        self.control_handle.shutdown();
82442        // Safety: drops once, never accessed again
82443        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82444    }
82445}
82446
82447impl fidl::endpoints::Responder for SynchronousDatagramSocketDropIpMembershipResponder {
82448    type ControlHandle = SynchronousDatagramSocketControlHandle;
82449
82450    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82451        &self.control_handle
82452    }
82453
82454    fn drop_without_shutdown(mut self) {
82455        // Safety: drops once, never accessed again due to mem::forget
82456        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82457        // Prevent Drop from running (which would shut down the channel)
82458        std::mem::forget(self);
82459    }
82460}
82461
82462impl SynchronousDatagramSocketDropIpMembershipResponder {
82463    /// Sends a response to the FIDL transaction.
82464    ///
82465    /// Sets the channel to shutdown if an error occurs.
82466    pub fn send(
82467        self,
82468        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82469    ) -> Result<(), fidl::Error> {
82470        let _result = self.send_raw(result);
82471        if _result.is_err() {
82472            self.control_handle.shutdown();
82473        }
82474        self.drop_without_shutdown();
82475        _result
82476    }
82477
82478    /// Similar to "send" but does not shutdown the channel if an error occurs.
82479    pub fn send_no_shutdown_on_err(
82480        self,
82481        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82482    ) -> Result<(), fidl::Error> {
82483        let _result = self.send_raw(result);
82484        self.drop_without_shutdown();
82485        _result
82486    }
82487
82488    fn send_raw(
82489        &self,
82490        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82491    ) -> Result<(), fidl::Error> {
82492        self.control_handle.inner.send::<fidl::encoding::ResultType<
82493            fidl::encoding::EmptyStruct,
82494            fidl_fuchsia_posix::Errno,
82495        >>(
82496            result,
82497            self.tx_id,
82498            0x2888f3099188d03,
82499            fidl::encoding::DynamicFlags::empty(),
82500        )
82501    }
82502}
82503
82504#[must_use = "FIDL methods require a response to be sent"]
82505#[derive(Debug)]
82506pub struct SynchronousDatagramSocketSetIpTransparentResponder {
82507    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82508    tx_id: u32,
82509}
82510
82511/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82512/// if the responder is dropped without sending a response, so that the client
82513/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82514impl std::ops::Drop for SynchronousDatagramSocketSetIpTransparentResponder {
82515    fn drop(&mut self) {
82516        self.control_handle.shutdown();
82517        // Safety: drops once, never accessed again
82518        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82519    }
82520}
82521
82522impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpTransparentResponder {
82523    type ControlHandle = SynchronousDatagramSocketControlHandle;
82524
82525    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82526        &self.control_handle
82527    }
82528
82529    fn drop_without_shutdown(mut self) {
82530        // Safety: drops once, never accessed again due to mem::forget
82531        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82532        // Prevent Drop from running (which would shut down the channel)
82533        std::mem::forget(self);
82534    }
82535}
82536
82537impl SynchronousDatagramSocketSetIpTransparentResponder {
82538    /// Sends a response to the FIDL transaction.
82539    ///
82540    /// Sets the channel to shutdown if an error occurs.
82541    pub fn send(
82542        self,
82543        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82544    ) -> Result<(), fidl::Error> {
82545        let _result = self.send_raw(result);
82546        if _result.is_err() {
82547            self.control_handle.shutdown();
82548        }
82549        self.drop_without_shutdown();
82550        _result
82551    }
82552
82553    /// Similar to "send" but does not shutdown the channel if an error occurs.
82554    pub fn send_no_shutdown_on_err(
82555        self,
82556        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82557    ) -> Result<(), fidl::Error> {
82558        let _result = self.send_raw(result);
82559        self.drop_without_shutdown();
82560        _result
82561    }
82562
82563    fn send_raw(
82564        &self,
82565        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82566    ) -> Result<(), fidl::Error> {
82567        self.control_handle.inner.send::<fidl::encoding::ResultType<
82568            fidl::encoding::EmptyStruct,
82569            fidl_fuchsia_posix::Errno,
82570        >>(
82571            result,
82572            self.tx_id,
82573            0x1ae532b0c066e3a0,
82574            fidl::encoding::DynamicFlags::empty(),
82575        )
82576    }
82577}
82578
82579#[must_use = "FIDL methods require a response to be sent"]
82580#[derive(Debug)]
82581pub struct SynchronousDatagramSocketGetIpTransparentResponder {
82582    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82583    tx_id: u32,
82584}
82585
82586/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82587/// if the responder is dropped without sending a response, so that the client
82588/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82589impl std::ops::Drop for SynchronousDatagramSocketGetIpTransparentResponder {
82590    fn drop(&mut self) {
82591        self.control_handle.shutdown();
82592        // Safety: drops once, never accessed again
82593        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82594    }
82595}
82596
82597impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpTransparentResponder {
82598    type ControlHandle = SynchronousDatagramSocketControlHandle;
82599
82600    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82601        &self.control_handle
82602    }
82603
82604    fn drop_without_shutdown(mut self) {
82605        // Safety: drops once, never accessed again due to mem::forget
82606        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82607        // Prevent Drop from running (which would shut down the channel)
82608        std::mem::forget(self);
82609    }
82610}
82611
82612impl SynchronousDatagramSocketGetIpTransparentResponder {
82613    /// Sends a response to the FIDL transaction.
82614    ///
82615    /// Sets the channel to shutdown if an error occurs.
82616    pub fn send(
82617        self,
82618        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
82619    ) -> Result<(), fidl::Error> {
82620        let _result = self.send_raw(result);
82621        if _result.is_err() {
82622            self.control_handle.shutdown();
82623        }
82624        self.drop_without_shutdown();
82625        _result
82626    }
82627
82628    /// Similar to "send" but does not shutdown the channel if an error occurs.
82629    pub fn send_no_shutdown_on_err(
82630        self,
82631        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
82632    ) -> Result<(), fidl::Error> {
82633        let _result = self.send_raw(result);
82634        self.drop_without_shutdown();
82635        _result
82636    }
82637
82638    fn send_raw(
82639        &self,
82640        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
82641    ) -> Result<(), fidl::Error> {
82642        self.control_handle.inner.send::<fidl::encoding::ResultType<
82643            BaseNetworkSocketGetIpTransparentResponse,
82644            fidl_fuchsia_posix::Errno,
82645        >>(
82646            result.map(|value| (value,)),
82647            self.tx_id,
82648            0x51d43695962ebfb5,
82649            fidl::encoding::DynamicFlags::empty(),
82650        )
82651    }
82652}
82653
82654#[must_use = "FIDL methods require a response to be sent"]
82655#[derive(Debug)]
82656pub struct SynchronousDatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
82657    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82658    tx_id: u32,
82659}
82660
82661/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82662/// if the responder is dropped without sending a response, so that the client
82663/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82664impl std::ops::Drop for SynchronousDatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
82665    fn drop(&mut self) {
82666        self.control_handle.shutdown();
82667        // Safety: drops once, never accessed again
82668        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82669    }
82670}
82671
82672impl fidl::endpoints::Responder
82673    for SynchronousDatagramSocketSetIpReceiveOriginalDestinationAddressResponder
82674{
82675    type ControlHandle = SynchronousDatagramSocketControlHandle;
82676
82677    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82678        &self.control_handle
82679    }
82680
82681    fn drop_without_shutdown(mut self) {
82682        // Safety: drops once, never accessed again due to mem::forget
82683        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82684        // Prevent Drop from running (which would shut down the channel)
82685        std::mem::forget(self);
82686    }
82687}
82688
82689impl SynchronousDatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
82690    /// Sends a response to the FIDL transaction.
82691    ///
82692    /// Sets the channel to shutdown if an error occurs.
82693    pub fn send(
82694        self,
82695        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82696    ) -> Result<(), fidl::Error> {
82697        let _result = self.send_raw(result);
82698        if _result.is_err() {
82699            self.control_handle.shutdown();
82700        }
82701        self.drop_without_shutdown();
82702        _result
82703    }
82704
82705    /// Similar to "send" but does not shutdown the channel if an error occurs.
82706    pub fn send_no_shutdown_on_err(
82707        self,
82708        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82709    ) -> Result<(), fidl::Error> {
82710        let _result = self.send_raw(result);
82711        self.drop_without_shutdown();
82712        _result
82713    }
82714
82715    fn send_raw(
82716        &self,
82717        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82718    ) -> Result<(), fidl::Error> {
82719        self.control_handle.inner.send::<fidl::encoding::ResultType<
82720            fidl::encoding::EmptyStruct,
82721            fidl_fuchsia_posix::Errno,
82722        >>(
82723            result,
82724            self.tx_id,
82725            0x4722b4ce52f7840,
82726            fidl::encoding::DynamicFlags::empty(),
82727        )
82728    }
82729}
82730
82731#[must_use = "FIDL methods require a response to be sent"]
82732#[derive(Debug)]
82733pub struct SynchronousDatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
82734    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82735    tx_id: u32,
82736}
82737
82738/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82739/// if the responder is dropped without sending a response, so that the client
82740/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82741impl std::ops::Drop for SynchronousDatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
82742    fn drop(&mut self) {
82743        self.control_handle.shutdown();
82744        // Safety: drops once, never accessed again
82745        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82746    }
82747}
82748
82749impl fidl::endpoints::Responder
82750    for SynchronousDatagramSocketGetIpReceiveOriginalDestinationAddressResponder
82751{
82752    type ControlHandle = SynchronousDatagramSocketControlHandle;
82753
82754    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82755        &self.control_handle
82756    }
82757
82758    fn drop_without_shutdown(mut self) {
82759        // Safety: drops once, never accessed again due to mem::forget
82760        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82761        // Prevent Drop from running (which would shut down the channel)
82762        std::mem::forget(self);
82763    }
82764}
82765
82766impl SynchronousDatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
82767    /// Sends a response to the FIDL transaction.
82768    ///
82769    /// Sets the channel to shutdown if an error occurs.
82770    pub fn send(
82771        self,
82772        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
82773    ) -> Result<(), fidl::Error> {
82774        let _result = self.send_raw(result);
82775        if _result.is_err() {
82776            self.control_handle.shutdown();
82777        }
82778        self.drop_without_shutdown();
82779        _result
82780    }
82781
82782    /// Similar to "send" but does not shutdown the channel if an error occurs.
82783    pub fn send_no_shutdown_on_err(
82784        self,
82785        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
82786    ) -> Result<(), fidl::Error> {
82787        let _result = self.send_raw(result);
82788        self.drop_without_shutdown();
82789        _result
82790    }
82791
82792    fn send_raw(
82793        &self,
82794        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
82795    ) -> Result<(), fidl::Error> {
82796        self.control_handle.inner.send::<fidl::encoding::ResultType<
82797            BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
82798            fidl_fuchsia_posix::Errno,
82799        >>(
82800            result.map(|value| (value,)),
82801            self.tx_id,
82802            0x2a0e7dc5d6bfdfe9,
82803            fidl::encoding::DynamicFlags::empty(),
82804        )
82805    }
82806}
82807
82808#[must_use = "FIDL methods require a response to be sent"]
82809#[derive(Debug)]
82810pub struct SynchronousDatagramSocketAddIpv6MembershipResponder {
82811    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82812    tx_id: u32,
82813}
82814
82815/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82816/// if the responder is dropped without sending a response, so that the client
82817/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82818impl std::ops::Drop for SynchronousDatagramSocketAddIpv6MembershipResponder {
82819    fn drop(&mut self) {
82820        self.control_handle.shutdown();
82821        // Safety: drops once, never accessed again
82822        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82823    }
82824}
82825
82826impl fidl::endpoints::Responder for SynchronousDatagramSocketAddIpv6MembershipResponder {
82827    type ControlHandle = SynchronousDatagramSocketControlHandle;
82828
82829    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82830        &self.control_handle
82831    }
82832
82833    fn drop_without_shutdown(mut self) {
82834        // Safety: drops once, never accessed again due to mem::forget
82835        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82836        // Prevent Drop from running (which would shut down the channel)
82837        std::mem::forget(self);
82838    }
82839}
82840
82841impl SynchronousDatagramSocketAddIpv6MembershipResponder {
82842    /// Sends a response to the FIDL transaction.
82843    ///
82844    /// Sets the channel to shutdown if an error occurs.
82845    pub fn send(
82846        self,
82847        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82848    ) -> Result<(), fidl::Error> {
82849        let _result = self.send_raw(result);
82850        if _result.is_err() {
82851            self.control_handle.shutdown();
82852        }
82853        self.drop_without_shutdown();
82854        _result
82855    }
82856
82857    /// Similar to "send" but does not shutdown the channel if an error occurs.
82858    pub fn send_no_shutdown_on_err(
82859        self,
82860        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82861    ) -> Result<(), fidl::Error> {
82862        let _result = self.send_raw(result);
82863        self.drop_without_shutdown();
82864        _result
82865    }
82866
82867    fn send_raw(
82868        &self,
82869        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82870    ) -> Result<(), fidl::Error> {
82871        self.control_handle.inner.send::<fidl::encoding::ResultType<
82872            fidl::encoding::EmptyStruct,
82873            fidl_fuchsia_posix::Errno,
82874        >>(
82875            result,
82876            self.tx_id,
82877            0x7c94727acb4ea4b3,
82878            fidl::encoding::DynamicFlags::empty(),
82879        )
82880    }
82881}
82882
82883#[must_use = "FIDL methods require a response to be sent"]
82884#[derive(Debug)]
82885pub struct SynchronousDatagramSocketDropIpv6MembershipResponder {
82886    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82887    tx_id: u32,
82888}
82889
82890/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82891/// if the responder is dropped without sending a response, so that the client
82892/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82893impl std::ops::Drop for SynchronousDatagramSocketDropIpv6MembershipResponder {
82894    fn drop(&mut self) {
82895        self.control_handle.shutdown();
82896        // Safety: drops once, never accessed again
82897        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82898    }
82899}
82900
82901impl fidl::endpoints::Responder for SynchronousDatagramSocketDropIpv6MembershipResponder {
82902    type ControlHandle = SynchronousDatagramSocketControlHandle;
82903
82904    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82905        &self.control_handle
82906    }
82907
82908    fn drop_without_shutdown(mut self) {
82909        // Safety: drops once, never accessed again due to mem::forget
82910        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82911        // Prevent Drop from running (which would shut down the channel)
82912        std::mem::forget(self);
82913    }
82914}
82915
82916impl SynchronousDatagramSocketDropIpv6MembershipResponder {
82917    /// Sends a response to the FIDL transaction.
82918    ///
82919    /// Sets the channel to shutdown if an error occurs.
82920    pub fn send(
82921        self,
82922        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82923    ) -> Result<(), fidl::Error> {
82924        let _result = self.send_raw(result);
82925        if _result.is_err() {
82926            self.control_handle.shutdown();
82927        }
82928        self.drop_without_shutdown();
82929        _result
82930    }
82931
82932    /// Similar to "send" but does not shutdown the channel if an error occurs.
82933    pub fn send_no_shutdown_on_err(
82934        self,
82935        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82936    ) -> Result<(), fidl::Error> {
82937        let _result = self.send_raw(result);
82938        self.drop_without_shutdown();
82939        _result
82940    }
82941
82942    fn send_raw(
82943        &self,
82944        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82945    ) -> Result<(), fidl::Error> {
82946        self.control_handle.inner.send::<fidl::encoding::ResultType<
82947            fidl::encoding::EmptyStruct,
82948            fidl_fuchsia_posix::Errno,
82949        >>(
82950            result,
82951            self.tx_id,
82952            0x42104c70ccaba304,
82953            fidl::encoding::DynamicFlags::empty(),
82954        )
82955    }
82956}
82957
82958#[must_use = "FIDL methods require a response to be sent"]
82959#[derive(Debug)]
82960pub struct SynchronousDatagramSocketSetIpv6MulticastInterfaceResponder {
82961    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82962    tx_id: u32,
82963}
82964
82965/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82966/// if the responder is dropped without sending a response, so that the client
82967/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82968impl std::ops::Drop for SynchronousDatagramSocketSetIpv6MulticastInterfaceResponder {
82969    fn drop(&mut self) {
82970        self.control_handle.shutdown();
82971        // Safety: drops once, never accessed again
82972        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82973    }
82974}
82975
82976impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpv6MulticastInterfaceResponder {
82977    type ControlHandle = SynchronousDatagramSocketControlHandle;
82978
82979    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82980        &self.control_handle
82981    }
82982
82983    fn drop_without_shutdown(mut self) {
82984        // Safety: drops once, never accessed again due to mem::forget
82985        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82986        // Prevent Drop from running (which would shut down the channel)
82987        std::mem::forget(self);
82988    }
82989}
82990
82991impl SynchronousDatagramSocketSetIpv6MulticastInterfaceResponder {
82992    /// Sends a response to the FIDL transaction.
82993    ///
82994    /// Sets the channel to shutdown if an error occurs.
82995    pub fn send(
82996        self,
82997        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82998    ) -> Result<(), fidl::Error> {
82999        let _result = self.send_raw(result);
83000        if _result.is_err() {
83001            self.control_handle.shutdown();
83002        }
83003        self.drop_without_shutdown();
83004        _result
83005    }
83006
83007    /// Similar to "send" but does not shutdown the channel if an error occurs.
83008    pub fn send_no_shutdown_on_err(
83009        self,
83010        mut result: Result<(), fidl_fuchsia_posix::Errno>,
83011    ) -> Result<(), fidl::Error> {
83012        let _result = self.send_raw(result);
83013        self.drop_without_shutdown();
83014        _result
83015    }
83016
83017    fn send_raw(
83018        &self,
83019        mut result: Result<(), fidl_fuchsia_posix::Errno>,
83020    ) -> Result<(), fidl::Error> {
83021        self.control_handle.inner.send::<fidl::encoding::ResultType<
83022            fidl::encoding::EmptyStruct,
83023            fidl_fuchsia_posix::Errno,
83024        >>(
83025            result,
83026            self.tx_id,
83027            0x135f76db3774ab3b,
83028            fidl::encoding::DynamicFlags::empty(),
83029        )
83030    }
83031}
83032
83033#[must_use = "FIDL methods require a response to be sent"]
83034#[derive(Debug)]
83035pub struct SynchronousDatagramSocketGetIpv6MulticastInterfaceResponder {
83036    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
83037    tx_id: u32,
83038}
83039
83040/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
83041/// if the responder is dropped without sending a response, so that the client
83042/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
83043impl std::ops::Drop for SynchronousDatagramSocketGetIpv6MulticastInterfaceResponder {
83044    fn drop(&mut self) {
83045        self.control_handle.shutdown();
83046        // Safety: drops once, never accessed again
83047        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
83048    }
83049}
83050
83051impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpv6MulticastInterfaceResponder {
83052    type ControlHandle = SynchronousDatagramSocketControlHandle;
83053
83054    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
83055        &self.control_handle
83056    }
83057
83058    fn drop_without_shutdown(mut self) {
83059        // Safety: drops once, never accessed again due to mem::forget
83060        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
83061        // Prevent Drop from running (which would shut down the channel)
83062        std::mem::forget(self);
83063    }
83064}
83065
83066impl SynchronousDatagramSocketGetIpv6MulticastInterfaceResponder {
83067    /// Sends a response to the FIDL transaction.
83068    ///
83069    /// Sets the channel to shutdown if an error occurs.
83070    pub fn send(
83071        self,
83072        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
83073    ) -> Result<(), fidl::Error> {
83074        let _result = self.send_raw(result);
83075        if _result.is_err() {
83076            self.control_handle.shutdown();
83077        }
83078        self.drop_without_shutdown();
83079        _result
83080    }
83081
83082    /// Similar to "send" but does not shutdown the channel if an error occurs.
83083    pub fn send_no_shutdown_on_err(
83084        self,
83085        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
83086    ) -> Result<(), fidl::Error> {
83087        let _result = self.send_raw(result);
83088        self.drop_without_shutdown();
83089        _result
83090    }
83091
83092    fn send_raw(
83093        &self,
83094        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
83095    ) -> Result<(), fidl::Error> {
83096        self.control_handle.inner.send::<fidl::encoding::ResultType<
83097            BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
83098            fidl_fuchsia_posix::Errno,
83099        >>(
83100            result.map(|value| (value,)),
83101            self.tx_id,
83102            0x1f26fcdd348f1882,
83103            fidl::encoding::DynamicFlags::empty(),
83104        )
83105    }
83106}
83107
83108#[must_use = "FIDL methods require a response to be sent"]
83109#[derive(Debug)]
83110pub struct SynchronousDatagramSocketSetIpv6UnicastHopsResponder {
83111    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
83112    tx_id: u32,
83113}
83114
83115/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
83116/// if the responder is dropped without sending a response, so that the client
83117/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
83118impl std::ops::Drop for SynchronousDatagramSocketSetIpv6UnicastHopsResponder {
83119    fn drop(&mut self) {
83120        self.control_handle.shutdown();
83121        // Safety: drops once, never accessed again
83122        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
83123    }
83124}
83125
83126impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpv6UnicastHopsResponder {
83127    type ControlHandle = SynchronousDatagramSocketControlHandle;
83128
83129    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
83130        &self.control_handle
83131    }
83132
83133    fn drop_without_shutdown(mut self) {
83134        // Safety: drops once, never accessed again due to mem::forget
83135        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
83136        // Prevent Drop from running (which would shut down the channel)
83137        std::mem::forget(self);
83138    }
83139}
83140
83141impl SynchronousDatagramSocketSetIpv6UnicastHopsResponder {
83142    /// Sends a response to the FIDL transaction.
83143    ///
83144    /// Sets the channel to shutdown if an error occurs.
83145    pub fn send(
83146        self,
83147        mut result: Result<(), fidl_fuchsia_posix::Errno>,
83148    ) -> Result<(), fidl::Error> {
83149        let _result = self.send_raw(result);
83150        if _result.is_err() {
83151            self.control_handle.shutdown();
83152        }
83153        self.drop_without_shutdown();
83154        _result
83155    }
83156
83157    /// Similar to "send" but does not shutdown the channel if an error occurs.
83158    pub fn send_no_shutdown_on_err(
83159        self,
83160        mut result: Result<(), fidl_fuchsia_posix::Errno>,
83161    ) -> Result<(), fidl::Error> {
83162        let _result = self.send_raw(result);
83163        self.drop_without_shutdown();
83164        _result
83165    }
83166
83167    fn send_raw(
83168        &self,
83169        mut result: Result<(), fidl_fuchsia_posix::Errno>,
83170    ) -> Result<(), fidl::Error> {
83171        self.control_handle.inner.send::<fidl::encoding::ResultType<
83172            fidl::encoding::EmptyStruct,
83173            fidl_fuchsia_posix::Errno,
83174        >>(
83175            result,
83176            self.tx_id,
83177            0x157d51e98f462859,
83178            fidl::encoding::DynamicFlags::empty(),
83179        )
83180    }
83181}
83182
83183#[must_use = "FIDL methods require a response to be sent"]
83184#[derive(Debug)]
83185pub struct SynchronousDatagramSocketGetIpv6UnicastHopsResponder {
83186    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
83187    tx_id: u32,
83188}
83189
83190/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
83191/// if the responder is dropped without sending a response, so that the client
83192/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
83193impl std::ops::Drop for SynchronousDatagramSocketGetIpv6UnicastHopsResponder {
83194    fn drop(&mut self) {
83195        self.control_handle.shutdown();
83196        // Safety: drops once, never accessed again
83197        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
83198    }
83199}
83200
83201impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpv6UnicastHopsResponder {
83202    type ControlHandle = SynchronousDatagramSocketControlHandle;
83203
83204    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
83205        &self.control_handle
83206    }
83207
83208    fn drop_without_shutdown(mut self) {
83209        // Safety: drops once, never accessed again due to mem::forget
83210        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
83211        // Prevent Drop from running (which would shut down the channel)
83212        std::mem::forget(self);
83213    }
83214}
83215
83216impl SynchronousDatagramSocketGetIpv6UnicastHopsResponder {
83217    /// Sends a response to the FIDL transaction.
83218    ///
83219    /// Sets the channel to shutdown if an error occurs.
83220    pub fn send(
83221        self,
83222        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
83223    ) -> Result<(), fidl::Error> {
83224        let _result = self.send_raw(result);
83225        if _result.is_err() {
83226            self.control_handle.shutdown();
83227        }
83228        self.drop_without_shutdown();
83229        _result
83230    }
83231
83232    /// Similar to "send" but does not shutdown the channel if an error occurs.
83233    pub fn send_no_shutdown_on_err(
83234        self,
83235        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
83236    ) -> Result<(), fidl::Error> {
83237        let _result = self.send_raw(result);
83238        self.drop_without_shutdown();
83239        _result
83240    }
83241
83242    fn send_raw(
83243        &self,
83244        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
83245    ) -> Result<(), fidl::Error> {
83246        self.control_handle.inner.send::<fidl::encoding::ResultType<
83247            BaseNetworkSocketGetIpv6UnicastHopsResponse,
83248            fidl_fuchsia_posix::Errno,
83249        >>(
83250            result.map(|value| (value,)),
83251            self.tx_id,
83252            0x21f4641cad8bd8d2,
83253            fidl::encoding::DynamicFlags::empty(),
83254        )
83255    }
83256}
83257
83258#[must_use = "FIDL methods require a response to be sent"]
83259#[derive(Debug)]
83260pub struct SynchronousDatagramSocketSetIpv6ReceiveHopLimitResponder {
83261    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
83262    tx_id: u32,
83263}
83264
83265/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
83266/// if the responder is dropped without sending a response, so that the client
83267/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
83268impl std::ops::Drop for SynchronousDatagramSocketSetIpv6ReceiveHopLimitResponder {
83269    fn drop(&mut self) {
83270        self.control_handle.shutdown();
83271        // Safety: drops once, never accessed again
83272        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
83273    }
83274}
83275
83276impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpv6ReceiveHopLimitResponder {
83277    type ControlHandle = SynchronousDatagramSocketControlHandle;
83278
83279    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
83280        &self.control_handle
83281    }
83282
83283    fn drop_without_shutdown(mut self) {
83284        // Safety: drops once, never accessed again due to mem::forget
83285        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
83286        // Prevent Drop from running (which would shut down the channel)
83287        std::mem::forget(self);
83288    }
83289}
83290
83291impl SynchronousDatagramSocketSetIpv6ReceiveHopLimitResponder {
83292    /// Sends a response to the FIDL transaction.
83293    ///
83294    /// Sets the channel to shutdown if an error occurs.
83295    pub fn send(
83296        self,
83297        mut result: Result<(), fidl_fuchsia_posix::Errno>,
83298    ) -> Result<(), fidl::Error> {
83299        let _result = self.send_raw(result);
83300        if _result.is_err() {
83301            self.control_handle.shutdown();
83302        }
83303        self.drop_without_shutdown();
83304        _result
83305    }
83306
83307    /// Similar to "send" but does not shutdown the channel if an error occurs.
83308    pub fn send_no_shutdown_on_err(
83309        self,
83310        mut result: Result<(), fidl_fuchsia_posix::Errno>,
83311    ) -> Result<(), fidl::Error> {
83312        let _result = self.send_raw(result);
83313        self.drop_without_shutdown();
83314        _result
83315    }
83316
83317    fn send_raw(
83318        &self,
83319        mut result: Result<(), fidl_fuchsia_posix::Errno>,
83320    ) -> Result<(), fidl::Error> {
83321        self.control_handle.inner.send::<fidl::encoding::ResultType<
83322            fidl::encoding::EmptyStruct,
83323            fidl_fuchsia_posix::Errno,
83324        >>(
83325            result,
83326            self.tx_id,
83327            0x5c24808ed2e84a1e,
83328            fidl::encoding::DynamicFlags::empty(),
83329        )
83330    }
83331}
83332
83333#[must_use = "FIDL methods require a response to be sent"]
83334#[derive(Debug)]
83335pub struct SynchronousDatagramSocketGetIpv6ReceiveHopLimitResponder {
83336    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
83337    tx_id: u32,
83338}
83339
83340/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
83341/// if the responder is dropped without sending a response, so that the client
83342/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
83343impl std::ops::Drop for SynchronousDatagramSocketGetIpv6ReceiveHopLimitResponder {
83344    fn drop(&mut self) {
83345        self.control_handle.shutdown();
83346        // Safety: drops once, never accessed again
83347        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
83348    }
83349}
83350
83351impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpv6ReceiveHopLimitResponder {
83352    type ControlHandle = SynchronousDatagramSocketControlHandle;
83353
83354    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
83355        &self.control_handle
83356    }
83357
83358    fn drop_without_shutdown(mut self) {
83359        // Safety: drops once, never accessed again due to mem::forget
83360        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
83361        // Prevent Drop from running (which would shut down the channel)
83362        std::mem::forget(self);
83363    }
83364}
83365
83366impl SynchronousDatagramSocketGetIpv6ReceiveHopLimitResponder {
83367    /// Sends a response to the FIDL transaction.
83368    ///
83369    /// Sets the channel to shutdown if an error occurs.
83370    pub fn send(
83371        self,
83372        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
83373    ) -> Result<(), fidl::Error> {
83374        let _result = self.send_raw(result);
83375        if _result.is_err() {
83376            self.control_handle.shutdown();
83377        }
83378        self.drop_without_shutdown();
83379        _result
83380    }
83381
83382    /// Similar to "send" but does not shutdown the channel if an error occurs.
83383    pub fn send_no_shutdown_on_err(
83384        self,
83385        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
83386    ) -> Result<(), fidl::Error> {
83387        let _result = self.send_raw(result);
83388        self.drop_without_shutdown();
83389        _result
83390    }
83391
83392    fn send_raw(
83393        &self,
83394        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
83395    ) -> Result<(), fidl::Error> {
83396        self.control_handle.inner.send::<fidl::encoding::ResultType<
83397            BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
83398            fidl_fuchsia_posix::Errno,
83399        >>(
83400            result.map(|value| (value,)),
83401            self.tx_id,
83402            0x341e06689885b4c0,
83403            fidl::encoding::DynamicFlags::empty(),
83404        )
83405    }
83406}
83407
83408#[must_use = "FIDL methods require a response to be sent"]
83409#[derive(Debug)]
83410pub struct SynchronousDatagramSocketSetIpv6MulticastHopsResponder {
83411    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
83412    tx_id: u32,
83413}
83414
83415/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
83416/// if the responder is dropped without sending a response, so that the client
83417/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
83418impl std::ops::Drop for SynchronousDatagramSocketSetIpv6MulticastHopsResponder {
83419    fn drop(&mut self) {
83420        self.control_handle.shutdown();
83421        // Safety: drops once, never accessed again
83422        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
83423    }
83424}
83425
83426impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpv6MulticastHopsResponder {
83427    type ControlHandle = SynchronousDatagramSocketControlHandle;
83428
83429    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
83430        &self.control_handle
83431    }
83432
83433    fn drop_without_shutdown(mut self) {
83434        // Safety: drops once, never accessed again due to mem::forget
83435        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
83436        // Prevent Drop from running (which would shut down the channel)
83437        std::mem::forget(self);
83438    }
83439}
83440
83441impl SynchronousDatagramSocketSetIpv6MulticastHopsResponder {
83442    /// Sends a response to the FIDL transaction.
83443    ///
83444    /// Sets the channel to shutdown if an error occurs.
83445    pub fn send(
83446        self,
83447        mut result: Result<(), fidl_fuchsia_posix::Errno>,
83448    ) -> Result<(), fidl::Error> {
83449        let _result = self.send_raw(result);
83450        if _result.is_err() {
83451            self.control_handle.shutdown();
83452        }
83453        self.drop_without_shutdown();
83454        _result
83455    }
83456
83457    /// Similar to "send" but does not shutdown the channel if an error occurs.
83458    pub fn send_no_shutdown_on_err(
83459        self,
83460        mut result: Result<(), fidl_fuchsia_posix::Errno>,
83461    ) -> Result<(), fidl::Error> {
83462        let _result = self.send_raw(result);
83463        self.drop_without_shutdown();
83464        _result
83465    }
83466
83467    fn send_raw(
83468        &self,
83469        mut result: Result<(), fidl_fuchsia_posix::Errno>,
83470    ) -> Result<(), fidl::Error> {
83471        self.control_handle.inner.send::<fidl::encoding::ResultType<
83472            fidl::encoding::EmptyStruct,
83473            fidl_fuchsia_posix::Errno,
83474        >>(
83475            result,
83476            self.tx_id,
83477            0x25b9cd4d181f82c1,
83478            fidl::encoding::DynamicFlags::empty(),
83479        )
83480    }
83481}
83482
83483#[must_use = "FIDL methods require a response to be sent"]
83484#[derive(Debug)]
83485pub struct SynchronousDatagramSocketGetIpv6MulticastHopsResponder {
83486    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
83487    tx_id: u32,
83488}
83489
83490/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
83491/// if the responder is dropped without sending a response, so that the client
83492/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
83493impl std::ops::Drop for SynchronousDatagramSocketGetIpv6MulticastHopsResponder {
83494    fn drop(&mut self) {
83495        self.control_handle.shutdown();
83496        // Safety: drops once, never accessed again
83497        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
83498    }
83499}
83500
83501impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpv6MulticastHopsResponder {
83502    type ControlHandle = SynchronousDatagramSocketControlHandle;
83503
83504    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
83505        &self.control_handle
83506    }
83507
83508    fn drop_without_shutdown(mut self) {
83509        // Safety: drops once, never accessed again due to mem::forget
83510        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
83511        // Prevent Drop from running (which would shut down the channel)
83512        std::mem::forget(self);
83513    }
83514}
83515
83516impl SynchronousDatagramSocketGetIpv6MulticastHopsResponder {
83517    /// Sends a response to the FIDL transaction.
83518    ///
83519    /// Sets the channel to shutdown if an error occurs.
83520    pub fn send(
83521        self,
83522        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
83523    ) -> Result<(), fidl::Error> {
83524        let _result = self.send_raw(result);
83525        if _result.is_err() {
83526            self.control_handle.shutdown();
83527        }
83528        self.drop_without_shutdown();
83529        _result
83530    }
83531
83532    /// Similar to "send" but does not shutdown the channel if an error occurs.
83533    pub fn send_no_shutdown_on_err(
83534        self,
83535        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
83536    ) -> Result<(), fidl::Error> {
83537        let _result = self.send_raw(result);
83538        self.drop_without_shutdown();
83539        _result
83540    }
83541
83542    fn send_raw(
83543        &self,
83544        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
83545    ) -> Result<(), fidl::Error> {
83546        self.control_handle.inner.send::<fidl::encoding::ResultType<
83547            BaseNetworkSocketGetIpv6MulticastHopsResponse,
83548            fidl_fuchsia_posix::Errno,
83549        >>(
83550            result.map(|value| (value,)),
83551            self.tx_id,
83552            0x52916948a365012a,
83553            fidl::encoding::DynamicFlags::empty(),
83554        )
83555    }
83556}
83557
83558#[must_use = "FIDL methods require a response to be sent"]
83559#[derive(Debug)]
83560pub struct SynchronousDatagramSocketSetIpv6MulticastLoopbackResponder {
83561    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
83562    tx_id: u32,
83563}
83564
83565/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
83566/// if the responder is dropped without sending a response, so that the client
83567/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
83568impl std::ops::Drop for SynchronousDatagramSocketSetIpv6MulticastLoopbackResponder {
83569    fn drop(&mut self) {
83570        self.control_handle.shutdown();
83571        // Safety: drops once, never accessed again
83572        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
83573    }
83574}
83575
83576impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpv6MulticastLoopbackResponder {
83577    type ControlHandle = SynchronousDatagramSocketControlHandle;
83578
83579    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
83580        &self.control_handle
83581    }
83582
83583    fn drop_without_shutdown(mut self) {
83584        // Safety: drops once, never accessed again due to mem::forget
83585        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
83586        // Prevent Drop from running (which would shut down the channel)
83587        std::mem::forget(self);
83588    }
83589}
83590
83591impl SynchronousDatagramSocketSetIpv6MulticastLoopbackResponder {
83592    /// Sends a response to the FIDL transaction.
83593    ///
83594    /// Sets the channel to shutdown if an error occurs.
83595    pub fn send(
83596        self,
83597        mut result: Result<(), fidl_fuchsia_posix::Errno>,
83598    ) -> Result<(), fidl::Error> {
83599        let _result = self.send_raw(result);
83600        if _result.is_err() {
83601            self.control_handle.shutdown();
83602        }
83603        self.drop_without_shutdown();
83604        _result
83605    }
83606
83607    /// Similar to "send" but does not shutdown the channel if an error occurs.
83608    pub fn send_no_shutdown_on_err(
83609        self,
83610        mut result: Result<(), fidl_fuchsia_posix::Errno>,
83611    ) -> Result<(), fidl::Error> {
83612        let _result = self.send_raw(result);
83613        self.drop_without_shutdown();
83614        _result
83615    }
83616
83617    fn send_raw(
83618        &self,
83619        mut result: Result<(), fidl_fuchsia_posix::Errno>,
83620    ) -> Result<(), fidl::Error> {
83621        self.control_handle.inner.send::<fidl::encoding::ResultType<
83622            fidl::encoding::EmptyStruct,
83623            fidl_fuchsia_posix::Errno,
83624        >>(
83625            result,
83626            self.tx_id,
83627            0x55701c409ff41b40,
83628            fidl::encoding::DynamicFlags::empty(),
83629        )
83630    }
83631}
83632
83633#[must_use = "FIDL methods require a response to be sent"]
83634#[derive(Debug)]
83635pub struct SynchronousDatagramSocketGetIpv6MulticastLoopbackResponder {
83636    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
83637    tx_id: u32,
83638}
83639
83640/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
83641/// if the responder is dropped without sending a response, so that the client
83642/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
83643impl std::ops::Drop for SynchronousDatagramSocketGetIpv6MulticastLoopbackResponder {
83644    fn drop(&mut self) {
83645        self.control_handle.shutdown();
83646        // Safety: drops once, never accessed again
83647        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
83648    }
83649}
83650
83651impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpv6MulticastLoopbackResponder {
83652    type ControlHandle = SynchronousDatagramSocketControlHandle;
83653
83654    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
83655        &self.control_handle
83656    }
83657
83658    fn drop_without_shutdown(mut self) {
83659        // Safety: drops once, never accessed again due to mem::forget
83660        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
83661        // Prevent Drop from running (which would shut down the channel)
83662        std::mem::forget(self);
83663    }
83664}
83665
83666impl SynchronousDatagramSocketGetIpv6MulticastLoopbackResponder {
83667    /// Sends a response to the FIDL transaction.
83668    ///
83669    /// Sets the channel to shutdown if an error occurs.
83670    pub fn send(
83671        self,
83672        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
83673    ) -> Result<(), fidl::Error> {
83674        let _result = self.send_raw(result);
83675        if _result.is_err() {
83676            self.control_handle.shutdown();
83677        }
83678        self.drop_without_shutdown();
83679        _result
83680    }
83681
83682    /// Similar to "send" but does not shutdown the channel if an error occurs.
83683    pub fn send_no_shutdown_on_err(
83684        self,
83685        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
83686    ) -> Result<(), fidl::Error> {
83687        let _result = self.send_raw(result);
83688        self.drop_without_shutdown();
83689        _result
83690    }
83691
83692    fn send_raw(
83693        &self,
83694        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
83695    ) -> Result<(), fidl::Error> {
83696        self.control_handle.inner.send::<fidl::encoding::ResultType<
83697            BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
83698            fidl_fuchsia_posix::Errno,
83699        >>(
83700            result.map(|value| (value,)),
83701            self.tx_id,
83702            0x4415b701fde319c3,
83703            fidl::encoding::DynamicFlags::empty(),
83704        )
83705    }
83706}
83707
83708#[must_use = "FIDL methods require a response to be sent"]
83709#[derive(Debug)]
83710pub struct SynchronousDatagramSocketSetIpv6OnlyResponder {
83711    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
83712    tx_id: u32,
83713}
83714
83715/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
83716/// if the responder is dropped without sending a response, so that the client
83717/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
83718impl std::ops::Drop for SynchronousDatagramSocketSetIpv6OnlyResponder {
83719    fn drop(&mut self) {
83720        self.control_handle.shutdown();
83721        // Safety: drops once, never accessed again
83722        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
83723    }
83724}
83725
83726impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpv6OnlyResponder {
83727    type ControlHandle = SynchronousDatagramSocketControlHandle;
83728
83729    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
83730        &self.control_handle
83731    }
83732
83733    fn drop_without_shutdown(mut self) {
83734        // Safety: drops once, never accessed again due to mem::forget
83735        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
83736        // Prevent Drop from running (which would shut down the channel)
83737        std::mem::forget(self);
83738    }
83739}
83740
83741impl SynchronousDatagramSocketSetIpv6OnlyResponder {
83742    /// Sends a response to the FIDL transaction.
83743    ///
83744    /// Sets the channel to shutdown if an error occurs.
83745    pub fn send(
83746        self,
83747        mut result: Result<(), fidl_fuchsia_posix::Errno>,
83748    ) -> Result<(), fidl::Error> {
83749        let _result = self.send_raw(result);
83750        if _result.is_err() {
83751            self.control_handle.shutdown();
83752        }
83753        self.drop_without_shutdown();
83754        _result
83755    }
83756
83757    /// Similar to "send" but does not shutdown the channel if an error occurs.
83758    pub fn send_no_shutdown_on_err(
83759        self,
83760        mut result: Result<(), fidl_fuchsia_posix::Errno>,
83761    ) -> Result<(), fidl::Error> {
83762        let _result = self.send_raw(result);
83763        self.drop_without_shutdown();
83764        _result
83765    }
83766
83767    fn send_raw(
83768        &self,
83769        mut result: Result<(), fidl_fuchsia_posix::Errno>,
83770    ) -> Result<(), fidl::Error> {
83771        self.control_handle.inner.send::<fidl::encoding::ResultType<
83772            fidl::encoding::EmptyStruct,
83773            fidl_fuchsia_posix::Errno,
83774        >>(
83775            result,
83776            self.tx_id,
83777            0x4873f1364758cbba,
83778            fidl::encoding::DynamicFlags::empty(),
83779        )
83780    }
83781}
83782
83783#[must_use = "FIDL methods require a response to be sent"]
83784#[derive(Debug)]
83785pub struct SynchronousDatagramSocketGetIpv6OnlyResponder {
83786    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
83787    tx_id: u32,
83788}
83789
83790/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
83791/// if the responder is dropped without sending a response, so that the client
83792/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
83793impl std::ops::Drop for SynchronousDatagramSocketGetIpv6OnlyResponder {
83794    fn drop(&mut self) {
83795        self.control_handle.shutdown();
83796        // Safety: drops once, never accessed again
83797        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
83798    }
83799}
83800
83801impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpv6OnlyResponder {
83802    type ControlHandle = SynchronousDatagramSocketControlHandle;
83803
83804    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
83805        &self.control_handle
83806    }
83807
83808    fn drop_without_shutdown(mut self) {
83809        // Safety: drops once, never accessed again due to mem::forget
83810        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
83811        // Prevent Drop from running (which would shut down the channel)
83812        std::mem::forget(self);
83813    }
83814}
83815
83816impl SynchronousDatagramSocketGetIpv6OnlyResponder {
83817    /// Sends a response to the FIDL transaction.
83818    ///
83819    /// Sets the channel to shutdown if an error occurs.
83820    pub fn send(
83821        self,
83822        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
83823    ) -> Result<(), fidl::Error> {
83824        let _result = self.send_raw(result);
83825        if _result.is_err() {
83826            self.control_handle.shutdown();
83827        }
83828        self.drop_without_shutdown();
83829        _result
83830    }
83831
83832    /// Similar to "send" but does not shutdown the channel if an error occurs.
83833    pub fn send_no_shutdown_on_err(
83834        self,
83835        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
83836    ) -> Result<(), fidl::Error> {
83837        let _result = self.send_raw(result);
83838        self.drop_without_shutdown();
83839        _result
83840    }
83841
83842    fn send_raw(
83843        &self,
83844        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
83845    ) -> Result<(), fidl::Error> {
83846        self.control_handle.inner.send::<fidl::encoding::ResultType<
83847            BaseNetworkSocketGetIpv6OnlyResponse,
83848            fidl_fuchsia_posix::Errno,
83849        >>(
83850            result.map(|value| (value,)),
83851            self.tx_id,
83852            0x4aa3340a1a26b89c,
83853            fidl::encoding::DynamicFlags::empty(),
83854        )
83855    }
83856}
83857
83858#[must_use = "FIDL methods require a response to be sent"]
83859#[derive(Debug)]
83860pub struct SynchronousDatagramSocketSetIpv6ReceiveTrafficClassResponder {
83861    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
83862    tx_id: u32,
83863}
83864
83865/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
83866/// if the responder is dropped without sending a response, so that the client
83867/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
83868impl std::ops::Drop for SynchronousDatagramSocketSetIpv6ReceiveTrafficClassResponder {
83869    fn drop(&mut self) {
83870        self.control_handle.shutdown();
83871        // Safety: drops once, never accessed again
83872        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
83873    }
83874}
83875
83876impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpv6ReceiveTrafficClassResponder {
83877    type ControlHandle = SynchronousDatagramSocketControlHandle;
83878
83879    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
83880        &self.control_handle
83881    }
83882
83883    fn drop_without_shutdown(mut self) {
83884        // Safety: drops once, never accessed again due to mem::forget
83885        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
83886        // Prevent Drop from running (which would shut down the channel)
83887        std::mem::forget(self);
83888    }
83889}
83890
83891impl SynchronousDatagramSocketSetIpv6ReceiveTrafficClassResponder {
83892    /// Sends a response to the FIDL transaction.
83893    ///
83894    /// Sets the channel to shutdown if an error occurs.
83895    pub fn send(
83896        self,
83897        mut result: Result<(), fidl_fuchsia_posix::Errno>,
83898    ) -> Result<(), fidl::Error> {
83899        let _result = self.send_raw(result);
83900        if _result.is_err() {
83901            self.control_handle.shutdown();
83902        }
83903        self.drop_without_shutdown();
83904        _result
83905    }
83906
83907    /// Similar to "send" but does not shutdown the channel if an error occurs.
83908    pub fn send_no_shutdown_on_err(
83909        self,
83910        mut result: Result<(), fidl_fuchsia_posix::Errno>,
83911    ) -> Result<(), fidl::Error> {
83912        let _result = self.send_raw(result);
83913        self.drop_without_shutdown();
83914        _result
83915    }
83916
83917    fn send_raw(
83918        &self,
83919        mut result: Result<(), fidl_fuchsia_posix::Errno>,
83920    ) -> Result<(), fidl::Error> {
83921        self.control_handle.inner.send::<fidl::encoding::ResultType<
83922            fidl::encoding::EmptyStruct,
83923            fidl_fuchsia_posix::Errno,
83924        >>(
83925            result,
83926            self.tx_id,
83927            0x58f07c8788d099a0,
83928            fidl::encoding::DynamicFlags::empty(),
83929        )
83930    }
83931}
83932
83933#[must_use = "FIDL methods require a response to be sent"]
83934#[derive(Debug)]
83935pub struct SynchronousDatagramSocketGetIpv6ReceiveTrafficClassResponder {
83936    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
83937    tx_id: u32,
83938}
83939
83940/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
83941/// if the responder is dropped without sending a response, so that the client
83942/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
83943impl std::ops::Drop for SynchronousDatagramSocketGetIpv6ReceiveTrafficClassResponder {
83944    fn drop(&mut self) {
83945        self.control_handle.shutdown();
83946        // Safety: drops once, never accessed again
83947        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
83948    }
83949}
83950
83951impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpv6ReceiveTrafficClassResponder {
83952    type ControlHandle = SynchronousDatagramSocketControlHandle;
83953
83954    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
83955        &self.control_handle
83956    }
83957
83958    fn drop_without_shutdown(mut self) {
83959        // Safety: drops once, never accessed again due to mem::forget
83960        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
83961        // Prevent Drop from running (which would shut down the channel)
83962        std::mem::forget(self);
83963    }
83964}
83965
83966impl SynchronousDatagramSocketGetIpv6ReceiveTrafficClassResponder {
83967    /// Sends a response to the FIDL transaction.
83968    ///
83969    /// Sets the channel to shutdown if an error occurs.
83970    pub fn send(
83971        self,
83972        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
83973    ) -> Result<(), fidl::Error> {
83974        let _result = self.send_raw(result);
83975        if _result.is_err() {
83976            self.control_handle.shutdown();
83977        }
83978        self.drop_without_shutdown();
83979        _result
83980    }
83981
83982    /// Similar to "send" but does not shutdown the channel if an error occurs.
83983    pub fn send_no_shutdown_on_err(
83984        self,
83985        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
83986    ) -> Result<(), fidl::Error> {
83987        let _result = self.send_raw(result);
83988        self.drop_without_shutdown();
83989        _result
83990    }
83991
83992    fn send_raw(
83993        &self,
83994        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
83995    ) -> Result<(), fidl::Error> {
83996        self.control_handle.inner.send::<fidl::encoding::ResultType<
83997            BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
83998            fidl_fuchsia_posix::Errno,
83999        >>(
84000            result.map(|value| (value,)),
84001            self.tx_id,
84002            0x2e334df1da553ffa,
84003            fidl::encoding::DynamicFlags::empty(),
84004        )
84005    }
84006}
84007
84008#[must_use = "FIDL methods require a response to be sent"]
84009#[derive(Debug)]
84010pub struct SynchronousDatagramSocketSetIpv6TrafficClassResponder {
84011    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
84012    tx_id: u32,
84013}
84014
84015/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
84016/// if the responder is dropped without sending a response, so that the client
84017/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
84018impl std::ops::Drop for SynchronousDatagramSocketSetIpv6TrafficClassResponder {
84019    fn drop(&mut self) {
84020        self.control_handle.shutdown();
84021        // Safety: drops once, never accessed again
84022        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
84023    }
84024}
84025
84026impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpv6TrafficClassResponder {
84027    type ControlHandle = SynchronousDatagramSocketControlHandle;
84028
84029    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
84030        &self.control_handle
84031    }
84032
84033    fn drop_without_shutdown(mut self) {
84034        // Safety: drops once, never accessed again due to mem::forget
84035        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
84036        // Prevent Drop from running (which would shut down the channel)
84037        std::mem::forget(self);
84038    }
84039}
84040
84041impl SynchronousDatagramSocketSetIpv6TrafficClassResponder {
84042    /// Sends a response to the FIDL transaction.
84043    ///
84044    /// Sets the channel to shutdown if an error occurs.
84045    pub fn send(
84046        self,
84047        mut result: Result<(), fidl_fuchsia_posix::Errno>,
84048    ) -> Result<(), fidl::Error> {
84049        let _result = self.send_raw(result);
84050        if _result.is_err() {
84051            self.control_handle.shutdown();
84052        }
84053        self.drop_without_shutdown();
84054        _result
84055    }
84056
84057    /// Similar to "send" but does not shutdown the channel if an error occurs.
84058    pub fn send_no_shutdown_on_err(
84059        self,
84060        mut result: Result<(), fidl_fuchsia_posix::Errno>,
84061    ) -> Result<(), fidl::Error> {
84062        let _result = self.send_raw(result);
84063        self.drop_without_shutdown();
84064        _result
84065    }
84066
84067    fn send_raw(
84068        &self,
84069        mut result: Result<(), fidl_fuchsia_posix::Errno>,
84070    ) -> Result<(), fidl::Error> {
84071        self.control_handle.inner.send::<fidl::encoding::ResultType<
84072            fidl::encoding::EmptyStruct,
84073            fidl_fuchsia_posix::Errno,
84074        >>(
84075            result,
84076            self.tx_id,
84077            0x6af077800c5a0b4f,
84078            fidl::encoding::DynamicFlags::empty(),
84079        )
84080    }
84081}
84082
84083#[must_use = "FIDL methods require a response to be sent"]
84084#[derive(Debug)]
84085pub struct SynchronousDatagramSocketGetIpv6TrafficClassResponder {
84086    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
84087    tx_id: u32,
84088}
84089
84090/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
84091/// if the responder is dropped without sending a response, so that the client
84092/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
84093impl std::ops::Drop for SynchronousDatagramSocketGetIpv6TrafficClassResponder {
84094    fn drop(&mut self) {
84095        self.control_handle.shutdown();
84096        // Safety: drops once, never accessed again
84097        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
84098    }
84099}
84100
84101impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpv6TrafficClassResponder {
84102    type ControlHandle = SynchronousDatagramSocketControlHandle;
84103
84104    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
84105        &self.control_handle
84106    }
84107
84108    fn drop_without_shutdown(mut self) {
84109        // Safety: drops once, never accessed again due to mem::forget
84110        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
84111        // Prevent Drop from running (which would shut down the channel)
84112        std::mem::forget(self);
84113    }
84114}
84115
84116impl SynchronousDatagramSocketGetIpv6TrafficClassResponder {
84117    /// Sends a response to the FIDL transaction.
84118    ///
84119    /// Sets the channel to shutdown if an error occurs.
84120    pub fn send(
84121        self,
84122        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
84123    ) -> Result<(), fidl::Error> {
84124        let _result = self.send_raw(result);
84125        if _result.is_err() {
84126            self.control_handle.shutdown();
84127        }
84128        self.drop_without_shutdown();
84129        _result
84130    }
84131
84132    /// Similar to "send" but does not shutdown the channel if an error occurs.
84133    pub fn send_no_shutdown_on_err(
84134        self,
84135        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
84136    ) -> Result<(), fidl::Error> {
84137        let _result = self.send_raw(result);
84138        self.drop_without_shutdown();
84139        _result
84140    }
84141
84142    fn send_raw(
84143        &self,
84144        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
84145    ) -> Result<(), fidl::Error> {
84146        self.control_handle.inner.send::<fidl::encoding::ResultType<
84147            BaseNetworkSocketGetIpv6TrafficClassResponse,
84148            fidl_fuchsia_posix::Errno,
84149        >>(
84150            result.map(|value| (value,)),
84151            self.tx_id,
84152            0x6baf6eed8fc2f04,
84153            fidl::encoding::DynamicFlags::empty(),
84154        )
84155    }
84156}
84157
84158#[must_use = "FIDL methods require a response to be sent"]
84159#[derive(Debug)]
84160pub struct SynchronousDatagramSocketSetIpv6ReceivePacketInfoResponder {
84161    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
84162    tx_id: u32,
84163}
84164
84165/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
84166/// if the responder is dropped without sending a response, so that the client
84167/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
84168impl std::ops::Drop for SynchronousDatagramSocketSetIpv6ReceivePacketInfoResponder {
84169    fn drop(&mut self) {
84170        self.control_handle.shutdown();
84171        // Safety: drops once, never accessed again
84172        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
84173    }
84174}
84175
84176impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpv6ReceivePacketInfoResponder {
84177    type ControlHandle = SynchronousDatagramSocketControlHandle;
84178
84179    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
84180        &self.control_handle
84181    }
84182
84183    fn drop_without_shutdown(mut self) {
84184        // Safety: drops once, never accessed again due to mem::forget
84185        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
84186        // Prevent Drop from running (which would shut down the channel)
84187        std::mem::forget(self);
84188    }
84189}
84190
84191impl SynchronousDatagramSocketSetIpv6ReceivePacketInfoResponder {
84192    /// Sends a response to the FIDL transaction.
84193    ///
84194    /// Sets the channel to shutdown if an error occurs.
84195    pub fn send(
84196        self,
84197        mut result: Result<(), fidl_fuchsia_posix::Errno>,
84198    ) -> Result<(), fidl::Error> {
84199        let _result = self.send_raw(result);
84200        if _result.is_err() {
84201            self.control_handle.shutdown();
84202        }
84203        self.drop_without_shutdown();
84204        _result
84205    }
84206
84207    /// Similar to "send" but does not shutdown the channel if an error occurs.
84208    pub fn send_no_shutdown_on_err(
84209        self,
84210        mut result: Result<(), fidl_fuchsia_posix::Errno>,
84211    ) -> Result<(), fidl::Error> {
84212        let _result = self.send_raw(result);
84213        self.drop_without_shutdown();
84214        _result
84215    }
84216
84217    fn send_raw(
84218        &self,
84219        mut result: Result<(), fidl_fuchsia_posix::Errno>,
84220    ) -> Result<(), fidl::Error> {
84221        self.control_handle.inner.send::<fidl::encoding::ResultType<
84222            fidl::encoding::EmptyStruct,
84223            fidl_fuchsia_posix::Errno,
84224        >>(
84225            result,
84226            self.tx_id,
84227            0x19259775b1a92768,
84228            fidl::encoding::DynamicFlags::empty(),
84229        )
84230    }
84231}
84232
84233#[must_use = "FIDL methods require a response to be sent"]
84234#[derive(Debug)]
84235pub struct SynchronousDatagramSocketGetIpv6ReceivePacketInfoResponder {
84236    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
84237    tx_id: u32,
84238}
84239
84240/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
84241/// if the responder is dropped without sending a response, so that the client
84242/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
84243impl std::ops::Drop for SynchronousDatagramSocketGetIpv6ReceivePacketInfoResponder {
84244    fn drop(&mut self) {
84245        self.control_handle.shutdown();
84246        // Safety: drops once, never accessed again
84247        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
84248    }
84249}
84250
84251impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpv6ReceivePacketInfoResponder {
84252    type ControlHandle = SynchronousDatagramSocketControlHandle;
84253
84254    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
84255        &self.control_handle
84256    }
84257
84258    fn drop_without_shutdown(mut self) {
84259        // Safety: drops once, never accessed again due to mem::forget
84260        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
84261        // Prevent Drop from running (which would shut down the channel)
84262        std::mem::forget(self);
84263    }
84264}
84265
84266impl SynchronousDatagramSocketGetIpv6ReceivePacketInfoResponder {
84267    /// Sends a response to the FIDL transaction.
84268    ///
84269    /// Sets the channel to shutdown if an error occurs.
84270    pub fn send(
84271        self,
84272        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
84273    ) -> Result<(), fidl::Error> {
84274        let _result = self.send_raw(result);
84275        if _result.is_err() {
84276            self.control_handle.shutdown();
84277        }
84278        self.drop_without_shutdown();
84279        _result
84280    }
84281
84282    /// Similar to "send" but does not shutdown the channel if an error occurs.
84283    pub fn send_no_shutdown_on_err(
84284        self,
84285        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
84286    ) -> Result<(), fidl::Error> {
84287        let _result = self.send_raw(result);
84288        self.drop_without_shutdown();
84289        _result
84290    }
84291
84292    fn send_raw(
84293        &self,
84294        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
84295    ) -> Result<(), fidl::Error> {
84296        self.control_handle.inner.send::<fidl::encoding::ResultType<
84297            BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
84298            fidl_fuchsia_posix::Errno,
84299        >>(
84300            result.map(|value| (value,)),
84301            self.tx_id,
84302            0x7acd4a2775baec75,
84303            fidl::encoding::DynamicFlags::empty(),
84304        )
84305    }
84306}
84307
84308#[must_use = "FIDL methods require a response to be sent"]
84309#[derive(Debug)]
84310pub struct SynchronousDatagramSocketGetOriginalDestinationResponder {
84311    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
84312    tx_id: u32,
84313}
84314
84315/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
84316/// if the responder is dropped without sending a response, so that the client
84317/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
84318impl std::ops::Drop for SynchronousDatagramSocketGetOriginalDestinationResponder {
84319    fn drop(&mut self) {
84320        self.control_handle.shutdown();
84321        // Safety: drops once, never accessed again
84322        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
84323    }
84324}
84325
84326impl fidl::endpoints::Responder for SynchronousDatagramSocketGetOriginalDestinationResponder {
84327    type ControlHandle = SynchronousDatagramSocketControlHandle;
84328
84329    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
84330        &self.control_handle
84331    }
84332
84333    fn drop_without_shutdown(mut self) {
84334        // Safety: drops once, never accessed again due to mem::forget
84335        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
84336        // Prevent Drop from running (which would shut down the channel)
84337        std::mem::forget(self);
84338    }
84339}
84340
84341impl SynchronousDatagramSocketGetOriginalDestinationResponder {
84342    /// Sends a response to the FIDL transaction.
84343    ///
84344    /// Sets the channel to shutdown if an error occurs.
84345    pub fn send(
84346        self,
84347        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
84348    ) -> Result<(), fidl::Error> {
84349        let _result = self.send_raw(result);
84350        if _result.is_err() {
84351            self.control_handle.shutdown();
84352        }
84353        self.drop_without_shutdown();
84354        _result
84355    }
84356
84357    /// Similar to "send" but does not shutdown the channel if an error occurs.
84358    pub fn send_no_shutdown_on_err(
84359        self,
84360        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
84361    ) -> Result<(), fidl::Error> {
84362        let _result = self.send_raw(result);
84363        self.drop_without_shutdown();
84364        _result
84365    }
84366
84367    fn send_raw(
84368        &self,
84369        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
84370    ) -> Result<(), fidl::Error> {
84371        self.control_handle.inner.send::<fidl::encoding::ResultType<
84372            BaseNetworkSocketGetOriginalDestinationResponse,
84373            fidl_fuchsia_posix::Errno,
84374        >>(
84375            result.map(|value| (value,)),
84376            self.tx_id,
84377            0x38bf28f0dafdbac0,
84378            fidl::encoding::DynamicFlags::empty(),
84379        )
84380    }
84381}
84382
84383#[must_use = "FIDL methods require a response to be sent"]
84384#[derive(Debug)]
84385pub struct SynchronousDatagramSocketGetInfoResponder {
84386    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
84387    tx_id: u32,
84388}
84389
84390/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
84391/// if the responder is dropped without sending a response, so that the client
84392/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
84393impl std::ops::Drop for SynchronousDatagramSocketGetInfoResponder {
84394    fn drop(&mut self) {
84395        self.control_handle.shutdown();
84396        // Safety: drops once, never accessed again
84397        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
84398    }
84399}
84400
84401impl fidl::endpoints::Responder for SynchronousDatagramSocketGetInfoResponder {
84402    type ControlHandle = SynchronousDatagramSocketControlHandle;
84403
84404    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
84405        &self.control_handle
84406    }
84407
84408    fn drop_without_shutdown(mut self) {
84409        // Safety: drops once, never accessed again due to mem::forget
84410        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
84411        // Prevent Drop from running (which would shut down the channel)
84412        std::mem::forget(self);
84413    }
84414}
84415
84416impl SynchronousDatagramSocketGetInfoResponder {
84417    /// Sends a response to the FIDL transaction.
84418    ///
84419    /// Sets the channel to shutdown if an error occurs.
84420    pub fn send(
84421        self,
84422        mut result: Result<(Domain, DatagramSocketProtocol), fidl_fuchsia_posix::Errno>,
84423    ) -> Result<(), fidl::Error> {
84424        let _result = self.send_raw(result);
84425        if _result.is_err() {
84426            self.control_handle.shutdown();
84427        }
84428        self.drop_without_shutdown();
84429        _result
84430    }
84431
84432    /// Similar to "send" but does not shutdown the channel if an error occurs.
84433    pub fn send_no_shutdown_on_err(
84434        self,
84435        mut result: Result<(Domain, DatagramSocketProtocol), fidl_fuchsia_posix::Errno>,
84436    ) -> Result<(), fidl::Error> {
84437        let _result = self.send_raw(result);
84438        self.drop_without_shutdown();
84439        _result
84440    }
84441
84442    fn send_raw(
84443        &self,
84444        mut result: Result<(Domain, DatagramSocketProtocol), fidl_fuchsia_posix::Errno>,
84445    ) -> Result<(), fidl::Error> {
84446        self.control_handle.inner.send::<fidl::encoding::ResultType<
84447            BaseDatagramSocketGetInfoResponse,
84448            fidl_fuchsia_posix::Errno,
84449        >>(
84450            result,
84451            self.tx_id,
84452            0x48aa0a1f6a32d2ed,
84453            fidl::encoding::DynamicFlags::empty(),
84454        )
84455    }
84456}
84457
84458#[must_use = "FIDL methods require a response to be sent"]
84459#[derive(Debug)]
84460pub struct SynchronousDatagramSocketDescribeResponder {
84461    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
84462    tx_id: u32,
84463}
84464
84465/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
84466/// if the responder is dropped without sending a response, so that the client
84467/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
84468impl std::ops::Drop for SynchronousDatagramSocketDescribeResponder {
84469    fn drop(&mut self) {
84470        self.control_handle.shutdown();
84471        // Safety: drops once, never accessed again
84472        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
84473    }
84474}
84475
84476impl fidl::endpoints::Responder for SynchronousDatagramSocketDescribeResponder {
84477    type ControlHandle = SynchronousDatagramSocketControlHandle;
84478
84479    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
84480        &self.control_handle
84481    }
84482
84483    fn drop_without_shutdown(mut self) {
84484        // Safety: drops once, never accessed again due to mem::forget
84485        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
84486        // Prevent Drop from running (which would shut down the channel)
84487        std::mem::forget(self);
84488    }
84489}
84490
84491impl SynchronousDatagramSocketDescribeResponder {
84492    /// Sends a response to the FIDL transaction.
84493    ///
84494    /// Sets the channel to shutdown if an error occurs.
84495    pub fn send(
84496        self,
84497        mut payload: SynchronousDatagramSocketDescribeResponse,
84498    ) -> Result<(), fidl::Error> {
84499        let _result = self.send_raw(payload);
84500        if _result.is_err() {
84501            self.control_handle.shutdown();
84502        }
84503        self.drop_without_shutdown();
84504        _result
84505    }
84506
84507    /// Similar to "send" but does not shutdown the channel if an error occurs.
84508    pub fn send_no_shutdown_on_err(
84509        self,
84510        mut payload: SynchronousDatagramSocketDescribeResponse,
84511    ) -> Result<(), fidl::Error> {
84512        let _result = self.send_raw(payload);
84513        self.drop_without_shutdown();
84514        _result
84515    }
84516
84517    fn send_raw(
84518        &self,
84519        mut payload: SynchronousDatagramSocketDescribeResponse,
84520    ) -> Result<(), fidl::Error> {
84521        self.control_handle.inner.send::<SynchronousDatagramSocketDescribeResponse>(
84522            &mut payload,
84523            self.tx_id,
84524            0x585f20b73631070d,
84525            fidl::encoding::DynamicFlags::empty(),
84526        )
84527    }
84528}
84529
84530#[must_use = "FIDL methods require a response to be sent"]
84531#[derive(Debug)]
84532pub struct SynchronousDatagramSocketRecvMsgResponder {
84533    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
84534    tx_id: u32,
84535}
84536
84537/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
84538/// if the responder is dropped without sending a response, so that the client
84539/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
84540impl std::ops::Drop for SynchronousDatagramSocketRecvMsgResponder {
84541    fn drop(&mut self) {
84542        self.control_handle.shutdown();
84543        // Safety: drops once, never accessed again
84544        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
84545    }
84546}
84547
84548impl fidl::endpoints::Responder for SynchronousDatagramSocketRecvMsgResponder {
84549    type ControlHandle = SynchronousDatagramSocketControlHandle;
84550
84551    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
84552        &self.control_handle
84553    }
84554
84555    fn drop_without_shutdown(mut self) {
84556        // Safety: drops once, never accessed again due to mem::forget
84557        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
84558        // Prevent Drop from running (which would shut down the channel)
84559        std::mem::forget(self);
84560    }
84561}
84562
84563impl SynchronousDatagramSocketRecvMsgResponder {
84564    /// Sends a response to the FIDL transaction.
84565    ///
84566    /// Sets the channel to shutdown if an error occurs.
84567    pub fn send(
84568        self,
84569        mut result: Result<
84570            (Option<&fidl_fuchsia_net::SocketAddress>, &[u8], &DatagramSocketRecvControlData, u32),
84571            fidl_fuchsia_posix::Errno,
84572        >,
84573    ) -> Result<(), fidl::Error> {
84574        let _result = self.send_raw(result);
84575        if _result.is_err() {
84576            self.control_handle.shutdown();
84577        }
84578        self.drop_without_shutdown();
84579        _result
84580    }
84581
84582    /// Similar to "send" but does not shutdown the channel if an error occurs.
84583    pub fn send_no_shutdown_on_err(
84584        self,
84585        mut result: Result<
84586            (Option<&fidl_fuchsia_net::SocketAddress>, &[u8], &DatagramSocketRecvControlData, u32),
84587            fidl_fuchsia_posix::Errno,
84588        >,
84589    ) -> Result<(), fidl::Error> {
84590        let _result = self.send_raw(result);
84591        self.drop_without_shutdown();
84592        _result
84593    }
84594
84595    fn send_raw(
84596        &self,
84597        mut result: Result<
84598            (Option<&fidl_fuchsia_net::SocketAddress>, &[u8], &DatagramSocketRecvControlData, u32),
84599            fidl_fuchsia_posix::Errno,
84600        >,
84601    ) -> Result<(), fidl::Error> {
84602        self.control_handle.inner.send::<fidl::encoding::ResultType<
84603            SynchronousDatagramSocketRecvMsgResponse,
84604            fidl_fuchsia_posix::Errno,
84605        >>(
84606            result,
84607            self.tx_id,
84608            0x28e494e48fb5dbf3,
84609            fidl::encoding::DynamicFlags::empty(),
84610        )
84611    }
84612}
84613
84614#[must_use = "FIDL methods require a response to be sent"]
84615#[derive(Debug)]
84616pub struct SynchronousDatagramSocketSendMsgResponder {
84617    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
84618    tx_id: u32,
84619}
84620
84621/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
84622/// if the responder is dropped without sending a response, so that the client
84623/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
84624impl std::ops::Drop for SynchronousDatagramSocketSendMsgResponder {
84625    fn drop(&mut self) {
84626        self.control_handle.shutdown();
84627        // Safety: drops once, never accessed again
84628        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
84629    }
84630}
84631
84632impl fidl::endpoints::Responder for SynchronousDatagramSocketSendMsgResponder {
84633    type ControlHandle = SynchronousDatagramSocketControlHandle;
84634
84635    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
84636        &self.control_handle
84637    }
84638
84639    fn drop_without_shutdown(mut self) {
84640        // Safety: drops once, never accessed again due to mem::forget
84641        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
84642        // Prevent Drop from running (which would shut down the channel)
84643        std::mem::forget(self);
84644    }
84645}
84646
84647impl SynchronousDatagramSocketSendMsgResponder {
84648    /// Sends a response to the FIDL transaction.
84649    ///
84650    /// Sets the channel to shutdown if an error occurs.
84651    pub fn send(
84652        self,
84653        mut result: Result<i64, fidl_fuchsia_posix::Errno>,
84654    ) -> Result<(), fidl::Error> {
84655        let _result = self.send_raw(result);
84656        if _result.is_err() {
84657            self.control_handle.shutdown();
84658        }
84659        self.drop_without_shutdown();
84660        _result
84661    }
84662
84663    /// Similar to "send" but does not shutdown the channel if an error occurs.
84664    pub fn send_no_shutdown_on_err(
84665        self,
84666        mut result: Result<i64, fidl_fuchsia_posix::Errno>,
84667    ) -> Result<(), fidl::Error> {
84668        let _result = self.send_raw(result);
84669        self.drop_without_shutdown();
84670        _result
84671    }
84672
84673    fn send_raw(
84674        &self,
84675        mut result: Result<i64, fidl_fuchsia_posix::Errno>,
84676    ) -> Result<(), fidl::Error> {
84677        self.control_handle.inner.send::<fidl::encoding::ResultType<
84678            SynchronousDatagramSocketSendMsgResponse,
84679            fidl_fuchsia_posix::Errno,
84680        >>(
84681            result.map(|len| (len,)),
84682            self.tx_id,
84683            0x12dc2fceab6cefaa,
84684            fidl::encoding::DynamicFlags::empty(),
84685        )
84686    }
84687}
84688
84689mod internal {
84690    use super::*;
84691
84692    impl fidl::encoding::ResourceTypeMarker for BaseSocketSetReusePortRequest {
84693        type Borrowed<'a> = &'a mut Self;
84694        fn take_or_borrow<'a>(
84695            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
84696        ) -> Self::Borrowed<'a> {
84697            value
84698        }
84699    }
84700
84701    unsafe impl fidl::encoding::TypeMarker for BaseSocketSetReusePortRequest {
84702        type Owned = Self;
84703
84704        #[inline(always)]
84705        fn inline_align(_context: fidl::encoding::Context) -> usize {
84706            8
84707        }
84708
84709        #[inline(always)]
84710        fn inline_size(_context: fidl::encoding::Context) -> usize {
84711            16
84712        }
84713    }
84714
84715    unsafe impl
84716        fidl::encoding::Encode<
84717            BaseSocketSetReusePortRequest,
84718            fidl::encoding::DefaultFuchsiaResourceDialect,
84719        > for &mut BaseSocketSetReusePortRequest
84720    {
84721        #[inline]
84722        unsafe fn encode(
84723            self,
84724            encoder: &mut fidl::encoding::Encoder<
84725                '_,
84726                fidl::encoding::DefaultFuchsiaResourceDialect,
84727            >,
84728            offset: usize,
84729            _depth: fidl::encoding::Depth,
84730        ) -> fidl::Result<()> {
84731            encoder.debug_check_bounds::<BaseSocketSetReusePortRequest>(offset);
84732            // Delegate to tuple encoding.
84733            fidl::encoding::Encode::<
84734                BaseSocketSetReusePortRequest,
84735                fidl::encoding::DefaultFuchsiaResourceDialect,
84736            >::encode(
84737                (<ReusePortOption as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
84738                    &mut self.value,
84739                ),),
84740                encoder,
84741                offset,
84742                _depth,
84743            )
84744        }
84745    }
84746    unsafe impl<
84747        T0: fidl::encoding::Encode<ReusePortOption, fidl::encoding::DefaultFuchsiaResourceDialect>,
84748    >
84749        fidl::encoding::Encode<
84750            BaseSocketSetReusePortRequest,
84751            fidl::encoding::DefaultFuchsiaResourceDialect,
84752        > for (T0,)
84753    {
84754        #[inline]
84755        unsafe fn encode(
84756            self,
84757            encoder: &mut fidl::encoding::Encoder<
84758                '_,
84759                fidl::encoding::DefaultFuchsiaResourceDialect,
84760            >,
84761            offset: usize,
84762            depth: fidl::encoding::Depth,
84763        ) -> fidl::Result<()> {
84764            encoder.debug_check_bounds::<BaseSocketSetReusePortRequest>(offset);
84765            // Zero out padding regions. There's no need to apply masks
84766            // because the unmasked parts will be overwritten by fields.
84767            // Write the fields.
84768            self.0.encode(encoder, offset + 0, depth)?;
84769            Ok(())
84770        }
84771    }
84772
84773    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
84774        for BaseSocketSetReusePortRequest
84775    {
84776        #[inline(always)]
84777        fn new_empty() -> Self {
84778            Self {
84779                value: fidl::new_empty!(
84780                    ReusePortOption,
84781                    fidl::encoding::DefaultFuchsiaResourceDialect
84782                ),
84783            }
84784        }
84785
84786        #[inline]
84787        unsafe fn decode(
84788            &mut self,
84789            decoder: &mut fidl::encoding::Decoder<
84790                '_,
84791                fidl::encoding::DefaultFuchsiaResourceDialect,
84792            >,
84793            offset: usize,
84794            _depth: fidl::encoding::Depth,
84795        ) -> fidl::Result<()> {
84796            decoder.debug_check_bounds::<Self>(offset);
84797            // Verify that padding bytes are zero.
84798            fidl::decode!(
84799                ReusePortOption,
84800                fidl::encoding::DefaultFuchsiaResourceDialect,
84801                &mut self.value,
84802                decoder,
84803                offset + 0,
84804                _depth
84805            )?;
84806            Ok(())
84807        }
84808    }
84809
84810    impl fidl::encoding::ResourceTypeMarker for ProviderDatagramSocketWithOptionsRequest {
84811        type Borrowed<'a> = &'a mut Self;
84812        fn take_or_borrow<'a>(
84813            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
84814        ) -> Self::Borrowed<'a> {
84815            value
84816        }
84817    }
84818
84819    unsafe impl fidl::encoding::TypeMarker for ProviderDatagramSocketWithOptionsRequest {
84820        type Owned = Self;
84821
84822        #[inline(always)]
84823        fn inline_align(_context: fidl::encoding::Context) -> usize {
84824            8
84825        }
84826
84827        #[inline(always)]
84828        fn inline_size(_context: fidl::encoding::Context) -> usize {
84829            24
84830        }
84831    }
84832
84833    unsafe impl
84834        fidl::encoding::Encode<
84835            ProviderDatagramSocketWithOptionsRequest,
84836            fidl::encoding::DefaultFuchsiaResourceDialect,
84837        > for &mut ProviderDatagramSocketWithOptionsRequest
84838    {
84839        #[inline]
84840        unsafe fn encode(
84841            self,
84842            encoder: &mut fidl::encoding::Encoder<
84843                '_,
84844                fidl::encoding::DefaultFuchsiaResourceDialect,
84845            >,
84846            offset: usize,
84847            _depth: fidl::encoding::Depth,
84848        ) -> fidl::Result<()> {
84849            encoder.debug_check_bounds::<ProviderDatagramSocketWithOptionsRequest>(offset);
84850            // Delegate to tuple encoding.
84851            fidl::encoding::Encode::<
84852                ProviderDatagramSocketWithOptionsRequest,
84853                fidl::encoding::DefaultFuchsiaResourceDialect,
84854            >::encode(
84855                (
84856                    <Domain as fidl::encoding::ValueTypeMarker>::borrow(&self.domain),
84857                    <DatagramSocketProtocol as fidl::encoding::ValueTypeMarker>::borrow(
84858                        &self.proto,
84859                    ),
84860                    <SocketCreationOptions as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
84861                        &mut self.opts,
84862                    ),
84863                ),
84864                encoder,
84865                offset,
84866                _depth,
84867            )
84868        }
84869    }
84870    unsafe impl<
84871        T0: fidl::encoding::Encode<Domain, fidl::encoding::DefaultFuchsiaResourceDialect>,
84872        T1: fidl::encoding::Encode<
84873                DatagramSocketProtocol,
84874                fidl::encoding::DefaultFuchsiaResourceDialect,
84875            >,
84876        T2: fidl::encoding::Encode<
84877                SocketCreationOptions,
84878                fidl::encoding::DefaultFuchsiaResourceDialect,
84879            >,
84880    >
84881        fidl::encoding::Encode<
84882            ProviderDatagramSocketWithOptionsRequest,
84883            fidl::encoding::DefaultFuchsiaResourceDialect,
84884        > for (T0, T1, T2)
84885    {
84886        #[inline]
84887        unsafe fn encode(
84888            self,
84889            encoder: &mut fidl::encoding::Encoder<
84890                '_,
84891                fidl::encoding::DefaultFuchsiaResourceDialect,
84892            >,
84893            offset: usize,
84894            depth: fidl::encoding::Depth,
84895        ) -> fidl::Result<()> {
84896            encoder.debug_check_bounds::<ProviderDatagramSocketWithOptionsRequest>(offset);
84897            // Zero out padding regions. There's no need to apply masks
84898            // because the unmasked parts will be overwritten by fields.
84899            unsafe {
84900                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
84901                (ptr as *mut u64).write_unaligned(0);
84902            }
84903            // Write the fields.
84904            self.0.encode(encoder, offset + 0, depth)?;
84905            self.1.encode(encoder, offset + 4, depth)?;
84906            self.2.encode(encoder, offset + 8, depth)?;
84907            Ok(())
84908        }
84909    }
84910
84911    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
84912        for ProviderDatagramSocketWithOptionsRequest
84913    {
84914        #[inline(always)]
84915        fn new_empty() -> Self {
84916            Self {
84917                domain: fidl::new_empty!(Domain, fidl::encoding::DefaultFuchsiaResourceDialect),
84918                proto: fidl::new_empty!(
84919                    DatagramSocketProtocol,
84920                    fidl::encoding::DefaultFuchsiaResourceDialect
84921                ),
84922                opts: fidl::new_empty!(
84923                    SocketCreationOptions,
84924                    fidl::encoding::DefaultFuchsiaResourceDialect
84925                ),
84926            }
84927        }
84928
84929        #[inline]
84930        unsafe fn decode(
84931            &mut self,
84932            decoder: &mut fidl::encoding::Decoder<
84933                '_,
84934                fidl::encoding::DefaultFuchsiaResourceDialect,
84935            >,
84936            offset: usize,
84937            _depth: fidl::encoding::Depth,
84938        ) -> fidl::Result<()> {
84939            decoder.debug_check_bounds::<Self>(offset);
84940            // Verify that padding bytes are zero.
84941            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
84942            let padval = unsafe { (ptr as *const u64).read_unaligned() };
84943            let mask = 0xffff0000u64;
84944            let maskedval = padval & mask;
84945            if maskedval != 0 {
84946                return Err(fidl::Error::NonZeroPadding {
84947                    padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
84948                });
84949            }
84950            fidl::decode!(
84951                Domain,
84952                fidl::encoding::DefaultFuchsiaResourceDialect,
84953                &mut self.domain,
84954                decoder,
84955                offset + 0,
84956                _depth
84957            )?;
84958            fidl::decode!(
84959                DatagramSocketProtocol,
84960                fidl::encoding::DefaultFuchsiaResourceDialect,
84961                &mut self.proto,
84962                decoder,
84963                offset + 4,
84964                _depth
84965            )?;
84966            fidl::decode!(
84967                SocketCreationOptions,
84968                fidl::encoding::DefaultFuchsiaResourceDialect,
84969                &mut self.opts,
84970                decoder,
84971                offset + 8,
84972                _depth
84973            )?;
84974            Ok(())
84975        }
84976    }
84977
84978    impl fidl::encoding::ResourceTypeMarker for ProviderStreamSocketWithOptionsRequest {
84979        type Borrowed<'a> = &'a mut Self;
84980        fn take_or_borrow<'a>(
84981            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
84982        ) -> Self::Borrowed<'a> {
84983            value
84984        }
84985    }
84986
84987    unsafe impl fidl::encoding::TypeMarker for ProviderStreamSocketWithOptionsRequest {
84988        type Owned = Self;
84989
84990        #[inline(always)]
84991        fn inline_align(_context: fidl::encoding::Context) -> usize {
84992            8
84993        }
84994
84995        #[inline(always)]
84996        fn inline_size(_context: fidl::encoding::Context) -> usize {
84997            24
84998        }
84999    }
85000
85001    unsafe impl
85002        fidl::encoding::Encode<
85003            ProviderStreamSocketWithOptionsRequest,
85004            fidl::encoding::DefaultFuchsiaResourceDialect,
85005        > for &mut ProviderStreamSocketWithOptionsRequest
85006    {
85007        #[inline]
85008        unsafe fn encode(
85009            self,
85010            encoder: &mut fidl::encoding::Encoder<
85011                '_,
85012                fidl::encoding::DefaultFuchsiaResourceDialect,
85013            >,
85014            offset: usize,
85015            _depth: fidl::encoding::Depth,
85016        ) -> fidl::Result<()> {
85017            encoder.debug_check_bounds::<ProviderStreamSocketWithOptionsRequest>(offset);
85018            // Delegate to tuple encoding.
85019            fidl::encoding::Encode::<
85020                ProviderStreamSocketWithOptionsRequest,
85021                fidl::encoding::DefaultFuchsiaResourceDialect,
85022            >::encode(
85023                (
85024                    <Domain as fidl::encoding::ValueTypeMarker>::borrow(&self.domain),
85025                    <StreamSocketProtocol as fidl::encoding::ValueTypeMarker>::borrow(&self.proto),
85026                    <SocketCreationOptions as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
85027                        &mut self.opts,
85028                    ),
85029                ),
85030                encoder,
85031                offset,
85032                _depth,
85033            )
85034        }
85035    }
85036    unsafe impl<
85037        T0: fidl::encoding::Encode<Domain, fidl::encoding::DefaultFuchsiaResourceDialect>,
85038        T1: fidl::encoding::Encode<StreamSocketProtocol, fidl::encoding::DefaultFuchsiaResourceDialect>,
85039        T2: fidl::encoding::Encode<
85040                SocketCreationOptions,
85041                fidl::encoding::DefaultFuchsiaResourceDialect,
85042            >,
85043    >
85044        fidl::encoding::Encode<
85045            ProviderStreamSocketWithOptionsRequest,
85046            fidl::encoding::DefaultFuchsiaResourceDialect,
85047        > for (T0, T1, T2)
85048    {
85049        #[inline]
85050        unsafe fn encode(
85051            self,
85052            encoder: &mut fidl::encoding::Encoder<
85053                '_,
85054                fidl::encoding::DefaultFuchsiaResourceDialect,
85055            >,
85056            offset: usize,
85057            depth: fidl::encoding::Depth,
85058        ) -> fidl::Result<()> {
85059            encoder.debug_check_bounds::<ProviderStreamSocketWithOptionsRequest>(offset);
85060            // Zero out padding regions. There's no need to apply masks
85061            // because the unmasked parts will be overwritten by fields.
85062            unsafe {
85063                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
85064                (ptr as *mut u64).write_unaligned(0);
85065            }
85066            // Write the fields.
85067            self.0.encode(encoder, offset + 0, depth)?;
85068            self.1.encode(encoder, offset + 4, depth)?;
85069            self.2.encode(encoder, offset + 8, depth)?;
85070            Ok(())
85071        }
85072    }
85073
85074    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
85075        for ProviderStreamSocketWithOptionsRequest
85076    {
85077        #[inline(always)]
85078        fn new_empty() -> Self {
85079            Self {
85080                domain: fidl::new_empty!(Domain, fidl::encoding::DefaultFuchsiaResourceDialect),
85081                proto: fidl::new_empty!(
85082                    StreamSocketProtocol,
85083                    fidl::encoding::DefaultFuchsiaResourceDialect
85084                ),
85085                opts: fidl::new_empty!(
85086                    SocketCreationOptions,
85087                    fidl::encoding::DefaultFuchsiaResourceDialect
85088                ),
85089            }
85090        }
85091
85092        #[inline]
85093        unsafe fn decode(
85094            &mut self,
85095            decoder: &mut fidl::encoding::Decoder<
85096                '_,
85097                fidl::encoding::DefaultFuchsiaResourceDialect,
85098            >,
85099            offset: usize,
85100            _depth: fidl::encoding::Depth,
85101        ) -> fidl::Result<()> {
85102            decoder.debug_check_bounds::<Self>(offset);
85103            // Verify that padding bytes are zero.
85104            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
85105            let padval = unsafe { (ptr as *const u64).read_unaligned() };
85106            let mask = 0xffff0000u64;
85107            let maskedval = padval & mask;
85108            if maskedval != 0 {
85109                return Err(fidl::Error::NonZeroPadding {
85110                    padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
85111                });
85112            }
85113            fidl::decode!(
85114                Domain,
85115                fidl::encoding::DefaultFuchsiaResourceDialect,
85116                &mut self.domain,
85117                decoder,
85118                offset + 0,
85119                _depth
85120            )?;
85121            fidl::decode!(
85122                StreamSocketProtocol,
85123                fidl::encoding::DefaultFuchsiaResourceDialect,
85124                &mut self.proto,
85125                decoder,
85126                offset + 4,
85127                _depth
85128            )?;
85129            fidl::decode!(
85130                SocketCreationOptions,
85131                fidl::encoding::DefaultFuchsiaResourceDialect,
85132                &mut self.opts,
85133                decoder,
85134                offset + 8,
85135                _depth
85136            )?;
85137            Ok(())
85138        }
85139    }
85140
85141    impl fidl::encoding::ResourceTypeMarker for ProviderDatagramSocketDeprecatedResponse {
85142        type Borrowed<'a> = &'a mut Self;
85143        fn take_or_borrow<'a>(
85144            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
85145        ) -> Self::Borrowed<'a> {
85146            value
85147        }
85148    }
85149
85150    unsafe impl fidl::encoding::TypeMarker for ProviderDatagramSocketDeprecatedResponse {
85151        type Owned = Self;
85152
85153        #[inline(always)]
85154        fn inline_align(_context: fidl::encoding::Context) -> usize {
85155            4
85156        }
85157
85158        #[inline(always)]
85159        fn inline_size(_context: fidl::encoding::Context) -> usize {
85160            4
85161        }
85162    }
85163
85164    unsafe impl
85165        fidl::encoding::Encode<
85166            ProviderDatagramSocketDeprecatedResponse,
85167            fidl::encoding::DefaultFuchsiaResourceDialect,
85168        > for &mut ProviderDatagramSocketDeprecatedResponse
85169    {
85170        #[inline]
85171        unsafe fn encode(
85172            self,
85173            encoder: &mut fidl::encoding::Encoder<
85174                '_,
85175                fidl::encoding::DefaultFuchsiaResourceDialect,
85176            >,
85177            offset: usize,
85178            _depth: fidl::encoding::Depth,
85179        ) -> fidl::Result<()> {
85180            encoder.debug_check_bounds::<ProviderDatagramSocketDeprecatedResponse>(offset);
85181            // Delegate to tuple encoding.
85182            fidl::encoding::Encode::<
85183                ProviderDatagramSocketDeprecatedResponse,
85184                fidl::encoding::DefaultFuchsiaResourceDialect,
85185            >::encode(
85186                (<fidl::encoding::Endpoint<
85187                    fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
85188                > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
85189                    &mut self.s
85190                ),),
85191                encoder,
85192                offset,
85193                _depth,
85194            )
85195        }
85196    }
85197    unsafe impl<
85198        T0: fidl::encoding::Encode<
85199                fidl::encoding::Endpoint<
85200                    fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
85201                >,
85202                fidl::encoding::DefaultFuchsiaResourceDialect,
85203            >,
85204    >
85205        fidl::encoding::Encode<
85206            ProviderDatagramSocketDeprecatedResponse,
85207            fidl::encoding::DefaultFuchsiaResourceDialect,
85208        > for (T0,)
85209    {
85210        #[inline]
85211        unsafe fn encode(
85212            self,
85213            encoder: &mut fidl::encoding::Encoder<
85214                '_,
85215                fidl::encoding::DefaultFuchsiaResourceDialect,
85216            >,
85217            offset: usize,
85218            depth: fidl::encoding::Depth,
85219        ) -> fidl::Result<()> {
85220            encoder.debug_check_bounds::<ProviderDatagramSocketDeprecatedResponse>(offset);
85221            // Zero out padding regions. There's no need to apply masks
85222            // because the unmasked parts will be overwritten by fields.
85223            // Write the fields.
85224            self.0.encode(encoder, offset + 0, depth)?;
85225            Ok(())
85226        }
85227    }
85228
85229    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
85230        for ProviderDatagramSocketDeprecatedResponse
85231    {
85232        #[inline(always)]
85233        fn new_empty() -> Self {
85234            Self {
85235                s: fidl::new_empty!(
85236                    fidl::encoding::Endpoint<
85237                        fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
85238                    >,
85239                    fidl::encoding::DefaultFuchsiaResourceDialect
85240                ),
85241            }
85242        }
85243
85244        #[inline]
85245        unsafe fn decode(
85246            &mut self,
85247            decoder: &mut fidl::encoding::Decoder<
85248                '_,
85249                fidl::encoding::DefaultFuchsiaResourceDialect,
85250            >,
85251            offset: usize,
85252            _depth: fidl::encoding::Depth,
85253        ) -> fidl::Result<()> {
85254            decoder.debug_check_bounds::<Self>(offset);
85255            // Verify that padding bytes are zero.
85256            fidl::decode!(
85257                fidl::encoding::Endpoint<
85258                    fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
85259                >,
85260                fidl::encoding::DefaultFuchsiaResourceDialect,
85261                &mut self.s,
85262                decoder,
85263                offset + 0,
85264                _depth
85265            )?;
85266            Ok(())
85267        }
85268    }
85269
85270    impl fidl::encoding::ResourceTypeMarker for ProviderStreamSocketWithOptionsResponse {
85271        type Borrowed<'a> = &'a mut Self;
85272        fn take_or_borrow<'a>(
85273            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
85274        ) -> Self::Borrowed<'a> {
85275            value
85276        }
85277    }
85278
85279    unsafe impl fidl::encoding::TypeMarker for ProviderStreamSocketWithOptionsResponse {
85280        type Owned = Self;
85281
85282        #[inline(always)]
85283        fn inline_align(_context: fidl::encoding::Context) -> usize {
85284            4
85285        }
85286
85287        #[inline(always)]
85288        fn inline_size(_context: fidl::encoding::Context) -> usize {
85289            4
85290        }
85291    }
85292
85293    unsafe impl
85294        fidl::encoding::Encode<
85295            ProviderStreamSocketWithOptionsResponse,
85296            fidl::encoding::DefaultFuchsiaResourceDialect,
85297        > for &mut ProviderStreamSocketWithOptionsResponse
85298    {
85299        #[inline]
85300        unsafe fn encode(
85301            self,
85302            encoder: &mut fidl::encoding::Encoder<
85303                '_,
85304                fidl::encoding::DefaultFuchsiaResourceDialect,
85305            >,
85306            offset: usize,
85307            _depth: fidl::encoding::Depth,
85308        ) -> fidl::Result<()> {
85309            encoder.debug_check_bounds::<ProviderStreamSocketWithOptionsResponse>(offset);
85310            // Delegate to tuple encoding.
85311            fidl::encoding::Encode::<ProviderStreamSocketWithOptionsResponse, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
85312                (
85313                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.s),
85314                ),
85315                encoder, offset, _depth
85316            )
85317        }
85318    }
85319    unsafe impl<
85320        T0: fidl::encoding::Encode<
85321                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>>,
85322                fidl::encoding::DefaultFuchsiaResourceDialect,
85323            >,
85324    >
85325        fidl::encoding::Encode<
85326            ProviderStreamSocketWithOptionsResponse,
85327            fidl::encoding::DefaultFuchsiaResourceDialect,
85328        > for (T0,)
85329    {
85330        #[inline]
85331        unsafe fn encode(
85332            self,
85333            encoder: &mut fidl::encoding::Encoder<
85334                '_,
85335                fidl::encoding::DefaultFuchsiaResourceDialect,
85336            >,
85337            offset: usize,
85338            depth: fidl::encoding::Depth,
85339        ) -> fidl::Result<()> {
85340            encoder.debug_check_bounds::<ProviderStreamSocketWithOptionsResponse>(offset);
85341            // Zero out padding regions. There's no need to apply masks
85342            // because the unmasked parts will be overwritten by fields.
85343            // Write the fields.
85344            self.0.encode(encoder, offset + 0, depth)?;
85345            Ok(())
85346        }
85347    }
85348
85349    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
85350        for ProviderStreamSocketWithOptionsResponse
85351    {
85352        #[inline(always)]
85353        fn new_empty() -> Self {
85354            Self {
85355                s: fidl::new_empty!(
85356                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>>,
85357                    fidl::encoding::DefaultFuchsiaResourceDialect
85358                ),
85359            }
85360        }
85361
85362        #[inline]
85363        unsafe fn decode(
85364            &mut self,
85365            decoder: &mut fidl::encoding::Decoder<
85366                '_,
85367                fidl::encoding::DefaultFuchsiaResourceDialect,
85368            >,
85369            offset: usize,
85370            _depth: fidl::encoding::Depth,
85371        ) -> fidl::Result<()> {
85372            decoder.debug_check_bounds::<Self>(offset);
85373            // Verify that padding bytes are zero.
85374            fidl::decode!(
85375                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>>,
85376                fidl::encoding::DefaultFuchsiaResourceDialect,
85377                &mut self.s,
85378                decoder,
85379                offset + 0,
85380                _depth
85381            )?;
85382            Ok(())
85383        }
85384    }
85385
85386    impl fidl::encoding::ResourceTypeMarker for ProviderStreamSocketResponse {
85387        type Borrowed<'a> = &'a mut Self;
85388        fn take_or_borrow<'a>(
85389            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
85390        ) -> Self::Borrowed<'a> {
85391            value
85392        }
85393    }
85394
85395    unsafe impl fidl::encoding::TypeMarker for ProviderStreamSocketResponse {
85396        type Owned = Self;
85397
85398        #[inline(always)]
85399        fn inline_align(_context: fidl::encoding::Context) -> usize {
85400            4
85401        }
85402
85403        #[inline(always)]
85404        fn inline_size(_context: fidl::encoding::Context) -> usize {
85405            4
85406        }
85407    }
85408
85409    unsafe impl
85410        fidl::encoding::Encode<
85411            ProviderStreamSocketResponse,
85412            fidl::encoding::DefaultFuchsiaResourceDialect,
85413        > for &mut ProviderStreamSocketResponse
85414    {
85415        #[inline]
85416        unsafe fn encode(
85417            self,
85418            encoder: &mut fidl::encoding::Encoder<
85419                '_,
85420                fidl::encoding::DefaultFuchsiaResourceDialect,
85421            >,
85422            offset: usize,
85423            _depth: fidl::encoding::Depth,
85424        ) -> fidl::Result<()> {
85425            encoder.debug_check_bounds::<ProviderStreamSocketResponse>(offset);
85426            // Delegate to tuple encoding.
85427            fidl::encoding::Encode::<ProviderStreamSocketResponse, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
85428                (
85429                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.s),
85430                ),
85431                encoder, offset, _depth
85432            )
85433        }
85434    }
85435    unsafe impl<
85436        T0: fidl::encoding::Encode<
85437                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>>,
85438                fidl::encoding::DefaultFuchsiaResourceDialect,
85439            >,
85440    >
85441        fidl::encoding::Encode<
85442            ProviderStreamSocketResponse,
85443            fidl::encoding::DefaultFuchsiaResourceDialect,
85444        > for (T0,)
85445    {
85446        #[inline]
85447        unsafe fn encode(
85448            self,
85449            encoder: &mut fidl::encoding::Encoder<
85450                '_,
85451                fidl::encoding::DefaultFuchsiaResourceDialect,
85452            >,
85453            offset: usize,
85454            depth: fidl::encoding::Depth,
85455        ) -> fidl::Result<()> {
85456            encoder.debug_check_bounds::<ProviderStreamSocketResponse>(offset);
85457            // Zero out padding regions. There's no need to apply masks
85458            // because the unmasked parts will be overwritten by fields.
85459            // Write the fields.
85460            self.0.encode(encoder, offset + 0, depth)?;
85461            Ok(())
85462        }
85463    }
85464
85465    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
85466        for ProviderStreamSocketResponse
85467    {
85468        #[inline(always)]
85469        fn new_empty() -> Self {
85470            Self {
85471                s: fidl::new_empty!(
85472                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>>,
85473                    fidl::encoding::DefaultFuchsiaResourceDialect
85474                ),
85475            }
85476        }
85477
85478        #[inline]
85479        unsafe fn decode(
85480            &mut self,
85481            decoder: &mut fidl::encoding::Decoder<
85482                '_,
85483                fidl::encoding::DefaultFuchsiaResourceDialect,
85484            >,
85485            offset: usize,
85486            _depth: fidl::encoding::Depth,
85487        ) -> fidl::Result<()> {
85488            decoder.debug_check_bounds::<Self>(offset);
85489            // Verify that padding bytes are zero.
85490            fidl::decode!(
85491                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>>,
85492                fidl::encoding::DefaultFuchsiaResourceDialect,
85493                &mut self.s,
85494                decoder,
85495                offset + 0,
85496                _depth
85497            )?;
85498            Ok(())
85499        }
85500    }
85501
85502    impl fidl::encoding::ResourceTypeMarker for StreamSocketAcceptResponse {
85503        type Borrowed<'a> = &'a mut Self;
85504        fn take_or_borrow<'a>(
85505            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
85506        ) -> Self::Borrowed<'a> {
85507            value
85508        }
85509    }
85510
85511    unsafe impl fidl::encoding::TypeMarker for StreamSocketAcceptResponse {
85512        type Owned = Self;
85513
85514        #[inline(always)]
85515        fn inline_align(_context: fidl::encoding::Context) -> usize {
85516            8
85517        }
85518
85519        #[inline(always)]
85520        fn inline_size(_context: fidl::encoding::Context) -> usize {
85521            24
85522        }
85523    }
85524
85525    unsafe impl
85526        fidl::encoding::Encode<
85527            StreamSocketAcceptResponse,
85528            fidl::encoding::DefaultFuchsiaResourceDialect,
85529        > for &mut StreamSocketAcceptResponse
85530    {
85531        #[inline]
85532        unsafe fn encode(
85533            self,
85534            encoder: &mut fidl::encoding::Encoder<
85535                '_,
85536                fidl::encoding::DefaultFuchsiaResourceDialect,
85537            >,
85538            offset: usize,
85539            _depth: fidl::encoding::Depth,
85540        ) -> fidl::Result<()> {
85541            encoder.debug_check_bounds::<StreamSocketAcceptResponse>(offset);
85542            // Delegate to tuple encoding.
85543            fidl::encoding::Encode::<StreamSocketAcceptResponse, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
85544                (
85545                    <fidl::encoding::OptionalUnion<fidl_fuchsia_net::SocketAddress> as fidl::encoding::ValueTypeMarker>::borrow(&self.addr),
85546                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.s),
85547                ),
85548                encoder, offset, _depth
85549            )
85550        }
85551    }
85552    unsafe impl<
85553        T0: fidl::encoding::Encode<
85554                fidl::encoding::OptionalUnion<fidl_fuchsia_net::SocketAddress>,
85555                fidl::encoding::DefaultFuchsiaResourceDialect,
85556            >,
85557        T1: fidl::encoding::Encode<
85558                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>>,
85559                fidl::encoding::DefaultFuchsiaResourceDialect,
85560            >,
85561    >
85562        fidl::encoding::Encode<
85563            StreamSocketAcceptResponse,
85564            fidl::encoding::DefaultFuchsiaResourceDialect,
85565        > for (T0, T1)
85566    {
85567        #[inline]
85568        unsafe fn encode(
85569            self,
85570            encoder: &mut fidl::encoding::Encoder<
85571                '_,
85572                fidl::encoding::DefaultFuchsiaResourceDialect,
85573            >,
85574            offset: usize,
85575            depth: fidl::encoding::Depth,
85576        ) -> fidl::Result<()> {
85577            encoder.debug_check_bounds::<StreamSocketAcceptResponse>(offset);
85578            // Zero out padding regions. There's no need to apply masks
85579            // because the unmasked parts will be overwritten by fields.
85580            unsafe {
85581                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
85582                (ptr as *mut u64).write_unaligned(0);
85583            }
85584            // Write the fields.
85585            self.0.encode(encoder, offset + 0, depth)?;
85586            self.1.encode(encoder, offset + 16, depth)?;
85587            Ok(())
85588        }
85589    }
85590
85591    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
85592        for StreamSocketAcceptResponse
85593    {
85594        #[inline(always)]
85595        fn new_empty() -> Self {
85596            Self {
85597                addr: fidl::new_empty!(
85598                    fidl::encoding::OptionalUnion<fidl_fuchsia_net::SocketAddress>,
85599                    fidl::encoding::DefaultFuchsiaResourceDialect
85600                ),
85601                s: fidl::new_empty!(
85602                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>>,
85603                    fidl::encoding::DefaultFuchsiaResourceDialect
85604                ),
85605            }
85606        }
85607
85608        #[inline]
85609        unsafe fn decode(
85610            &mut self,
85611            decoder: &mut fidl::encoding::Decoder<
85612                '_,
85613                fidl::encoding::DefaultFuchsiaResourceDialect,
85614            >,
85615            offset: usize,
85616            _depth: fidl::encoding::Depth,
85617        ) -> fidl::Result<()> {
85618            decoder.debug_check_bounds::<Self>(offset);
85619            // Verify that padding bytes are zero.
85620            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
85621            let padval = unsafe { (ptr as *const u64).read_unaligned() };
85622            let mask = 0xffffffff00000000u64;
85623            let maskedval = padval & mask;
85624            if maskedval != 0 {
85625                return Err(fidl::Error::NonZeroPadding {
85626                    padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
85627                });
85628            }
85629            fidl::decode!(
85630                fidl::encoding::OptionalUnion<fidl_fuchsia_net::SocketAddress>,
85631                fidl::encoding::DefaultFuchsiaResourceDialect,
85632                &mut self.addr,
85633                decoder,
85634                offset + 0,
85635                _depth
85636            )?;
85637            fidl::decode!(
85638                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>>,
85639                fidl::encoding::DefaultFuchsiaResourceDialect,
85640                &mut self.s,
85641                decoder,
85642                offset + 16,
85643                _depth
85644            )?;
85645            Ok(())
85646        }
85647    }
85648
85649    impl DatagramSocketDescribeResponse {
85650        #[inline(always)]
85651        fn max_ordinal_present(&self) -> u64 {
85652            if let Some(_) = self.metadata_encoding_protocol_version {
85653                return 4;
85654            }
85655            if let Some(_) = self.rx_meta_buf_size {
85656                return 3;
85657            }
85658            if let Some(_) = self.tx_meta_buf_size {
85659                return 2;
85660            }
85661            if let Some(_) = self.socket {
85662                return 1;
85663            }
85664            0
85665        }
85666    }
85667
85668    impl fidl::encoding::ResourceTypeMarker for DatagramSocketDescribeResponse {
85669        type Borrowed<'a> = &'a mut Self;
85670        fn take_or_borrow<'a>(
85671            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
85672        ) -> Self::Borrowed<'a> {
85673            value
85674        }
85675    }
85676
85677    unsafe impl fidl::encoding::TypeMarker for DatagramSocketDescribeResponse {
85678        type Owned = Self;
85679
85680        #[inline(always)]
85681        fn inline_align(_context: fidl::encoding::Context) -> usize {
85682            8
85683        }
85684
85685        #[inline(always)]
85686        fn inline_size(_context: fidl::encoding::Context) -> usize {
85687            16
85688        }
85689    }
85690
85691    unsafe impl
85692        fidl::encoding::Encode<
85693            DatagramSocketDescribeResponse,
85694            fidl::encoding::DefaultFuchsiaResourceDialect,
85695        > for &mut DatagramSocketDescribeResponse
85696    {
85697        unsafe fn encode(
85698            self,
85699            encoder: &mut fidl::encoding::Encoder<
85700                '_,
85701                fidl::encoding::DefaultFuchsiaResourceDialect,
85702            >,
85703            offset: usize,
85704            mut depth: fidl::encoding::Depth,
85705        ) -> fidl::Result<()> {
85706            encoder.debug_check_bounds::<DatagramSocketDescribeResponse>(offset);
85707            // Vector header
85708            let max_ordinal: u64 = self.max_ordinal_present();
85709            encoder.write_num(max_ordinal, offset);
85710            encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
85711            // Calling encoder.out_of_line_offset(0) is not allowed.
85712            if max_ordinal == 0 {
85713                return Ok(());
85714            }
85715            depth.increment()?;
85716            let envelope_size = 8;
85717            let bytes_len = max_ordinal as usize * envelope_size;
85718            #[allow(unused_variables)]
85719            let offset = encoder.out_of_line_offset(bytes_len);
85720            let mut _prev_end_offset: usize = 0;
85721            if 1 > max_ordinal {
85722                return Ok(());
85723            }
85724
85725            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
85726            // are envelope_size bytes.
85727            let cur_offset: usize = (1 - 1) * envelope_size;
85728
85729            // Zero reserved fields.
85730            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
85731
85732            // Safety:
85733            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
85734            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
85735            //   envelope_size bytes, there is always sufficient room.
85736            fidl::encoding::encode_in_envelope_optional::<
85737                fidl::encoding::HandleType<
85738                    fidl::Socket,
85739                    { fidl::ObjectType::SOCKET.into_raw() },
85740                    2147483648,
85741                >,
85742                fidl::encoding::DefaultFuchsiaResourceDialect,
85743            >(
85744                self.socket.as_mut().map(
85745                    <fidl::encoding::HandleType<
85746                        fidl::Socket,
85747                        { fidl::ObjectType::SOCKET.into_raw() },
85748                        2147483648,
85749                    > as fidl::encoding::ResourceTypeMarker>::take_or_borrow,
85750                ),
85751                encoder,
85752                offset + cur_offset,
85753                depth,
85754            )?;
85755
85756            _prev_end_offset = cur_offset + envelope_size;
85757            if 2 > max_ordinal {
85758                return Ok(());
85759            }
85760
85761            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
85762            // are envelope_size bytes.
85763            let cur_offset: usize = (2 - 1) * envelope_size;
85764
85765            // Zero reserved fields.
85766            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
85767
85768            // Safety:
85769            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
85770            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
85771            //   envelope_size bytes, there is always sufficient room.
85772            fidl::encoding::encode_in_envelope_optional::<
85773                u64,
85774                fidl::encoding::DefaultFuchsiaResourceDialect,
85775            >(
85776                self.tx_meta_buf_size
85777                    .as_ref()
85778                    .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
85779                encoder,
85780                offset + cur_offset,
85781                depth,
85782            )?;
85783
85784            _prev_end_offset = cur_offset + envelope_size;
85785            if 3 > max_ordinal {
85786                return Ok(());
85787            }
85788
85789            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
85790            // are envelope_size bytes.
85791            let cur_offset: usize = (3 - 1) * envelope_size;
85792
85793            // Zero reserved fields.
85794            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
85795
85796            // Safety:
85797            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
85798            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
85799            //   envelope_size bytes, there is always sufficient room.
85800            fidl::encoding::encode_in_envelope_optional::<
85801                u64,
85802                fidl::encoding::DefaultFuchsiaResourceDialect,
85803            >(
85804                self.rx_meta_buf_size
85805                    .as_ref()
85806                    .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
85807                encoder,
85808                offset + cur_offset,
85809                depth,
85810            )?;
85811
85812            _prev_end_offset = cur_offset + envelope_size;
85813            if 4 > max_ordinal {
85814                return Ok(());
85815            }
85816
85817            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
85818            // are envelope_size bytes.
85819            let cur_offset: usize = (4 - 1) * envelope_size;
85820
85821            // Zero reserved fields.
85822            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
85823
85824            // Safety:
85825            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
85826            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
85827            //   envelope_size bytes, there is always sufficient room.
85828            fidl::encoding::encode_in_envelope_optional::<
85829                UdpMetadataEncodingProtocolVersion,
85830                fidl::encoding::DefaultFuchsiaResourceDialect,
85831            >(
85832                self.metadata_encoding_protocol_version.as_ref().map(
85833                    <UdpMetadataEncodingProtocolVersion as fidl::encoding::ValueTypeMarker>::borrow,
85834                ),
85835                encoder,
85836                offset + cur_offset,
85837                depth,
85838            )?;
85839
85840            _prev_end_offset = cur_offset + envelope_size;
85841
85842            Ok(())
85843        }
85844    }
85845
85846    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
85847        for DatagramSocketDescribeResponse
85848    {
85849        #[inline(always)]
85850        fn new_empty() -> Self {
85851            Self::default()
85852        }
85853
85854        unsafe fn decode(
85855            &mut self,
85856            decoder: &mut fidl::encoding::Decoder<
85857                '_,
85858                fidl::encoding::DefaultFuchsiaResourceDialect,
85859            >,
85860            offset: usize,
85861            mut depth: fidl::encoding::Depth,
85862        ) -> fidl::Result<()> {
85863            decoder.debug_check_bounds::<Self>(offset);
85864            let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
85865                None => return Err(fidl::Error::NotNullable),
85866                Some(len) => len,
85867            };
85868            // Calling decoder.out_of_line_offset(0) is not allowed.
85869            if len == 0 {
85870                return Ok(());
85871            };
85872            depth.increment()?;
85873            let envelope_size = 8;
85874            let bytes_len = len * envelope_size;
85875            let offset = decoder.out_of_line_offset(bytes_len)?;
85876            // Decode the envelope for each type.
85877            let mut _next_ordinal_to_read = 0;
85878            let mut next_offset = offset;
85879            let end_offset = offset + bytes_len;
85880            _next_ordinal_to_read += 1;
85881            if next_offset >= end_offset {
85882                return Ok(());
85883            }
85884
85885            // Decode unknown envelopes for gaps in ordinals.
85886            while _next_ordinal_to_read < 1 {
85887                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
85888                _next_ordinal_to_read += 1;
85889                next_offset += envelope_size;
85890            }
85891
85892            let next_out_of_line = decoder.next_out_of_line();
85893            let handles_before = decoder.remaining_handles();
85894            if let Some((inlined, num_bytes, num_handles)) =
85895                fidl::encoding::decode_envelope_header(decoder, next_offset)?
85896            {
85897                let member_inline_size = <fidl::encoding::HandleType<
85898                    fidl::Socket,
85899                    { fidl::ObjectType::SOCKET.into_raw() },
85900                    2147483648,
85901                > as fidl::encoding::TypeMarker>::inline_size(
85902                    decoder.context
85903                );
85904                if inlined != (member_inline_size <= 4) {
85905                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
85906                }
85907                let inner_offset;
85908                let mut inner_depth = depth.clone();
85909                if inlined {
85910                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
85911                    inner_offset = next_offset;
85912                } else {
85913                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
85914                    inner_depth.increment()?;
85915                }
85916                let val_ref =
85917                self.socket.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::HandleType<fidl::Socket, { fidl::ObjectType::SOCKET.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect));
85918                fidl::decode!(fidl::encoding::HandleType<fidl::Socket, { fidl::ObjectType::SOCKET.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect, val_ref, decoder, inner_offset, inner_depth)?;
85919                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
85920                {
85921                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
85922                }
85923                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
85924                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
85925                }
85926            }
85927
85928            next_offset += envelope_size;
85929            _next_ordinal_to_read += 1;
85930            if next_offset >= end_offset {
85931                return Ok(());
85932            }
85933
85934            // Decode unknown envelopes for gaps in ordinals.
85935            while _next_ordinal_to_read < 2 {
85936                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
85937                _next_ordinal_to_read += 1;
85938                next_offset += envelope_size;
85939            }
85940
85941            let next_out_of_line = decoder.next_out_of_line();
85942            let handles_before = decoder.remaining_handles();
85943            if let Some((inlined, num_bytes, num_handles)) =
85944                fidl::encoding::decode_envelope_header(decoder, next_offset)?
85945            {
85946                let member_inline_size =
85947                    <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
85948                if inlined != (member_inline_size <= 4) {
85949                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
85950                }
85951                let inner_offset;
85952                let mut inner_depth = depth.clone();
85953                if inlined {
85954                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
85955                    inner_offset = next_offset;
85956                } else {
85957                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
85958                    inner_depth.increment()?;
85959                }
85960                let val_ref = self.tx_meta_buf_size.get_or_insert_with(|| {
85961                    fidl::new_empty!(u64, fidl::encoding::DefaultFuchsiaResourceDialect)
85962                });
85963                fidl::decode!(
85964                    u64,
85965                    fidl::encoding::DefaultFuchsiaResourceDialect,
85966                    val_ref,
85967                    decoder,
85968                    inner_offset,
85969                    inner_depth
85970                )?;
85971                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
85972                {
85973                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
85974                }
85975                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
85976                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
85977                }
85978            }
85979
85980            next_offset += envelope_size;
85981            _next_ordinal_to_read += 1;
85982            if next_offset >= end_offset {
85983                return Ok(());
85984            }
85985
85986            // Decode unknown envelopes for gaps in ordinals.
85987            while _next_ordinal_to_read < 3 {
85988                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
85989                _next_ordinal_to_read += 1;
85990                next_offset += envelope_size;
85991            }
85992
85993            let next_out_of_line = decoder.next_out_of_line();
85994            let handles_before = decoder.remaining_handles();
85995            if let Some((inlined, num_bytes, num_handles)) =
85996                fidl::encoding::decode_envelope_header(decoder, next_offset)?
85997            {
85998                let member_inline_size =
85999                    <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
86000                if inlined != (member_inline_size <= 4) {
86001                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
86002                }
86003                let inner_offset;
86004                let mut inner_depth = depth.clone();
86005                if inlined {
86006                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
86007                    inner_offset = next_offset;
86008                } else {
86009                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
86010                    inner_depth.increment()?;
86011                }
86012                let val_ref = self.rx_meta_buf_size.get_or_insert_with(|| {
86013                    fidl::new_empty!(u64, fidl::encoding::DefaultFuchsiaResourceDialect)
86014                });
86015                fidl::decode!(
86016                    u64,
86017                    fidl::encoding::DefaultFuchsiaResourceDialect,
86018                    val_ref,
86019                    decoder,
86020                    inner_offset,
86021                    inner_depth
86022                )?;
86023                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
86024                {
86025                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
86026                }
86027                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
86028                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
86029                }
86030            }
86031
86032            next_offset += envelope_size;
86033            _next_ordinal_to_read += 1;
86034            if next_offset >= end_offset {
86035                return Ok(());
86036            }
86037
86038            // Decode unknown envelopes for gaps in ordinals.
86039            while _next_ordinal_to_read < 4 {
86040                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
86041                _next_ordinal_to_read += 1;
86042                next_offset += envelope_size;
86043            }
86044
86045            let next_out_of_line = decoder.next_out_of_line();
86046            let handles_before = decoder.remaining_handles();
86047            if let Some((inlined, num_bytes, num_handles)) =
86048                fidl::encoding::decode_envelope_header(decoder, next_offset)?
86049            {
86050                let member_inline_size =
86051                    <UdpMetadataEncodingProtocolVersion as fidl::encoding::TypeMarker>::inline_size(
86052                        decoder.context,
86053                    );
86054                if inlined != (member_inline_size <= 4) {
86055                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
86056                }
86057                let inner_offset;
86058                let mut inner_depth = depth.clone();
86059                if inlined {
86060                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
86061                    inner_offset = next_offset;
86062                } else {
86063                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
86064                    inner_depth.increment()?;
86065                }
86066                let val_ref = self.metadata_encoding_protocol_version.get_or_insert_with(|| {
86067                    fidl::new_empty!(
86068                        UdpMetadataEncodingProtocolVersion,
86069                        fidl::encoding::DefaultFuchsiaResourceDialect
86070                    )
86071                });
86072                fidl::decode!(
86073                    UdpMetadataEncodingProtocolVersion,
86074                    fidl::encoding::DefaultFuchsiaResourceDialect,
86075                    val_ref,
86076                    decoder,
86077                    inner_offset,
86078                    inner_depth
86079                )?;
86080                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
86081                {
86082                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
86083                }
86084                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
86085                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
86086                }
86087            }
86088
86089            next_offset += envelope_size;
86090
86091            // Decode the remaining unknown envelopes.
86092            while next_offset < end_offset {
86093                _next_ordinal_to_read += 1;
86094                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
86095                next_offset += envelope_size;
86096            }
86097
86098            Ok(())
86099        }
86100    }
86101
86102    impl DatagramSocketRecvMsgPostflightResponse {
86103        #[inline(always)]
86104        fn max_ordinal_present(&self) -> u64 {
86105            if let Some(_) = self.requests {
86106                return 3;
86107            }
86108            if let Some(_) = self.timestamp {
86109                return 2;
86110            }
86111            if let Some(_) = self.validity {
86112                return 1;
86113            }
86114            0
86115        }
86116    }
86117
86118    impl fidl::encoding::ResourceTypeMarker for DatagramSocketRecvMsgPostflightResponse {
86119        type Borrowed<'a> = &'a mut Self;
86120        fn take_or_borrow<'a>(
86121            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
86122        ) -> Self::Borrowed<'a> {
86123            value
86124        }
86125    }
86126
86127    unsafe impl fidl::encoding::TypeMarker for DatagramSocketRecvMsgPostflightResponse {
86128        type Owned = Self;
86129
86130        #[inline(always)]
86131        fn inline_align(_context: fidl::encoding::Context) -> usize {
86132            8
86133        }
86134
86135        #[inline(always)]
86136        fn inline_size(_context: fidl::encoding::Context) -> usize {
86137            16
86138        }
86139    }
86140
86141    unsafe impl
86142        fidl::encoding::Encode<
86143            DatagramSocketRecvMsgPostflightResponse,
86144            fidl::encoding::DefaultFuchsiaResourceDialect,
86145        > for &mut DatagramSocketRecvMsgPostflightResponse
86146    {
86147        unsafe fn encode(
86148            self,
86149            encoder: &mut fidl::encoding::Encoder<
86150                '_,
86151                fidl::encoding::DefaultFuchsiaResourceDialect,
86152            >,
86153            offset: usize,
86154            mut depth: fidl::encoding::Depth,
86155        ) -> fidl::Result<()> {
86156            encoder.debug_check_bounds::<DatagramSocketRecvMsgPostflightResponse>(offset);
86157            // Vector header
86158            let max_ordinal: u64 = self.max_ordinal_present();
86159            encoder.write_num(max_ordinal, offset);
86160            encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
86161            // Calling encoder.out_of_line_offset(0) is not allowed.
86162            if max_ordinal == 0 {
86163                return Ok(());
86164            }
86165            depth.increment()?;
86166            let envelope_size = 8;
86167            let bytes_len = max_ordinal as usize * envelope_size;
86168            #[allow(unused_variables)]
86169            let offset = encoder.out_of_line_offset(bytes_len);
86170            let mut _prev_end_offset: usize = 0;
86171            if 1 > max_ordinal {
86172                return Ok(());
86173            }
86174
86175            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
86176            // are envelope_size bytes.
86177            let cur_offset: usize = (1 - 1) * envelope_size;
86178
86179            // Zero reserved fields.
86180            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
86181
86182            // Safety:
86183            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
86184            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
86185            //   envelope_size bytes, there is always sufficient room.
86186            fidl::encoding::encode_in_envelope_optional::<
86187                fidl::encoding::HandleType<
86188                    fidl::EventPair,
86189                    { fidl::ObjectType::EVENTPAIR.into_raw() },
86190                    49155,
86191                >,
86192                fidl::encoding::DefaultFuchsiaResourceDialect,
86193            >(
86194                self.validity.as_mut().map(
86195                    <fidl::encoding::HandleType<
86196                        fidl::EventPair,
86197                        { fidl::ObjectType::EVENTPAIR.into_raw() },
86198                        49155,
86199                    > as fidl::encoding::ResourceTypeMarker>::take_or_borrow,
86200                ),
86201                encoder,
86202                offset + cur_offset,
86203                depth,
86204            )?;
86205
86206            _prev_end_offset = cur_offset + envelope_size;
86207            if 2 > max_ordinal {
86208                return Ok(());
86209            }
86210
86211            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
86212            // are envelope_size bytes.
86213            let cur_offset: usize = (2 - 1) * envelope_size;
86214
86215            // Zero reserved fields.
86216            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
86217
86218            // Safety:
86219            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
86220            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
86221            //   envelope_size bytes, there is always sufficient room.
86222            fidl::encoding::encode_in_envelope_optional::<
86223                TimestampOption,
86224                fidl::encoding::DefaultFuchsiaResourceDialect,
86225            >(
86226                self.timestamp
86227                    .as_ref()
86228                    .map(<TimestampOption as fidl::encoding::ValueTypeMarker>::borrow),
86229                encoder,
86230                offset + cur_offset,
86231                depth,
86232            )?;
86233
86234            _prev_end_offset = cur_offset + envelope_size;
86235            if 3 > max_ordinal {
86236                return Ok(());
86237            }
86238
86239            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
86240            // are envelope_size bytes.
86241            let cur_offset: usize = (3 - 1) * envelope_size;
86242
86243            // Zero reserved fields.
86244            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
86245
86246            // Safety:
86247            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
86248            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
86249            //   envelope_size bytes, there is always sufficient room.
86250            fidl::encoding::encode_in_envelope_optional::<
86251                CmsgRequests,
86252                fidl::encoding::DefaultFuchsiaResourceDialect,
86253            >(
86254                self.requests
86255                    .as_ref()
86256                    .map(<CmsgRequests as fidl::encoding::ValueTypeMarker>::borrow),
86257                encoder,
86258                offset + cur_offset,
86259                depth,
86260            )?;
86261
86262            _prev_end_offset = cur_offset + envelope_size;
86263
86264            Ok(())
86265        }
86266    }
86267
86268    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
86269        for DatagramSocketRecvMsgPostflightResponse
86270    {
86271        #[inline(always)]
86272        fn new_empty() -> Self {
86273            Self::default()
86274        }
86275
86276        unsafe fn decode(
86277            &mut self,
86278            decoder: &mut fidl::encoding::Decoder<
86279                '_,
86280                fidl::encoding::DefaultFuchsiaResourceDialect,
86281            >,
86282            offset: usize,
86283            mut depth: fidl::encoding::Depth,
86284        ) -> fidl::Result<()> {
86285            decoder.debug_check_bounds::<Self>(offset);
86286            let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
86287                None => return Err(fidl::Error::NotNullable),
86288                Some(len) => len,
86289            };
86290            // Calling decoder.out_of_line_offset(0) is not allowed.
86291            if len == 0 {
86292                return Ok(());
86293            };
86294            depth.increment()?;
86295            let envelope_size = 8;
86296            let bytes_len = len * envelope_size;
86297            let offset = decoder.out_of_line_offset(bytes_len)?;
86298            // Decode the envelope for each type.
86299            let mut _next_ordinal_to_read = 0;
86300            let mut next_offset = offset;
86301            let end_offset = offset + bytes_len;
86302            _next_ordinal_to_read += 1;
86303            if next_offset >= end_offset {
86304                return Ok(());
86305            }
86306
86307            // Decode unknown envelopes for gaps in ordinals.
86308            while _next_ordinal_to_read < 1 {
86309                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
86310                _next_ordinal_to_read += 1;
86311                next_offset += envelope_size;
86312            }
86313
86314            let next_out_of_line = decoder.next_out_of_line();
86315            let handles_before = decoder.remaining_handles();
86316            if let Some((inlined, num_bytes, num_handles)) =
86317                fidl::encoding::decode_envelope_header(decoder, next_offset)?
86318            {
86319                let member_inline_size = <fidl::encoding::HandleType<
86320                    fidl::EventPair,
86321                    { fidl::ObjectType::EVENTPAIR.into_raw() },
86322                    49155,
86323                > as fidl::encoding::TypeMarker>::inline_size(
86324                    decoder.context
86325                );
86326                if inlined != (member_inline_size <= 4) {
86327                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
86328                }
86329                let inner_offset;
86330                let mut inner_depth = depth.clone();
86331                if inlined {
86332                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
86333                    inner_offset = next_offset;
86334                } else {
86335                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
86336                    inner_depth.increment()?;
86337                }
86338                let val_ref =
86339                self.validity.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::HandleType<fidl::EventPair, { fidl::ObjectType::EVENTPAIR.into_raw() }, 49155>, fidl::encoding::DefaultFuchsiaResourceDialect));
86340                fidl::decode!(fidl::encoding::HandleType<fidl::EventPair, { fidl::ObjectType::EVENTPAIR.into_raw() }, 49155>, fidl::encoding::DefaultFuchsiaResourceDialect, val_ref, decoder, inner_offset, inner_depth)?;
86341                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
86342                {
86343                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
86344                }
86345                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
86346                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
86347                }
86348            }
86349
86350            next_offset += envelope_size;
86351            _next_ordinal_to_read += 1;
86352            if next_offset >= end_offset {
86353                return Ok(());
86354            }
86355
86356            // Decode unknown envelopes for gaps in ordinals.
86357            while _next_ordinal_to_read < 2 {
86358                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
86359                _next_ordinal_to_read += 1;
86360                next_offset += envelope_size;
86361            }
86362
86363            let next_out_of_line = decoder.next_out_of_line();
86364            let handles_before = decoder.remaining_handles();
86365            if let Some((inlined, num_bytes, num_handles)) =
86366                fidl::encoding::decode_envelope_header(decoder, next_offset)?
86367            {
86368                let member_inline_size =
86369                    <TimestampOption as fidl::encoding::TypeMarker>::inline_size(decoder.context);
86370                if inlined != (member_inline_size <= 4) {
86371                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
86372                }
86373                let inner_offset;
86374                let mut inner_depth = depth.clone();
86375                if inlined {
86376                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
86377                    inner_offset = next_offset;
86378                } else {
86379                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
86380                    inner_depth.increment()?;
86381                }
86382                let val_ref = self.timestamp.get_or_insert_with(|| {
86383                    fidl::new_empty!(TimestampOption, fidl::encoding::DefaultFuchsiaResourceDialect)
86384                });
86385                fidl::decode!(
86386                    TimestampOption,
86387                    fidl::encoding::DefaultFuchsiaResourceDialect,
86388                    val_ref,
86389                    decoder,
86390                    inner_offset,
86391                    inner_depth
86392                )?;
86393                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
86394                {
86395                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
86396                }
86397                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
86398                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
86399                }
86400            }
86401
86402            next_offset += envelope_size;
86403            _next_ordinal_to_read += 1;
86404            if next_offset >= end_offset {
86405                return Ok(());
86406            }
86407
86408            // Decode unknown envelopes for gaps in ordinals.
86409            while _next_ordinal_to_read < 3 {
86410                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
86411                _next_ordinal_to_read += 1;
86412                next_offset += envelope_size;
86413            }
86414
86415            let next_out_of_line = decoder.next_out_of_line();
86416            let handles_before = decoder.remaining_handles();
86417            if let Some((inlined, num_bytes, num_handles)) =
86418                fidl::encoding::decode_envelope_header(decoder, next_offset)?
86419            {
86420                let member_inline_size =
86421                    <CmsgRequests as fidl::encoding::TypeMarker>::inline_size(decoder.context);
86422                if inlined != (member_inline_size <= 4) {
86423                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
86424                }
86425                let inner_offset;
86426                let mut inner_depth = depth.clone();
86427                if inlined {
86428                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
86429                    inner_offset = next_offset;
86430                } else {
86431                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
86432                    inner_depth.increment()?;
86433                }
86434                let val_ref = self.requests.get_or_insert_with(|| {
86435                    fidl::new_empty!(CmsgRequests, fidl::encoding::DefaultFuchsiaResourceDialect)
86436                });
86437                fidl::decode!(
86438                    CmsgRequests,
86439                    fidl::encoding::DefaultFuchsiaResourceDialect,
86440                    val_ref,
86441                    decoder,
86442                    inner_offset,
86443                    inner_depth
86444                )?;
86445                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
86446                {
86447                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
86448                }
86449                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
86450                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
86451                }
86452            }
86453
86454            next_offset += envelope_size;
86455
86456            // Decode the remaining unknown envelopes.
86457            while next_offset < end_offset {
86458                _next_ordinal_to_read += 1;
86459                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
86460                next_offset += envelope_size;
86461            }
86462
86463            Ok(())
86464        }
86465    }
86466
86467    impl DatagramSocketSendMsgPreflightResponse {
86468        #[inline(always)]
86469        fn max_ordinal_present(&self) -> u64 {
86470            if let Some(_) = self.maximum_size {
86471                return 3;
86472            }
86473            if let Some(_) = self.validity {
86474                return 2;
86475            }
86476            if let Some(_) = self.to {
86477                return 1;
86478            }
86479            0
86480        }
86481    }
86482
86483    impl fidl::encoding::ResourceTypeMarker for DatagramSocketSendMsgPreflightResponse {
86484        type Borrowed<'a> = &'a mut Self;
86485        fn take_or_borrow<'a>(
86486            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
86487        ) -> Self::Borrowed<'a> {
86488            value
86489        }
86490    }
86491
86492    unsafe impl fidl::encoding::TypeMarker for DatagramSocketSendMsgPreflightResponse {
86493        type Owned = Self;
86494
86495        #[inline(always)]
86496        fn inline_align(_context: fidl::encoding::Context) -> usize {
86497            8
86498        }
86499
86500        #[inline(always)]
86501        fn inline_size(_context: fidl::encoding::Context) -> usize {
86502            16
86503        }
86504    }
86505
86506    unsafe impl
86507        fidl::encoding::Encode<
86508            DatagramSocketSendMsgPreflightResponse,
86509            fidl::encoding::DefaultFuchsiaResourceDialect,
86510        > for &mut DatagramSocketSendMsgPreflightResponse
86511    {
86512        unsafe fn encode(
86513            self,
86514            encoder: &mut fidl::encoding::Encoder<
86515                '_,
86516                fidl::encoding::DefaultFuchsiaResourceDialect,
86517            >,
86518            offset: usize,
86519            mut depth: fidl::encoding::Depth,
86520        ) -> fidl::Result<()> {
86521            encoder.debug_check_bounds::<DatagramSocketSendMsgPreflightResponse>(offset);
86522            // Vector header
86523            let max_ordinal: u64 = self.max_ordinal_present();
86524            encoder.write_num(max_ordinal, offset);
86525            encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
86526            // Calling encoder.out_of_line_offset(0) is not allowed.
86527            if max_ordinal == 0 {
86528                return Ok(());
86529            }
86530            depth.increment()?;
86531            let envelope_size = 8;
86532            let bytes_len = max_ordinal as usize * envelope_size;
86533            #[allow(unused_variables)]
86534            let offset = encoder.out_of_line_offset(bytes_len);
86535            let mut _prev_end_offset: usize = 0;
86536            if 1 > max_ordinal {
86537                return Ok(());
86538            }
86539
86540            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
86541            // are envelope_size bytes.
86542            let cur_offset: usize = (1 - 1) * envelope_size;
86543
86544            // Zero reserved fields.
86545            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
86546
86547            // Safety:
86548            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
86549            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
86550            //   envelope_size bytes, there is always sufficient room.
86551            fidl::encoding::encode_in_envelope_optional::<
86552                fidl_fuchsia_net::SocketAddress,
86553                fidl::encoding::DefaultFuchsiaResourceDialect,
86554            >(
86555                self.to.as_ref().map(
86556                    <fidl_fuchsia_net::SocketAddress as fidl::encoding::ValueTypeMarker>::borrow,
86557                ),
86558                encoder,
86559                offset + cur_offset,
86560                depth,
86561            )?;
86562
86563            _prev_end_offset = cur_offset + envelope_size;
86564            if 2 > max_ordinal {
86565                return Ok(());
86566            }
86567
86568            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
86569            // are envelope_size bytes.
86570            let cur_offset: usize = (2 - 1) * envelope_size;
86571
86572            // Zero reserved fields.
86573            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
86574
86575            // Safety:
86576            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
86577            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
86578            //   envelope_size bytes, there is always sufficient room.
86579            fidl::encoding::encode_in_envelope_optional::<
86580                fidl::encoding::Vector<
86581                    fidl::encoding::HandleType<
86582                        fidl::EventPair,
86583                        { fidl::ObjectType::EVENTPAIR.into_raw() },
86584                        49155,
86585                    >,
86586                    63,
86587                >,
86588                fidl::encoding::DefaultFuchsiaResourceDialect,
86589            >(
86590                self.validity.as_mut().map(
86591                    <fidl::encoding::Vector<
86592                        fidl::encoding::HandleType<
86593                            fidl::EventPair,
86594                            { fidl::ObjectType::EVENTPAIR.into_raw() },
86595                            49155,
86596                        >,
86597                        63,
86598                    > as fidl::encoding::ResourceTypeMarker>::take_or_borrow,
86599                ),
86600                encoder,
86601                offset + cur_offset,
86602                depth,
86603            )?;
86604
86605            _prev_end_offset = cur_offset + envelope_size;
86606            if 3 > max_ordinal {
86607                return Ok(());
86608            }
86609
86610            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
86611            // are envelope_size bytes.
86612            let cur_offset: usize = (3 - 1) * envelope_size;
86613
86614            // Zero reserved fields.
86615            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
86616
86617            // Safety:
86618            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
86619            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
86620            //   envelope_size bytes, there is always sufficient room.
86621            fidl::encoding::encode_in_envelope_optional::<
86622                u32,
86623                fidl::encoding::DefaultFuchsiaResourceDialect,
86624            >(
86625                self.maximum_size.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
86626                encoder,
86627                offset + cur_offset,
86628                depth,
86629            )?;
86630
86631            _prev_end_offset = cur_offset + envelope_size;
86632
86633            Ok(())
86634        }
86635    }
86636
86637    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
86638        for DatagramSocketSendMsgPreflightResponse
86639    {
86640        #[inline(always)]
86641        fn new_empty() -> Self {
86642            Self::default()
86643        }
86644
86645        unsafe fn decode(
86646            &mut self,
86647            decoder: &mut fidl::encoding::Decoder<
86648                '_,
86649                fidl::encoding::DefaultFuchsiaResourceDialect,
86650            >,
86651            offset: usize,
86652            mut depth: fidl::encoding::Depth,
86653        ) -> fidl::Result<()> {
86654            decoder.debug_check_bounds::<Self>(offset);
86655            let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
86656                None => return Err(fidl::Error::NotNullable),
86657                Some(len) => len,
86658            };
86659            // Calling decoder.out_of_line_offset(0) is not allowed.
86660            if len == 0 {
86661                return Ok(());
86662            };
86663            depth.increment()?;
86664            let envelope_size = 8;
86665            let bytes_len = len * envelope_size;
86666            let offset = decoder.out_of_line_offset(bytes_len)?;
86667            // Decode the envelope for each type.
86668            let mut _next_ordinal_to_read = 0;
86669            let mut next_offset = offset;
86670            let end_offset = offset + bytes_len;
86671            _next_ordinal_to_read += 1;
86672            if next_offset >= end_offset {
86673                return Ok(());
86674            }
86675
86676            // Decode unknown envelopes for gaps in ordinals.
86677            while _next_ordinal_to_read < 1 {
86678                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
86679                _next_ordinal_to_read += 1;
86680                next_offset += envelope_size;
86681            }
86682
86683            let next_out_of_line = decoder.next_out_of_line();
86684            let handles_before = decoder.remaining_handles();
86685            if let Some((inlined, num_bytes, num_handles)) =
86686                fidl::encoding::decode_envelope_header(decoder, next_offset)?
86687            {
86688                let member_inline_size =
86689                    <fidl_fuchsia_net::SocketAddress as fidl::encoding::TypeMarker>::inline_size(
86690                        decoder.context,
86691                    );
86692                if inlined != (member_inline_size <= 4) {
86693                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
86694                }
86695                let inner_offset;
86696                let mut inner_depth = depth.clone();
86697                if inlined {
86698                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
86699                    inner_offset = next_offset;
86700                } else {
86701                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
86702                    inner_depth.increment()?;
86703                }
86704                let val_ref = self.to.get_or_insert_with(|| {
86705                    fidl::new_empty!(
86706                        fidl_fuchsia_net::SocketAddress,
86707                        fidl::encoding::DefaultFuchsiaResourceDialect
86708                    )
86709                });
86710                fidl::decode!(
86711                    fidl_fuchsia_net::SocketAddress,
86712                    fidl::encoding::DefaultFuchsiaResourceDialect,
86713                    val_ref,
86714                    decoder,
86715                    inner_offset,
86716                    inner_depth
86717                )?;
86718                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
86719                {
86720                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
86721                }
86722                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
86723                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
86724                }
86725            }
86726
86727            next_offset += envelope_size;
86728            _next_ordinal_to_read += 1;
86729            if next_offset >= end_offset {
86730                return Ok(());
86731            }
86732
86733            // Decode unknown envelopes for gaps in ordinals.
86734            while _next_ordinal_to_read < 2 {
86735                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
86736                _next_ordinal_to_read += 1;
86737                next_offset += envelope_size;
86738            }
86739
86740            let next_out_of_line = decoder.next_out_of_line();
86741            let handles_before = decoder.remaining_handles();
86742            if let Some((inlined, num_bytes, num_handles)) =
86743                fidl::encoding::decode_envelope_header(decoder, next_offset)?
86744            {
86745                let member_inline_size = <fidl::encoding::Vector<
86746                    fidl::encoding::HandleType<
86747                        fidl::EventPair,
86748                        { fidl::ObjectType::EVENTPAIR.into_raw() },
86749                        49155,
86750                    >,
86751                    63,
86752                > as fidl::encoding::TypeMarker>::inline_size(
86753                    decoder.context
86754                );
86755                if inlined != (member_inline_size <= 4) {
86756                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
86757                }
86758                let inner_offset;
86759                let mut inner_depth = depth.clone();
86760                if inlined {
86761                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
86762                    inner_offset = next_offset;
86763                } else {
86764                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
86765                    inner_depth.increment()?;
86766                }
86767                let val_ref = self.validity.get_or_insert_with(|| {
86768                    fidl::new_empty!(
86769                        fidl::encoding::Vector<
86770                            fidl::encoding::HandleType<
86771                                fidl::EventPair,
86772                                { fidl::ObjectType::EVENTPAIR.into_raw() },
86773                                49155,
86774                            >,
86775                            63,
86776                        >,
86777                        fidl::encoding::DefaultFuchsiaResourceDialect
86778                    )
86779                });
86780                fidl::decode!(
86781                    fidl::encoding::Vector<
86782                        fidl::encoding::HandleType<
86783                            fidl::EventPair,
86784                            { fidl::ObjectType::EVENTPAIR.into_raw() },
86785                            49155,
86786                        >,
86787                        63,
86788                    >,
86789                    fidl::encoding::DefaultFuchsiaResourceDialect,
86790                    val_ref,
86791                    decoder,
86792                    inner_offset,
86793                    inner_depth
86794                )?;
86795                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
86796                {
86797                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
86798                }
86799                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
86800                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
86801                }
86802            }
86803
86804            next_offset += envelope_size;
86805            _next_ordinal_to_read += 1;
86806            if next_offset >= end_offset {
86807                return Ok(());
86808            }
86809
86810            // Decode unknown envelopes for gaps in ordinals.
86811            while _next_ordinal_to_read < 3 {
86812                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
86813                _next_ordinal_to_read += 1;
86814                next_offset += envelope_size;
86815            }
86816
86817            let next_out_of_line = decoder.next_out_of_line();
86818            let handles_before = decoder.remaining_handles();
86819            if let Some((inlined, num_bytes, num_handles)) =
86820                fidl::encoding::decode_envelope_header(decoder, next_offset)?
86821            {
86822                let member_inline_size =
86823                    <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
86824                if inlined != (member_inline_size <= 4) {
86825                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
86826                }
86827                let inner_offset;
86828                let mut inner_depth = depth.clone();
86829                if inlined {
86830                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
86831                    inner_offset = next_offset;
86832                } else {
86833                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
86834                    inner_depth.increment()?;
86835                }
86836                let val_ref = self.maximum_size.get_or_insert_with(|| {
86837                    fidl::new_empty!(u32, fidl::encoding::DefaultFuchsiaResourceDialect)
86838                });
86839                fidl::decode!(
86840                    u32,
86841                    fidl::encoding::DefaultFuchsiaResourceDialect,
86842                    val_ref,
86843                    decoder,
86844                    inner_offset,
86845                    inner_depth
86846                )?;
86847                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
86848                {
86849                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
86850                }
86851                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
86852                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
86853                }
86854            }
86855
86856            next_offset += envelope_size;
86857
86858            // Decode the remaining unknown envelopes.
86859            while next_offset < end_offset {
86860                _next_ordinal_to_read += 1;
86861                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
86862                next_offset += envelope_size;
86863            }
86864
86865            Ok(())
86866        }
86867    }
86868
86869    impl SocketCreationOptions {
86870        #[inline(always)]
86871        fn max_ordinal_present(&self) -> u64 {
86872            if let Some(_) = self.group {
86873                return 2;
86874            }
86875            if let Some(_) = self.marks {
86876                return 1;
86877            }
86878            0
86879        }
86880    }
86881
86882    impl fidl::encoding::ResourceTypeMarker for SocketCreationOptions {
86883        type Borrowed<'a> = &'a mut Self;
86884        fn take_or_borrow<'a>(
86885            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
86886        ) -> Self::Borrowed<'a> {
86887            value
86888        }
86889    }
86890
86891    unsafe impl fidl::encoding::TypeMarker for SocketCreationOptions {
86892        type Owned = Self;
86893
86894        #[inline(always)]
86895        fn inline_align(_context: fidl::encoding::Context) -> usize {
86896            8
86897        }
86898
86899        #[inline(always)]
86900        fn inline_size(_context: fidl::encoding::Context) -> usize {
86901            16
86902        }
86903    }
86904
86905    unsafe impl
86906        fidl::encoding::Encode<SocketCreationOptions, fidl::encoding::DefaultFuchsiaResourceDialect>
86907        for &mut SocketCreationOptions
86908    {
86909        unsafe fn encode(
86910            self,
86911            encoder: &mut fidl::encoding::Encoder<
86912                '_,
86913                fidl::encoding::DefaultFuchsiaResourceDialect,
86914            >,
86915            offset: usize,
86916            mut depth: fidl::encoding::Depth,
86917        ) -> fidl::Result<()> {
86918            encoder.debug_check_bounds::<SocketCreationOptions>(offset);
86919            // Vector header
86920            let max_ordinal: u64 = self.max_ordinal_present();
86921            encoder.write_num(max_ordinal, offset);
86922            encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
86923            // Calling encoder.out_of_line_offset(0) is not allowed.
86924            if max_ordinal == 0 {
86925                return Ok(());
86926            }
86927            depth.increment()?;
86928            let envelope_size = 8;
86929            let bytes_len = max_ordinal as usize * envelope_size;
86930            #[allow(unused_variables)]
86931            let offset = encoder.out_of_line_offset(bytes_len);
86932            let mut _prev_end_offset: usize = 0;
86933            if 1 > max_ordinal {
86934                return Ok(());
86935            }
86936
86937            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
86938            // are envelope_size bytes.
86939            let cur_offset: usize = (1 - 1) * envelope_size;
86940
86941            // Zero reserved fields.
86942            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
86943
86944            // Safety:
86945            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
86946            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
86947            //   envelope_size bytes, there is always sufficient room.
86948            fidl::encoding::encode_in_envelope_optional::<
86949                fidl_fuchsia_net::Marks,
86950                fidl::encoding::DefaultFuchsiaResourceDialect,
86951            >(
86952                self.marks
86953                    .as_ref()
86954                    .map(<fidl_fuchsia_net::Marks as fidl::encoding::ValueTypeMarker>::borrow),
86955                encoder,
86956                offset + cur_offset,
86957                depth,
86958            )?;
86959
86960            _prev_end_offset = cur_offset + envelope_size;
86961            if 2 > max_ordinal {
86962                return Ok(());
86963            }
86964
86965            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
86966            // are envelope_size bytes.
86967            let cur_offset: usize = (2 - 1) * envelope_size;
86968
86969            // Zero reserved fields.
86970            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
86971
86972            // Safety:
86973            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
86974            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
86975            //   envelope_size bytes, there is always sufficient room.
86976            fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_net_resources::WakeGroupToken, fidl::encoding::DefaultFuchsiaResourceDialect>(
86977            self.group.as_mut().map(<fidl_fuchsia_net_resources::WakeGroupToken as fidl::encoding::ResourceTypeMarker>::take_or_borrow),
86978            encoder, offset + cur_offset, depth
86979        )?;
86980
86981            _prev_end_offset = cur_offset + envelope_size;
86982
86983            Ok(())
86984        }
86985    }
86986
86987    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
86988        for SocketCreationOptions
86989    {
86990        #[inline(always)]
86991        fn new_empty() -> Self {
86992            Self::default()
86993        }
86994
86995        unsafe fn decode(
86996            &mut self,
86997            decoder: &mut fidl::encoding::Decoder<
86998                '_,
86999                fidl::encoding::DefaultFuchsiaResourceDialect,
87000            >,
87001            offset: usize,
87002            mut depth: fidl::encoding::Depth,
87003        ) -> fidl::Result<()> {
87004            decoder.debug_check_bounds::<Self>(offset);
87005            let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
87006                None => return Err(fidl::Error::NotNullable),
87007                Some(len) => len,
87008            };
87009            // Calling decoder.out_of_line_offset(0) is not allowed.
87010            if len == 0 {
87011                return Ok(());
87012            };
87013            depth.increment()?;
87014            let envelope_size = 8;
87015            let bytes_len = len * envelope_size;
87016            let offset = decoder.out_of_line_offset(bytes_len)?;
87017            // Decode the envelope for each type.
87018            let mut _next_ordinal_to_read = 0;
87019            let mut next_offset = offset;
87020            let end_offset = offset + bytes_len;
87021            _next_ordinal_to_read += 1;
87022            if next_offset >= end_offset {
87023                return Ok(());
87024            }
87025
87026            // Decode unknown envelopes for gaps in ordinals.
87027            while _next_ordinal_to_read < 1 {
87028                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
87029                _next_ordinal_to_read += 1;
87030                next_offset += envelope_size;
87031            }
87032
87033            let next_out_of_line = decoder.next_out_of_line();
87034            let handles_before = decoder.remaining_handles();
87035            if let Some((inlined, num_bytes, num_handles)) =
87036                fidl::encoding::decode_envelope_header(decoder, next_offset)?
87037            {
87038                let member_inline_size =
87039                    <fidl_fuchsia_net::Marks as fidl::encoding::TypeMarker>::inline_size(
87040                        decoder.context,
87041                    );
87042                if inlined != (member_inline_size <= 4) {
87043                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
87044                }
87045                let inner_offset;
87046                let mut inner_depth = depth.clone();
87047                if inlined {
87048                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
87049                    inner_offset = next_offset;
87050                } else {
87051                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
87052                    inner_depth.increment()?;
87053                }
87054                let val_ref = self.marks.get_or_insert_with(|| {
87055                    fidl::new_empty!(
87056                        fidl_fuchsia_net::Marks,
87057                        fidl::encoding::DefaultFuchsiaResourceDialect
87058                    )
87059                });
87060                fidl::decode!(
87061                    fidl_fuchsia_net::Marks,
87062                    fidl::encoding::DefaultFuchsiaResourceDialect,
87063                    val_ref,
87064                    decoder,
87065                    inner_offset,
87066                    inner_depth
87067                )?;
87068                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
87069                {
87070                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
87071                }
87072                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
87073                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
87074                }
87075            }
87076
87077            next_offset += envelope_size;
87078            _next_ordinal_to_read += 1;
87079            if next_offset >= end_offset {
87080                return Ok(());
87081            }
87082
87083            // Decode unknown envelopes for gaps in ordinals.
87084            while _next_ordinal_to_read < 2 {
87085                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
87086                _next_ordinal_to_read += 1;
87087                next_offset += envelope_size;
87088            }
87089
87090            let next_out_of_line = decoder.next_out_of_line();
87091            let handles_before = decoder.remaining_handles();
87092            if let Some((inlined, num_bytes, num_handles)) =
87093                fidl::encoding::decode_envelope_header(decoder, next_offset)?
87094            {
87095                let member_inline_size = <fidl_fuchsia_net_resources::WakeGroupToken as fidl::encoding::TypeMarker>::inline_size(decoder.context);
87096                if inlined != (member_inline_size <= 4) {
87097                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
87098                }
87099                let inner_offset;
87100                let mut inner_depth = depth.clone();
87101                if inlined {
87102                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
87103                    inner_offset = next_offset;
87104                } else {
87105                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
87106                    inner_depth.increment()?;
87107                }
87108                let val_ref = self.group.get_or_insert_with(|| {
87109                    fidl::new_empty!(
87110                        fidl_fuchsia_net_resources::WakeGroupToken,
87111                        fidl::encoding::DefaultFuchsiaResourceDialect
87112                    )
87113                });
87114                fidl::decode!(
87115                    fidl_fuchsia_net_resources::WakeGroupToken,
87116                    fidl::encoding::DefaultFuchsiaResourceDialect,
87117                    val_ref,
87118                    decoder,
87119                    inner_offset,
87120                    inner_depth
87121                )?;
87122                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
87123                {
87124                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
87125                }
87126                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
87127                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
87128                }
87129            }
87130
87131            next_offset += envelope_size;
87132
87133            // Decode the remaining unknown envelopes.
87134            while next_offset < end_offset {
87135                _next_ordinal_to_read += 1;
87136                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
87137                next_offset += envelope_size;
87138            }
87139
87140            Ok(())
87141        }
87142    }
87143
87144    impl StreamSocketDescribeResponse {
87145        #[inline(always)]
87146        fn max_ordinal_present(&self) -> u64 {
87147            if let Some(_) = self.socket {
87148                return 1;
87149            }
87150            0
87151        }
87152    }
87153
87154    impl fidl::encoding::ResourceTypeMarker for StreamSocketDescribeResponse {
87155        type Borrowed<'a> = &'a mut Self;
87156        fn take_or_borrow<'a>(
87157            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
87158        ) -> Self::Borrowed<'a> {
87159            value
87160        }
87161    }
87162
87163    unsafe impl fidl::encoding::TypeMarker for StreamSocketDescribeResponse {
87164        type Owned = Self;
87165
87166        #[inline(always)]
87167        fn inline_align(_context: fidl::encoding::Context) -> usize {
87168            8
87169        }
87170
87171        #[inline(always)]
87172        fn inline_size(_context: fidl::encoding::Context) -> usize {
87173            16
87174        }
87175    }
87176
87177    unsafe impl
87178        fidl::encoding::Encode<
87179            StreamSocketDescribeResponse,
87180            fidl::encoding::DefaultFuchsiaResourceDialect,
87181        > for &mut StreamSocketDescribeResponse
87182    {
87183        unsafe fn encode(
87184            self,
87185            encoder: &mut fidl::encoding::Encoder<
87186                '_,
87187                fidl::encoding::DefaultFuchsiaResourceDialect,
87188            >,
87189            offset: usize,
87190            mut depth: fidl::encoding::Depth,
87191        ) -> fidl::Result<()> {
87192            encoder.debug_check_bounds::<StreamSocketDescribeResponse>(offset);
87193            // Vector header
87194            let max_ordinal: u64 = self.max_ordinal_present();
87195            encoder.write_num(max_ordinal, offset);
87196            encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
87197            // Calling encoder.out_of_line_offset(0) is not allowed.
87198            if max_ordinal == 0 {
87199                return Ok(());
87200            }
87201            depth.increment()?;
87202            let envelope_size = 8;
87203            let bytes_len = max_ordinal as usize * envelope_size;
87204            #[allow(unused_variables)]
87205            let offset = encoder.out_of_line_offset(bytes_len);
87206            let mut _prev_end_offset: usize = 0;
87207            if 1 > max_ordinal {
87208                return Ok(());
87209            }
87210
87211            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
87212            // are envelope_size bytes.
87213            let cur_offset: usize = (1 - 1) * envelope_size;
87214
87215            // Zero reserved fields.
87216            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
87217
87218            // Safety:
87219            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
87220            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
87221            //   envelope_size bytes, there is always sufficient room.
87222            fidl::encoding::encode_in_envelope_optional::<
87223                fidl::encoding::HandleType<
87224                    fidl::Socket,
87225                    { fidl::ObjectType::SOCKET.into_raw() },
87226                    2147483648,
87227                >,
87228                fidl::encoding::DefaultFuchsiaResourceDialect,
87229            >(
87230                self.socket.as_mut().map(
87231                    <fidl::encoding::HandleType<
87232                        fidl::Socket,
87233                        { fidl::ObjectType::SOCKET.into_raw() },
87234                        2147483648,
87235                    > as fidl::encoding::ResourceTypeMarker>::take_or_borrow,
87236                ),
87237                encoder,
87238                offset + cur_offset,
87239                depth,
87240            )?;
87241
87242            _prev_end_offset = cur_offset + envelope_size;
87243
87244            Ok(())
87245        }
87246    }
87247
87248    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
87249        for StreamSocketDescribeResponse
87250    {
87251        #[inline(always)]
87252        fn new_empty() -> Self {
87253            Self::default()
87254        }
87255
87256        unsafe fn decode(
87257            &mut self,
87258            decoder: &mut fidl::encoding::Decoder<
87259                '_,
87260                fidl::encoding::DefaultFuchsiaResourceDialect,
87261            >,
87262            offset: usize,
87263            mut depth: fidl::encoding::Depth,
87264        ) -> fidl::Result<()> {
87265            decoder.debug_check_bounds::<Self>(offset);
87266            let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
87267                None => return Err(fidl::Error::NotNullable),
87268                Some(len) => len,
87269            };
87270            // Calling decoder.out_of_line_offset(0) is not allowed.
87271            if len == 0 {
87272                return Ok(());
87273            };
87274            depth.increment()?;
87275            let envelope_size = 8;
87276            let bytes_len = len * envelope_size;
87277            let offset = decoder.out_of_line_offset(bytes_len)?;
87278            // Decode the envelope for each type.
87279            let mut _next_ordinal_to_read = 0;
87280            let mut next_offset = offset;
87281            let end_offset = offset + bytes_len;
87282            _next_ordinal_to_read += 1;
87283            if next_offset >= end_offset {
87284                return Ok(());
87285            }
87286
87287            // Decode unknown envelopes for gaps in ordinals.
87288            while _next_ordinal_to_read < 1 {
87289                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
87290                _next_ordinal_to_read += 1;
87291                next_offset += envelope_size;
87292            }
87293
87294            let next_out_of_line = decoder.next_out_of_line();
87295            let handles_before = decoder.remaining_handles();
87296            if let Some((inlined, num_bytes, num_handles)) =
87297                fidl::encoding::decode_envelope_header(decoder, next_offset)?
87298            {
87299                let member_inline_size = <fidl::encoding::HandleType<
87300                    fidl::Socket,
87301                    { fidl::ObjectType::SOCKET.into_raw() },
87302                    2147483648,
87303                > as fidl::encoding::TypeMarker>::inline_size(
87304                    decoder.context
87305                );
87306                if inlined != (member_inline_size <= 4) {
87307                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
87308                }
87309                let inner_offset;
87310                let mut inner_depth = depth.clone();
87311                if inlined {
87312                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
87313                    inner_offset = next_offset;
87314                } else {
87315                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
87316                    inner_depth.increment()?;
87317                }
87318                let val_ref =
87319                self.socket.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::HandleType<fidl::Socket, { fidl::ObjectType::SOCKET.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect));
87320                fidl::decode!(fidl::encoding::HandleType<fidl::Socket, { fidl::ObjectType::SOCKET.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect, val_ref, decoder, inner_offset, inner_depth)?;
87321                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
87322                {
87323                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
87324                }
87325                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
87326                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
87327                }
87328            }
87329
87330            next_offset += envelope_size;
87331
87332            // Decode the remaining unknown envelopes.
87333            while next_offset < end_offset {
87334                _next_ordinal_to_read += 1;
87335                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
87336                next_offset += envelope_size;
87337            }
87338
87339            Ok(())
87340        }
87341    }
87342
87343    impl SynchronousDatagramSocketDescribeResponse {
87344        #[inline(always)]
87345        fn max_ordinal_present(&self) -> u64 {
87346            if let Some(_) = self.event {
87347                return 1;
87348            }
87349            0
87350        }
87351    }
87352
87353    impl fidl::encoding::ResourceTypeMarker for SynchronousDatagramSocketDescribeResponse {
87354        type Borrowed<'a> = &'a mut Self;
87355        fn take_or_borrow<'a>(
87356            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
87357        ) -> Self::Borrowed<'a> {
87358            value
87359        }
87360    }
87361
87362    unsafe impl fidl::encoding::TypeMarker for SynchronousDatagramSocketDescribeResponse {
87363        type Owned = Self;
87364
87365        #[inline(always)]
87366        fn inline_align(_context: fidl::encoding::Context) -> usize {
87367            8
87368        }
87369
87370        #[inline(always)]
87371        fn inline_size(_context: fidl::encoding::Context) -> usize {
87372            16
87373        }
87374    }
87375
87376    unsafe impl
87377        fidl::encoding::Encode<
87378            SynchronousDatagramSocketDescribeResponse,
87379            fidl::encoding::DefaultFuchsiaResourceDialect,
87380        > for &mut SynchronousDatagramSocketDescribeResponse
87381    {
87382        unsafe fn encode(
87383            self,
87384            encoder: &mut fidl::encoding::Encoder<
87385                '_,
87386                fidl::encoding::DefaultFuchsiaResourceDialect,
87387            >,
87388            offset: usize,
87389            mut depth: fidl::encoding::Depth,
87390        ) -> fidl::Result<()> {
87391            encoder.debug_check_bounds::<SynchronousDatagramSocketDescribeResponse>(offset);
87392            // Vector header
87393            let max_ordinal: u64 = self.max_ordinal_present();
87394            encoder.write_num(max_ordinal, offset);
87395            encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
87396            // Calling encoder.out_of_line_offset(0) is not allowed.
87397            if max_ordinal == 0 {
87398                return Ok(());
87399            }
87400            depth.increment()?;
87401            let envelope_size = 8;
87402            let bytes_len = max_ordinal as usize * envelope_size;
87403            #[allow(unused_variables)]
87404            let offset = encoder.out_of_line_offset(bytes_len);
87405            let mut _prev_end_offset: usize = 0;
87406            if 1 > max_ordinal {
87407                return Ok(());
87408            }
87409
87410            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
87411            // are envelope_size bytes.
87412            let cur_offset: usize = (1 - 1) * envelope_size;
87413
87414            // Zero reserved fields.
87415            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
87416
87417            // Safety:
87418            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
87419            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
87420            //   envelope_size bytes, there is always sufficient room.
87421            fidl::encoding::encode_in_envelope_optional::<
87422                fidl::encoding::HandleType<
87423                    fidl::EventPair,
87424                    { fidl::ObjectType::EVENTPAIR.into_raw() },
87425                    2147483648,
87426                >,
87427                fidl::encoding::DefaultFuchsiaResourceDialect,
87428            >(
87429                self.event.as_mut().map(
87430                    <fidl::encoding::HandleType<
87431                        fidl::EventPair,
87432                        { fidl::ObjectType::EVENTPAIR.into_raw() },
87433                        2147483648,
87434                    > as fidl::encoding::ResourceTypeMarker>::take_or_borrow,
87435                ),
87436                encoder,
87437                offset + cur_offset,
87438                depth,
87439            )?;
87440
87441            _prev_end_offset = cur_offset + envelope_size;
87442
87443            Ok(())
87444        }
87445    }
87446
87447    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
87448        for SynchronousDatagramSocketDescribeResponse
87449    {
87450        #[inline(always)]
87451        fn new_empty() -> Self {
87452            Self::default()
87453        }
87454
87455        unsafe fn decode(
87456            &mut self,
87457            decoder: &mut fidl::encoding::Decoder<
87458                '_,
87459                fidl::encoding::DefaultFuchsiaResourceDialect,
87460            >,
87461            offset: usize,
87462            mut depth: fidl::encoding::Depth,
87463        ) -> fidl::Result<()> {
87464            decoder.debug_check_bounds::<Self>(offset);
87465            let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
87466                None => return Err(fidl::Error::NotNullable),
87467                Some(len) => len,
87468            };
87469            // Calling decoder.out_of_line_offset(0) is not allowed.
87470            if len == 0 {
87471                return Ok(());
87472            };
87473            depth.increment()?;
87474            let envelope_size = 8;
87475            let bytes_len = len * envelope_size;
87476            let offset = decoder.out_of_line_offset(bytes_len)?;
87477            // Decode the envelope for each type.
87478            let mut _next_ordinal_to_read = 0;
87479            let mut next_offset = offset;
87480            let end_offset = offset + bytes_len;
87481            _next_ordinal_to_read += 1;
87482            if next_offset >= end_offset {
87483                return Ok(());
87484            }
87485
87486            // Decode unknown envelopes for gaps in ordinals.
87487            while _next_ordinal_to_read < 1 {
87488                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
87489                _next_ordinal_to_read += 1;
87490                next_offset += envelope_size;
87491            }
87492
87493            let next_out_of_line = decoder.next_out_of_line();
87494            let handles_before = decoder.remaining_handles();
87495            if let Some((inlined, num_bytes, num_handles)) =
87496                fidl::encoding::decode_envelope_header(decoder, next_offset)?
87497            {
87498                let member_inline_size = <fidl::encoding::HandleType<
87499                    fidl::EventPair,
87500                    { fidl::ObjectType::EVENTPAIR.into_raw() },
87501                    2147483648,
87502                > as fidl::encoding::TypeMarker>::inline_size(
87503                    decoder.context
87504                );
87505                if inlined != (member_inline_size <= 4) {
87506                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
87507                }
87508                let inner_offset;
87509                let mut inner_depth = depth.clone();
87510                if inlined {
87511                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
87512                    inner_offset = next_offset;
87513                } else {
87514                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
87515                    inner_depth.increment()?;
87516                }
87517                let val_ref =
87518                self.event.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::HandleType<fidl::EventPair, { fidl::ObjectType::EVENTPAIR.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect));
87519                fidl::decode!(fidl::encoding::HandleType<fidl::EventPair, { fidl::ObjectType::EVENTPAIR.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect, val_ref, decoder, inner_offset, inner_depth)?;
87520                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
87521                {
87522                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
87523                }
87524                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
87525                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
87526                }
87527            }
87528
87529            next_offset += envelope_size;
87530
87531            // Decode the remaining unknown envelopes.
87532            while next_offset < end_offset {
87533                _next_ordinal_to_read += 1;
87534                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
87535                next_offset += envelope_size;
87536            }
87537
87538            Ok(())
87539        }
87540    }
87541
87542    impl fidl::encoding::ResourceTypeMarker for ProviderDatagramSocketWithOptionsResponse {
87543        type Borrowed<'a> = &'a mut Self;
87544        fn take_or_borrow<'a>(
87545            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
87546        ) -> Self::Borrowed<'a> {
87547            value
87548        }
87549    }
87550
87551    unsafe impl fidl::encoding::TypeMarker for ProviderDatagramSocketWithOptionsResponse {
87552        type Owned = Self;
87553
87554        #[inline(always)]
87555        fn inline_align(_context: fidl::encoding::Context) -> usize {
87556            8
87557        }
87558
87559        #[inline(always)]
87560        fn inline_size(_context: fidl::encoding::Context) -> usize {
87561            16
87562        }
87563    }
87564
87565    unsafe impl
87566        fidl::encoding::Encode<
87567            ProviderDatagramSocketWithOptionsResponse,
87568            fidl::encoding::DefaultFuchsiaResourceDialect,
87569        > for &mut ProviderDatagramSocketWithOptionsResponse
87570    {
87571        #[inline]
87572        unsafe fn encode(
87573            self,
87574            encoder: &mut fidl::encoding::Encoder<
87575                '_,
87576                fidl::encoding::DefaultFuchsiaResourceDialect,
87577            >,
87578            offset: usize,
87579            _depth: fidl::encoding::Depth,
87580        ) -> fidl::Result<()> {
87581            encoder.debug_check_bounds::<ProviderDatagramSocketWithOptionsResponse>(offset);
87582            encoder.write_num::<u64>(self.ordinal(), offset);
87583            match self {
87584            ProviderDatagramSocketWithOptionsResponse::DatagramSocket(ref mut val) => {
87585                fidl::encoding::encode_in_envelope::<fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<DatagramSocketMarker>>, fidl::encoding::DefaultFuchsiaResourceDialect>(
87586                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<DatagramSocketMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(val),
87587                    encoder, offset + 8, _depth
87588                )
87589            }
87590            ProviderDatagramSocketWithOptionsResponse::SynchronousDatagramSocket(ref mut val) => {
87591                fidl::encoding::encode_in_envelope::<fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>>, fidl::encoding::DefaultFuchsiaResourceDialect>(
87592                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(val),
87593                    encoder, offset + 8, _depth
87594                )
87595            }
87596        }
87597        }
87598    }
87599
87600    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
87601        for ProviderDatagramSocketWithOptionsResponse
87602    {
87603        #[inline(always)]
87604        fn new_empty() -> Self {
87605            Self::DatagramSocket(fidl::new_empty!(
87606                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<DatagramSocketMarker>>,
87607                fidl::encoding::DefaultFuchsiaResourceDialect
87608            ))
87609        }
87610
87611        #[inline]
87612        unsafe fn decode(
87613            &mut self,
87614            decoder: &mut fidl::encoding::Decoder<
87615                '_,
87616                fidl::encoding::DefaultFuchsiaResourceDialect,
87617            >,
87618            offset: usize,
87619            mut depth: fidl::encoding::Depth,
87620        ) -> fidl::Result<()> {
87621            decoder.debug_check_bounds::<Self>(offset);
87622            #[allow(unused_variables)]
87623            let next_out_of_line = decoder.next_out_of_line();
87624            let handles_before = decoder.remaining_handles();
87625            let (ordinal, inlined, num_bytes, num_handles) =
87626                fidl::encoding::decode_union_inline_portion(decoder, offset)?;
87627
87628            let member_inline_size = match ordinal {
87629            1 => <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<DatagramSocketMarker>> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
87630            2 => <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
87631            _ => return Err(fidl::Error::UnknownUnionTag),
87632        };
87633
87634            if inlined != (member_inline_size <= 4) {
87635                return Err(fidl::Error::InvalidInlineBitInEnvelope);
87636            }
87637            let _inner_offset;
87638            if inlined {
87639                decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
87640                _inner_offset = offset + 8;
87641            } else {
87642                depth.increment()?;
87643                _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
87644            }
87645            match ordinal {
87646                1 => {
87647                    #[allow(irrefutable_let_patterns)]
87648                    if let ProviderDatagramSocketWithOptionsResponse::DatagramSocket(_) = self {
87649                        // Do nothing, read the value into the object
87650                    } else {
87651                        // Initialize `self` to the right variant
87652                        *self = ProviderDatagramSocketWithOptionsResponse::DatagramSocket(
87653                            fidl::new_empty!(
87654                                fidl::encoding::Endpoint<
87655                                    fidl::endpoints::ClientEnd<DatagramSocketMarker>,
87656                                >,
87657                                fidl::encoding::DefaultFuchsiaResourceDialect
87658                            ),
87659                        );
87660                    }
87661                    #[allow(irrefutable_let_patterns)]
87662                    if let ProviderDatagramSocketWithOptionsResponse::DatagramSocket(ref mut val) =
87663                        self
87664                    {
87665                        fidl::decode!(
87666                            fidl::encoding::Endpoint<
87667                                fidl::endpoints::ClientEnd<DatagramSocketMarker>,
87668                            >,
87669                            fidl::encoding::DefaultFuchsiaResourceDialect,
87670                            val,
87671                            decoder,
87672                            _inner_offset,
87673                            depth
87674                        )?;
87675                    } else {
87676                        unreachable!()
87677                    }
87678                }
87679                2 => {
87680                    #[allow(irrefutable_let_patterns)]
87681                    if let ProviderDatagramSocketWithOptionsResponse::SynchronousDatagramSocket(_) =
87682                        self
87683                    {
87684                        // Do nothing, read the value into the object
87685                    } else {
87686                        // Initialize `self` to the right variant
87687                        *self =
87688                            ProviderDatagramSocketWithOptionsResponse::SynchronousDatagramSocket(
87689                                fidl::new_empty!(
87690                                    fidl::encoding::Endpoint<
87691                                        fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
87692                                    >,
87693                                    fidl::encoding::DefaultFuchsiaResourceDialect
87694                                ),
87695                            );
87696                    }
87697                    #[allow(irrefutable_let_patterns)]
87698                    if let ProviderDatagramSocketWithOptionsResponse::SynchronousDatagramSocket(
87699                        ref mut val,
87700                    ) = self
87701                    {
87702                        fidl::decode!(
87703                            fidl::encoding::Endpoint<
87704                                fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
87705                            >,
87706                            fidl::encoding::DefaultFuchsiaResourceDialect,
87707                            val,
87708                            decoder,
87709                            _inner_offset,
87710                            depth
87711                        )?;
87712                    } else {
87713                        unreachable!()
87714                    }
87715                }
87716                ordinal => panic!("unexpected ordinal {:?}", ordinal),
87717            }
87718            if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
87719                return Err(fidl::Error::InvalidNumBytesInEnvelope);
87720            }
87721            if handles_before != decoder.remaining_handles() + (num_handles as usize) {
87722                return Err(fidl::Error::InvalidNumHandlesInEnvelope);
87723            }
87724            Ok(())
87725        }
87726    }
87727
87728    impl fidl::encoding::ResourceTypeMarker for ProviderDatagramSocketResponse {
87729        type Borrowed<'a> = &'a mut Self;
87730        fn take_or_borrow<'a>(
87731            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
87732        ) -> Self::Borrowed<'a> {
87733            value
87734        }
87735    }
87736
87737    unsafe impl fidl::encoding::TypeMarker for ProviderDatagramSocketResponse {
87738        type Owned = Self;
87739
87740        #[inline(always)]
87741        fn inline_align(_context: fidl::encoding::Context) -> usize {
87742            8
87743        }
87744
87745        #[inline(always)]
87746        fn inline_size(_context: fidl::encoding::Context) -> usize {
87747            16
87748        }
87749    }
87750
87751    unsafe impl
87752        fidl::encoding::Encode<
87753            ProviderDatagramSocketResponse,
87754            fidl::encoding::DefaultFuchsiaResourceDialect,
87755        > for &mut ProviderDatagramSocketResponse
87756    {
87757        #[inline]
87758        unsafe fn encode(
87759            self,
87760            encoder: &mut fidl::encoding::Encoder<
87761                '_,
87762                fidl::encoding::DefaultFuchsiaResourceDialect,
87763            >,
87764            offset: usize,
87765            _depth: fidl::encoding::Depth,
87766        ) -> fidl::Result<()> {
87767            encoder.debug_check_bounds::<ProviderDatagramSocketResponse>(offset);
87768            encoder.write_num::<u64>(self.ordinal(), offset);
87769            match self {
87770            ProviderDatagramSocketResponse::DatagramSocket(ref mut val) => {
87771                fidl::encoding::encode_in_envelope::<fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<DatagramSocketMarker>>, fidl::encoding::DefaultFuchsiaResourceDialect>(
87772                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<DatagramSocketMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(val),
87773                    encoder, offset + 8, _depth
87774                )
87775            }
87776            ProviderDatagramSocketResponse::SynchronousDatagramSocket(ref mut val) => {
87777                fidl::encoding::encode_in_envelope::<fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>>, fidl::encoding::DefaultFuchsiaResourceDialect>(
87778                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(val),
87779                    encoder, offset + 8, _depth
87780                )
87781            }
87782        }
87783        }
87784    }
87785
87786    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
87787        for ProviderDatagramSocketResponse
87788    {
87789        #[inline(always)]
87790        fn new_empty() -> Self {
87791            Self::DatagramSocket(fidl::new_empty!(
87792                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<DatagramSocketMarker>>,
87793                fidl::encoding::DefaultFuchsiaResourceDialect
87794            ))
87795        }
87796
87797        #[inline]
87798        unsafe fn decode(
87799            &mut self,
87800            decoder: &mut fidl::encoding::Decoder<
87801                '_,
87802                fidl::encoding::DefaultFuchsiaResourceDialect,
87803            >,
87804            offset: usize,
87805            mut depth: fidl::encoding::Depth,
87806        ) -> fidl::Result<()> {
87807            decoder.debug_check_bounds::<Self>(offset);
87808            #[allow(unused_variables)]
87809            let next_out_of_line = decoder.next_out_of_line();
87810            let handles_before = decoder.remaining_handles();
87811            let (ordinal, inlined, num_bytes, num_handles) =
87812                fidl::encoding::decode_union_inline_portion(decoder, offset)?;
87813
87814            let member_inline_size = match ordinal {
87815            1 => <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<DatagramSocketMarker>> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
87816            2 => <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
87817            _ => return Err(fidl::Error::UnknownUnionTag),
87818        };
87819
87820            if inlined != (member_inline_size <= 4) {
87821                return Err(fidl::Error::InvalidInlineBitInEnvelope);
87822            }
87823            let _inner_offset;
87824            if inlined {
87825                decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
87826                _inner_offset = offset + 8;
87827            } else {
87828                depth.increment()?;
87829                _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
87830            }
87831            match ordinal {
87832                1 => {
87833                    #[allow(irrefutable_let_patterns)]
87834                    if let ProviderDatagramSocketResponse::DatagramSocket(_) = self {
87835                        // Do nothing, read the value into the object
87836                    } else {
87837                        // Initialize `self` to the right variant
87838                        *self = ProviderDatagramSocketResponse::DatagramSocket(fidl::new_empty!(
87839                            fidl::encoding::Endpoint<
87840                                fidl::endpoints::ClientEnd<DatagramSocketMarker>,
87841                            >,
87842                            fidl::encoding::DefaultFuchsiaResourceDialect
87843                        ));
87844                    }
87845                    #[allow(irrefutable_let_patterns)]
87846                    if let ProviderDatagramSocketResponse::DatagramSocket(ref mut val) = self {
87847                        fidl::decode!(
87848                            fidl::encoding::Endpoint<
87849                                fidl::endpoints::ClientEnd<DatagramSocketMarker>,
87850                            >,
87851                            fidl::encoding::DefaultFuchsiaResourceDialect,
87852                            val,
87853                            decoder,
87854                            _inner_offset,
87855                            depth
87856                        )?;
87857                    } else {
87858                        unreachable!()
87859                    }
87860                }
87861                2 => {
87862                    #[allow(irrefutable_let_patterns)]
87863                    if let ProviderDatagramSocketResponse::SynchronousDatagramSocket(_) = self {
87864                        // Do nothing, read the value into the object
87865                    } else {
87866                        // Initialize `self` to the right variant
87867                        *self = ProviderDatagramSocketResponse::SynchronousDatagramSocket(
87868                            fidl::new_empty!(
87869                                fidl::encoding::Endpoint<
87870                                    fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
87871                                >,
87872                                fidl::encoding::DefaultFuchsiaResourceDialect
87873                            ),
87874                        );
87875                    }
87876                    #[allow(irrefutable_let_patterns)]
87877                    if let ProviderDatagramSocketResponse::SynchronousDatagramSocket(ref mut val) =
87878                        self
87879                    {
87880                        fidl::decode!(
87881                            fidl::encoding::Endpoint<
87882                                fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
87883                            >,
87884                            fidl::encoding::DefaultFuchsiaResourceDialect,
87885                            val,
87886                            decoder,
87887                            _inner_offset,
87888                            depth
87889                        )?;
87890                    } else {
87891                        unreachable!()
87892                    }
87893                }
87894                ordinal => panic!("unexpected ordinal {:?}", ordinal),
87895            }
87896            if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
87897                return Err(fidl::Error::InvalidNumBytesInEnvelope);
87898            }
87899            if handles_before != decoder.remaining_handles() + (num_handles as usize) {
87900                return Err(fidl::Error::InvalidNumHandlesInEnvelope);
87901            }
87902            Ok(())
87903        }
87904    }
87905
87906    impl fidl::encoding::ResourceTypeMarker for ReusePortOption {
87907        type Borrowed<'a> = &'a mut Self;
87908        fn take_or_borrow<'a>(
87909            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
87910        ) -> Self::Borrowed<'a> {
87911            value
87912        }
87913    }
87914
87915    unsafe impl fidl::encoding::TypeMarker for ReusePortOption {
87916        type Owned = Self;
87917
87918        #[inline(always)]
87919        fn inline_align(_context: fidl::encoding::Context) -> usize {
87920            8
87921        }
87922
87923        #[inline(always)]
87924        fn inline_size(_context: fidl::encoding::Context) -> usize {
87925            16
87926        }
87927    }
87928
87929    unsafe impl
87930        fidl::encoding::Encode<ReusePortOption, fidl::encoding::DefaultFuchsiaResourceDialect>
87931        for &mut ReusePortOption
87932    {
87933        #[inline]
87934        unsafe fn encode(
87935            self,
87936            encoder: &mut fidl::encoding::Encoder<
87937                '_,
87938                fidl::encoding::DefaultFuchsiaResourceDialect,
87939            >,
87940            offset: usize,
87941            _depth: fidl::encoding::Depth,
87942        ) -> fidl::Result<()> {
87943            encoder.debug_check_bounds::<ReusePortOption>(offset);
87944            encoder.write_num::<u64>(self.ordinal(), offset);
87945            match self {
87946                ReusePortOption::Disabled(ref val) => fidl::encoding::encode_in_envelope::<
87947                    Empty,
87948                    fidl::encoding::DefaultFuchsiaResourceDialect,
87949                >(
87950                    <Empty as fidl::encoding::ValueTypeMarker>::borrow(val),
87951                    encoder,
87952                    offset + 8,
87953                    _depth,
87954                ),
87955                ReusePortOption::Enabled(ref mut val) => fidl::encoding::encode_in_envelope::<
87956                    fidl::encoding::HandleType<
87957                        fidl::Event,
87958                        { fidl::ObjectType::EVENT.into_raw() },
87959                        2,
87960                    >,
87961                    fidl::encoding::DefaultFuchsiaResourceDialect,
87962                >(
87963                    <fidl::encoding::HandleType<
87964                        fidl::Event,
87965                        { fidl::ObjectType::EVENT.into_raw() },
87966                        2,
87967                    > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
87968                        val
87969                    ),
87970                    encoder,
87971                    offset + 8,
87972                    _depth,
87973                ),
87974            }
87975        }
87976    }
87977
87978    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
87979        for ReusePortOption
87980    {
87981        #[inline(always)]
87982        fn new_empty() -> Self {
87983            Self::Disabled(fidl::new_empty!(Empty, fidl::encoding::DefaultFuchsiaResourceDialect))
87984        }
87985
87986        #[inline]
87987        unsafe fn decode(
87988            &mut self,
87989            decoder: &mut fidl::encoding::Decoder<
87990                '_,
87991                fidl::encoding::DefaultFuchsiaResourceDialect,
87992            >,
87993            offset: usize,
87994            mut depth: fidl::encoding::Depth,
87995        ) -> fidl::Result<()> {
87996            decoder.debug_check_bounds::<Self>(offset);
87997            #[allow(unused_variables)]
87998            let next_out_of_line = decoder.next_out_of_line();
87999            let handles_before = decoder.remaining_handles();
88000            let (ordinal, inlined, num_bytes, num_handles) =
88001                fidl::encoding::decode_union_inline_portion(decoder, offset)?;
88002
88003            let member_inline_size = match ordinal {
88004                1 => <Empty as fidl::encoding::TypeMarker>::inline_size(decoder.context),
88005                2 => <fidl::encoding::HandleType<
88006                    fidl::Event,
88007                    { fidl::ObjectType::EVENT.into_raw() },
88008                    2,
88009                > as fidl::encoding::TypeMarker>::inline_size(decoder.context),
88010                _ => return Err(fidl::Error::UnknownUnionTag),
88011            };
88012
88013            if inlined != (member_inline_size <= 4) {
88014                return Err(fidl::Error::InvalidInlineBitInEnvelope);
88015            }
88016            let _inner_offset;
88017            if inlined {
88018                decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
88019                _inner_offset = offset + 8;
88020            } else {
88021                depth.increment()?;
88022                _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
88023            }
88024            match ordinal {
88025                1 => {
88026                    #[allow(irrefutable_let_patterns)]
88027                    if let ReusePortOption::Disabled(_) = self {
88028                        // Do nothing, read the value into the object
88029                    } else {
88030                        // Initialize `self` to the right variant
88031                        *self = ReusePortOption::Disabled(fidl::new_empty!(
88032                            Empty,
88033                            fidl::encoding::DefaultFuchsiaResourceDialect
88034                        ));
88035                    }
88036                    #[allow(irrefutable_let_patterns)]
88037                    if let ReusePortOption::Disabled(ref mut val) = self {
88038                        fidl::decode!(
88039                            Empty,
88040                            fidl::encoding::DefaultFuchsiaResourceDialect,
88041                            val,
88042                            decoder,
88043                            _inner_offset,
88044                            depth
88045                        )?;
88046                    } else {
88047                        unreachable!()
88048                    }
88049                }
88050                2 => {
88051                    #[allow(irrefutable_let_patterns)]
88052                    if let ReusePortOption::Enabled(_) = self {
88053                        // Do nothing, read the value into the object
88054                    } else {
88055                        // Initialize `self` to the right variant
88056                        *self = ReusePortOption::Enabled(
88057                            fidl::new_empty!(fidl::encoding::HandleType<fidl::Event, { fidl::ObjectType::EVENT.into_raw() }, 2>, fidl::encoding::DefaultFuchsiaResourceDialect),
88058                        );
88059                    }
88060                    #[allow(irrefutable_let_patterns)]
88061                    if let ReusePortOption::Enabled(ref mut val) = self {
88062                        fidl::decode!(fidl::encoding::HandleType<fidl::Event, { fidl::ObjectType::EVENT.into_raw() }, 2>, fidl::encoding::DefaultFuchsiaResourceDialect, val, decoder, _inner_offset, depth)?;
88063                    } else {
88064                        unreachable!()
88065                    }
88066                }
88067                ordinal => panic!("unexpected ordinal {:?}", ordinal),
88068            }
88069            if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
88070                return Err(fidl::Error::InvalidNumBytesInEnvelope);
88071            }
88072            if handles_before != decoder.remaining_handles() + (num_handles as usize) {
88073                return Err(fidl::Error::InvalidNumHandlesInEnvelope);
88074            }
88075            Ok(())
88076        }
88077    }
88078}